@wordpress/block-editor 12.5.0 → 12.6.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.
- package/CHANGELOG.md +2 -0
- package/README.md +0 -4
- package/build/components/block-draggable/index.js +6 -3
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js +2 -2
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-edit/edit.js +25 -13
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-list/block-outline.native.js +14 -18
- package/build/components/block-list/block-outline.native.js.map +1 -1
- package/build/components/block-list/block.native.js +21 -42
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-mover/index.native.js +1 -1
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +1 -4
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-settings/button.native.js +2 -2
- package/build/components/block-settings/button.native.js.map +1 -1
- package/build/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +7 -5
- package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -0
- package/build/components/block-toolbar/index.js +4 -3
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/index.native.js +62 -3
- package/build/components/block-toolbar/index.native.js.map +1 -1
- package/build/components/colors-gradients/control.js +4 -2
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/global-styles/color-panel.js +21 -15
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +13 -2
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/get-block-css-selector.js +4 -8
- package/build/components/global-styles/get-block-css-selector.js.map +1 -1
- package/build/components/global-styles/hooks.js +13 -23
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +18 -3
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +12 -18
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +6 -6
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/iframe/index.js +36 -48
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/iframe/use-compatibility-styles.js +5 -0
- package/build/components/iframe/use-compatibility-styles.js.map +1 -1
- package/build/components/index.js +1 -10
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +3 -1
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +3 -1
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +33 -7
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/index.js +2 -4
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +21 -32
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js +23 -3
- package/build/components/inserter/reusable-block-rename-hint.js.map +1 -1
- package/build/components/link-control/index.js +4 -1
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/search-item.js +1 -1
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/list-view/use-list-view-client-ids.js +2 -2
- package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +65 -31
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/preview-options/index.js +2 -2
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/rich-text/content.js +0 -36
- package/build/components/rich-text/content.js.map +1 -1
- package/build/components/rich-text/get-rich-text-values.js +118 -0
- package/build/components/rich-text/get-rich-text-values.js.map +1 -0
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/axial.js +6 -2
- package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/separated.js +5 -1
- package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/single.js +5 -1
- package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +1 -1
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/use-block-display-information/index.js +7 -3
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.native.js +49 -8
- package/build/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build/components/use-setting/index.js +5 -9
- package/build/components/use-setting/index.js.map +1 -1
- package/build/hooks/margin.js +1 -1
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +1 -1
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/utils.js +1 -7
- package/build/hooks/utils.js.map +1 -1
- package/build/private-apis.js +7 -3
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +1 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/private-selectors.js +5 -6
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +0 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +19 -8
- package/build/store/selectors.js.map +1 -1
- package/build/utils/object.js +38 -2
- package/build/utils/object.js.map +1 -1
- package/build-module/components/block-draggable/index.js +6 -3
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js +2 -2
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-edit/edit.js +27 -10
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-list/block-outline.native.js +14 -18
- package/build-module/components/block-list/block-outline.native.js.map +1 -1
- package/build-module/components/block-list/block.native.js +24 -43
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +3 -3
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +1 -4
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-settings/button.native.js +3 -3
- package/build-module/components/block-settings/button.native.js.map +1 -1
- package/build-module/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +9 -7
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -0
- package/build-module/components/block-toolbar/index.js +4 -3
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.native.js +60 -4
- package/build-module/components/block-toolbar/index.native.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +3 -2
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +21 -15
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +13 -2
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/get-block-css-selector.js +4 -8
- package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +12 -22
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +18 -3
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +13 -18
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +5 -5
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/iframe/index.js +37 -49
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/iframe/use-compatibility-styles.js +5 -0
- package/build-module/components/iframe/use-compatibility-styles.js.map +1 -1
- package/build-module/components/index.js +0 -5
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +3 -1
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +3 -1
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +30 -7
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/index.js +2 -4
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +22 -33
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js +22 -3
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +1 -1
- package/build-module/components/link-control/index.js +4 -1
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/search-item.js +1 -1
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/list-view/use-list-view-client-ids.js +2 -2
- package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +66 -33
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/preview-options/index.js +2 -2
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/rich-text/content.js +1 -36
- package/build-module/components/rich-text/content.js.map +1 -1
- package/build-module/components/rich-text/get-rich-text-values.js +105 -0
- package/build-module/components/rich-text/get-rich-text-values.js.map +1 -0
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/axial.js +7 -3
- package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/separated.js +6 -2
- package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/single.js +6 -2
- package/build-module/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +1 -1
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +7 -3
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.native.js +50 -8
- package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build-module/components/use-setting/index.js +5 -9
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/hooks/margin.js +1 -1
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +1 -1
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/utils.js +2 -7
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/private-apis.js +5 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +2 -2
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-selectors.js +3 -3
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +0 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +16 -6
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/object.js +34 -2
- package/build-module/utils/object.js.map +1 -1
- package/build-style/content-rtl.css +2 -1
- package/build-style/content.css +2 -1
- package/build-style/style-rtl.css +7 -1
- package/build-style/style.css +7 -1
- package/package.json +32 -32
- package/src/components/block-controls/README.md +89 -0
- package/src/components/block-draggable/index.js +13 -4
- package/src/components/block-draggable/index.native.js +7 -3
- package/src/components/block-draggable/test/index.native.js +0 -54
- package/src/components/block-edit/edit.js +26 -9
- package/src/components/block-edit/test/edit.js +1 -1
- package/src/components/block-list/block-outline.native.js +26 -25
- package/src/components/block-list/block.native.js +24 -38
- package/src/components/block-list/block.native.scss +18 -40
- package/src/components/block-list/style.native.scss +3 -3
- package/src/components/block-mover/index.native.js +3 -3
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +16 -6
- package/src/components/block-removal-warning-modal/index.js +0 -3
- package/src/components/block-settings/button.native.js +12 -6
- package/src/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +15 -10
- package/src/components/block-toolbar/index.js +2 -3
- package/src/components/block-toolbar/index.native.js +86 -6
- package/src/components/{block-mobile-toolbar/test/block-actions-menu.native.js → block-toolbar/test/block-toolbar-menu.native.js} +20 -54
- package/src/components/block-toolbar/test/index.native.js +42 -0
- package/src/components/button-block-appender/styles.native.scss +2 -2
- package/src/components/caption/README.md +49 -0
- package/src/components/colors-gradients/control.js +3 -2
- package/src/components/global-styles/color-panel.js +23 -16
- package/src/components/global-styles/dimensions-panel.js +8 -2
- package/src/components/global-styles/get-block-css-selector.js +5 -9
- package/src/components/global-styles/hooks.js +20 -26
- package/src/components/global-styles/typography-panel.js +17 -5
- package/src/components/global-styles/use-global-styles-output.js +36 -18
- package/src/components/global-styles/utils.js +15 -6
- package/src/components/iframe/index.js +30 -56
- package/src/components/iframe/use-compatibility-styles.js +5 -0
- package/src/components/index.js +0 -5
- package/src/components/inner-blocks/README.md +10 -0
- package/src/components/inner-blocks/index.js +4 -0
- package/src/components/inner-blocks/index.native.js +4 -0
- package/src/components/inner-blocks/use-nested-settings-update.js +32 -5
- package/src/components/inserter/index.js +2 -3
- package/src/components/inserter/index.native.js +17 -36
- package/src/components/inserter/reusable-block-rename-hint.js +18 -1
- package/src/components/inserter/style.native.scss +10 -15
- package/src/components/link-control/index.js +4 -1
- package/src/components/link-control/search-item.js +1 -1
- package/src/components/link-control/style.scss +8 -1
- package/src/components/link-control/test/index.js +26 -0
- package/src/components/list-view/use-list-view-client-ids.js +2 -2
- package/src/components/media-placeholder/index.native.js +108 -59
- package/src/components/media-placeholder/styles.native.scss +59 -24
- package/src/components/preview-options/README.md +18 -17
- package/src/components/preview-options/index.js +2 -2
- package/src/components/rich-text/content.js +1 -46
- package/src/components/rich-text/get-rich-text-values.js +105 -0
- package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/src/components/spacing-sizes-control/input-controls/axial.js +17 -2
- package/src/components/spacing-sizes-control/input-controls/separated.js +17 -2
- package/src/components/spacing-sizes-control/input-controls/single.js +12 -2
- package/src/components/spacing-sizes-control/utils.js +1 -1
- package/src/components/text-transform-control/README.md +44 -0
- package/src/components/use-block-display-information/index.js +12 -5
- package/src/components/use-block-drop-zone/index.native.js +65 -28
- package/src/components/use-setting/index.js +8 -8
- package/src/hooks/margin.js +4 -1
- package/src/hooks/padding.js +4 -1
- package/src/hooks/utils.js +5 -7
- package/src/private-apis.js +7 -1
- package/src/store/actions.js +1 -2
- package/src/store/private-selectors.js +3 -6
- package/src/store/reducer.js +0 -1
- package/src/store/selectors.js +33 -5
- package/src/store/test/actions.js +3 -0
- package/src/store/test/private-selectors.js +5 -5
- package/src/store/test/reducer.js +14 -7
- package/src/store/test/selectors.js +1 -1
- package/src/utils/object.js +32 -2
- package/src/utils/test/object.js +36 -0
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +0 -1
- package/build/components/block-mobile-toolbar/index.native.js +0 -135
- package/build/components/block-mobile-toolbar/index.native.js.map +0 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +0 -1
- package/build-module/components/block-mobile-toolbar/index.native.js +0 -116
- package/build-module/components/block-mobile-toolbar/index.native.js.map +0 -1
- package/src/components/block-mobile-toolbar/index.native.js +0 -127
- package/src/components/block-mobile-toolbar/style.native.scss +0 -16
- /package/src/components/{block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap → block-toolbar/test/__snapshots__/block-toolbar-menu.native.js.snap} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/color-panel.js"],"names":["classnames","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalHStack","HStack","__experimentalZStack","ZStack","__experimentalDropdownContentWrapper","DropdownContentWrapper","TabPanel","ColorIndicator","Flex","FlexItem","Dropdown","Button","useCallback","__","sprintf","ColorGradientControl","useColorsPerOrigin","useGradientsPerOrigin","getValueFromVariable","setImmutably","useHasColorPanel","settings","hasTextPanel","useHasTextPanel","hasBackgroundPanel","useHasBackgroundPanel","hasLinkPanel","useHasLinkPanel","hasHeadingPanel","useHasHeadingPanel","hasButtonPanel","useHasButtonPanel","hasCaptionPanel","useHasCaptionPanel","colors","color","text","length","custom","link","caption","gradients","heading","customGradient","button","background","ColorToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","DEFAULT_CONTROLS","popoverProps","placement","offset","shift","LabeledColorIndicators","indicators","label","map","indicator","index","ColorPanelTab","isGradient","inheritedValue","userValue","setValue","colorGradientControlSettings","undefined","ColorPanelDropdown","hasValue","resetValue","isShownByDefault","tabs","tabConfigs","key","tabLabel","name","title","onToggle","isOpen","toggleProps","onClick","className","tab","selectedTab","find","t","ColorPanel","as","Wrapper","defaultControls","areCustomSolidsEnabled","areCustomGradientsEnabled","hasSolidColors","hasGradientColors","decodeValue","rawValue","encodeColorValue","colorValue","allColors","flatMap","originColors","colorObject","slug","encodeGradientValue","gradientValue","allGradients","originGradients","gradientObject","gradient","showTextPanel","textColor","userTextColor","hasTextColor","setTextColor","newColor","resetTextColor","showBackgroundPanel","backgroundColor","userBackgroundColor","userGradient","hasBackground","setBackgroundColor","newValue","setGradient","newGradient","resetBackground","showLinkPanel","linkColor","elements","userLinkColor","setLinkColor","hoverLinkColor","userHoverLinkColor","setHoverLinkColor","hasLink","resetLink","showPanel","previousValue","reduce","acc","element","items","filter","Boolean","forEach","elementBackgroundColor","elementGradient","elementTextColor","elementBackgroundUserColor","elementGradientUserColor","elementTextUserColor","hasElement","resetElement","setElementTextColor","newTextColor","setElementBackgroundColor","newBackgroundColor","setElementGradient","supportsTextColor","supportsBackground","push","item","disableCustomColors","disableCustomGradients"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\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\tTabPanel,\n\tColorIndicator,\n\tFlex,\n\tFlexItem,\n\tDropdown,\n\tButton,\n} from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ColorGradientControl from '../colors-gradients/control';\nimport { useColorsPerOrigin, useGradientsPerOrigin } from './hooks';\nimport { getValueFromVariable } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nexport function useHasColorPanel( settings ) {\n\tconst hasTextPanel = useHasTextPanel( settings );\n\tconst hasBackgroundPanel = useHasBackgroundPanel( settings );\n\tconst hasLinkPanel = useHasLinkPanel( settings );\n\tconst hasHeadingPanel = useHasHeadingPanel( settings );\n\tconst hasButtonPanel = useHasButtonPanel( settings );\n\tconst hasCaptionPanel = useHasCaptionPanel( settings );\n\n\treturn (\n\t\thasTextPanel ||\n\t\thasBackgroundPanel ||\n\t\thasLinkPanel ||\n\t\thasHeadingPanel ||\n\t\thasButtonPanel ||\n\t\thasCaptionPanel\n\t);\n}\n\nexport function useHasTextPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.text &&\n\t\t( colors?.length > 0 || settings?.color?.custom )\n\t);\n}\n\nexport function useHasLinkPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.link &&\n\t\t( colors?.length > 0 || settings?.color?.custom )\n\t);\n}\n\nexport function useHasCaptionPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.caption &&\n\t\t( colors?.length > 0 || settings?.color?.custom )\n\t);\n}\n\nexport function useHasHeadingPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.heading &&\n\t\t( colors?.length > 0 ||\n\t\t\tsettings?.color?.custom ||\n\t\t\tgradients?.length > 0 ||\n\t\t\tsettings?.color?.customGradient )\n\t);\n}\n\nexport function useHasButtonPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.button &&\n\t\t( colors?.length > 0 ||\n\t\t\tsettings?.color?.custom ||\n\t\t\tgradients?.length > 0 ||\n\t\t\tsettings?.color?.customGradient )\n\t);\n}\n\nexport function useHasBackgroundPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.background &&\n\t\t( colors?.length > 0 ||\n\t\t\tsettings?.color?.custom ||\n\t\t\tgradients?.length > 0 ||\n\t\t\tsettings?.color?.customGradient )\n\t);\n}\n\nfunction ColorToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\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={ __( 'Color' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\thasInnerWrapper\n\t\t\tclassName=\"color-block-support-panel\"\n\t\t\t__experimentalFirstVisibleItemClass=\"first\"\n\t\t\t__experimentalLastVisibleItemClass=\"last\"\n\t\t>\n\t\t\t<div className=\"color-block-support-panel__inner-wrapper\">\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\ttext: true,\n\tbackground: true,\n\tlink: true,\n\theading: true,\n\tbutton: true,\n\tcaption: true,\n};\n\nconst popoverProps = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n};\n\nconst LabeledColorIndicators = ( { indicators, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t{ indicators.map( ( indicator, index ) => (\n\t\t\t\t<Flex key={ index } expanded={ false }>\n\t\t\t\t\t<ColorIndicator colorValue={ indicator } />\n\t\t\t\t</Flex>\n\t\t\t) ) }\n\t\t</ZStack>\n\t\t<FlexItem\n\t\t\tclassName=\"block-editor-panel-color-gradient-settings__color-name\"\n\t\t\ttitle={ label }\n\t\t>\n\t\t\t{ label }\n\t\t</FlexItem>\n\t</HStack>\n);\n\nfunction ColorPanelTab( {\n\tisGradient,\n\tinheritedValue,\n\tuserValue,\n\tsetValue,\n\tcolorGradientControlSettings,\n} ) {\n\treturn (\n\t\t<ColorGradientControl\n\t\t\t{ ...colorGradientControlSettings }\n\t\t\tshowTitle={ false }\n\t\t\tenableAlpha\n\t\t\t__experimentalIsRenderedInSidebar\n\t\t\tcolorValue={ isGradient ? undefined : inheritedValue }\n\t\t\tgradientValue={ isGradient ? inheritedValue : undefined }\n\t\t\tonColorChange={ isGradient ? undefined : setValue }\n\t\t\tonGradientChange={ isGradient ? setValue : undefined }\n\t\t\tclearable={ inheritedValue === userValue }\n\t\t\theadingLevel={ 3 }\n\t\t/>\n\t);\n}\n\nfunction ColorPanelDropdown( {\n\tlabel,\n\thasValue,\n\tresetValue,\n\tisShownByDefault,\n\tindicators,\n\ttabs,\n\tcolorGradientControlSettings,\n\tpanelId,\n} ) {\n\tconst tabConfigs = tabs.map( ( { key, label: tabLabel } ) => {\n\t\treturn {\n\t\t\tname: key,\n\t\t\ttitle: tabLabel,\n\t\t};\n\t} );\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\tclassName=\"block-editor-tools-panel-color-gradient-settings__item\"\n\t\t\thasValue={ hasValue }\n\t\t\tlabel={ label }\n\t\t\tonDeselect={ resetValue }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<Dropdown\n\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\tclassName=\"block-editor-tools-panel-color-gradient-settings__dropdown\"\n\t\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\t\tconst toggleProps = {\n\t\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\t\tclassName: classnames(\n\t\t\t\t\t\t\t'block-editor-panel-color-gradient-settings__dropdown',\n\t\t\t\t\t\t\t{ 'is-open': isOpen }\n\t\t\t\t\t\t),\n\t\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t\t'aria-label': sprintf(\n\t\t\t\t\t\t\t/* translators: %s is the type of color property, e.g., \"background\" */\n\t\t\t\t\t\t\t__( 'Color %s styles' ),\n\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button { ...toggleProps }>\n\t\t\t\t\t\t\t<LabeledColorIndicators\n\t\t\t\t\t\t\t\tindicators={ indicators }\n\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t\trenderContent={ () => (\n\t\t\t\t\t<DropdownContentWrapper paddingSize=\"none\">\n\t\t\t\t\t\t<div className=\"block-editor-panel-color-gradient-settings__dropdown-content\">\n\t\t\t\t\t\t\t{ tabs.length === 1 && (\n\t\t\t\t\t\t\t\t<ColorPanelTab\n\t\t\t\t\t\t\t\t\t{ ...tabs[ 0 ] }\n\t\t\t\t\t\t\t\t\tcolorGradientControlSettings={\n\t\t\t\t\t\t\t\t\t\tcolorGradientControlSettings\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ tabs.length > 1 && (\n\t\t\t\t\t\t\t\t<TabPanel tabs={ tabConfigs }>\n\t\t\t\t\t\t\t\t\t{ ( tab ) => {\n\t\t\t\t\t\t\t\t\t\tconst selectedTab = tabs.find(\n\t\t\t\t\t\t\t\t\t\t\t( t ) => t.key === tab.name\n\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\tif ( ! selectedTab ) {\n\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<ColorPanelTab\n\t\t\t\t\t\t\t\t\t\t\t\t{ ...selectedTab }\n\t\t\t\t\t\t\t\t\t\t\t\tcolorGradientControlSettings={\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolorGradientControlSettings\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t</TabPanel>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t) }\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n\nexport default function ColorPanel( {\n\tas: Wrapper = ColorToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n\tchildren,\n} ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\tconst areCustomSolidsEnabled = settings?.color?.custom;\n\tconst areCustomGradientsEnabled = settings?.color?.customGradient;\n\tconst hasSolidColors = colors.length > 0 || areCustomSolidsEnabled;\n\tconst hasGradientColors = gradients.length > 0 || areCustomGradientsEnabled;\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\tconst encodeColorValue = ( colorValue ) => {\n\t\tconst allColors = colors.flatMap(\n\t\t\t( { colors: originColors } ) => originColors\n\t\t);\n\t\tconst colorObject = allColors.find(\n\t\t\t( { color } ) => color === colorValue\n\t\t);\n\t\treturn colorObject\n\t\t\t? 'var:preset|color|' + colorObject.slug\n\t\t\t: colorValue;\n\t};\n\tconst encodeGradientValue = ( gradientValue ) => {\n\t\tconst allGradients = gradients.flatMap(\n\t\t\t( { gradients: originGradients } ) => originGradients\n\t\t);\n\t\tconst gradientObject = allGradients.find(\n\t\t\t( { gradient } ) => gradient === gradientValue\n\t\t);\n\t\treturn gradientObject\n\t\t\t? 'var:preset|gradient|' + gradientObject.slug\n\t\t\t: gradientValue;\n\t};\n\n\t// Text Color\n\tconst showTextPanel = useHasTextPanel( settings );\n\tconst textColor = decodeValue( inheritedValue?.color?.text );\n\tconst userTextColor = decodeValue( value?.color?.text );\n\tconst hasTextColor = () => !! userTextColor;\n\tconst setTextColor = ( newColor ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'color', 'text' ],\n\t\t\t\tencodeColorValue( newColor )\n\t\t\t)\n\t\t);\n\t};\n\tconst resetTextColor = () => setTextColor( undefined );\n\n\t// BackgroundColor\n\tconst showBackgroundPanel = useHasBackgroundPanel( settings );\n\tconst backgroundColor = decodeValue( inheritedValue?.color?.background );\n\tconst userBackgroundColor = decodeValue( value?.color?.background );\n\tconst gradient = decodeValue( inheritedValue?.color?.gradient );\n\tconst userGradient = decodeValue( value?.color?.gradient );\n\tconst hasBackground = () => !! userBackgroundColor || !! userGradient;\n\tconst setBackgroundColor = ( newColor ) => {\n\t\tconst newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'color', 'background' ],\n\t\t\tencodeColorValue( newColor )\n\t\t);\n\t\tnewValue.color.gradient = undefined;\n\t\tonChange( newValue );\n\t};\n\tconst setGradient = ( newGradient ) => {\n\t\tconst newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'color', 'gradient' ],\n\t\t\tencodeGradientValue( newGradient )\n\t\t);\n\t\tnewValue.color.background = undefined;\n\t\tonChange( newValue );\n\t};\n\tconst resetBackground = () => {\n\t\tconst newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'color', 'background' ],\n\t\t\tundefined\n\t\t);\n\t\tnewValue.color.gradient = undefined;\n\t\tonChange( newValue );\n\t};\n\n\t// Links\n\tconst showLinkPanel = useHasLinkPanel( settings );\n\tconst linkColor = decodeValue(\n\t\tinheritedValue?.elements?.link?.color?.text\n\t);\n\tconst userLinkColor = decodeValue( value?.elements?.link?.color?.text );\n\tconst setLinkColor = ( newColor ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\t\t\tencodeColorValue( newColor )\n\t\t\t)\n\t\t);\n\t};\n\tconst hoverLinkColor = decodeValue(\n\t\tinheritedValue?.elements?.link?.[ ':hover' ]?.color?.text\n\t);\n\tconst userHoverLinkColor = decodeValue(\n\t\tvalue?.elements?.link?.[ ':hover' ]?.color?.text\n\t);\n\tconst setHoverLinkColor = ( newColor ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', 'link', ':hover', 'color', 'text' ],\n\t\t\t\tencodeColorValue( newColor )\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLink = () => !! userLinkColor || !! userHoverLinkColor;\n\tconst resetLink = () => {\n\t\tlet newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'elements', 'link', ':hover', 'color', 'text' ],\n\t\t\tundefined\n\t\t);\n\t\tnewValue = setImmutably(\n\t\t\tnewValue,\n\t\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\t\tundefined\n\t\t);\n\t\tonChange( newValue );\n\t};\n\n\t// Elements\n\tconst elements = [\n\t\t{\n\t\t\tname: 'caption',\n\t\t\tlabel: __( 'Captions' ),\n\t\t\tshowPanel: useHasCaptionPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'button',\n\t\t\tlabel: __( 'Button' ),\n\t\t\tshowPanel: useHasButtonPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'heading',\n\t\t\tlabel: __( 'Heading' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h1',\n\t\t\tlabel: __( 'H1' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h2',\n\t\t\tlabel: __( 'H2' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h3',\n\t\t\tlabel: __( 'H3' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h4',\n\t\t\tlabel: __( 'H4' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h5',\n\t\t\tlabel: __( 'H5' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h6',\n\t\t\tlabel: __( 'H6' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t];\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tcolor: undefined,\n\t\t\telements: {\n\t\t\t\t...previousValue?.elements,\n\t\t\t\tlink: {\n\t\t\t\t\t...previousValue?.elements?.link,\n\t\t\t\t\tcolor: undefined,\n\t\t\t\t\t':hover': {\n\t\t\t\t\t\tcolor: undefined,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...elements.reduce( ( acc, element ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t[ element.name ]: {\n\t\t\t\t\t\t\t...previousValue?.elements?.[ element.name ],\n\t\t\t\t\t\t\tcolor: undefined,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}, {} ),\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst items = [\n\t\tshowTextPanel && {\n\t\t\tkey: 'text',\n\t\t\tlabel: __( 'Text' ),\n\t\t\thasValue: hasTextColor,\n\t\t\tresetValue: resetTextColor,\n\t\t\tisShownByDefault: defaultControls.text,\n\t\t\tindicators: [ textColor ],\n\t\t\ttabs: [\n\t\t\t\t{\n\t\t\t\t\tkey: 'text',\n\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\tinheritedValue: textColor,\n\t\t\t\t\tsetValue: setTextColor,\n\t\t\t\t\tuserValue: userTextColor,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tshowBackgroundPanel && {\n\t\t\tkey: 'background',\n\t\t\tlabel: __( 'Background' ),\n\t\t\thasValue: hasBackground,\n\t\t\tresetValue: resetBackground,\n\t\t\tisShownByDefault: defaultControls.background,\n\t\t\tindicators: [ gradient ?? backgroundColor ],\n\t\t\ttabs: [\n\t\t\t\thasSolidColors && {\n\t\t\t\t\tkey: 'background',\n\t\t\t\t\tlabel: __( 'Solid' ),\n\t\t\t\t\tinheritedValue: backgroundColor,\n\t\t\t\t\tsetValue: setBackgroundColor,\n\t\t\t\t\tuserValue: userBackgroundColor,\n\t\t\t\t},\n\t\t\t\thasGradientColors && {\n\t\t\t\t\tkey: 'gradient',\n\t\t\t\t\tlabel: __( 'Gradient' ),\n\t\t\t\t\tinheritedValue: gradient,\n\t\t\t\t\tsetValue: setGradient,\n\t\t\t\t\tuserValue: userGradient,\n\t\t\t\t\tisGradient: true,\n\t\t\t\t},\n\t\t\t].filter( Boolean ),\n\t\t},\n\t\tshowLinkPanel && {\n\t\t\tkey: 'link',\n\t\t\tlabel: __( 'Link' ),\n\t\t\thasValue: hasLink,\n\t\t\tresetValue: resetLink,\n\t\t\tisShownByDefault: defaultControls.link,\n\t\t\tindicators: [ linkColor, hoverLinkColor ],\n\t\t\ttabs: [\n\t\t\t\t{\n\t\t\t\t\tkey: 'link',\n\t\t\t\t\tlabel: __( 'Default' ),\n\t\t\t\t\tinheritedValue: linkColor,\n\t\t\t\t\tsetValue: setLinkColor,\n\t\t\t\t\tuserValue: userLinkColor,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: 'hover',\n\t\t\t\t\tlabel: __( 'Hover' ),\n\t\t\t\t\tinheritedValue: hoverLinkColor,\n\t\t\t\t\tsetValue: setHoverLinkColor,\n\t\t\t\t\tuserValue: userHoverLinkColor,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t].filter( Boolean );\n\n\telements.forEach( ( { name, label, showPanel } ) => {\n\t\tif ( ! showPanel ) return;\n\n\t\tconst elementBackgroundColor = decodeValue(\n\t\t\tinheritedValue?.elements?.[ name ]?.color?.background\n\t\t);\n\t\tconst elementGradient = decodeValue(\n\t\t\tinheritedValue?.elements?.[ name ]?.color?.gradient\n\t\t);\n\t\tconst elementTextColor = decodeValue(\n\t\t\tinheritedValue?.elements?.[ name ]?.color?.text\n\t\t);\n\t\tconst elementBackgroundUserColor = decodeValue(\n\t\t\tvalue?.elements?.[ name ]?.color?.background\n\t\t);\n\t\tconst elementGradientUserColor = decodeValue(\n\t\t\tvalue?.elements?.[ name ]?.color?.gradient\n\t\t);\n\t\tconst elementTextUserColor = decodeValue(\n\t\t\tvalue?.elements?.[ name ]?.color?.text\n\t\t);\n\t\tconst hasElement = () =>\n\t\t\t!! (\n\t\t\t\telementTextUserColor ||\n\t\t\t\telementBackgroundUserColor ||\n\t\t\t\telementGradientUserColor\n\t\t\t);\n\t\tconst resetElement = () => {\n\t\t\tconst newValue = setImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', name, 'color', 'background' ],\n\t\t\t\tundefined\n\t\t\t);\n\t\t\tnewValue.elements[ name ].color.gradient = undefined;\n\t\t\tnewValue.elements[ name ].color.text = undefined;\n\t\t\tonChange( newValue );\n\t\t};\n\n\t\tconst setElementTextColor = ( newTextColor ) => {\n\t\t\tonChange(\n\t\t\t\tsetImmutably(\n\t\t\t\t\tvalue,\n\t\t\t\t\t[ 'elements', name, 'color', 'text' ],\n\t\t\t\t\tencodeColorValue( newTextColor )\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\t\tconst setElementBackgroundColor = ( newBackgroundColor ) => {\n\t\t\tconst newValue = setImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', name, 'color', 'background' ],\n\t\t\t\tencodeColorValue( newBackgroundColor )\n\t\t\t);\n\t\t\tnewValue.elements[ name ].color.gradient = undefined;\n\t\t\tonChange( newValue );\n\t\t};\n\t\tconst setElementGradient = ( newGradient ) => {\n\t\t\tconst newValue = setImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', name, 'color', 'gradient' ],\n\t\t\t\tencodeGradientValue( newGradient )\n\t\t\t);\n\t\t\tnewValue.elements[ name ].color.background = undefined;\n\t\t\tonChange( newValue );\n\t\t};\n\t\tconst supportsTextColor = true;\n\t\t// Background color is not supported for `caption`\n\t\t// as there isn't yet a way to set padding for the element.\n\t\tconst supportsBackground = name !== 'caption';\n\n\t\titems.push( {\n\t\t\tkey: name,\n\t\t\tlabel,\n\t\t\thasValue: hasElement,\n\t\t\tresetValue: resetElement,\n\t\t\tisShownByDefault: defaultControls[ name ],\n\t\t\tindicators:\n\t\t\t\tsupportsTextColor && supportsBackground\n\t\t\t\t\t? [\n\t\t\t\t\t\t\telementTextColor,\n\t\t\t\t\t\t\telementGradient ?? elementBackgroundColor,\n\t\t\t\t\t ]\n\t\t\t\t\t: [\n\t\t\t\t\t\t\tsupportsTextColor\n\t\t\t\t\t\t\t\t? elementTextColor\n\t\t\t\t\t\t\t\t: elementGradient ?? elementBackgroundColor,\n\t\t\t\t\t ],\n\t\t\ttabs: [\n\t\t\t\thasSolidColors &&\n\t\t\t\t\tsupportsTextColor && {\n\t\t\t\t\t\tkey: 'text',\n\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\tinheritedValue: elementTextColor,\n\t\t\t\t\t\tsetValue: setElementTextColor,\n\t\t\t\t\t\tuserValue: elementTextUserColor,\n\t\t\t\t\t},\n\t\t\t\thasSolidColors &&\n\t\t\t\t\tsupportsBackground && {\n\t\t\t\t\t\tkey: 'background',\n\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\tinheritedValue: elementBackgroundColor,\n\t\t\t\t\t\tsetValue: setElementBackgroundColor,\n\t\t\t\t\t\tuserValue: elementBackgroundUserColor,\n\t\t\t\t\t},\n\t\t\t\thasGradientColors &&\n\t\t\t\t\tsupportsBackground && {\n\t\t\t\t\t\tkey: 'gradient',\n\t\t\t\t\t\tlabel: __( 'Gradient' ),\n\t\t\t\t\t\tinheritedValue: elementGradient,\n\t\t\t\t\t\tsetValue: setElementGradient,\n\t\t\t\t\t\tuserValue: elementGradientUserColor,\n\t\t\t\t\t\tisGradient: true,\n\t\t\t\t\t},\n\t\t\t].filter( Boolean ),\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{ items.map( ( item ) => (\n\t\t\t\t<ColorPanelDropdown\n\t\t\t\t\tkey={ item.key }\n\t\t\t\t\t{ ...item }\n\t\t\t\t\tcolorGradientControlSettings={ {\n\t\t\t\t\t\tcolors,\n\t\t\t\t\t\tdisableCustomColors: ! areCustomSolidsEnabled,\n\t\t\t\t\t\tgradients,\n\t\t\t\t\t\tdisableCustomGradients: ! areCustomGradientsEnabled,\n\t\t\t\t\t} }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t\t{ children }\n\t\t</Wrapper>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/color-panel.js"],"names":["classnames","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalHStack","HStack","__experimentalZStack","ZStack","__experimentalDropdownContentWrapper","DropdownContentWrapper","TabPanel","ColorIndicator","Flex","FlexItem","Dropdown","Button","useCallback","__","sprintf","ColorGradientControl","useColorsPerOrigin","useGradientsPerOrigin","getValueFromVariable","setImmutably","useHasColorPanel","settings","hasTextPanel","useHasTextPanel","hasBackgroundPanel","useHasBackgroundPanel","hasLinkPanel","useHasLinkPanel","hasHeadingPanel","useHasHeadingPanel","hasButtonPanel","useHasButtonPanel","hasCaptionPanel","useHasCaptionPanel","colors","color","text","length","custom","link","caption","gradients","heading","customGradient","button","background","ColorToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","DEFAULT_CONTROLS","popoverProps","placement","offset","shift","LabeledColorIndicators","indicators","label","map","indicator","index","ColorPanelTab","isGradient","inheritedValue","userValue","setValue","colorGradientControlSettings","undefined","ColorPanelDropdown","hasValue","resetValue","isShownByDefault","tabs","tabConfigs","key","tabLabel","name","title","onToggle","isOpen","toggleProps","onClick","className","tab","selectedTab","find","t","ColorPanel","as","Wrapper","defaultControls","areCustomSolidsEnabled","areCustomGradientsEnabled","hasSolidColors","hasGradientColors","decodeValue","rawValue","encodeColorValue","colorValue","allColors","flatMap","originColors","colorObject","slug","encodeGradientValue","gradientValue","allGradients","originGradients","gradientObject","gradient","showBackgroundPanel","backgroundColor","userBackgroundColor","userGradient","hasBackground","setBackgroundColor","newColor","newValue","setGradient","newGradient","resetBackground","showLinkPanel","linkColor","elements","userLinkColor","setLinkColor","hoverLinkColor","userHoverLinkColor","setHoverLinkColor","hasLink","resetLink","showTextPanel","textColor","userTextColor","hasTextColor","setTextColor","changedObject","resetTextColor","showPanel","previousValue","reduce","acc","element","items","filter","Boolean","forEach","elementBackgroundColor","elementGradient","elementTextColor","elementBackgroundUserColor","elementGradientUserColor","elementTextUserColor","hasElement","resetElement","setElementTextColor","newTextColor","setElementBackgroundColor","newBackgroundColor","setElementGradient","supportsTextColor","supportsBackground","push","item","disableCustomColors","disableCustomGradients"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SACCC,wBAAwB,IAAIC,UAD7B,EAECC,4BAA4B,IAAIC,cAFjC,EAGCC,oBAAoB,IAAIC,MAHzB,EAICC,oBAAoB,IAAIC,MAJzB,EAKCC,oCAAoC,IAAIC,sBALzC,EAMCC,QAND,EAOCC,cAPD,EAQCC,IARD,EASCC,QATD,EAUCC,QAVD,EAWCC,MAXD,QAYO,uBAZP;AAaA,SAASC,WAAT,QAA4B,oBAA5B;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,6BAAjC;AACA,SAASC,kBAAT,EAA6BC,qBAA7B,QAA0D,SAA1D;AACA,SAASC,oBAAT,QAAqC,SAArC;AACA,SAASC,YAAT,QAA6B,oBAA7B;AAEA,OAAO,SAASC,gBAAT,CAA2BC,QAA3B,EAAsC;AAC5C,QAAMC,YAAY,GAAGC,eAAe,CAAEF,QAAF,CAApC;AACA,QAAMG,kBAAkB,GAAGC,qBAAqB,CAAEJ,QAAF,CAAhD;AACA,QAAMK,YAAY,GAAGC,eAAe,CAAEN,QAAF,CAApC;AACA,QAAMO,eAAe,GAAGC,kBAAkB,CAAER,QAAF,CAA1C;AACA,QAAMS,cAAc,GAAGC,iBAAiB,CAAEV,QAAF,CAAxC;AACA,QAAMW,eAAe,GAAGC,kBAAkB,CAAEZ,QAAF,CAA1C;AAEA,SACCC,YAAY,IACZE,kBADA,IAEAE,YAFA,IAGAE,eAHA,IAIAE,cAJA,IAKAE,eAND;AAQA;AAED,OAAO,SAAST,eAAT,CAA0BF,QAA1B,EAAqC;AAC3C,QAAMa,MAAM,GAAGlB,kBAAkB,CAAEK,QAAF,CAAjC;AACA,SACCA,QAAQ,EAAEc,KAAV,EAAiBC,IAAjB,KACEF,MAAM,EAAEG,MAAR,GAAiB,CAAjB,IAAsBhB,QAAQ,EAAEc,KAAV,EAAiBG,MADzC,CADD;AAIA;AAED,OAAO,SAASX,eAAT,CAA0BN,QAA1B,EAAqC;AAC3C,QAAMa,MAAM,GAAGlB,kBAAkB,CAAEK,QAAF,CAAjC;AACA,SACCA,QAAQ,EAAEc,KAAV,EAAiBI,IAAjB,KACEL,MAAM,EAAEG,MAAR,GAAiB,CAAjB,IAAsBhB,QAAQ,EAAEc,KAAV,EAAiBG,MADzC,CADD;AAIA;AAED,OAAO,SAASL,kBAAT,CAA6BZ,QAA7B,EAAwC;AAC9C,QAAMa,MAAM,GAAGlB,kBAAkB,CAAEK,QAAF,CAAjC;AACA,SACCA,QAAQ,EAAEc,KAAV,EAAiBK,OAAjB,KACEN,MAAM,EAAEG,MAAR,GAAiB,CAAjB,IAAsBhB,QAAQ,EAAEc,KAAV,EAAiBG,MADzC,CADD;AAIA;AAED,OAAO,SAAST,kBAAT,CAA6BR,QAA7B,EAAwC;AAC9C,QAAMa,MAAM,GAAGlB,kBAAkB,CAAEK,QAAF,CAAjC;AACA,QAAMoB,SAAS,GAAGxB,qBAAqB,CAAEI,QAAF,CAAvC;AACA,SACCA,QAAQ,EAAEc,KAAV,EAAiBO,OAAjB,KACER,MAAM,EAAEG,MAAR,GAAiB,CAAjB,IACDhB,QAAQ,EAAEc,KAAV,EAAiBG,MADhB,IAEDG,SAAS,EAAEJ,MAAX,GAAoB,CAFnB,IAGDhB,QAAQ,EAAEc,KAAV,EAAiBQ,cAJlB,CADD;AAOA;AAED,OAAO,SAASZ,iBAAT,CAA4BV,QAA5B,EAAuC;AAC7C,QAAMa,MAAM,GAAGlB,kBAAkB,CAAEK,QAAF,CAAjC;AACA,QAAMoB,SAAS,GAAGxB,qBAAqB,CAAEI,QAAF,CAAvC;AACA,SACCA,QAAQ,EAAEc,KAAV,EAAiBS,MAAjB,KACEV,MAAM,EAAEG,MAAR,GAAiB,CAAjB,IACDhB,QAAQ,EAAEc,KAAV,EAAiBG,MADhB,IAEDG,SAAS,EAAEJ,MAAX,GAAoB,CAFnB,IAGDhB,QAAQ,EAAEc,KAAV,EAAiBQ,cAJlB,CADD;AAOA;AAED,OAAO,SAASlB,qBAAT,CAAgCJ,QAAhC,EAA2C;AACjD,QAAMa,MAAM,GAAGlB,kBAAkB,CAAEK,QAAF,CAAjC;AACA,QAAMoB,SAAS,GAAGxB,qBAAqB,CAAEI,QAAF,CAAvC;AACA,SACCA,QAAQ,EAAEc,KAAV,EAAiBU,UAAjB,KACEX,MAAM,EAAEG,MAAR,GAAiB,CAAjB,IACDhB,QAAQ,EAAEc,KAAV,EAAiBG,MADhB,IAEDG,SAAS,EAAEJ,MAAX,GAAoB,CAFnB,IAGDhB,QAAQ,EAAEc,KAAV,EAAiBQ,cAJlB,CADD;AAOA;;AAED,SAASG,eAAT,CAA0B;AACzBC,EAAAA,cADyB;AAEzBC,EAAAA,QAFyB;AAGzBC,EAAAA,KAHyB;AAIzBC,EAAAA,OAJyB;AAKzBC,EAAAA;AALyB,CAA1B,EAMI;AACH,QAAMC,QAAQ,GAAG,MAAM;AACtB,UAAMC,YAAY,GAAGN,cAAc,CAAEE,KAAF,CAAnC;AACAD,IAAAA,QAAQ,CAAEK,YAAF,CAAR;AACA,GAHD;;AAKA,SACC,cAAC,UAAD;AACC,IAAA,KAAK,EAAGxC,EAAE,CAAE,OAAF,CADX;AAEC,IAAA,QAAQ,EAAGuC,QAFZ;AAGC,IAAA,OAAO,EAAGF,OAHX;AAIC,IAAA,eAAe,MAJhB;AAKC,IAAA,SAAS,EAAC,2BALX;AAMC,IAAA,mCAAmC,EAAC,OANrC;AAOC,IAAA,kCAAkC,EAAC;AAPpC,KASC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGC,QADH,CATD,CADD;AAeA;;AAED,MAAMG,gBAAgB,GAAG;AACxBlB,EAAAA,IAAI,EAAE,IADkB;AAExBS,EAAAA,UAAU,EAAE,IAFY;AAGxBN,EAAAA,IAAI,EAAE,IAHkB;AAIxBG,EAAAA,OAAO,EAAE,IAJe;AAKxBE,EAAAA,MAAM,EAAE,IALgB;AAMxBJ,EAAAA,OAAO,EAAE;AANe,CAAzB;AASA,MAAMe,YAAY,GAAG;AACpBC,EAAAA,SAAS,EAAE,YADS;AAEpBC,EAAAA,MAAM,EAAE,EAFY;AAGpBC,EAAAA,KAAK,EAAE;AAHa,CAArB;;AAMA,MAAMC,sBAAsB,GAAG,CAAE;AAAEC,EAAAA,UAAF;AAAcC,EAAAA;AAAd,CAAF,KAC9B,cAAC,MAAD;AAAQ,EAAA,OAAO,EAAC;AAAhB,GACC,cAAC,MAAD;AAAQ,EAAA,SAAS,EAAG,KAApB;AAA4B,EAAA,MAAM,EAAG,CAAC;AAAtC,GACGD,UAAU,CAACE,GAAX,CAAgB,CAAEC,SAAF,EAAaC,KAAb,KACjB,cAAC,IAAD;AAAM,EAAA,GAAG,EAAGA,KAAZ;AAAoB,EAAA,QAAQ,EAAG;AAA/B,GACC,cAAC,cAAD;AAAgB,EAAA,UAAU,EAAGD;AAA7B,EADD,CADC,CADH,CADD,EAQC,cAAC,QAAD;AACC,EAAA,SAAS,EAAC,wDADX;AAEC,EAAA,KAAK,EAAGF;AAFT,GAIGA,KAJH,CARD,CADD;;AAkBA,SAASI,aAAT,CAAwB;AACvBC,EAAAA,UADuB;AAEvBC,EAAAA,cAFuB;AAGvBC,EAAAA,SAHuB;AAIvBC,EAAAA,QAJuB;AAKvBC,EAAAA;AALuB,CAAxB,EAMI;AACH,SACC,cAAC,oBAAD,OACMA,4BADN;AAEC,IAAA,SAAS,EAAG,KAFb;AAGC,IAAA,WAAW,MAHZ;AAIC,IAAA,iCAAiC,MAJlC;AAKC,IAAA,UAAU,EAAGJ,UAAU,GAAGK,SAAH,GAAeJ,cALvC;AAMC,IAAA,aAAa,EAAGD,UAAU,GAAGC,cAAH,GAAoBI,SAN/C;AAOC,IAAA,aAAa,EAAGL,UAAU,GAAGK,SAAH,GAAeF,QAP1C;AAQC,IAAA,gBAAgB,EAAGH,UAAU,GAAGG,QAAH,GAAcE,SAR5C;AASC,IAAA,SAAS,EAAGJ,cAAc,KAAKC,SAThC;AAUC,IAAA,YAAY,EAAG;AAVhB,IADD;AAcA;;AAED,SAASI,kBAAT,CAA6B;AAC5BX,EAAAA,KAD4B;AAE5BY,EAAAA,QAF4B;AAG5BC,EAAAA,UAH4B;AAI5BC,EAAAA,gBAJ4B;AAK5Bf,EAAAA,UAL4B;AAM5BgB,EAAAA,IAN4B;AAO5BN,EAAAA,4BAP4B;AAQ5BpB,EAAAA;AAR4B,CAA7B,EASI;AACH,QAAM2B,UAAU,GAAGD,IAAI,CAACd,GAAL,CAAU,CAAE;AAAEgB,IAAAA,GAAF;AAAOjB,IAAAA,KAAK,EAAEkB;AAAd,GAAF,KAAgC;AAC5D,WAAO;AACNC,MAAAA,IAAI,EAAEF,GADA;AAENG,MAAAA,KAAK,EAAEF;AAFD,KAAP;AAIA,GALkB,CAAnB;AAOA,SACC,cAAC,cAAD;AACC,IAAA,SAAS,EAAC,wDADX;AAEC,IAAA,QAAQ,EAAGN,QAFZ;AAGC,IAAA,KAAK,EAAGZ,KAHT;AAIC,IAAA,UAAU,EAAGa,UAJd;AAKC,IAAA,gBAAgB,EAAGC,gBALpB;AAMC,IAAA,OAAO,EAAGzB;AANX,KAQC,cAAC,QAAD;AACC,IAAA,YAAY,EAAGK,YADhB;AAEC,IAAA,SAAS,EAAC,4DAFX;AAGC,IAAA,YAAY,EAAG,CAAE;AAAE2B,MAAAA,QAAF;AAAYC,MAAAA;AAAZ,KAAF,KAA4B;AAC1C,YAAMC,WAAW,GAAG;AACnBC,QAAAA,OAAO,EAAEH,QADU;AAEnBI,QAAAA,SAAS,EAAE3F,UAAU,CACpB,sDADoB,EAEpB;AAAE,qBAAWwF;AAAb,SAFoB,CAFF;AAMnB,yBAAiBA,MANE;AAOnB,sBAAcrE,OAAO;AACpB;AACAD,QAAAA,EAAE,CAAE,iBAAF,CAFkB,EAGpBgD,KAHoB;AAPF,OAApB;AAcA,aACC,cAAC,MAAD,OAAauB;AAAb,SACC,cAAC,sBAAD;AACC,QAAA,UAAU,EAAGxB,UADd;AAEC,QAAA,KAAK,EAAGC;AAFT,QADD,CADD;AAQA,KA1BF;AA2BC,IAAA,aAAa,EAAG,MACf,cAAC,sBAAD;AAAwB,MAAA,WAAW,EAAC;AAApC,OACC;AAAK,MAAA,SAAS,EAAC;AAAf,OACGe,IAAI,CAACvC,MAAL,KAAgB,CAAhB,IACD,cAAC,aAAD,OACMuC,IAAI,CAAE,CAAF,CADV;AAEC,MAAA,4BAA4B,EAC3BN;AAHF,MAFF,EASGM,IAAI,CAACvC,MAAL,GAAc,CAAd,IACD,cAAC,QAAD;AAAU,MAAA,IAAI,EAAGwC;AAAjB,OACKU,GAAF,IAAW;AACZ,YAAMC,WAAW,GAAGZ,IAAI,CAACa,IAAL,CACjBC,CAAF,IAASA,CAAC,CAACZ,GAAF,KAAUS,GAAG,CAACP,IADJ,CAApB;;AAIA,UAAK,CAAEQ,WAAP,EAAqB;AACpB,eAAO,IAAP;AACA;;AAED,aACC,cAAC,aAAD,OACMA,WADN;AAEC,QAAA,4BAA4B,EAC3BlB;AAHF,QADD;AAQA,KAlBF,CAVF,CADD;AA5BF,IARD,CADD;AA2EA;;AAED,eAAe,SAASqB,UAAT,CAAqB;AACnCC,EAAAA,EAAE,EAAEC,OAAO,GAAG/C,eADqB;AAEnCG,EAAAA,KAFmC;AAGnCD,EAAAA,QAHmC;AAInCmB,EAAAA,cAAc,GAAGlB,KAJkB;AAKnC5B,EAAAA,QALmC;AAMnC6B,EAAAA,OANmC;AAOnC4C,EAAAA,eAAe,GAAGxC,gBAPiB;AAQnCH,EAAAA;AARmC,CAArB,EASX;AACH,QAAMjB,MAAM,GAAGlB,kBAAkB,CAAEK,QAAF,CAAjC;AACA,QAAMoB,SAAS,GAAGxB,qBAAqB,CAAEI,QAAF,CAAvC;AACA,QAAM0E,sBAAsB,GAAG1E,QAAQ,EAAEc,KAAV,EAAiBG,MAAhD;AACA,QAAM0D,yBAAyB,GAAG3E,QAAQ,EAAEc,KAAV,EAAiBQ,cAAnD;AACA,QAAMsD,cAAc,GAAG/D,MAAM,CAACG,MAAP,GAAgB,CAAhB,IAAqB0D,sBAA5C;AACA,QAAMG,iBAAiB,GAAGzD,SAAS,CAACJ,MAAV,GAAmB,CAAnB,IAAwB2D,yBAAlD;;AACA,QAAMG,WAAW,GAAKC,QAAF,IACnBlF,oBAAoB,CAAE;AAAEG,IAAAA;AAAF,GAAF,EAAgB,EAAhB,EAAoB+E,QAApB,CADrB;;AAEA,QAAMC,gBAAgB,GAAKC,UAAF,IAAkB;AAC1C,UAAMC,SAAS,GAAGrE,MAAM,CAACsE,OAAP,CACjB,CAAE;AAAEtE,MAAAA,MAAM,EAAEuE;AAAV,KAAF,KAAgCA,YADf,CAAlB;AAGA,UAAMC,WAAW,GAAGH,SAAS,CAACd,IAAV,CACnB,CAAE;AAAEtD,MAAAA;AAAF,KAAF,KAAiBA,KAAK,KAAKmE,UADR,CAApB;AAGA,WAAOI,WAAW,GACf,sBAAsBA,WAAW,CAACC,IADnB,GAEfL,UAFH;AAGA,GAVD;;AAWA,QAAMM,mBAAmB,GAAKC,aAAF,IAAqB;AAChD,UAAMC,YAAY,GAAGrE,SAAS,CAAC+D,OAAV,CACpB,CAAE;AAAE/D,MAAAA,SAAS,EAAEsE;AAAb,KAAF,KAAsCA,eADlB,CAArB;AAGA,UAAMC,cAAc,GAAGF,YAAY,CAACrB,IAAb,CACtB,CAAE;AAAEwB,MAAAA;AAAF,KAAF,KAAoBA,QAAQ,KAAKJ,aADX,CAAvB;AAGA,WAAOG,cAAc,GAClB,yBAAyBA,cAAc,CAACL,IADtB,GAElBE,aAFH;AAGA,GAVD,CApBG,CAgCH;;;AACA,QAAMK,mBAAmB,GAAGzF,qBAAqB,CAAEJ,QAAF,CAAjD;AACA,QAAM8F,eAAe,GAAGhB,WAAW,CAAEhC,cAAc,EAAEhC,KAAhB,EAAuBU,UAAzB,CAAnC;AACA,QAAMuE,mBAAmB,GAAGjB,WAAW,CAAElD,KAAK,EAAEd,KAAP,EAAcU,UAAhB,CAAvC;AACA,QAAMoE,QAAQ,GAAGd,WAAW,CAAEhC,cAAc,EAAEhC,KAAhB,EAAuB8E,QAAzB,CAA5B;AACA,QAAMI,YAAY,GAAGlB,WAAW,CAAElD,KAAK,EAAEd,KAAP,EAAc8E,QAAhB,CAAhC;;AACA,QAAMK,aAAa,GAAG,MAAM,CAAC,CAAEF,mBAAH,IAA0B,CAAC,CAAEC,YAAzD;;AACA,QAAME,kBAAkB,GAAKC,QAAF,IAAgB;AAC1C,UAAMC,QAAQ,GAAGtG,YAAY,CAC5B8B,KAD4B,EAE5B,CAAE,OAAF,EAAW,YAAX,CAF4B,EAG5BoD,gBAAgB,CAAEmB,QAAF,CAHY,CAA7B;AAKAC,IAAAA,QAAQ,CAACtF,KAAT,CAAe8E,QAAf,GAA0B1C,SAA1B;AACAvB,IAAAA,QAAQ,CAAEyE,QAAF,CAAR;AACA,GARD;;AASA,QAAMC,WAAW,GAAKC,WAAF,IAAmB;AACtC,UAAMF,QAAQ,GAAGtG,YAAY,CAC5B8B,KAD4B,EAE5B,CAAE,OAAF,EAAW,UAAX,CAF4B,EAG5B2D,mBAAmB,CAAEe,WAAF,CAHS,CAA7B;AAKAF,IAAAA,QAAQ,CAACtF,KAAT,CAAeU,UAAf,GAA4B0B,SAA5B;AACAvB,IAAAA,QAAQ,CAAEyE,QAAF,CAAR;AACA,GARD;;AASA,QAAMG,eAAe,GAAG,MAAM;AAC7B,UAAMH,QAAQ,GAAGtG,YAAY,CAC5B8B,KAD4B,EAE5B,CAAE,OAAF,EAAW,YAAX,CAF4B,EAG5BsB,SAH4B,CAA7B;AAKAkD,IAAAA,QAAQ,CAACtF,KAAT,CAAe8E,QAAf,GAA0B1C,SAA1B;AACAvB,IAAAA,QAAQ,CAAEyE,QAAF,CAAR;AACA,GARD,CAzDG,CAmEH;;;AACA,QAAMI,aAAa,GAAGlG,eAAe,CAAEN,QAAF,CAArC;AACA,QAAMyG,SAAS,GAAG3B,WAAW,CAC5BhC,cAAc,EAAE4D,QAAhB,EAA0BxF,IAA1B,EAAgCJ,KAAhC,EAAuCC,IADX,CAA7B;AAGA,QAAM4F,aAAa,GAAG7B,WAAW,CAAElD,KAAK,EAAE8E,QAAP,EAAiBxF,IAAjB,EAAuBJ,KAAvB,EAA8BC,IAAhC,CAAjC;;AACA,QAAM6F,YAAY,GAAKT,QAAF,IAAgB;AACpCxE,IAAAA,QAAQ,CACP7B,YAAY,CACX8B,KADW,EAEX,CAAE,UAAF,EAAc,MAAd,EAAsB,OAAtB,EAA+B,MAA/B,CAFW,EAGXoD,gBAAgB,CAAEmB,QAAF,CAHL,CADL,CAAR;AAOA,GARD;;AASA,QAAMU,cAAc,GAAG/B,WAAW,CACjChC,cAAc,EAAE4D,QAAhB,EAA0BxF,IAA1B,GAAkC,QAAlC,GAA8CJ,KAA9C,EAAqDC,IADpB,CAAlC;AAGA,QAAM+F,kBAAkB,GAAGhC,WAAW,CACrClD,KAAK,EAAE8E,QAAP,EAAiBxF,IAAjB,GAAyB,QAAzB,GAAqCJ,KAArC,EAA4CC,IADP,CAAtC;;AAGA,QAAMgG,iBAAiB,GAAKZ,QAAF,IAAgB;AACzCxE,IAAAA,QAAQ,CACP7B,YAAY,CACX8B,KADW,EAEX,CAAE,UAAF,EAAc,MAAd,EAAsB,QAAtB,EAAgC,OAAhC,EAAyC,MAAzC,CAFW,EAGXoD,gBAAgB,CAAEmB,QAAF,CAHL,CADL,CAAR;AAOA,GARD;;AASA,QAAMa,OAAO,GAAG,MAAM,CAAC,CAAEL,aAAH,IAAoB,CAAC,CAAEG,kBAA7C;;AACA,QAAMG,SAAS,GAAG,MAAM;AACvB,QAAIb,QAAQ,GAAGtG,YAAY,CAC1B8B,KAD0B,EAE1B,CAAE,UAAF,EAAc,MAAd,EAAsB,QAAtB,EAAgC,OAAhC,EAAyC,MAAzC,CAF0B,EAG1BsB,SAH0B,CAA3B;AAKAkD,IAAAA,QAAQ,GAAGtG,YAAY,CACtBsG,QADsB,EAEtB,CAAE,UAAF,EAAc,MAAd,EAAsB,OAAtB,EAA+B,MAA/B,CAFsB,EAGtBlD,SAHsB,CAAvB;AAKAvB,IAAAA,QAAQ,CAAEyE,QAAF,CAAR;AACA,GAZD,CAlGG,CAgHH;;;AACA,QAAMc,aAAa,GAAGhH,eAAe,CAAEF,QAAF,CAArC;AACA,QAAMmH,SAAS,GAAGrC,WAAW,CAAEhC,cAAc,EAAEhC,KAAhB,EAAuBC,IAAzB,CAA7B;AACA,QAAMqG,aAAa,GAAGtC,WAAW,CAAElD,KAAK,EAAEd,KAAP,EAAcC,IAAhB,CAAjC;;AACA,QAAMsG,YAAY,GAAG,MAAM,CAAC,CAAED,aAA9B;;AACA,QAAME,YAAY,GAAKnB,QAAF,IAAgB;AACpC,QAAIoB,aAAa,GAAGzH,YAAY,CAC/B8B,KAD+B,EAE/B,CAAE,OAAF,EAAW,MAAX,CAF+B,EAG/BoD,gBAAgB,CAAEmB,QAAF,CAHe,CAAhC;;AAKA,QAAKgB,SAAS,KAAKV,SAAnB,EAA+B;AAC9Bc,MAAAA,aAAa,GAAGzH,YAAY,CAC3ByH,aAD2B,EAE3B,CAAE,UAAF,EAAc,MAAd,EAAsB,OAAtB,EAA+B,MAA/B,CAF2B,EAG3BvC,gBAAgB,CAAEmB,QAAF,CAHW,CAA5B;AAKA;;AAEDxE,IAAAA,QAAQ,CAAE4F,aAAF,CAAR;AACA,GAfD;;AAgBA,QAAMC,cAAc,GAAG,MAAMF,YAAY,CAAEpE,SAAF,CAAzC,CArIG,CAuIH;;;AACA,QAAMwD,QAAQ,GAAG,CAChB;AACC/C,IAAAA,IAAI,EAAE,SADP;AAECnB,IAAAA,KAAK,EAAEhD,EAAE,CAAE,UAAF,CAFV;AAGCiI,IAAAA,SAAS,EAAE7G,kBAAkB,CAAEZ,QAAF;AAH9B,GADgB,EAMhB;AACC2D,IAAAA,IAAI,EAAE,QADP;AAECnB,IAAAA,KAAK,EAAEhD,EAAE,CAAE,QAAF,CAFV;AAGCiI,IAAAA,SAAS,EAAE/G,iBAAiB,CAAEV,QAAF;AAH7B,GANgB,EAWhB;AACC2D,IAAAA,IAAI,EAAE,SADP;AAECnB,IAAAA,KAAK,EAAEhD,EAAE,CAAE,SAAF,CAFV;AAGCiI,IAAAA,SAAS,EAAEjH,kBAAkB,CAAER,QAAF;AAH9B,GAXgB,EAgBhB;AACC2D,IAAAA,IAAI,EAAE,IADP;AAECnB,IAAAA,KAAK,EAAEhD,EAAE,CAAE,IAAF,CAFV;AAGCiI,IAAAA,SAAS,EAAEjH,kBAAkB,CAAER,QAAF;AAH9B,GAhBgB,EAqBhB;AACC2D,IAAAA,IAAI,EAAE,IADP;AAECnB,IAAAA,KAAK,EAAEhD,EAAE,CAAE,IAAF,CAFV;AAGCiI,IAAAA,SAAS,EAAEjH,kBAAkB,CAAER,QAAF;AAH9B,GArBgB,EA0BhB;AACC2D,IAAAA,IAAI,EAAE,IADP;AAECnB,IAAAA,KAAK,EAAEhD,EAAE,CAAE,IAAF,CAFV;AAGCiI,IAAAA,SAAS,EAAEjH,kBAAkB,CAAER,QAAF;AAH9B,GA1BgB,EA+BhB;AACC2D,IAAAA,IAAI,EAAE,IADP;AAECnB,IAAAA,KAAK,EAAEhD,EAAE,CAAE,IAAF,CAFV;AAGCiI,IAAAA,SAAS,EAAEjH,kBAAkB,CAAER,QAAF;AAH9B,GA/BgB,EAoChB;AACC2D,IAAAA,IAAI,EAAE,IADP;AAECnB,IAAAA,KAAK,EAAEhD,EAAE,CAAE,IAAF,CAFV;AAGCiI,IAAAA,SAAS,EAAEjH,kBAAkB,CAAER,QAAF;AAH9B,GApCgB,EAyChB;AACC2D,IAAAA,IAAI,EAAE,IADP;AAECnB,IAAAA,KAAK,EAAEhD,EAAE,CAAE,IAAF,CAFV;AAGCiI,IAAAA,SAAS,EAAEjH,kBAAkB,CAAER,QAAF;AAH9B,GAzCgB,CAAjB;AAgDA,QAAM0B,cAAc,GAAGnC,WAAW,CAAImI,aAAF,IAAqB;AACxD,WAAO,EACN,GAAGA,aADG;AAEN5G,MAAAA,KAAK,EAAEoC,SAFD;AAGNwD,MAAAA,QAAQ,EAAE,EACT,GAAGgB,aAAa,EAAEhB,QADT;AAETxF,QAAAA,IAAI,EAAE,EACL,GAAGwG,aAAa,EAAEhB,QAAf,EAAyBxF,IADvB;AAELJ,UAAAA,KAAK,EAAEoC,SAFF;AAGL,oBAAU;AACTpC,YAAAA,KAAK,EAAEoC;AADE;AAHL,SAFG;AAST,WAAGwD,QAAQ,CAACiB,MAAT,CAAiB,CAAEC,GAAF,EAAOC,OAAP,KAAoB;AACvC,iBAAO,EACN,GAAGD,GADG;AAEN,aAAEC,OAAO,CAAClE,IAAV,GAAkB,EACjB,GAAG+D,aAAa,EAAEhB,QAAf,GAA2BmB,OAAO,CAAClE,IAAnC,CADc;AAEjB7C,cAAAA,KAAK,EAAEoC;AAFU;AAFZ,WAAP;AAOA,SARE,EAQA,EARA;AATM;AAHJ,KAAP;AAuBA,GAxBiC,EAwB/B,EAxB+B,CAAlC;AA0BA,QAAM4E,KAAK,GAAG,CACbZ,aAAa,IAAI;AAChBzD,IAAAA,GAAG,EAAE,MADW;AAEhBjB,IAAAA,KAAK,EAAEhD,EAAE,CAAE,MAAF,CAFO;AAGhB4D,IAAAA,QAAQ,EAAEiE,YAHM;AAIhBhE,IAAAA,UAAU,EAAEmE,cAJI;AAKhBlE,IAAAA,gBAAgB,EAAEmB,eAAe,CAAC1D,IALlB;AAMhBwB,IAAAA,UAAU,EAAE,CAAE4E,SAAF,CANI;AAOhB5D,IAAAA,IAAI,EAAE,CACL;AACCE,MAAAA,GAAG,EAAE,MADN;AAECjB,MAAAA,KAAK,EAAEhD,EAAE,CAAE,MAAF,CAFV;AAGCsD,MAAAA,cAAc,EAAEqE,SAHjB;AAICnE,MAAAA,QAAQ,EAAEsE,YAJX;AAKCvE,MAAAA,SAAS,EAAEqE;AALZ,KADK;AAPU,GADJ,EAkBbvB,mBAAmB,IAAI;AACtBpC,IAAAA,GAAG,EAAE,YADiB;AAEtBjB,IAAAA,KAAK,EAAEhD,EAAE,CAAE,YAAF,CAFa;AAGtB4D,IAAAA,QAAQ,EAAE6C,aAHY;AAItB5C,IAAAA,UAAU,EAAEkD,eAJU;AAKtBjD,IAAAA,gBAAgB,EAAEmB,eAAe,CAACjD,UALZ;AAMtBe,IAAAA,UAAU,EAAE,CAAEqD,QAAF,aAAEA,QAAF,cAAEA,QAAF,GAAcE,eAAd,CANU;AAOtBvC,IAAAA,IAAI,EAAE,CACLqB,cAAc,IAAI;AACjBnB,MAAAA,GAAG,EAAE,YADY;AAEjBjB,MAAAA,KAAK,EAAEhD,EAAE,CAAE,OAAF,CAFQ;AAGjBsD,MAAAA,cAAc,EAAEgD,eAHC;AAIjB9C,MAAAA,QAAQ,EAAEkD,kBAJO;AAKjBnD,MAAAA,SAAS,EAAEgD;AALM,KADb,EAQLlB,iBAAiB,IAAI;AACpBpB,MAAAA,GAAG,EAAE,UADe;AAEpBjB,MAAAA,KAAK,EAAEhD,EAAE,CAAE,UAAF,CAFW;AAGpBsD,MAAAA,cAAc,EAAE8C,QAHI;AAIpB5C,MAAAA,QAAQ,EAAEqD,WAJU;AAKpBtD,MAAAA,SAAS,EAAEiD,YALS;AAMpBnD,MAAAA,UAAU,EAAE;AANQ,KARhB,EAgBJkF,MAhBI,CAgBIC,OAhBJ;AAPgB,GAlBV,EA2CbxB,aAAa,IAAI;AAChB/C,IAAAA,GAAG,EAAE,MADW;AAEhBjB,IAAAA,KAAK,EAAEhD,EAAE,CAAE,MAAF,CAFO;AAGhB4D,IAAAA,QAAQ,EAAE4D,OAHM;AAIhB3D,IAAAA,UAAU,EAAE4D,SAJI;AAKhB3D,IAAAA,gBAAgB,EAAEmB,eAAe,CAACvD,IALlB;AAMhBqB,IAAAA,UAAU,EAAE,CAAEkE,SAAF,EAAaI,cAAb,CANI;AAOhBtD,IAAAA,IAAI,EAAE,CACL;AACCE,MAAAA,GAAG,EAAE,MADN;AAECjB,MAAAA,KAAK,EAAEhD,EAAE,CAAE,SAAF,CAFV;AAGCsD,MAAAA,cAAc,EAAE2D,SAHjB;AAICzD,MAAAA,QAAQ,EAAE4D,YAJX;AAKC7D,MAAAA,SAAS,EAAE4D;AALZ,KADK,EAQL;AACClD,MAAAA,GAAG,EAAE,OADN;AAECjB,MAAAA,KAAK,EAAEhD,EAAE,CAAE,OAAF,CAFV;AAGCsD,MAAAA,cAAc,EAAE+D,cAHjB;AAIC7D,MAAAA,QAAQ,EAAE+D,iBAJX;AAKChE,MAAAA,SAAS,EAAE+D;AALZ,KARK;AAPU,GA3CJ,EAmEZiB,MAnEY,CAmEJC,OAnEI,CAAd;AAqEAtB,EAAAA,QAAQ,CAACuB,OAAT,CAAkB,CAAE;AAAEtE,IAAAA,IAAF;AAAQnB,IAAAA,KAAR;AAAeiF,IAAAA;AAAf,GAAF,KAAkC;AACnD,QAAK,CAAEA,SAAP,EAAmB;AAEnB,UAAMS,sBAAsB,GAAGpD,WAAW,CACzChC,cAAc,EAAE4D,QAAhB,GAA4B/C,IAA5B,GAAoC7C,KAApC,EAA2CU,UADF,CAA1C;AAGA,UAAM2G,eAAe,GAAGrD,WAAW,CAClChC,cAAc,EAAE4D,QAAhB,GAA4B/C,IAA5B,GAAoC7C,KAApC,EAA2C8E,QADT,CAAnC;AAGA,UAAMwC,gBAAgB,GAAGtD,WAAW,CACnChC,cAAc,EAAE4D,QAAhB,GAA4B/C,IAA5B,GAAoC7C,KAApC,EAA2CC,IADR,CAApC;AAGA,UAAMsH,0BAA0B,GAAGvD,WAAW,CAC7ClD,KAAK,EAAE8E,QAAP,GAAmB/C,IAAnB,GAA2B7C,KAA3B,EAAkCU,UADW,CAA9C;AAGA,UAAM8G,wBAAwB,GAAGxD,WAAW,CAC3ClD,KAAK,EAAE8E,QAAP,GAAmB/C,IAAnB,GAA2B7C,KAA3B,EAAkC8E,QADS,CAA5C;AAGA,UAAM2C,oBAAoB,GAAGzD,WAAW,CACvClD,KAAK,EAAE8E,QAAP,GAAmB/C,IAAnB,GAA2B7C,KAA3B,EAAkCC,IADK,CAAxC;;AAGA,UAAMyH,UAAU,GAAG,MAClB,CAAC,EACAD,oBAAoB,IACpBF,0BADA,IAEAC,wBAHA,CADF;;AAMA,UAAMG,YAAY,GAAG,MAAM;AAC1B,YAAMrC,QAAQ,GAAGtG,YAAY,CAC5B8B,KAD4B,EAE5B,CAAE,UAAF,EAAc+B,IAAd,EAAoB,OAApB,EAA6B,YAA7B,CAF4B,EAG5BT,SAH4B,CAA7B;AAKAkD,MAAAA,QAAQ,CAACM,QAAT,CAAmB/C,IAAnB,EAA0B7C,KAA1B,CAAgC8E,QAAhC,GAA2C1C,SAA3C;AACAkD,MAAAA,QAAQ,CAACM,QAAT,CAAmB/C,IAAnB,EAA0B7C,KAA1B,CAAgCC,IAAhC,GAAuCmC,SAAvC;AACAvB,MAAAA,QAAQ,CAAEyE,QAAF,CAAR;AACA,KATD;;AAWA,UAAMsC,mBAAmB,GAAKC,YAAF,IAAoB;AAC/ChH,MAAAA,QAAQ,CACP7B,YAAY,CACX8B,KADW,EAEX,CAAE,UAAF,EAAc+B,IAAd,EAAoB,OAApB,EAA6B,MAA7B,CAFW,EAGXqB,gBAAgB,CAAE2D,YAAF,CAHL,CADL,CAAR;AAOA,KARD;;AASA,UAAMC,yBAAyB,GAAKC,kBAAF,IAA0B;AAC3D,YAAMzC,QAAQ,GAAGtG,YAAY,CAC5B8B,KAD4B,EAE5B,CAAE,UAAF,EAAc+B,IAAd,EAAoB,OAApB,EAA6B,YAA7B,CAF4B,EAG5BqB,gBAAgB,CAAE6D,kBAAF,CAHY,CAA7B;AAKAzC,MAAAA,QAAQ,CAACM,QAAT,CAAmB/C,IAAnB,EAA0B7C,KAA1B,CAAgC8E,QAAhC,GAA2C1C,SAA3C;AACAvB,MAAAA,QAAQ,CAAEyE,QAAF,CAAR;AACA,KARD;;AASA,UAAM0C,kBAAkB,GAAKxC,WAAF,IAAmB;AAC7C,YAAMF,QAAQ,GAAGtG,YAAY,CAC5B8B,KAD4B,EAE5B,CAAE,UAAF,EAAc+B,IAAd,EAAoB,OAApB,EAA6B,UAA7B,CAF4B,EAG5B4B,mBAAmB,CAAEe,WAAF,CAHS,CAA7B;AAKAF,MAAAA,QAAQ,CAACM,QAAT,CAAmB/C,IAAnB,EAA0B7C,KAA1B,CAAgCU,UAAhC,GAA6C0B,SAA7C;AACAvB,MAAAA,QAAQ,CAAEyE,QAAF,CAAR;AACA,KARD;;AASA,UAAM2C,iBAAiB,GAAG,IAA1B,CAjEmD,CAkEnD;AACA;;AACA,UAAMC,kBAAkB,GAAGrF,IAAI,KAAK,SAApC;AAEAmE,IAAAA,KAAK,CAACmB,IAAN,CAAY;AACXxF,MAAAA,GAAG,EAAEE,IADM;AAEXnB,MAAAA,KAFW;AAGXY,MAAAA,QAAQ,EAAEoF,UAHC;AAIXnF,MAAAA,UAAU,EAAEoF,YAJD;AAKXnF,MAAAA,gBAAgB,EAAEmB,eAAe,CAAEd,IAAF,CALtB;AAMXpB,MAAAA,UAAU,EACTwG,iBAAiB,IAAIC,kBAArB,GACG,CACAZ,gBADA,EAEAD,eAFA,aAEAA,eAFA,cAEAA,eAFA,GAEmBD,sBAFnB,CADH,GAKG,CACAa,iBAAiB,GACdX,gBADc,GAEdD,eAFc,aAEdA,eAFc,cAEdA,eAFc,GAEKD,sBAHtB,CAZO;AAiBX3E,MAAAA,IAAI,EAAE,CACLqB,cAAc,IACbmE,iBADD,IACsB;AACpBtF,QAAAA,GAAG,EAAE,MADe;AAEpBjB,QAAAA,KAAK,EAAEhD,EAAE,CAAE,MAAF,CAFW;AAGpBsD,QAAAA,cAAc,EAAEsF,gBAHI;AAIpBpF,QAAAA,QAAQ,EAAE0F,mBAJU;AAKpB3F,QAAAA,SAAS,EAAEwF;AALS,OAFjB,EASL3D,cAAc,IACboE,kBADD,IACuB;AACrBvF,QAAAA,GAAG,EAAE,YADgB;AAErBjB,QAAAA,KAAK,EAAEhD,EAAE,CAAE,YAAF,CAFY;AAGrBsD,QAAAA,cAAc,EAAEoF,sBAHK;AAIrBlF,QAAAA,QAAQ,EAAE4F,yBAJW;AAKrB7F,QAAAA,SAAS,EAAEsF;AALU,OAVlB,EAiBLxD,iBAAiB,IAChBmE,kBADD,IACuB;AACrBvF,QAAAA,GAAG,EAAE,UADgB;AAErBjB,QAAAA,KAAK,EAAEhD,EAAE,CAAE,UAAF,CAFY;AAGrBsD,QAAAA,cAAc,EAAEqF,eAHK;AAIrBnF,QAAAA,QAAQ,EAAE8F,kBAJW;AAKrB/F,QAAAA,SAAS,EAAEuF,wBALU;AAMrBzF,QAAAA,UAAU,EAAE;AANS,OAlBlB,EA0BJkF,MA1BI,CA0BIC,OA1BJ;AAjBK,KAAZ;AA6CA,GAnHD;AAqHA,SACC,cAAC,OAAD;AACC,IAAA,cAAc,EAAGtG,cADlB;AAEC,IAAA,KAAK,EAAGE,KAFT;AAGC,IAAA,QAAQ,EAAGD,QAHZ;AAIC,IAAA,OAAO,EAAGE;AAJX,KAMGiG,KAAK,CAACrF,GAAN,CAAayG,IAAF,IACZ,cAAC,kBAAD;AACC,IAAA,GAAG,EAAGA,IAAI,CAACzF,GADZ;AAAA,OAEMyF,IAFN;AAGC,IAAA,4BAA4B,EAAG;AAC9BrI,MAAAA,MAD8B;AAE9BsI,MAAAA,mBAAmB,EAAE,CAAEzE,sBAFO;AAG9BtD,MAAAA,SAH8B;AAI9BgI,MAAAA,sBAAsB,EAAE,CAAEzE;AAJI,KAHhC;AASC,IAAA,OAAO,EAAG9C;AATX,IADC,CANH,EAmBGC,QAnBH,CADD;AAuBA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\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\tTabPanel,\n\tColorIndicator,\n\tFlex,\n\tFlexItem,\n\tDropdown,\n\tButton,\n} from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ColorGradientControl from '../colors-gradients/control';\nimport { useColorsPerOrigin, useGradientsPerOrigin } from './hooks';\nimport { getValueFromVariable } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nexport function useHasColorPanel( settings ) {\n\tconst hasTextPanel = useHasTextPanel( settings );\n\tconst hasBackgroundPanel = useHasBackgroundPanel( settings );\n\tconst hasLinkPanel = useHasLinkPanel( settings );\n\tconst hasHeadingPanel = useHasHeadingPanel( settings );\n\tconst hasButtonPanel = useHasButtonPanel( settings );\n\tconst hasCaptionPanel = useHasCaptionPanel( settings );\n\n\treturn (\n\t\thasTextPanel ||\n\t\thasBackgroundPanel ||\n\t\thasLinkPanel ||\n\t\thasHeadingPanel ||\n\t\thasButtonPanel ||\n\t\thasCaptionPanel\n\t);\n}\n\nexport function useHasTextPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.text &&\n\t\t( colors?.length > 0 || settings?.color?.custom )\n\t);\n}\n\nexport function useHasLinkPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.link &&\n\t\t( colors?.length > 0 || settings?.color?.custom )\n\t);\n}\n\nexport function useHasCaptionPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.caption &&\n\t\t( colors?.length > 0 || settings?.color?.custom )\n\t);\n}\n\nexport function useHasHeadingPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.heading &&\n\t\t( colors?.length > 0 ||\n\t\t\tsettings?.color?.custom ||\n\t\t\tgradients?.length > 0 ||\n\t\t\tsettings?.color?.customGradient )\n\t);\n}\n\nexport function useHasButtonPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.button &&\n\t\t( colors?.length > 0 ||\n\t\t\tsettings?.color?.custom ||\n\t\t\tgradients?.length > 0 ||\n\t\t\tsettings?.color?.customGradient )\n\t);\n}\n\nexport function useHasBackgroundPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.background &&\n\t\t( colors?.length > 0 ||\n\t\t\tsettings?.color?.custom ||\n\t\t\tgradients?.length > 0 ||\n\t\t\tsettings?.color?.customGradient )\n\t);\n}\n\nfunction ColorToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\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={ __( 'Color' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\thasInnerWrapper\n\t\t\tclassName=\"color-block-support-panel\"\n\t\t\t__experimentalFirstVisibleItemClass=\"first\"\n\t\t\t__experimentalLastVisibleItemClass=\"last\"\n\t\t>\n\t\t\t<div className=\"color-block-support-panel__inner-wrapper\">\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\ttext: true,\n\tbackground: true,\n\tlink: true,\n\theading: true,\n\tbutton: true,\n\tcaption: true,\n};\n\nconst popoverProps = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n};\n\nconst LabeledColorIndicators = ( { indicators, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t{ indicators.map( ( indicator, index ) => (\n\t\t\t\t<Flex key={ index } expanded={ false }>\n\t\t\t\t\t<ColorIndicator colorValue={ indicator } />\n\t\t\t\t</Flex>\n\t\t\t) ) }\n\t\t</ZStack>\n\t\t<FlexItem\n\t\t\tclassName=\"block-editor-panel-color-gradient-settings__color-name\"\n\t\t\ttitle={ label }\n\t\t>\n\t\t\t{ label }\n\t\t</FlexItem>\n\t</HStack>\n);\n\nfunction ColorPanelTab( {\n\tisGradient,\n\tinheritedValue,\n\tuserValue,\n\tsetValue,\n\tcolorGradientControlSettings,\n} ) {\n\treturn (\n\t\t<ColorGradientControl\n\t\t\t{ ...colorGradientControlSettings }\n\t\t\tshowTitle={ false }\n\t\t\tenableAlpha\n\t\t\t__experimentalIsRenderedInSidebar\n\t\t\tcolorValue={ isGradient ? undefined : inheritedValue }\n\t\t\tgradientValue={ isGradient ? inheritedValue : undefined }\n\t\t\tonColorChange={ isGradient ? undefined : setValue }\n\t\t\tonGradientChange={ isGradient ? setValue : undefined }\n\t\t\tclearable={ inheritedValue === userValue }\n\t\t\theadingLevel={ 3 }\n\t\t/>\n\t);\n}\n\nfunction ColorPanelDropdown( {\n\tlabel,\n\thasValue,\n\tresetValue,\n\tisShownByDefault,\n\tindicators,\n\ttabs,\n\tcolorGradientControlSettings,\n\tpanelId,\n} ) {\n\tconst tabConfigs = tabs.map( ( { key, label: tabLabel } ) => {\n\t\treturn {\n\t\t\tname: key,\n\t\t\ttitle: tabLabel,\n\t\t};\n\t} );\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\tclassName=\"block-editor-tools-panel-color-gradient-settings__item\"\n\t\t\thasValue={ hasValue }\n\t\t\tlabel={ label }\n\t\t\tonDeselect={ resetValue }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<Dropdown\n\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\tclassName=\"block-editor-tools-panel-color-gradient-settings__dropdown\"\n\t\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\t\tconst toggleProps = {\n\t\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\t\tclassName: classnames(\n\t\t\t\t\t\t\t'block-editor-panel-color-gradient-settings__dropdown',\n\t\t\t\t\t\t\t{ 'is-open': isOpen }\n\t\t\t\t\t\t),\n\t\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t\t'aria-label': sprintf(\n\t\t\t\t\t\t\t/* translators: %s is the type of color property, e.g., \"background\" */\n\t\t\t\t\t\t\t__( 'Color %s styles' ),\n\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button { ...toggleProps }>\n\t\t\t\t\t\t\t<LabeledColorIndicators\n\t\t\t\t\t\t\t\tindicators={ indicators }\n\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t\trenderContent={ () => (\n\t\t\t\t\t<DropdownContentWrapper paddingSize=\"none\">\n\t\t\t\t\t\t<div className=\"block-editor-panel-color-gradient-settings__dropdown-content\">\n\t\t\t\t\t\t\t{ tabs.length === 1 && (\n\t\t\t\t\t\t\t\t<ColorPanelTab\n\t\t\t\t\t\t\t\t\t{ ...tabs[ 0 ] }\n\t\t\t\t\t\t\t\t\tcolorGradientControlSettings={\n\t\t\t\t\t\t\t\t\t\tcolorGradientControlSettings\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ tabs.length > 1 && (\n\t\t\t\t\t\t\t\t<TabPanel tabs={ tabConfigs }>\n\t\t\t\t\t\t\t\t\t{ ( tab ) => {\n\t\t\t\t\t\t\t\t\t\tconst selectedTab = tabs.find(\n\t\t\t\t\t\t\t\t\t\t\t( t ) => t.key === tab.name\n\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\tif ( ! selectedTab ) {\n\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<ColorPanelTab\n\t\t\t\t\t\t\t\t\t\t\t\t{ ...selectedTab }\n\t\t\t\t\t\t\t\t\t\t\t\tcolorGradientControlSettings={\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolorGradientControlSettings\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t</TabPanel>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t) }\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n\nexport default function ColorPanel( {\n\tas: Wrapper = ColorToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n\tchildren,\n} ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\tconst areCustomSolidsEnabled = settings?.color?.custom;\n\tconst areCustomGradientsEnabled = settings?.color?.customGradient;\n\tconst hasSolidColors = colors.length > 0 || areCustomSolidsEnabled;\n\tconst hasGradientColors = gradients.length > 0 || areCustomGradientsEnabled;\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\tconst encodeColorValue = ( colorValue ) => {\n\t\tconst allColors = colors.flatMap(\n\t\t\t( { colors: originColors } ) => originColors\n\t\t);\n\t\tconst colorObject = allColors.find(\n\t\t\t( { color } ) => color === colorValue\n\t\t);\n\t\treturn colorObject\n\t\t\t? 'var:preset|color|' + colorObject.slug\n\t\t\t: colorValue;\n\t};\n\tconst encodeGradientValue = ( gradientValue ) => {\n\t\tconst allGradients = gradients.flatMap(\n\t\t\t( { gradients: originGradients } ) => originGradients\n\t\t);\n\t\tconst gradientObject = allGradients.find(\n\t\t\t( { gradient } ) => gradient === gradientValue\n\t\t);\n\t\treturn gradientObject\n\t\t\t? 'var:preset|gradient|' + gradientObject.slug\n\t\t\t: gradientValue;\n\t};\n\n\t// BackgroundColor\n\tconst showBackgroundPanel = useHasBackgroundPanel( settings );\n\tconst backgroundColor = decodeValue( inheritedValue?.color?.background );\n\tconst userBackgroundColor = decodeValue( value?.color?.background );\n\tconst gradient = decodeValue( inheritedValue?.color?.gradient );\n\tconst userGradient = decodeValue( value?.color?.gradient );\n\tconst hasBackground = () => !! userBackgroundColor || !! userGradient;\n\tconst setBackgroundColor = ( newColor ) => {\n\t\tconst newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'color', 'background' ],\n\t\t\tencodeColorValue( newColor )\n\t\t);\n\t\tnewValue.color.gradient = undefined;\n\t\tonChange( newValue );\n\t};\n\tconst setGradient = ( newGradient ) => {\n\t\tconst newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'color', 'gradient' ],\n\t\t\tencodeGradientValue( newGradient )\n\t\t);\n\t\tnewValue.color.background = undefined;\n\t\tonChange( newValue );\n\t};\n\tconst resetBackground = () => {\n\t\tconst newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'color', 'background' ],\n\t\t\tundefined\n\t\t);\n\t\tnewValue.color.gradient = undefined;\n\t\tonChange( newValue );\n\t};\n\n\t// Links\n\tconst showLinkPanel = useHasLinkPanel( settings );\n\tconst linkColor = decodeValue(\n\t\tinheritedValue?.elements?.link?.color?.text\n\t);\n\tconst userLinkColor = decodeValue( value?.elements?.link?.color?.text );\n\tconst setLinkColor = ( newColor ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\t\t\tencodeColorValue( newColor )\n\t\t\t)\n\t\t);\n\t};\n\tconst hoverLinkColor = decodeValue(\n\t\tinheritedValue?.elements?.link?.[ ':hover' ]?.color?.text\n\t);\n\tconst userHoverLinkColor = decodeValue(\n\t\tvalue?.elements?.link?.[ ':hover' ]?.color?.text\n\t);\n\tconst setHoverLinkColor = ( newColor ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', 'link', ':hover', 'color', 'text' ],\n\t\t\t\tencodeColorValue( newColor )\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLink = () => !! userLinkColor || !! userHoverLinkColor;\n\tconst resetLink = () => {\n\t\tlet newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'elements', 'link', ':hover', 'color', 'text' ],\n\t\t\tundefined\n\t\t);\n\t\tnewValue = setImmutably(\n\t\t\tnewValue,\n\t\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\t\tundefined\n\t\t);\n\t\tonChange( newValue );\n\t};\n\n\t// Text Color\n\tconst showTextPanel = useHasTextPanel( settings );\n\tconst textColor = decodeValue( inheritedValue?.color?.text );\n\tconst userTextColor = decodeValue( value?.color?.text );\n\tconst hasTextColor = () => !! userTextColor;\n\tconst setTextColor = ( newColor ) => {\n\t\tlet changedObject = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'color', 'text' ],\n\t\t\tencodeColorValue( newColor )\n\t\t);\n\t\tif ( textColor === linkColor ) {\n\t\t\tchangedObject = setImmutably(\n\t\t\t\tchangedObject,\n\t\t\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\t\t\tencodeColorValue( newColor )\n\t\t\t);\n\t\t}\n\n\t\tonChange( changedObject );\n\t};\n\tconst resetTextColor = () => setTextColor( undefined );\n\n\t// Elements\n\tconst elements = [\n\t\t{\n\t\t\tname: 'caption',\n\t\t\tlabel: __( 'Captions' ),\n\t\t\tshowPanel: useHasCaptionPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'button',\n\t\t\tlabel: __( 'Button' ),\n\t\t\tshowPanel: useHasButtonPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'heading',\n\t\t\tlabel: __( 'Heading' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h1',\n\t\t\tlabel: __( 'H1' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h2',\n\t\t\tlabel: __( 'H2' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h3',\n\t\t\tlabel: __( 'H3' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h4',\n\t\t\tlabel: __( 'H4' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h5',\n\t\t\tlabel: __( 'H5' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h6',\n\t\t\tlabel: __( 'H6' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t];\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tcolor: undefined,\n\t\t\telements: {\n\t\t\t\t...previousValue?.elements,\n\t\t\t\tlink: {\n\t\t\t\t\t...previousValue?.elements?.link,\n\t\t\t\t\tcolor: undefined,\n\t\t\t\t\t':hover': {\n\t\t\t\t\t\tcolor: undefined,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...elements.reduce( ( acc, element ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t[ element.name ]: {\n\t\t\t\t\t\t\t...previousValue?.elements?.[ element.name ],\n\t\t\t\t\t\t\tcolor: undefined,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}, {} ),\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst items = [\n\t\tshowTextPanel && {\n\t\t\tkey: 'text',\n\t\t\tlabel: __( 'Text' ),\n\t\t\thasValue: hasTextColor,\n\t\t\tresetValue: resetTextColor,\n\t\t\tisShownByDefault: defaultControls.text,\n\t\t\tindicators: [ textColor ],\n\t\t\ttabs: [\n\t\t\t\t{\n\t\t\t\t\tkey: 'text',\n\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\tinheritedValue: textColor,\n\t\t\t\t\tsetValue: setTextColor,\n\t\t\t\t\tuserValue: userTextColor,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tshowBackgroundPanel && {\n\t\t\tkey: 'background',\n\t\t\tlabel: __( 'Background' ),\n\t\t\thasValue: hasBackground,\n\t\t\tresetValue: resetBackground,\n\t\t\tisShownByDefault: defaultControls.background,\n\t\t\tindicators: [ gradient ?? backgroundColor ],\n\t\t\ttabs: [\n\t\t\t\thasSolidColors && {\n\t\t\t\t\tkey: 'background',\n\t\t\t\t\tlabel: __( 'Solid' ),\n\t\t\t\t\tinheritedValue: backgroundColor,\n\t\t\t\t\tsetValue: setBackgroundColor,\n\t\t\t\t\tuserValue: userBackgroundColor,\n\t\t\t\t},\n\t\t\t\thasGradientColors && {\n\t\t\t\t\tkey: 'gradient',\n\t\t\t\t\tlabel: __( 'Gradient' ),\n\t\t\t\t\tinheritedValue: gradient,\n\t\t\t\t\tsetValue: setGradient,\n\t\t\t\t\tuserValue: userGradient,\n\t\t\t\t\tisGradient: true,\n\t\t\t\t},\n\t\t\t].filter( Boolean ),\n\t\t},\n\t\tshowLinkPanel && {\n\t\t\tkey: 'link',\n\t\t\tlabel: __( 'Link' ),\n\t\t\thasValue: hasLink,\n\t\t\tresetValue: resetLink,\n\t\t\tisShownByDefault: defaultControls.link,\n\t\t\tindicators: [ linkColor, hoverLinkColor ],\n\t\t\ttabs: [\n\t\t\t\t{\n\t\t\t\t\tkey: 'link',\n\t\t\t\t\tlabel: __( 'Default' ),\n\t\t\t\t\tinheritedValue: linkColor,\n\t\t\t\t\tsetValue: setLinkColor,\n\t\t\t\t\tuserValue: userLinkColor,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: 'hover',\n\t\t\t\t\tlabel: __( 'Hover' ),\n\t\t\t\t\tinheritedValue: hoverLinkColor,\n\t\t\t\t\tsetValue: setHoverLinkColor,\n\t\t\t\t\tuserValue: userHoverLinkColor,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t].filter( Boolean );\n\n\telements.forEach( ( { name, label, showPanel } ) => {\n\t\tif ( ! showPanel ) return;\n\n\t\tconst elementBackgroundColor = decodeValue(\n\t\t\tinheritedValue?.elements?.[ name ]?.color?.background\n\t\t);\n\t\tconst elementGradient = decodeValue(\n\t\t\tinheritedValue?.elements?.[ name ]?.color?.gradient\n\t\t);\n\t\tconst elementTextColor = decodeValue(\n\t\t\tinheritedValue?.elements?.[ name ]?.color?.text\n\t\t);\n\t\tconst elementBackgroundUserColor = decodeValue(\n\t\t\tvalue?.elements?.[ name ]?.color?.background\n\t\t);\n\t\tconst elementGradientUserColor = decodeValue(\n\t\t\tvalue?.elements?.[ name ]?.color?.gradient\n\t\t);\n\t\tconst elementTextUserColor = decodeValue(\n\t\t\tvalue?.elements?.[ name ]?.color?.text\n\t\t);\n\t\tconst hasElement = () =>\n\t\t\t!! (\n\t\t\t\telementTextUserColor ||\n\t\t\t\telementBackgroundUserColor ||\n\t\t\t\telementGradientUserColor\n\t\t\t);\n\t\tconst resetElement = () => {\n\t\t\tconst newValue = setImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', name, 'color', 'background' ],\n\t\t\t\tundefined\n\t\t\t);\n\t\t\tnewValue.elements[ name ].color.gradient = undefined;\n\t\t\tnewValue.elements[ name ].color.text = undefined;\n\t\t\tonChange( newValue );\n\t\t};\n\n\t\tconst setElementTextColor = ( newTextColor ) => {\n\t\t\tonChange(\n\t\t\t\tsetImmutably(\n\t\t\t\t\tvalue,\n\t\t\t\t\t[ 'elements', name, 'color', 'text' ],\n\t\t\t\t\tencodeColorValue( newTextColor )\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\t\tconst setElementBackgroundColor = ( newBackgroundColor ) => {\n\t\t\tconst newValue = setImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', name, 'color', 'background' ],\n\t\t\t\tencodeColorValue( newBackgroundColor )\n\t\t\t);\n\t\t\tnewValue.elements[ name ].color.gradient = undefined;\n\t\t\tonChange( newValue );\n\t\t};\n\t\tconst setElementGradient = ( newGradient ) => {\n\t\t\tconst newValue = setImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', name, 'color', 'gradient' ],\n\t\t\t\tencodeGradientValue( newGradient )\n\t\t\t);\n\t\t\tnewValue.elements[ name ].color.background = undefined;\n\t\t\tonChange( newValue );\n\t\t};\n\t\tconst supportsTextColor = true;\n\t\t// Background color is not supported for `caption`\n\t\t// as there isn't yet a way to set padding for the element.\n\t\tconst supportsBackground = name !== 'caption';\n\n\t\titems.push( {\n\t\t\tkey: name,\n\t\t\tlabel,\n\t\t\thasValue: hasElement,\n\t\t\tresetValue: resetElement,\n\t\t\tisShownByDefault: defaultControls[ name ],\n\t\t\tindicators:\n\t\t\t\tsupportsTextColor && supportsBackground\n\t\t\t\t\t? [\n\t\t\t\t\t\t\telementTextColor,\n\t\t\t\t\t\t\telementGradient ?? elementBackgroundColor,\n\t\t\t\t\t ]\n\t\t\t\t\t: [\n\t\t\t\t\t\t\tsupportsTextColor\n\t\t\t\t\t\t\t\t? elementTextColor\n\t\t\t\t\t\t\t\t: elementGradient ?? elementBackgroundColor,\n\t\t\t\t\t ],\n\t\t\ttabs: [\n\t\t\t\thasSolidColors &&\n\t\t\t\t\tsupportsTextColor && {\n\t\t\t\t\t\tkey: 'text',\n\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\tinheritedValue: elementTextColor,\n\t\t\t\t\t\tsetValue: setElementTextColor,\n\t\t\t\t\t\tuserValue: elementTextUserColor,\n\t\t\t\t\t},\n\t\t\t\thasSolidColors &&\n\t\t\t\t\tsupportsBackground && {\n\t\t\t\t\t\tkey: 'background',\n\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\tinheritedValue: elementBackgroundColor,\n\t\t\t\t\t\tsetValue: setElementBackgroundColor,\n\t\t\t\t\t\tuserValue: elementBackgroundUserColor,\n\t\t\t\t\t},\n\t\t\t\thasGradientColors &&\n\t\t\t\t\tsupportsBackground && {\n\t\t\t\t\t\tkey: 'gradient',\n\t\t\t\t\t\tlabel: __( 'Gradient' ),\n\t\t\t\t\t\tinheritedValue: elementGradient,\n\t\t\t\t\t\tsetValue: setElementGradient,\n\t\t\t\t\t\tuserValue: elementGradientUserColor,\n\t\t\t\t\t\tisGradient: true,\n\t\t\t\t\t},\n\t\t\t].filter( Boolean ),\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{ items.map( ( item ) => (\n\t\t\t\t<ColorPanelDropdown\n\t\t\t\t\tkey={ item.key }\n\t\t\t\t\t{ ...item }\n\t\t\t\t\tcolorGradientControlSettings={ {\n\t\t\t\t\t\tcolors,\n\t\t\t\t\t\tdisableCustomColors: ! areCustomSolidsEnabled,\n\t\t\t\t\t\tgradients,\n\t\t\t\t\t\tdisableCustomGradients: ! areCustomGradientsEnabled,\n\t\t\t\t\t} }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t\t{ children }\n\t\t</Wrapper>\n\t);\n}\n"]}
|
|
@@ -186,18 +186,29 @@ export default function DimensionsPanel({
|
|
|
186
186
|
}) {
|
|
187
187
|
var _settings$parentLayou2, _defaultControls$cont, _defaultControls$wide, _defaultControls$padd, _defaultControls$marg, _defaultControls$bloc, _defaultControls$minH, _defaultControls$chil;
|
|
188
188
|
|
|
189
|
+
const {
|
|
190
|
+
dimensions,
|
|
191
|
+
spacing
|
|
192
|
+
} = settings;
|
|
193
|
+
|
|
189
194
|
const decodeValue = rawValue => {
|
|
190
195
|
if (rawValue && typeof rawValue === 'object') {
|
|
191
196
|
return Object.keys(rawValue).reduce((acc, key) => {
|
|
192
197
|
acc[key] = getValueFromVariable({
|
|
193
|
-
settings
|
|
198
|
+
settings: {
|
|
199
|
+
dimensions,
|
|
200
|
+
spacing
|
|
201
|
+
}
|
|
194
202
|
}, '', rawValue[key]);
|
|
195
203
|
return acc;
|
|
196
204
|
}, {});
|
|
197
205
|
}
|
|
198
206
|
|
|
199
207
|
return getValueFromVariable({
|
|
200
|
-
settings
|
|
208
|
+
settings: {
|
|
209
|
+
dimensions,
|
|
210
|
+
spacing
|
|
211
|
+
}
|
|
201
212
|
}, '', rawValue);
|
|
202
213
|
};
|
|
203
214
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/dimensions-panel.js"],"names":["classnames","__","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalBoxControl","BoxControl","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalUnitControl","UnitControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalView","View","Icon","positionCenter","stretchWide","useCallback","Platform","getValueFromVariable","SpacingSizesControl","HeightControl","ChildLayoutControl","cleanEmptyObject","setImmutably","AXIAL_SIDES","useHasDimensionsPanel","settings","hasContentSize","useHasContentSize","hasWideSize","useHasWideSize","hasPadding","useHasPadding","hasMargin","useHasMargin","hasGap","useHasGap","hasMinHeight","useHasMinHeight","hasChildLayout","useHasChildLayout","OS","layout","contentSize","wideSize","spacing","padding","margin","blockGap","dimensions","minHeight","type","parentLayoutType","default","defaultParentLayoutType","allowSizingOnChildren","parentLayout","support","useHasSpacingPresets","custom","theme","defaultPresets","spacingSizes","presets","length","filterValuesBySides","values","sides","filteredValues","forEach","side","top","bottom","left","right","splitStyleValue","value","splitGapValue","DimensionsToolsPanel","resetAllFilter","onChange","panelId","children","resetAll","updatedValue","DEFAULT_CONTROLS","childLayout","DimensionsPanel","as","Wrapper","inheritedValue","defaultControls","onVisualize","includeLayoutControls","decodeValue","rawValue","Object","keys","reduce","acc","key","showSpacingPresetsControl","units","availableUnits","showContentSizeControl","contentSizeValue","setContentSizeValue","newValue","undefined","hasUserSetContentSizeValue","resetContentSizeValue","showWideSizeControl","wideSizeValue","setWideSizeValue","hasUserSetWideSizeValue","resetWideSizeValue","showPaddingControl","rawPadding","paddingValues","paddingSides","Array","isArray","isAxialPadding","some","includes","setPaddingValues","newPaddingValues","hasPaddingValue","resetPaddingValue","onMouseOverPadding","showMarginControl","rawMargin","marginValues","marginSides","isAxialMargin","setMarginValues","newMarginValues","hasMarginValue","resetMarginValue","onMouseOverMargin","showGapControl","gapValue","gapValues","gapSides","isAxialGap","setGapValue","newGapValue","setGapValues","nextBoxGapValue","hasOwnProperty","resetGapValue","hasGapValue","showMinHeightControl","minHeightValue","setMinHeightValue","resetMinHeightValue","hasMinHeightValue","showChildLayoutControl","orientation","childLayoutOrientationLabel","setChildLayout","newChildLayout","resetChildLayoutValue","selfStretch","flexSize","hasChildLayoutValue","previousValue","onMouseLeaveControls","nextContentSize","nextWideSize"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalBoxControl as BoxControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalView as View,\n} from '@wordpress/components';\nimport { Icon, positionCenter, stretchWide } from '@wordpress/icons';\nimport { useCallback, Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable } from './utils';\nimport SpacingSizesControl from '../spacing-sizes-control';\nimport HeightControl from '../height-control';\nimport ChildLayoutControl from '../child-layout-control';\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 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\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 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' || parentLayoutType === 'flex' ) &&\n\t\tallowSizingOnChildren;\n\n\treturn !! settings?.layout && support;\n}\n\nfunction useHasSpacingPresets( settings ) {\n\tconst {\n\t\tcustom,\n\t\ttheme,\n\t\tdefault: defaultPresets,\n\t} = settings?.spacing?.spacingSizes || {};\n\tconst presets = custom ?? theme ?? defaultPresets ?? [];\n\n\treturn presets.length > 0;\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 ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// If the value is a string, treat it as a single side (top) for the spacing controls.\n\t\treturn {\n\t\t\ttop: value,\n\t\t};\n\t}\n\n\tif ( value ) {\n\t\treturn {\n\t\t\t...value,\n\t\t\tright: value?.left,\n\t\t\tbottom: value?.top,\n\t\t};\n\t}\n\n\treturn value;\n}\n\nfunction DimensionsToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\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>\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\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 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 },\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( { settings }, '', rawValue );\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// Content Size\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 Size\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 gapValue = decodeValue( inheritedValue?.spacing?.blockGap );\n\tconst gapValues = splitGapValue( gapValue );\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 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\tonChange(\n\t\t\tsetImmutably( value, [ 'dimensions', 'minHeight' ], newValue )\n\t\t);\n\t};\n\tconst resetMinHeightValue = () => {\n\t\tsetMinHeightValue( undefined );\n\t};\n\tconst hasMinHeightValue = () => !! value?.dimensions?.minHeight;\n\n\t// Child Layout\n\tconst showChildLayoutControl = useHasChildLayout( settings );\n\tconst childLayout = inheritedValue?.layout;\n\tconst { orientation = 'horizontal' } = settings?.parentLayout ?? {};\n\tconst childLayoutOrientationLabel =\n\t\torientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n\tconst setChildLayout = ( newChildLayout ) => {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\tlayout: {\n\t\t\t\t...value?.layout,\n\t\t\t\t...newChildLayout,\n\t\t\t},\n\t\t} );\n\t};\n\tconst resetChildLayoutValue = () => {\n\t\tsetChildLayout( {\n\t\t\tselfStretch: undefined,\n\t\t\tflexSize: undefined,\n\t\t} );\n\t};\n\tconst hasChildLayoutValue = () => !! value?.layout;\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} ),\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},\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\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Content size' ) }\n\t\t\t\t\thasValue={ hasUserSetContentSizeValue }\n\t\t\t\t\tonDeselect={ resetContentSizeValue }\n\t\t\t\t\tisShownByDefault={\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<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Content' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ contentSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextContentSize ) => {\n\t\t\t\t\t\t\t\tsetContentSizeValue( nextContentSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ positionCenter } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showWideSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Wide size' ) }\n\t\t\t\t\thasValue={ hasUserSetWideSizeValue }\n\t\t\t\t\tonDeselect={ resetWideSizeValue }\n\t\t\t\t\tisShownByDefault={\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<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Wide' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ wideSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextWideSize ) => {\n\t\t\t\t\t\t\t\tsetWideSizeValue( nextWideSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showPaddingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasPaddingValue }\n\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\tonDeselect={ resetPaddingValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.padding ?? DEFAULT_CONTROLS.padding\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ classnames( {\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\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\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\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={ classnames( {\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\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\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\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\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\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={ classnames( {\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( isAxialGap ? (\n\t\t\t\t\t\t\t<BoxControl\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\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\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{ showMinHeightControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMinHeightValue }\n\t\t\t\t\tlabel={ __( 'Min. 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={ __( 'Min. 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{ showChildLayoutControl && (\n\t\t\t\t<VStack\n\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\thasValue={ hasChildLayoutValue }\n\t\t\t\t\tlabel={ childLayoutOrientationLabel }\n\t\t\t\t\tonDeselect={ resetChildLayoutValue }\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\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<ChildLayoutControl\n\t\t\t\t\t\tvalue={ childLayout }\n\t\t\t\t\t\tonChange={ setChildLayout }\n\t\t\t\t\t\tparentLayout={ settings?.parentLayout }\n\t\t\t\t\t/>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/dimensions-panel.js"],"names":["classnames","__","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalBoxControl","BoxControl","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalUnitControl","UnitControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalView","View","Icon","positionCenter","stretchWide","useCallback","Platform","getValueFromVariable","SpacingSizesControl","HeightControl","ChildLayoutControl","cleanEmptyObject","setImmutably","AXIAL_SIDES","useHasDimensionsPanel","settings","hasContentSize","useHasContentSize","hasWideSize","useHasWideSize","hasPadding","useHasPadding","hasMargin","useHasMargin","hasGap","useHasGap","hasMinHeight","useHasMinHeight","hasChildLayout","useHasChildLayout","OS","layout","contentSize","wideSize","spacing","padding","margin","blockGap","dimensions","minHeight","type","parentLayoutType","default","defaultParentLayoutType","allowSizingOnChildren","parentLayout","support","useHasSpacingPresets","custom","theme","defaultPresets","spacingSizes","presets","length","filterValuesBySides","values","sides","filteredValues","forEach","side","top","bottom","left","right","splitStyleValue","value","splitGapValue","DimensionsToolsPanel","resetAllFilter","onChange","panelId","children","resetAll","updatedValue","DEFAULT_CONTROLS","childLayout","DimensionsPanel","as","Wrapper","inheritedValue","defaultControls","onVisualize","includeLayoutControls","decodeValue","rawValue","Object","keys","reduce","acc","key","showSpacingPresetsControl","units","availableUnits","showContentSizeControl","contentSizeValue","setContentSizeValue","newValue","undefined","hasUserSetContentSizeValue","resetContentSizeValue","showWideSizeControl","wideSizeValue","setWideSizeValue","hasUserSetWideSizeValue","resetWideSizeValue","showPaddingControl","rawPadding","paddingValues","paddingSides","Array","isArray","isAxialPadding","some","includes","setPaddingValues","newPaddingValues","hasPaddingValue","resetPaddingValue","onMouseOverPadding","showMarginControl","rawMargin","marginValues","marginSides","isAxialMargin","setMarginValues","newMarginValues","hasMarginValue","resetMarginValue","onMouseOverMargin","showGapControl","gapValue","gapValues","gapSides","isAxialGap","setGapValue","newGapValue","setGapValues","nextBoxGapValue","hasOwnProperty","resetGapValue","hasGapValue","showMinHeightControl","minHeightValue","setMinHeightValue","resetMinHeightValue","hasMinHeightValue","showChildLayoutControl","orientation","childLayoutOrientationLabel","setChildLayout","newChildLayout","resetChildLayoutValue","selfStretch","flexSize","hasChildLayoutValue","previousValue","onMouseLeaveControls","nextContentSize","nextWideSize"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalBoxControl as BoxControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalView as View,\n} from '@wordpress/components';\nimport { Icon, positionCenter, stretchWide } from '@wordpress/icons';\nimport { useCallback, Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable } from './utils';\nimport SpacingSizesControl from '../spacing-sizes-control';\nimport HeightControl from '../height-control';\nimport ChildLayoutControl from '../child-layout-control';\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 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\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 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' || parentLayoutType === 'flex' ) &&\n\t\tallowSizingOnChildren;\n\n\treturn !! settings?.layout && support;\n}\n\nfunction useHasSpacingPresets( settings ) {\n\tconst {\n\t\tcustom,\n\t\ttheme,\n\t\tdefault: defaultPresets,\n\t} = settings?.spacing?.spacingSizes || {};\n\tconst presets = custom ?? theme ?? defaultPresets ?? [];\n\n\treturn presets.length > 0;\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 ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// If the value is a string, treat it as a single side (top) for the spacing controls.\n\t\treturn {\n\t\t\ttop: value,\n\t\t};\n\t}\n\n\tif ( value ) {\n\t\treturn {\n\t\t\t...value,\n\t\t\tright: value?.left,\n\t\t\tbottom: value?.top,\n\t\t};\n\t}\n\n\treturn value;\n}\n\nfunction DimensionsToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\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>\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\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// Content Size\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 Size\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 gapValue = decodeValue( inheritedValue?.spacing?.blockGap );\n\tconst gapValues = splitGapValue( gapValue );\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 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\tonChange(\n\t\t\tsetImmutably( value, [ 'dimensions', 'minHeight' ], newValue )\n\t\t);\n\t};\n\tconst resetMinHeightValue = () => {\n\t\tsetMinHeightValue( undefined );\n\t};\n\tconst hasMinHeightValue = () => !! value?.dimensions?.minHeight;\n\n\t// Child Layout\n\tconst showChildLayoutControl = useHasChildLayout( settings );\n\tconst childLayout = inheritedValue?.layout;\n\tconst { orientation = 'horizontal' } = settings?.parentLayout ?? {};\n\tconst childLayoutOrientationLabel =\n\t\torientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n\tconst setChildLayout = ( newChildLayout ) => {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\tlayout: {\n\t\t\t\t...value?.layout,\n\t\t\t\t...newChildLayout,\n\t\t\t},\n\t\t} );\n\t};\n\tconst resetChildLayoutValue = () => {\n\t\tsetChildLayout( {\n\t\t\tselfStretch: undefined,\n\t\t\tflexSize: undefined,\n\t\t} );\n\t};\n\tconst hasChildLayoutValue = () => !! value?.layout;\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} ),\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},\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\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Content size' ) }\n\t\t\t\t\thasValue={ hasUserSetContentSizeValue }\n\t\t\t\t\tonDeselect={ resetContentSizeValue }\n\t\t\t\t\tisShownByDefault={\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<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Content' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ contentSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextContentSize ) => {\n\t\t\t\t\t\t\t\tsetContentSizeValue( nextContentSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ positionCenter } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showWideSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Wide size' ) }\n\t\t\t\t\thasValue={ hasUserSetWideSizeValue }\n\t\t\t\t\tonDeselect={ resetWideSizeValue }\n\t\t\t\t\tisShownByDefault={\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<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Wide' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ wideSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextWideSize ) => {\n\t\t\t\t\t\t\t\tsetWideSizeValue( nextWideSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showPaddingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasPaddingValue }\n\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\tonDeselect={ resetPaddingValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.padding ?? DEFAULT_CONTROLS.padding\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ classnames( {\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\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\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\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={ classnames( {\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\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\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\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\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\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={ classnames( {\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( isAxialGap ? (\n\t\t\t\t\t\t\t<BoxControl\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\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\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{ showMinHeightControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMinHeightValue }\n\t\t\t\t\tlabel={ __( 'Min. 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={ __( 'Min. 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{ showChildLayoutControl && (\n\t\t\t\t<VStack\n\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\thasValue={ hasChildLayoutValue }\n\t\t\t\t\tlabel={ childLayoutOrientationLabel }\n\t\t\t\t\tonDeselect={ resetChildLayoutValue }\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\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<ChildLayoutControl\n\t\t\t\t\t\tvalue={ childLayout }\n\t\t\t\t\t\tonChange={ setChildLayout }\n\t\t\t\t\t\tparentLayout={ settings?.parentLayout }\n\t\t\t\t\t/>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"]}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { get } from 'lodash';
|
|
5
1
|
/**
|
|
6
2
|
* Internal dependencies
|
|
7
3
|
*/
|
|
8
|
-
|
|
9
4
|
import { scopeSelector } from './utils';
|
|
5
|
+
import { getValueFromObjectPath } from '../../utils/object';
|
|
10
6
|
/**
|
|
11
7
|
* Determine the CSS selector for the block type and target provided, returning
|
|
12
8
|
* it if available.
|
|
@@ -64,13 +60,13 @@ export function getBlockCSSSelector(blockType, target = 'root', options = {}) {
|
|
|
64
60
|
|
|
65
61
|
if (hasSelectors) {
|
|
66
62
|
// Get selector from either `feature.root` or shorthand path.
|
|
67
|
-
const featureSelector =
|
|
63
|
+
const featureSelector = getValueFromObjectPath(selectors, `${path}.root`, null) || getValueFromObjectPath(selectors, path, null); // Return feature selector if found or any available fallback.
|
|
68
64
|
|
|
69
65
|
return featureSelector || fallbackSelector;
|
|
70
66
|
} // Try getting old experimental supports selector value.
|
|
71
67
|
|
|
72
68
|
|
|
73
|
-
const featureSelector =
|
|
69
|
+
const featureSelector = getValueFromObjectPath(supports, `${path}.__experimentalSelector`, null); // If nothing to work with, provide fallback selector if available.
|
|
74
70
|
|
|
75
71
|
if (!featureSelector) {
|
|
76
72
|
return fallbackSelector;
|
|
@@ -85,7 +81,7 @@ export function getBlockCSSSelector(blockType, target = 'root', options = {}) {
|
|
|
85
81
|
let subfeatureSelector; // Use selectors API if available.
|
|
86
82
|
|
|
87
83
|
if (hasSelectors) {
|
|
88
|
-
subfeatureSelector =
|
|
84
|
+
subfeatureSelector = getValueFromObjectPath(selectors, path, null);
|
|
89
85
|
} // Only return if we have a subfeature selector.
|
|
90
86
|
|
|
91
87
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/get-block-css-selector.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/get-block-css-selector.js"],"names":["scopeSelector","getValueFromObjectPath","getBlockCSSSelector","blockType","target","options","fallback","name","selectors","supports","hasSelectors","Object","keys","length","path","Array","isArray","join","rootSelector","root","__experimentalSelector","replace","pathArray","split","fallbackSelector","featureSelector","subfeatureSelector"],"mappings":"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","sourcesContent":["/**\n * Internal dependencies\n */\nimport { scopeSelector } from './utils';\nimport { getValueFromObjectPath } from '../../utils/object';\n\n/**\n * Determine the CSS selector for the block type and target provided, returning\n * it if available.\n *\n * @param {import('@wordpress/blocks').Block} blockType The block's type.\n * @param {string|string[]} target The desired selector's target e.g. `root`, delimited string, or array path.\n * @param {Object} options Options object.\n * @param {boolean} options.fallback Whether or not to fallback to broader selector.\n *\n * @return {?string} The CSS selector or `null` if no selector available.\n */\nexport function getBlockCSSSelector(\n\tblockType,\n\ttarget = 'root',\n\toptions = {}\n) {\n\tif ( ! target ) {\n\t\treturn null;\n\t}\n\n\tconst { fallback = false } = options;\n\tconst { name, selectors, supports } = blockType;\n\n\tconst hasSelectors = selectors && Object.keys( selectors ).length > 0;\n\tconst path = Array.isArray( target ) ? target.join( '.' ) : target;\n\n\t// Root selector.\n\n\t// Calculated before returning as it can be used as a fallback for feature\n\t// selectors later on.\n\tlet rootSelector = null;\n\n\tif ( hasSelectors && selectors.root ) {\n\t\t// Use the selectors API if available.\n\t\trootSelector = selectors?.root;\n\t} else if ( supports?.__experimentalSelector ) {\n\t\t// Use the old experimental selector supports property if set.\n\t\trootSelector = supports.__experimentalSelector;\n\t} else {\n\t\t// If no root selector found, generate default block class selector.\n\t\trootSelector =\n\t\t\t'.wp-block-' + name.replace( 'core/', '' ).replace( '/', '-' );\n\t}\n\n\t// Return selector if it's the root target we are looking for.\n\tif ( path === 'root' ) {\n\t\treturn rootSelector;\n\t}\n\n\t// If target is not `root` or `duotone` we have a feature or subfeature\n\t// as the target. If the target is a string convert to an array.\n\tconst pathArray = Array.isArray( target ) ? target : target.split( '.' );\n\n\t// Feature selectors ( may fallback to root selector );\n\tif ( pathArray.length === 1 ) {\n\t\tconst fallbackSelector = fallback ? rootSelector : null;\n\n\t\t// Prefer the selectors API if available.\n\t\tif ( hasSelectors ) {\n\t\t\t// Get selector from either `feature.root` or shorthand path.\n\t\t\tconst featureSelector =\n\t\t\t\tgetValueFromObjectPath( selectors, `${ path }.root`, null ) ||\n\t\t\t\tgetValueFromObjectPath( selectors, path, null );\n\n\t\t\t// Return feature selector if found or any available fallback.\n\t\t\treturn featureSelector || fallbackSelector;\n\t\t}\n\n\t\t// Try getting old experimental supports selector value.\n\t\tconst featureSelector = getValueFromObjectPath(\n\t\t\tsupports,\n\t\t\t`${ path }.__experimentalSelector`,\n\t\t\tnull\n\t\t);\n\n\t\t// If nothing to work with, provide fallback selector if available.\n\t\tif ( ! featureSelector ) {\n\t\t\treturn fallbackSelector;\n\t\t}\n\n\t\t// Scope the feature selector by the block's root selector.\n\t\treturn scopeSelector( rootSelector, featureSelector );\n\t}\n\n\t// Subfeature selector.\n\t// This may fallback either to parent feature or root selector.\n\tlet subfeatureSelector;\n\n\t// Use selectors API if available.\n\tif ( hasSelectors ) {\n\t\tsubfeatureSelector = getValueFromObjectPath( selectors, path, null );\n\t}\n\n\t// Only return if we have a subfeature selector.\n\tif ( subfeatureSelector ) {\n\t\treturn subfeatureSelector;\n\t}\n\n\t// To this point we don't have a subfeature selector. If a fallback has been\n\t// requested, remove subfeature from target path and return results of a\n\t// call for the parent feature's selector.\n\tif ( fallback ) {\n\t\treturn getBlockCSSSelector( blockType, pathArray[ 0 ], options );\n\t}\n\n\t// We tried.\n\treturn null;\n}\n"]}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import fastDeepEqual from 'fast-deep-equal/es6';
|
|
5
|
-
import { get, set } from 'lodash';
|
|
6
5
|
/**
|
|
7
6
|
* WordPress dependencies
|
|
8
7
|
*/
|
|
@@ -16,6 +15,7 @@ import { _x } from '@wordpress/i18n';
|
|
|
16
15
|
*/
|
|
17
16
|
|
|
18
17
|
import { getValueFromVariable, getPresetVariableFromValue } from './utils';
|
|
18
|
+
import { getValueFromObjectPath, setImmutably } from '../../utils/object';
|
|
19
19
|
import { GlobalStylesContext } from './context';
|
|
20
20
|
import { unlock } from '../../lock-unlock';
|
|
21
21
|
const EMPTY_CONFIG = {
|
|
@@ -49,31 +49,26 @@ export function useGlobalSetting(propertyPath, blockName, source = 'all') {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
if (propertyPath) {
|
|
52
|
-
var
|
|
52
|
+
var _getValueFromObjectPa;
|
|
53
53
|
|
|
54
|
-
return (
|
|
54
|
+
return (_getValueFromObjectPa = getValueFromObjectPath(configToUse, contextualPath)) !== null && _getValueFromObjectPa !== void 0 ? _getValueFromObjectPa : getValueFromObjectPath(configToUse, globalPath);
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
let result = {};
|
|
58
58
|
VALID_SETTINGS.forEach(setting => {
|
|
59
|
-
var
|
|
59
|
+
var _getValueFromObjectPa2;
|
|
60
60
|
|
|
61
|
-
const value = (
|
|
61
|
+
const value = (_getValueFromObjectPa2 = getValueFromObjectPath(configToUse, `settings${appendedBlockPath}.${setting}`)) !== null && _getValueFromObjectPa2 !== void 0 ? _getValueFromObjectPa2 : getValueFromObjectPath(configToUse, `settings.${setting}`);
|
|
62
62
|
|
|
63
63
|
if (value) {
|
|
64
|
-
|
|
64
|
+
result = setImmutably(result, setting.split('.'), value);
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
return result;
|
|
68
68
|
}, [configs, sourceKey, propertyPath, contextualPath, globalPath, appendedBlockPath]);
|
|
69
69
|
|
|
70
70
|
const setSetting = newValue => {
|
|
71
|
-
setUserConfig(currentConfig =>
|
|
72
|
-
// Deep clone `currentConfig` to avoid mutating it later.
|
|
73
|
-
const newUserConfig = JSON.parse(JSON.stringify(currentConfig));
|
|
74
|
-
set(newUserConfig, contextualPath, newValue);
|
|
75
|
-
return newUserConfig;
|
|
76
|
-
});
|
|
71
|
+
setUserConfig(currentConfig => setImmutably(currentConfig, contextualPath.split('.'), newValue));
|
|
77
72
|
};
|
|
78
73
|
|
|
79
74
|
return [settingValue, setSetting];
|
|
@@ -91,29 +86,24 @@ export function useGlobalStyle(path, blockName, source = 'all', {
|
|
|
91
86
|
const finalPath = !blockName ? `styles${appendedPath}` : `styles.blocks.${blockName}${appendedPath}`;
|
|
92
87
|
|
|
93
88
|
const setStyle = newValue => {
|
|
94
|
-
setUserConfig(currentConfig =>
|
|
95
|
-
// Deep clone `currentConfig` to avoid mutating it later.
|
|
96
|
-
const newUserConfig = JSON.parse(JSON.stringify(currentConfig));
|
|
97
|
-
set(newUserConfig, finalPath, shouldDecodeEncode ? getPresetVariableFromValue(mergedConfig.settings, blockName, path, newValue) : newValue);
|
|
98
|
-
return newUserConfig;
|
|
99
|
-
});
|
|
89
|
+
setUserConfig(currentConfig => setImmutably(currentConfig, finalPath.split('.'), shouldDecodeEncode ? getPresetVariableFromValue(mergedConfig.settings, blockName, path, newValue) : newValue));
|
|
100
90
|
};
|
|
101
91
|
|
|
102
92
|
let rawResult, result;
|
|
103
93
|
|
|
104
94
|
switch (source) {
|
|
105
95
|
case 'all':
|
|
106
|
-
rawResult =
|
|
96
|
+
rawResult = getValueFromObjectPath(mergedConfig, finalPath);
|
|
107
97
|
result = shouldDecodeEncode ? getValueFromVariable(mergedConfig, blockName, rawResult) : rawResult;
|
|
108
98
|
break;
|
|
109
99
|
|
|
110
100
|
case 'user':
|
|
111
|
-
rawResult =
|
|
101
|
+
rawResult = getValueFromObjectPath(userConfig, finalPath);
|
|
112
102
|
result = shouldDecodeEncode ? getValueFromVariable(mergedConfig, blockName, rawResult) : rawResult;
|
|
113
103
|
break;
|
|
114
104
|
|
|
115
105
|
case 'base':
|
|
116
|
-
rawResult =
|
|
106
|
+
rawResult = getValueFromObjectPath(baseConfig, finalPath);
|
|
117
107
|
result = shouldDecodeEncode ? getValueFromVariable(baseConfig, blockName, rawResult) : rawResult;
|
|
118
108
|
break;
|
|
119
109
|
|