@wordpress/block-editor 15.6.1 → 15.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/background-image-control/index.js +2 -2
  3. package/build/components/background-image-control/index.js.map +2 -2
  4. package/build/components/block-quick-navigation/index.js +1 -0
  5. package/build/components/block-quick-navigation/index.js.map +2 -2
  6. package/build/components/block-toolbar/switch-section-style.js +2 -5
  7. package/build/components/block-toolbar/switch-section-style.js.map +2 -2
  8. package/build/components/global-styles/border-panel.js +2 -1
  9. package/build/components/global-styles/border-panel.js.map +2 -2
  10. package/build/components/global-styles/color-panel.js +2 -1
  11. package/build/components/global-styles/color-panel.js.map +2 -2
  12. package/build/components/global-styles/dimensions-panel.js +3 -2
  13. package/build/components/global-styles/dimensions-panel.js.map +2 -2
  14. package/build/components/global-styles/filters-panel.js +2 -1
  15. package/build/components/global-styles/filters-panel.js.map +2 -2
  16. package/build/components/global-styles/hooks.js +0 -179
  17. package/build/components/global-styles/hooks.js.map +3 -3
  18. package/build/components/global-styles/index.js +0 -29
  19. package/build/components/global-styles/index.js.map +2 -2
  20. package/build/components/global-styles/typography-panel.js +2 -1
  21. package/build/components/global-styles/typography-panel.js.map +2 -2
  22. package/build/components/global-styles/typography-utils.js +2 -49
  23. package/build/components/global-styles/typography-utils.js.map +2 -2
  24. package/build/components/global-styles/utils.js +0 -396
  25. package/build/components/global-styles/utils.js.map +3 -3
  26. package/build/components/inserter/media-tab/media-tab.js +33 -1
  27. package/build/components/inserter/media-tab/media-tab.js.map +3 -3
  28. package/build/components/inserter/tips.js +0 -2
  29. package/build/components/inserter/tips.js.map +2 -2
  30. package/build/components/media-placeholder/index.js +31 -1
  31. package/build/components/media-placeholder/index.js.map +3 -3
  32. package/build/components/media-replace-flow/index.js +29 -1
  33. package/build/components/media-replace-flow/index.js.map +3 -3
  34. package/build/components/{global-styles/context.js → media-upload-modal/index.js} +8 -23
  35. package/build/components/media-upload-modal/index.js.map +7 -0
  36. package/build/hooks/allowed-blocks.js +3 -8
  37. package/build/hooks/allowed-blocks.js.map +3 -3
  38. package/build/hooks/block-style-variation.js +10 -23
  39. package/build/hooks/block-style-variation.js.map +2 -2
  40. package/build/hooks/duotone.js +3 -3
  41. package/build/hooks/duotone.js.map +2 -2
  42. package/build/hooks/fit-text.js +2 -2
  43. package/build/hooks/fit-text.js.map +2 -2
  44. package/build/hooks/font-size.js +2 -2
  45. package/build/hooks/font-size.js.map +2 -2
  46. package/build/hooks/use-typography-props.js +2 -2
  47. package/build/hooks/use-typography-props.js.map +2 -2
  48. package/build/private-apis.js +3 -1
  49. package/build/private-apis.js.map +3 -3
  50. package/build-module/components/background-image-control/index.js +1 -1
  51. package/build-module/components/background-image-control/index.js.map +2 -2
  52. package/build-module/components/block-quick-navigation/index.js +1 -0
  53. package/build-module/components/block-quick-navigation/index.js.map +2 -2
  54. package/build-module/components/block-toolbar/switch-section-style.js +2 -5
  55. package/build-module/components/block-toolbar/switch-section-style.js.map +2 -2
  56. package/build-module/components/global-styles/border-panel.js +2 -1
  57. package/build-module/components/global-styles/border-panel.js.map +2 -2
  58. package/build-module/components/global-styles/color-panel.js +2 -1
  59. package/build-module/components/global-styles/color-panel.js.map +2 -2
  60. package/build-module/components/global-styles/dimensions-panel.js +2 -1
  61. package/build-module/components/global-styles/dimensions-panel.js.map +2 -2
  62. package/build-module/components/global-styles/filters-panel.js +2 -1
  63. package/build-module/components/global-styles/filters-panel.js.map +2 -2
  64. package/build-module/components/global-styles/hooks.js +1 -167
  65. package/build-module/components/global-styles/hooks.js.map +2 -2
  66. package/build-module/components/global-styles/index.js +1 -29
  67. package/build-module/components/global-styles/index.js.map +2 -2
  68. package/build-module/components/global-styles/typography-panel.js +2 -1
  69. package/build-module/components/global-styles/typography-panel.js.map +2 -2
  70. package/build-module/components/global-styles/typography-utils.js +1 -49
  71. package/build-module/components/global-styles/typography-utils.js.map +2 -2
  72. package/build-module/components/global-styles/utils.js +0 -372
  73. package/build-module/components/global-styles/utils.js.map +2 -2
  74. package/build-module/components/inserter/media-tab/media-tab.js +34 -2
  75. package/build-module/components/inserter/media-tab/media-tab.js.map +2 -2
  76. package/build-module/components/inserter/tips.js +0 -2
  77. package/build-module/components/inserter/tips.js.map +2 -2
  78. package/build-module/components/media-placeholder/index.js +31 -1
  79. package/build-module/components/media-placeholder/index.js.map +2 -2
  80. package/build-module/components/media-replace-flow/index.js +29 -1
  81. package/build-module/components/media-replace-flow/index.js.map +2 -2
  82. package/build-module/components/media-upload-modal/index.js +7 -0
  83. package/build-module/components/media-upload-modal/index.js.map +7 -0
  84. package/build-module/hooks/allowed-blocks.js +3 -8
  85. package/build-module/hooks/allowed-blocks.js.map +2 -2
  86. package/build-module/hooks/block-style-variation.js +8 -25
  87. package/build-module/hooks/block-style-variation.js.map +2 -2
  88. package/build-module/hooks/duotone.js +3 -3
  89. package/build-module/hooks/duotone.js.map +2 -2
  90. package/build-module/hooks/fit-text.js +2 -2
  91. package/build-module/hooks/fit-text.js.map +2 -2
  92. package/build-module/hooks/font-size.js +1 -1
  93. package/build-module/hooks/font-size.js.map +2 -2
  94. package/build-module/hooks/use-typography-props.js +1 -1
  95. package/build-module/hooks/use-typography-props.js.map +2 -2
  96. package/build-module/private-apis.js +3 -1
  97. package/build-module/private-apis.js.map +2 -2
  98. package/build-style/style-rtl.css +10 -6
  99. package/build-style/style.css +10 -6
  100. package/package.json +36 -35
  101. package/src/components/background-image-control/index.js +1 -1
  102. package/src/components/block-card/style.scss +1 -1
  103. package/src/components/block-navigation/style.scss +1 -1
  104. package/src/components/block-quick-navigation/index.js +1 -0
  105. package/src/components/block-quick-navigation/style.scss +5 -0
  106. package/src/components/block-switcher/style.scss +1 -1
  107. package/src/components/block-toolbar/switch-section-style.js +2 -5
  108. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
  109. package/src/components/global-styles/border-panel.js +2 -1
  110. package/src/components/global-styles/color-panel.js +2 -1
  111. package/src/components/global-styles/color-panel.native.js +1 -1
  112. package/src/components/global-styles/dimensions-panel.js +2 -1
  113. package/src/components/global-styles/filters-panel.js +2 -1
  114. package/src/components/global-styles/hooks.js +1 -200
  115. package/src/components/global-styles/index.js +1 -17
  116. package/src/components/global-styles/test/typography-utils.js +0 -806
  117. package/src/components/global-styles/typography-panel.js +2 -1
  118. package/src/components/global-styles/typography-utils.js +0 -133
  119. package/src/components/global-styles/utils.js +0 -568
  120. package/src/components/inserter/media-tab/media-tab.js +44 -2
  121. package/src/components/inserter/style.scss +2 -2
  122. package/src/components/inserter/tips.js +0 -2
  123. package/src/components/media-placeholder/index.js +41 -1
  124. package/src/components/media-replace-flow/index.js +39 -1
  125. package/src/components/media-upload-modal/index.js +18 -0
  126. package/src/components/multi-selection-inspector/style.scss +1 -1
  127. package/src/hooks/allowed-blocks.js +3 -11
  128. package/src/hooks/block-style-variation.js +8 -28
  129. package/src/hooks/duotone.js +3 -3
  130. package/src/hooks/fit-text.js +2 -2
  131. package/src/hooks/font-size.js +1 -1
  132. package/src/hooks/use-typography-props.js +1 -1
  133. package/src/private-apis.js +2 -0
  134. package/src/style.scss +1 -0
  135. package/tsconfig.json +2 -0
  136. package/build/components/global-styles/context.js.map +0 -7
  137. package/build/components/global-styles/get-block-css-selector.js +0 -78
  138. package/build/components/global-styles/get-block-css-selector.js.map +0 -7
  139. package/build/components/global-styles/get-global-styles-changes.js +0 -216
  140. package/build/components/global-styles/get-global-styles-changes.js.map +0 -7
  141. package/build/components/global-styles/use-global-styles-output.js +0 -998
  142. package/build/components/global-styles/use-global-styles-output.js.map +0 -7
  143. package/build-module/components/global-styles/context.js +0 -17
  144. package/build-module/components/global-styles/context.js.map +0 -7
  145. package/build-module/components/global-styles/get-block-css-selector.js +0 -54
  146. package/build-module/components/global-styles/get-block-css-selector.js.map +0 -7
  147. package/build-module/components/global-styles/get-global-styles-changes.js +0 -182
  148. package/build-module/components/global-styles/get-global-styles-changes.js.map +0 -7
  149. package/build-module/components/global-styles/use-global-styles-output.js +0 -979
  150. package/build-module/components/global-styles/use-global-styles-output.js.map +0 -7
  151. package/src/components/global-styles/README.md +0 -190
  152. package/src/components/global-styles/context.js +0 -16
  153. package/src/components/global-styles/get-block-css-selector.js +0 -114
  154. package/src/components/global-styles/get-global-styles-changes.js +0 -252
  155. package/src/components/global-styles/test/get-global-styles-changes.js +0 -290
  156. package/src/components/global-styles/test/use-global-styles-output.js +0 -1131
  157. package/src/components/global-styles/test/utils.js +0 -499
  158. package/src/components/global-styles/use-global-styles-output.js +0 -1487
@@ -38,6 +38,7 @@ var import_i18n = require("@wordpress/i18n");
38
38
  var import_components = require("@wordpress/components");
39
39
  var import_icons = require("@wordpress/icons");
40
40
  var import_element = require("@wordpress/element");
41
+ var import_global_styles_engine = require("@wordpress/global-styles-engine");
41
42
  var import_utils = require("./utils");
42
43
  var import_spacing_sizes_control = __toESM(require("../spacing-sizes-control"));
43
44
  var import_height_control = __toESM(require("../height-control"));
