@wordpress/block-editor 11.6.0 → 11.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/README.md +4 -0
- package/build/components/block-list/block-html.js +1 -3
- package/build/components/block-list/block-html.js.map +1 -1
- package/build/components/block-preview/auto.js +6 -23
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/editor-styles/index.js +20 -2
- package/build/components/editor-styles/index.js.map +1 -1
- package/build/components/global-styles/color-panel.js +583 -0
- package/build/components/global-styles/color-panel.js.map +1 -0
- package/build/components/global-styles/dimensions-panel.js +8 -30
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/get-block-css-selector.js +129 -0
- package/build/components/global-styles/get-block-css-selector.js.map +1 -0
- package/build/components/global-styles/hooks.js +53 -1
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/index.js +18 -2
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +9 -35
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +160 -86
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +2 -1
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/image-size-control/index.js +8 -5
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/inspector-controls-tabs/position-controls-panel.js +43 -7
- package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
- package/build/components/line-height-control/index.js +15 -1
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/list-view/appender.js +105 -0
- package/build/components/list-view/appender.js.map +1 -0
- package/build/components/list-view/block.js +5 -5
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +25 -5
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/index.js +37 -13
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +13 -4
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/rich-text/format-edit.js +2 -30
- package/build/components/rich-text/format-edit.js.map +1 -1
- package/build/components/writing-flow/use-input.js +4 -8
- package/build/components/writing-flow/use-input.js.map +1 -1
- package/build/hooks/border.js +0 -1
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +92 -229
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/content-lock-ui.js +4 -2
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/{color-panel.js → contrast-checker.js} +11 -49
- package/build/hooks/contrast-checker.js.map +1 -0
- package/build/hooks/dimensions.js +0 -1
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +3 -1
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/position.js +2 -2
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/style.js +23 -26
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/typography.js +0 -1
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/utils.js +25 -76
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/grid.js +165 -0
- package/build/layouts/grid.js.map +1 -0
- package/build/layouts/index.js +3 -1
- package/build/layouts/index.js.map +1 -1
- package/build/private-apis.js +4 -1
- package/build/private-apis.js.map +1 -1
- package/build/utils/object.js +76 -0
- package/build/utils/object.js.map +1 -0
- package/build-module/components/block-list/block-html.js +1 -3
- package/build-module/components/block-list/block-html.js.map +1 -1
- package/build-module/components/block-preview/auto.js +6 -22
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/editor-styles/index.js +19 -2
- package/build-module/components/editor-styles/index.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +554 -0
- package/build-module/components/global-styles/color-panel.js.map +1 -0
- package/build-module/components/global-styles/dimensions-panel.js +7 -30
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/get-block-css-selector.js +120 -0
- package/build-module/components/global-styles/get-block-css-selector.js.map +1 -0
- package/build-module/components/global-styles/hooks.js +51 -1
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/index.js +3 -1
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +8 -35
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +161 -87
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +2 -1
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/image-size-control/index.js +8 -5
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js +42 -7
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
- package/build-module/components/line-height-control/index.js +15 -1
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/list-view/appender.js +88 -0
- package/build-module/components/list-view/appender.js.map +1 -0
- package/build-module/components/list-view/block.js +5 -4
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +22 -5
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/index.js +32 -12
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +12 -4
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/rich-text/format-edit.js +3 -31
- package/build-module/components/rich-text/format-edit.js.map +1 -1
- package/build-module/components/writing-flow/use-input.js +4 -8
- package/build-module/components/writing-flow/use-input.js.map +1 -1
- package/build-module/hooks/border.js +0 -1
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +90 -232
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +4 -2
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/{color-panel.js → contrast-checker.js} +10 -44
- package/build-module/hooks/contrast-checker.js.map +1 -0
- package/build-module/hooks/dimensions.js +0 -1
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +4 -2
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/position.js +3 -3
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/style.js +23 -26
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/typography.js +0 -1
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/utils.js +23 -73
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/grid.js +151 -0
- package/build-module/layouts/grid.js.map +1 -0
- package/build-module/layouts/index.js +2 -1
- package/build-module/layouts/index.js.map +1 -1
- package/build-module/private-apis.js +3 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-module/utils/object.js +69 -0
- package/build-module/utils/object.js.map +1 -0
- package/build-style/style-rtl.css +26 -6
- package/build-style/style.css +26 -6
- package/package.json +31 -31
- package/src/components/block-draggable/content.scss +1 -1
- package/src/components/block-list/block-html.js +1 -1
- package/src/components/block-preview/auto.js +2 -17
- package/src/components/colors-gradients/style.scss +8 -8
- package/src/components/editor-styles/index.js +29 -1
- package/src/components/global-styles/color-panel.js +706 -0
- package/src/components/global-styles/dimensions-panel.js +13 -42
- package/src/components/global-styles/get-block-css-selector.js +129 -0
- package/src/components/global-styles/hooks.js +80 -0
- package/src/components/global-styles/index.js +2 -1
- package/src/components/global-styles/test/use-global-styles-output.js +30 -1
- package/src/components/global-styles/typography-panel.js +26 -51
- package/src/components/global-styles/use-global-styles-output.js +163 -80
- package/src/components/global-styles/utils.js +3 -0
- package/src/components/image-size-control/index.js +4 -3
- package/src/components/image-size-control/test/index.js +2 -2
- package/src/components/inner-blocks/README.md +1 -1
- package/src/components/inspector-controls-tabs/position-controls-panel.js +40 -9
- package/src/components/line-height-control/index.js +10 -1
- package/src/components/list-view/appender.js +101 -0
- package/src/components/list-view/block.js +5 -4
- package/src/components/list-view/branch.js +30 -1
- package/src/components/list-view/index.js +43 -10
- package/src/components/list-view/style.scss +19 -0
- package/src/components/media-replace-flow/index.js +36 -24
- package/src/components/media-replace-flow/style.scss +5 -2
- package/src/components/rich-text/format-edit.js +2 -32
- package/src/components/writing-flow/use-input.js +4 -5
- package/src/hooks/border.js +0 -1
- package/src/hooks/color.js +120 -296
- package/src/hooks/content-lock-ui.js +6 -2
- package/src/hooks/{color-panel.js → contrast-checker.js} +10 -46
- package/src/hooks/dimensions.js +0 -1
- package/src/hooks/duotone.js +8 -5
- package/src/hooks/position.js +3 -3
- package/src/hooks/style.js +29 -28
- package/src/hooks/test/utils.js +0 -104
- package/src/hooks/typography.js +0 -1
- package/src/hooks/utils.js +27 -70
- package/src/layouts/grid.js +172 -0
- package/src/layouts/index.js +2 -1
- package/src/layouts/test/grid.js +21 -0
- package/src/private-apis.js +2 -0
- package/src/utils/object.js +69 -0
- package/src/utils/test/object.js +107 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/hooks/color-panel.js.map +0 -1
- package/build-module/hooks/color-panel.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/color-panel.js"],"names":["useHasColorPanel","settings","hasTextPanel","useHasTextPanel","hasBackgroundPanel","useHasBackgroundPanel","hasLinkPanel","useHasLinkPanel","hasHeadingPanel","useHasHeadingPanel","hasButtonPanel","hasCaptionPanel","useHasCaptionPanel","colors","color","text","length","custom","link","caption","gradients","heading","customGradient","useHasButtonPanel","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 { __ } 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 { immutableSet } 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 = useHasHeadingPanel( 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};\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\timmutableSet(\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 = immutableSet(\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 = immutableSet(\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 = immutableSet(\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\timmutableSet(\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\timmutableSet(\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 = immutableSet(\n\t\t\tvalue,\n\t\t\t[ 'elements', 'link', ':hover', 'color', 'text' ],\n\t\t\tundefined\n\t\t);\n\t\tnewValue = immutableSet(\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\t{\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\t{\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],\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 = immutableSet(\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\timmutableSet(\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 = immutableSet(\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 = immutableSet(\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"]}
|
|
@@ -28,6 +28,8 @@ var _childLayoutControl = _interopRequireDefault(require("../child-layout-contro
|
|
|
28
28
|
|
|
29
29
|
var _utils2 = require("../../hooks/utils");
|
|
30
30
|
|
|
31
|
+
var _object = require("../../utils/object");
|
|
32
|
+
|
|
31
33
|
/**
|
|
32
34
|
* External dependencies
|
|
33
35
|
*/
|
|
@@ -232,11 +234,7 @@ function DimensionsPanel(_ref4) {
|
|
|
232
234
|
const contentSizeValue = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$layou = inheritedValue.layout) === null || _inheritedValue$layou === void 0 ? void 0 : _inheritedValue$layou.contentSize);
|
|
233
235
|
|
|
234
236
|
const setContentSizeValue = newValue => {
|
|
235
|
-
onChange(
|
|
236
|
-
layout: { ...(value === null || value === void 0 ? void 0 : value.layout),
|
|
237
|
-
contentSize: newValue
|
|
238
|
-
}
|
|
239
|
-
});
|
|
237
|
+
onChange((0, _object.immutableSet)(value, ['layout', 'contentSize'], newValue));
|
|
240
238
|
};
|
|
241
239
|
|
|
242
240
|
const hasUserSetContentSizeValue = () => {
|
|
@@ -252,11 +250,7 @@ function DimensionsPanel(_ref4) {
|
|
|
252
250
|
const wideSizeValue = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$layou2 = inheritedValue.layout) === null || _inheritedValue$layou2 === void 0 ? void 0 : _inheritedValue$layou2.wideSize);
|
|
253
251
|
|
|
254
252
|
const setWideSizeValue = newValue => {
|
|
255
|
-
onChange(
|
|
256
|
-
layout: { ...(value === null || value === void 0 ? void 0 : value.layout),
|
|
257
|
-
wideSize: newValue
|
|
258
|
-
}
|
|
259
|
-
});
|
|
253
|
+
onChange((0, _object.immutableSet)(value, ['layout', 'wideSize'], newValue));
|
|
260
254
|
};
|
|
261
255
|
|
|
262
256
|
const hasUserSetWideSizeValue = () => {
|
|
@@ -276,11 +270,7 @@ function DimensionsPanel(_ref4) {
|
|
|
276
270
|
|
|
277
271
|
const setPaddingValues = newPaddingValues => {
|
|
278
272
|
const padding = filterValuesBySides(newPaddingValues, paddingSides);
|
|
279
|
-
onChange(
|
|
280
|
-
spacing: { ...(value === null || value === void 0 ? void 0 : value.spacing),
|
|
281
|
-
padding
|
|
282
|
-
}
|
|
283
|
-
});
|
|
273
|
+
onChange((0, _object.immutableSet)(value, ['spacing', 'padding'], padding));
|
|
284
274
|
};
|
|
285
275
|
|
|
286
276
|
const hasPaddingValue = () => {
|
|
@@ -302,11 +292,7 @@ function DimensionsPanel(_ref4) {
|
|
|
302
292
|
|
|
303
293
|
const setMarginValues = newMarginValues => {
|
|
304
294
|
const margin = filterValuesBySides(newMarginValues, marginSides);
|
|
305
|
-
onChange(
|
|
306
|
-
spacing: { ...(value === null || value === void 0 ? void 0 : value.spacing),
|
|
307
|
-
margin
|
|
308
|
-
}
|
|
309
|
-
});
|
|
295
|
+
onChange((0, _object.immutableSet)(value, ['spacing', 'margin'], margin));
|
|
310
296
|
};
|
|
311
297
|
|
|
312
298
|
const hasMarginValue = () => {
|
|
@@ -327,11 +313,7 @@ function DimensionsPanel(_ref4) {
|
|
|
327
313
|
const isAxialGap = gapSides && gapSides.some(side => AXIAL_SIDES.includes(side));
|
|
328
314
|
|
|
329
315
|
const setGapValue = newGapValue => {
|
|
330
|
-
onChange(
|
|
331
|
-
spacing: { ...(value === null || value === void 0 ? void 0 : value.spacing),
|
|
332
|
-
blockGap: newGapValue
|
|
333
|
-
}
|
|
334
|
-
});
|
|
316
|
+
onChange((0, _object.immutableSet)(value, ['spacing', 'blockGap'], newGapValue));
|
|
335
317
|
};
|
|
336
318
|
|
|
337
319
|
const setGapValues = nextBoxGapValue => {
|
|
@@ -363,11 +345,7 @@ function DimensionsPanel(_ref4) {
|
|
|
363
345
|
const minHeightValue = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$dimen = inheritedValue.dimensions) === null || _inheritedValue$dimen === void 0 ? void 0 : _inheritedValue$dimen.minHeight);
|
|
364
346
|
|
|
365
347
|
const setMinHeightValue = newValue => {
|
|
366
|
-
onChange(
|
|
367
|
-
dimensions: { ...(value === null || value === void 0 ? void 0 : value.dimensions),
|
|
368
|
-
minHeight: newValue
|
|
369
|
-
}
|
|
370
|
-
});
|
|
348
|
+
onChange((0, _object.immutableSet)(value, ['dimensions', 'minHeight'], newValue));
|
|
371
349
|
};
|
|
372
350
|
|
|
373
351
|
const resetMinHeightValue = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/dimensions-panel.js"],"names":["AXIAL_SIDES","useHasDimensionsPanel","settings","hasContentSize","useHasContentSize","hasWideSize","useHasWideSize","hasPadding","useHasPadding","hasMargin","useHasMargin","hasGap","useHasGap","hasMinHeight","useHasMinHeight","hasChildLayout","useHasChildLayout","Platform","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","DimensionsPanel","as","Wrapper","inheritedValue","defaultControls","onVisualize","includeLayoutControls","decodeValue","rawValue","showSpacingPresetsControl","units","availableUnits","showContentSizeControl","contentSizeValue","setContentSizeValue","newValue","hasUserSetContentSizeValue","resetContentSizeValue","undefined","showWideSizeControl","wideSizeValue","setWideSizeValue","hasUserSetWideSizeValue","resetWideSizeValue","showPaddingControl","rawPadding","paddingValues","paddingSides","Array","isArray","isAxialPadding","some","includes","setPaddingValues","newPaddingValues","hasPaddingValue","Object","keys","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","childLayout","orientation","childLayoutOrientationLabel","setChildLayout","newChildLayout","resetChildLayoutValue","selfStretch","flexSize","hasChildLayoutValue","previousValue","onMouseLeaveControls","nextContentSize","positionCenter","nextWideSize","stretchWide","ToolsPanelItem"],"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';\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\tif ( ! sides ) {\n\t\t// If no custom side configuration all sides are opted into by default.\n\t\treturn values;\n\t}\n\n\t// Only include sides opted into within filtered values.\n\tconst filteredValues = {};\n\tsides.forEach( ( side ) => {\n\t\tif ( side === 'vertical' ) {\n\t\t\tfilteredValues.top = values.top;\n\t\t\tfilteredValues.bottom = values.bottom;\n\t\t}\n\t\tif ( side === 'horizontal' ) {\n\t\t\tfilteredValues.left = values.left;\n\t\t\tfilteredValues.right = values.right;\n\t\t}\n\t\tfilteredValues[ side ] = values?.[ side ];\n\t} );\n\n\treturn filteredValues;\n}\n\nfunction splitStyleValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// Convert to value for individual sides for BoxControl.\n\t\treturn {\n\t\t\ttop: value,\n\t\t\tright: value,\n\t\t\tbottom: value,\n\t\t\tleft: value,\n\t\t};\n\t}\n\n\treturn value;\n}\n\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};\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\tgetValueFromVariable( { settings }, '', rawValue );\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\t...value,\n\t\t\tlayout: {\n\t\t\t\t...value?.layout,\n\t\t\t\tcontentSize: newValue,\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\t...value,\n\t\t\tlayout: {\n\t\t\t\t...value?.layout,\n\t\t\t\twideSize: newValue,\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( {\n\t\t\t...value,\n\t\t\tspacing: {\n\t\t\t\t...value?.spacing,\n\t\t\t\tpadding,\n\t\t\t},\n\t\t} );\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( {\n\t\t\t...value,\n\t\t\tspacing: {\n\t\t\t\t...value?.spacing,\n\t\t\t\tmargin,\n\t\t\t},\n\t\t} );\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\t...value,\n\t\t\tspacing: {\n\t\t\t\t...value?.spacing,\n\t\t\t\tblockGap: newGapValue,\n\t\t\t},\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\t...value,\n\t\t\tdimensions: {\n\t\t\t\t...value?.dimensions,\n\t\t\t\tminHeight: newValue,\n\t\t\t},\n\t\t} );\n\t};\n\tconst resetMinHeightValue = () => {\n\t\tsetMinHeightValue( undefined );\n\t};\n\tconst hasMinHeightValue = () => !! value?.dimensions?.minHeight;\n\n\t// 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={ defaultControls.contentSize }\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={ defaultControls.wideSize }\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={ defaultControls.padding }\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\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</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={ defaultControls.margin }\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\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</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={ defaultControls.blockGap }\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\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\tsplitOnAxis={ isAxialGap }\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={ defaultControls.minHeight }\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={ defaultControls.childLayout }\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":["AXIAL_SIDES","useHasDimensionsPanel","settings","hasContentSize","useHasContentSize","hasWideSize","useHasWideSize","hasPadding","useHasPadding","hasMargin","useHasMargin","hasGap","useHasGap","hasMinHeight","useHasMinHeight","hasChildLayout","useHasChildLayout","Platform","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","DimensionsPanel","as","Wrapper","inheritedValue","defaultControls","onVisualize","includeLayoutControls","decodeValue","rawValue","showSpacingPresetsControl","units","availableUnits","showContentSizeControl","contentSizeValue","setContentSizeValue","newValue","hasUserSetContentSizeValue","resetContentSizeValue","undefined","showWideSizeControl","wideSizeValue","setWideSizeValue","hasUserSetWideSizeValue","resetWideSizeValue","showPaddingControl","rawPadding","paddingValues","paddingSides","Array","isArray","isAxialPadding","some","includes","setPaddingValues","newPaddingValues","hasPaddingValue","Object","keys","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","childLayout","orientation","childLayoutOrientationLabel","setChildLayout","newChildLayout","resetChildLayoutValue","selfStretch","flexSize","hasChildLayoutValue","previousValue","onMouseLeaveControls","nextContentSize","positionCenter","nextWideSize","stretchWide","ToolsPanelItem"],"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 { immutableSet } 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\tif ( ! sides ) {\n\t\t// If no custom side configuration all sides are opted into by default.\n\t\treturn values;\n\t}\n\n\t// Only include sides opted into within filtered values.\n\tconst filteredValues = {};\n\tsides.forEach( ( side ) => {\n\t\tif ( side === 'vertical' ) {\n\t\t\tfilteredValues.top = values.top;\n\t\t\tfilteredValues.bottom = values.bottom;\n\t\t}\n\t\tif ( side === 'horizontal' ) {\n\t\t\tfilteredValues.left = values.left;\n\t\t\tfilteredValues.right = values.right;\n\t\t}\n\t\tfilteredValues[ side ] = values?.[ side ];\n\t} );\n\n\treturn filteredValues;\n}\n\nfunction splitStyleValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// Convert to value for individual sides for BoxControl.\n\t\treturn {\n\t\t\ttop: value,\n\t\t\tright: value,\n\t\t\tbottom: value,\n\t\t\tleft: value,\n\t\t};\n\t}\n\n\treturn value;\n}\n\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};\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\tgetValueFromVariable( { settings }, '', rawValue );\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\timmutableSet( value, [ 'layout', 'contentSize' ], newValue )\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( immutableSet( value, [ 'layout', 'wideSize' ], newValue ) );\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( immutableSet( 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( immutableSet( 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\timmutableSet( 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\timmutableSet( 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={ defaultControls.contentSize }\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={ defaultControls.wideSize }\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={ defaultControls.padding }\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\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</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={ defaultControls.margin }\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\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</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={ defaultControls.blockGap }\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\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\tsplitOnAxis={ isAxialGap }\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={ defaultControls.minHeight }\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={ defaultControls.childLayout }\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"]}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getBlockCSSSelector = getBlockCSSSelector;
|
|
7
|
+
|
|
8
|
+
var _lodash = require("lodash");
|
|
9
|
+
|
|
10
|
+
var _utils = require("./utils");
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* External dependencies
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Internal dependencies
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Determine the CSS selector for the block type and target provided, returning
|
|
22
|
+
* it if available.
|
|
23
|
+
*
|
|
24
|
+
* @param {import('@wordpress/blocks').Block} blockType The block's type.
|
|
25
|
+
* @param {string|string[]} target The desired selector's target e.g. `root`, delimited string, or array path.
|
|
26
|
+
* @param {Object} options Options object.
|
|
27
|
+
* @param {boolean} options.fallback Whether or not to fallback to broader selector.
|
|
28
|
+
*
|
|
29
|
+
* @return {?string} The CSS selector or `null` if no selector available.
|
|
30
|
+
*/
|
|
31
|
+
function getBlockCSSSelector(blockType) {
|
|
32
|
+
let target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'root';
|
|
33
|
+
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
34
|
+
|
|
35
|
+
if (!target) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const {
|
|
40
|
+
fallback = false
|
|
41
|
+
} = options;
|
|
42
|
+
const {
|
|
43
|
+
name,
|
|
44
|
+
selectors,
|
|
45
|
+
supports
|
|
46
|
+
} = blockType;
|
|
47
|
+
const hasSelectors = !(0, _lodash.isEmpty)(selectors);
|
|
48
|
+
const path = Array.isArray(target) ? target.join('.') : target; // Duotone ( no fallback selectors for Duotone ).
|
|
49
|
+
|
|
50
|
+
if (path === 'filter.duotone') {
|
|
51
|
+
// If selectors API in use, only use its value or null.
|
|
52
|
+
if (hasSelectors) {
|
|
53
|
+
return (0, _lodash.get)(selectors, path, null);
|
|
54
|
+
} // Selectors API, not available, check for old experimental selector.
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
return (0, _lodash.get)(supports, 'color.__experimentalDuotone', null);
|
|
58
|
+
} // Root selector.
|
|
59
|
+
// Calculated before returning as it can be used as a fallback for feature
|
|
60
|
+
// selectors later on.
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
let rootSelector = null;
|
|
64
|
+
|
|
65
|
+
if (hasSelectors && selectors.root) {
|
|
66
|
+
// Use the selectors API if available.
|
|
67
|
+
rootSelector = selectors === null || selectors === void 0 ? void 0 : selectors.root;
|
|
68
|
+
} else if (supports !== null && supports !== void 0 && supports.__experimentalSelector) {
|
|
69
|
+
// Use the old experimental selector supports property if set.
|
|
70
|
+
rootSelector = supports.__experimentalSelector;
|
|
71
|
+
} else {
|
|
72
|
+
// If no root selector found, generate default block class selector.
|
|
73
|
+
rootSelector = '.wp-block-' + name.replace('core/', '').replace('/', '-');
|
|
74
|
+
} // Return selector if it's the root target we are looking for.
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
if (path === 'root') {
|
|
78
|
+
return rootSelector;
|
|
79
|
+
} // If target is not `root` or `duotone` we have a feature or subfeature
|
|
80
|
+
// as the target. If the target is a string convert to an array.
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
const pathArray = Array.isArray(target) ? target : target.split('.'); // Feature selectors ( may fallback to root selector );
|
|
84
|
+
|
|
85
|
+
if (pathArray.length === 1) {
|
|
86
|
+
const fallbackSelector = fallback ? rootSelector : null; // Prefer the selectors API if available.
|
|
87
|
+
|
|
88
|
+
if (hasSelectors) {
|
|
89
|
+
// Get selector from either `feature.root` or shorthand path.
|
|
90
|
+
const featureSelector = (0, _lodash.get)(selectors, `${path}.root`, null) || (0, _lodash.get)(selectors, path, null); // Return feature selector if found or any available fallback.
|
|
91
|
+
|
|
92
|
+
return featureSelector || fallbackSelector;
|
|
93
|
+
} // Try getting old experimental supports selector value.
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
const featureSelector = (0, _lodash.get)(supports, `${path}.__experimentalSelector`, null); // If nothing to work with, provide fallback selector if available.
|
|
97
|
+
|
|
98
|
+
if (!featureSelector) {
|
|
99
|
+
return fallbackSelector;
|
|
100
|
+
} // Scope the feature selector by the block's root selector.
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
return (0, _utils.scopeSelector)(rootSelector, featureSelector);
|
|
104
|
+
} // Subfeature selector.
|
|
105
|
+
// This may fallback either to parent feature or root selector.
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
let subfeatureSelector; // Use selectors API if available.
|
|
109
|
+
|
|
110
|
+
if (hasSelectors) {
|
|
111
|
+
subfeatureSelector = (0, _lodash.get)(selectors, path, null);
|
|
112
|
+
} // Only return if we have a subfeature selector.
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
if (subfeatureSelector) {
|
|
116
|
+
return subfeatureSelector;
|
|
117
|
+
} // To this point we don't have a subfeature selector. If a fallback has been
|
|
118
|
+
// requested, remove subfeature from target path and return results of a
|
|
119
|
+
// call for the parent feature's selector.
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
if (fallback) {
|
|
123
|
+
return getBlockCSSSelector(blockType, pathArray[0], options);
|
|
124
|
+
} // We tried.
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=get-block-css-selector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/get-block-css-selector.js"],"names":["getBlockCSSSelector","blockType","target","options","fallback","name","selectors","supports","hasSelectors","path","Array","isArray","join","rootSelector","root","__experimentalSelector","replace","pathArray","split","length","fallbackSelector","featureSelector","subfeatureSelector"],"mappings":";;;;;;;AAGA;;AAKA;;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,mBAAT,CACNC,SADM,EAIL;AAAA,MAFDC,MAEC,uEAFQ,MAER;AAAA,MADDC,OACC,uEADS,EACT;;AACD,MAAK,CAAED,MAAP,EAAgB;AACf,WAAO,IAAP;AACA;;AAED,QAAM;AAAEE,IAAAA,QAAQ,GAAG;AAAb,MAAuBD,OAA7B;AACA,QAAM;AAAEE,IAAAA,IAAF;AAAQC,IAAAA,SAAR;AAAmBC,IAAAA;AAAnB,MAAgCN,SAAtC;AAEA,QAAMO,YAAY,GAAG,CAAE,qBAASF,SAAT,CAAvB;AACA,QAAMG,IAAI,GAAGC,KAAK,CAACC,OAAN,CAAeT,MAAf,IAA0BA,MAAM,CAACU,IAAP,CAAa,GAAb,CAA1B,GAA+CV,MAA5D,CATC,CAWD;;AACA,MAAKO,IAAI,KAAK,gBAAd,EAAiC;AAChC;AACA,QAAKD,YAAL,EAAoB;AACnB,aAAO,iBAAKF,SAAL,EAAgBG,IAAhB,EAAsB,IAAtB,CAAP;AACA,KAJ+B,CAMhC;;;AACA,WAAO,iBAAKF,QAAL,EAAe,6BAAf,EAA8C,IAA9C,CAAP;AACA,GApBA,CAsBD;AAEA;AACA;;;AACA,MAAIM,YAAY,GAAG,IAAnB;;AAEA,MAAKL,YAAY,IAAIF,SAAS,CAACQ,IAA/B,EAAsC;AACrC;AACAD,IAAAA,YAAY,GAAGP,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEQ,IAA1B;AACA,GAHD,MAGO,IAAKP,QAAL,aAAKA,QAAL,eAAKA,QAAQ,CAAEQ,sBAAf,EAAwC;AAC9C;AACAF,IAAAA,YAAY,GAAGN,QAAQ,CAACQ,sBAAxB;AACA,GAHM,MAGA;AACN;AACAF,IAAAA,YAAY,GACX,eAAeR,IAAI,CAACW,OAAL,CAAc,OAAd,EAAuB,EAAvB,EAA4BA,OAA5B,CAAqC,GAArC,EAA0C,GAA1C,CADhB;AAEA,GAtCA,CAwCD;;;AACA,MAAKP,IAAI,KAAK,MAAd,EAAuB;AACtB,WAAOI,YAAP;AACA,GA3CA,CA6CD;AACA;;;AACA,QAAMI,SAAS,GAAGP,KAAK,CAACC,OAAN,CAAeT,MAAf,IAA0BA,MAA1B,GAAmCA,MAAM,CAACgB,KAAP,CAAc,GAAd,CAArD,CA/CC,CAiDD;;AACA,MAAKD,SAAS,CAACE,MAAV,KAAqB,CAA1B,EAA8B;AAC7B,UAAMC,gBAAgB,GAAGhB,QAAQ,GAAGS,YAAH,GAAkB,IAAnD,CAD6B,CAG7B;;AACA,QAAKL,YAAL,EAAoB;AACnB;AACA,YAAMa,eAAe,GACpB,iBAAKf,SAAL,EAAiB,GAAGG,IAAM,OAA1B,EAAkC,IAAlC,KACA,iBAAKH,SAAL,EAAgBG,IAAhB,EAAsB,IAAtB,CAFD,CAFmB,CAMnB;;AACA,aAAOY,eAAe,IAAID,gBAA1B;AACA,KAZ4B,CAc7B;;;AACA,UAAMC,eAAe,GAAG,iBACvBd,QADuB,EAEtB,GAAGE,IAAM,yBAFa,EAGvB,IAHuB,CAAxB,CAf6B,CAqB7B;;AACA,QAAK,CAAEY,eAAP,EAAyB;AACxB,aAAOD,gBAAP;AACA,KAxB4B,CA0B7B;;;AACA,WAAO,0BAAeP,YAAf,EAA6BQ,eAA7B,CAAP;AACA,GA9EA,CAgFD;AACA;;;AACA,MAAIC,kBAAJ,CAlFC,CAoFD;;AACA,MAAKd,YAAL,EAAoB;AACnBc,IAAAA,kBAAkB,GAAG,iBAAKhB,SAAL,EAAgBG,IAAhB,EAAsB,IAAtB,CAArB;AACA,GAvFA,CAyFD;;;AACA,MAAKa,kBAAL,EAA0B;AACzB,WAAOA,kBAAP;AACA,GA5FA,CA8FD;AACA;AACA;;;AACA,MAAKlB,QAAL,EAAgB;AACf,WAAOJ,mBAAmB,CAAEC,SAAF,EAAagB,SAAS,CAAE,CAAF,CAAtB,EAA6Bd,OAA7B,CAA1B;AACA,GAnGA,CAqGD;;;AACA,SAAO,IAAP;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { get, isEmpty } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport { scopeSelector } from './utils';\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 = ! isEmpty( selectors );\n\tconst path = Array.isArray( target ) ? target.join( '.' ) : target;\n\n\t// Duotone ( no fallback selectors for Duotone ).\n\tif ( path === 'filter.duotone' ) {\n\t\t// If selectors API in use, only use its value or null.\n\t\tif ( hasSelectors ) {\n\t\t\treturn get( selectors, path, null );\n\t\t}\n\n\t\t// Selectors API, not available, check for old experimental selector.\n\t\treturn get( supports, 'color.__experimentalDuotone', null );\n\t}\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\tget( selectors, `${ path }.root`, null ) ||\n\t\t\t\tget( 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 = get(\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 = get( 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"]}
|
|
@@ -9,6 +9,7 @@ exports.useColorsPerOrigin = useColorsPerOrigin;
|
|
|
9
9
|
exports.useGlobalSetting = useGlobalSetting;
|
|
10
10
|
exports.useGlobalStyle = useGlobalStyle;
|
|
11
11
|
exports.useGlobalStylesReset = void 0;
|
|
12
|
+
exports.useGradientsPerOrigin = useGradientsPerOrigin;
|
|
12
13
|
exports.useSettingsForBlockElement = useSettingsForBlockElement;
|
|
13
14
|
|
|
14
15
|
var _es = _interopRequireDefault(require("fast-deep-equal/es6"));
|
|
@@ -44,7 +45,7 @@ const EMPTY_CONFIG = {
|
|
|
44
45
|
settings: {},
|
|
45
46
|
styles: {}
|
|
46
47
|
};
|
|
47
|
-
const VALID_SETTINGS = ['appearanceTools', 'useRootPaddingAwareAlignments', 'border.color', 'border.radius', 'border.style', 'border.width', 'shadow.presets', 'shadow.defaultPresets', 'color.background', 'color.custom', 'color.customDuotone', 'color.customGradient', 'color.defaultDuotone', 'color.defaultGradients', 'color.defaultPalette', 'color.duotone', 'color.gradients', 'color.link', 'color.palette', 'color.text', 'custom', 'dimensions.minHeight', 'layout.contentSize', 'layout.definitions', 'layout.wideSize', 'position.fixed', 'position.sticky', 'spacing.customSpacingSize', 'spacing.spacingSizes', 'spacing.spacingScale', 'spacing.blockGap', 'spacing.margin', 'spacing.padding', 'spacing.units', 'typography.fluid', 'typography.customFontSize', 'typography.dropCap', 'typography.fontFamilies', 'typography.fontSizes', 'typography.fontStyle', 'typography.fontWeight', 'typography.letterSpacing', 'typography.lineHeight', 'typography.textColumns', 'typography.textDecoration', 'typography.textTransform'];
|
|
48
|
+
const VALID_SETTINGS = ['appearanceTools', 'useRootPaddingAwareAlignments', 'border.color', 'border.radius', 'border.style', 'border.width', 'shadow.presets', 'shadow.defaultPresets', 'color.background', 'color.button', 'color.caption', 'color.custom', 'color.customDuotone', 'color.customGradient', 'color.defaultDuotone', 'color.defaultGradients', 'color.defaultPalette', 'color.duotone', 'color.gradients', 'color.heading', 'color.link', 'color.palette', 'color.text', 'custom', 'dimensions.minHeight', 'layout.contentSize', 'layout.definitions', 'layout.wideSize', 'position.fixed', 'position.sticky', 'spacing.customSpacingSize', 'spacing.spacingSizes', 'spacing.spacingScale', 'spacing.blockGap', 'spacing.margin', 'spacing.padding', 'spacing.units', 'typography.fluid', 'typography.customFontSize', 'typography.dropCap', 'typography.fontFamilies', 'typography.fontSizes', 'typography.fontStyle', 'typography.fontWeight', 'typography.letterSpacing', 'typography.lineHeight', 'typography.textColumns', 'typography.textDecoration', 'typography.textTransform'];
|
|
48
49
|
|
|
49
50
|
const useGlobalStylesReset = () => {
|
|
50
51
|
const {
|
|
@@ -178,6 +179,8 @@ function useSettingsForBlockElement(parentSettings, blockName, element) {
|
|
|
178
179
|
};
|
|
179
180
|
}, [blockName, element]);
|
|
180
181
|
return (0, _element.useMemo)(() => {
|
|
182
|
+
var _updatedSettings$colo, _updatedSettings$colo2, _updatedSettings$colo3, _updatedSettings$colo4, _updatedSettings$colo5, _updatedSettings$colo6;
|
|
183
|
+
|
|
181
184
|
const updatedSettings = { ...parentSettings
|
|
182
185
|
};
|
|
183
186
|
|
|
@@ -194,6 +197,20 @@ function useSettingsForBlockElement(parentSettings, blockName, element) {
|
|
|
194
197
|
};
|
|
195
198
|
}
|
|
196
199
|
|
|
200
|
+
updatedSettings.color = { ...updatedSettings.color,
|
|
201
|
+
text: ((_updatedSettings$colo = updatedSettings.color) === null || _updatedSettings$colo === void 0 ? void 0 : _updatedSettings$colo.text) && supportedStyles.includes('color'),
|
|
202
|
+
background: ((_updatedSettings$colo2 = updatedSettings.color) === null || _updatedSettings$colo2 === void 0 ? void 0 : _updatedSettings$colo2.background) && (supportedStyles.includes('background') || supportedStyles.includes('backgroundColor')),
|
|
203
|
+
button: ((_updatedSettings$colo3 = updatedSettings.color) === null || _updatedSettings$colo3 === void 0 ? void 0 : _updatedSettings$colo3.button) && supportedStyles.includes('buttonColor'),
|
|
204
|
+
heading: ((_updatedSettings$colo4 = updatedSettings.color) === null || _updatedSettings$colo4 === void 0 ? void 0 : _updatedSettings$colo4.heading) && supportedStyles.includes('headingColor'),
|
|
205
|
+
link: ((_updatedSettings$colo5 = updatedSettings.color) === null || _updatedSettings$colo5 === void 0 ? void 0 : _updatedSettings$colo5.link) && supportedStyles.includes('linkColor'),
|
|
206
|
+
caption: ((_updatedSettings$colo6 = updatedSettings.color) === null || _updatedSettings$colo6 === void 0 ? void 0 : _updatedSettings$colo6.caption) && supportedStyles.includes('captionColor')
|
|
207
|
+
}; // Some blocks can enable background colors but disable gradients.
|
|
208
|
+
|
|
209
|
+
if (!supportedStyles.includes('background')) {
|
|
210
|
+
updatedSettings.color.gradients = [];
|
|
211
|
+
updatedSettings.color.customGradient = false;
|
|
212
|
+
}
|
|
213
|
+
|
|
197
214
|
['lineHeight', 'fontStyle', 'fontWeight', 'letterSpacing', 'textTransform', 'textDecoration'].forEach(key => {
|
|
198
215
|
if (!supportedStyles.includes(key)) {
|
|
199
216
|
updatedSettings.typography = { ...updatedSettings.typography,
|
|
@@ -290,4 +307,39 @@ function useColorsPerOrigin(settings) {
|
|
|
290
307
|
return result;
|
|
291
308
|
}, [customColors, themeColors, defaultColors, shouldDisplayDefaultColors]);
|
|
292
309
|
}
|
|
310
|
+
|
|
311
|
+
function useGradientsPerOrigin(settings) {
|
|
312
|
+
var _settings$color5, _settings$color5$grad, _settings$color6, _settings$color6$grad, _settings$color7, _settings$color7$grad, _settings$color8;
|
|
313
|
+
|
|
314
|
+
const customGradients = settings === null || settings === void 0 ? void 0 : (_settings$color5 = settings.color) === null || _settings$color5 === void 0 ? void 0 : (_settings$color5$grad = _settings$color5.gradients) === null || _settings$color5$grad === void 0 ? void 0 : _settings$color5$grad.custom;
|
|
315
|
+
const themeGradients = settings === null || settings === void 0 ? void 0 : (_settings$color6 = settings.color) === null || _settings$color6 === void 0 ? void 0 : (_settings$color6$grad = _settings$color6.gradients) === null || _settings$color6$grad === void 0 ? void 0 : _settings$color6$grad.theme;
|
|
316
|
+
const defaultGradients = settings === null || settings === void 0 ? void 0 : (_settings$color7 = settings.color) === null || _settings$color7 === void 0 ? void 0 : (_settings$color7$grad = _settings$color7.gradients) === null || _settings$color7$grad === void 0 ? void 0 : _settings$color7$grad.default;
|
|
317
|
+
const shouldDisplayDefaultGradients = settings === null || settings === void 0 ? void 0 : (_settings$color8 = settings.color) === null || _settings$color8 === void 0 ? void 0 : _settings$color8.defaultGradients;
|
|
318
|
+
return (0, _element.useMemo)(() => {
|
|
319
|
+
const result = [];
|
|
320
|
+
|
|
321
|
+
if (themeGradients && themeGradients.length) {
|
|
322
|
+
result.push({
|
|
323
|
+
name: (0, _i18n._x)('Theme', 'Indicates this palette comes from the theme.'),
|
|
324
|
+
gradients: themeGradients
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
if (shouldDisplayDefaultGradients && defaultGradients && defaultGradients.length) {
|
|
329
|
+
result.push({
|
|
330
|
+
name: (0, _i18n._x)('Default', 'Indicates this palette comes from WordPress.'),
|
|
331
|
+
gradients: defaultGradients
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
if (customGradients && customGradients.length) {
|
|
336
|
+
result.push({
|
|
337
|
+
name: (0, _i18n._x)('Custom', 'Indicates this palette is created by the user.'),
|
|
338
|
+
gradients: customGradients
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
return result;
|
|
343
|
+
}, [customGradients, themeGradients, defaultGradients, shouldDisplayDefaultGradients]);
|
|
344
|
+
}
|
|
293
345
|
//# sourceMappingURL=hooks.js.map
|