@wordpress/block-editor 14.14.2 → 14.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/block-breadcrumb/index.js +3 -1
  3. package/build/components/block-breadcrumb/index.js.map +1 -1
  4. package/build/components/block-switcher/preview-block-popover.js +1 -1
  5. package/build/components/block-switcher/preview-block-popover.js.map +1 -1
  6. package/build/components/block-tools/index.js +9 -0
  7. package/build/components/block-tools/index.js.map +1 -1
  8. package/build/components/block-variation-transforms/index.js +5 -8
  9. package/build/components/block-variation-transforms/index.js.map +1 -1
  10. package/build/components/global-styles/border-panel.js +4 -8
  11. package/build/components/global-styles/border-panel.js.map +1 -1
  12. package/build/components/global-styles/filters-panel.js +1 -1
  13. package/build/components/global-styles/filters-panel.js.map +1 -1
  14. package/build/components/global-styles/shadow-panel-components.js +1 -1
  15. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  16. package/build/components/keyboard-shortcuts/index.js +9 -0
  17. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  18. package/build/components/list-view/block.js +9 -0
  19. package/build/components/list-view/block.js.map +1 -1
  20. package/build/components/media-replace-flow/index.js +2 -1
  21. package/build/components/media-replace-flow/index.js.map +1 -1
  22. package/build-module/components/block-breadcrumb/index.js +3 -1
  23. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  24. package/build-module/components/block-switcher/preview-block-popover.js +1 -1
  25. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  26. package/build-module/components/block-tools/index.js +9 -0
  27. package/build-module/components/block-tools/index.js.map +1 -1
  28. package/build-module/components/block-variation-transforms/index.js +5 -8
  29. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  30. package/build-module/components/global-styles/border-panel.js +5 -9
  31. package/build-module/components/global-styles/border-panel.js.map +1 -1
  32. package/build-module/components/global-styles/filters-panel.js +1 -1
  33. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  34. package/build-module/components/global-styles/shadow-panel-components.js +1 -1
  35. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  36. package/build-module/components/keyboard-shortcuts/index.js +9 -0
  37. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  38. package/build-module/components/list-view/block.js +9 -0
  39. package/build-module/components/list-view/block.js.map +1 -1
  40. package/build-module/components/media-replace-flow/index.js +2 -1
  41. package/build-module/components/media-replace-flow/index.js.map +1 -1
  42. package/build-style/style-rtl.css +8 -10
  43. package/build-style/style.css +8 -10
  44. package/package.json +34 -34
  45. package/src/components/block-breadcrumb/index.js +1 -1
  46. package/src/components/block-breadcrumb/test/__snapshots__/index.js.snap +3 -1
  47. package/src/components/block-switcher/preview-block-popover.js +4 -1
  48. package/src/components/block-tools/index.js +9 -0
  49. package/src/components/block-variation-transforms/index.js +7 -9
  50. package/src/components/global-styles/border-panel.js +5 -8
  51. package/src/components/global-styles/filters-panel.js +4 -1
  52. package/src/components/global-styles/shadow-panel-components.js +4 -1
  53. package/src/components/global-styles/style.scss +9 -11
  54. package/src/components/inserter/style.scss +1 -1
  55. package/src/components/keyboard-shortcuts/index.js +12 -0
  56. package/src/components/list-view/block.js +10 -0
  57. package/src/components/media-replace-flow/index.js +3 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 14.16.0 (2025-03-27)
6
+
7
+ ## 14.15.0 (2025-03-13)
8
+
5
9
  ## 14.14.0 (2025-02-28)
6
10
 
7
11
  ## 14.13.0 (2025-02-12)
@@ -83,7 +83,9 @@ var _jsxRuntime = require("react/jsx-runtime");
83
83
  (0, _getEditorRegion.default)(blockEditor)?.focus();
84
84
  },
85
85
  children: rootLabel
86
- }), !hasSelection && rootLabel, !!clientId && /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Icon, {
86
+ }), !hasSelection && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
87
+ children: rootLabel
88
+ }), !!clientId && /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Icon, {
87
89
  icon: _icons.chevronRightSmall,
88
90
  className: "block-editor-block-breadcrumb__separator"
89
91
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_data","_i18n","_icons","_element","_blockTitle","_interopRequireDefault","_store","_lockUnlock","_useBlockRefs","_getEditorRegion","_jsxRuntime","BlockBreadcrumb","rootLabelText","selectBlock","clearSelectedBlock","useDispatch","blockEditorStore","clientId","parents","hasSelection","useSelect","select","getSelectionStart","getSelectedBlockClientId","getEnabledBlockParents","unlock","selectedBlockClientId","rootLabel","__","blockRef","useRef","useBlockElementRef","jsxs","className","role","children","undefined","jsx","Button","size","onClick","blockEditor","current","closest","getEditorRegion","focus","Icon","icon","chevronRightSmall","map","parentClientId","default","maximumLength","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-breadcrumb/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { chevronRightSmall, Icon } from '@wordpress/icons';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockTitle from '../block-title';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useBlockElementRef } from '../block-list/use-block-props/use-block-refs';\nimport getEditorRegion from '../../utils/get-editor-region';\n\n/**\n * Block breadcrumb component, displaying the hierarchy of the current block selection as a breadcrumb.\n *\n * @param {Object} props Component props.\n * @param {string} props.rootLabelText Translated label for the root element of the breadcrumb trail.\n * @return {Element} Block Breadcrumb.\n */\nfunction BlockBreadcrumb( { rootLabelText } ) {\n\tconst { selectBlock, clearSelectedBlock } = useDispatch( blockEditorStore );\n\tconst { clientId, parents, hasSelection } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetEnabledBlockParents,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\treturn {\n\t\t\tparents: getEnabledBlockParents( selectedBlockClientId ),\n\t\t\tclientId: selectedBlockClientId,\n\t\t\thasSelection: !! getSelectionStart().clientId,\n\t\t};\n\t}, [] );\n\tconst rootLabel = rootLabelText || __( 'Document' );\n\n\t// We don't care about this specific ref, but this is a way\n\t// to get a ref within the editor canvas so we can focus it later.\n\tconst blockRef = useRef();\n\tuseBlockElementRef( clientId, blockRef );\n\n\t/*\n\t * Disable reason: The `list` ARIA role is redundant but\n\t * Safari+VoiceOver won't announce the list otherwise.\n\t */\n\t/* eslint-disable jsx-a11y/no-redundant-roles */\n\treturn (\n\t\t<ul\n\t\t\tclassName=\"block-editor-block-breadcrumb\"\n\t\t\trole=\"list\"\n\t\t\taria-label={ __( 'Block breadcrumb' ) }\n\t\t>\n\t\t\t<li\n\t\t\t\tclassName={\n\t\t\t\t\t! hasSelection\n\t\t\t\t\t\t? 'block-editor-block-breadcrumb__current'\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\taria-current={ ! hasSelection ? 'true' : undefined }\n\t\t\t>\n\t\t\t\t{ hasSelection && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__button\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t// Find the block editor wrapper for the selected block\n\t\t\t\t\t\t\tconst blockEditor = blockRef.current?.closest(\n\t\t\t\t\t\t\t\t'.editor-styles-wrapper'\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tclearSelectedBlock();\n\n\t\t\t\t\t\t\tgetEditorRegion( blockEditor )?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ rootLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\t{ ! hasSelection && rootLabel }\n\t\t\t\t{ !! clientId && (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ chevronRightSmall }\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__separator\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</li>\n\n\t\t\t{ parents.map( ( parentClientId ) => (\n\t\t\t\t<li key={ parentClientId }>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__button\"\n\t\t\t\t\t\tonClick={ () => selectBlock( parentClientId ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\tclientId={ parentClientId }\n\t\t\t\t\t\t\tmaximumLength={ 35 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ chevronRightSmall }\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__separator\"\n\t\t\t\t\t/>\n\t\t\t\t</li>\n\t\t\t) ) }\n\t\t\t{ !! clientId && (\n\t\t\t\t<li\n\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__current\"\n\t\t\t\t\taria-current=\"true\"\n\t\t\t\t>\n\t\t\t\t\t<BlockTitle clientId={ clientId } maximumLength={ 35 } />\n\t\t\t\t</li>\n\t\t\t) }\n\t\t</ul>\n\t\t/* eslint-enable jsx-a11y/no-redundant-roles */\n\t);\n}\n\nexport default BlockBreadcrumb;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_data","_i18n","_icons","_element","_blockTitle","_interopRequireDefault","_store","_lockUnlock","_useBlockRefs","_getEditorRegion","_jsxRuntime","BlockBreadcrumb","rootLabelText","selectBlock","clearSelectedBlock","useDispatch","blockEditorStore","clientId","parents","hasSelection","useSelect","select","getSelectionStart","getSelectedBlockClientId","getEnabledBlockParents","unlock","selectedBlockClientId","rootLabel","__","blockRef","useRef","useBlockElementRef","jsxs","className","role","children","undefined","jsx","Button","size","onClick","blockEditor","current","closest","getEditorRegion","focus","Icon","icon","chevronRightSmall","map","parentClientId","default","maximumLength","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-breadcrumb/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { chevronRightSmall, Icon } from '@wordpress/icons';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockTitle from '../block-title';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useBlockElementRef } from '../block-list/use-block-props/use-block-refs';\nimport getEditorRegion from '../../utils/get-editor-region';\n\n/**\n * Block breadcrumb component, displaying the hierarchy of the current block selection as a breadcrumb.\n *\n * @param {Object} props Component props.\n * @param {string} props.rootLabelText Translated label for the root element of the breadcrumb trail.\n * @return {Element} Block Breadcrumb.\n */\nfunction BlockBreadcrumb( { rootLabelText } ) {\n\tconst { selectBlock, clearSelectedBlock } = useDispatch( blockEditorStore );\n\tconst { clientId, parents, hasSelection } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetEnabledBlockParents,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\treturn {\n\t\t\tparents: getEnabledBlockParents( selectedBlockClientId ),\n\t\t\tclientId: selectedBlockClientId,\n\t\t\thasSelection: !! getSelectionStart().clientId,\n\t\t};\n\t}, [] );\n\tconst rootLabel = rootLabelText || __( 'Document' );\n\n\t// We don't care about this specific ref, but this is a way\n\t// to get a ref within the editor canvas so we can focus it later.\n\tconst blockRef = useRef();\n\tuseBlockElementRef( clientId, blockRef );\n\n\t/*\n\t * Disable reason: The `list` ARIA role is redundant but\n\t * Safari+VoiceOver won't announce the list otherwise.\n\t */\n\t/* eslint-disable jsx-a11y/no-redundant-roles */\n\treturn (\n\t\t<ul\n\t\t\tclassName=\"block-editor-block-breadcrumb\"\n\t\t\trole=\"list\"\n\t\t\taria-label={ __( 'Block breadcrumb' ) }\n\t\t>\n\t\t\t<li\n\t\t\t\tclassName={\n\t\t\t\t\t! hasSelection\n\t\t\t\t\t\t? 'block-editor-block-breadcrumb__current'\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\taria-current={ ! hasSelection ? 'true' : undefined }\n\t\t\t>\n\t\t\t\t{ hasSelection && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__button\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t// Find the block editor wrapper for the selected block\n\t\t\t\t\t\t\tconst blockEditor = blockRef.current?.closest(\n\t\t\t\t\t\t\t\t'.editor-styles-wrapper'\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tclearSelectedBlock();\n\n\t\t\t\t\t\t\tgetEditorRegion( blockEditor )?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ rootLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\t{ ! hasSelection && <span>{ rootLabel }</span> }\n\t\t\t\t{ !! clientId && (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ chevronRightSmall }\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__separator\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</li>\n\n\t\t\t{ parents.map( ( parentClientId ) => (\n\t\t\t\t<li key={ parentClientId }>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__button\"\n\t\t\t\t\t\tonClick={ () => selectBlock( parentClientId ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\tclientId={ parentClientId }\n\t\t\t\t\t\t\tmaximumLength={ 35 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ chevronRightSmall }\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__separator\"\n\t\t\t\t\t/>\n\t\t\t\t</li>\n\t\t\t) ) }\n\t\t\t{ !! clientId && (\n\t\t\t\t<li\n\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__current\"\n\t\t\t\t\taria-current=\"true\"\n\t\t\t\t>\n\t\t\t\t\t<BlockTitle clientId={ clientId } maximumLength={ 35 } />\n\t\t\t\t</li>\n\t\t\t) }\n\t\t</ul>\n\t\t/* eslint-enable jsx-a11y/no-redundant-roles */\n\t);\n}\n\nexport default BlockBreadcrumb;\n"],"mappings":"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","ignoreList":[]}
@@ -38,7 +38,7 @@ function PreviewBlockPopover({
38
38
  className: "block-editor-block-switcher__preview-title",
39
39
  children: (0, _i18n.__)('Preview')
40
40
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockPreview.default, {
41
- viewportWidth: 500,
41
+ viewportWidth: 601,
42
42
  blocks: blocks
43
43
  })]