@@ -184,7 +185,7 @@ function DimensionsPanel({
184
185
  const decodeValue = (rawValue) => {
185
186
  if (rawValue && typeof rawValue === "object") {
186
187
  return Object.keys(rawValue).reduce((acc, key) => {
187
- acc[key] = (0, import_utils.getValueFromVariable)(
188
+ acc[key] = (0, import_global_styles_engine.getValueFromVariable)(
188
189
  { settings: { dimensions, spacing } },
189
190
  "",
190
191
  rawValue[key]
@@ -192,7 +193,7 @@ function DimensionsPanel({
192
193
  return acc;
193
194
  }, {});
194
195
  }
195
- return (0, import_utils.getValueFromVariable)(
196
+ return (0, import_global_styles_engine.getValueFromVariable)(
196
197
  { settings: { dimensions, spacing } },
197
198
  "",
198
199
  rawValue
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/global-styles/dimensions-panel.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tBoxControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,\n} from '@wordpress/components';\nimport { Icon, alignNone, stretchWide } from '@wordpress/icons';\nimport { useCallback, useState, Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable, useToolsPanelDropdownMenuProps } from './utils';\nimport SpacingSizesControl from '../spacing-sizes-control';\nimport HeightControl from '../height-control';\nimport ChildLayoutControl from '../child-layout-control';\nimport AspectRatioTool from '../dimensions-tool/aspect-ratio-tool';\nimport { cleanEmptyObject } from '../../hooks/utils';\nimport { setImmutably } from '../../utils/object';\n\nconst AXIAL_SIDES = [ 'horizontal', 'vertical' ];\n\nexport function useHasDimensionsPanel( settings ) {\n\tconst hasContentSize = useHasContentSize( settings );\n\tconst hasWideSize = useHasWideSize( settings );\n\tconst hasPadding = useHasPadding( settings );\n\tconst hasMargin = useHasMargin( settings );\n\tconst hasGap = useHasGap( settings );\n\tconst hasMinHeight = useHasMinHeight( settings );\n\tconst hasAspectRatio = useHasAspectRatio( settings );\n\tconst hasChildLayout = useHasChildLayout( settings );\n\n\treturn (\n\t\tPlatform.OS === 'web' &&\n\t\t( hasContentSize ||\n\t\t\thasWideSize ||\n\t\t\thasPadding ||\n\t\t\thasMargin ||\n\t\t\thasGap ||\n\t\t\thasMinHeight ||\n\t\t\thasAspectRatio ||\n\t\t\thasChildLayout )\n\t);\n}\n\nfunction useHasContentSize( settings ) {\n\treturn settings?.layout?.contentSize;\n}\n\nfunction useHasWideSize( settings ) {\n\treturn settings?.layout?.wideSize;\n}\n\nfunction useHasPadding( settings ) {\n\treturn settings?.spacing?.padding;\n}\n\nfunction useHasMargin( settings ) {\n\treturn settings?.spacing?.margin;\n}\n\nfunction useHasGap( settings ) {\n\treturn settings?.spacing?.blockGap;\n}\n\nfunction useHasMinHeight( settings ) {\n\treturn settings?.dimensions?.minHeight;\n}\n\nfunction useHasAspectRatio( settings ) {\n\treturn settings?.dimensions?.aspectRatio;\n}\n\nfunction useHasChildLayout( settings ) {\n\tconst {\n\t\ttype: parentLayoutType = 'default',\n\t\tdefault: { type: defaultParentLayoutType = 'default' } = {},\n\t\tallowSizingOnChildren = false,\n\t} = settings?.parentLayout ?? {};\n\n\tconst support =\n\t\t( defaultParentLayoutType === 'flex' ||\n\t\t\tparentLayoutType === 'flex' ||\n\t\t\tdefaultParentLayoutType === 'grid' ||\n\t\t\tparentLayoutType === 'grid' ) &&\n\t\tallowSizingOnChildren;\n\treturn !! settings?.layout && support;\n}\n\nfunction useHasSpacingPresets( settings ) {\n\tconst { defaultSpacingSizes, spacingSizes } = settings?.spacing || {};\n\treturn (\n\t\t( defaultSpacingSizes !== false &&\n\t\t\tspacingSizes?.default?.length > 0 ) ||\n\t\tspacingSizes?.theme?.length > 0 ||\n\t\tspacingSizes?.custom?.length > 0\n\t);\n}\n\nfunction filterValuesBySides( values, sides ) {\n\t// If no custom side configuration, all sides are opted into by default.\n\t// Without any values, we have nothing to filter either.\n\tif ( ! sides || ! values ) {\n\t\treturn values;\n\t}\n\n\t// Only include sides opted into within filtered values.\n\tconst filteredValues = {};\n\tsides.forEach( ( side ) => {\n\t\tif ( side === 'vertical' ) {\n\t\t\tfilteredValues.top = values.top;\n\t\t\tfilteredValues.bottom = values.bottom;\n\t\t}\n\t\tif ( side === 'horizontal' ) {\n\t\t\tfilteredValues.left = values.left;\n\t\t\tfilteredValues.right = values.right;\n\t\t}\n\t\tfilteredValues[ side ] = values?.[ side ];\n\t} );\n\n\treturn filteredValues;\n}\n\nfunction splitStyleValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// Convert to value for individual sides for BoxControl.\n\t\treturn {\n\t\t\ttop: value,\n\t\t\tright: value,\n\t\t\tbottom: value,\n\t\t\tleft: value,\n\t\t};\n\t}\n\n\treturn value;\n}\n\nfunction splitGapValue( value, isAxialGap ) {\n\tif ( ! value ) {\n\t\treturn value;\n\t}\n\n\t// Check for shorthand value (a string value).\n\tif ( typeof value === 'string' ) {\n\t\t/*\n\t\t * Map the string value to appropriate sides for the spacing control depending\n\t\t * on whether the current block has axial gap support or not.\n\t\t *\n\t\t * Note: The axial value pairs must match for the spacing control to display\n\t\t * the appropriate horizontal/vertical sliders.\n\t\t */\n\t\treturn isAxialGap\n\t\t\t? { top: value, right: value, bottom: value, left: value }\n\t\t\t: { top: value };\n\t}\n\n\treturn {\n\t\t...value,\n\t\tright: value?.left,\n\t\tbottom: value?.top,\n\t};\n}\n\nfunction DimensionsToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tcontentSize: true,\n\twideSize: true,\n\tpadding: true,\n\tmargin: true,\n\tblockGap: true,\n\tminHeight: true,\n\taspectRatio: true,\n\tchildLayout: true,\n};\n\nexport default function DimensionsPanel( {\n\tas: Wrapper = DimensionsToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n\tonVisualize = () => {},\n\t// Special case because the layout controls are not part of the dimensions panel\n\t// in global styles but not in block inspector.\n\tincludeLayoutControls = false,\n} ) {\n\tconst { dimensions, spacing } = settings;\n\n\tconst decodeValue = ( rawValue ) => {\n\t\tif ( rawValue && typeof rawValue === 'object' ) {\n\t\t\treturn Object.keys( rawValue ).reduce( ( acc, key ) => {\n\t\t\t\tacc[ key ] = getValueFromVariable(\n\t\t\t\t\t{ settings: { dimensions, spacing } },\n\t\t\t\t\t'',\n\t\t\t\t\trawValue[ key ]\n\t\t\t\t);\n\t\t\t\treturn acc;\n\t\t\t}, {} );\n\t\t}\n\t\treturn getValueFromVariable(\n\t\t\t{ settings: { dimensions, spacing } },\n\t\t\t'',\n\t\t\trawValue\n\t\t);\n\t};\n\n\tconst showSpacingPresetsControl = useHasSpacingPresets( settings );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: settings?.spacing?.units || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t],\n\t} );\n\n\t//Minimum Margin Value\n\tconst minimumMargin = -Infinity;\n\tconst [ minMarginValue, setMinMarginValue ] = useState( minimumMargin );\n\n\t// Content Width\n\tconst showContentSizeControl =\n\t\tuseHasContentSize( settings ) && includeLayoutControls;\n\tconst contentSizeValue = decodeValue( inheritedValue?.layout?.contentSize );\n\tconst setContentSizeValue = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'layout', 'contentSize' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasUserSetContentSizeValue = () => !! value?.layout?.contentSize;\n\tconst resetContentSizeValue = () => setContentSizeValue( undefined );\n\n\t// Wide Width\n\tconst showWideSizeControl =\n\t\tuseHasWideSize( settings ) && includeLayoutControls;\n\tconst wideSizeValue = decodeValue( inheritedValue?.layout?.wideSize );\n\tconst setWideSizeValue = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'layout', 'wideSize' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasUserSetWideSizeValue = () => !! value?.layout?.wideSize;\n\tconst resetWideSizeValue = () => setWideSizeValue( undefined );\n\n\t// Padding\n\tconst showPaddingControl = useHasPadding( settings );\n\tconst rawPadding = decodeValue( inheritedValue?.spacing?.padding );\n\tconst paddingValues = splitStyleValue( rawPadding );\n\tconst paddingSides = Array.isArray( settings?.spacing?.padding )\n\t\t? settings?.spacing?.padding\n\t\t: settings?.spacing?.padding?.sides;\n\tconst isAxialPadding =\n\t\tpaddingSides &&\n\t\tpaddingSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setPaddingValues = ( newPaddingValues ) => {\n\t\tconst padding = filterValuesBySides( newPaddingValues, paddingSides );\n\t\tonChange( setImmutably( value, [ 'spacing', 'padding' ], padding ) );\n\t};\n\tconst hasPaddingValue = () =>\n\t\t!! value?.spacing?.padding &&\n\t\tObject.keys( value?.spacing?.padding ).length;\n\tconst resetPaddingValue = () => setPaddingValues( undefined );\n\tconst onMouseOverPadding = () => onVisualize( 'padding' );\n\n\t// Margin\n\tconst showMarginControl = useHasMargin( settings );\n\tconst rawMargin = decodeValue( inheritedValue?.spacing?.margin );\n\tconst marginValues = splitStyleValue( rawMargin );\n\tconst marginSides = Array.isArray( settings?.spacing?.margin )\n\t\t? settings?.spacing?.margin\n\t\t: settings?.spacing?.margin?.sides;\n\tconst isAxialMargin =\n\t\tmarginSides &&\n\t\tmarginSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setMarginValues = ( newMarginValues ) => {\n\t\tconst margin = filterValuesBySides( newMarginValues, marginSides );\n\t\tonChange( setImmutably( value, [ 'spacing', 'margin' ], margin ) );\n\t};\n\tconst hasMarginValue = () =>\n\t\t!! value?.spacing?.margin &&\n\t\tObject.keys( value?.spacing?.margin ).length;\n\tconst resetMarginValue = () => setMarginValues( undefined );\n\tconst onMouseOverMargin = () => onVisualize( 'margin' );\n\n\t// Block Gap\n\tconst showGapControl = useHasGap( settings );\n\tconst gapSides = Array.isArray( settings?.spacing?.blockGap )\n\t\t? settings?.spacing?.blockGap\n\t\t: settings?.spacing?.blockGap?.sides;\n\tconst isAxialGap =\n\t\tgapSides && gapSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst gapValue = decodeValue( inheritedValue?.spacing?.blockGap );\n\tconst gapValues = splitGapValue( gapValue, isAxialGap );\n\tconst setGapValue = ( newGapValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'spacing', 'blockGap' ], newGapValue )\n\t\t);\n\t};\n\tconst setGapValues = ( nextBoxGapValue ) => {\n\t\tif ( ! nextBoxGapValue ) {\n\t\t\tsetGapValue( null );\n\t\t}\n\t\t// If axial gap is not enabled, treat the 'top' value as the shorthand gap value.\n\t\tif ( ! isAxialGap && nextBoxGapValue?.hasOwnProperty( 'top' ) ) {\n\t\t\tsetGapValue( nextBoxGapValue.top );\n\t\t} else {\n\t\t\tsetGapValue( {\n\t\t\t\ttop: nextBoxGapValue?.top,\n\t\t\t\tleft: nextBoxGapValue?.left,\n\t\t\t} );\n\t\t}\n\t};\n\tconst resetGapValue = () => setGapValue( undefined );\n\tconst hasGapValue = () => !! value?.spacing?.blockGap;\n\n\t// Min Height\n\tconst showMinHeightControl = useHasMinHeight( settings );\n\tconst minHeightValue = decodeValue( inheritedValue?.dimensions?.minHeight );\n\tconst setMinHeightValue = ( newValue ) => {\n\t\tconst tempValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'dimensions', 'minHeight' ],\n\t\t\tnewValue\n\t\t);\n\t\t// Apply min-height, while removing any applied aspect ratio.\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\ttempValue,\n\t\t\t\t[ 'dimensions', 'aspectRatio' ],\n\t\t\t\tundefined\n\t\t\t)\n\t\t);\n\t};\n\tconst resetMinHeightValue = () => {\n\t\tsetMinHeightValue( undefined );\n\t};\n\tconst hasMinHeightValue = () => !! value?.dimensions?.minHeight;\n\n\t// Aspect Ratio\n\tconst showAspectRatioControl = useHasAspectRatio( settings );\n\tconst aspectRatioValue = decodeValue(\n\t\tinheritedValue?.dimensions?.aspectRatio\n\t);\n\tconst setAspectRatioValue = ( newValue ) => {\n\t\tconst tempValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'dimensions', 'aspectRatio' ],\n\t\t\tnewValue\n\t\t);\n\t\t// Apply aspect-ratio, while removing any applied min-height.\n\t\tonChange(\n\t\t\tsetImmutably( tempValue, [ 'dimensions', 'minHeight' ], undefined )\n\t\t);\n\t};\n\tconst hasAspectRatioValue = () => !! value?.dimensions?.aspectRatio;\n\n\t// Child Layout\n\tconst showChildLayoutControl = useHasChildLayout( settings );\n\tconst childLayout = inheritedValue?.layout;\n\n\tconst setChildLayout = ( newChildLayout ) => {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\tlayout: {\n\t\t\t\t...newChildLayout,\n\t\t\t},\n\t\t} );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tlayout: cleanEmptyObject( {\n\t\t\t\t...previousValue?.layout,\n\t\t\t\tcontentSize: undefined,\n\t\t\t\twideSize: undefined,\n\t\t\t\tselfStretch: undefined,\n\t\t\t\tflexSize: undefined,\n\t\t\t\tcolumnStart: undefined,\n\t\t\t\trowStart: undefined,\n\t\t\t\tcolumnSpan: undefined,\n\t\t\t\trowSpan: undefined,\n\t\t\t} ),\n\t\t\tspacing: {\n\t\t\t\t...previousValue?.spacing,\n\t\t\t\tpadding: undefined,\n\t\t\t\tmargin: undefined,\n\t\t\t\tblockGap: undefined,\n\t\t\t},\n\t\t\tdimensions: {\n\t\t\t\t...previousValue?.dimensions,\n\t\t\t\tminHeight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst onMouseLeaveControls = () => onVisualize( false );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ ( showContentSizeControl || showWideSizeControl ) && (\n\t\t\t\t<span className=\"span-columns\">\n\t\t\t\t\t{ __( 'Set the width of the main content area.' ) }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t\t{ showContentSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Content width' ) }\n\t\t\t\t\thasValue={ hasUserSetContentSizeValue }\n\t\t\t\t\tonDeselect={ resetContentSizeValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.contentSize ??\n\t\t\t\t\t\tDEFAULT_CONTROLS.contentSize\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Content width' ) }\n\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\tvalue={ contentSizeValue || '' }\n\t\t\t\t\t\tonChange={ ( nextContentSize ) => {\n\t\t\t\t\t\t\tsetContentSizeValue( nextContentSize );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t<InputControlPrefixWrapper variant=\"icon\">\n\t\t\t\t\t\t\t\t<Icon icon={ alignNone } />\n\t\t\t\t\t\t\t</InputControlPrefixWrapper>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showWideSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Wide width' ) }\n\t\t\t\t\thasValue={ hasUserSetWideSizeValue }\n\t\t\t\t\tonDeselect={ resetWideSizeValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.wideSize ?? DEFAULT_CONTROLS.wideSize\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Wide width' ) }\n\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\tvalue={ wideSizeValue || '' }\n\t\t\t\t\t\tonChange={ ( nextWideSize ) => {\n\t\t\t\t\t\t\tsetWideSizeValue( nextWideSize );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t<InputControlPrefixWrapper variant=\"icon\">\n\t\t\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t\t\t</InputControlPrefixWrapper>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showPaddingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasPaddingValue }\n\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\tonDeselect={ resetPaddingValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.padding ?? DEFAULT_CONTROLS.padding\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialPadding }\n\t\t\t\t\t\t\tinputProps={ {\n\t\t\t\t\t\t\t\tonMouseOver: onMouseOverPadding,\n\t\t\t\t\t\t\t\tonMouseOut: onMouseLeaveControls,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverPadding }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMarginControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMarginValue }\n\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\tonDeselect={ resetMarginValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.margin ?? DEFAULT_CONTROLS.margin\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tinputProps={ {\n\t\t\t\t\t\t\t\tmin: minMarginValue,\n\t\t\t\t\t\t\t\tonDragStart: () => {\n\t\t\t\t\t\t\t\t\t// Reset to 0 in case the value was negative.\n\t\t\t\t\t\t\t\t\tsetMinMarginValue( 0 );\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tonDragEnd: () => {\n\t\t\t\t\t\t\t\t\tsetMinMarginValue( minimumMargin );\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tonMouseOver: onMouseOverMargin,\n\t\t\t\t\t\t\t\tonMouseOut: onMouseLeaveControls,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialMargin }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tminimumCustomValue={ -Infinity }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverMargin }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showGapControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasGapValue }\n\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\tonDeselect={ resetGapValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.blockGap ?? DEFAULT_CONTROLS.blockGap\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t\t'single-column':\n\t\t\t\t\t\t\t// If UnitControl is used, should be single-column.\n\t\t\t\t\t\t\t! showSpacingPresetsControl && ! isAxialGap,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl &&\n\t\t\t\t\t\t( isAxialGap ? (\n\t\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tsides={ gapSides }\n\t\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\t\tsplitOnAxis={ isAxialGap }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValue }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tvalue={ gapValue }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\tshowSideInLabel={ false }\n\t\t\t\t\t\t\tsides={ isAxialGap ? gapSides : [ 'top' ] } // Use 'top' as the shorthand property in non-axial configurations.\n\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showChildLayoutControl && (\n\t\t\t\t<ChildLayoutControl\n\t\t\t\t\tvalue={ childLayout }\n\t\t\t\t\tonChange={ setChildLayout }\n\t\t\t\t\tparentLayout={ settings?.parentLayout }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.childLayout ??\n\t\t\t\t\t\tDEFAULT_CONTROLS.childLayout\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showMinHeightControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMinHeightValue }\n\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\tonDeselect={ resetMinHeightValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.minHeight ?? DEFAULT_CONTROLS.minHeight\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<HeightControl\n\t\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\t\tvalue={ minHeightValue }\n\t\t\t\t\t\tonChange={ setMinHeightValue }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showAspectRatioControl && (\n\t\t\t\t<AspectRatioTool\n\t\t\t\t\thasValue={ hasAspectRatioValue }\n\t\t\t\t\tvalue={ aspectRatioValue }\n\t\t\t\t\tonChange={ setAspectRatioValue }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.aspectRatio ??\n\t\t\t\t\t\tDEFAULT_CONTROLS.aspectRatio\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6LE;AA1LF,kBAAiB;AAKjB,kBAAmB;AACnB,wBAOO;AACP,mBAA6C;AAC7C,qBAAgD;AAKhD,mBAAqE;AACrE,mCAAgC;AAChC,4BAA0B;AAC1B,kCAA+B;AAC/B,+BAA4B;AAC5B,IAAAA,gBAAiC;AACjC,oBAA6B;AAE7B,MAAM,cAAc,CAAE,cAAc,UAAW;AAExC,SAAS,sBAAuB,UAAW;AACjD,QAAM,iBAAiB,kBAAmB,QAAS;AACnD,QAAM,cAAc,eAAgB,QAAS;AAC7C,QAAM,aAAa,cAAe,QAAS;AAC3C,QAAM,YAAY,aAAc,QAAS;AACzC,QAAM,SAAS,UAAW,QAAS;AACnC,QAAM,eAAe,gBAAiB,QAAS;AAC/C,QAAM,iBAAiB,kBAAmB,QAAS;AACnD,QAAM,iBAAiB,kBAAmB,QAAS;AAEnD,SACC,wBAAS,OAAO,UACd,kBACD,eACA,cACA,aACA,UACA,gBACA,kBACA;AAEH;AAEA,SAAS,kBAAmB,UAAW;AACtC,SAAO,UAAU,QAAQ;AAC1B;AAEA,SAAS,eAAgB,UAAW;AACnC,SAAO,UAAU,QAAQ;AAC1B;AAEA,SAAS,cAAe,UAAW;AAClC,SAAO,UAAU,SAAS;AAC3B;AAEA,SAAS,aAAc,UAAW;AACjC,SAAO,UAAU,SAAS;AAC3B;AAEA,SAAS,UAAW,UAAW;AAC9B,SAAO,UAAU,SAAS;AAC3B;AAEA,SAAS,gBAAiB,UAAW;AACpC,SAAO,UAAU,YAAY;AAC9B;AAEA,SAAS,kBAAmB,UAAW;AACtC,SAAO,UAAU,YAAY;AAC9B;AAEA,SAAS,kBAAmB,UAAW;AACtC,QAAM;AAAA,IACL,MAAM,mBAAmB;AAAA,IACzB,SAAS,EAAE,MAAM,0BAA0B,UAAU,IAAI,CAAC;AAAA,IAC1D,wBAAwB;AAAA,EACzB,IAAI,UAAU,gBAAgB,CAAC;AAE/B,QAAM,WACH,4BAA4B,UAC7B,qBAAqB,UACrB,4BAA4B,UAC5B,qBAAqB,WACtB;AACD,SAAO,CAAC,CAAE,UAAU,UAAU;AAC/B;AAEA,SAAS,qBAAsB,UAAW;AACzC,QAAM,EAAE,qBAAqB,aAAa,IAAI,UAAU,WAAW,CAAC;AACpE,SACG,wBAAwB,SACzB,cAAc,SAAS,SAAS,KACjC,cAAc,OAAO,SAAS,KAC9B,cAAc,QAAQ,SAAS;AAEjC;AAEA,SAAS,oBAAqB,QAAQ,OAAQ;AAG7C,MAAK,CAAE,SAAS,CAAE,QAAS;AAC1B,WAAO;AAAA,EACR;AAGA,QAAM,iBAAiB,CAAC;AACxB,QAAM,QAAS,CAAE,SAAU;AAC1B,QAAK,SAAS,YAAa;AAC1B,qBAAe,MAAM,OAAO;AAC5B,qBAAe,SAAS,OAAO;AAAA,IAChC;AACA,QAAK,SAAS,cAAe;AAC5B,qBAAe,OAAO,OAAO;AAC7B,qBAAe,QAAQ,OAAO;AAAA,IAC/B;AACA,mBAAgB,IAAK,IAAI,SAAU,IAAK;AAAA,EACzC,CAAE;AAEF,SAAO;AACR;AAEA,SAAS,gBAAiB,OAAQ;AAEjC,MAAK,SAAS,OAAO,UAAU,UAAW;AAEzC,WAAO;AAAA,MACN,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,IACP;AAAA,EACD;AAEA,SAAO;AACR;AAEA,SAAS,cAAe,OAAO,YAAa;AAC3C,MAAK,CAAE,OAAQ;AACd,WAAO;AAAA,EACR;AAGA,MAAK,OAAO,UAAU,UAAW;AAQhC,WAAO,aACJ,EAAE,KAAK,OAAO,OAAO,OAAO,QAAQ,OAAO,MAAM,MAAM,IACvD,EAAE,KAAK,MAAM;AAAA,EACjB;AAEA,SAAO;AAAA,IACN,GAAG;AAAA,IACH,OAAO,OAAO;AAAA,IACd,QAAQ,OAAO;AAAA,EAChB;AACD;AAEA,SAAS,qBAAsB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,wBAAoB,6CAA+B;AACzD,QAAM,WAAW,MAAM;AACtB,UAAM,eAAe,eAAgB,KAAM;AAC3C,aAAU,YAAa;AAAA,EACxB;AAEA,SACC;AAAA,IAAC,kBAAAC;AAAA,IAAA;AAAA,MACA,WAAQ,gBAAI,YAAa;AAAA,MACzB;AAAA,MACA;AAAA,MACA;AAAA,MAEE;AAAA;AAAA,EACH;AAEF;AAEA,MAAM,mBAAmB;AAAA,EACxB,aAAa;AAAA,EACb,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,aAAa;AACd;AAEe,SAAR,gBAAkC;AAAA,EACxC,IAAI,UAAU;AAAA,EACd;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EACA,kBAAkB;AAAA,EAClB,cAAc,MAAM;AAAA,EAAC;AAAA;AAAA;AAAA,EAGrB,wBAAwB;AACzB,GAAI;AACH,QAAM,EAAE,YAAY,QAAQ,IAAI;AAEhC,QAAM,cAAc,CAAE,aAAc;AACnC,QAAK,YAAY,OAAO,aAAa,UAAW;AAC/C,aAAO,OAAO,KAAM,QAAS,EAAE,OAAQ,CAAE,KAAK,QAAS;AACtD,YAAK,GAAI,QAAI;AAAA,UACZ,EAAE,UAAU,EAAE,YAAY,QAAQ,EAAE;AAAA,UACpC;AAAA,UACA,SAAU,GAAI;AAAA,QACf;AACA,eAAO;AAAA,MACR,GAAG,CAAC,CAAE;AAAA,IACP;AACA,eAAO;AAAA,MACN,EAAE,UAAU,EAAE,YAAY,QAAQ,EAAE;AAAA,MACpC;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,QAAM,4BAA4B,qBAAsB,QAAS;AACjE,QAAM,YAAQ,kBAAAC,8BAAgB;AAAA,IAC7B,gBAAgB,UAAU,SAAS,SAAS;AAAA,MAC3C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD,CAAE;AAGF,QAAM,gBAAgB;AACtB,QAAM,CAAE,gBAAgB,iBAAkB,QAAI,yBAAU,aAAc;AAGtE,QAAM,yBACL,kBAAmB,QAAS,KAAK;AAClC,QAAM,mBAAmB,YAAa,gBAAgB,QAAQ,WAAY;AAC1E,QAAM,sBAAsB,CAAE,aAAc;AAC3C;AAAA,UACC;AAAA,QACC;AAAA,QACA,CAAE,UAAU,aAAc;AAAA,QAC1B,YAAY;AAAA,MACb;AAAA,IACD;AAAA,EACD;AACA,QAAM,6BAA6B,MAAM,CAAC,CAAE,OAAO,QAAQ;AAC3D,QAAM,wBAAwB,MAAM,oBAAqB,MAAU;AAGnE,QAAM,sBACL,eAAgB,QAAS,KAAK;AAC/B,QAAM,gBAAgB,YAAa,gBAAgB,QAAQ,QAAS;AACpE,QAAM,mBAAmB,CAAE,aAAc;AACxC;AAAA,UACC;AAAA,QACC;AAAA,QACA,CAAE,UAAU,UAAW;AAAA,QACvB,YAAY;AAAA,MACb;AAAA,IACD;AAAA,EACD;AACA,QAAM,0BAA0B,MAAM,CAAC,CAAE,OAAO,QAAQ;AACxD,QAAM,qBAAqB,MAAM,iBAAkB,MAAU;AAG7D,QAAM,qBAAqB,cAAe,QAAS;AACnD,QAAM,aAAa,YAAa,gBAAgB,SAAS,OAAQ;AACjE,QAAM,gBAAgB,gBAAiB,UAAW;AAClD,QAAM,eAAe,MAAM,QAAS,UAAU,SAAS,OAAQ,IAC5D,UAAU,SAAS,UACnB,UAAU,SAAS,SAAS;AAC/B,QAAM,iBACL,gBACA,aAAa,KAAM,CAAE,SAAU,YAAY,SAAU,IAAK,CAAE;AAC7D,QAAM,mBAAmB,CAAE,qBAAsB;AAChD,UAAM,UAAU,oBAAqB,kBAAkB,YAAa;AACpE,iBAAU,4BAAc,OAAO,CAAE,WAAW,SAAU,GAAG,OAAQ,CAAE;AAAA,EACpE;AACA,QAAM,kBAAkB,MACvB,CAAC,CAAE,OAAO,SAAS,WACnB,OAAO,KAAM,OAAO,SAAS,OAAQ,EAAE;AACxC,QAAM,oBAAoB,MAAM,iBAAkB,MAAU;AAC5D,QAAM,qBAAqB,MAAM,YAAa,SAAU;AAGxD,QAAM,oBAAoB,aAAc,QAAS;AACjD,QAAM,YAAY,YAAa,gBAAgB,SAAS,MAAO;AAC/D,QAAM,eAAe,gBAAiB,SAAU;AAChD,QAAM,cAAc,MAAM,QAAS,UAAU,SAAS,MAAO,IAC1D,UAAU,SAAS,SACnB,UAAU,SAAS,QAAQ;AAC9B,QAAM,gBACL,eACA,YAAY,KAAM,CAAE,SAAU,YAAY,SAAU,IAAK,CAAE;AAC5D,QAAM,kBAAkB,CAAE,oBAAqB;AAC9C,UAAM,SAAS,oBAAqB,iBAAiB,WAAY;AACjE,iBAAU,4BAAc,OAAO,CAAE,WAAW,QAAS,GAAG,MAAO,CAAE;AAAA,EAClE;AACA,QAAM,iBAAiB,MACtB,CAAC,CAAE,OAAO,SAAS,UACnB,OAAO,KAAM,OAAO,SAAS,MAAO,EAAE;AACvC,QAAM,mBAAmB,MAAM,gBAAiB,MAAU;AAC1D,QAAM,oBAAoB,MAAM,YAAa,QAAS;AAGtD,QAAM,iBAAiB,UAAW,QAAS;AAC3C,QAAM,WAAW,MAAM,QAAS,UAAU,SAAS,QAAS,IACzD,UAAU,SAAS,WACnB,UAAU,SAAS,UAAU;AAChC,QAAM,aACL,YAAY,SAAS,KAAM,CAAE,SAAU,YAAY,SAAU,IAAK,CAAE;AACrE,QAAM,WAAW,YAAa,gBAAgB,SAAS,QAAS;AAChE,QAAM,YAAY,cAAe,UAAU,UAAW;AACtD,QAAM,cAAc,CAAE,gBAAiB;AACtC;AAAA,UACC,4BAAc,OAAO,CAAE,WAAW,UAAW,GAAG,WAAY;AAAA,IAC7D;AAAA,EACD;AACA,QAAM,eAAe,CAAE,oBAAqB;AAC3C,QAAK,CAAE,iBAAkB;AACxB,kBAAa,IAAK;AAAA,IACnB;AAEA,QAAK,CAAE,cAAc,iBAAiB,eAAgB,KAAM,GAAI;AAC/D,kBAAa,gBAAgB,GAAI;AAAA,IAClC,OAAO;AACN,kBAAa;AAAA,QACZ,KAAK,iBAAiB;AAAA,QACtB,MAAM,iBAAiB;AAAA,MACxB,CAAE;AAAA,IACH;AAAA,EACD;AACA,QAAM,gBAAgB,MAAM,YAAa,MAAU;AACnD,QAAM,cAAc,MAAM,CAAC,CAAE,OAAO,SAAS;AAG7C,QAAM,uBAAuB,gBAAiB,QAAS;AACvD,QAAM,iBAAiB,YAAa,gBAAgB,YAAY,SAAU;AAC1E,QAAM,oBAAoB,CAAE,aAAc;AACzC,UAAM,gBAAY;AAAA,MACjB;AAAA,MACA,CAAE,cAAc,WAAY;AAAA,MAC5B;AAAA,IACD;AAEA;AAAA,UACC;AAAA,QACC;AAAA,QACA,CAAE,cAAc,aAAc;AAAA,QAC9B;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACA,QAAM,sBAAsB,MAAM;AACjC,sBAAmB,MAAU;AAAA,EAC9B;AACA,QAAM,oBAAoB,MAAM,CAAC,CAAE,OAAO,YAAY;AAGtD,QAAM,yBAAyB,kBAAmB,QAAS;AAC3D,QAAM,mBAAmB;AAAA,IACxB,gBAAgB,YAAY;AAAA,EAC7B;AACA,QAAM,sBAAsB,CAAE,aAAc;AAC3C,UAAM,gBAAY;AAAA,MACjB;AAAA,MACA,CAAE,cAAc,aAAc;AAAA,MAC9B;AAAA,IACD;AAEA;AAAA,UACC,4BAAc,WAAW,CAAE,cAAc,WAAY,GAAG,MAAU;AAAA,IACnE;AAAA,EACD;AACA,QAAM,sBAAsB,MAAM,CAAC,CAAE,OAAO,YAAY;AAGxD,QAAM,yBAAyB,kBAAmB,QAAS;AAC3D,QAAM,cAAc,gBAAgB;AAEpC,QAAM,iBAAiB,CAAE,mBAAoB;AAC5C,aAAU;AAAA,MACT,GAAG;AAAA,MACH,QAAQ;AAAA,QACP,GAAG;AAAA,MACJ;AAAA,IACD,CAAE;AAAA,EACH;AAEA,QAAM,qBAAiB,4BAAa,CAAE,kBAAmB;AACxD,WAAO;AAAA,MACN,GAAG;AAAA,MACH,YAAQ,gCAAkB;AAAA,QACzB,GAAG,eAAe;AAAA,QAClB,aAAa;AAAA,QACb,UAAU;AAAA,QACV,aAAa;AAAA,QACb,UAAU;AAAA,QACV,aAAa;AAAA,QACb,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,SAAS;AAAA,MACV,CAAE;AAAA,MACF,SAAS;AAAA,QACR,GAAG,eAAe;AAAA,QAClB,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,UAAU;AAAA,MACX;AAAA,MACA,YAAY;AAAA,QACX,GAAG,eAAe;AAAA,QAClB,WAAW;AAAA,QACX,aAAa;AAAA,MACd;AAAA,IACD;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,QAAM,uBAAuB,MAAM,YAAa,KAAM;AAEtD,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEI;AAAA,mCAA0B,wBAC7B,4CAAC,UAAK,WAAU,gBACb,8BAAI,yCAA0C,GACjD;AAAA,QAEC,0BACD;AAAA,UAAC,kBAAAC;AAAA,UAAA;AAAA,YACA,WAAQ,gBAAI,eAAgB;AAAA,YAC5B,UAAW;AAAA,YACX,YAAa;AAAA,YACb,kBACC,gBAAgB,eAChB,iBAAiB;AAAA,YAElB;AAAA,YAEA;AAAA,cAAC,kBAAAC;AAAA,cAAA;AAAA,gBACA,uBAAqB;AAAA,gBACrB,WAAQ,gBAAI,eAAgB;AAAA,gBAC5B,eAAc;AAAA,gBACd,OAAQ,oBAAoB;AAAA,gBAC5B,UAAW,CAAE,oBAAqB;AACjC,sCAAqB,eAAgB;AAAA,gBACtC;AAAA,gBACA;AAAA,gBACA,QACC,4CAAC,kBAAAC,yCAAA,EAA0B,SAAQ,QAClC,sDAAC,qBAAK,MAAO,wBAAY,GAC1B;AAAA;AAAA,YAEF;AAAA;AAAA,QACD;AAAA,QAEC,uBACD;AAAA,UAAC,kBAAAF;AAAA,UAAA;AAAA,YACA,WAAQ,gBAAI,YAAa;AAAA,YACzB,UAAW;AAAA,YACX,YAAa;AAAA,YACb,kBACC,gBAAgB,YAAY,iBAAiB;AAAA,YAE9C;AAAA,YAEA;AAAA,cAAC,kBAAAC;AAAA,cAAA;AAAA,gBACA,uBAAqB;AAAA,gBACrB,WAAQ,gBAAI,YAAa;AAAA,gBACzB,eAAc;AAAA,gBACd,OAAQ,iBAAiB;AAAA,gBACzB,UAAW,CAAE,iBAAkB;AAC9B,mCAAkB,YAAa;AAAA,gBAChC;AAAA,gBACA;AAAA,gBACA,QACC,4CAAC,kBAAAC,yCAAA,EAA0B,SAAQ,QAClC,sDAAC,qBAAK,MAAO,0BAAc,GAC5B;AAAA;AAAA,YAEF;AAAA;AAAA,QACD;AAAA,QAEC,sBACD;AAAA,UAAC,kBAAAF;AAAA,UAAA;AAAA,YACA,UAAW;AAAA,YACX,WAAQ,gBAAI,SAAU;AAAA,YACtB,YAAa;AAAA,YACb,kBACC,gBAAgB,WAAW,iBAAiB;AAAA,YAE7C,eAAY,YAAAG,SAAM;AAAA,cACjB,4BAA4B;AAAA,YAC7B,CAAE;AAAA,YACF;AAAA,YAEE;AAAA,eAAE,6BACH;AAAA,gBAAC;AAAA;AAAA,kBACA,uBAAqB;AAAA,kBACrB,QAAS;AAAA,kBACT,UAAW;AAAA,kBACX,WAAQ,gBAAI,SAAU;AAAA,kBACtB,OAAQ;AAAA,kBACR;AAAA,kBACA,YAAa;AAAA,kBACb,aAAc;AAAA,kBACd,YAAa;AAAA,oBACZ,aAAa;AAAA,oBACb,YAAY;AAAA,kBACb;AAAA;AAAA,cACD;AAAA,cAEC,6BACD;AAAA,gBAAC,6BAAAC;AAAA,gBAAA;AAAA,kBACA,QAAS;AAAA,kBACT,UAAW;AAAA,kBACX,WAAQ,gBAAI,SAAU;AAAA,kBACtB,OAAQ;AAAA,kBACR;AAAA,kBACA,YAAa;AAAA,kBACb,aAAc;AAAA,kBACd,YAAa;AAAA;AAAA,cACd;AAAA;AAAA;AAAA,QAEF;AAAA,QAEC,qBACD;AAAA,UAAC,kBAAAJ;AAAA,UAAA;AAAA,YACA,UAAW;AAAA,YACX,WAAQ,gBAAI,QAAS;AAAA,YACrB,YAAa;AAAA,YACb,kBACC,gBAAgB,UAAU,iBAAiB;AAAA,YAE5C,eAAY,YAAAG,SAAM;AAAA,cACjB,4BAA4B;AAAA,YAC7B,CAAE;AAAA,YACF;AAAA,YAEE;AAAA,eAAE,6BACH;AAAA,gBAAC;AAAA;AAAA,kBACA,uBAAqB;AAAA,kBACrB,QAAS;AAAA,kBACT,UAAW;AAAA,kBACX,YAAa;AAAA,oBACZ,KAAK;AAAA,oBACL,aAAa,MAAM;AAElB,wCAAmB,CAAE;AAAA,oBACtB;AAAA,oBACA,WAAW,MAAM;AAChB,wCAAmB,aAAc;AAAA,oBAClC;AAAA,oBACA,aAAa;AAAA,oBACb,YAAY;AAAA,kBACb;AAAA,kBACA,WAAQ,gBAAI,QAAS;AAAA,kBACrB,OAAQ;AAAA,kBACR;AAAA,kBACA,YAAa;AAAA,kBACb,aAAc;AAAA;AAAA,cACf;AAAA,cAEC,6BACD;AAAA,gBAAC,6BAAAC;AAAA,gBAAA;AAAA,kBACA,QAAS;AAAA,kBACT,UAAW;AAAA,kBACX,oBAAqB;AAAA,kBACrB,WAAQ,gBAAI,QAAS;AAAA,kBACrB,OAAQ;AAAA,kBACR;AAAA,kBACA,YAAa;AAAA,kBACb,aAAc;AAAA,kBACd,YAAa;AAAA;AAAA,cACd;AAAA;AAAA;AAAA,QAEF;AAAA,QAEC,kBACD;AAAA,UAAC,kBAAAJ;AAAA,UAAA;AAAA,YACA,UAAW;AAAA,YACX,WAAQ,gBAAI,eAAgB;AAAA,YAC5B,YAAa;AAAA,YACb,kBACC,gBAAgB,YAAY,iBAAiB;AAAA,YAE9C,eAAY,YAAAG,SAAM;AAAA,cACjB,4BAA4B;AAAA,cAC5B;AAAA;AAAA,gBAEC,CAAE,6BAA6B,CAAE;AAAA;AAAA,YACnC,CAAE;AAAA,YACF;AAAA,YAEE;AAAA,eAAE,8BACD,aACD;AAAA,gBAAC;AAAA;AAAA,kBACA,uBAAqB;AAAA,kBACrB,WAAQ,gBAAI,eAAgB;AAAA,kBAC5B,KAAM;AAAA,kBACN,UAAW;AAAA,kBACX;AAAA,kBACA,OAAQ;AAAA,kBACR,QAAS;AAAA,kBACT,YAAa;AAAA,kBACb,aAAc;AAAA;AAAA,cACf,IAEA;AAAA,gBAAC,kBAAAF;AAAA,gBAAA;AAAA,kBACA,uBAAqB;AAAA,kBACrB,WAAQ,gBAAI,eAAgB;AAAA,kBAC5B,KAAM;AAAA,kBACN,UAAW;AAAA,kBACX;AAAA,kBACA,OAAQ;AAAA;AAAA,cACT;AAAA,cAEA,6BACD;AAAA,gBAAC,6BAAAG;AAAA,gBAAA;AAAA,kBACA,WAAQ,gBAAI,eAAgB;AAAA,kBAC5B,KAAM;AAAA,kBACN,UAAW;AAAA,kBACX,iBAAkB;AAAA,kBAClB,OAAQ,aAAa,WAAW,CAAE,KAAM;AAAA,kBACxC,QAAS;AAAA,kBACT,YAAa;AAAA;AAAA,cACd;AAAA;AAAA;AAAA,QAEF;AAAA,QAEC,0BACD;AAAA,UAAC,4BAAAC;AAAA,UAAA;AAAA,YACA,OAAQ;AAAA,YACR,UAAW;AAAA,YACX,cAAe,UAAU;AAAA,YACzB;AAAA,YACA,kBACC,gBAAgB,eAChB,iBAAiB;AAAA;AAAA,QAEnB;AAAA,QAEC,wBACD;AAAA,UAAC,kBAAAL;AAAA,UAAA;AAAA,YACA,UAAW;AAAA,YACX,WAAQ,gBAAI,gBAAiB;AAAA,YAC7B,YAAa;AAAA,YACb,kBACC,gBAAgB,aAAa,iBAAiB;AAAA,YAE/C;AAAA,YAEA;AAAA,cAAC,sBAAAM;AAAA,cAAA;AAAA,gBACA,WAAQ,gBAAI,gBAAiB;AAAA,gBAC7B,OAAQ;AAAA,gBACR,UAAW;AAAA;AAAA,YACZ;AAAA;AAAA,QACD;AAAA,QAEC,0BACD;AAAA,UAAC,yBAAAC;AAAA,UAAA;AAAA,YACA,UAAW;AAAA,YACX,OAAQ;AAAA,YACR,UAAW;AAAA,YACX;AAAA,YACA,kBACC,gBAAgB,eAChB,iBAAiB;AAAA;AAAA,QAEnB;AAAA;AAAA;AAAA,EAEF;AAEF;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tBoxControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,\n} from '@wordpress/components';\nimport { Icon, alignNone, stretchWide } from '@wordpress/icons';\nimport { useCallback, useState, Platform } from '@wordpress/element';\nimport { getValueFromVariable } from '@wordpress/global-styles-engine';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from './utils';\nimport SpacingSizesControl from '../spacing-sizes-control';\nimport HeightControl from '../height-control';\nimport ChildLayoutControl from '../child-layout-control';\nimport AspectRatioTool from '../dimensions-tool/aspect-ratio-tool';\nimport { cleanEmptyObject } from '../../hooks/utils';\nimport { setImmutably } from '../../utils/object';\n\nconst AXIAL_SIDES = [ 'horizontal', 'vertical' ];\n\nexport function useHasDimensionsPanel( settings ) {\n\tconst hasContentSize = useHasContentSize( settings );\n\tconst hasWideSize = useHasWideSize( settings );\n\tconst hasPadding = useHasPadding( settings );\n\tconst hasMargin = useHasMargin( settings );\n\tconst hasGap = useHasGap( settings );\n\tconst hasMinHeight = useHasMinHeight( settings );\n\tconst hasAspectRatio = useHasAspectRatio( settings );\n\tconst hasChildLayout = useHasChildLayout( settings );\n\n\treturn (\n\t\tPlatform.OS === 'web' &&\n\t\t( hasContentSize ||\n\t\t\thasWideSize ||\n\t\t\thasPadding ||\n\t\t\thasMargin ||\n\t\t\thasGap ||\n\t\t\thasMinHeight ||\n\t\t\thasAspectRatio ||\n\t\t\thasChildLayout )\n\t);\n}\n\nfunction useHasContentSize( settings ) {\n\treturn settings?.layout?.contentSize;\n}\n\nfunction useHasWideSize( settings ) {\n\treturn settings?.layout?.wideSize;\n}\n\nfunction useHasPadding( settings ) {\n\treturn settings?.spacing?.padding;\n}\n\nfunction useHasMargin( settings ) {\n\treturn settings?.spacing?.margin;\n}\n\nfunction useHasGap( settings ) {\n\treturn settings?.spacing?.blockGap;\n}\n\nfunction useHasMinHeight( settings ) {\n\treturn settings?.dimensions?.minHeight;\n}\n\nfunction useHasAspectRatio( settings ) {\n\treturn settings?.dimensions?.aspectRatio;\n}\n\nfunction useHasChildLayout( settings ) {\n\tconst {\n\t\ttype: parentLayoutType = 'default',\n\t\tdefault: { type: defaultParentLayoutType = 'default' } = {},\n\t\tallowSizingOnChildren = false,\n\t} = settings?.parentLayout ?? {};\n\n\tconst support =\n\t\t( defaultParentLayoutType === 'flex' ||\n\t\t\tparentLayoutType === 'flex' ||\n\t\t\tdefaultParentLayoutType === 'grid' ||\n\t\t\tparentLayoutType === 'grid' ) &&\n\t\tallowSizingOnChildren;\n\treturn !! settings?.layout && support;\n}\n\nfunction useHasSpacingPresets( settings ) {\n\tconst { defaultSpacingSizes, spacingSizes } = settings?.spacing || {};\n\treturn (\n\t\t( defaultSpacingSizes !== false &&\n\t\t\tspacingSizes?.default?.length > 0 ) ||\n\t\tspacingSizes?.theme?.length > 0 ||\n\t\tspacingSizes?.custom?.length > 0\n\t);\n}\n\nfunction filterValuesBySides( values, sides ) {\n\t// If no custom side configuration, all sides are opted into by default.\n\t// Without any values, we have nothing to filter either.\n\tif ( ! sides || ! values ) {\n\t\treturn values;\n\t}\n\n\t// Only include sides opted into within filtered values.\n\tconst filteredValues = {};\n\tsides.forEach( ( side ) => {\n\t\tif ( side === 'vertical' ) {\n\t\t\tfilteredValues.top = values.top;\n\t\t\tfilteredValues.bottom = values.bottom;\n\t\t}\n\t\tif ( side === 'horizontal' ) {\n\t\t\tfilteredValues.left = values.left;\n\t\t\tfilteredValues.right = values.right;\n\t\t}\n\t\tfilteredValues[ side ] = values?.[ side ];\n\t} );\n\n\treturn filteredValues;\n}\n\nfunction splitStyleValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// Convert to value for individual sides for BoxControl.\n\t\treturn {\n\t\t\ttop: value,\n\t\t\tright: value,\n\t\t\tbottom: value,\n\t\t\tleft: value,\n\t\t};\n\t}\n\n\treturn value;\n}\n\nfunction splitGapValue( value, isAxialGap ) {\n\tif ( ! value ) {\n\t\treturn value;\n\t}\n\n\t// Check for shorthand value (a string value).\n\tif ( typeof value === 'string' ) {\n\t\t/*\n\t\t * Map the string value to appropriate sides for the spacing control depending\n\t\t * on whether the current block has axial gap support or not.\n\t\t *\n\t\t * Note: The axial value pairs must match for the spacing control to display\n\t\t * the appropriate horizontal/vertical sliders.\n\t\t */\n\t\treturn isAxialGap\n\t\t\t? { top: value, right: value, bottom: value, left: value }\n\t\t\t: { top: value };\n\t}\n\n\treturn {\n\t\t...value,\n\t\tright: value?.left,\n\t\tbottom: value?.top,\n\t};\n}\n\nfunction DimensionsToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tcontentSize: true,\n\twideSize: true,\n\tpadding: true,\n\tmargin: true,\n\tblockGap: true,\n\tminHeight: true,\n\taspectRatio: true,\n\tchildLayout: true,\n};\n\nexport default function DimensionsPanel( {\n\tas: Wrapper = DimensionsToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n\tonVisualize = () => {},\n\t// Special case because the layout controls are not part of the dimensions panel\n\t// in global styles but not in block inspector.\n\tincludeLayoutControls = false,\n} ) {\n\tconst { dimensions, spacing } = settings;\n\n\tconst decodeValue = ( rawValue ) => {\n\t\tif ( rawValue && typeof rawValue === 'object' ) {\n\t\t\treturn Object.keys( rawValue ).reduce( ( acc, key ) => {\n\t\t\t\tacc[ key ] = getValueFromVariable(\n\t\t\t\t\t{ settings: { dimensions, spacing } },\n\t\t\t\t\t'',\n\t\t\t\t\trawValue[ key ]\n\t\t\t\t);\n\t\t\t\treturn acc;\n\t\t\t}, {} );\n\t\t}\n\t\treturn getValueFromVariable(\n\t\t\t{ settings: { dimensions, spacing } },\n\t\t\t'',\n\t\t\trawValue\n\t\t);\n\t};\n\n\tconst showSpacingPresetsControl = useHasSpacingPresets( settings );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: settings?.spacing?.units || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t],\n\t} );\n\n\t//Minimum Margin Value\n\tconst minimumMargin = -Infinity;\n\tconst [ minMarginValue, setMinMarginValue ] = useState( minimumMargin );\n\n\t// Content Width\n\tconst showContentSizeControl =\n\t\tuseHasContentSize( settings ) && includeLayoutControls;\n\tconst contentSizeValue = decodeValue( inheritedValue?.layout?.contentSize );\n\tconst setContentSizeValue = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'layout', 'contentSize' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasUserSetContentSizeValue = () => !! value?.layout?.contentSize;\n\tconst resetContentSizeValue = () => setContentSizeValue( undefined );\n\n\t// Wide Width\n\tconst showWideSizeControl =\n\t\tuseHasWideSize( settings ) && includeLayoutControls;\n\tconst wideSizeValue = decodeValue( inheritedValue?.layout?.wideSize );\n\tconst setWideSizeValue = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'layout', 'wideSize' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasUserSetWideSizeValue = () => !! value?.layout?.wideSize;\n\tconst resetWideSizeValue = () => setWideSizeValue( undefined );\n\n\t// Padding\n\tconst showPaddingControl = useHasPadding( settings );\n\tconst rawPadding = decodeValue( inheritedValue?.spacing?.padding );\n\tconst paddingValues = splitStyleValue( rawPadding );\n\tconst paddingSides = Array.isArray( settings?.spacing?.padding )\n\t\t? settings?.spacing?.padding\n\t\t: settings?.spacing?.padding?.sides;\n\tconst isAxialPadding =\n\t\tpaddingSides &&\n\t\tpaddingSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setPaddingValues = ( newPaddingValues ) => {\n\t\tconst padding = filterValuesBySides( newPaddingValues, paddingSides );\n\t\tonChange( setImmutably( value, [ 'spacing', 'padding' ], padding ) );\n\t};\n\tconst hasPaddingValue = () =>\n\t\t!! value?.spacing?.padding &&\n\t\tObject.keys( value?.spacing?.padding ).length;\n\tconst resetPaddingValue = () => setPaddingValues( undefined );\n\tconst onMouseOverPadding = () => onVisualize( 'padding' );\n\n\t// Margin\n\tconst showMarginControl = useHasMargin( settings );\n\tconst rawMargin = decodeValue( inheritedValue?.spacing?.margin );\n\tconst marginValues = splitStyleValue( rawMargin );\n\tconst marginSides = Array.isArray( settings?.spacing?.margin )\n\t\t? settings?.spacing?.margin\n\t\t: settings?.spacing?.margin?.sides;\n\tconst isAxialMargin =\n\t\tmarginSides &&\n\t\tmarginSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setMarginValues = ( newMarginValues ) => {\n\t\tconst margin = filterValuesBySides( newMarginValues, marginSides );\n\t\tonChange( setImmutably( value, [ 'spacing', 'margin' ], margin ) );\n\t};\n\tconst hasMarginValue = () =>\n\t\t!! value?.spacing?.margin &&\n\t\tObject.keys( value?.spacing?.margin ).length;\n\tconst resetMarginValue = () => setMarginValues( undefined );\n\tconst onMouseOverMargin = () => onVisualize( 'margin' );\n\n\t// Block Gap\n\tconst showGapControl = useHasGap( settings );\n\tconst gapSides = Array.isArray( settings?.spacing?.blockGap )\n\t\t? settings?.spacing?.blockGap\n\t\t: settings?.spacing?.blockGap?.sides;\n\tconst isAxialGap =\n\t\tgapSides && gapSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst gapValue = decodeValue( inheritedValue?.spacing?.blockGap );\n\tconst gapValues = splitGapValue( gapValue, isAxialGap );\n\tconst setGapValue = ( newGapValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'spacing', 'blockGap' ], newGapValue )\n\t\t);\n\t};\n\tconst setGapValues = ( nextBoxGapValue ) => {\n\t\tif ( ! nextBoxGapValue ) {\n\t\t\tsetGapValue( null );\n\t\t}\n\t\t// If axial gap is not enabled, treat the 'top' value as the shorthand gap value.\n\t\tif ( ! isAxialGap && nextBoxGapValue?.hasOwnProperty( 'top' ) ) {\n\t\t\tsetGapValue( nextBoxGapValue.top );\n\t\t} else {\n\t\t\tsetGapValue( {\n\t\t\t\ttop: nextBoxGapValue?.top,\n\t\t\t\tleft: nextBoxGapValue?.left,\n\t\t\t} );\n\t\t}\n\t};\n\tconst resetGapValue = () => setGapValue( undefined );\n\tconst hasGapValue = () => !! value?.spacing?.blockGap;\n\n\t// Min Height\n\tconst showMinHeightControl = useHasMinHeight( settings );\n\tconst minHeightValue = decodeValue( inheritedValue?.dimensions?.minHeight );\n\tconst setMinHeightValue = ( newValue ) => {\n\t\tconst tempValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'dimensions', 'minHeight' ],\n\t\t\tnewValue\n\t\t);\n\t\t// Apply min-height, while removing any applied aspect ratio.\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\ttempValue,\n\t\t\t\t[ 'dimensions', 'aspectRatio' ],\n\t\t\t\tundefined\n\t\t\t)\n\t\t);\n\t};\n\tconst resetMinHeightValue = () => {\n\t\tsetMinHeightValue( undefined );\n\t};\n\tconst hasMinHeightValue = () => !! value?.dimensions?.minHeight;\n\n\t// Aspect Ratio\n\tconst showAspectRatioControl = useHasAspectRatio( settings );\n\tconst aspectRatioValue = decodeValue(\n\t\tinheritedValue?.dimensions?.aspectRatio\n\t);\n\tconst setAspectRatioValue = ( newValue ) => {\n\t\tconst tempValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'dimensions', 'aspectRatio' ],\n\t\t\tnewValue\n\t\t);\n\t\t// Apply aspect-ratio, while removing any applied min-height.\n\t\tonChange(\n\t\t\tsetImmutably( tempValue, [ 'dimensions', 'minHeight' ], undefined )\n\t\t);\n\t};\n\tconst hasAspectRatioValue = () => !! value?.dimensions?.aspectRatio;\n\n\t// Child Layout\n\tconst showChildLayoutControl = useHasChildLayout( settings );\n\tconst childLayout = inheritedValue?.layout;\n\n\tconst setChildLayout = ( newChildLayout ) => {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\tlayout: {\n\t\t\t\t...newChildLayout,\n\t\t\t},\n\t\t} );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tlayout: cleanEmptyObject( {\n\t\t\t\t...previousValue?.layout,\n\t\t\t\tcontentSize: undefined,\n\t\t\t\twideSize: undefined,\n\t\t\t\tselfStretch: undefined,\n\t\t\t\tflexSize: undefined,\n\t\t\t\tcolumnStart: undefined,\n\t\t\t\trowStart: undefined,\n\t\t\t\tcolumnSpan: undefined,\n\t\t\t\trowSpan: undefined,\n\t\t\t} ),\n\t\t\tspacing: {\n\t\t\t\t...previousValue?.spacing,\n\t\t\t\tpadding: undefined,\n\t\t\t\tmargin: undefined,\n\t\t\t\tblockGap: undefined,\n\t\t\t},\n\t\t\tdimensions: {\n\t\t\t\t...previousValue?.dimensions,\n\t\t\t\tminHeight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst onMouseLeaveControls = () => onVisualize( false );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ ( showContentSizeControl || showWideSizeControl ) && (\n\t\t\t\t<span className=\"span-columns\">\n\t\t\t\t\t{ __( 'Set the width of the main content area.' ) }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t\t{ showContentSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Content width' ) }\n\t\t\t\t\thasValue={ hasUserSetContentSizeValue }\n\t\t\t\t\tonDeselect={ resetContentSizeValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.contentSize ??\n\t\t\t\t\t\tDEFAULT_CONTROLS.contentSize\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Content width' ) }\n\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\tvalue={ contentSizeValue || '' }\n\t\t\t\t\t\tonChange={ ( nextContentSize ) => {\n\t\t\t\t\t\t\tsetContentSizeValue( nextContentSize );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t<InputControlPrefixWrapper variant=\"icon\">\n\t\t\t\t\t\t\t\t<Icon icon={ alignNone } />\n\t\t\t\t\t\t\t</InputControlPrefixWrapper>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showWideSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Wide width' ) }\n\t\t\t\t\thasValue={ hasUserSetWideSizeValue }\n\t\t\t\t\tonDeselect={ resetWideSizeValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.wideSize ?? DEFAULT_CONTROLS.wideSize\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Wide width' ) }\n\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\tvalue={ wideSizeValue || '' }\n\t\t\t\t\t\tonChange={ ( nextWideSize ) => {\n\t\t\t\t\t\t\tsetWideSizeValue( nextWideSize );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t<InputControlPrefixWrapper variant=\"icon\">\n\t\t\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t\t\t</InputControlPrefixWrapper>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showPaddingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasPaddingValue }\n\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\tonDeselect={ resetPaddingValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.padding ?? DEFAULT_CONTROLS.padding\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialPadding }\n\t\t\t\t\t\t\tinputProps={ {\n\t\t\t\t\t\t\t\tonMouseOver: onMouseOverPadding,\n\t\t\t\t\t\t\t\tonMouseOut: onMouseLeaveControls,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverPadding }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMarginControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMarginValue }\n\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\tonDeselect={ resetMarginValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.margin ?? DEFAULT_CONTROLS.margin\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tinputProps={ {\n\t\t\t\t\t\t\t\tmin: minMarginValue,\n\t\t\t\t\t\t\t\tonDragStart: () => {\n\t\t\t\t\t\t\t\t\t// Reset to 0 in case the value was negative.\n\t\t\t\t\t\t\t\t\tsetMinMarginValue( 0 );\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tonDragEnd: () => {\n\t\t\t\t\t\t\t\t\tsetMinMarginValue( minimumMargin );\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tonMouseOver: onMouseOverMargin,\n\t\t\t\t\t\t\t\tonMouseOut: onMouseLeaveControls,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialMargin }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tminimumCustomValue={ -Infinity }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverMargin }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showGapControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasGapValue }\n\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\tonDeselect={ resetGapValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.blockGap ?? DEFAULT_CONTROLS.blockGap\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t\t'single-column':\n\t\t\t\t\t\t\t// If UnitControl is used, should be single-column.\n\t\t\t\t\t\t\t! showSpacingPresetsControl && ! isAxialGap,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl &&\n\t\t\t\t\t\t( isAxialGap ? (\n\t\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tsides={ gapSides }\n\t\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\t\tsplitOnAxis={ isAxialGap }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValue }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tvalue={ gapValue }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\tshowSideInLabel={ false }\n\t\t\t\t\t\t\tsides={ isAxialGap ? gapSides : [ 'top' ] } // Use 'top' as the shorthand property in non-axial configurations.\n\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showChildLayoutControl && (\n\t\t\t\t<ChildLayoutControl\n\t\t\t\t\tvalue={ childLayout }\n\t\t\t\t\tonChange={ setChildLayout }\n\t\t\t\t\tparentLayout={ settings?.parentLayout }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.childLayout ??\n\t\t\t\t\t\tDEFAULT_CONTROLS.childLayout\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showMinHeightControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMinHeightValue }\n\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\tonDeselect={ resetMinHeightValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.minHeight ?? DEFAULT_CONTROLS.minHeight\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<HeightControl\n\t\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\t\tvalue={ minHeightValue }\n\t\t\t\t\t\tonChange={ setMinHeightValue }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showAspectRatioControl && (\n\t\t\t\t<AspectRatioTool\n\t\t\t\t\thasValue={ hasAspectRatioValue }\n\t\t\t\t\tvalue={ aspectRatioValue }\n\t\t\t\t\tonChange={ setAspectRatioValue }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.aspectRatio ??\n\t\t\t\t\t\tDEFAULT_CONTROLS.aspectRatio\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_utils", "ToolsPanel", "useCustomUnits", "ToolsPanelItem", "UnitControl", "InputControlPrefixWrapper", "clsx", "SpacingSizesControl", "ChildLayoutControl", "HeightControl", "AspectRatioTool"]
7
7
  }
@@ -38,6 +38,7 @@ var import_components = require("@wordpress/components");
38
38
  var import_i18n = require("@wordpress/i18n");
39
39
  var import_element = require("@wordpress/element");
40
40
  var import_icons = require("@wordpress/icons");
41
+ var import_global_styles_engine = require("@wordpress/global-styles-engine");
41
42
  var import_utils = require("./utils");
42
43
  var import_object = require("../../utils/object");
43
44
  const EMPTY_ARRAY = [];
@@ -147,7 +148,7 @@ function FiltersPanel({
147
148
  panelId,
148
149
  defaultControls = DEFAULT_CONTROLS
149
150
  }) {
150
- const decodeValue = (rawValue) => (0, import_utils.getValueFromVariable)({ settings }, "", rawValue);
151
+ const decodeValue = (rawValue) => (0, import_global_styles_engine.getValueFromVariable)({ settings }, "", rawValue);
151
152
  const hasDuotoneEnabled = useHasDuotoneControl(settings);
152
153
  const duotonePalette = useMultiOriginColorPresets(settings, {
153
154
  presetSetting: "duotone",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/global-styles/filters-panel.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalHStack as HStack,\n\t__experimentalZStack as ZStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tMenuGroup,\n\tColorIndicator,\n\tDuotonePicker,\n\tDuotoneSwatch,\n\tDropdown,\n\tFlex,\n\tFlexItem,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useCallback, useMemo, useRef } from '@wordpress/element';\nimport { reset as resetIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable, useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst EMPTY_ARRAY = [];\nfunction useMultiOriginColorPresets(\n\tsettings,\n\t{ presetSetting, defaultSetting }\n) {\n\tconst disableDefault = ! settings?.color?.[ defaultSetting ];\n\tconst userPresets =\n\t\tsettings?.color?.[ presetSetting ]?.custom || EMPTY_ARRAY;\n\tconst themePresets =\n\t\tsettings?.color?.[ presetSetting ]?.theme || EMPTY_ARRAY;\n\tconst defaultPresets =\n\t\tsettings?.color?.[ presetSetting ]?.default || EMPTY_ARRAY;\n\treturn useMemo(\n\t\t() => [\n\t\t\t...userPresets,\n\t\t\t...themePresets,\n\t\t\t...( disableDefault ? EMPTY_ARRAY : defaultPresets ),\n\t\t],\n\t\t[ disableDefault, userPresets, themePresets, defaultPresets ]\n\t);\n}\n\nexport function useHasFiltersPanel( settings ) {\n\treturn useHasDuotoneControl( settings );\n}\n\nfunction useHasDuotoneControl( settings ) {\n\treturn (\n\t\tsettings.color.customDuotone ||\n\t\tsettings.color.defaultDuotone ||\n\t\tsettings.color.duotone.length > 0\n\t);\n}\n\nfunction FiltersToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ _x( 'Filters', 'Name for applying graphical effects' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tduotone: true,\n};\n\nconst popoverProps = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-duotone-control__popover',\n\theaderTitle: __( 'Duotone' ),\n};\n\nconst LabeledColorIndicator = ( { indicator, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t<Flex expanded={ false }>\n\t\t\t\t{ indicator === 'unset' || ! indicator ? (\n\t\t\t\t\t<ColorIndicator className=\"block-editor-duotone-control__unset-indicator\" />\n\t\t\t\t) : (\n\t\t\t\t\t<DuotoneSwatch values={ indicator } />\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</ZStack>\n\t\t<FlexItem title={ label }>{ label }</FlexItem>\n\t</HStack>\n);\n\nconst renderToggle =\n\t( duotone, resetDuotone ) =>\n\t( { onToggle, isOpen } ) => {\n\t\tconst duotoneButtonRef = useRef( undefined );\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles-filters-panel__dropdown-toggle',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\t'aria-expanded': isOpen,\n\t\t\tref: duotoneButtonRef,\n\t\t};\n\n\t\tconst removeButtonProps = {\n\t\t\tonClick: () => {\n\t\t\t\tif ( isOpen ) {\n\t\t\t\t\tonToggle();\n\t\t\t\t}\n\t\t\t\tresetDuotone();\n\t\t\t\t// Return focus to parent button.\n\t\t\t\tduotoneButtonRef.current?.focus();\n\t\t\t},\n\t\t\tclassName: 'block-editor-panel-duotone-settings__reset',\n\t\t\tlabel: __( 'Reset' ),\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button __next40pxDefaultSize { ...toggleProps }>\n\t\t\t\t\t<LabeledColorIndicator\n\t\t\t\t\t\tindicator={ duotone }\n\t\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\t/>\n\t\t\t\t</Button>\n\t\t\t\t{ duotone && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\t\t{ ...removeButtonProps }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\nexport default function FiltersPanel( {\n\tas: Wrapper = FiltersToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Duotone\n\tconst hasDuotoneEnabled = useHasDuotoneControl( settings );\n\tconst duotonePalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'duotone',\n\t\tdefaultSetting: 'defaultDuotone',\n\t} );\n\tconst colorPalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'palette',\n\t\tdefaultSetting: 'defaultPalette',\n\t} );\n\tconst duotone = decodeValue( inheritedValue?.filter?.duotone );\n\tconst setDuotone = ( newValue ) => {\n\t\tconst duotonePreset = duotonePalette.find( ( { colors } ) => {\n\t\t\treturn colors === newValue;\n\t\t} );\n\t\tconst duotoneValue = duotonePreset\n\t\t\t? `var:preset|duotone|${ duotonePreset.slug }`\n\t\t\t: newValue;\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'filter', 'duotone' ], duotoneValue )\n\t\t);\n\t};\n\tconst hasDuotone = () => !! value?.filter?.duotone;\n\tconst resetDuotone = () => setDuotone( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tfilter: {\n\t\t\t\t...previousValue.filter,\n\t\t\t\tduotone: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasDuotoneEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\thasValue={ hasDuotone }\n\t\t\t\t\tonDeselect={ resetDuotone }\n\t\t\t\t\tisShownByDefault={ defaultControls.duotone }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-filters-panel__dropdown\"\n\t\t\t\t\t\trenderToggle={ renderToggle( duotone, resetDuotone ) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<DropdownContentWrapper paddingSize=\"small\">\n\t\t\t\t\t\t\t\t<MenuGroup label={ __( 'Duotone' ) }>\n\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\t\t\t\t\t// TODO: Re-enable both when custom colors are supported for block-level styles.\n\t\t\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t\t\t\tdisableCustomDuotone\n\t\t\t\t\t\t\t\t\t\tvalue={ duotone }\n\t\t\t\t\t\t\t\t\t\tonChange={ setDuotone }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiFE;AA9EF,kBAAiB;AAKjB,wBAcO;AACP,kBAAuB;AACvB,qBAA6C;AAC7C,mBAAmC;AAKnC,mBAAqE;AACrE,oBAA6B;AAE7B,MAAM,cAAc,CAAC;AACrB,SAAS,2BACR,UACA,EAAE,eAAe,eAAe,GAC/B;AACD,QAAM,iBAAiB,CAAE,UAAU,QAAS,cAAe;AAC3D,QAAM,cACL,UAAU,QAAS,aAAc,GAAG,UAAU;AAC/C,QAAM,eACL,UAAU,QAAS,aAAc,GAAG,SAAS;AAC9C,QAAM,iBACL,UAAU,QAAS,aAAc,GAAG,WAAW;AAChD,aAAO;AAAA,IACN,MAAM;AAAA,MACL,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAK,iBAAiB,cAAc;AAAA,IACrC;AAAA,IACA,CAAE,gBAAgB,aAAa,cAAc,cAAe;AAAA,EAC7D;AACD;AAEO,SAAS,mBAAoB,UAAW;AAC9C,SAAO,qBAAsB,QAAS;AACvC;AAEA,SAAS,qBAAsB,UAAW;AACzC,SACC,SAAS,MAAM,iBACf,SAAS,MAAM,kBACf,SAAS,MAAM,QAAQ,SAAS;AAElC;AAEA,SAAS,kBAAmB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,wBAAoB,6CAA+B;AACzD,QAAM,WAAW,MAAM;AACtB,UAAM,eAAe,eAAgB,KAAM;AAC3C,aAAU,YAAa;AAAA,EACxB;AAEA,SACC;AAAA,IAAC,kBAAAA;AAAA,IAAA;AAAA,MACA,WAAQ,gBAAI,WAAW,qCAAsC;AAAA,MAC7D;AAAA,MACA;AAAA,MACA;AAAA,MAEE;AAAA;AAAA,EACH;AAEF;AAEA,MAAM,mBAAmB;AAAA,EACxB,SAAS;AACV;AAEA,MAAM,eAAe;AAAA,EACpB,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,iBAAa,gBAAI,SAAU;AAC5B;AAEA,MAAM,wBAAwB,CAAE,EAAE,WAAW,MAAM,MAClD,6CAAC,kBAAAC,sBAAA,EAAO,SAAQ,cACf;AAAA,8CAAC,kBAAAC,sBAAA,EAAO,WAAY,OAAQ,QAAS,IACpC,sDAAC,0BAAK,UAAW,OACd,wBAAc,WAAW,CAAE,YAC5B,4CAAC,oCAAe,WAAU,iDAAgD,IAE1E,4CAAC,mCAAc,QAAS,WAAY,GAEtC,GACD;AAAA,EACA,4CAAC,8BAAS,OAAQ,OAAU,iBAAO;AAAA,GACpC;AAGD,MAAM,eACL,CAAE,SAAS,iBACX,CAAE,EAAE,UAAU,OAAO,MAAO;AAC3B,QAAM,uBAAmB,uBAAQ,MAAU;AAE3C,QAAM,cAAc;AAAA,IACnB,SAAS;AAAA,IACT,eAAW,YAAAC;AAAA,MACV;AAAA,MACA,EAAE,WAAW,OAAO;AAAA,IACrB;AAAA,IACA,iBAAiB;AAAA,IACjB,KAAK;AAAA,EACN;AAEA,QAAM,oBAAoB;AAAA,IACzB,SAAS,MAAM;AACd,UAAK,QAAS;AACb,iBAAS;AAAA,MACV;AACA,mBAAa;AAEb,uBAAiB,SAAS,MAAM;AAAA,IACjC;AAAA,IACA,WAAW;AAAA,IACX,WAAO,gBAAI,OAAQ;AAAA,EACpB;AAEA,SACC,4EACC;AAAA,gDAAC,4BAAO,uBAAqB,MAAG,GAAG,aAClC;AAAA,MAAC;AAAA;AAAA,QACA,WAAY;AAAA,QACZ,WAAQ,gBAAI,SAAU;AAAA;AAAA,IACvB,GACD;AAAA,IACE,WACD;AAAA,MAAC;AAAA;AAAA,QACA,MAAK;AAAA,QACL,MAAO,aAAAC;AAAA,QACL,GAAG;AAAA;AAAA,IACN;AAAA,KAEF;AAEF;AAEc,SAAR,aAA+B;AAAA,EACrC,IAAI,UAAU;AAAA,EACd;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EACA,kBAAkB;AACnB,GAAI;AACH,QAAM,cAAc,CAAE,iBACrB,mCAAsB,EAAE,SAAS,GAAG,IAAI,QAAS;AAGlD,QAAM,oBAAoB,qBAAsB,QAAS;AACzD,QAAM,iBAAiB,2BAA4B,UAAU;AAAA,IAC5D,eAAe;AAAA,IACf,gBAAgB;AAAA,EACjB,CAAE;AACF,QAAM,eAAe,2BAA4B,UAAU;AAAA,IAC1D,eAAe;AAAA,IACf,gBAAgB;AAAA,EACjB,CAAE;AACF,QAAM,UAAU,YAAa,gBAAgB,QAAQ,OAAQ;AAC7D,QAAM,aAAa,CAAE,aAAc;AAClC,UAAM,gBAAgB,eAAe,KAAM,CAAE,EAAE,OAAO,MAAO;AAC5D,aAAO,WAAW;AAAA,IACnB,CAAE;AACF,UAAM,eAAe,gBAClB,sBAAuB,cAAc,IAAK,KAC1C;AACH;AAAA,UACC,4BAAc,OAAO,CAAE,UAAU,SAAU,GAAG,YAAa;AAAA,IAC5D;AAAA,EACD;AACA,QAAM,aAAa,MAAM,CAAC,CAAE,OAAO,QAAQ;AAC3C,QAAM,eAAe,MAAM,WAAY,MAAU;AAEjD,QAAM,qBAAiB,4BAAa,CAAE,kBAAmB;AACxD,WAAO;AAAA,MACN,GAAG;AAAA,MACH,QAAQ;AAAA,QACP,GAAG,cAAc;AAAA,QACjB,SAAS;AAAA,MACV;AAAA,IACD;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEE,+BACD;AAAA,QAAC,kBAAAC;AAAA,QAAA;AAAA,UACA,WAAQ,gBAAI,SAAU;AAAA,UACtB,UAAW;AAAA,UACX,YAAa;AAAA,UACb,kBAAmB,gBAAgB;AAAA,UACnC;AAAA,UAEA;AAAA,YAAC;AAAA;AAAA,cACA;AAAA,cACA,WAAU;AAAA,cACV,cAAe,aAAc,SAAS,YAAa;AAAA,cACnD,eAAgB,MACf,4CAAC,kBAAAC,sCAAA,EAAuB,aAAY,SACnC,uDAAC,+BAAU,WAAQ,gBAAI,SAAU,GAChC;AAAA,4DAAC,OACE;AAAA,kBACD;AAAA,gBACD,GACD;AAAA,gBACA;AAAA,kBAAC;AAAA;AAAA,oBACA;AAAA,oBACA;AAAA,oBAEA,qBAAmB;AAAA,oBACnB,sBAAoB;AAAA,oBACpB,OAAQ;AAAA,oBACR,UAAW;AAAA;AAAA,gBACZ;AAAA,iBACD,GACD;AAAA;AAAA,UAEF;AAAA;AAAA,MACD;AAAA;AAAA,EAEF;AAEF;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalHStack as HStack,\n\t__experimentalZStack as ZStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tMenuGroup,\n\tColorIndicator,\n\tDuotonePicker,\n\tDuotoneSwatch,\n\tDropdown,\n\tFlex,\n\tFlexItem,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useCallback, useMemo, useRef } from '@wordpress/element';\nimport { reset as resetIcon } from '@wordpress/icons';\nimport { getValueFromVariable } from '@wordpress/global-styles-engine';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst EMPTY_ARRAY = [];\nfunction useMultiOriginColorPresets(\n\tsettings,\n\t{ presetSetting, defaultSetting }\n) {\n\tconst disableDefault = ! settings?.color?.[ defaultSetting ];\n\tconst userPresets =\n\t\tsettings?.color?.[ presetSetting ]?.custom || EMPTY_ARRAY;\n\tconst themePresets =\n\t\tsettings?.color?.[ presetSetting ]?.theme || EMPTY_ARRAY;\n\tconst defaultPresets =\n\t\tsettings?.color?.[ presetSetting ]?.default || EMPTY_ARRAY;\n\treturn useMemo(\n\t\t() => [\n\t\t\t...userPresets,\n\t\t\t...themePresets,\n\t\t\t...( disableDefault ? EMPTY_ARRAY : defaultPresets ),\n\t\t],\n\t\t[ disableDefault, userPresets, themePresets, defaultPresets ]\n\t);\n}\n\nexport function useHasFiltersPanel( settings ) {\n\treturn useHasDuotoneControl( settings );\n}\n\nfunction useHasDuotoneControl( settings ) {\n\treturn (\n\t\tsettings.color.customDuotone ||\n\t\tsettings.color.defaultDuotone ||\n\t\tsettings.color.duotone.length > 0\n\t);\n}\n\nfunction FiltersToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ _x( 'Filters', 'Name for applying graphical effects' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tduotone: true,\n};\n\nconst popoverProps = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-duotone-control__popover',\n\theaderTitle: __( 'Duotone' ),\n};\n\nconst LabeledColorIndicator = ( { indicator, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t<Flex expanded={ false }>\n\t\t\t\t{ indicator === 'unset' || ! indicator ? (\n\t\t\t\t\t<ColorIndicator className=\"block-editor-duotone-control__unset-indicator\" />\n\t\t\t\t) : (\n\t\t\t\t\t<DuotoneSwatch values={ indicator } />\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</ZStack>\n\t\t<FlexItem title={ label }>{ label }</FlexItem>\n\t</HStack>\n);\n\nconst renderToggle =\n\t( duotone, resetDuotone ) =>\n\t( { onToggle, isOpen } ) => {\n\t\tconst duotoneButtonRef = useRef( undefined );\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles-filters-panel__dropdown-toggle',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\t'aria-expanded': isOpen,\n\t\t\tref: duotoneButtonRef,\n\t\t};\n\n\t\tconst removeButtonProps = {\n\t\t\tonClick: () => {\n\t\t\t\tif ( isOpen ) {\n\t\t\t\t\tonToggle();\n\t\t\t\t}\n\t\t\t\tresetDuotone();\n\t\t\t\t// Return focus to parent button.\n\t\t\t\tduotoneButtonRef.current?.focus();\n\t\t\t},\n\t\t\tclassName: 'block-editor-panel-duotone-settings__reset',\n\t\t\tlabel: __( 'Reset' ),\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button __next40pxDefaultSize { ...toggleProps }>\n\t\t\t\t\t<LabeledColorIndicator\n\t\t\t\t\t\tindicator={ duotone }\n\t\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\t/>\n\t\t\t\t</Button>\n\t\t\t\t{ duotone && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\t\t{ ...removeButtonProps }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\nexport default function FiltersPanel( {\n\tas: Wrapper = FiltersToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Duotone\n\tconst hasDuotoneEnabled = useHasDuotoneControl( settings );\n\tconst duotonePalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'duotone',\n\t\tdefaultSetting: 'defaultDuotone',\n\t} );\n\tconst colorPalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'palette',\n\t\tdefaultSetting: 'defaultPalette',\n\t} );\n\tconst duotone = decodeValue( inheritedValue?.filter?.duotone );\n\tconst setDuotone = ( newValue ) => {\n\t\tconst duotonePreset = duotonePalette.find( ( { colors } ) => {\n\t\t\treturn colors === newValue;\n\t\t} );\n\t\tconst duotoneValue = duotonePreset\n\t\t\t? `var:preset|duotone|${ duotonePreset.slug }`\n\t\t\t: newValue;\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'filter', 'duotone' ], duotoneValue )\n\t\t);\n\t};\n\tconst hasDuotone = () => !! value?.filter?.duotone;\n\tconst resetDuotone = () => setDuotone( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tfilter: {\n\t\t\t\t...previousValue.filter,\n\t\t\t\tduotone: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasDuotoneEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\thasValue={ hasDuotone }\n\t\t\t\t\tonDeselect={ resetDuotone }\n\t\t\t\t\tisShownByDefault={ defaultControls.duotone }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-filters-panel__dropdown\"\n\t\t\t\t\t\trenderToggle={ renderToggle( duotone, resetDuotone ) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<DropdownContentWrapper paddingSize=\"small\">\n\t\t\t\t\t\t\t\t<MenuGroup label={ __( 'Duotone' ) }>\n\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\t\t\t\t\t// TODO: Re-enable both when custom colors are supported for block-level styles.\n\t\t\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t\t\t\tdisableCustomDuotone\n\t\t\t\t\t\t\t\t\t\tvalue={ duotone }\n\t\t\t\t\t\t\t\t\t\tonChange={ setDuotone }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["ToolsPanel", "HStack", "ZStack", "clsx", "resetIcon", "ToolsPanelItem", "DropdownContentWrapper"]
7
7
  }
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,193 +15,19 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
19
  var hooks_exports = {};
30
20
  __export(hooks_exports, {
31
21
  useColorsPerOrigin: () => useColorsPerOrigin,
32
- useGlobalSetting: () => useGlobalSetting,
33
- useGlobalStyle: () => useGlobalStyle,
34
- useGlobalStylesReset: () => useGlobalStylesReset,
35
22
  useGradientsPerOrigin: () => useGradientsPerOrigin,
36
23
  useSettingsForBlockElement: () => useSettingsForBlockElement
37
24
  });
38
25
  module.exports = __toCommonJS(hooks_exports);
39
- var import_es6 = __toESM(require("fast-deep-equal/es6"));
40
26
  var import_element = require("@wordpress/element");
41
27
  var import_data = require("@wordpress/data");
42
28
  var import_blocks = require("@wordpress/blocks");
43
29
  var import_i18n = require("@wordpress/i18n");
44
- var import_utils = require("./utils");
45
- var import_object = require("../../utils/object");
46
- var import_context = require("./context");
47
30
  var import_lock_unlock = require("../../lock-unlock");
48
- const EMPTY_CONFIG = { settings: {}, styles: {} };
49
- const VALID_SETTINGS = [
50
- "appearanceTools",
51
- "useRootPaddingAwareAlignments",
52
- "background.backgroundImage",
53
- "background.backgroundRepeat",
54
- "background.backgroundSize",
55
- "background.backgroundPosition",
56
- "border.color",
57
- "border.radius",
58
- "border.style",
59
- "border.width",
60
- "border.radiusSizes",
61
- "shadow.presets",
62
- "shadow.defaultPresets",
63
- "color.background",
64
- "color.button",
65
- "color.caption",
66
- "color.custom",
67
- "color.customDuotone",
68
- "color.customGradient",
69
- "color.defaultDuotone",
70
- "color.defaultGradients",
71
- "color.defaultPalette",
72
- "color.duotone",
73
- "color.gradients",
74
- "color.heading",
75
- "color.link",
76
- "color.palette",
77
- "color.text",
78
- "custom",
79
- "dimensions.aspectRatio",
80
- "dimensions.minHeight",
81
- "layout.contentSize",
82
- "layout.definitions",
83
- "layout.wideSize",
84
- "lightbox.enabled",
85
- "lightbox.allowEditing",
86
- "position.fixed",
87
- "position.sticky",
88
- "spacing.customSpacingSize",
89
- "spacing.defaultSpacingSizes",
90
- "spacing.spacingSizes",
91
- "spacing.spacingScale",
92
- "spacing.blockGap",
93
- "spacing.margin",
94
- "spacing.padding",
95
- "spacing.units",
96
- "typography.fluid",
97
- "typography.customFontSize",
98
- "typography.defaultFontSizes",
99
- "typography.dropCap",
100
- "typography.fontFamilies",
101
- "typography.fontSizes",
102
- "typography.fontStyle",
103
- "typography.fontWeight",
104
- "typography.letterSpacing",
105
- "typography.lineHeight",
106
- "typography.textAlign",
107
- "typography.textColumns",
108
- "typography.textDecoration",
109
- "typography.textTransform",
110
- "typography.writingMode"
111
- ];
112
- const useGlobalStylesReset = () => {
113
- const { user, setUserConfig } = (0, import_element.useContext)(import_context.GlobalStylesContext);
114
- const config = {
115
- settings: user.settings,
116
- styles: user.styles
117
- };
118
- const canReset = !!config && !(0, import_es6.default)(config, EMPTY_CONFIG);
119
- return [
120
- canReset,
121
- (0, import_element.useCallback)(() => setUserConfig(EMPTY_CONFIG), [setUserConfig])
122
- ];
123
- };
124
- function useGlobalSetting(propertyPath, blockName, source = "all") {
125
- const { setUserConfig, ...configs } = (0, import_element.useContext)(import_context.GlobalStylesContext);
126
- const appendedBlockPath = blockName ? ".blocks." + blockName : "";
127
- const appendedPropertyPath = propertyPath ? "." + propertyPath : "";
128
- const contextualPath = `settings${appendedBlockPath}${appendedPropertyPath}`;
129
- const globalPath = `settings${appendedPropertyPath}`;
130
- const sourceKey = source === "all" ? "merged" : source;
131
- const settingValue = (0, import_element.useMemo)(() => {
132
- const configToUse = configs[sourceKey];
133
- if (!configToUse) {
134
- throw "Unsupported source";
135
- }
136
- if (propertyPath) {
137
- return (0, import_object.getValueFromObjectPath)(configToUse, contextualPath) ?? (0, import_object.getValueFromObjectPath)(configToUse, globalPath);
138
- }
139
- let result = {};
140
- VALID_SETTINGS.forEach((setting) => {
141
- const value = (0, import_object.getValueFromObjectPath)(
142
- configToUse,
143
- `settings${appendedBlockPath}.${setting}`
144
- ) ?? (0, import_object.getValueFromObjectPath)(configToUse, `settings.${setting}`);
145
- if (value !== void 0) {
146
- result = (0, import_object.setImmutably)(result, setting.split("."), value);
147
- }
148
- });
149
- return result;
150
- }, [
151
- configs,
152
- sourceKey,
153
- propertyPath,
154
- contextualPath,
155
- globalPath,
156
- appendedBlockPath
157
- ]);
158
- const setSetting = (newValue) => {
159
- setUserConfig(
160
- (currentConfig) => (0, import_object.setImmutably)(currentConfig, contextualPath.split("."), newValue)
161
- );
162
- };
163
- return [settingValue, setSetting];
164
- }
165
- function useGlobalStyle(path, blockName, source = "all", { shouldDecodeEncode = true } = {}) {
166
- const {
167
- merged: mergedConfig,
168
- base: baseConfig,
169
- user: userConfig,
170
- setUserConfig
171
- } = (0, import_element.useContext)(import_context.GlobalStylesContext);
172
- const appendedPath = path ? "." + path : "";
173
- const finalPath = !blockName ? `styles${appendedPath}` : `styles.blocks.${blockName}${appendedPath}`;
174
- const setStyle = (newValue) => {
175
- setUserConfig(
176
- (currentConfig) => (0, import_object.setImmutably)(
177
- currentConfig,
178
- finalPath.split("."),
179
- shouldDecodeEncode ? (0, import_utils.getPresetVariableFromValue)(
180
- mergedConfig.settings,
181
- blockName,
182
- path,
183
- newValue
184
- ) : newValue
185
- )
186
- );
187
- };
188
- let rawResult, result;
189
- switch (source) {
190
- case "all":
191
- rawResult = (0, import_object.getValueFromObjectPath)(mergedConfig, finalPath);
192
- result = shouldDecodeEncode ? (0, import_utils.getValueFromVariable)(mergedConfig, blockName, rawResult) : rawResult;
193
- break;
194
- case "user":
195
- rawResult = (0, import_object.getValueFromObjectPath)(userConfig, finalPath);
196
- result = shouldDecodeEncode ? (0, import_utils.getValueFromVariable)(mergedConfig, blockName, rawResult) : rawResult;
197
- break;
198
- case "base":
199
- rawResult = (0, import_object.getValueFromObjectPath)(baseConfig, finalPath);
200
- result = shouldDecodeEncode ? (0, import_utils.getValueFromVariable)(baseConfig, blockName, rawResult) : rawResult;
201
- break;
202
- default:
203
- throw "Unsupported source";
204
- }
205
- return [result, setStyle];
206
- }
207
31
  function useSettingsForBlockElement(parentSettings, blockName, element) {
208
32
  const { supportedStyles, supports } = (0, import_data.useSelect)(
209
33
  (select) => {
@@ -418,9 +242,6 @@ function useGradientsPerOrigin(settings) {
418
242
  // Annotate the CommonJS export names for ESM import in node:
419
243
  0 && (module.exports = {
420
244
  useColorsPerOrigin,
421
- useGlobalSetting,
422
- useGlobalStyle,
423
- useGlobalStylesReset,
424
245
  useGradientsPerOrigin,
425
246
  useSettingsForBlockElement
426
247
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/global-styles/hooks.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { useContext, useCallback, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable, getPresetVariableFromValue } from './utils';\nimport { getValueFromObjectPath, setImmutably } from '../../utils/object';\nimport { GlobalStylesContext } from './context';\nimport { unlock } from '../../lock-unlock';\n\nconst EMPTY_CONFIG = { settings: {}, styles: {} };\n\nconst VALID_SETTINGS = [\n\t'appearanceTools',\n\t'useRootPaddingAwareAlignments',\n\t'background.backgroundImage',\n\t'background.backgroundRepeat',\n\t'background.backgroundSize',\n\t'background.backgroundPosition',\n\t'border.color',\n\t'border.radius',\n\t'border.style',\n\t'border.width',\n\t'border.radiusSizes',\n\t'shadow.presets',\n\t'shadow.defaultPresets',\n\t'color.background',\n\t'color.button',\n\t'color.caption',\n\t'color.custom',\n\t'color.customDuotone',\n\t'color.customGradient',\n\t'color.defaultDuotone',\n\t'color.defaultGradients',\n\t'color.defaultPalette',\n\t'color.duotone',\n\t'color.gradients',\n\t'color.heading',\n\t'color.link',\n\t'color.palette',\n\t'color.text',\n\t'custom',\n\t'dimensions.aspectRatio',\n\t'dimensions.minHeight',\n\t'layout.contentSize',\n\t'layout.definitions',\n\t'layout.wideSize',\n\t'lightbox.enabled',\n\t'lightbox.allowEditing',\n\t'position.fixed',\n\t'position.sticky',\n\t'spacing.customSpacingSize',\n\t'spacing.defaultSpacingSizes',\n\t'spacing.spacingSizes',\n\t'spacing.spacingScale',\n\t'spacing.blockGap',\n\t'spacing.margin',\n\t'spacing.padding',\n\t'spacing.units',\n\t'typography.fluid',\n\t'typography.customFontSize',\n\t'typography.defaultFontSizes',\n\t'typography.dropCap',\n\t'typography.fontFamilies',\n\t'typography.fontSizes',\n\t'typography.fontStyle',\n\t'typography.fontWeight',\n\t'typography.letterSpacing',\n\t'typography.lineHeight',\n\t'typography.textAlign',\n\t'typography.textColumns',\n\t'typography.textDecoration',\n\t'typography.textTransform',\n\t'typography.writingMode',\n];\n\nexport const useGlobalStylesReset = () => {\n\tconst { user, setUserConfig } = useContext( GlobalStylesContext );\n\tconst config = {\n\t\tsettings: user.settings,\n\t\tstyles: user.styles,\n\t};\n\tconst canReset = !! config && ! fastDeepEqual( config, EMPTY_CONFIG );\n\treturn [\n\t\tcanReset,\n\t\tuseCallback( () => setUserConfig( EMPTY_CONFIG ), [ setUserConfig ] ),\n\t];\n};\n\nexport function useGlobalSetting( propertyPath, blockName, source = 'all' ) {\n\tconst { setUserConfig, ...configs } = useContext( GlobalStylesContext );\n\tconst appendedBlockPath = blockName ? '.blocks.' + blockName : '';\n\tconst appendedPropertyPath = propertyPath ? '.' + propertyPath : '';\n\tconst contextualPath = `settings${ appendedBlockPath }${ appendedPropertyPath }`;\n\tconst globalPath = `settings${ appendedPropertyPath }`;\n\tconst sourceKey = source === 'all' ? 'merged' : source;\n\n\tconst settingValue = useMemo( () => {\n\t\tconst configToUse = configs[ sourceKey ];\n\t\tif ( ! configToUse ) {\n\t\t\tthrow 'Unsupported source';\n\t\t}\n\n\t\tif ( propertyPath ) {\n\t\t\treturn (\n\t\t\t\tgetValueFromObjectPath( configToUse, contextualPath ) ??\n\t\t\t\tgetValueFromObjectPath( configToUse, globalPath )\n\t\t\t);\n\t\t}\n\n\t\tlet result = {};\n\t\tVALID_SETTINGS.forEach( ( setting ) => {\n\t\t\tconst value =\n\t\t\t\tgetValueFromObjectPath(\n\t\t\t\t\tconfigToUse,\n\t\t\t\t\t`settings${ appendedBlockPath }.${ setting }`\n\t\t\t\t) ??\n\t\t\t\tgetValueFromObjectPath( configToUse, `settings.${ setting }` );\n\t\t\tif ( value !== undefined ) {\n\t\t\t\tresult = setImmutably( result, setting.split( '.' ), value );\n\t\t\t}\n\t\t} );\n\t\treturn result;\n\t}, [\n\t\tconfigs,\n\t\tsourceKey,\n\t\tpropertyPath,\n\t\tcontextualPath,\n\t\tglobalPath,\n\t\tappendedBlockPath,\n\t] );\n\n\tconst setSetting = ( newValue ) => {\n\t\tsetUserConfig( ( currentConfig ) =>\n\t\t\tsetImmutably( currentConfig, contextualPath.split( '.' ), newValue )\n\t\t);\n\t};\n\treturn [ settingValue, setSetting ];\n}\n\nexport function useGlobalStyle(\n\tpath,\n\tblockName,\n\tsource = 'all',\n\t{ shouldDecodeEncode = true } = {}\n) {\n\tconst {\n\t\tmerged: mergedConfig,\n\t\tbase: baseConfig,\n\t\tuser: userConfig,\n\t\tsetUserConfig,\n\t} = useContext( GlobalStylesContext );\n\tconst appendedPath = path ? '.' + path : '';\n\tconst finalPath = ! blockName\n\t\t? `styles${ appendedPath }`\n\t\t: `styles.blocks.${ blockName }${ appendedPath }`;\n\n\tconst setStyle = ( newValue ) => {\n\t\tsetUserConfig( ( currentConfig ) =>\n\t\t\tsetImmutably(\n\t\t\t\tcurrentConfig,\n\t\t\t\tfinalPath.split( '.' ),\n\t\t\t\tshouldDecodeEncode\n\t\t\t\t\t? getPresetVariableFromValue(\n\t\t\t\t\t\t\tmergedConfig.settings,\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\tnewValue\n\t\t\t\t\t )\n\t\t\t\t\t: newValue\n\t\t\t)\n\t\t);\n\t};\n\n\tlet rawResult, result;\n\tswitch ( source ) {\n\t\tcase 'all':\n\t\t\trawResult = getValueFromObjectPath( mergedConfig, finalPath );\n\t\t\tresult = shouldDecodeEncode\n\t\t\t\t? getValueFromVariable( mergedConfig, blockName, rawResult )\n\t\t\t\t: rawResult;\n\t\t\tbreak;\n\t\tcase 'user':\n\t\t\trawResult = getValueFromObjectPath( userConfig, finalPath );\n\t\t\tresult = shouldDecodeEncode\n\t\t\t\t? getValueFromVariable( mergedConfig, blockName, rawResult )\n\t\t\t\t: rawResult;\n\t\t\tbreak;\n\t\tcase 'base':\n\t\t\trawResult = getValueFromObjectPath( baseConfig, finalPath );\n\t\t\tresult = shouldDecodeEncode\n\t\t\t\t? getValueFromVariable( baseConfig, blockName, rawResult )\n\t\t\t\t: rawResult;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow 'Unsupported source';\n\t}\n\n\treturn [ result, setStyle ];\n}\n\n/**\n * React hook that overrides a global settings object with block and element specific settings.\n *\n * @param {Object} parentSettings Settings object.\n * @param {blockName?} blockName Block name.\n * @param {element?} element Element name.\n *\n * @return {Object} Merge of settings and supports.\n */\nexport function useSettingsForBlockElement(\n\tparentSettings,\n\tblockName,\n\telement\n) {\n\tconst { supportedStyles, supports } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tsupportedStyles: unlock(\n\t\t\t\t\tselect( blocksStore )\n\t\t\t\t).getSupportedStyles( blockName, element ),\n\t\t\t\tsupports:\n\t\t\t\t\tselect( blocksStore ).getBlockType( blockName )?.supports,\n\t\t\t};\n\t\t},\n\t\t[ blockName, element ]\n\t);\n\n\treturn useMemo( () => {\n\t\tconst updatedSettings = { ...parentSettings };\n\n\t\tif ( ! supportedStyles.includes( 'fontSize' ) ) {\n\t\t\tupdatedSettings.typography = {\n\t\t\t\t...updatedSettings.typography,\n\t\t\t\tfontSizes: {},\n\t\t\t\tcustomFontSize: false,\n\t\t\t\tdefaultFontSizes: false,\n\t\t\t};\n\t\t}\n\n\t\tif ( ! supportedStyles.includes( 'fontFamily' ) ) {\n\t\t\tupdatedSettings.typography = {\n\t\t\t\t...updatedSettings.typography,\n\t\t\t\tfontFamilies: {},\n\t\t\t};\n\t\t}\n\n\t\tupdatedSettings.color = {\n\t\t\t...updatedSettings.color,\n\t\t\ttext:\n\t\t\t\tupdatedSettings.color?.text &&\n\t\t\t\tsupportedStyles.includes( 'color' ),\n\t\t\tbackground:\n\t\t\t\tupdatedSettings.color?.background &&\n\t\t\t\t( supportedStyles.includes( 'background' ) ||\n\t\t\t\t\tsupportedStyles.includes( 'backgroundColor' ) ),\n\t\t\tbutton:\n\t\t\t\tupdatedSettings.color?.button &&\n\t\t\t\tsupportedStyles.includes( 'buttonColor' ),\n\t\t\theading:\n\t\t\t\tupdatedSettings.color?.heading &&\n\t\t\t\tsupportedStyles.includes( 'headingColor' ),\n\t\t\tlink:\n\t\t\t\tupdatedSettings.color?.link &&\n\t\t\t\tsupportedStyles.includes( 'linkColor' ),\n\t\t\tcaption:\n\t\t\t\tupdatedSettings.color?.caption &&\n\t\t\t\tsupportedStyles.includes( 'captionColor' ),\n\t\t};\n\n\t\t// Some blocks can enable background colors but disable gradients.\n\t\tif ( ! supportedStyles.includes( 'background' ) ) {\n\t\t\tupdatedSettings.color.gradients = [];\n\t\t\tupdatedSettings.color.customGradient = false;\n\t\t}\n\n\t\t// If filters are not supported by the block/element, disable duotone.\n\t\tif ( ! supportedStyles.includes( 'filter' ) ) {\n\t\t\tupdatedSettings.color.defaultDuotone = false;\n\t\t\tupdatedSettings.color.customDuotone = false;\n\t\t}\n\n\t\t[\n\t\t\t'lineHeight',\n\t\t\t'fontStyle',\n\t\t\t'fontWeight',\n\t\t\t'letterSpacing',\n\t\t\t'textAlign',\n\t\t\t'textTransform',\n\t\t\t'textDecoration',\n\t\t\t'writingMode',\n\t\t].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.typography = {\n\t\t\t\t\t...updatedSettings.typography,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t// The column-count style is named text column to reduce confusion with\n\t\t// the columns block and manage expectations from the support.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/33587\n\t\tif ( ! supportedStyles.includes( 'columnCount' ) ) {\n\t\t\tupdatedSettings.typography = {\n\t\t\t\t...updatedSettings.typography,\n\t\t\t\ttextColumns: false,\n\t\t\t};\n\t\t}\n\n\t\t[ 'contentSize', 'wideSize' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.layout = {\n\t\t\t\t\t...updatedSettings.layout,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t[ 'padding', 'margin', 'blockGap' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.spacing = {\n\t\t\t\t\t...updatedSettings.spacing,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst sides = Array.isArray( supports?.spacing?.[ key ] )\n\t\t\t\t? supports?.spacing?.[ key ]\n\t\t\t\t: supports?.spacing?.[ key ]?.sides;\n\t\t\t// Check if spacing type is supported before adding sides.\n\t\t\tif ( sides?.length && updatedSettings.spacing?.[ key ] ) {\n\t\t\t\tupdatedSettings.spacing = {\n\t\t\t\t\t...updatedSettings.spacing,\n\t\t\t\t\t[ key ]: {\n\t\t\t\t\t\t...updatedSettings.spacing?.[ key ],\n\t\t\t\t\t\tsides,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t[ 'aspectRatio', 'minHeight' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.dimensions = {\n\t\t\t\t\t...updatedSettings.dimensions,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t[ 'radius', 'color', 'style', 'width' ].forEach( ( key ) => {\n\t\t\tif (\n\t\t\t\t! supportedStyles.includes(\n\t\t\t\t\t'border' + key.charAt( 0 ).toUpperCase() + key.slice( 1 )\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tupdatedSettings.border = {\n\t\t\t\t\t...updatedSettings.border,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t[ 'backgroundImage', 'backgroundSize' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.background = {\n\t\t\t\t\t...updatedSettings.background,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\tupdatedSettings.shadow = supportedStyles.includes( 'shadow' )\n\t\t\t? updatedSettings.shadow\n\t\t\t: false;\n\n\t\t// Text alignment is only available for blocks.\n\t\tif ( element ) {\n\t\t\tupdatedSettings.typography.textAlign = false;\n\t\t}\n\n\t\treturn updatedSettings;\n\t}, [ parentSettings, supportedStyles, supports, element ] );\n}\n\nexport function useColorsPerOrigin( settings ) {\n\tconst customColors = settings?.color?.palette?.custom;\n\tconst themeColors = settings?.color?.palette?.theme;\n\tconst defaultColors = settings?.color?.palette?.default;\n\tconst shouldDisplayDefaultColors = settings?.color?.defaultPalette;\n\n\treturn useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeColors && themeColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tcolors: themeColors,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultColors &&\n\t\t\tdefaultColors &&\n\t\t\tdefaultColors.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tcolors: defaultColors,\n\t\t\t} );\n\t\t}\n\t\tif ( customColors && customColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette is created by the user.'\n\t\t\t\t),\n\t\t\t\tcolors: customColors,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [\n\t\tcustomColors,\n\t\tthemeColors,\n\t\tdefaultColors,\n\t\tshouldDisplayDefaultColors,\n\t] );\n}\n\nexport function useGradientsPerOrigin( settings ) {\n\tconst customGradients = settings?.color?.gradients?.custom;\n\tconst themeGradients = settings?.color?.gradients?.theme;\n\tconst defaultGradients = settings?.color?.gradients?.default;\n\tconst shouldDisplayDefaultGradients = settings?.color?.defaultGradients;\n\n\treturn useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeGradients && themeGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tgradients: themeGradients,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultGradients &&\n\t\t\tdefaultGradients &&\n\t\t\tdefaultGradients.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tgradients: defaultGradients,\n\t\t\t} );\n\t\t}\n\t\tif ( customGradients && customGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette is created by the user.'\n\t\t\t\t),\n\t\t\t\tgradients: customGradients,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [\n\t\tcustomGradients,\n\t\tthemeGradients,\n\t\tdefaultGradients,\n\t\tshouldDisplayDefaultGradients,\n\t] );\n}\n"],
5
- "mappings": "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",
6
- "names": ["fastDeepEqual", "blocksStore"]
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\n/**\n * React hook that overrides a global settings object with block and element specific settings.\n *\n * @param {Object} parentSettings Settings object.\n * @param {blockName?} blockName Block name.\n * @param {element?} element Element name.\n *\n * @return {Object} Merge of settings and supports.\n */\nexport function useSettingsForBlockElement(\n\tparentSettings,\n\tblockName,\n\telement\n) {\n\tconst { supportedStyles, supports } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tsupportedStyles: unlock(\n\t\t\t\t\tselect( blocksStore )\n\t\t\t\t).getSupportedStyles( blockName, element ),\n\t\t\t\tsupports:\n\t\t\t\t\tselect( blocksStore ).getBlockType( blockName )?.supports,\n\t\t\t};\n\t\t},\n\t\t[ blockName, element ]\n\t);\n\n\treturn useMemo( () => {\n\t\tconst updatedSettings = { ...parentSettings };\n\n\t\tif ( ! supportedStyles.includes( 'fontSize' ) ) {\n\t\t\tupdatedSettings.typography = {\n\t\t\t\t...updatedSettings.typography,\n\t\t\t\tfontSizes: {},\n\t\t\t\tcustomFontSize: false,\n\t\t\t\tdefaultFontSizes: false,\n\t\t\t};\n\t\t}\n\n\t\tif ( ! supportedStyles.includes( 'fontFamily' ) ) {\n\t\t\tupdatedSettings.typography = {\n\t\t\t\t...updatedSettings.typography,\n\t\t\t\tfontFamilies: {},\n\t\t\t};\n\t\t}\n\n\t\tupdatedSettings.color = {\n\t\t\t...updatedSettings.color,\n\t\t\ttext:\n\t\t\t\tupdatedSettings.color?.text &&\n\t\t\t\tsupportedStyles.includes( 'color' ),\n\t\t\tbackground:\n\t\t\t\tupdatedSettings.color?.background &&\n\t\t\t\t( supportedStyles.includes( 'background' ) ||\n\t\t\t\t\tsupportedStyles.includes( 'backgroundColor' ) ),\n\t\t\tbutton:\n\t\t\t\tupdatedSettings.color?.button &&\n\t\t\t\tsupportedStyles.includes( 'buttonColor' ),\n\t\t\theading:\n\t\t\t\tupdatedSettings.color?.heading &&\n\t\t\t\tsupportedStyles.includes( 'headingColor' ),\n\t\t\tlink:\n\t\t\t\tupdatedSettings.color?.link &&\n\t\t\t\tsupportedStyles.includes( 'linkColor' ),\n\t\t\tcaption:\n\t\t\t\tupdatedSettings.color?.caption &&\n\t\t\t\tsupportedStyles.includes( 'captionColor' ),\n\t\t};\n\n\t\t// Some blocks can enable background colors but disable gradients.\n\t\tif ( ! supportedStyles.includes( 'background' ) ) {\n\t\t\tupdatedSettings.color.gradients = [];\n\t\t\tupdatedSettings.color.customGradient = false;\n\t\t}\n\n\t\t// If filters are not supported by the block/element, disable duotone.\n\t\tif ( ! supportedStyles.includes( 'filter' ) ) {\n\t\t\tupdatedSettings.color.defaultDuotone = false;\n\t\t\tupdatedSettings.color.customDuotone = false;\n\t\t}\n\n\t\t[\n\t\t\t'lineHeight',\n\t\t\t'fontStyle',\n\t\t\t'fontWeight',\n\t\t\t'letterSpacing',\n\t\t\t'textAlign',\n\t\t\t'textTransform',\n\t\t\t'textDecoration',\n\t\t\t'writingMode',\n\t\t].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.typography = {\n\t\t\t\t\t...updatedSettings.typography,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t// The column-count style is named text column to reduce confusion with\n\t\t// the columns block and manage expectations from the support.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/33587\n\t\tif ( ! supportedStyles.includes( 'columnCount' ) ) {\n\t\t\tupdatedSettings.typography = {\n\t\t\t\t...updatedSettings.typography,\n\t\t\t\ttextColumns: false,\n\t\t\t};\n\t\t}\n\n\t\t[ 'contentSize', 'wideSize' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.layout = {\n\t\t\t\t\t...updatedSettings.layout,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t[ 'padding', 'margin', 'blockGap' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.spacing = {\n\t\t\t\t\t...updatedSettings.spacing,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst sides = Array.isArray( supports?.spacing?.[ key ] )\n\t\t\t\t? supports?.spacing?.[ key ]\n\t\t\t\t: supports?.spacing?.[ key ]?.sides;\n\t\t\t// Check if spacing type is supported before adding sides.\n\t\t\tif ( sides?.length && updatedSettings.spacing?.[ key ] ) {\n\t\t\t\tupdatedSettings.spacing = {\n\t\t\t\t\t...updatedSettings.spacing,\n\t\t\t\t\t[ key ]: {\n\t\t\t\t\t\t...updatedSettings.spacing?.[ key ],\n\t\t\t\t\t\tsides,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t[ 'aspectRatio', 'minHeight' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.dimensions = {\n\t\t\t\t\t...updatedSettings.dimensions,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t[ 'radius', 'color', 'style', 'width' ].forEach( ( key ) => {\n\t\t\tif (\n\t\t\t\t! supportedStyles.includes(\n\t\t\t\t\t'border' + key.charAt( 0 ).toUpperCase() + key.slice( 1 )\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tupdatedSettings.border = {\n\t\t\t\t\t...updatedSettings.border,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t[ 'backgroundImage', 'backgroundSize' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.background = {\n\t\t\t\t\t...updatedSettings.background,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\tupdatedSettings.shadow = supportedStyles.includes( 'shadow' )\n\t\t\t? updatedSettings.shadow\n\t\t\t: false;\n\n\t\t// Text alignment is only available for blocks.\n\t\tif ( element ) {\n\t\t\tupdatedSettings.typography.textAlign = false;\n\t\t}\n\n\t\treturn updatedSettings;\n\t}, [ parentSettings, supportedStyles, supports, element ] );\n}\n\nexport function useColorsPerOrigin( settings ) {\n\tconst customColors = settings?.color?.palette?.custom;\n\tconst themeColors = settings?.color?.palette?.theme;\n\tconst defaultColors = settings?.color?.palette?.default;\n\tconst shouldDisplayDefaultColors = settings?.color?.defaultPalette;\n\n\treturn useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeColors && themeColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tcolors: themeColors,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultColors &&\n\t\t\tdefaultColors &&\n\t\t\tdefaultColors.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tcolors: defaultColors,\n\t\t\t} );\n\t\t}\n\t\tif ( customColors && customColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette is created by the user.'\n\t\t\t\t),\n\t\t\t\tcolors: customColors,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [\n\t\tcustomColors,\n\t\tthemeColors,\n\t\tdefaultColors,\n\t\tshouldDisplayDefaultColors,\n\t] );\n}\n\nexport function useGradientsPerOrigin( settings ) {\n\tconst customGradients = settings?.color?.gradients?.custom;\n\tconst themeGradients = settings?.color?.gradients?.theme;\n\tconst defaultGradients = settings?.color?.gradients?.default;\n\tconst shouldDisplayDefaultGradients = settings?.color?.defaultGradients;\n\n\treturn useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeGradients && themeGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tgradients: themeGradients,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultGradients &&\n\t\t\tdefaultGradients &&\n\t\t\tdefaultGradients.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tgradients: defaultGradients,\n\t\t\t} );\n\t\t}\n\t\tif ( customGradients && customGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette is created by the user.'\n\t\t\t\t),\n\t\t\t\tgradients: customGradients,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [\n\t\tcustomGradients,\n\t\tthemeGradients,\n\t\tdefaultGradients,\n\t\tshouldDisplayDefaultGradients,\n\t] );\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["blocksStore"]
7
7
  }