@wordpress/block-editor 15.13.2-next.v.202602241322.0 → 15.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +1 -0
- package/build/components/block-quick-navigation/index.cjs +6 -1
- package/build/components/block-quick-navigation/index.cjs.map +3 -3
- package/build/components/block-settings-menu/block-settings-dropdown.cjs +47 -4
- package/build/components/block-settings-menu/block-settings-dropdown.cjs.map +2 -2
- package/build/components/block-settings-menu-controls/index.cjs +1 -0
- package/build/components/block-settings-menu-controls/index.cjs.map +2 -2
- package/build/components/block-styles/index.cjs +68 -57
- package/build/components/block-styles/index.cjs.map +3 -3
- package/build/components/block-styles/menu-items.cjs +10 -16
- package/build/components/block-styles/menu-items.cjs.map +3 -3
- package/build/components/block-switcher/block-styles-menu.cjs +50 -2
- package/build/components/block-switcher/block-styles-menu.cjs.map +3 -3
- package/build/components/block-switcher/block-transformations-menu.cjs +2 -0
- package/build/components/block-switcher/block-transformations-menu.cjs.map +2 -2
- package/build/components/block-switcher/block-variation-transformations.cjs +2 -0
- package/build/components/block-switcher/block-variation-transformations.cjs.map +2 -2
- package/build/components/block-switcher/preview-block-popover.cjs +10 -8
- package/build/components/block-switcher/preview-block-popover.cjs.map +2 -2
- package/build/components/block-toolbar/block-toolbar-icon.cjs +1 -1
- package/build/components/block-toolbar/block-toolbar-icon.cjs.map +2 -2
- package/build/components/block-toolbar/index.cjs +8 -4
- package/build/components/block-toolbar/index.cjs.map +2 -2
- package/build/components/block-visibility/modal.cjs +2 -2
- package/build/components/block-visibility/modal.cjs.map +2 -2
- package/build/components/dimension-control/index.cjs +4 -2
- package/build/components/dimension-control/index.cjs.map +2 -2
- package/build/components/global-styles/dimensions-panel.cjs +6 -3
- package/build/components/global-styles/dimensions-panel.cjs.map +2 -2
- package/build/components/grid/grid-visualizer.cjs +3 -0
- package/build/components/grid/grid-visualizer.cjs.map +2 -2
- package/build/components/list-view/block.cjs +2 -1
- package/build/components/list-view/block.cjs.map +2 -2
- package/build/hooks/auto-inspector-controls.cjs +26 -2
- package/build/hooks/auto-inspector-controls.cjs.map +3 -3
- package/build/index.cjs +2 -0
- package/build/index.cjs.map +2 -2
- package/build/store/reducer.cjs +13 -15
- package/build/store/reducer.cjs.map +2 -2
- package/build-module/components/block-quick-navigation/index.mjs +6 -1
- package/build-module/components/block-quick-navigation/index.mjs.map +2 -2
- package/build-module/components/block-settings-menu/block-settings-dropdown.mjs +48 -5
- package/build-module/components/block-settings-menu/block-settings-dropdown.mjs.map +2 -2
- package/build-module/components/block-settings-menu-controls/index.mjs +1 -0
- package/build-module/components/block-settings-menu-controls/index.mjs.map +2 -2
- package/build-module/components/block-styles/index.mjs +71 -61
- package/build-module/components/block-styles/index.mjs.map +2 -2
- package/build-module/components/block-styles/menu-items.mjs +10 -6
- package/build-module/components/block-styles/menu-items.mjs.map +2 -2
- package/build-module/components/block-switcher/block-styles-menu.mjs +51 -3
- package/build-module/components/block-switcher/block-styles-menu.mjs.map +2 -2
- package/build-module/components/block-switcher/block-transformations-menu.mjs +2 -0
- package/build-module/components/block-switcher/block-transformations-menu.mjs.map +2 -2
- package/build-module/components/block-switcher/block-variation-transformations.mjs +2 -0
- package/build-module/components/block-switcher/block-variation-transformations.mjs.map +2 -2
- package/build-module/components/block-switcher/preview-block-popover.mjs +11 -9
- package/build-module/components/block-switcher/preview-block-popover.mjs.map +2 -2
- package/build-module/components/block-toolbar/block-toolbar-icon.mjs +1 -1
- package/build-module/components/block-toolbar/block-toolbar-icon.mjs.map +2 -2
- package/build-module/components/block-toolbar/index.mjs +8 -4
- package/build-module/components/block-toolbar/index.mjs.map +2 -2
- package/build-module/components/block-visibility/modal.mjs +2 -2
- package/build-module/components/block-visibility/modal.mjs.map +2 -2
- package/build-module/components/dimension-control/index.mjs +4 -2
- package/build-module/components/dimension-control/index.mjs.map +2 -2
- package/build-module/components/global-styles/dimensions-panel.mjs +6 -3
- package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
- package/build-module/components/grid/grid-visualizer.mjs +3 -0
- package/build-module/components/grid/grid-visualizer.mjs.map +2 -2
- package/build-module/components/list-view/block.mjs +2 -1
- package/build-module/components/list-view/block.mjs.map +2 -2
- package/build-module/hooks/auto-inspector-controls.mjs +28 -4
- package/build-module/hooks/auto-inspector-controls.mjs.map +2 -2
- package/build-module/index.mjs +2 -0
- package/build-module/index.mjs.map +3 -3
- package/build-module/store/reducer.mjs +13 -15
- package/build-module/store/reducer.mjs.map +2 -2
- package/build-style/content-rtl.css +12 -7
- package/build-style/content.css +13 -7
- package/build-style/style-rtl.css +0 -13
- package/build-style/style.css +0 -13
- package/package.json +39 -39
- package/src/components/block-list/content.scss +4 -0
- package/src/components/block-quick-navigation/index.js +6 -1
- package/src/components/block-settings-menu/block-settings-dropdown.js +46 -2
- package/src/components/block-settings-menu-controls/index.js +1 -0
- package/src/components/block-styles/index.js +35 -24
- package/src/components/block-styles/menu-items.js +10 -11
- package/src/components/block-styles/style.scss +0 -7
- package/src/components/block-switcher/block-styles-menu.js +47 -1
- package/src/components/block-switcher/block-transformations-menu.js +2 -0
- package/src/components/block-switcher/block-variation-transformations.js +2 -0
- package/src/components/block-switcher/preview-block-popover.js +9 -7
- package/src/components/block-switcher/style.scss +0 -8
- package/src/components/block-toolbar/block-toolbar-icon.js +6 -1
- package/src/components/block-toolbar/index.js +7 -2
- package/src/components/block-tools/style.scss +1 -14
- package/src/components/default-block-appender/content.scss +3 -25
- package/src/components/dimension-control/index.js +7 -4
- package/src/components/global-styles/dimensions-panel.js +3 -0
- package/src/components/grid/grid-visualizer.js +3 -0
- package/src/components/list-view/block.js +5 -0
- package/src/hooks/auto-inspector-controls.js +31 -4
- package/src/hooks/test/dimensions.js +16 -0
- package/src/index.js +1 -0
- package/src/store/reducer.js +23 -20
- package/src/store/test/reducer.js +109 -0
- package/build/components/block-styles/preview-panel.cjs +0 -61
- package/build/components/block-styles/preview-panel.cjs.map +0 -7
- package/build-module/components/block-styles/preview-panel.mjs +0 -30
- package/build-module/components/block-styles/preview-panel.mjs.map +0 -7
- package/src/components/block-styles/preview-panel.js +0 -35
|
@@ -13,6 +13,7 @@ import { Icon, chevronRight } from "@wordpress/icons";
|
|
|
13
13
|
import { store as blockEditorStore } from "../../store/index.mjs";
|
|
14
14
|
import BlockIcon from "../block-icon/index.mjs";
|
|
15
15
|
import useBlockDisplayInformation from "../use-block-display-information/index.mjs";
|
|
16
|
+
import useBlockDisplayTitle from "../block-title/use-block-display-title.mjs";
|
|
16
17
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
17
18
|
function BlockQuickNavigation({
|
|
18
19
|
clientIds,
|
|
@@ -64,7 +65,11 @@ function BlockQuickNavigationItem({
|
|
|
64
65
|
[clientId]
|
|
65
66
|
);
|
|
66
67
|
const blockType = getBlockType(blockName);
|
|
67
|
-
const
|
|
68
|
+
const displayTitle = useBlockDisplayTitle({
|
|
69
|
+
clientId,
|
|
70
|
+
context: "list-view"
|
|
71
|
+
});
|
|
72
|
+
const blockTitle = displayTitle || blockType?.title || blockName;
|
|
68
73
|
const { selectBlock } = useDispatch(blockEditorStore);
|
|
69
74
|
const hasChildren = childBlocks && childBlocks.length > 0;
|
|
70
75
|
const canNavigateToListView = hasChildren && hasListViewTab && hasListViewSupport;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/block-quick-navigation/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, getBlockType } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\t__experimentalVStack as VStack,\n\t__experimentalTruncate as Truncate,\n\tFlex,\n\tFlexBlock,\n\tFlexItem,\n} from '@wordpress/components';\nimport { Icon, chevronRight } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\n\nexport default function BlockQuickNavigation( {\n\tclientIds,\n\tonSelect,\n\tonSwitchToListView,\n\thasListViewTab,\n} ) {\n\tif ( ! clientIds.length ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<VStack spacing={ 1 }>\n\t\t\t{ clientIds.map( ( clientId ) => (\n\t\t\t\t<BlockQuickNavigationItem\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\tonSwitchToListView={ onSwitchToListView }\n\t\t\t\t\thasListViewTab={ hasListViewTab }\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</VStack>\n\t);\n}\n\nfunction BlockQuickNavigationItem( {\n\tclientId,\n\tonSelect,\n\tonSwitchToListView,\n\thasListViewTab,\n} ) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst { isSelected, childBlocks, hasListViewSupport, blockName } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tisBlockSelected,\n\t\t\t\t\thasSelectedInnerBlock,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\tgetBlockName,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tconst _blockName = getBlockName( clientId );\n\n\t\t\t\treturn {\n\t\t\t\t\tisSelected:\n\t\t\t\t\t\tisBlockSelected( clientId ) ||\n\t\t\t\t\t\thasSelectedInnerBlock( clientId, /* deep: */ true ),\n\t\t\t\t\tchildBlocks: getBlockOrder( clientId ),\n\t\t\t\t\thasListViewSupport:\n\t\t\t\t\t\t_blockName === 'core/navigation' ||\n\t\t\t\t\t\thasBlockSupport( _blockName, 'listView' ),\n\t\t\t\t\tblockName: _blockName,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\n\tconst blockType = getBlockType( blockName );\n\tconst blockTitle = blockType?.title || blockName;\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\n\tconst hasChildren = childBlocks && childBlocks.length > 0;\n\tconst canNavigateToListView =\n\t\thasChildren && hasListViewTab && hasListViewSupport;\n\n\treturn (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName=\"block-editor-block-quick-navigation__item\"\n\t\t\tisPressed={ isSelected }\n\t\t\tonClick={ async () => {\n\t\t\t\tawait selectBlock( clientId );\n\n\t\t\t\t// If the block has children and List View is available,\n\t\t\t\t// switch to List View to show the expanded container.\n\t\t\t\tif ( canNavigateToListView && onSwitchToListView ) {\n\t\t\t\t\tonSwitchToListView( clientId );\n\t\t\t\t}\n\n\t\t\t\tif ( onSelect ) {\n\t\t\t\t\tonSelect( clientId );\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t<Flex>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockIcon icon={ blockInformation?.icon } />\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexBlock style={ { textAlign: 'left' } }>\n\t\t\t\t\t<Truncate>{ blockTitle }</Truncate>\n\t\t\t\t</FlexBlock>\n\t\t\t\t{ canNavigateToListView && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Icon icon={ chevronRight } size={ 24 } />\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</Button>\n\t);\n}\n"],
|
|
5
|
-
"mappings": ";AAGA,SAAS,iBAAiB,oBAAoB;AAC9C,SAAS,WAAW,mBAAmB;AACvC;AAAA,EACC;AAAA,EACA,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,MAAM,oBAAoB;AAKnC,SAAS,SAAS,wBAAwB;AAC1C,OAAO,eAAe;AACtB,OAAO,gCAAgC;
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, getBlockType } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\t__experimentalVStack as VStack,\n\t__experimentalTruncate as Truncate,\n\tFlex,\n\tFlexBlock,\n\tFlexItem,\n} from '@wordpress/components';\nimport { Icon, chevronRight } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\n\nexport default function BlockQuickNavigation( {\n\tclientIds,\n\tonSelect,\n\tonSwitchToListView,\n\thasListViewTab,\n} ) {\n\tif ( ! clientIds.length ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<VStack spacing={ 1 }>\n\t\t\t{ clientIds.map( ( clientId ) => (\n\t\t\t\t<BlockQuickNavigationItem\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\tonSwitchToListView={ onSwitchToListView }\n\t\t\t\t\thasListViewTab={ hasListViewTab }\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</VStack>\n\t);\n}\n\nfunction BlockQuickNavigationItem( {\n\tclientId,\n\tonSelect,\n\tonSwitchToListView,\n\thasListViewTab,\n} ) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst { isSelected, childBlocks, hasListViewSupport, blockName } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tisBlockSelected,\n\t\t\t\t\thasSelectedInnerBlock,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\tgetBlockName,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tconst _blockName = getBlockName( clientId );\n\n\t\t\t\treturn {\n\t\t\t\t\tisSelected:\n\t\t\t\t\t\tisBlockSelected( clientId ) ||\n\t\t\t\t\t\thasSelectedInnerBlock( clientId, /* deep: */ true ),\n\t\t\t\t\tchildBlocks: getBlockOrder( clientId ),\n\t\t\t\t\thasListViewSupport:\n\t\t\t\t\t\t_blockName === 'core/navigation' ||\n\t\t\t\t\t\thasBlockSupport( _blockName, 'listView' ),\n\t\t\t\t\tblockName: _blockName,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\n\tconst blockType = getBlockType( blockName );\n\tconst displayTitle = useBlockDisplayTitle( {\n\t\tclientId,\n\t\tcontext: 'list-view',\n\t} );\n\tconst blockTitle = displayTitle || blockType?.title || blockName;\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\n\tconst hasChildren = childBlocks && childBlocks.length > 0;\n\tconst canNavigateToListView =\n\t\thasChildren && hasListViewTab && hasListViewSupport;\n\n\treturn (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName=\"block-editor-block-quick-navigation__item\"\n\t\t\tisPressed={ isSelected }\n\t\t\tonClick={ async () => {\n\t\t\t\tawait selectBlock( clientId );\n\n\t\t\t\t// If the block has children and List View is available,\n\t\t\t\t// switch to List View to show the expanded container.\n\t\t\t\tif ( canNavigateToListView && onSwitchToListView ) {\n\t\t\t\t\tonSwitchToListView( clientId );\n\t\t\t\t}\n\n\t\t\t\tif ( onSelect ) {\n\t\t\t\t\tonSelect( clientId );\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t<Flex>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockIcon icon={ blockInformation?.icon } />\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexBlock style={ { textAlign: 'left' } }>\n\t\t\t\t\t<Truncate>{ blockTitle }</Truncate>\n\t\t\t\t</FlexBlock>\n\t\t\t\t{ canNavigateToListView && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Icon icon={ chevronRight } size={ 24 } />\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</Button>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,iBAAiB,oBAAoB;AAC9C,SAAS,WAAW,mBAAmB;AACvC;AAAA,EACC;AAAA,EACA,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,MAAM,oBAAoB;AAKnC,SAAS,SAAS,wBAAwB;AAC1C,OAAO,eAAe;AACtB,OAAO,gCAAgC;AACvC,OAAO,0BAA0B;AAc7B,cA4ED,YA5EC;AAZW,SAAR,qBAAuC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,MAAK,CAAE,UAAU,QAAS;AACzB,WAAO;AAAA,EACR;AACA,SACC,oBAAC,UAAO,SAAU,GACf,oBAAU,IAAK,CAAE,aAClB;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA;AAAA,IADM;AAAA,EAEP,CACC,GACH;AAEF;AAEA,SAAS,yBAA0B;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,mBAAmB,2BAA4B,QAAS;AAC9D,QAAM,EAAE,YAAY,aAAa,oBAAoB,UAAU,IAC9D;AAAA,IACC,CAAE,WAAY;AACb,YAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD,IAAI,OAAQ,gBAAiB;AAE7B,YAAM,aAAa,aAAc,QAAS;AAE1C,aAAO;AAAA,QACN,YACC,gBAAiB,QAAS,KAC1B;AAAA,UAAuB;AAAA;AAAA,UAAsB;AAAA,QAAK;AAAA,QACnD,aAAa,cAAe,QAAS;AAAA,QACrC,oBACC,eAAe,qBACf,gBAAiB,YAAY,UAAW;AAAA,QACzC,WAAW;AAAA,MACZ;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAED,QAAM,YAAY,aAAc,SAAU;AAC1C,QAAM,eAAe,qBAAsB;AAAA,IAC1C;AAAA,IACA,SAAS;AAAA,EACV,CAAE;AACF,QAAM,aAAa,gBAAgB,WAAW,SAAS;AACvD,QAAM,EAAE,YAAY,IAAI,YAAa,gBAAiB;AAEtD,QAAM,cAAc,eAAe,YAAY,SAAS;AACxD,QAAM,wBACL,eAAe,kBAAkB;AAElC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,uBAAqB;AAAA,MACrB,WAAU;AAAA,MACV,WAAY;AAAA,MACZ,SAAU,YAAY;AACrB,cAAM,YAAa,QAAS;AAI5B,YAAK,yBAAyB,oBAAqB;AAClD,6BAAoB,QAAS;AAAA,QAC9B;AAEA,YAAK,UAAW;AACf,mBAAU,QAAS;AAAA,QACpB;AAAA,MACD;AAAA,MAEA,+BAAC,QACA;AAAA,4BAAC,YACA,8BAAC,aAAU,MAAO,kBAAkB,MAAO,GAC5C;AAAA,QACA,oBAAC,aAAU,OAAQ,EAAE,WAAW,OAAO,GACtC,8BAAC,YAAW,sBAAY,GACzB;AAAA,QACE,yBACD,oBAAC,YACA,8BAAC,QAAK,MAAO,cAAe,MAAO,IAAK,GACzC;AAAA,SAEF;AAAA;AAAA,EACD;AAEF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "@wordpress/blocks";
|
|
7
7
|
import { DropdownMenu, MenuGroup, MenuItem } from "@wordpress/components";
|
|
8
8
|
import { useDispatch, useSelect } from "@wordpress/data";
|
|
9
|
-
import { moreVertical } from "@wordpress/icons";
|
|
9
|
+
import { chevronDown, chevronUp, moreVertical } from "@wordpress/icons";
|
|
10
10
|
import { Children, cloneElement } from "@wordpress/element";
|
|
11
11
|
import { __ } from "@wordpress/i18n";
|
|
12
12
|
import { store as keyboardShortcutsStore } from "@wordpress/keyboard-shortcuts";
|
|
@@ -62,6 +62,7 @@ function BlockSettingsDropdown({
|
|
|
62
62
|
clientIds,
|
|
63
63
|
children,
|
|
64
64
|
__experimentalSelectBlock,
|
|
65
|
+
isContentOnlyListView,
|
|
65
66
|
...props
|
|
66
67
|
}) {
|
|
67
68
|
const count = clientIds.length;
|
|
@@ -73,7 +74,10 @@ function BlockSettingsDropdown({
|
|
|
73
74
|
selectedBlockClientIds,
|
|
74
75
|
isContentOnly,
|
|
75
76
|
isZoomOut,
|
|
76
|
-
canEdit
|
|
77
|
+
canEdit,
|
|
78
|
+
canMove,
|
|
79
|
+
isFirst,
|
|
80
|
+
isLast
|
|
77
81
|
} = useSelect(
|
|
78
82
|
(select) => {
|
|
79
83
|
const {
|
|
@@ -84,7 +88,10 @@ function BlockSettingsDropdown({
|
|
|
84
88
|
getBlockAttributes,
|
|
85
89
|
getBlockEditingMode,
|
|
86
90
|
isZoomOut: _isZoomOut,
|
|
87
|
-
canEditBlock
|
|
91
|
+
canEditBlock,
|
|
92
|
+
canMoveBlocks,
|
|
93
|
+
getBlockIndex,
|
|
94
|
+
getBlockCount
|
|
88
95
|
} = unlock(select(blockEditorStore));
|
|
89
96
|
const { getActiveBlockVariation } = select(blocksStore);
|
|
90
97
|
const _firstParentClientId = getBlockRootClientId(firstBlockClientId);
|
|
@@ -99,12 +106,16 @@ function BlockSettingsDropdown({
|
|
|
99
106
|
selectedBlockClientIds: getSelectedBlockClientIds2(),
|
|
100
107
|
isContentOnly: getBlockEditingMode(firstBlockClientId) === "contentOnly",
|
|
101
108
|
isZoomOut: _isZoomOut(),
|
|
102
|
-
canEdit: canEditBlock(firstBlockClientId)
|
|
109
|
+
canEdit: canEditBlock(firstBlockClientId),
|
|
110
|
+
canMove: canMoveBlocks(clientIds),
|
|
111
|
+
isFirst: getBlockIndex(firstBlockClientId) === 0,
|
|
112
|
+
isLast: getBlockIndex(firstBlockClientId) === getBlockCount(_firstParentClientId) - 1
|
|
103
113
|
};
|
|
104
114
|
},
|
|
105
|
-
[firstBlockClientId]
|
|
115
|
+
[firstBlockClientId, clientIds]
|
|
106
116
|
);
|
|
107
117
|
const { getBlockOrder, getSelectedBlockClientIds } = useSelect(blockEditorStore);
|
|
118
|
+
const { moveBlocksDown, moveBlocksUp } = useDispatch(blockEditorStore);
|
|
108
119
|
const shortcuts = useSelect((select) => {
|
|
109
120
|
const { getShortcutRepresentation } = select(keyboardShortcutsStore);
|
|
110
121
|
return {
|
|
@@ -190,6 +201,38 @@ function BlockSettingsDropdown({
|
|
|
190
201
|
parentBlockType
|
|
191
202
|
}
|
|
192
203
|
),
|
|
204
|
+
canMove && isContentOnlyListView && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
205
|
+
/* @__PURE__ */ jsx(
|
|
206
|
+
MenuItem,
|
|
207
|
+
{
|
|
208
|
+
icon: chevronUp,
|
|
209
|
+
disabled: isFirst,
|
|
210
|
+
accessibleWhenDisabled: true,
|
|
211
|
+
onClick: pipe(onClose, () => {
|
|
212
|
+
moveBlocksUp(
|
|
213
|
+
clientIds,
|
|
214
|
+
firstParentClientId
|
|
215
|
+
);
|
|
216
|
+
}),
|
|
217
|
+
children: __("Move up")
|
|
218
|
+
}
|
|
219
|
+
),
|
|
220
|
+
/* @__PURE__ */ jsx(
|
|
221
|
+
MenuItem,
|
|
222
|
+
{
|
|
223
|
+
icon: chevronDown,
|
|
224
|
+
disabled: isLast,
|
|
225
|
+
accessibleWhenDisabled: true,
|
|
226
|
+
onClick: pipe(onClose, () => {
|
|
227
|
+
moveBlocksDown(
|
|
228
|
+
clientIds,
|
|
229
|
+
firstParentClientId
|
|
230
|
+
);
|
|
231
|
+
}),
|
|
232
|
+
children: __("Move down")
|
|
233
|
+
}
|
|
234
|
+
)
|
|
235
|
+
] }),
|
|
193
236
|
canEdit && count === 1 && /* @__PURE__ */ jsx(
|
|
194
237
|
BlockHTMLConvertButton,
|
|
195
238
|
{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/block-settings-menu/block-settings-dropdown.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport { Children, cloneElement } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport CommentIconSlotFill from '../../components/collab/block-comment-icon-slot';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport BlockParentSelectorMenuItem from './block-parent-selector-menu-item';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( {\n\tclientIds,\n\tonCopy,\n\tlabel,\n\tshortcut,\n\teventType = 'copy',\n\t__experimentalUpdateSelection: updateSelection = false,\n} ) {\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst { removeBlocks } = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\tconst ref = useCopyToClipboard(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\t() => {\n\t\t\tswitch ( eventType ) {\n\t\t\t\tcase 'copy':\n\t\t\t\tcase 'copyStyles':\n\t\t\t\t\tonCopy();\n\t\t\t\t\tnotifyCopy( eventType, clientIds );\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'cut':\n\t\t\t\t\tnotifyCopy( eventType, clientIds );\n\t\t\t\t\tremoveBlocks( clientIds, updateSelection );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t);\n\tconst copyMenuItemLabel = label ? label : __( 'Copy' );\n\treturn (\n\t\t<MenuItem ref={ ref } shortcut={ shortcut }>\n\t\t\t{ copyMenuItemLabel }\n\t\t</MenuItem>\n\t);\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\tchildren,\n\t__experimentalSelectBlock,\n\t...props\n} ) {\n\t// Get the client id of the current block for this menu, if one is set.\n\tconst count = clientIds.length;\n\tconst firstBlockClientId = clientIds[ 0 ];\n\n\tconst {\n\t\tfirstParentClientId,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t\tisContentOnly,\n\t\tisZoomOut,\n\t\tcanEdit,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tisZoomOut: _isZoomOut,\n\t\t\t\tcanEditBlock,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( firstBlockClientId ) === 'contentOnly',\n\t\t\t\tisZoomOut: _isZoomOut(),\n\t\t\t\tcanEdit: canEditBlock( firstBlockClientId ),\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tcopy: getShortcutRepresentation( 'core/block-editor/copy' ),\n\t\t\tcut: getShortcutRepresentation( 'core/block-editor/cut' ),\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tasync function updateSelectionAfterDuplicate( clientIdsPromise ) {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst ids = await clientIdsPromise;\n\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t}\n\t}\n\n\tfunction updateSelectionAfterRemove() {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t// Focus the first block if there's no previous block nor parent block.\n\t\tif ( ! blockToFocus ) {\n\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t}\n\n\t\t// Only update the selection if the original selection is removed.\n\t\tconst shouldUpdateSelection =\n\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t}\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\n\n\tconst shouldShowBlockParentMenuItem =\n\t\t! parentBlockIsSelected && !! firstParentClientId;\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanCopyStyles,\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertBlock,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonPasteStyles,\n\t\t\t} ) => {\n\t\t\t\t// It is possible that some plugins register fills for this menu\n\t\t\t\t// even if Core doesn't render anything in the block settings menu.\n\t\t\t\t// in which case, we may want to render the menu anyway.\n\t\t\t\t// That said for now, we can start more conservative.\n\t\t\t\tconst isEmpty =\n\t\t\t\t\t! canRemove &&\n\t\t\t\t\t! canDuplicate &&\n\t\t\t\t\t! canInsertBlock &&\n\t\t\t\t\tisContentOnly;\n\n\t\t\t\tif ( isEmpty ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\t\tnoIcons\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\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\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ shouldShowBlockParentMenuItem && (\n\t\t\t\t\t\t\t\t\t\t<BlockParentSelectorMenuItem\n\t\t\t\t\t\t\t\t\t\t\tparentClientId={\n\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType={ parentBlockType }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canEdit && count === 1 && (\n\t\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.copy }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canRemove && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Cut' ) }\n\t\t\t\t\t\t\t\t\t\t\teventType=\"cut\"\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.cut }\n\t\t\t\t\t\t\t\t\t\t\t__experimentalUpdateSelection={\n\t\t\t\t\t\t\t\t\t\t\t\t! __experimentalSelectBlock\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canInsertBlock && ! isZoomOut && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add after' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canEdit && count === 1 && (\n\t\t\t\t\t\t\t\t\t\t<CommentIconSlotFill.Slot\n\t\t\t\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\t\t\t\tclientId: firstBlockClientId,\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t{ canCopyStyles && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t\t\teventType=\"copyStyles\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{ canEdit && (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t);\n\t\t\t} }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],
|
|
5
|
-
"mappings": ";AAGA;AAAA,EACC;AAAA,EACA;AAAA,EACA,SAAS;AAAA,OACH;AACP,SAAS,cAAc,WAAW,gBAAgB;AAClD,SAAS,aAAa,iBAAiB;AACvC,SAAS,oBAAoB;
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { chevronDown, chevronUp, moreVertical } from '@wordpress/icons';\nimport { Children, cloneElement } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport CommentIconSlotFill from '../../components/collab/block-comment-icon-slot';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport BlockParentSelectorMenuItem from './block-parent-selector-menu-item';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( {\n\tclientIds,\n\tonCopy,\n\tlabel,\n\tshortcut,\n\teventType = 'copy',\n\t__experimentalUpdateSelection: updateSelection = false,\n} ) {\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst { removeBlocks } = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\tconst ref = useCopyToClipboard(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\t() => {\n\t\t\tswitch ( eventType ) {\n\t\t\t\tcase 'copy':\n\t\t\t\tcase 'copyStyles':\n\t\t\t\t\tonCopy();\n\t\t\t\t\tnotifyCopy( eventType, clientIds );\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'cut':\n\t\t\t\t\tnotifyCopy( eventType, clientIds );\n\t\t\t\t\tremoveBlocks( clientIds, updateSelection );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t);\n\tconst copyMenuItemLabel = label ? label : __( 'Copy' );\n\treturn (\n\t\t<MenuItem ref={ ref } shortcut={ shortcut }>\n\t\t\t{ copyMenuItemLabel }\n\t\t</MenuItem>\n\t);\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\tchildren,\n\t__experimentalSelectBlock,\n\tisContentOnlyListView,\n\t...props\n} ) {\n\t// Get the client id of the current block for this menu, if one is set.\n\tconst count = clientIds.length;\n\tconst firstBlockClientId = clientIds[ 0 ];\n\n\tconst {\n\t\tfirstParentClientId,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t\tisContentOnly,\n\t\tisZoomOut,\n\t\tcanEdit,\n\t\tcanMove,\n\t\tisFirst,\n\t\tisLast,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tisZoomOut: _isZoomOut,\n\t\t\t\tcanEditBlock,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockCount,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( firstBlockClientId ) === 'contentOnly',\n\t\t\t\tisZoomOut: _isZoomOut(),\n\t\t\t\tcanEdit: canEditBlock( firstBlockClientId ),\n\t\t\t\tcanMove: canMoveBlocks( clientIds ),\n\t\t\t\tisFirst: getBlockIndex( firstBlockClientId ) === 0,\n\t\t\t\tisLast:\n\t\t\t\t\tgetBlockIndex( firstBlockClientId ) ===\n\t\t\t\t\tgetBlockCount( _firstParentClientId ) - 1,\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId, clientIds ]\n\t);\n\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { moveBlocksDown, moveBlocksUp } = useDispatch( blockEditorStore );\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tcopy: getShortcutRepresentation( 'core/block-editor/copy' ),\n\t\t\tcut: getShortcutRepresentation( 'core/block-editor/cut' ),\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tasync function updateSelectionAfterDuplicate( clientIdsPromise ) {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst ids = await clientIdsPromise;\n\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t}\n\t}\n\n\tfunction updateSelectionAfterRemove() {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t// Focus the first block if there's no previous block nor parent block.\n\t\tif ( ! blockToFocus ) {\n\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t}\n\n\t\t// Only update the selection if the original selection is removed.\n\t\tconst shouldUpdateSelection =\n\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t}\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\n\n\tconst shouldShowBlockParentMenuItem =\n\t\t! parentBlockIsSelected && !! firstParentClientId;\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanCopyStyles,\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertBlock,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonPasteStyles,\n\t\t\t} ) => {\n\t\t\t\t// It is possible that some plugins register fills for this menu\n\t\t\t\t// even if Core doesn't render anything in the block settings menu.\n\t\t\t\t// in which case, we may want to render the menu anyway.\n\t\t\t\t// That said for now, we can start more conservative.\n\t\t\t\tconst isEmpty =\n\t\t\t\t\t! canRemove &&\n\t\t\t\t\t! canDuplicate &&\n\t\t\t\t\t! canInsertBlock &&\n\t\t\t\t\tisContentOnly;\n\n\t\t\t\tif ( isEmpty ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\t\tnoIcons\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\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\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ shouldShowBlockParentMenuItem && (\n\t\t\t\t\t\t\t\t\t\t<BlockParentSelectorMenuItem\n\t\t\t\t\t\t\t\t\t\t\tparentClientId={\n\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType={ parentBlockType }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canMove && isContentOnlyListView && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={ isFirst }\n\t\t\t\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe( onClose, () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmoveBlocksUp(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclientIds,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Move up' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={ isLast }\n\t\t\t\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe( onClose, () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmoveBlocksDown(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclientIds,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Move down' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canEdit && count === 1 && (\n\t\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.copy }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canRemove && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Cut' ) }\n\t\t\t\t\t\t\t\t\t\t\teventType=\"cut\"\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.cut }\n\t\t\t\t\t\t\t\t\t\t\t__experimentalUpdateSelection={\n\t\t\t\t\t\t\t\t\t\t\t\t! __experimentalSelectBlock\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canInsertBlock && ! isZoomOut && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add after' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canEdit && count === 1 && (\n\t\t\t\t\t\t\t\t\t\t<CommentIconSlotFill.Slot\n\t\t\t\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\t\t\t\tclientId: firstBlockClientId,\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t{ canCopyStyles && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t\t\teventType=\"copyStyles\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{ canEdit && (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t);\n\t\t\t} }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["getSelectedBlockClientIds"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/block-settings-menu-controls/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tcreateSlotFill,\n\tMenuGroup,\n\t__experimentalStyleProvider as StyleProvider,\n} from '@wordpress/components';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseConvertToGroupButtonProps,\n\tConvertToGroupButton,\n} from '../convert-to-group-buttons';\nimport { BlockLockMenuItem, useBlockLock } from '../block-lock';\nimport { store as blockEditorStore } from '../../store';\nimport BlockModeToggle from '../block-settings-menu/block-mode-toggle';\nimport { BlockRenameControl, useBlockRename } from '../block-rename';\nimport { BlockVisibilityViewportMenuItem } from '../block-visibility';\n\nconst { Fill, Slot } = createSlotFill( 'BlockSettingsMenuControls' );\n\nconst BlockSettingsMenuControlsSlot = ( { fillProps, clientIds = null } ) => {\n\tconst {\n\t\tselectedBlocks,\n\t\tselectedClientIds,\n\t\tisContentOnly,\n\t\tcanToggleSelectedBlocksVisibility,\n\t\tcanEdit,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockNamesByClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tcanEditBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst ids =\n\t\t\t\tclientIds !== null ? clientIds : getSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\tselectedBlocks: getBlockNamesByClientId( ids ),\n\t\t\t\tselectedClientIds: ids,\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( ids[ 0 ] ) === 'contentOnly',\n\t\t\t\tcanToggleSelectedBlocksVisibility: getBlocksByClientId(\n\t\t\t\t\tids\n\t\t\t\t).every( ( block ) =>\n\t\t\t\t\thasBlockSupport( block.name, 'visibility', true )\n\t\t\t\t),\n\t\t\t\tcanEdit: canEditBlock( ids[ 0 ] ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst { canLock } = useBlockLock( selectedClientIds[ 0 ] );\n\tconst { canRename } = useBlockRename( selectedBlocks[ 0 ] );\n\tconst showLockButton =\n\t\tselectedClientIds.length === 1 && canLock && ! isContentOnly;\n\tconst showRenameButton =\n\t\tselectedClientIds.length === 1 && canRename && ! isContentOnly;\n\tconst showVisibilityButton =\n\t\tcanToggleSelectedBlocksVisibility && ! isContentOnly;\n\n\t// Check if current selection of blocks is Groupable or Ungroupable\n\t// and pass this props down to ConvertToGroupButton.\n\tconst convertToGroupButtonProps =\n\t\tuseConvertToGroupButtonProps( selectedClientIds );\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton =\n\t\t( isGroupable || isUngroupable ) && ! isContentOnly;\n\n\treturn (\n\t\t<Slot\n\t\t\tfillProps={ {\n\t\t\t\t...fillProps,\n\t\t\t\tselectedBlocks,\n\t\t\t\tselectedClientIds,\n\t\t\t} }\n\t\t>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif (\n\t\t\t\t\t! fills?.length > 0 &&\n\t\t\t\t\t! showConvertToGroupButton &&\n\t\t\t\t\t! showLockButton\n\t\t\t\t) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t{ showConvertToGroupButton && (\n\t\t\t\t\t\t\t<ConvertToGroupButton\n\t\t\t\t\t\t\t\t{ ...convertToGroupButtonProps }\n\t\t\t\t\t\t\t\tonClose={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ canEdit && showLockButton && (\n\t\t\t\t\t\t\t<BlockLockMenuItem\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ canEdit && showRenameButton && (\n\t\t\t\t\t\t\t<BlockRenameControl\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ canEdit && showVisibilityButton && (\n\t\t\t\t\t\t\t<BlockVisibilityViewportMenuItem\n\t\t\t\t\t\t\t\tclientIds={ selectedClientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t{ canEdit &&\n\t\t\t\t\t\t\tfillProps?.count === 1 &&\n\t\t\t\t\t\t\t! isContentOnly && (\n\t\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\t\tclientId={ fillProps?.firstBlockClientId }\n\t\t\t\t\t\t\t\t\tonToggle={ fillProps?.onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t</Slot>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-settings-menu-controls/README.md\n *\n * @param {Object} props Fill props.\n * @return {Element} Element.\n */\nfunction BlockSettingsMenuControls( { ...props } ) {\n\treturn (\n\t\t<StyleProvider document={ document }>\n\t\t\t<Fill { ...props } />\n\t\t</StyleProvider>\n\t);\n}\n\nBlockSettingsMenuControls.Slot = BlockSettingsMenuControlsSlot;\n\nexport default BlockSettingsMenuControls;\n"],
|
|
5
|
-
"mappings": ";AAGA;AAAA,EACC;AAAA,EACA;AAAA,EACA,+BAA+B;AAAA,OACzB;AACP,SAAS,uBAAuB;AAChC,SAAS,iBAAiB;AAK1B;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP,SAAS,mBAAmB,oBAAoB;AAChD,SAAS,SAAS,wBAAwB;AAC1C,OAAO,qBAAqB;AAC5B,SAAS,oBAAoB,sBAAsB;AACnD,SAAS,uCAAuC;
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tcreateSlotFill,\n\tMenuGroup,\n\t__experimentalStyleProvider as StyleProvider,\n} from '@wordpress/components';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseConvertToGroupButtonProps,\n\tConvertToGroupButton,\n} from '../convert-to-group-buttons';\nimport { BlockLockMenuItem, useBlockLock } from '../block-lock';\nimport { store as blockEditorStore } from '../../store';\nimport BlockModeToggle from '../block-settings-menu/block-mode-toggle';\nimport { BlockRenameControl, useBlockRename } from '../block-rename';\nimport { BlockVisibilityViewportMenuItem } from '../block-visibility';\n\nconst { Fill, Slot } = createSlotFill( 'BlockSettingsMenuControls' );\n\nconst BlockSettingsMenuControlsSlot = ( { fillProps, clientIds = null } ) => {\n\tconst {\n\t\tselectedBlocks,\n\t\tselectedClientIds,\n\t\tisContentOnly,\n\t\tcanToggleSelectedBlocksVisibility,\n\t\tcanEdit,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockNamesByClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tcanEditBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst ids =\n\t\t\t\tclientIds !== null ? clientIds : getSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\tselectedBlocks: getBlockNamesByClientId( ids ),\n\t\t\t\tselectedClientIds: ids,\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( ids[ 0 ] ) === 'contentOnly',\n\t\t\t\tcanToggleSelectedBlocksVisibility: getBlocksByClientId(\n\t\t\t\t\tids\n\t\t\t\t).every( ( block ) =>\n\t\t\t\t\thasBlockSupport( block.name, 'visibility', true )\n\t\t\t\t),\n\t\t\t\tcanEdit: canEditBlock( ids[ 0 ] ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst { canLock } = useBlockLock( selectedClientIds[ 0 ] );\n\tconst { canRename } = useBlockRename( selectedBlocks[ 0 ] );\n\tconst showLockButton =\n\t\tselectedClientIds.length === 1 && canLock && ! isContentOnly;\n\tconst showRenameButton =\n\t\tselectedClientIds.length === 1 && canRename && ! isContentOnly;\n\tconst showVisibilityButton =\n\t\tcanToggleSelectedBlocksVisibility && ! isContentOnly;\n\n\t// Check if current selection of blocks is Groupable or Ungroupable\n\t// and pass this props down to ConvertToGroupButton.\n\tconst convertToGroupButtonProps =\n\t\tuseConvertToGroupButtonProps( selectedClientIds );\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton =\n\t\t( isGroupable || isUngroupable ) && ! isContentOnly;\n\n\treturn (\n\t\t<Slot\n\t\t\tfillProps={ {\n\t\t\t\t...fillProps,\n\t\t\t\tcanEdit,\n\t\t\t\tselectedBlocks,\n\t\t\t\tselectedClientIds,\n\t\t\t} }\n\t\t>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif (\n\t\t\t\t\t! fills?.length > 0 &&\n\t\t\t\t\t! showConvertToGroupButton &&\n\t\t\t\t\t! showLockButton\n\t\t\t\t) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t{ showConvertToGroupButton && (\n\t\t\t\t\t\t\t<ConvertToGroupButton\n\t\t\t\t\t\t\t\t{ ...convertToGroupButtonProps }\n\t\t\t\t\t\t\t\tonClose={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ canEdit && showLockButton && (\n\t\t\t\t\t\t\t<BlockLockMenuItem\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ canEdit && showRenameButton && (\n\t\t\t\t\t\t\t<BlockRenameControl\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ canEdit && showVisibilityButton && (\n\t\t\t\t\t\t\t<BlockVisibilityViewportMenuItem\n\t\t\t\t\t\t\t\tclientIds={ selectedClientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t{ canEdit &&\n\t\t\t\t\t\t\tfillProps?.count === 1 &&\n\t\t\t\t\t\t\t! isContentOnly && (\n\t\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\t\tclientId={ fillProps?.firstBlockClientId }\n\t\t\t\t\t\t\t\t\tonToggle={ fillProps?.onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t</Slot>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-settings-menu-controls/README.md\n *\n * @param {Object} props Fill props.\n * @return {Element} Element.\n */\nfunction BlockSettingsMenuControls( { ...props } ) {\n\treturn (\n\t\t<StyleProvider document={ document }>\n\t\t\t<Fill { ...props } />\n\t\t</StyleProvider>\n\t);\n}\n\nBlockSettingsMenuControls.Slot = BlockSettingsMenuControlsSlot;\n\nexport default BlockSettingsMenuControls;\n"],
|
|
5
|
+
"mappings": ";AAGA;AAAA,EACC;AAAA,EACA;AAAA,EACA,+BAA+B;AAAA,OACzB;AACP,SAAS,uBAAuB;AAChC,SAAS,iBAAiB;AAK1B;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP,SAAS,mBAAmB,oBAAoB;AAChD,SAAS,SAAS,wBAAwB;AAC1C,OAAO,qBAAqB;AAC5B,SAAS,oBAAoB,sBAAsB;AACnD,SAAS,uCAAuC;AA0E3C,SAEE,KAFF;AAxEL,IAAM,EAAE,MAAM,KAAK,IAAI,eAAgB,2BAA4B;AAEnE,IAAM,gCAAgC,CAAE,EAAE,WAAW,YAAY,KAAK,MAAO;AAC5E,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AAAA,IACH,CAAE,WAAY;AACb,YAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD,IAAI,OAAQ,gBAAiB;AAC7B,YAAM,MACL,cAAc,OAAO,YAAY,0BAA0B;AAC5D,aAAO;AAAA,QACN,gBAAgB,wBAAyB,GAAI;AAAA,QAC7C,mBAAmB;AAAA,QACnB,eACC,oBAAqB,IAAK,CAAE,CAAE,MAAM;AAAA,QACrC,mCAAmC;AAAA,UAClC;AAAA,QACD,EAAE;AAAA,UAAO,CAAE,UACV,gBAAiB,MAAM,MAAM,cAAc,IAAK;AAAA,QACjD;AAAA,QACA,SAAS,aAAc,IAAK,CAAE,CAAE;AAAA,MACjC;AAAA,IACD;AAAA,IACA,CAAE,SAAU;AAAA,EACb;AAEA,QAAM,EAAE,QAAQ,IAAI,aAAc,kBAAmB,CAAE,CAAE;AACzD,QAAM,EAAE,UAAU,IAAI,eAAgB,eAAgB,CAAE,CAAE;AAC1D,QAAM,iBACL,kBAAkB,WAAW,KAAK,WAAW,CAAE;AAChD,QAAM,mBACL,kBAAkB,WAAW,KAAK,aAAa,CAAE;AAClD,QAAM,uBACL,qCAAqC,CAAE;AAIxC,QAAM,4BACL,6BAA8B,iBAAkB;AACjD,QAAM,EAAE,aAAa,cAAc,IAAI;AACvC,QAAM,4BACH,eAAe,kBAAmB,CAAE;AAEvC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAY;AAAA,QACX,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MAEE,WAAE,UAAW;AACd,YACC,CAAE,OAAO,SAAS,KAClB,CAAE,4BACF,CAAE,gBACD;AACD,iBAAO;AAAA,QACR;AAEA,eACC,qBAAC,aACE;AAAA,sCACD;AAAA,YAAC;AAAA;AAAA,cACE,GAAG;AAAA,cACL,SAAU,WAAW;AAAA;AAAA,UACtB;AAAA,UAEC,WAAW,kBACZ;AAAA,YAAC;AAAA;AAAA,cACA,UAAW,kBAAmB,CAAE;AAAA;AAAA,UACjC;AAAA,UAEC,WAAW,oBACZ;AAAA,YAAC;AAAA;AAAA,cACA,UAAW,kBAAmB,CAAE;AAAA;AAAA,UACjC;AAAA,UAEC,WAAW,wBACZ;AAAA,YAAC;AAAA;AAAA,cACA,WAAY;AAAA;AAAA,UACb;AAAA,UAEC;AAAA,UACA,WACD,WAAW,UAAU,KACrB,CAAE,iBACD;AAAA,YAAC;AAAA;AAAA,cACA,UAAW,WAAW;AAAA,cACtB,UAAW,WAAW;AAAA;AAAA,UACvB;AAAA,WAEH;AAAA,MAEF;AAAA;AAAA,EACD;AAEF;AAQA,SAAS,0BAA2B,EAAE,GAAG,MAAM,GAAI;AAClD,SACC,oBAAC,iBAAc,UACd,8BAAC,QAAO,GAAG,OAAQ,GACpB;AAEF;AAEA,0BAA0B,OAAO;AAEjC,IAAO,uCAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
// packages/block-editor/src/components/block-styles/index.js
|
|
2
2
|
import clsx from "clsx";
|
|
3
|
-
import { useState } from "@wordpress/element";
|
|
4
|
-
import { debounce
|
|
3
|
+
import { useState, useMemo } from "@wordpress/element";
|
|
4
|
+
import { debounce } from "@wordpress/compose";
|
|
5
5
|
import {
|
|
6
6
|
Button,
|
|
7
7
|
__experimentalTruncate as Truncate,
|
|
8
|
-
Popover,
|
|
9
8
|
__experimentalToolsPanel as ToolsPanel,
|
|
10
9
|
__experimentalToolsPanelItem as ToolsPanelItem
|
|
11
10
|
} from "@wordpress/components";
|
|
12
11
|
import { __ } from "@wordpress/i18n";
|
|
13
|
-
import
|
|
12
|
+
import PreviewBlockPopover from "../block-switcher/preview-block-popover.mjs";
|
|
14
13
|
import useStylesForBlocks from "./use-styles-for-block.mjs";
|
|
15
14
|
import { useToolsPanelDropdownMenuProps } from "../global-styles/utils.mjs";
|
|
16
|
-
import { getDefaultStyle } from "./utils.mjs";
|
|
15
|
+
import { getDefaultStyle, replaceActiveStyle } from "./utils.mjs";
|
|
17
16
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
18
17
|
var noop = () => {
|
|
19
18
|
};
|
|
@@ -23,14 +22,33 @@ function BlockStyles({ clientId, onSwitch = noop, onHoverClassName = noop }) {
|
|
|
23
22
|
stylesToRender,
|
|
24
23
|
activeStyle,
|
|
25
24
|
genericPreviewBlock,
|
|
26
|
-
className
|
|
25
|
+
className
|
|
27
26
|
} = useStylesForBlocks({
|
|
28
27
|
clientId,
|
|
29
28
|
onSwitch
|
|
30
29
|
});
|
|
31
30
|
const [hoveredStyle, setHoveredStyle] = useState(null);
|
|
32
|
-
const
|
|
31
|
+
const [blockStylesAnchor, setBlockStylesAnchor] = useState(null);
|
|
33
32
|
const dropdownMenuProps = useToolsPanelDropdownMenuProps();
|
|
33
|
+
const previewBlocks = useMemo(() => {
|
|
34
|
+
if (!hoveredStyle || !genericPreviewBlock) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
const previewClassName = replaceActiveStyle(
|
|
38
|
+
className,
|
|
39
|
+
activeStyle,
|
|
40
|
+
hoveredStyle
|
|
41
|
+
);
|
|
42
|
+
return [
|
|
43
|
+
{
|
|
44
|
+
...genericPreviewBlock,
|
|
45
|
+
attributes: {
|
|
46
|
+
...genericPreviewBlock.attributes || {},
|
|
47
|
+
className: previewClassName
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
];
|
|
51
|
+
}, [hoveredStyle, genericPreviewBlock, className, activeStyle]);
|
|
34
52
|
if (!stylesToRender || stylesToRender.length === 0) {
|
|
35
53
|
return null;
|
|
36
54
|
}
|
|
@@ -72,64 +90,56 @@ function BlockStyles({ clientId, onSwitch = noop, onHoverClassName = noop }) {
|
|
|
72
90
|
onDeselect,
|
|
73
91
|
isShownByDefault: true,
|
|
74
92
|
panelId: clientId,
|
|
75
|
-
children: /* @__PURE__ */ jsxs(
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
"is-active": activeStyle.name === style.name
|
|
86
|
-
}
|
|
87
|
-
),
|
|
88
|
-
variant: "secondary",
|
|
89
|
-
label: buttonText,
|
|
90
|
-
onMouseEnter: () => styleItemHandler(style),
|
|
91
|
-
onFocus: () => styleItemHandler(style),
|
|
92
|
-
onMouseLeave: () => styleItemHandler(null),
|
|
93
|
-
onBlur: () => styleItemHandler(null),
|
|
94
|
-
onClick: () => onSelectStylePreview(style),
|
|
95
|
-
"aria-current": activeStyle.name === style.name,
|
|
96
|
-
children: /* @__PURE__ */ jsx(
|
|
97
|
-
Truncate,
|
|
93
|
+
children: /* @__PURE__ */ jsxs(
|
|
94
|
+
"div",
|
|
95
|
+
{
|
|
96
|
+
ref: setBlockStylesAnchor,
|
|
97
|
+
className: "block-editor-block-styles",
|
|
98
|
+
children: [
|
|
99
|
+
/* @__PURE__ */ jsx("div", { className: "block-editor-block-styles__variants", children: stylesToRender.map((style) => {
|
|
100
|
+
const buttonText = style.label || style.name;
|
|
101
|
+
return /* @__PURE__ */ jsx(
|
|
102
|
+
Button,
|
|
98
103
|
{
|
|
99
|
-
|
|
100
|
-
className:
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
104
|
+
__next40pxDefaultSize: true,
|
|
105
|
+
className: clsx(
|
|
106
|
+
"block-editor-block-styles__item",
|
|
107
|
+
{
|
|
108
|
+
"is-active": activeStyle.name === style.name
|
|
109
|
+
}
|
|
110
|
+
),
|
|
111
|
+
variant: "secondary",
|
|
112
|
+
label: buttonText,
|
|
113
|
+
onMouseEnter: () => styleItemHandler(style),
|
|
114
|
+
onFocus: () => styleItemHandler(style),
|
|
115
|
+
onMouseLeave: () => styleItemHandler(null),
|
|
116
|
+
onBlur: () => styleItemHandler(null),
|
|
117
|
+
onClick: () => onSelectStylePreview(style),
|
|
118
|
+
"aria-current": activeStyle.name === style.name,
|
|
119
|
+
children: /* @__PURE__ */ jsx(
|
|
120
|
+
Truncate,
|
|
121
|
+
{
|
|
122
|
+
numberOfLines: 1,
|
|
123
|
+
className: "block-editor-block-styles__item-text",
|
|
124
|
+
children: buttonText
|
|
125
|
+
}
|
|
126
|
+
)
|
|
127
|
+
},
|
|
128
|
+
style.name
|
|
129
|
+
);
|
|
130
|
+
}) }),
|
|
131
|
+
previewBlocks && /* @__PURE__ */ jsx(
|
|
132
|
+
PreviewBlockPopover,
|
|
116
133
|
{
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
{
|
|
122
|
-
activeStyle,
|
|
123
|
-
className: previewClassName,
|
|
124
|
-
genericPreviewBlock,
|
|
125
|
-
style: hoveredStyle
|
|
126
|
-
}
|
|
127
|
-
)
|
|
134
|
+
blocks: previewBlocks,
|
|
135
|
+
placement: "left-start",
|
|
136
|
+
offset: 34,
|
|
137
|
+
anchor: blockStylesAnchor
|
|
128
138
|
}
|
|
129
139
|
)
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
140
|
+
]
|
|
141
|
+
}
|
|
142
|
+
)
|
|
133
143
|
}
|
|
134
144
|
)
|
|
135
145
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/block-styles/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { debounce
|
|
5
|
-
"mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useMemo } from '@wordpress/element';\nimport { debounce } from '@wordpress/compose';\nimport {\n\tButton,\n\t__experimentalTruncate as Truncate,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PreviewBlockPopover from '../block-switcher/preview-block-popover';\nimport useStylesForBlocks from './use-styles-for-block';\nimport { useToolsPanelDropdownMenuProps } from '../global-styles/utils';\nimport { getDefaultStyle, replaceActiveStyle } from './utils';\n\nconst noop = () => {};\n\n// Block Styles component for the Settings Sidebar.\nfunction BlockStyles( { clientId, onSwitch = noop, onHoverClassName = noop } ) {\n\tconst {\n\t\tonSelect,\n\t\tstylesToRender,\n\t\tactiveStyle,\n\t\tgenericPreviewBlock,\n\t\tclassName,\n\t} = useStylesForBlocks( {\n\t\tclientId,\n\t\tonSwitch,\n\t} );\n\tconst [ hoveredStyle, setHoveredStyle ] = useState( null );\n\tconst [ blockStylesAnchor, setBlockStylesAnchor ] = useState( null );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst previewBlocks = useMemo( () => {\n\t\tif ( ! hoveredStyle || ! genericPreviewBlock ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst previewClassName = replaceActiveStyle(\n\t\t\tclassName,\n\t\t\tactiveStyle,\n\t\t\thoveredStyle\n\t\t);\n\t\treturn [\n\t\t\t{\n\t\t\t\t...genericPreviewBlock,\n\t\t\t\tattributes: {\n\t\t\t\t\t...( genericPreviewBlock.attributes || {} ),\n\t\t\t\t\tclassName: previewClassName,\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\t}, [ hoveredStyle, genericPreviewBlock, className, activeStyle ] );\n\n\tif ( ! stylesToRender || stylesToRender.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst debouncedSetHoveredStyle = debounce( setHoveredStyle, 250 );\n\n\tconst onSelectStylePreview = ( style ) => {\n\t\tonSelect( style );\n\t\tonHoverClassName( null );\n\t\tsetHoveredStyle( null );\n\t\tdebouncedSetHoveredStyle.cancel();\n\t};\n\n\tconst styleItemHandler = ( item ) => {\n\t\tif ( hoveredStyle === item ) {\n\t\t\tdebouncedSetHoveredStyle.cancel();\n\t\t\treturn;\n\t\t}\n\t\tdebouncedSetHoveredStyle( item );\n\t\tonHoverClassName( item?.name ?? null );\n\t};\n\n\tconst defaultStyle = getDefaultStyle( stylesToRender );\n\n\tconst hasValue = () => {\n\t\treturn activeStyle?.name !== defaultStyle?.name;\n\t};\n\n\tconst onDeselect = () => {\n\t\tonSelectStylePreview( defaultStyle );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Styles' ) }\n\t\t\tresetAll={ onDeselect }\n\t\t\tpanelId={ clientId }\n\t\t\thasInnerWrapper\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ hasValue }\n\t\t\t\tlabel={ __( 'Variation' ) }\n\t\t\t\tonDeselect={ onDeselect }\n\t\t\t\tisShownByDefault\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tref={ setBlockStylesAnchor }\n\t\t\t\t\tclassName=\"block-editor-block-styles\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"block-editor-block-styles__variants\">\n\t\t\t\t\t\t{ stylesToRender.map( ( style ) => {\n\t\t\t\t\t\t\tconst buttonText = style.label || style.name;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t'block-editor-block-styles__item',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'is-active':\n\t\t\t\t\t\t\t\t\t\t\t\tactiveStyle.name === style.name,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tkey={ style.name }\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\tlabel={ buttonText }\n\t\t\t\t\t\t\t\t\tonMouseEnter={ () =>\n\t\t\t\t\t\t\t\t\t\tstyleItemHandler( style )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonFocus={ () => styleItemHandler( style ) }\n\t\t\t\t\t\t\t\t\tonMouseLeave={ () =>\n\t\t\t\t\t\t\t\t\t\tstyleItemHandler( null )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonBlur={ () => styleItemHandler( null ) }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tonSelectStylePreview( style )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taria-current={\n\t\t\t\t\t\t\t\t\t\tactiveStyle.name === style.name\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-styles__item-text\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ buttonText }\n\t\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</div>\n\t\t\t\t\t{ previewBlocks && (\n\t\t\t\t\t\t<PreviewBlockPopover\n\t\t\t\t\t\t\tblocks={ previewBlocks }\n\t\t\t\t\t\t\tplacement=\"left-start\"\n\t\t\t\t\t\t\toffset={ 34 }\n\t\t\t\t\t\t\tanchor={ blockStylesAnchor }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</ToolsPanelItem>\n\t\t</ToolsPanel>\n\t);\n}\n\nexport default BlockStyles;\n"],
|
|
5
|
+
"mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,UAAU,eAAe;AAClC,SAAS,gBAAgB;AACzB;AAAA,EACC;AAAA,EACA,0BAA0B;AAAA,EAC1B,4BAA4B;AAAA,EAC5B,gCAAgC;AAAA,OAC1B;AACP,SAAS,UAAU;AAKnB,OAAO,yBAAyB;AAChC,OAAO,wBAAwB;AAC/B,SAAS,sCAAsC;AAC/C,SAAS,iBAAiB,0BAA0B;AAuFhD,SAoCK,KApCL;AArFJ,IAAM,OAAO,MAAM;AAAC;AAGpB,SAAS,YAAa,EAAE,UAAU,WAAW,MAAM,mBAAmB,KAAK,GAAI;AAC9E,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI,mBAAoB;AAAA,IACvB;AAAA,IACA;AAAA,EACD,CAAE;AACF,QAAM,CAAE,cAAc,eAAgB,IAAI,SAAU,IAAK;AACzD,QAAM,CAAE,mBAAmB,oBAAqB,IAAI,SAAU,IAAK;AACnE,QAAM,oBAAoB,+BAA+B;AAEzD,QAAM,gBAAgB,QAAS,MAAM;AACpC,QAAK,CAAE,gBAAgB,CAAE,qBAAsB;AAC9C,aAAO;AAAA,IACR;AACA,UAAM,mBAAmB;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,IACD;AACA,WAAO;AAAA,MACN;AAAA,QACC,GAAG;AAAA,QACH,YAAY;AAAA,UACX,GAAK,oBAAoB,cAAc,CAAC;AAAA,UACxC,WAAW;AAAA,QACZ;AAAA,MACD;AAAA,IACD;AAAA,EACD,GAAG,CAAE,cAAc,qBAAqB,WAAW,WAAY,CAAE;AAEjE,MAAK,CAAE,kBAAkB,eAAe,WAAW,GAAI;AACtD,WAAO;AAAA,EACR;AAEA,QAAM,2BAA2B,SAAU,iBAAiB,GAAI;AAEhE,QAAM,uBAAuB,CAAE,UAAW;AACzC,aAAU,KAAM;AAChB,qBAAkB,IAAK;AACvB,oBAAiB,IAAK;AACtB,6BAAyB,OAAO;AAAA,EACjC;AAEA,QAAM,mBAAmB,CAAE,SAAU;AACpC,QAAK,iBAAiB,MAAO;AAC5B,+BAAyB,OAAO;AAChC;AAAA,IACD;AACA,6BAA0B,IAAK;AAC/B,qBAAkB,MAAM,QAAQ,IAAK;AAAA,EACtC;AAEA,QAAM,eAAe,gBAAiB,cAAe;AAErD,QAAM,WAAW,MAAM;AACtB,WAAO,aAAa,SAAS,cAAc;AAAA,EAC5C;AAEA,QAAM,aAAa,MAAM;AACxB,yBAAsB,YAAa;AAAA,EACpC;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAQ,GAAI,QAAS;AAAA,MACrB,UAAW;AAAA,MACX,SAAU;AAAA,MACV,iBAAe;AAAA,MACf;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACA;AAAA,UACA,OAAQ,GAAI,WAAY;AAAA,UACxB;AAAA,UACA,kBAAgB;AAAA,UAChB,SAAU;AAAA,UAEV;AAAA,YAAC;AAAA;AAAA,cACA,KAAM;AAAA,cACN,WAAU;AAAA,cAEV;AAAA,oCAAC,SAAI,WAAU,uCACZ,yBAAe,IAAK,CAAE,UAAW;AAClC,wBAAM,aAAa,MAAM,SAAS,MAAM;AAExC,yBACC;AAAA,oBAAC;AAAA;AAAA,sBACA,uBAAqB;AAAA,sBACrB,WAAY;AAAA,wBACX;AAAA,wBACA;AAAA,0BACC,aACC,YAAY,SAAS,MAAM;AAAA,wBAC7B;AAAA,sBACD;AAAA,sBAEA,SAAQ;AAAA,sBACR,OAAQ;AAAA,sBACR,cAAe,MACd,iBAAkB,KAAM;AAAA,sBAEzB,SAAU,MAAM,iBAAkB,KAAM;AAAA,sBACxC,cAAe,MACd,iBAAkB,IAAK;AAAA,sBAExB,QAAS,MAAM,iBAAkB,IAAK;AAAA,sBACtC,SAAU,MACT,qBAAsB,KAAM;AAAA,sBAE7B,gBACC,YAAY,SAAS,MAAM;AAAA,sBAG5B;AAAA,wBAAC;AAAA;AAAA,0BACA,eAAgB;AAAA,0BAChB,WAAU;AAAA,0BAER;AAAA;AAAA,sBACH;AAAA;AAAA,oBAvBM,MAAM;AAAA,kBAwBb;AAAA,gBAEF,CAAE,GACH;AAAA,gBACE,iBACD;AAAA,kBAAC;AAAA;AAAA,oBACA,QAAS;AAAA,oBACT,WAAU;AAAA,oBACV,QAAS;AAAA,oBACT,QAAS;AAAA;AAAA,gBACV;AAAA;AAAA;AAAA,UAEF;AAAA;AAAA,MACD;AAAA;AAAA,EACD;AAEF;AAEA,IAAO,uBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
// packages/block-editor/src/components/block-styles/menu-items.js
|
|
2
2
|
import { MenuItem, __experimentalText as Text } from "@wordpress/components";
|
|
3
3
|
import { check } from "@wordpress/icons";
|
|
4
|
-
import useStylesForBlocks from "./use-styles-for-block.mjs";
|
|
5
4
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
6
5
|
var noop = () => {
|
|
7
6
|
};
|
|
8
|
-
function BlockStylesMenuItems({
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
function BlockStylesMenuItems({
|
|
8
|
+
stylesToRender,
|
|
9
|
+
activeStyle,
|
|
10
|
+
onSelect = noop,
|
|
11
|
+
onHoverStyle = noop
|
|
12
|
+
}) {
|
|
13
13
|
if (!stylesToRender || stylesToRender.length === 0) {
|
|
14
14
|
return null;
|
|
15
15
|
}
|
|
@@ -20,6 +20,10 @@ function BlockStylesMenuItems({ clientId, onSwitch = noop }) {
|
|
|
20
20
|
{
|
|
21
21
|
icon: activeStyle.name === style.name ? check : null,
|
|
22
22
|
onClick: () => onSelect(style),
|
|
23
|
+
onFocus: () => onHoverStyle(style),
|
|
24
|
+
onBlur: () => onHoverStyle(null),
|
|
25
|
+
onMouseEnter: () => onHoverStyle(style),
|
|
26
|
+
onMouseLeave: () => onHoverStyle(null),
|
|
23
27
|
children: /* @__PURE__ */ jsx(
|
|
24
28
|
Text,
|
|
25
29
|
{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/block-styles/menu-items.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { MenuItem, __experimentalText as Text } from '@wordpress/components';\nimport { check } from '@wordpress/icons';\n\
|
|
5
|
-
"mappings": ";AAGA,SAAS,UAAU,sBAAsB,YAAY;AACrD,SAAS,aAAa;
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { MenuItem, __experimentalText as Text } from '@wordpress/components';\nimport { check } from '@wordpress/icons';\n\nconst noop = () => {};\n\nexport default function BlockStylesMenuItems( {\n\tstylesToRender,\n\tactiveStyle,\n\tonSelect = noop,\n\tonHoverStyle = noop,\n} ) {\n\tif ( ! stylesToRender || stylesToRender.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ stylesToRender.map( ( style ) => {\n\t\t\t\tconst menuItemText = style.label || style.name;\n\t\t\t\treturn (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tkey={ style.name }\n\t\t\t\t\t\ticon={ activeStyle.name === style.name ? check : null }\n\t\t\t\t\t\tonClick={ () => onSelect( style ) }\n\t\t\t\t\t\tonFocus={ () => onHoverStyle( style ) }\n\t\t\t\t\t\tonBlur={ () => onHoverStyle( null ) }\n\t\t\t\t\t\tonMouseEnter={ () => onHoverStyle( style ) }\n\t\t\t\t\t\tonMouseLeave={ () => onHoverStyle( null ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\tlimit={ 18 }\n\t\t\t\t\t\t\tellipsizeMode=\"tail\"\n\t\t\t\t\t\t\ttruncate\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ menuItemText }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</MenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,UAAU,sBAAsB,YAAY;AACrD,SAAS,aAAa;AAcpB,mBAaI,WAbJ;AAZF,IAAM,OAAO,MAAM;AAAC;AAEL,SAAR,qBAAuC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,eAAe;AAChB,GAAI;AACH,MAAK,CAAE,kBAAkB,eAAe,WAAW,GAAI;AACtD,WAAO;AAAA,EACR;AACA,SACC,gCACG,yBAAe,IAAK,CAAE,UAAW;AAClC,UAAM,eAAe,MAAM,SAAS,MAAM;AAC1C,WACC;AAAA,MAAC;AAAA;AAAA,QAEA,MAAO,YAAY,SAAS,MAAM,OAAO,QAAQ;AAAA,QACjD,SAAU,MAAM,SAAU,KAAM;AAAA,QAChC,SAAU,MAAM,aAAc,KAAM;AAAA,QACpC,QAAS,MAAM,aAAc,IAAK;AAAA,QAClC,cAAe,MAAM,aAAc,KAAM;AAAA,QACzC,cAAe,MAAM,aAAc,IAAK;AAAA,QAExC;AAAA,UAAC;AAAA;AAAA,YACA,IAAG;AAAA,YACH,OAAQ;AAAA,YACR,eAAc;AAAA,YACd,UAAQ;AAAA,YAEN;AAAA;AAAA,QACH;AAAA;AAAA,MAfM,MAAM;AAAA,IAgBb;AAAA,EAEF,CAAE,GACH;AAEF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|