44
44
  })
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_compose","_blockPreview","_interopRequireDefault","_jsxRuntime","PreviewBlockPopover","blocks","isMobile","useViewportMatch","jsx","className","children","Popover","placement","focusOnMount","offset","jsxs","__","default","viewportWidth"],"sources":["@wordpress/block-editor/src/components/block-switcher/preview-block-popover.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Popover } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\n\nexport default function PreviewBlockPopover( { blocks } ) {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\tif ( isMobile ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__popover-preview-container\">\n\t\t\t<Popover\n\t\t\t\tclassName=\"block-editor-block-switcher__popover-preview\"\n\t\t\t\tplacement=\"right-start\"\n\t\t\t\tfocusOnMount={ false }\n\t\t\t\toffset={ 16 }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-switcher__preview\">\n\t\t\t\t\t<div className=\"block-editor-block-switcher__preview-title\">\n\t\t\t\t\t\t{ __( 'Preview' ) }\n\t\t\t\t\t</div>\n\t\t\t\t\t<BlockPreview viewportWidth={ 500 } blocks={ blocks } />\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,aAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAA4C,IAAAK,WAAA,GAAAL,OAAA;AAV5C;AACA;AACA;;AAKA;AACA;AACA;;AAGe,SAASM,mBAAmBA,CAAE;EAAEC;AAAO,CAAC,EAAG;EACzD,MAAMC,QAAQ,GAAG,IAAAC,yBAAgB,EAAE,QAAQ,EAAE,GAAI,CAAC;EAElD,IAAKD,QAAQ,EAAG;IACf,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAH,WAAA,CAAAK,GAAA;IAAKC,SAAS,EAAC,wDAAwD;IAAAC,QAAA,eACtE,IAAAP,WAAA,CAAAK,GAAA,EAACT,WAAA,CAAAY,OAAO;MACPF,SAAS,EAAC,8CAA8C;MACxDG,SAAS,EAAC,aAAa;MACvBC,YAAY,EAAG,KAAO;MACtBC,MAAM,EAAG,EAAI;MAAAJ,QAAA,eAEb,IAAAP,WAAA,CAAAY,IAAA;QAAKN,SAAS,EAAC,sCAAsC;QAAAC,QAAA,gBACpD,IAAAP,WAAA,CAAAK,GAAA;UAAKC,SAAS,EAAC,4CAA4C;UAAAC,QAAA,EACxD,IAAAM,QAAE,EAAE,SAAU;QAAC,CACb,CAAC,eACN,IAAAb,WAAA,CAAAK,GAAA,EAACP,aAAA,CAAAgB,OAAY;UAACC,aAAa,EAAG,GAAK;UAACb,MAAM,EAAGA;QAAQ,CAAE,CAAC;MAAA,CACpD;IAAC,CACE;EAAC,CACN,CAAC;AAER","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_components","_compose","_blockPreview","_interopRequireDefault","_jsxRuntime","PreviewBlockPopover","blocks","isMobile","useViewportMatch","jsx","className","children","Popover","placement","focusOnMount","offset","jsxs","__","default","viewportWidth"],"sources":["@wordpress/block-editor/src/components/block-switcher/preview-block-popover.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Popover } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\n\nexport default function PreviewBlockPopover( { blocks } ) {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\tif ( isMobile ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__popover-preview-container\">\n\t\t\t<Popover\n\t\t\t\tclassName=\"block-editor-block-switcher__popover-preview\"\n\t\t\t\tplacement=\"right-start\"\n\t\t\t\tfocusOnMount={ false }\n\t\t\t\toffset={ 16 }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-switcher__preview\">\n\t\t\t\t\t<div className=\"block-editor-block-switcher__preview-title\">\n\t\t\t\t\t\t{ __( 'Preview' ) }\n\t\t\t\t\t</div>\n\t\t\t\t\t{ /* 600px is the value of $break-small in base-styles/_breakpoints.scss.\n\t\t\t\t\t\tWe set the viewport width to 601px to make sure that the media-text \n\t\t\t\t\t\tblock which uses this breakpoint has the correct padding. */ }\n\t\t\t\t\t<BlockPreview viewportWidth={ 601 } blocks={ blocks } />\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,aAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAA4C,IAAAK,WAAA,GAAAL,OAAA;AAV5C;AACA;AACA;;AAKA;AACA;AACA;;AAGe,SAASM,mBAAmBA,CAAE;EAAEC;AAAO,CAAC,EAAG;EACzD,MAAMC,QAAQ,GAAG,IAAAC,yBAAgB,EAAE,QAAQ,EAAE,GAAI,CAAC;EAElD,IAAKD,QAAQ,EAAG;IACf,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAH,WAAA,CAAAK,GAAA;IAAKC,SAAS,EAAC,wDAAwD;IAAAC,QAAA,eACtE,IAAAP,WAAA,CAAAK,GAAA,EAACT,WAAA,CAAAY,OAAO;MACPF,SAAS,EAAC,8CAA8C;MACxDG,SAAS,EAAC,aAAa;MACvBC,YAAY,EAAG,KAAO;MACtBC,MAAM,EAAG,EAAI;MAAAJ,QAAA,eAEb,IAAAP,WAAA,CAAAY,IAAA;QAAKN,SAAS,EAAC,sCAAsC;QAAAC,QAAA,gBACpD,IAAAP,WAAA,CAAAK,GAAA;UAAKC,SAAS,EAAC,4CAA4C;UAAAC,QAAA,EACxD,IAAAM,QAAE,EAAE,SAAU;QAAC,CACb,CAAC,eAIN,IAAAb,WAAA,CAAAK,GAAA,EAACP,aAAA,CAAAgB,OAAY;UAACC,aAAa,EAAG,GAAK;UAACb,MAAM,EAAGA;QAAQ,CAAE,CAAC;MAAA,CACpD;IAAC,CACE;EAAC,CACN,CAAC;AAER","ignoreList":[]}
@@ -21,6 +21,7 @@ var _usePopoverScroll = _interopRequireDefault(require("../block-popover/use-pop
21
21
  var _zoomOutModeInserters = _interopRequireDefault(require("./zoom-out-mode-inserters"));
22
22
  var _useShowBlockTools = require("./use-show-block-tools");
23
23
  var _lockUnlock = require("../../lock-unlock");
24
+ var _usePasteStyles = _interopRequireDefault(require("../use-paste-styles"));
24
25
  var _jsxRuntime = require("react/jsx-runtime");
25
26
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
26
27
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -86,6 +87,7 @@ function BlockTools({
86
87
  showEmptyBlockSideInserter,
87
88
  showBlockToolbarPopover
88
89
  } = (0, _useShowBlockTools.useShowBlockTools)();
90
+ const pasteStyles = (0, _usePasteStyles.default)();
89
91
  const {
90
92
  duplicateBlocks,
91
93
  removeBlocks,
@@ -130,6 +132,13 @@ function BlockTools({
130
132
  event.preventDefault();
131
133
  removeBlocks(clientIds);
132
134
  }
135
+ } else if (isMatch('core/block-editor/paste-styles', event)) {
136
+ const clientIds = getSelectedBlockClientIds();
137
+ if (clientIds.length) {
138
+ event.preventDefault();
139
+ const blocks = getBlocksByClientId(clientIds);
140
+ pasteStyles(blocks);
141
+ }
133
142
  } else if (isMatch('core/block-editor/insert-after', event)) {
134
143
  const clientIds = getSelectedBlockClientIds();
135
144
  if (clientIds.length) {
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_dom","_components","_keyboardShortcuts","_element","_blocks","_a11y","_i18n","_emptyBlockInserter","_interopRequireDefault","_insertionPoint","_interopRequireWildcard","_blockToolbarPopover","_store","_usePopoverScroll","_zoomOutModeInserters","_useShowBlockTools","_lockUnlock","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","selector","select","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getSettings","isTyping","isDragging","isZoomOut","unlock","blockEditorStore","clientId","hasFixedToolbar","isZoomOutMode","BlockTools","children","__unstableContentRef","props","useSelect","isMatch","useShortcutEventMatch","getBlocksByClientId","getSelectedBlockClientIds","getBlockRootClientId","isGroupable","getGroupingBlockName","blocksStore","showEmptyBlockSideInserter","showBlockToolbarPopover","useShowBlockTools","duplicateBlocks","removeBlocks","replaceBlocks","insertAfterBlock","insertBeforeBlock","selectBlock","moveBlocksUp","moveBlocksDown","expandBlock","useDispatch","onKeyDown","event","defaultPrevented","clientIds","length","preventDefault","rootClientId","direction","blockLength","Array","isArray","message","sprintf","_n","speak","target","closest","isTextField","contentWindow","document","activeElement","blocks","groupingBlockName","newBlocks","switchToBlockType","__","blockToolbarRef","usePopoverScroll","blockToolbarAfterRef","jsx","jsxs","InsertionPointOpenRef","Provider","value","useRef","Popover","Slot","name","ref"],"sources":["@wordpress/block-editor/src/components/block-tools/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { isTextField } from '@wordpress/dom';\nimport { Popover } from '@wordpress/components';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { useRef } from '@wordpress/element';\nimport { switchToBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { speak } from '@wordpress/a11y';\nimport { __, sprintf, _n } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport EmptyBlockInserter from './empty-block-inserter';\nimport {\n\tInsertionPointOpenRef,\n\tdefault as InsertionPoint,\n} from './insertion-point';\nimport BlockToolbarPopover from './block-toolbar-popover';\nimport { store as blockEditorStore } from '../../store';\nimport usePopoverScroll from '../block-popover/use-popover-scroll';\nimport ZoomOutModeInserters from './zoom-out-mode-inserters';\nimport { useShowBlockTools } from './use-show-block-tools';\nimport { unlock } from '../../lock-unlock';\n\nfunction selector( select ) {\n\tconst {\n\t\tgetSelectedBlockClientId,\n\t\tgetFirstMultiSelectedBlockClientId,\n\t\tgetSettings,\n\t\tisTyping,\n\t\tisDragging,\n\t\tisZoomOut,\n\t} = unlock( select( blockEditorStore ) );\n\n\tconst clientId =\n\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\treturn {\n\t\tclientId,\n\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\tisTyping: isTyping(),\n\t\tisZoomOutMode: isZoomOut(),\n\t\tisDragging: isDragging(),\n\t};\n}\n\n/**\n * Renders block tools (the block toolbar, select/navigation mode toolbar, the\n * insertion point and a slot for the inline rich text toolbar). Must be wrapped\n * around the block content and editor styles wrapper or iframe.\n *\n * @param {Object} $0 Props.\n * @param {Object} $0.children The block content and style container.\n * @param {Object} $0.__unstableContentRef Ref holding the content scroll container.\n */\nexport default function BlockTools( {\n\tchildren,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst { clientId, hasFixedToolbar, isTyping, isZoomOutMode, isDragging } =\n\t\tuseSelect( selector, [] );\n\n\tconst isMatch = useShortcutEventMatch();\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\tgetBlockRootClientId,\n\t\tisGroupable,\n\t} = useSelect( blockEditorStore );\n\tconst { getGroupingBlockName } = useSelect( blocksStore );\n\tconst { showEmptyBlockSideInserter, showBlockToolbarPopover } =\n\t\tuseShowBlockTools();\n\n\tconst {\n\t\tduplicateBlocks,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tselectBlock,\n\t\tmoveBlocksUp,\n\t\tmoveBlocksDown,\n\t\texpandBlock,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tisMatch( 'core/block-editor/move-up', event ) ||\n\t\t\tisMatch( 'core/block-editor/move-down', event )\n\t\t) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tconst direction = isMatch( 'core/block-editor/move-up', event )\n\t\t\t\t\t? 'up'\n\t\t\t\t\t: 'down';\n\t\t\t\tif ( direction === 'up' ) {\n\t\t\t\t\tmoveBlocksUp( clientIds, rootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tmoveBlocksDown( clientIds, rootClientId );\n\t\t\t\t}\n\t\t\t\tconst blockLength = Array.isArray( clientIds )\n\t\t\t\t\t? clientIds.length\n\t\t\t\t\t: 1;\n\t\t\t\tconst message = sprintf(\n\t\t\t\t\t// translators: %d: the name of the block that has been moved\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'%d block moved.',\n\t\t\t\t\t\t'%d blocks moved.',\n\t\t\t\t\t\tclientIds.length\n\t\t\t\t\t),\n\t\t\t\t\tblockLength\n\t\t\t\t);\n\t\t\t\tspeak( message );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tduplicateBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/remove', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tremoveBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-after', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertAfterBlock( clientIds[ clientIds.length - 1 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-before', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertBeforeBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/unselect', event ) ) {\n\t\t\tif ( event.target.closest( '[role=toolbar]' ) ) {\n\t\t\t\t// This shouldn't be necessary, but we have a combination of a few things all combining to create a situation where:\n\t\t\t\t// - Because the block toolbar uses createPortal to populate the block toolbar fills, we can't rely on the React event bubbling to hit the onKeyDown listener for the block toolbar\n\t\t\t\t// - Since we can't use the React tree, we use the DOM tree which _should_ handle the event bubbling correctly from a `createPortal` element.\n\t\t\t\t// - This bubbles via the React tree, which hits this `unselect` escape keypress before the block toolbar DOM event listener has access to it.\n\t\t\t\t// An alternative would be to remove the addEventListener on the navigableToolbar and use this event to handle it directly right here. That feels hacky too though.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length > 1 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\t// If there is more than one block selected, select the first\n\t\t\t\t// block so that focus is directed back to the beginning of the selection.\n\t\t\t\t// In effect, to the user this feels like deselecting the multi-selection.\n\t\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/collapse-list-view', event ) ) {\n\t\t\t// If focus is currently within a text field, such as a rich text block or other editable field,\n\t\t\t// skip collapsing the list view, and allow the keyboard shortcut to be handled by the text field.\n\t\t\t// This condition checks for both the active element and the active element within an iframed editor.\n\t\t\tif (\n\t\t\t\tisTextField( event.target ) ||\n\t\t\t\tisTextField(\n\t\t\t\t\tevent.target?.contentWindow?.document?.activeElement\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\texpandBlock( clientId );\n\t\t} else if ( isMatch( 'core/block-editor/group', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length > 1 && isGroupable( clientIds ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst blocks = getBlocksByClientId( clientIds );\n\t\t\t\tconst groupingBlockName = getGroupingBlockName();\n\t\t\t\tconst newBlocks = switchToBlockType(\n\t\t\t\t\tblocks,\n\t\t\t\t\tgroupingBlockName\n\t\t\t\t);\n\t\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t\t\tspeak( __( 'Selected blocks are grouped.' ) );\n\t\t\t}\n\t\t}\n\t}\n\tconst blockToolbarRef = usePopoverScroll( __unstableContentRef );\n\tconst blockToolbarAfterRef = usePopoverScroll( __unstableContentRef );\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div { ...props } onKeyDown={ onKeyDown }>\n\t\t\t<InsertionPointOpenRef.Provider value={ useRef( false ) }>\n\t\t\t\t{ ! isTyping && ! isZoomOutMode && (\n\t\t\t\t\t<InsertionPoint\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showEmptyBlockSideInserter && (\n\t\t\t\t\t<EmptyBlockInserter\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showBlockToolbarPopover && (\n\t\t\t\t\t<BlockToolbarPopover\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisTyping={ isTyping }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ /* Used for the inline rich text toolbar. Until this toolbar is combined into BlockToolbar, someone implementing their own BlockToolbar will also need to use this to see the image caption toolbar. */ }\n\t\t\t\t{ ! isZoomOutMode && ! hasFixedToolbar && (\n\t\t\t\t\t<Popover.Slot\n\t\t\t\t\t\tname=\"block-toolbar\"\n\t\t\t\t\t\tref={ blockToolbarRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t\t{ /* Used for inline rich text popovers. */ }\n\t\t\t\t<Popover.Slot\n\t\t\t\t\tname=\"__unstable-block-tools-after\"\n\t\t\t\t\tref={ blockToolbarAfterRef }\n\t\t\t\t/>\n\t\t\t\t{ isZoomOutMode && ! isDragging && (\n\t\t\t\t\t<ZoomOutModeInserters\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InsertionPointOpenRef.Provider>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_dom","_components","_keyboardShortcuts","_element","_blocks","_a11y","_i18n","_emptyBlockInserter","_interopRequireDefault","_insertionPoint","_interopRequireWildcard","_blockToolbarPopover","_store","_usePopoverScroll","_zoomOutModeInserters","_useShowBlockTools","_lockUnlock","_usePasteStyles","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","selector","select","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getSettings","isTyping","isDragging","isZoomOut","unlock","blockEditorStore","clientId","hasFixedToolbar","isZoomOutMode","BlockTools","children","__unstableContentRef","props","useSelect","isMatch","useShortcutEventMatch","getBlocksByClientId","getSelectedBlockClientIds","getBlockRootClientId","isGroupable","getGroupingBlockName","blocksStore","showEmptyBlockSideInserter","showBlockToolbarPopover","useShowBlockTools","pasteStyles","usePasteStyles","duplicateBlocks","removeBlocks","replaceBlocks","insertAfterBlock","insertBeforeBlock","selectBlock","moveBlocksUp","moveBlocksDown","expandBlock","useDispatch","onKeyDown","event","defaultPrevented","clientIds","length","preventDefault","rootClientId","direction","blockLength","Array","isArray","message","sprintf","_n","speak","blocks","target","closest","isTextField","contentWindow","document","activeElement","groupingBlockName","newBlocks","switchToBlockType","__","blockToolbarRef","usePopoverScroll","blockToolbarAfterRef","jsx","jsxs","InsertionPointOpenRef","Provider","value","useRef","Popover","Slot","name","ref"],"sources":["@wordpress/block-editor/src/components/block-tools/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { isTextField } from '@wordpress/dom';\nimport { Popover } from '@wordpress/components';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { useRef } from '@wordpress/element';\nimport { switchToBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { speak } from '@wordpress/a11y';\nimport { __, sprintf, _n } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport EmptyBlockInserter from './empty-block-inserter';\nimport {\n\tInsertionPointOpenRef,\n\tdefault as InsertionPoint,\n} from './insertion-point';\nimport BlockToolbarPopover from './block-toolbar-popover';\nimport { store as blockEditorStore } from '../../store';\nimport usePopoverScroll from '../block-popover/use-popover-scroll';\nimport ZoomOutModeInserters from './zoom-out-mode-inserters';\nimport { useShowBlockTools } from './use-show-block-tools';\nimport { unlock } from '../../lock-unlock';\nimport usePasteStyles from '../use-paste-styles';\n\nfunction selector( select ) {\n\tconst {\n\t\tgetSelectedBlockClientId,\n\t\tgetFirstMultiSelectedBlockClientId,\n\t\tgetSettings,\n\t\tisTyping,\n\t\tisDragging,\n\t\tisZoomOut,\n\t} = unlock( select( blockEditorStore ) );\n\n\tconst clientId =\n\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\treturn {\n\t\tclientId,\n\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\tisTyping: isTyping(),\n\t\tisZoomOutMode: isZoomOut(),\n\t\tisDragging: isDragging(),\n\t};\n}\n\n/**\n * Renders block tools (the block toolbar, select/navigation mode toolbar, the\n * insertion point and a slot for the inline rich text toolbar). Must be wrapped\n * around the block content and editor styles wrapper or iframe.\n *\n * @param {Object} $0 Props.\n * @param {Object} $0.children The block content and style container.\n * @param {Object} $0.__unstableContentRef Ref holding the content scroll container.\n */\nexport default function BlockTools( {\n\tchildren,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst { clientId, hasFixedToolbar, isTyping, isZoomOutMode, isDragging } =\n\t\tuseSelect( selector, [] );\n\n\tconst isMatch = useShortcutEventMatch();\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\tgetBlockRootClientId,\n\t\tisGroupable,\n\t} = useSelect( blockEditorStore );\n\tconst { getGroupingBlockName } = useSelect( blocksStore );\n\tconst { showEmptyBlockSideInserter, showBlockToolbarPopover } =\n\t\tuseShowBlockTools();\n\tconst pasteStyles = usePasteStyles();\n\n\tconst {\n\t\tduplicateBlocks,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tselectBlock,\n\t\tmoveBlocksUp,\n\t\tmoveBlocksDown,\n\t\texpandBlock,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tisMatch( 'core/block-editor/move-up', event ) ||\n\t\t\tisMatch( 'core/block-editor/move-down', event )\n\t\t) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tconst direction = isMatch( 'core/block-editor/move-up', event )\n\t\t\t\t\t? 'up'\n\t\t\t\t\t: 'down';\n\t\t\t\tif ( direction === 'up' ) {\n\t\t\t\t\tmoveBlocksUp( clientIds, rootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tmoveBlocksDown( clientIds, rootClientId );\n\t\t\t\t}\n\t\t\t\tconst blockLength = Array.isArray( clientIds )\n\t\t\t\t\t? clientIds.length\n\t\t\t\t\t: 1;\n\t\t\t\tconst message = sprintf(\n\t\t\t\t\t// translators: %d: the name of the block that has been moved\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'%d block moved.',\n\t\t\t\t\t\t'%d blocks moved.',\n\t\t\t\t\t\tclientIds.length\n\t\t\t\t\t),\n\t\t\t\t\tblockLength\n\t\t\t\t);\n\t\t\t\tspeak( message );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tduplicateBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/remove', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tremoveBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/paste-styles', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst blocks = getBlocksByClientId( clientIds );\n\t\t\t\tpasteStyles( blocks );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-after', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertAfterBlock( clientIds[ clientIds.length - 1 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-before', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertBeforeBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/unselect', event ) ) {\n\t\t\tif ( event.target.closest( '[role=toolbar]' ) ) {\n\t\t\t\t// This shouldn't be necessary, but we have a combination of a few things all combining to create a situation where:\n\t\t\t\t// - Because the block toolbar uses createPortal to populate the block toolbar fills, we can't rely on the React event bubbling to hit the onKeyDown listener for the block toolbar\n\t\t\t\t// - Since we can't use the React tree, we use the DOM tree which _should_ handle the event bubbling correctly from a `createPortal` element.\n\t\t\t\t// - This bubbles via the React tree, which hits this `unselect` escape keypress before the block toolbar DOM event listener has access to it.\n\t\t\t\t// An alternative would be to remove the addEventListener on the navigableToolbar and use this event to handle it directly right here. That feels hacky too though.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length > 1 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\t// If there is more than one block selected, select the first\n\t\t\t\t// block so that focus is directed back to the beginning of the selection.\n\t\t\t\t// In effect, to the user this feels like deselecting the multi-selection.\n\t\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/collapse-list-view', event ) ) {\n\t\t\t// If focus is currently within a text field, such as a rich text block or other editable field,\n\t\t\t// skip collapsing the list view, and allow the keyboard shortcut to be handled by the text field.\n\t\t\t// This condition checks for both the active element and the active element within an iframed editor.\n\t\t\tif (\n\t\t\t\tisTextField( event.target ) ||\n\t\t\t\tisTextField(\n\t\t\t\t\tevent.target?.contentWindow?.document?.activeElement\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\texpandBlock( clientId );\n\t\t} else if ( isMatch( 'core/block-editor/group', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length > 1 && isGroupable( clientIds ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst blocks = getBlocksByClientId( clientIds );\n\t\t\t\tconst groupingBlockName = getGroupingBlockName();\n\t\t\t\tconst newBlocks = switchToBlockType(\n\t\t\t\t\tblocks,\n\t\t\t\t\tgroupingBlockName\n\t\t\t\t);\n\t\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t\t\tspeak( __( 'Selected blocks are grouped.' ) );\n\t\t\t}\n\t\t}\n\t}\n\tconst blockToolbarRef = usePopoverScroll( __unstableContentRef );\n\tconst blockToolbarAfterRef = usePopoverScroll( __unstableContentRef );\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div { ...props } onKeyDown={ onKeyDown }>\n\t\t\t<InsertionPointOpenRef.Provider value={ useRef( false ) }>\n\t\t\t\t{ ! isTyping && ! isZoomOutMode && (\n\t\t\t\t\t<InsertionPoint\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showEmptyBlockSideInserter && (\n\t\t\t\t\t<EmptyBlockInserter\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showBlockToolbarPopover && (\n\t\t\t\t\t<BlockToolbarPopover\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisTyping={ isTyping }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ /* Used for the inline rich text toolbar. Until this toolbar is combined into BlockToolbar, someone implementing their own BlockToolbar will also need to use this to see the image caption toolbar. */ }\n\t\t\t\t{ ! isZoomOutMode && ! hasFixedToolbar && (\n\t\t\t\t\t<Popover.Slot\n\t\t\t\t\t\tname=\"block-toolbar\"\n\t\t\t\t\t\tref={ blockToolbarRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t\t{ /* Used for inline rich text popovers. */ }\n\t\t\t\t<Popover.Slot\n\t\t\t\t\tname=\"__unstable-block-tools-after\"\n\t\t\t\t\tref={ blockToolbarAfterRef }\n\t\t\t\t/>\n\t\t\t\t{ isZoomOutMode && ! isDragging && (\n\t\t\t\t\t<ZoomOutModeInserters\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InsertionPointOpenRef.Provider>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -77,14 +77,11 @@ function VariationsDropdown({
77
77
  toggleProps: {
78
78
  iconPosition: 'right'
79
79
  },
80
- children: () => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
81
- className: `${className}__container`,
82
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuGroup, {
83
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItemsChoice, {
84
- choices: selectOptions,
85
- value: selectedValue,
86
- onSelect: onSelectVariation
87
- })
80
+ children: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuGroup, {
81
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItemsChoice, {
82
+ choices: selectOptions,
83
+ value: selectedValue,
84
+ onSelect: onSelectVariation
88
85
  })
89
86
  })
90
87
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_i18n","_components","_data","_element","_icons","_blockIcon","_interopRequireDefault","_store","_lockUnlock","_jsxRuntime","VariationsButtons","className","onSelectVariation","selectedValue","variations","jsxs","children","jsx","VisuallyHidden","as","__","map","variation","Button","__next40pxDefaultSize","size","icon","default","showColors","isPressed","name","label","title","sprintf","onClick","showTooltip","VariationsDropdown","selectOptions","description","value","info","DropdownMenu","text","popoverProps","position","chevronDown","toggleProps","iconPosition","MenuGroup","MenuItemsChoice","choices","onSelect","VariationsToggleGroupControl","__experimentalToggleGroupControl","hideLabelFromVision","onChange","__nextHasNoMarginBottom","__experimentalToggleGroupControlOptionIcon","__experimentalBlockVariationTransforms","blockClientId","updateBlockAttributes","useDispatch","blockEditorStore","activeBlockVariation","isContentOnly","useSelect","select","getActiveBlockVariation","getBlockVariations","blocksStore","getBlockName","getBlockAttributes","getBlockEditingMode","hasContentRoleAttribute","unlock","isContentBlock","hasUniqueIcons","useMemo","variationIcons","Set","forEach","add","src","length","variationName","find","attributes","baseClass","showButtons","ButtonComponent","Component","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-variation-transforms/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItemsChoice,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { chevronDown } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction VariationsButtons( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<fieldset className={ className }>\n\t\t\t<VisuallyHidden as=\"legend\">\n\t\t\t\t{ __( 'Transform to variation' ) }\n\t\t\t</VisuallyHidden>\n\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\ticon={ <BlockIcon icon={ variation.icon } showColors /> }\n\t\t\t\t\tisPressed={ selectedValue === variation.name }\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: Block or block variation name. */\n\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t\tonClick={ () => onSelectVariation( variation.name ) }\n\t\t\t\t\taria-label={ variation.title }\n\t\t\t\t\tshowTooltip\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</fieldset>\n\t);\n}\n\nfunction VariationsDropdown( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\tconst selectOptions = variations.map(\n\t\t( { name, title, description } ) => ( {\n\t\t\tvalue: name,\n\t\t\tlabel: title,\n\t\t\tinfo: description,\n\t\t} )\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName={ className }\n\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\ttext={ __( 'Transform to variation' ) }\n\t\t\tpopoverProps={ {\n\t\t\t\tposition: 'bottom center',\n\t\t\t\tclassName: `${ className }__popover`,\n\t\t\t} }\n\t\t\ticon={ chevronDown }\n\t\t\ttoggleProps={ { iconPosition: 'right' } }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<div className={ `${ className }__container` }>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tchoices={ selectOptions }\n\t\t\t\t\t\t\tvalue={ selectedValue }\n\t\t\t\t\t\t\tonSelect={ onSelectVariation }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction VariationsToggleGroupControl( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<div className={ className }>\n\t\t\t<ToggleGroupControl\n\t\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\t\tvalue={ selectedValue }\n\t\t\t\thideLabelFromVision\n\t\t\t\tonChange={ onSelectVariation }\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t>\n\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIcon icon={ variation.icon } showColors />\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ variation.name }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: Block or block variation name. */\n\t\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ToggleGroupControl>\n\t\t</div>\n\t);\n}\n\nfunction __experimentalBlockVariationTransforms( { blockClientId } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { activeBlockVariation, variations, isContentOnly } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\n\t\t\tconst { getBlockName, getBlockAttributes, getBlockEditingMode } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst name = blockClientId && getBlockName( blockClientId );\n\n\t\t\tconst { hasContentRoleAttribute } = unlock( select( blocksStore ) );\n\t\t\tconst isContentBlock = hasContentRoleAttribute( name );\n\n\t\t\treturn {\n\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\tname,\n\t\t\t\t\tgetBlockAttributes( blockClientId )\n\t\t\t\t),\n\t\t\t\tvariations: name && getBlockVariations( name, 'transform' ),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( blockClientId ) === 'contentOnly' &&\n\t\t\t\t\t! isContentBlock,\n\t\t\t};\n\t\t},\n\t\t[ blockClientId ]\n\t);\n\n\tconst selectedValue = activeBlockVariation?.name;\n\n\t// Check if each variation has a unique icon.\n\tconst hasUniqueIcons = useMemo( () => {\n\t\tconst variationIcons = new Set();\n\t\tif ( ! variations ) {\n\t\t\treturn false;\n\t\t}\n\t\tvariations.forEach( ( variation ) => {\n\t\t\tif ( variation.icon ) {\n\t\t\t\tvariationIcons.add( variation.icon?.src || variation.icon );\n\t\t\t}\n\t\t} );\n\t\treturn variationIcons.size === variations.length;\n\t}, [ variations ] );\n\n\tconst onSelectVariation = ( variationName ) => {\n\t\tupdateBlockAttributes( blockClientId, {\n\t\t\t...variations.find( ( { name } ) => name === variationName )\n\t\t\t\t.attributes,\n\t\t} );\n\t};\n\n\tif ( ! variations?.length || isContentOnly ) {\n\t\treturn null;\n\t}\n\n\tconst baseClass = 'block-editor-block-variation-transforms';\n\n\t// Show buttons if there are more than 5 variations because the ToggleGroupControl does not wrap\n\tconst showButtons = variations.length > 5;\n\n\tconst ButtonComponent = showButtons\n\t\t? VariationsButtons\n\t\t: VariationsToggleGroupControl;\n\n\tconst Component = hasUniqueIcons ? ButtonComponent : VariationsDropdown;\n\n\treturn (\n\t\t<Component\n\t\t\tclassName={ baseClass }\n\t\t\tonSelectVariation={ onSelectVariation }\n\t\t\tselectedValue={ selectedValue }\n\t\t\tvariations={ variations }\n\t\t/>\n\t);\n}\n\nexport default __experimentalBlockVariationTransforms;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","_i18n","_components","_data","_element","_icons","_blockIcon","_interopRequireDefault","_store","_lockUnlock","_jsxRuntime","VariationsButtons","className","onSelectVariation","selectedValue","variations","jsxs","children","jsx","VisuallyHidden","as","__","map","variation","Button","__next40pxDefaultSize","size","icon","default","showColors","isPressed","name","label","title","sprintf","onClick","showTooltip","VariationsDropdown","selectOptions","description","value","info","DropdownMenu","text","popoverProps","position","chevronDown","toggleProps","iconPosition","MenuGroup","MenuItemsChoice","choices","onSelect","VariationsToggleGroupControl","__experimentalToggleGroupControl","hideLabelFromVision","onChange","__nextHasNoMarginBottom","__experimentalToggleGroupControlOptionIcon","__experimentalBlockVariationTransforms","blockClientId","updateBlockAttributes","useDispatch","blockEditorStore","activeBlockVariation","isContentOnly","useSelect","select","getActiveBlockVariation","getBlockVariations","blocksStore","getBlockName","getBlockAttributes","getBlockEditingMode","hasContentRoleAttribute","unlock","isContentBlock","hasUniqueIcons","useMemo","variationIcons","Set","forEach","add","src","length","variationName","find","attributes","baseClass","showButtons","ButtonComponent","Component","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-variation-transforms/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItemsChoice,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { chevronDown } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction VariationsButtons( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<fieldset className={ className }>\n\t\t\t<VisuallyHidden as=\"legend\">\n\t\t\t\t{ __( 'Transform to variation' ) }\n\t\t\t</VisuallyHidden>\n\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\ticon={ <BlockIcon icon={ variation.icon } showColors /> }\n\t\t\t\t\tisPressed={ selectedValue === variation.name }\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: Block or block variation name. */\n\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t\tonClick={ () => onSelectVariation( variation.name ) }\n\t\t\t\t\taria-label={ variation.title }\n\t\t\t\t\tshowTooltip\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</fieldset>\n\t);\n}\n\nfunction VariationsDropdown( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\tconst selectOptions = variations.map(\n\t\t( { name, title, description } ) => ( {\n\t\t\tvalue: name,\n\t\t\tlabel: title,\n\t\t\tinfo: description,\n\t\t} )\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName={ className }\n\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\ttext={ __( 'Transform to variation' ) }\n\t\t\tpopoverProps={ {\n\t\t\t\tposition: 'bottom center',\n\t\t\t\tclassName: `${ className }__popover`,\n\t\t\t} }\n\t\t\ticon={ chevronDown }\n\t\t\ttoggleProps={ { iconPosition: 'right' } }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\tchoices={ selectOptions }\n\t\t\t\t\t\tvalue={ selectedValue }\n\t\t\t\t\t\tonSelect={ onSelectVariation }\n\t\t\t\t\t/>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction VariationsToggleGroupControl( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<div className={ className }>\n\t\t\t<ToggleGroupControl\n\t\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\t\tvalue={ selectedValue }\n\t\t\t\thideLabelFromVision\n\t\t\t\tonChange={ onSelectVariation }\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t>\n\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIcon icon={ variation.icon } showColors />\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ variation.name }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: Block or block variation name. */\n\t\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ToggleGroupControl>\n\t\t</div>\n\t);\n}\n\nfunction __experimentalBlockVariationTransforms( { blockClientId } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { activeBlockVariation, variations, isContentOnly } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\n\t\t\tconst { getBlockName, getBlockAttributes, getBlockEditingMode } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst name = blockClientId && getBlockName( blockClientId );\n\n\t\t\tconst { hasContentRoleAttribute } = unlock( select( blocksStore ) );\n\t\t\tconst isContentBlock = hasContentRoleAttribute( name );\n\n\t\t\treturn {\n\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\tname,\n\t\t\t\t\tgetBlockAttributes( blockClientId )\n\t\t\t\t),\n\t\t\t\tvariations: name && getBlockVariations( name, 'transform' ),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( blockClientId ) === 'contentOnly' &&\n\t\t\t\t\t! isContentBlock,\n\t\t\t};\n\t\t},\n\t\t[ blockClientId ]\n\t);\n\n\tconst selectedValue = activeBlockVariation?.name;\n\n\t// Check if each variation has a unique icon.\n\tconst hasUniqueIcons = useMemo( () => {\n\t\tconst variationIcons = new Set();\n\t\tif ( ! variations ) {\n\t\t\treturn false;\n\t\t}\n\t\tvariations.forEach( ( variation ) => {\n\t\t\tif ( variation.icon ) {\n\t\t\t\tvariationIcons.add( variation.icon?.src || variation.icon );\n\t\t\t}\n\t\t} );\n\t\treturn variationIcons.size === variations.length;\n\t}, [ variations ] );\n\n\tconst onSelectVariation = ( variationName ) => {\n\t\tupdateBlockAttributes( blockClientId, {\n\t\t\t...variations.find( ( { name } ) => name === variationName )\n\t\t\t\t.attributes,\n\t\t} );\n\t};\n\n\tif ( ! variations?.length || isContentOnly ) {\n\t\treturn null;\n\t}\n\n\tconst baseClass = 'block-editor-block-variation-transforms';\n\n\t// Show buttons if there are more than 5 variations because the ToggleGroupControl does not wrap\n\tconst showButtons = variations.length > 5;\n\n\tconst ButtonComponent = showButtons\n\t\t? VariationsButtons\n\t\t: VariationsToggleGroupControl;\n\n\tconst Component = hasUniqueIcons ? ButtonComponent : VariationsDropdown;\n\n\treturn (\n\t\t<Component\n\t\t\tclassName={ baseClass }\n\t\t\tonSelectVariation={ onSelectVariation }\n\t\t\tselectedValue={ selectedValue }\n\t\t\tvariations={ variations }\n\t\t/>\n\t);\n}\n\nexport default __experimentalBlockVariationTransforms;\n"],"mappings":"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","ignoreList":[]}
@@ -255,14 +255,10 @@ function BorderPanel({
255
255
  children: [hasBorderControl ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.BaseControl.VisualLabel, {
256
256
  as: "legend",
257
257
  children: (0, _i18n.__)('Shadow')
258
- }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalItemGroup, {
259
- isBordered: true,
260
- isSeparated: true,
261
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_shadowPanelComponents.ShadowPopover, {
262
- shadow: shadow,
263
- onShadowChange: setShadow,
264
- settings: settings
265
- })
258
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_shadowPanelComponents.ShadowPopover, {
259
+ shadow: shadow,
260
+ onShadowChange: setShadow,
261
+ settings: settings
266
262
  })]
267
263
  })]
268
264
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_i18n","_borderRadiusControl","_interopRequireDefault","_hooks","_utils","_object","_border","_shadowPanelComponents","_jsxRuntime","useHasBorderPanel","settings","controls","Object","values","useHasBorderPanelControls","some","Boolean","hasBorderColor","useHasBorderColorControl","hasBorderRadius","useHasBorderRadiusControl","hasBorderStyle","useHasBorderStyleControl","hasBorderWidth","useHasBorderWidthControl","hasShadow","useHasShadowControl","border","color","radius","style","width","shadows","useShadowPresets","shadow","length","BorderToolsPanel","resetAllFilter","onChange","value","panelId","children","label","dropdownMenuProps","useToolsPanelDropdownMenuProps","resetAll","updatedValue","jsx","__experimentalToolsPanel","DEFAULT_CONTROLS","BorderPanel","as","Wrapper","inheritedValue","name","defaultControls","_settings$shadow$pres","_ref","_ref2","_shadowPresets$custom","colors","useColorsPerOrigin","decodeValue","useCallback","rawValue","getValueFromVariable","encodeColorValue","colorValue","allColors","flatMap","originColors","colorObject","find","slug","useMemo","hasSplitBorders","borderValue","forEach","side","undefined","setBorder","newBorder","showBorderColor","showBorderStyle","showBorderWidth","showBorderRadius","borderRadiusValues","setBorderRadius","newBorderRadius","borderValues","entries","hasShadowControl","shadowPresets","presets","mergedShadowPresets","custom","theme","default","setShadow","newValue","shadowName","setImmutably","resetShadow","resetBorder","onBorderChange","updatedBorder","previousValue","showBorderByDefault","hasBorderControl","useBorderPanelLabel","blockName","jsxs","__experimentalToolsPanelItem","hasValue","isDefinedBorder","__","onDeselect","isShownByDefault","BorderBoxControl","enableAlpha","enableStyle","popoverOffset","popoverPlacement","__experimentalIsRenderedInSidebar","size","hideLabelFromVision","BaseControl","VisualLabel","__experimentalItemGroup","isBordered","isSeparated","ShadowPopover","onShadowChange"],"sources":["@wordpress/block-editor/src/components/global-styles/border-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBorderBoxControl,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n\t__experimentalIsDefinedBorder as isDefinedBorder,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\tBaseControl,\n} from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BorderRadiusControl from '../border-radius-control';\nimport { useColorsPerOrigin } from './hooks';\nimport { getValueFromVariable, useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\nimport { useBorderPanelLabel } from '../../hooks/border';\nimport { ShadowPopover, useShadowPresets } from './shadow-panel-components';\n\nexport function useHasBorderPanel( settings ) {\n\tconst controls = Object.values( useHasBorderPanelControls( settings ) );\n\treturn controls.some( Boolean );\n}\n\nexport function useHasBorderPanelControls( settings ) {\n\tconst controls = {\n\t\thasBorderColor: useHasBorderColorControl( settings ),\n\t\thasBorderRadius: useHasBorderRadiusControl( settings ),\n\t\thasBorderStyle: useHasBorderStyleControl( settings ),\n\t\thasBorderWidth: useHasBorderWidthControl( settings ),\n\t\thasShadow: useHasShadowControl( settings ),\n\t};\n\n\treturn controls;\n}\n\nfunction useHasBorderColorControl( settings ) {\n\treturn settings?.border?.color;\n}\n\nfunction useHasBorderRadiusControl( settings ) {\n\treturn settings?.border?.radius;\n}\n\nfunction useHasBorderStyleControl( settings ) {\n\treturn settings?.border?.style;\n}\n\nfunction useHasBorderWidthControl( settings ) {\n\treturn settings?.border?.width;\n}\n\nfunction useHasShadowControl( settings ) {\n\tconst shadows = useShadowPresets( settings );\n\treturn !! settings?.shadow && shadows.length > 0;\n}\n\nfunction BorderToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n\tlabel,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tradius: true,\n\tcolor: true,\n\twidth: true,\n\tshadow: true,\n};\n\nexport default function BorderPanel( {\n\tas: Wrapper = BorderToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tname,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst decodeValue = useCallback(\n\t\t( rawValue ) => getValueFromVariable( { settings }, '', rawValue ),\n\t\t[ settings ]\n\t);\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 border = useMemo( () => {\n\t\tif ( hasSplitBorders( inheritedValue?.border ) ) {\n\t\t\tconst borderValue = { ...inheritedValue?.border };\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tborderValue[ side ] = {\n\t\t\t\t\t...borderValue[ side ],\n\t\t\t\t\tcolor: decodeValue( borderValue[ side ]?.color ),\n\t\t\t\t};\n\t\t\t} );\n\t\t\treturn borderValue;\n\t\t}\n\t\treturn {\n\t\t\t...inheritedValue?.border,\n\t\t\tcolor: inheritedValue?.border?.color\n\t\t\t\t? decodeValue( inheritedValue?.border?.color )\n\t\t\t\t: undefined,\n\t\t};\n\t}, [ inheritedValue?.border, decodeValue ] );\n\tconst setBorder = ( newBorder ) =>\n\t\tonChange( { ...value, border: newBorder } );\n\tconst showBorderColor = useHasBorderColorControl( settings );\n\tconst showBorderStyle = useHasBorderStyleControl( settings );\n\tconst showBorderWidth = useHasBorderWidthControl( settings );\n\n\t// Border radius.\n\tconst showBorderRadius = useHasBorderRadiusControl( settings );\n\tconst borderRadiusValues = decodeValue( border?.radius );\n\tconst setBorderRadius = ( newBorderRadius ) =>\n\t\tsetBorder( { ...border, radius: newBorderRadius } );\n\tconst hasBorderRadius = () => {\n\t\tconst borderValues = value?.border?.radius;\n\t\tif ( typeof borderValues === 'object' ) {\n\t\t\treturn Object.entries( borderValues ).some( Boolean );\n\t\t}\n\t\treturn !! borderValues;\n\t};\n\tconst hasShadowControl = useHasShadowControl( settings );\n\n\t// Shadow\n\tconst shadow = decodeValue( inheritedValue?.shadow );\n\tconst shadowPresets = settings?.shadow?.presets ?? {};\n\tconst mergedShadowPresets =\n\t\tshadowPresets.custom ??\n\t\tshadowPresets.theme ??\n\t\tshadowPresets.default ??\n\t\t[];\n\tconst setShadow = ( newValue ) => {\n\t\tconst slug = mergedShadowPresets?.find(\n\t\t\t( { shadow: shadowName } ) => shadowName === newValue\n\t\t)?.slug;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'shadow' ],\n\t\t\t\tslug ? `var:preset|shadow|${ slug }` : newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasShadow = () => !! value?.shadow;\n\tconst resetShadow = () => setShadow( undefined );\n\n\tconst resetBorder = () => {\n\t\tif ( hasBorderRadius() ) {\n\t\t\treturn setBorder( { radius: value?.border?.radius } );\n\t\t}\n\n\t\tsetBorder( undefined );\n\t};\n\n\tconst onBorderChange = ( newBorder ) => {\n\t\t// Ensure we have a visible border style when a border width or\n\t\t// color is being selected.\n\t\tconst updatedBorder = { ...newBorder };\n\n\t\tif ( hasSplitBorders( updatedBorder ) ) {\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tif ( updatedBorder[ side ] ) {\n\t\t\t\t\tupdatedBorder[ side ] = {\n\t\t\t\t\t\t...updatedBorder[ side ],\n\t\t\t\t\t\tcolor: encodeColorValue( updatedBorder[ side ]?.color ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} );\n\t\t} else if ( updatedBorder ) {\n\t\t\tupdatedBorder.color = encodeColorValue( updatedBorder.color );\n\t\t}\n\n\t\t// As radius is maintained separately to color, style, and width\n\t\t// maintain its value. Undefined values here will be cleaned when\n\t\t// global styles are saved.\n\t\tsetBorder( { radius: border?.radius, ...updatedBorder } );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tborder: undefined,\n\t\t\tshadow: undefined,\n\t\t};\n\t}, [] );\n\n\tconst showBorderByDefault =\n\t\tdefaultControls?.color || defaultControls?.width;\n\n\tconst hasBorderControl =\n\t\tshowBorderColor ||\n\t\tshowBorderStyle ||\n\t\tshowBorderWidth ||\n\t\tshowBorderRadius;\n\n\tconst label = useBorderPanelLabel( {\n\t\tblockName: name,\n\t\thasShadowControl,\n\t\thasBorderControl,\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\tlabel={ label }\n\t\t>\n\t\t\t{ ( showBorderWidth || showBorderColor ) && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => isDefinedBorder( value?.border ) }\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\tonDeselect={ () => resetBorder() }\n\t\t\t\t\tisShownByDefault={ showBorderByDefault }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderBoxControl\n\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\tenableAlpha\n\t\t\t\t\t\tenableStyle={ showBorderStyle }\n\t\t\t\t\t\tonChange={ onBorderChange }\n\t\t\t\t\t\tpopoverOffset={ 40 }\n\t\t\t\t\t\tpopoverPlacement=\"left-start\"\n\t\t\t\t\t\tvalue={ border }\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\thideLabelFromVision={ ! hasShadowControl }\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showBorderRadius && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasBorderRadius }\n\t\t\t\t\tlabel={ __( 'Radius' ) }\n\t\t\t\t\tonDeselect={ () => setBorderRadius( undefined ) }\n\t\t\t\t\tisShownByDefault={ defaultControls.radius }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderRadiusControl\n\t\t\t\t\t\tvalues={ borderRadiusValues }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tsetBorderRadius( newValue || undefined );\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{ hasShadowControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Shadow' ) }\n\t\t\t\t\thasValue={ hasShadow }\n\t\t\t\t\tonDeselect={ resetShadow }\n\t\t\t\t\tisShownByDefault={ defaultControls.shadow }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ hasBorderControl ? (\n\t\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t\t{ __( 'Shadow' ) }\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t) : null }\n\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\t\tonShadowChange={ setShadow }\n\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_element","_i18n","_borderRadiusControl","_interopRequireDefault","_hooks","_utils","_object","_border","_shadowPanelComponents","_jsxRuntime","useHasBorderPanel","settings","controls","Object","values","useHasBorderPanelControls","some","Boolean","hasBorderColor","useHasBorderColorControl","hasBorderRadius","useHasBorderRadiusControl","hasBorderStyle","useHasBorderStyleControl","hasBorderWidth","useHasBorderWidthControl","hasShadow","useHasShadowControl","border","color","radius","style","width","shadows","useShadowPresets","shadow","length","BorderToolsPanel","resetAllFilter","onChange","value","panelId","children","label","dropdownMenuProps","useToolsPanelDropdownMenuProps","resetAll","updatedValue","jsx","__experimentalToolsPanel","DEFAULT_CONTROLS","BorderPanel","as","Wrapper","inheritedValue","name","defaultControls","_settings$shadow$pres","_ref","_ref2","_shadowPresets$custom","colors","useColorsPerOrigin","decodeValue","useCallback","rawValue","getValueFromVariable","encodeColorValue","colorValue","allColors","flatMap","originColors","colorObject","find","slug","useMemo","hasSplitBorders","borderValue","forEach","side","undefined","setBorder","newBorder","showBorderColor","showBorderStyle","showBorderWidth","showBorderRadius","borderRadiusValues","setBorderRadius","newBorderRadius","borderValues","entries","hasShadowControl","shadowPresets","presets","mergedShadowPresets","custom","theme","default","setShadow","newValue","shadowName","setImmutably","resetShadow","resetBorder","onBorderChange","updatedBorder","previousValue","showBorderByDefault","hasBorderControl","useBorderPanelLabel","blockName","jsxs","__experimentalToolsPanelItem","hasValue","isDefinedBorder","__","onDeselect","isShownByDefault","BorderBoxControl","enableAlpha","enableStyle","popoverOffset","popoverPlacement","__experimentalIsRenderedInSidebar","size","hideLabelFromVision","BaseControl","VisualLabel","ShadowPopover","onShadowChange"],"sources":["@wordpress/block-editor/src/components/global-styles/border-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBorderBoxControl,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n\t__experimentalIsDefinedBorder as isDefinedBorder,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tBaseControl,\n} from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BorderRadiusControl from '../border-radius-control';\nimport { useColorsPerOrigin } from './hooks';\nimport { getValueFromVariable, useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\nimport { useBorderPanelLabel } from '../../hooks/border';\nimport { ShadowPopover, useShadowPresets } from './shadow-panel-components';\n\nexport function useHasBorderPanel( settings ) {\n\tconst controls = Object.values( useHasBorderPanelControls( settings ) );\n\treturn controls.some( Boolean );\n}\n\nexport function useHasBorderPanelControls( settings ) {\n\tconst controls = {\n\t\thasBorderColor: useHasBorderColorControl( settings ),\n\t\thasBorderRadius: useHasBorderRadiusControl( settings ),\n\t\thasBorderStyle: useHasBorderStyleControl( settings ),\n\t\thasBorderWidth: useHasBorderWidthControl( settings ),\n\t\thasShadow: useHasShadowControl( settings ),\n\t};\n\n\treturn controls;\n}\n\nfunction useHasBorderColorControl( settings ) {\n\treturn settings?.border?.color;\n}\n\nfunction useHasBorderRadiusControl( settings ) {\n\treturn settings?.border?.radius;\n}\n\nfunction useHasBorderStyleControl( settings ) {\n\treturn settings?.border?.style;\n}\n\nfunction useHasBorderWidthControl( settings ) {\n\treturn settings?.border?.width;\n}\n\nfunction useHasShadowControl( settings ) {\n\tconst shadows = useShadowPresets( settings );\n\treturn !! settings?.shadow && shadows.length > 0;\n}\n\nfunction BorderToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n\tlabel,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tradius: true,\n\tcolor: true,\n\twidth: true,\n\tshadow: true,\n};\n\nexport default function BorderPanel( {\n\tas: Wrapper = BorderToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tname,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst decodeValue = useCallback(\n\t\t( rawValue ) => getValueFromVariable( { settings }, '', rawValue ),\n\t\t[ settings ]\n\t);\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 border = useMemo( () => {\n\t\tif ( hasSplitBorders( inheritedValue?.border ) ) {\n\t\t\tconst borderValue = { ...inheritedValue?.border };\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tborderValue[ side ] = {\n\t\t\t\t\t...borderValue[ side ],\n\t\t\t\t\tcolor: decodeValue( borderValue[ side ]?.color ),\n\t\t\t\t};\n\t\t\t} );\n\t\t\treturn borderValue;\n\t\t}\n\t\treturn {\n\t\t\t...inheritedValue?.border,\n\t\t\tcolor: inheritedValue?.border?.color\n\t\t\t\t? decodeValue( inheritedValue?.border?.color )\n\t\t\t\t: undefined,\n\t\t};\n\t}, [ inheritedValue?.border, decodeValue ] );\n\tconst setBorder = ( newBorder ) =>\n\t\tonChange( { ...value, border: newBorder } );\n\tconst showBorderColor = useHasBorderColorControl( settings );\n\tconst showBorderStyle = useHasBorderStyleControl( settings );\n\tconst showBorderWidth = useHasBorderWidthControl( settings );\n\n\t// Border radius.\n\tconst showBorderRadius = useHasBorderRadiusControl( settings );\n\tconst borderRadiusValues = decodeValue( border?.radius );\n\tconst setBorderRadius = ( newBorderRadius ) =>\n\t\tsetBorder( { ...border, radius: newBorderRadius } );\n\tconst hasBorderRadius = () => {\n\t\tconst borderValues = value?.border?.radius;\n\t\tif ( typeof borderValues === 'object' ) {\n\t\t\treturn Object.entries( borderValues ).some( Boolean );\n\t\t}\n\t\treturn !! borderValues;\n\t};\n\tconst hasShadowControl = useHasShadowControl( settings );\n\n\t// Shadow\n\tconst shadow = decodeValue( inheritedValue?.shadow );\n\tconst shadowPresets = settings?.shadow?.presets ?? {};\n\tconst mergedShadowPresets =\n\t\tshadowPresets.custom ??\n\t\tshadowPresets.theme ??\n\t\tshadowPresets.default ??\n\t\t[];\n\tconst setShadow = ( newValue ) => {\n\t\tconst slug = mergedShadowPresets?.find(\n\t\t\t( { shadow: shadowName } ) => shadowName === newValue\n\t\t)?.slug;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'shadow' ],\n\t\t\t\tslug ? `var:preset|shadow|${ slug }` : newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasShadow = () => !! value?.shadow;\n\tconst resetShadow = () => setShadow( undefined );\n\n\tconst resetBorder = () => {\n\t\tif ( hasBorderRadius() ) {\n\t\t\treturn setBorder( { radius: value?.border?.radius } );\n\t\t}\n\n\t\tsetBorder( undefined );\n\t};\n\n\tconst onBorderChange = ( newBorder ) => {\n\t\t// Ensure we have a visible border style when a border width or\n\t\t// color is being selected.\n\t\tconst updatedBorder = { ...newBorder };\n\n\t\tif ( hasSplitBorders( updatedBorder ) ) {\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tif ( updatedBorder[ side ] ) {\n\t\t\t\t\tupdatedBorder[ side ] = {\n\t\t\t\t\t\t...updatedBorder[ side ],\n\t\t\t\t\t\tcolor: encodeColorValue( updatedBorder[ side ]?.color ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} );\n\t\t} else if ( updatedBorder ) {\n\t\t\tupdatedBorder.color = encodeColorValue( updatedBorder.color );\n\t\t}\n\n\t\t// As radius is maintained separately to color, style, and width\n\t\t// maintain its value. Undefined values here will be cleaned when\n\t\t// global styles are saved.\n\t\tsetBorder( { radius: border?.radius, ...updatedBorder } );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tborder: undefined,\n\t\t\tshadow: undefined,\n\t\t};\n\t}, [] );\n\n\tconst showBorderByDefault =\n\t\tdefaultControls?.color || defaultControls?.width;\n\n\tconst hasBorderControl =\n\t\tshowBorderColor ||\n\t\tshowBorderStyle ||\n\t\tshowBorderWidth ||\n\t\tshowBorderRadius;\n\n\tconst label = useBorderPanelLabel( {\n\t\tblockName: name,\n\t\thasShadowControl,\n\t\thasBorderControl,\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\tlabel={ label }\n\t\t>\n\t\t\t{ ( showBorderWidth || showBorderColor ) && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => isDefinedBorder( value?.border ) }\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\tonDeselect={ () => resetBorder() }\n\t\t\t\t\tisShownByDefault={ showBorderByDefault }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderBoxControl\n\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\tenableAlpha\n\t\t\t\t\t\tenableStyle={ showBorderStyle }\n\t\t\t\t\t\tonChange={ onBorderChange }\n\t\t\t\t\t\tpopoverOffset={ 40 }\n\t\t\t\t\t\tpopoverPlacement=\"left-start\"\n\t\t\t\t\t\tvalue={ border }\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\thideLabelFromVision={ ! hasShadowControl }\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showBorderRadius && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasBorderRadius }\n\t\t\t\t\tlabel={ __( 'Radius' ) }\n\t\t\t\t\tonDeselect={ () => setBorderRadius( undefined ) }\n\t\t\t\t\tisShownByDefault={ defaultControls.radius }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderRadiusControl\n\t\t\t\t\t\tvalues={ borderRadiusValues }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tsetBorderRadius( newValue || undefined );\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{ hasShadowControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Shadow' ) }\n\t\t\t\t\thasValue={ hasShadow }\n\t\t\t\t\tonDeselect={ resetShadow }\n\t\t\t\t\tisShownByDefault={ defaultControls.shadow }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ hasBorderControl ? (\n\t\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t\t{ __( 'Shadow' ) }\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t) : null }\n\n\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\tonShadowChange={ setShadow }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAQA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAKA,IAAAG,oBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,sBAAA,GAAAT,OAAA;AAA4E,IAAAU,WAAA,GAAAV,OAAA;AAtB5E;AACA;AACA;;AAYA;AACA;AACA;;AAQO,SAASW,iBAAiBA,CAAEC,QAAQ,EAAG;EAC7C,MAAMC,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAAEC,yBAAyB,CAAEJ,QAAS,CAAE,CAAC;EACvE,OAAOC,QAAQ,CAACI,IAAI,CAAEC,OAAQ,CAAC;AAChC;AAEO,SAASF,yBAAyBA,CAAEJ,QAAQ,EAAG;EACrD,MAAMC,QAAQ,GAAG;IAChBM,cAAc,EAAEC,wBAAwB,CAAER,QAAS,CAAC;IACpDS,eAAe,EAAEC,yBAAyB,CAAEV,QAAS,CAAC;IACtDW,cAAc,EAAEC,wBAAwB,CAAEZ,QAAS,CAAC;IACpDa,cAAc,EAAEC,wBAAwB,CAAEd,QAAS,CAAC;IACpDe,SAAS,EAAEC,mBAAmB,CAAEhB,QAAS;EAC1C,CAAC;EAED,OAAOC,QAAQ;AAChB;AAEA,SAASO,wBAAwBA,CAAER,QAAQ,EAAG;EAC7C,OAAOA,QAAQ,EAAEiB,MAAM,EAAEC,KAAK;AAC/B;AAEA,SAASR,yBAAyBA,CAAEV,QAAQ,EAAG;EAC9C,OAAOA,QAAQ,EAAEiB,MAAM,EAAEE,MAAM;AAChC;AAEA,SAASP,wBAAwBA,CAAEZ,QAAQ,EAAG;EAC7C,OAAOA,QAAQ,EAAEiB,MAAM,EAAEG,KAAK;AAC/B;AAEA,SAASN,wBAAwBA,CAAEd,QAAQ,EAAG;EAC7C,OAAOA,QAAQ,EAAEiB,MAAM,EAAEI,KAAK;AAC/B;AAEA,SAASL,mBAAmBA,CAAEhB,QAAQ,EAAG;EACxC,MAAMsB,OAAO,GAAG,IAAAC,uCAAgB,EAAEvB,QAAS,CAAC;EAC5C,OAAO,CAAC,CAAEA,QAAQ,EAAEwB,MAAM,IAAIF,OAAO,CAACG,MAAM,GAAG,CAAC;AACjD;AAEA,SAASC,gBAAgBA,CAAE;EAC1BC,cAAc;EACdC,QAAQ;EACRC,KAAK;EACLC,OAAO;EACPC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAMC,iBAAiB,GAAG,IAAAC,qCAA8B,EAAC,CAAC;EAC1D,MAAMC,QAAQ,GAAGA,CAAA,KAAM;IACtB,MAAMC,YAAY,GAAGT,cAAc,CAAEE,KAAM,CAAC;IAC5CD,QAAQ,CAAEQ,YAAa,CAAC;EACzB,CAAC;EAED,oBACC,IAAAtC,WAAA,CAAAuC,GAAA,EAAClD,WAAA,CAAAmD,wBAAU;IACVN,KAAK,EAAGA,KAAO;IACfG,QAAQ,EAAGA,QAAU;IACrBL,OAAO,EAAGA,OAAS;IACnBG,iBAAiB,EAAGA,iBAAmB;IAAAF,QAAA,EAErCA;EAAQ,CACC,CAAC;AAEf;AAEA,MAAMQ,gBAAgB,GAAG;EACxBpB,MAAM,EAAE,IAAI;EACZD,KAAK,EAAE,IAAI;EACXG,KAAK,EAAE,IAAI;EACXG,MAAM,EAAE;AACT,CAAC;AAEc,SAASgB,WAAWA,CAAE;EACpCC,EAAE,EAAEC,OAAO,GAAGhB,gBAAgB;EAC9BG,KAAK;EACLD,QAAQ;EACRe,cAAc,GAAGd,KAAK;EACtB7B,QAAQ;EACR8B,OAAO;EACPc,IAAI;EACJC,eAAe,GAAGN;AACnB,CAAC,EAAG;EAAA,IAAAO,qBAAA,EAAAC,IAAA,EAAAC,KAAA,EAAAC,qBAAA;EACH,MAAMC,MAAM,GAAG,IAAAC,yBAAkB,EAAEnD,QAAS,CAAC;EAC7C,MAAMoD,WAAW,GAAG,IAAAC,oBAAW,EAC5BC,QAAQ,IAAM,IAAAC,2BAAoB,EAAE;IAAEvD;EAAS,CAAC,EAAE,EAAE,EAAEsD,QAAS,CAAC,EAClE,CAAEtD,QAAQ,CACX,CAAC;EACD,MAAMwD,gBAAgB,GAAKC,UAAU,IAAM;IAC1C,MAAMC,SAAS,GAAGR,MAAM,CAACS,OAAO,CAC/B,CAAE;MAAET,MAAM,EAAEU;IAAa,CAAC,KAAMA,YACjC,CAAC;IACD,MAAMC,WAAW,GAAGH,SAAS,CAACI,IAAI,CACjC,CAAE;MAAE5C;IAAM,CAAC,KAAMA,KAAK,KAAKuC,UAC5B,CAAC;IACD,OAAOI,WAAW,GACf,mBAAmB,GAAGA,WAAW,CAACE,IAAI,GACtCN,UAAU;EACd,CAAC;EACD,MAAMxC,MAAM,GAAG,IAAA+C,gBAAO,EAAE,MAAM;IAC7B,IAAK,IAAAC,yCAAe,EAAEtB,cAAc,EAAE1B,MAAO,CAAC,EAAG;MAChD,MAAMiD,WAAW,GAAG;QAAE,GAAGvB,cAAc,EAAE1B;MAAO,CAAC;MACjD,CAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAE,CAACkD,OAAO,CAAIC,IAAI,IAAM;QACzDF,WAAW,CAAEE,IAAI,CAAE,GAAG;UACrB,GAAGF,WAAW,CAAEE,IAAI,CAAE;UACtBlD,KAAK,EAAEkC,WAAW,CAAEc,WAAW,CAAEE,IAAI,CAAE,EAAElD,KAAM;QAChD,CAAC;MACF,CAAE,CAAC;MACH,OAAOgD,WAAW;IACnB;IACA,OAAO;MACN,GAAGvB,cAAc,EAAE1B,MAAM;MACzBC,KAAK,EAAEyB,cAAc,EAAE1B,MAAM,EAAEC,KAAK,GACjCkC,WAAW,CAAET,cAAc,EAAE1B,MAAM,EAAEC,KAAM,CAAC,GAC5CmD;IACJ,CAAC;EACF,CAAC,EAAE,CAAE1B,cAAc,EAAE1B,MAAM,EAAEmC,WAAW,CAAG,CAAC;EAC5C,MAAMkB,SAAS,GAAKC,SAAS,IAC5B3C,QAAQ,CAAE;IAAE,GAAGC,KAAK;IAAEZ,MAAM,EAAEsD;EAAU,CAAE,CAAC;EAC5C,MAAMC,eAAe,GAAGhE,wBAAwB,CAAER,QAAS,CAAC;EAC5D,MAAMyE,eAAe,GAAG7D,wBAAwB,CAAEZ,QAAS,CAAC;EAC5D,MAAM0E,eAAe,GAAG5D,wBAAwB,CAAEd,QAAS,CAAC;;EAE5D;EACA,MAAM2E,gBAAgB,GAAGjE,yBAAyB,CAAEV,QAAS,CAAC;EAC9D,MAAM4E,kBAAkB,GAAGxB,WAAW,CAAEnC,MAAM,EAAEE,MAAO,CAAC;EACxD,MAAM0D,eAAe,GAAKC,eAAe,IACxCR,SAAS,CAAE;IAAE,GAAGrD,MAAM;IAAEE,MAAM,EAAE2D;EAAgB,CAAE,CAAC;EACpD,MAAMrE,eAAe,GAAGA,CAAA,KAAM;IAC7B,MAAMsE,YAAY,GAAGlD,KAAK,EAAEZ,MAAM,EAAEE,MAAM;IAC1C,IAAK,OAAO4D,YAAY,KAAK,QAAQ,EAAG;MACvC,OAAO7E,MAAM,CAAC8E,OAAO,CAAED,YAAa,CAAC,CAAC1E,IAAI,CAAEC,OAAQ,CAAC;IACtD;IACA,OAAO,CAAC,CAAEyE,YAAY;EACvB,CAAC;EACD,MAAME,gBAAgB,GAAGjE,mBAAmB,CAAEhB,QAAS,CAAC;;EAExD;EACA,MAAMwB,MAAM,GAAG4B,WAAW,CAAET,cAAc,EAAEnB,MAAO,CAAC;EACpD,MAAM0D,aAAa,IAAApC,qBAAA,GAAG9C,QAAQ,EAAEwB,MAAM,EAAE2D,OAAO,cAAArC,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;EACrD,MAAMsC,mBAAmB,IAAArC,IAAA,IAAAC,KAAA,IAAAC,qBAAA,GACxBiC,aAAa,CAACG,MAAM,cAAApC,qBAAA,cAAAA,qBAAA,GACpBiC,aAAa,CAACI,KAAK,cAAAtC,KAAA,cAAAA,KAAA,GACnBkC,aAAa,CAACK,OAAO,cAAAxC,IAAA,cAAAA,IAAA,GACrB,EAAE;EACH,MAAMyC,SAAS,GAAKC,QAAQ,IAAM;IACjC,MAAM1B,IAAI,GAAGqB,mBAAmB,EAAEtB,IAAI,CACrC,CAAE;MAAEtC,MAAM,EAAEkE;IAAW,CAAC,KAAMA,UAAU,KAAKD,QAC9C,CAAC,EAAE1B,IAAI;IAEPnC,QAAQ,CACP,IAAA+D,oBAAY,EACX9D,KAAK,EACL,CAAE,QAAQ,CAAE,EACZkC,IAAI,GAAG,qBAAsBA,IAAI,EAAG,GAAG0B,QAAQ,IAAIpB,SACpD,CACD,CAAC;EACF,CAAC;EACD,MAAMtD,SAAS,GAAGA,CAAA,KAAM,CAAC,CAAEc,KAAK,EAAEL,MAAM;EACxC,MAAMoE,WAAW,GAAGA,CAAA,KAAMJ,SAAS,CAAEnB,SAAU,CAAC;EAEhD,MAAMwB,WAAW,GAAGA,CAAA,KAAM;IACzB,IAAKpF,eAAe,CAAC,CAAC,EAAG;MACxB,OAAO6D,SAAS,CAAE;QAAEnD,MAAM,EAAEU,KAAK,EAAEZ,MAAM,EAAEE;MAAO,CAAE,CAAC;IACtD;IAEAmD,SAAS,CAAED,SAAU,CAAC;EACvB,CAAC;EAED,MAAMyB,cAAc,GAAKvB,SAAS,IAAM;IACvC;IACA;IACA,MAAMwB,aAAa,GAAG;MAAE,GAAGxB;IAAU,CAAC;IAEtC,IAAK,IAAAN,yCAAe,EAAE8B,aAAc,CAAC,EAAG;MACvC,CAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAE,CAAC5B,OAAO,CAAIC,IAAI,IAAM;QACzD,IAAK2B,aAAa,CAAE3B,IAAI,CAAE,EAAG;UAC5B2B,aAAa,CAAE3B,IAAI,CAAE,GAAG;YACvB,GAAG2B,aAAa,CAAE3B,IAAI,CAAE;YACxBlD,KAAK,EAAEsC,gBAAgB,CAAEuC,aAAa,CAAE3B,IAAI,CAAE,EAAElD,KAAM;UACvD,CAAC;QACF;MACD,CAAE,CAAC;IACJ,CAAC,MAAM,IAAK6E,aAAa,EAAG;MAC3BA,aAAa,CAAC7E,KAAK,GAAGsC,gBAAgB,CAAEuC,aAAa,CAAC7E,KAAM,CAAC;IAC9D;;IAEA;IACA;IACA;IACAoD,SAAS,CAAE;MAAEnD,MAAM,EAAEF,MAAM,EAAEE,MAAM;MAAE,GAAG4E;IAAc,CAAE,CAAC;EAC1D,CAAC;EAED,MAAMpE,cAAc,GAAG,IAAA0B,oBAAW,EAAI2C,aAAa,IAAM;IACxD,OAAO;MACN,GAAGA,aAAa;MAChB/E,MAAM,EAAEoD,SAAS;MACjB7C,MAAM,EAAE6C;IACT,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM4B,mBAAmB,GACxBpD,eAAe,EAAE3B,KAAK,IAAI2B,eAAe,EAAExB,KAAK;EAEjD,MAAM6E,gBAAgB,GACrB1B,eAAe,IACfC,eAAe,IACfC,eAAe,IACfC,gBAAgB;EAEjB,MAAM3C,KAAK,GAAG,IAAAmE,2BAAmB,EAAE;IAClCC,SAAS,EAAExD,IAAI;IACfqC,gBAAgB;IAChBiB;EACD,CAAE,CAAC;EAEH,oBACC,IAAApG,WAAA,CAAAuG,IAAA,EAAC3D,OAAO;IACPf,cAAc,EAAGA,cAAgB;IACjCE,KAAK,EAAGA,KAAO;IACfD,QAAQ,EAAGA,QAAU;IACrBE,OAAO,EAAGA,OAAS;IACnBE,KAAK,EAAGA,KAAO;IAAAD,QAAA,GAEb,CAAE2C,eAAe,IAAIF,eAAe,kBACrC,IAAA1E,WAAA,CAAAuC,GAAA,EAAClD,WAAA,CAAAmH,4BAAc;MACdC,QAAQ,EAAGA,CAAA,KAAM,IAAAC,yCAAe,EAAE3E,KAAK,EAAEZ,MAAO,CAAG;MACnDe,KAAK,EAAG,IAAAyE,QAAE,EAAE,QAAS,CAAG;MACxBC,UAAU,EAAGA,CAAA,KAAMb,WAAW,CAAC,CAAG;MAClCc,gBAAgB,EAAGV,mBAAqB;MACxCnE,OAAO,EAAGA,OAAS;MAAAC,QAAA,eAEnB,IAAAjC,WAAA,CAAAuC,GAAA,EAAClD,WAAA,CAAAyH,gBAAgB;QAChB1D,MAAM,EAAGA,MAAQ;QACjB2D,WAAW;QACXC,WAAW,EAAGrC,eAAiB;QAC/B7C,QAAQ,EAAGkE,cAAgB;QAC3BiB,aAAa,EAAG,EAAI;QACpBC,gBAAgB,EAAC,YAAY;QAC7BnF,KAAK,EAAGZ,MAAQ;QAChBgG,iCAAiC;QACjCC,IAAI,EAAC,kBAAkB;QACvBC,mBAAmB,EAAG,CAAElC,gBAAkB;QAC1CjD,KAAK,EAAG,IAAAyE,QAAE,EAAE,QAAS;MAAG,CACxB;IAAC,CACa,CAChB,EACC9B,gBAAgB,iBACjB,IAAA7E,WAAA,CAAAuC,GAAA,EAAClD,WAAA,CAAAmH,4BAAc;MACdC,QAAQ,EAAG9F,eAAiB;MAC5BuB,KAAK,EAAG,IAAAyE,QAAE,EAAE,QAAS,CAAG;MACxBC,UAAU,EAAGA,CAAA,KAAM7B,eAAe,CAAER,SAAU,CAAG;MACjDsC,gBAAgB,EAAG9D,eAAe,CAAC1B,MAAQ;MAC3CW,OAAO,EAAGA,OAAS;MAAAC,QAAA,eAEnB,IAAAjC,WAAA,CAAAuC,GAAA,EAAC9C,oBAAA,CAAAgG,OAAmB;QACnBpF,MAAM,EAAGyE,kBAAoB;QAC7BhD,QAAQ,EAAK6D,QAAQ,IAAM;UAC1BZ,eAAe,CAAEY,QAAQ,IAAIpB,SAAU,CAAC;QACzC;MAAG,CACH;IAAC,CACa,CAChB,EACCY,gBAAgB,iBACjB,IAAAnF,WAAA,CAAAuG,IAAA,EAAClH,WAAA,CAAAmH,4BAAc;MACdtE,KAAK,EAAG,IAAAyE,QAAE,EAAE,QAAS,CAAG;MACxBF,QAAQ,EAAGxF,SAAW;MACtB2F,UAAU,EAAGd,WAAa;MAC1Be,gBAAgB,EAAG9D,eAAe,CAACrB,MAAQ;MAC3CM,OAAO,EAAGA,OAAS;MAAAC,QAAA,GAEjBmE,gBAAgB,gBACjB,IAAApG,WAAA,CAAAuC,GAAA,EAAClD,WAAA,CAAAiI,WAAW,CAACC,WAAW;QAAC5E,EAAE,EAAC,QAAQ;QAAAV,QAAA,EACjC,IAAA0E,QAAE,EAAE,QAAS;MAAC,CACQ,CAAC,GACvB,IAAI,eAER,IAAA3G,WAAA,CAAAuC,GAAA,EAACxC,sBAAA,CAAAyH,aAAa;QACb9F,MAAM,EAAGA,MAAQ;QACjB+F,cAAc,EAAG/B,SAAW;QAC5BxF,QAAQ,EAAGA;MAAU,CACrB,CAAC;IAAA,CACa,CAChB;EAAA,CACO,CAAC;AAEZ","ignoreList":[]}
@@ -101,7 +101,7 @@ const renderToggle = (duotone, resetDuotone) => ({
101
101
  const duotoneButtonRef = (0, _element.useRef)(undefined);
102
102
  const toggleProps = {
103
103
  onClick: onToggle,
104
- className: (0, _clsx.default)({
104
+ className: (0, _clsx.default)('block-editor-global-styles-filters-panel__dropdown-toggle', {
105
105
  'is-open': isOpen
106
106
  }),
107
107
  'aria-expanded': isOpen,
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_icons","_utils","_object","_jsxRuntime","EMPTY_ARRAY","useMultiOriginColorPresets","settings","presetSetting","defaultSetting","disableDefault","color","userPresets","custom","themePresets","theme","defaultPresets","default","useMemo","useHasFiltersPanel","useHasDuotoneControl","customDuotone","defaultDuotone","duotone","length","FiltersToolsPanel","resetAllFilter","onChange","value","panelId","children","dropdownMenuProps","useToolsPanelDropdownMenuProps","resetAll","updatedValue","jsx","__experimentalToolsPanel","label","_x","DEFAULT_CONTROLS","popoverProps","placement","offset","shift","className","headerTitle","__","LabeledColorIndicator","indicator","jsxs","__experimentalHStack","justify","__experimentalZStack","isLayered","Flex","expanded","ColorIndicator","DuotoneSwatch","values","FlexItem","title","renderToggle","resetDuotone","onToggle","isOpen","duotoneButtonRef","useRef","undefined","toggleProps","onClick","clsx","ref","removeButtonProps","current","focus","Fragment","Button","__next40pxDefaultSize","size","icon","resetIcon","FiltersPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","getValueFromVariable","hasDuotoneEnabled","duotonePalette","colorPalette","filter","setDuotone","newValue","duotonePreset","find","colors","duotoneValue","slug","setImmutably","hasDuotone","useCallback","previousValue","__experimentalToolsPanelItem","hasValue","onDeselect","isShownByDefault","Dropdown","renderContent","__experimentalDropdownContentWrapper","paddingSize","MenuGroup","DuotonePicker","disableCustomColors","disableCustomDuotone"],"sources":["@wordpress/block-editor/src/components/global-styles/filters-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalHStack as HStack,\n\t__experimentalZStack as ZStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tMenuGroup,\n\tColorIndicator,\n\tDuotonePicker,\n\tDuotoneSwatch,\n\tDropdown,\n\tFlex,\n\tFlexItem,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useCallback, useMemo, useRef } from '@wordpress/element';\nimport { reset as resetIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable, useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst EMPTY_ARRAY = [];\nfunction useMultiOriginColorPresets(\n\tsettings,\n\t{ presetSetting, defaultSetting }\n) {\n\tconst disableDefault = ! settings?.color?.[ defaultSetting ];\n\tconst userPresets =\n\t\tsettings?.color?.[ presetSetting ]?.custom || EMPTY_ARRAY;\n\tconst themePresets =\n\t\tsettings?.color?.[ presetSetting ]?.theme || EMPTY_ARRAY;\n\tconst defaultPresets =\n\t\tsettings?.color?.[ presetSetting ]?.default || EMPTY_ARRAY;\n\treturn useMemo(\n\t\t() => [\n\t\t\t...userPresets,\n\t\t\t...themePresets,\n\t\t\t...( disableDefault ? EMPTY_ARRAY : defaultPresets ),\n\t\t],\n\t\t[ disableDefault, userPresets, themePresets, defaultPresets ]\n\t);\n}\n\nexport function useHasFiltersPanel( settings ) {\n\treturn useHasDuotoneControl( settings );\n}\n\nfunction useHasDuotoneControl( settings ) {\n\treturn (\n\t\tsettings.color.customDuotone ||\n\t\tsettings.color.defaultDuotone ||\n\t\tsettings.color.duotone.length > 0\n\t);\n}\n\nfunction FiltersToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ _x( 'Filters', 'Name for applying graphical effects' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tduotone: true,\n};\n\nconst popoverProps = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-duotone-control__popover',\n\theaderTitle: __( 'Duotone' ),\n};\n\nconst LabeledColorIndicator = ( { indicator, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t<Flex expanded={ false }>\n\t\t\t\t{ indicator === 'unset' || ! indicator ? (\n\t\t\t\t\t<ColorIndicator className=\"block-editor-duotone-control__unset-indicator\" />\n\t\t\t\t) : (\n\t\t\t\t\t<DuotoneSwatch values={ indicator } />\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</ZStack>\n\t\t<FlexItem title={ label }>{ label }</FlexItem>\n\t</HStack>\n);\n\nconst renderToggle =\n\t( duotone, resetDuotone ) =>\n\t( { onToggle, isOpen } ) => {\n\t\tconst duotoneButtonRef = useRef( undefined );\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: clsx( { 'is-open': isOpen } ),\n\t\t\t'aria-expanded': isOpen,\n\t\t\tref: duotoneButtonRef,\n\t\t};\n\n\t\tconst removeButtonProps = {\n\t\t\tonClick: () => {\n\t\t\t\tif ( isOpen ) {\n\t\t\t\t\tonToggle();\n\t\t\t\t}\n\t\t\t\tresetDuotone();\n\t\t\t\t// Return focus to parent button.\n\t\t\t\tduotoneButtonRef.current?.focus();\n\t\t\t},\n\t\t\tclassName: 'block-editor-panel-duotone-settings__reset',\n\t\t\tlabel: __( 'Reset' ),\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button __next40pxDefaultSize { ...toggleProps }>\n\t\t\t\t\t<LabeledColorIndicator\n\t\t\t\t\t\tindicator={ duotone }\n\t\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\t/>\n\t\t\t\t</Button>\n\t\t\t\t{ duotone && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\t\t{ ...removeButtonProps }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\nexport default function FiltersPanel( {\n\tas: Wrapper = FiltersToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Duotone\n\tconst hasDuotoneEnabled = useHasDuotoneControl( settings );\n\tconst duotonePalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'duotone',\n\t\tdefaultSetting: 'defaultDuotone',\n\t} );\n\tconst colorPalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'palette',\n\t\tdefaultSetting: 'defaultPalette',\n\t} );\n\tconst duotone = decodeValue( inheritedValue?.filter?.duotone );\n\tconst setDuotone = ( newValue ) => {\n\t\tconst duotonePreset = duotonePalette.find( ( { colors } ) => {\n\t\t\treturn colors === newValue;\n\t\t} );\n\t\tconst duotoneValue = duotonePreset\n\t\t\t? `var:preset|duotone|${ duotonePreset.slug }`\n\t\t\t: newValue;\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'filter', 'duotone' ], duotoneValue )\n\t\t);\n\t};\n\tconst hasDuotone = () => !! value?.filter?.duotone;\n\tconst resetDuotone = () => setDuotone( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tfilter: {\n\t\t\t\t...previousValue.filter,\n\t\t\t\tduotone: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasDuotoneEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\thasValue={ hasDuotone }\n\t\t\t\t\tonDeselect={ resetDuotone }\n\t\t\t\t\tisShownByDefault={ defaultControls.duotone }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-filters-panel__dropdown\"\n\t\t\t\t\t\trenderToggle={ renderToggle( duotone, resetDuotone ) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<DropdownContentWrapper paddingSize=\"small\">\n\t\t\t\t\t\t\t\t<MenuGroup label={ __( 'Duotone' ) }>\n\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\t\t\t\t\t// TODO: Re-enable both when custom colors are supported for block-level styles.\n\t\t\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t\t\t\tdisableCustomDuotone\n\t\t\t\t\t\t\t\t\t\tvalue={ duotone }\n\t\t\t\t\t\t\t\t\t\tonChange={ setDuotone }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_icons","_utils","_object","_jsxRuntime","EMPTY_ARRAY","useMultiOriginColorPresets","settings","presetSetting","defaultSetting","disableDefault","color","userPresets","custom","themePresets","theme","defaultPresets","default","useMemo","useHasFiltersPanel","useHasDuotoneControl","customDuotone","defaultDuotone","duotone","length","FiltersToolsPanel","resetAllFilter","onChange","value","panelId","children","dropdownMenuProps","useToolsPanelDropdownMenuProps","resetAll","updatedValue","jsx","__experimentalToolsPanel","label","_x","DEFAULT_CONTROLS","popoverProps","placement","offset","shift","className","headerTitle","__","LabeledColorIndicator","indicator","jsxs","__experimentalHStack","justify","__experimentalZStack","isLayered","Flex","expanded","ColorIndicator","DuotoneSwatch","values","FlexItem","title","renderToggle","resetDuotone","onToggle","isOpen","duotoneButtonRef","useRef","undefined","toggleProps","onClick","clsx","ref","removeButtonProps","current","focus","Fragment","Button","__next40pxDefaultSize","size","icon","resetIcon","FiltersPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","getValueFromVariable","hasDuotoneEnabled","duotonePalette","colorPalette","filter","setDuotone","newValue","duotonePreset","find","colors","duotoneValue","slug","setImmutably","hasDuotone","useCallback","previousValue","__experimentalToolsPanelItem","hasValue","onDeselect","isShownByDefault","Dropdown","renderContent","__experimentalDropdownContentWrapper","paddingSize","MenuGroup","DuotonePicker","disableCustomColors","disableCustomDuotone"],"sources":["@wordpress/block-editor/src/components/global-styles/filters-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalHStack as HStack,\n\t__experimentalZStack as ZStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tMenuGroup,\n\tColorIndicator,\n\tDuotonePicker,\n\tDuotoneSwatch,\n\tDropdown,\n\tFlex,\n\tFlexItem,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useCallback, useMemo, useRef } from '@wordpress/element';\nimport { reset as resetIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable, useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst EMPTY_ARRAY = [];\nfunction useMultiOriginColorPresets(\n\tsettings,\n\t{ presetSetting, defaultSetting }\n) {\n\tconst disableDefault = ! settings?.color?.[ defaultSetting ];\n\tconst userPresets =\n\t\tsettings?.color?.[ presetSetting ]?.custom || EMPTY_ARRAY;\n\tconst themePresets =\n\t\tsettings?.color?.[ presetSetting ]?.theme || EMPTY_ARRAY;\n\tconst defaultPresets =\n\t\tsettings?.color?.[ presetSetting ]?.default || EMPTY_ARRAY;\n\treturn useMemo(\n\t\t() => [\n\t\t\t...userPresets,\n\t\t\t...themePresets,\n\t\t\t...( disableDefault ? EMPTY_ARRAY : defaultPresets ),\n\t\t],\n\t\t[ disableDefault, userPresets, themePresets, defaultPresets ]\n\t);\n}\n\nexport function useHasFiltersPanel( settings ) {\n\treturn useHasDuotoneControl( settings );\n}\n\nfunction useHasDuotoneControl( settings ) {\n\treturn (\n\t\tsettings.color.customDuotone ||\n\t\tsettings.color.defaultDuotone ||\n\t\tsettings.color.duotone.length > 0\n\t);\n}\n\nfunction FiltersToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ _x( 'Filters', 'Name for applying graphical effects' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tduotone: true,\n};\n\nconst popoverProps = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-duotone-control__popover',\n\theaderTitle: __( 'Duotone' ),\n};\n\nconst LabeledColorIndicator = ( { indicator, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t<Flex expanded={ false }>\n\t\t\t\t{ indicator === 'unset' || ! indicator ? (\n\t\t\t\t\t<ColorIndicator className=\"block-editor-duotone-control__unset-indicator\" />\n\t\t\t\t) : (\n\t\t\t\t\t<DuotoneSwatch values={ indicator } />\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</ZStack>\n\t\t<FlexItem title={ label }>{ label }</FlexItem>\n\t</HStack>\n);\n\nconst renderToggle =\n\t( duotone, resetDuotone ) =>\n\t( { onToggle, isOpen } ) => {\n\t\tconst duotoneButtonRef = useRef( undefined );\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles-filters-panel__dropdown-toggle',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\t'aria-expanded': isOpen,\n\t\t\tref: duotoneButtonRef,\n\t\t};\n\n\t\tconst removeButtonProps = {\n\t\t\tonClick: () => {\n\t\t\t\tif ( isOpen ) {\n\t\t\t\t\tonToggle();\n\t\t\t\t}\n\t\t\t\tresetDuotone();\n\t\t\t\t// Return focus to parent button.\n\t\t\t\tduotoneButtonRef.current?.focus();\n\t\t\t},\n\t\t\tclassName: 'block-editor-panel-duotone-settings__reset',\n\t\t\tlabel: __( 'Reset' ),\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button __next40pxDefaultSize { ...toggleProps }>\n\t\t\t\t\t<LabeledColorIndicator\n\t\t\t\t\t\tindicator={ duotone }\n\t\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\t/>\n\t\t\t\t</Button>\n\t\t\t\t{ duotone && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\t\t{ ...removeButtonProps }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\nexport default function FiltersPanel( {\n\tas: Wrapper = FiltersToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Duotone\n\tconst hasDuotoneEnabled = useHasDuotoneControl( settings );\n\tconst duotonePalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'duotone',\n\t\tdefaultSetting: 'defaultDuotone',\n\t} );\n\tconst colorPalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'palette',\n\t\tdefaultSetting: 'defaultPalette',\n\t} );\n\tconst duotone = decodeValue( inheritedValue?.filter?.duotone );\n\tconst setDuotone = ( newValue ) => {\n\t\tconst duotonePreset = duotonePalette.find( ( { colors } ) => {\n\t\t\treturn colors === newValue;\n\t\t} );\n\t\tconst duotoneValue = duotonePreset\n\t\t\t? `var:preset|duotone|${ duotonePreset.slug }`\n\t\t\t: newValue;\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'filter', 'duotone' ], duotoneValue )\n\t\t);\n\t};\n\tconst hasDuotone = () => !! value?.filter?.duotone;\n\tconst resetDuotone = () => setDuotone( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tfilter: {\n\t\t\t\t...previousValue.filter,\n\t\t\t\tduotone: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasDuotoneEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\thasValue={ hasDuotone }\n\t\t\t\t\tonDeselect={ resetDuotone }\n\t\t\t\t\tisShownByDefault={ defaultControls.duotone }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-filters-panel__dropdown\"\n\t\t\t\t\t\trenderToggle={ renderToggle( duotone, resetDuotone ) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<DropdownContentWrapper paddingSize=\"small\">\n\t\t\t\t\t\t\t\t<MenuGroup label={ __( 'Duotone' ) }>\n\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\t\t\t\t\t// TODO: Re-enable both when custom colors are supported for block-level styles.\n\t\t\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t\t\t\tdisableCustomDuotone\n\t\t\t\t\t\t\t\t\t\tvalue={ duotone }\n\t\t\t\t\t\t\t\t\t\tonChange={ setDuotone }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -146,7 +146,7 @@ function renderShadowToggle(shadow, onShadowChange) {
146
146
  const shadowButtonRef = (0, _element.useRef)(undefined);
147
147
  const toggleProps = {
148
148
  onClick: onToggle,
149
- className: (0, _clsx.default)({
149
+ className: (0, _clsx.default)('block-editor-global-styles__shadow-dropdown-toggle', {
150
150
  'is-open': isOpen
151
151
  }),
152
152
  'aria-expanded': isOpen,