@wordpress/block-library 6.0.4 → 6.0.5
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/build/navigation/edit/placeholder/index.js +3 -3
- package/build/navigation/edit/placeholder/index.js.map +1 -1
- package/build-module/navigation/edit/placeholder/index.js +3 -3
- package/build-module/navigation/edit/placeholder/index.js.map +1 -1
- package/build-style/editor-rtl.css +2 -0
- package/build-style/editor.css +2 -0
- package/build-style/image/style-rtl.css +1 -0
- package/build-style/image/style.css +1 -0
- package/build-style/navigation/editor-rtl.css +1 -0
- package/build-style/navigation/editor.css +1 -0
- package/build-style/navigation/style-rtl.css +4 -1
- package/build-style/navigation/style.css +4 -1
- package/build-style/navigation-link/editor-rtl.css +1 -0
- package/build-style/navigation-link/editor.css +1 -0
- package/build-style/navigation-submenu/style-rtl.css +1 -0
- package/build-style/navigation-submenu/style.css +1 -0
- package/build-style/style-rtl.css +6 -1
- package/build-style/style.css +6 -1
- package/package.json +4 -4
- package/src/image/style.scss +5 -2
- package/src/navigation/edit/placeholder/index.js +2 -2
- package/src/navigation/editor.scss +1 -0
- package/src/navigation/style.scss +4 -5
- package/src/navigation-link/editor.scss +1 -0
- package/src/navigation-submenu/style.scss +1 -0
- package/src/template-part/index.php +4 -1
|
@@ -61,7 +61,7 @@ const ExistingMenusDropdown = ({
|
|
|
61
61
|
onClose
|
|
62
62
|
}) => (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.MenuGroup, {
|
|
63
63
|
label: (0, _i18n.__)('Menus')
|
|
64
|
-
}, canSwitchNavigationMenu && navigationMenus.map(menu => {
|
|
64
|
+
}, canSwitchNavigationMenu && (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.map(menu => {
|
|
65
65
|
return (0, _element.createElement)(_components.MenuItem, {
|
|
66
66
|
onClick: () => {
|
|
67
67
|
setSelectedMenu(menu.id);
|
|
@@ -70,9 +70,9 @@ const ExistingMenusDropdown = ({
|
|
|
70
70
|
onClose: onClose,
|
|
71
71
|
key: menu.id
|
|
72
72
|
}, menu.title.rendered);
|
|
73
|
-
})), (0, _element.createElement)(_components.MenuGroup, {
|
|
73
|
+
}))), (0, _element.createElement)(_components.MenuGroup, {
|
|
74
74
|
label: (0, _i18n.__)('Classic Menus')
|
|
75
|
-
}, menus.map(menu => {
|
|
75
|
+
}, menus === null || menus === void 0 ? void 0 : menus.map(menu => {
|
|
76
76
|
return (0, _element.createElement)(_components.MenuItem, {
|
|
77
77
|
onClick: () => {
|
|
78
78
|
setSelectedMenu(menu.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/placeholder/index.js"],"names":["ExistingMenusDropdown","canSwitchNavigationMenu","navigationMenus","setSelectedMenu","onFinish","menus","onCreateFromMenu","toggleProps","variant","className","chevronDown","isAlternate","onClose","map","menu","id","title","rendered","name","NavigationPlaceholder","hasResolvedNavigationMenus","selectedMenu","isCreatingFromMenu","setIsCreatingFromMenu","menuName","setMenuName","isNewMenuModalVisible","setIsNewMenuModalVisible","createEmpty","setCreateEmpty","saveEntityRecord","coreStore","createNavigationMenu","blocks","record","content","status","navigationMenu","serialize","onFinishMenuCreation","navigationMenuTitle","isResolvingPages","isResolvingMenus","menuItems","hasResolvedMenuItems","hasPages","hasMenus","isStillLoading","createFromMenu","innerBlocks","menuItemsToBlocks","onCreateEmptyMenu","onCreateAllPages","block","navigation","length","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { serialize, createBlock } from '@wordpress/blocks';\nimport {\n\tPlaceholder,\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useCallback, useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, chevronDown, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\n\nimport useNavigationEntities from '../../use-navigation-entities';\nimport PlaceholderPreview from './placeholder-preview';\nimport menuItemsToBlocks from '../../menu-items-to-blocks';\nimport NavigationMenuNameModal from '../navigation-menu-name-modal';\nimport useNavigationMenu from '../../use-navigation-menu';\n\nconst ExistingMenusDropdown = ( {\n\tcanSwitchNavigationMenu,\n\tnavigationMenus,\n\tsetSelectedMenu,\n\tonFinish,\n\tmenus,\n\tonCreateFromMenu,\n} ) => {\n\tconst toggleProps = {\n\t\tvariant: 'primary',\n\t\tclassName: 'wp-block-navigation-placeholder__actions__dropdown',\n\t};\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttext={ __( 'Select existing menu' ) }\n\t\t\ticon={ chevronDown }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tpopoverProps={ { isAlternate: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t{ canSwitchNavigationMenu &&\n\t\t\t\t\t\t\tnavigationMenus.map( ( menu ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectedMenu( menu.id );\n\t\t\t\t\t\t\t\t\t\t\tonFinish( menu );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ menu.title.rendered }\n\t\t\t\t\t\t\t\t\t</MenuItem>\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\t<MenuGroup label={ __( 'Classic Menus' ) }>\n\t\t\t\t\t\t{ menus.map( ( menu ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetSelectedMenu( menu.id );\n\t\t\t\t\t\t\t\t\t\tonCreateFromMenu( menu.name );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ menu.name }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t);\n\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</DropdownMenu>\n\t);\n};\n\nexport default function NavigationPlaceholder( {\n\tonFinish,\n\tcanSwitchNavigationMenu,\n\thasResolvedNavigationMenus,\n} ) {\n\tconst [ selectedMenu, setSelectedMenu ] = useState();\n\n\tconst [ isCreatingFromMenu, setIsCreatingFromMenu ] = useState( false );\n\n\tconst [ menuName, setMenuName ] = useState( '' );\n\n\tconst [ isNewMenuModalVisible, setIsNewMenuModalVisible ] = useState(\n\t\tfalse\n\t);\n\n\tconst [ createEmpty, setCreateEmpty ] = useState( false );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\t// This callback uses data from the two placeholder steps and only creates\n\t// a new navigation menu when the user completes the final step.\n\tconst createNavigationMenu = useCallback(\n\t\tasync ( title = __( 'Untitled Navigation Menu' ), blocks = [] ) => {\n\t\t\tconst record = {\n\t\t\t\ttitle,\n\t\t\t\tcontent: serialize( blocks ),\n\t\t\t\tstatus: 'publish',\n\t\t\t};\n\n\t\t\tconst navigationMenu = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\trecord\n\t\t\t);\n\n\t\t\treturn navigationMenu;\n\t\t},\n\t\t[ serialize, saveEntityRecord ]\n\t);\n\n\tconst onFinishMenuCreation = async ( navigationMenuTitle, blocks ) => {\n\t\tconst navigationMenu = await createNavigationMenu(\n\t\t\tnavigationMenuTitle,\n\t\t\tblocks\n\t\t);\n\t\tonFinish( navigationMenu );\n\t};\n\n\tconst {\n\t\tisResolvingPages,\n\t\tmenus,\n\t\tisResolvingMenus,\n\t\tmenuItems,\n\t\thasResolvedMenuItems,\n\t\thasPages,\n\t\thasMenus,\n\t} = useNavigationEntities( selectedMenu );\n\n\tconst isStillLoading = isResolvingPages || isResolvingMenus;\n\n\tconst createFromMenu = useCallback(\n\t\t( name ) => {\n\t\t\tconst { innerBlocks: blocks } = menuItemsToBlocks( menuItems );\n\t\t\tonFinishMenuCreation( name, blocks );\n\t\t},\n\t\t[ menuItems, menuItemsToBlocks, onFinish ]\n\t);\n\n\tconst onCreateFromMenu = ( name ) => {\n\t\t// If we have menu items, create the block right away.\n\t\tif ( hasResolvedMenuItems ) {\n\t\t\tcreateFromMenu( name );\n\t\t\treturn;\n\t\t}\n\n\t\t// Otherwise, create the block when resolution finishes.\n\t\tsetIsCreatingFromMenu( true );\n\t\t// Store the name to use later.\n\t\tsetMenuName( name );\n\t};\n\n\tconst onCreateEmptyMenu = ( name ) => {\n\t\tonFinishMenuCreation( name, [] );\n\t};\n\n\tconst onCreateAllPages = ( name ) => {\n\t\tconst block = [ createBlock( 'core/page-list' ) ];\n\t\tonFinishMenuCreation( name, block );\n\t\tsetIsNewMenuModalVisible( true );\n\t};\n\n\tuseEffect( () => {\n\t\t// If the user selected a menu but we had to wait for menu items to\n\t\t// finish resolving, then create the block once resolution finishes.\n\t\tif ( isCreatingFromMenu && hasResolvedMenuItems ) {\n\t\t\tcreateFromMenu( menuName );\n\t\t\tsetIsCreatingFromMenu( false );\n\t\t}\n\t}, [ isCreatingFromMenu, hasResolvedMenuItems, menuName ] );\n\n\tconst { navigationMenus } = useNavigationMenu();\n\n\treturn (\n\t\t<>\n\t\t\t{ ( ! hasResolvedNavigationMenus || isStillLoading ) && (\n\t\t\t\t<PlaceholderPreview isLoading />\n\t\t\t) }\n\t\t\t{ hasResolvedNavigationMenus && ! isStillLoading && (\n\t\t\t\t<Placeholder className=\"wp-block-navigation-placeholder\">\n\t\t\t\t\t<PlaceholderPreview />\n\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__controls\">\n\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions\">\n\t\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions__indicator\">\n\t\t\t\t\t\t\t\t<Icon icon={ navigation } />{ ' ' }\n\t\t\t\t\t\t\t\t{ __( 'Navigation' ) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{ hasMenus || navigationMenus.length ? (\n\t\t\t\t\t\t\t\t<ExistingMenusDropdown\n\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu={\n\t\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\t\t\t\tsetSelectedMenu={ setSelectedMenu }\n\t\t\t\t\t\t\t\t\tonFinish={ onFinish }\n\t\t\t\t\t\t\t\t\tmenus={ menus }\n\t\t\t\t\t\t\t\t\tonCreateFromMenu={ onCreateFromMenu }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : undefined }\n\t\t\t\t\t\t\t{ hasPages ? (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\thasMenus || canSwitchNavigationMenu\n\t\t\t\t\t\t\t\t\t\t\t? 'tertiary'\n\t\t\t\t\t\t\t\t\t\t\t: 'primary'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsNewMenuModalVisible( true );\n\t\t\t\t\t\t\t\t\t\tsetCreateEmpty( false );\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{ __( 'Add all pages' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) : undefined }\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetIsNewMenuModalVisible( true );\n\t\t\t\t\t\t\t\t\tsetCreateEmpty( true );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Start empty' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ isNewMenuModalVisible && (\n\t\t\t\t<NavigationMenuNameModal\n\t\t\t\t\ttitle={ __( 'Create your new navigation menu' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsNewMenuModalVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonFinish={\n\t\t\t\t\t\tcreateEmpty ? onCreateEmptyMenu : onCreateAllPages\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/placeholder/index.js"],"names":["ExistingMenusDropdown","canSwitchNavigationMenu","navigationMenus","setSelectedMenu","onFinish","menus","onCreateFromMenu","toggleProps","variant","className","chevronDown","isAlternate","onClose","map","menu","id","title","rendered","name","NavigationPlaceholder","hasResolvedNavigationMenus","selectedMenu","isCreatingFromMenu","setIsCreatingFromMenu","menuName","setMenuName","isNewMenuModalVisible","setIsNewMenuModalVisible","createEmpty","setCreateEmpty","saveEntityRecord","coreStore","createNavigationMenu","blocks","record","content","status","navigationMenu","serialize","onFinishMenuCreation","navigationMenuTitle","isResolvingPages","isResolvingMenus","menuItems","hasResolvedMenuItems","hasPages","hasMenus","isStillLoading","createFromMenu","innerBlocks","menuItemsToBlocks","onCreateEmptyMenu","onCreateAllPages","block","navigation","length","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { serialize, createBlock } from '@wordpress/blocks';\nimport {\n\tPlaceholder,\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useCallback, useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, chevronDown, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\n\nimport useNavigationEntities from '../../use-navigation-entities';\nimport PlaceholderPreview from './placeholder-preview';\nimport menuItemsToBlocks from '../../menu-items-to-blocks';\nimport NavigationMenuNameModal from '../navigation-menu-name-modal';\nimport useNavigationMenu from '../../use-navigation-menu';\n\nconst ExistingMenusDropdown = ( {\n\tcanSwitchNavigationMenu,\n\tnavigationMenus,\n\tsetSelectedMenu,\n\tonFinish,\n\tmenus,\n\tonCreateFromMenu,\n} ) => {\n\tconst toggleProps = {\n\t\tvariant: 'primary',\n\t\tclassName: 'wp-block-navigation-placeholder__actions__dropdown',\n\t};\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttext={ __( 'Select existing menu' ) }\n\t\t\ticon={ chevronDown }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tpopoverProps={ { isAlternate: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t{ canSwitchNavigationMenu &&\n\t\t\t\t\t\t\tnavigationMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectedMenu( menu.id );\n\t\t\t\t\t\t\t\t\t\t\tonFinish( menu );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ menu.title.rendered }\n\t\t\t\t\t\t\t\t\t</MenuItem>\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\t<MenuGroup label={ __( 'Classic Menus' ) }>\n\t\t\t\t\t\t{ menus?.map( ( menu ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetSelectedMenu( menu.id );\n\t\t\t\t\t\t\t\t\t\tonCreateFromMenu( menu.name );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ menu.name }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t);\n\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</DropdownMenu>\n\t);\n};\n\nexport default function NavigationPlaceholder( {\n\tonFinish,\n\tcanSwitchNavigationMenu,\n\thasResolvedNavigationMenus,\n} ) {\n\tconst [ selectedMenu, setSelectedMenu ] = useState();\n\n\tconst [ isCreatingFromMenu, setIsCreatingFromMenu ] = useState( false );\n\n\tconst [ menuName, setMenuName ] = useState( '' );\n\n\tconst [ isNewMenuModalVisible, setIsNewMenuModalVisible ] = useState(\n\t\tfalse\n\t);\n\n\tconst [ createEmpty, setCreateEmpty ] = useState( false );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\t// This callback uses data from the two placeholder steps and only creates\n\t// a new navigation menu when the user completes the final step.\n\tconst createNavigationMenu = useCallback(\n\t\tasync ( title = __( 'Untitled Navigation Menu' ), blocks = [] ) => {\n\t\t\tconst record = {\n\t\t\t\ttitle,\n\t\t\t\tcontent: serialize( blocks ),\n\t\t\t\tstatus: 'publish',\n\t\t\t};\n\n\t\t\tconst navigationMenu = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\trecord\n\t\t\t);\n\n\t\t\treturn navigationMenu;\n\t\t},\n\t\t[ serialize, saveEntityRecord ]\n\t);\n\n\tconst onFinishMenuCreation = async ( navigationMenuTitle, blocks ) => {\n\t\tconst navigationMenu = await createNavigationMenu(\n\t\t\tnavigationMenuTitle,\n\t\t\tblocks\n\t\t);\n\t\tonFinish( navigationMenu );\n\t};\n\n\tconst {\n\t\tisResolvingPages,\n\t\tmenus,\n\t\tisResolvingMenus,\n\t\tmenuItems,\n\t\thasResolvedMenuItems,\n\t\thasPages,\n\t\thasMenus,\n\t} = useNavigationEntities( selectedMenu );\n\n\tconst isStillLoading = isResolvingPages || isResolvingMenus;\n\n\tconst createFromMenu = useCallback(\n\t\t( name ) => {\n\t\t\tconst { innerBlocks: blocks } = menuItemsToBlocks( menuItems );\n\t\t\tonFinishMenuCreation( name, blocks );\n\t\t},\n\t\t[ menuItems, menuItemsToBlocks, onFinish ]\n\t);\n\n\tconst onCreateFromMenu = ( name ) => {\n\t\t// If we have menu items, create the block right away.\n\t\tif ( hasResolvedMenuItems ) {\n\t\t\tcreateFromMenu( name );\n\t\t\treturn;\n\t\t}\n\n\t\t// Otherwise, create the block when resolution finishes.\n\t\tsetIsCreatingFromMenu( true );\n\t\t// Store the name to use later.\n\t\tsetMenuName( name );\n\t};\n\n\tconst onCreateEmptyMenu = ( name ) => {\n\t\tonFinishMenuCreation( name, [] );\n\t};\n\n\tconst onCreateAllPages = ( name ) => {\n\t\tconst block = [ createBlock( 'core/page-list' ) ];\n\t\tonFinishMenuCreation( name, block );\n\t\tsetIsNewMenuModalVisible( true );\n\t};\n\n\tuseEffect( () => {\n\t\t// If the user selected a menu but we had to wait for menu items to\n\t\t// finish resolving, then create the block once resolution finishes.\n\t\tif ( isCreatingFromMenu && hasResolvedMenuItems ) {\n\t\t\tcreateFromMenu( menuName );\n\t\t\tsetIsCreatingFromMenu( false );\n\t\t}\n\t}, [ isCreatingFromMenu, hasResolvedMenuItems, menuName ] );\n\n\tconst { navigationMenus } = useNavigationMenu();\n\n\treturn (\n\t\t<>\n\t\t\t{ ( ! hasResolvedNavigationMenus || isStillLoading ) && (\n\t\t\t\t<PlaceholderPreview isLoading />\n\t\t\t) }\n\t\t\t{ hasResolvedNavigationMenus && ! isStillLoading && (\n\t\t\t\t<Placeholder className=\"wp-block-navigation-placeholder\">\n\t\t\t\t\t<PlaceholderPreview />\n\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__controls\">\n\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions\">\n\t\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions__indicator\">\n\t\t\t\t\t\t\t\t<Icon icon={ navigation } />{ ' ' }\n\t\t\t\t\t\t\t\t{ __( 'Navigation' ) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{ hasMenus || navigationMenus.length ? (\n\t\t\t\t\t\t\t\t<ExistingMenusDropdown\n\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu={\n\t\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\t\t\t\tsetSelectedMenu={ setSelectedMenu }\n\t\t\t\t\t\t\t\t\tonFinish={ onFinish }\n\t\t\t\t\t\t\t\t\tmenus={ menus }\n\t\t\t\t\t\t\t\t\tonCreateFromMenu={ onCreateFromMenu }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : undefined }\n\t\t\t\t\t\t\t{ hasPages ? (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\thasMenus || canSwitchNavigationMenu\n\t\t\t\t\t\t\t\t\t\t\t? 'tertiary'\n\t\t\t\t\t\t\t\t\t\t\t: 'primary'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsNewMenuModalVisible( true );\n\t\t\t\t\t\t\t\t\t\tsetCreateEmpty( false );\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{ __( 'Add all pages' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) : undefined }\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetIsNewMenuModalVisible( true );\n\t\t\t\t\t\t\t\t\tsetCreateEmpty( true );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Start empty' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ isNewMenuModalVisible && (\n\t\t\t\t<NavigationMenuNameModal\n\t\t\t\t\ttitle={ __( 'Create your new navigation menu' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsNewMenuModalVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonFinish={\n\t\t\t\t\t\tcreateEmpty ? onCreateEmptyMenu : onCreateAllPages\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -43,7 +43,7 @@ const ExistingMenusDropdown = ({
|
|
|
43
43
|
onClose
|
|
44
44
|
}) => createElement(Fragment, null, createElement(MenuGroup, {
|
|
45
45
|
label: __('Menus')
|
|
46
|
-
}, canSwitchNavigationMenu && navigationMenus.map(menu => {
|
|
46
|
+
}, canSwitchNavigationMenu && (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.map(menu => {
|
|
47
47
|
return createElement(MenuItem, {
|
|
48
48
|
onClick: () => {
|
|
49
49
|
setSelectedMenu(menu.id);
|
|
@@ -52,9 +52,9 @@ const ExistingMenusDropdown = ({
|
|
|
52
52
|
onClose: onClose,
|
|
53
53
|
key: menu.id
|
|
54
54
|
}, menu.title.rendered);
|
|
55
|
-
})), createElement(MenuGroup, {
|
|
55
|
+
}))), createElement(MenuGroup, {
|
|
56
56
|
label: __('Classic Menus')
|
|
57
|
-
}, menus.map(menu => {
|
|
57
|
+
}, menus === null || menus === void 0 ? void 0 : menus.map(menu => {
|
|
58
58
|
return createElement(MenuItem, {
|
|
59
59
|
onClick: () => {
|
|
60
60
|
setSelectedMenu(menu.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/placeholder/index.js"],"names":["serialize","createBlock","Placeholder","Button","DropdownMenu","MenuGroup","MenuItem","store","coreStore","useDispatch","useCallback","useState","useEffect","__","navigation","chevronDown","Icon","useNavigationEntities","PlaceholderPreview","menuItemsToBlocks","NavigationMenuNameModal","useNavigationMenu","ExistingMenusDropdown","canSwitchNavigationMenu","navigationMenus","setSelectedMenu","onFinish","menus","onCreateFromMenu","toggleProps","variant","className","isAlternate","onClose","map","menu","id","title","rendered","name","NavigationPlaceholder","hasResolvedNavigationMenus","selectedMenu","isCreatingFromMenu","setIsCreatingFromMenu","menuName","setMenuName","isNewMenuModalVisible","setIsNewMenuModalVisible","createEmpty","setCreateEmpty","saveEntityRecord","createNavigationMenu","blocks","record","content","status","navigationMenu","onFinishMenuCreation","navigationMenuTitle","isResolvingPages","isResolvingMenus","menuItems","hasResolvedMenuItems","hasPages","hasMenus","isStillLoading","createFromMenu","innerBlocks","onCreateEmptyMenu","onCreateAllPages","block","length","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { serialize, createBlock } from '@wordpress/blocks';\nimport {\n\tPlaceholder,\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useCallback, useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, chevronDown, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\n\nimport useNavigationEntities from '../../use-navigation-entities';\nimport PlaceholderPreview from './placeholder-preview';\nimport menuItemsToBlocks from '../../menu-items-to-blocks';\nimport NavigationMenuNameModal from '../navigation-menu-name-modal';\nimport useNavigationMenu from '../../use-navigation-menu';\n\nconst ExistingMenusDropdown = ( {\n\tcanSwitchNavigationMenu,\n\tnavigationMenus,\n\tsetSelectedMenu,\n\tonFinish,\n\tmenus,\n\tonCreateFromMenu,\n} ) => {\n\tconst toggleProps = {\n\t\tvariant: 'primary',\n\t\tclassName: 'wp-block-navigation-placeholder__actions__dropdown',\n\t};\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttext={ __( 'Select existing menu' ) }\n\t\t\ticon={ chevronDown }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tpopoverProps={ { isAlternate: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t{ canSwitchNavigationMenu &&\n\t\t\t\t\t\t\tnavigationMenus.map( ( menu ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectedMenu( menu.id );\n\t\t\t\t\t\t\t\t\t\t\tonFinish( menu );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ menu.title.rendered }\n\t\t\t\t\t\t\t\t\t</MenuItem>\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\t<MenuGroup label={ __( 'Classic Menus' ) }>\n\t\t\t\t\t\t{ menus.map( ( menu ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetSelectedMenu( menu.id );\n\t\t\t\t\t\t\t\t\t\tonCreateFromMenu( menu.name );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ menu.name }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t);\n\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</DropdownMenu>\n\t);\n};\n\nexport default function NavigationPlaceholder( {\n\tonFinish,\n\tcanSwitchNavigationMenu,\n\thasResolvedNavigationMenus,\n} ) {\n\tconst [ selectedMenu, setSelectedMenu ] = useState();\n\n\tconst [ isCreatingFromMenu, setIsCreatingFromMenu ] = useState( false );\n\n\tconst [ menuName, setMenuName ] = useState( '' );\n\n\tconst [ isNewMenuModalVisible, setIsNewMenuModalVisible ] = useState(\n\t\tfalse\n\t);\n\n\tconst [ createEmpty, setCreateEmpty ] = useState( false );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\t// This callback uses data from the two placeholder steps and only creates\n\t// a new navigation menu when the user completes the final step.\n\tconst createNavigationMenu = useCallback(\n\t\tasync ( title = __( 'Untitled Navigation Menu' ), blocks = [] ) => {\n\t\t\tconst record = {\n\t\t\t\ttitle,\n\t\t\t\tcontent: serialize( blocks ),\n\t\t\t\tstatus: 'publish',\n\t\t\t};\n\n\t\t\tconst navigationMenu = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\trecord\n\t\t\t);\n\n\t\t\treturn navigationMenu;\n\t\t},\n\t\t[ serialize, saveEntityRecord ]\n\t);\n\n\tconst onFinishMenuCreation = async ( navigationMenuTitle, blocks ) => {\n\t\tconst navigationMenu = await createNavigationMenu(\n\t\t\tnavigationMenuTitle,\n\t\t\tblocks\n\t\t);\n\t\tonFinish( navigationMenu );\n\t};\n\n\tconst {\n\t\tisResolvingPages,\n\t\tmenus,\n\t\tisResolvingMenus,\n\t\tmenuItems,\n\t\thasResolvedMenuItems,\n\t\thasPages,\n\t\thasMenus,\n\t} = useNavigationEntities( selectedMenu );\n\n\tconst isStillLoading = isResolvingPages || isResolvingMenus;\n\n\tconst createFromMenu = useCallback(\n\t\t( name ) => {\n\t\t\tconst { innerBlocks: blocks } = menuItemsToBlocks( menuItems );\n\t\t\tonFinishMenuCreation( name, blocks );\n\t\t},\n\t\t[ menuItems, menuItemsToBlocks, onFinish ]\n\t);\n\n\tconst onCreateFromMenu = ( name ) => {\n\t\t// If we have menu items, create the block right away.\n\t\tif ( hasResolvedMenuItems ) {\n\t\t\tcreateFromMenu( name );\n\t\t\treturn;\n\t\t}\n\n\t\t// Otherwise, create the block when resolution finishes.\n\t\tsetIsCreatingFromMenu( true );\n\t\t// Store the name to use later.\n\t\tsetMenuName( name );\n\t};\n\n\tconst onCreateEmptyMenu = ( name ) => {\n\t\tonFinishMenuCreation( name, [] );\n\t};\n\n\tconst onCreateAllPages = ( name ) => {\n\t\tconst block = [ createBlock( 'core/page-list' ) ];\n\t\tonFinishMenuCreation( name, block );\n\t\tsetIsNewMenuModalVisible( true );\n\t};\n\n\tuseEffect( () => {\n\t\t// If the user selected a menu but we had to wait for menu items to\n\t\t// finish resolving, then create the block once resolution finishes.\n\t\tif ( isCreatingFromMenu && hasResolvedMenuItems ) {\n\t\t\tcreateFromMenu( menuName );\n\t\t\tsetIsCreatingFromMenu( false );\n\t\t}\n\t}, [ isCreatingFromMenu, hasResolvedMenuItems, menuName ] );\n\n\tconst { navigationMenus } = useNavigationMenu();\n\n\treturn (\n\t\t<>\n\t\t\t{ ( ! hasResolvedNavigationMenus || isStillLoading ) && (\n\t\t\t\t<PlaceholderPreview isLoading />\n\t\t\t) }\n\t\t\t{ hasResolvedNavigationMenus && ! isStillLoading && (\n\t\t\t\t<Placeholder className=\"wp-block-navigation-placeholder\">\n\t\t\t\t\t<PlaceholderPreview />\n\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__controls\">\n\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions\">\n\t\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions__indicator\">\n\t\t\t\t\t\t\t\t<Icon icon={ navigation } />{ ' ' }\n\t\t\t\t\t\t\t\t{ __( 'Navigation' ) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{ hasMenus || navigationMenus.length ? (\n\t\t\t\t\t\t\t\t<ExistingMenusDropdown\n\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu={\n\t\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\t\t\t\tsetSelectedMenu={ setSelectedMenu }\n\t\t\t\t\t\t\t\t\tonFinish={ onFinish }\n\t\t\t\t\t\t\t\t\tmenus={ menus }\n\t\t\t\t\t\t\t\t\tonCreateFromMenu={ onCreateFromMenu }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : undefined }\n\t\t\t\t\t\t\t{ hasPages ? (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\thasMenus || canSwitchNavigationMenu\n\t\t\t\t\t\t\t\t\t\t\t? 'tertiary'\n\t\t\t\t\t\t\t\t\t\t\t: 'primary'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsNewMenuModalVisible( true );\n\t\t\t\t\t\t\t\t\t\tsetCreateEmpty( false );\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{ __( 'Add all pages' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) : undefined }\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetIsNewMenuModalVisible( true );\n\t\t\t\t\t\t\t\t\tsetCreateEmpty( true );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Start empty' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ isNewMenuModalVisible && (\n\t\t\t\t<NavigationMenuNameModal\n\t\t\t\t\ttitle={ __( 'Create your new navigation menu' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsNewMenuModalVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonFinish={\n\t\t\t\t\t\tcreateEmpty ? onCreateEmptyMenu : onCreateAllPages\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/placeholder/index.js"],"names":["serialize","createBlock","Placeholder","Button","DropdownMenu","MenuGroup","MenuItem","store","coreStore","useDispatch","useCallback","useState","useEffect","__","navigation","chevronDown","Icon","useNavigationEntities","PlaceholderPreview","menuItemsToBlocks","NavigationMenuNameModal","useNavigationMenu","ExistingMenusDropdown","canSwitchNavigationMenu","navigationMenus","setSelectedMenu","onFinish","menus","onCreateFromMenu","toggleProps","variant","className","isAlternate","onClose","map","menu","id","title","rendered","name","NavigationPlaceholder","hasResolvedNavigationMenus","selectedMenu","isCreatingFromMenu","setIsCreatingFromMenu","menuName","setMenuName","isNewMenuModalVisible","setIsNewMenuModalVisible","createEmpty","setCreateEmpty","saveEntityRecord","createNavigationMenu","blocks","record","content","status","navigationMenu","onFinishMenuCreation","navigationMenuTitle","isResolvingPages","isResolvingMenus","menuItems","hasResolvedMenuItems","hasPages","hasMenus","isStillLoading","createFromMenu","innerBlocks","onCreateEmptyMenu","onCreateAllPages","block","length","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { serialize, createBlock } from '@wordpress/blocks';\nimport {\n\tPlaceholder,\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useCallback, useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, chevronDown, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\n\nimport useNavigationEntities from '../../use-navigation-entities';\nimport PlaceholderPreview from './placeholder-preview';\nimport menuItemsToBlocks from '../../menu-items-to-blocks';\nimport NavigationMenuNameModal from '../navigation-menu-name-modal';\nimport useNavigationMenu from '../../use-navigation-menu';\n\nconst ExistingMenusDropdown = ( {\n\tcanSwitchNavigationMenu,\n\tnavigationMenus,\n\tsetSelectedMenu,\n\tonFinish,\n\tmenus,\n\tonCreateFromMenu,\n} ) => {\n\tconst toggleProps = {\n\t\tvariant: 'primary',\n\t\tclassName: 'wp-block-navigation-placeholder__actions__dropdown',\n\t};\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttext={ __( 'Select existing menu' ) }\n\t\t\ticon={ chevronDown }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tpopoverProps={ { isAlternate: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t{ canSwitchNavigationMenu &&\n\t\t\t\t\t\t\tnavigationMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectedMenu( menu.id );\n\t\t\t\t\t\t\t\t\t\t\tonFinish( menu );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ menu.title.rendered }\n\t\t\t\t\t\t\t\t\t</MenuItem>\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\t<MenuGroup label={ __( 'Classic Menus' ) }>\n\t\t\t\t\t\t{ menus?.map( ( menu ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetSelectedMenu( menu.id );\n\t\t\t\t\t\t\t\t\t\tonCreateFromMenu( menu.name );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ menu.name }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t);\n\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</DropdownMenu>\n\t);\n};\n\nexport default function NavigationPlaceholder( {\n\tonFinish,\n\tcanSwitchNavigationMenu,\n\thasResolvedNavigationMenus,\n} ) {\n\tconst [ selectedMenu, setSelectedMenu ] = useState();\n\n\tconst [ isCreatingFromMenu, setIsCreatingFromMenu ] = useState( false );\n\n\tconst [ menuName, setMenuName ] = useState( '' );\n\n\tconst [ isNewMenuModalVisible, setIsNewMenuModalVisible ] = useState(\n\t\tfalse\n\t);\n\n\tconst [ createEmpty, setCreateEmpty ] = useState( false );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\t// This callback uses data from the two placeholder steps and only creates\n\t// a new navigation menu when the user completes the final step.\n\tconst createNavigationMenu = useCallback(\n\t\tasync ( title = __( 'Untitled Navigation Menu' ), blocks = [] ) => {\n\t\t\tconst record = {\n\t\t\t\ttitle,\n\t\t\t\tcontent: serialize( blocks ),\n\t\t\t\tstatus: 'publish',\n\t\t\t};\n\n\t\t\tconst navigationMenu = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\trecord\n\t\t\t);\n\n\t\t\treturn navigationMenu;\n\t\t},\n\t\t[ serialize, saveEntityRecord ]\n\t);\n\n\tconst onFinishMenuCreation = async ( navigationMenuTitle, blocks ) => {\n\t\tconst navigationMenu = await createNavigationMenu(\n\t\t\tnavigationMenuTitle,\n\t\t\tblocks\n\t\t);\n\t\tonFinish( navigationMenu );\n\t};\n\n\tconst {\n\t\tisResolvingPages,\n\t\tmenus,\n\t\tisResolvingMenus,\n\t\tmenuItems,\n\t\thasResolvedMenuItems,\n\t\thasPages,\n\t\thasMenus,\n\t} = useNavigationEntities( selectedMenu );\n\n\tconst isStillLoading = isResolvingPages || isResolvingMenus;\n\n\tconst createFromMenu = useCallback(\n\t\t( name ) => {\n\t\t\tconst { innerBlocks: blocks } = menuItemsToBlocks( menuItems );\n\t\t\tonFinishMenuCreation( name, blocks );\n\t\t},\n\t\t[ menuItems, menuItemsToBlocks, onFinish ]\n\t);\n\n\tconst onCreateFromMenu = ( name ) => {\n\t\t// If we have menu items, create the block right away.\n\t\tif ( hasResolvedMenuItems ) {\n\t\t\tcreateFromMenu( name );\n\t\t\treturn;\n\t\t}\n\n\t\t// Otherwise, create the block when resolution finishes.\n\t\tsetIsCreatingFromMenu( true );\n\t\t// Store the name to use later.\n\t\tsetMenuName( name );\n\t};\n\n\tconst onCreateEmptyMenu = ( name ) => {\n\t\tonFinishMenuCreation( name, [] );\n\t};\n\n\tconst onCreateAllPages = ( name ) => {\n\t\tconst block = [ createBlock( 'core/page-list' ) ];\n\t\tonFinishMenuCreation( name, block );\n\t\tsetIsNewMenuModalVisible( true );\n\t};\n\n\tuseEffect( () => {\n\t\t// If the user selected a menu but we had to wait for menu items to\n\t\t// finish resolving, then create the block once resolution finishes.\n\t\tif ( isCreatingFromMenu && hasResolvedMenuItems ) {\n\t\t\tcreateFromMenu( menuName );\n\t\t\tsetIsCreatingFromMenu( false );\n\t\t}\n\t}, [ isCreatingFromMenu, hasResolvedMenuItems, menuName ] );\n\n\tconst { navigationMenus } = useNavigationMenu();\n\n\treturn (\n\t\t<>\n\t\t\t{ ( ! hasResolvedNavigationMenus || isStillLoading ) && (\n\t\t\t\t<PlaceholderPreview isLoading />\n\t\t\t) }\n\t\t\t{ hasResolvedNavigationMenus && ! isStillLoading && (\n\t\t\t\t<Placeholder className=\"wp-block-navigation-placeholder\">\n\t\t\t\t\t<PlaceholderPreview />\n\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__controls\">\n\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions\">\n\t\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions__indicator\">\n\t\t\t\t\t\t\t\t<Icon icon={ navigation } />{ ' ' }\n\t\t\t\t\t\t\t\t{ __( 'Navigation' ) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{ hasMenus || navigationMenus.length ? (\n\t\t\t\t\t\t\t\t<ExistingMenusDropdown\n\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu={\n\t\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\t\t\t\tsetSelectedMenu={ setSelectedMenu }\n\t\t\t\t\t\t\t\t\tonFinish={ onFinish }\n\t\t\t\t\t\t\t\t\tmenus={ menus }\n\t\t\t\t\t\t\t\t\tonCreateFromMenu={ onCreateFromMenu }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : undefined }\n\t\t\t\t\t\t\t{ hasPages ? (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\thasMenus || canSwitchNavigationMenu\n\t\t\t\t\t\t\t\t\t\t\t? 'tertiary'\n\t\t\t\t\t\t\t\t\t\t\t: 'primary'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsNewMenuModalVisible( true );\n\t\t\t\t\t\t\t\t\t\tsetCreateEmpty( false );\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{ __( 'Add all pages' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) : undefined }\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetIsNewMenuModalVisible( true );\n\t\t\t\t\t\t\t\t\tsetCreateEmpty( true );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Start empty' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ isNewMenuModalVisible && (\n\t\t\t\t<NavigationMenuNameModal\n\t\t\t\t\ttitle={ __( 'Create your new navigation menu' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsNewMenuModalVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonFinish={\n\t\t\t\t\t\tcreateEmpty ? onCreateEmptyMenu : onCreateAllPages\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -1179,6 +1179,7 @@ figure.wp-block-image:not(.wp-block) {
|
|
|
1179
1179
|
.wp-block-navigation__container.is-parent-of-selected-block {
|
|
1180
1180
|
visibility: visible;
|
|
1181
1181
|
opacity: 1;
|
|
1182
|
+
overflow: visible;
|
|
1182
1183
|
}
|
|
1183
1184
|
|
|
1184
1185
|
.wp-block-navigation__container,
|
|
@@ -1589,6 +1590,7 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
|
|
|
1589
1590
|
min-width: 200px !important;
|
|
1590
1591
|
height: auto !important;
|
|
1591
1592
|
width: auto !important;
|
|
1593
|
+
overflow: visible !important;
|
|
1592
1594
|
}
|
|
1593
1595
|
|
|
1594
1596
|
/**
|
package/build-style/editor.css
CHANGED
|
@@ -1184,6 +1184,7 @@ figure.wp-block-image:not(.wp-block) {
|
|
|
1184
1184
|
.wp-block-navigation__container.is-parent-of-selected-block {
|
|
1185
1185
|
visibility: visible;
|
|
1186
1186
|
opacity: 1;
|
|
1187
|
+
overflow: visible;
|
|
1187
1188
|
}
|
|
1188
1189
|
|
|
1189
1190
|
.wp-block-navigation__container,
|
|
@@ -1594,6 +1595,7 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
|
|
|
1594
1595
|
min-width: 200px !important;
|
|
1595
1596
|
height: auto !important;
|
|
1596
1597
|
width: auto !important;
|
|
1598
|
+
overflow: visible !important;
|
|
1597
1599
|
}
|
|
1598
1600
|
|
|
1599
1601
|
/**
|
|
@@ -145,13 +145,13 @@
|
|
|
145
145
|
visibility: hidden;
|
|
146
146
|
width: 0;
|
|
147
147
|
height: 0;
|
|
148
|
+
overflow: hidden;
|
|
148
149
|
right: -1px;
|
|
149
150
|
top: 100%;
|
|
150
151
|
}
|
|
151
152
|
.wp-block-navigation .has-child :where(.wp-block-navigation__submenu-container) > .wp-block-navigation-item > .wp-block-navigation-item__content {
|
|
152
153
|
display: flex;
|
|
153
154
|
flex-grow: 1;
|
|
154
|
-
white-space: nowrap;
|
|
155
155
|
}
|
|
156
156
|
.wp-block-navigation .has-child :where(.wp-block-navigation__submenu-container) > .wp-block-navigation-item > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon {
|
|
157
157
|
margin-left: 0;
|
|
@@ -180,6 +180,7 @@
|
|
|
180
180
|
}
|
|
181
181
|
.wp-block-navigation .has-child:where(:not(.open-on-click)):hover > .wp-block-navigation__submenu-container {
|
|
182
182
|
visibility: visible;
|
|
183
|
+
overflow: visible;
|
|
183
184
|
opacity: 1;
|
|
184
185
|
width: auto;
|
|
185
186
|
height: auto;
|
|
@@ -187,6 +188,7 @@
|
|
|
187
188
|
}
|
|
188
189
|
.wp-block-navigation .has-child:where(:not(.open-on-click):not(.open-on-hover-click)):focus-within > .wp-block-navigation__submenu-container {
|
|
189
190
|
visibility: visible;
|
|
191
|
+
overflow: visible;
|
|
190
192
|
opacity: 1;
|
|
191
193
|
width: auto;
|
|
192
194
|
height: auto;
|
|
@@ -194,6 +196,7 @@
|
|
|
194
196
|
}
|
|
195
197
|
.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true] + .wp-block-navigation__submenu-container {
|
|
196
198
|
visibility: visible;
|
|
199
|
+
overflow: visible;
|
|
197
200
|
opacity: 1;
|
|
198
201
|
width: auto;
|
|
199
202
|
height: auto;
|
|
@@ -145,13 +145,13 @@
|
|
|
145
145
|
visibility: hidden;
|
|
146
146
|
width: 0;
|
|
147
147
|
height: 0;
|
|
148
|
+
overflow: hidden;
|
|
148
149
|
left: -1px;
|
|
149
150
|
top: 100%;
|
|
150
151
|
}
|
|
151
152
|
.wp-block-navigation .has-child :where(.wp-block-navigation__submenu-container) > .wp-block-navigation-item > .wp-block-navigation-item__content {
|
|
152
153
|
display: flex;
|
|
153
154
|
flex-grow: 1;
|
|
154
|
-
white-space: nowrap;
|
|
155
155
|
}
|
|
156
156
|
.wp-block-navigation .has-child :where(.wp-block-navigation__submenu-container) > .wp-block-navigation-item > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon {
|
|
157
157
|
margin-right: 0;
|
|
@@ -180,6 +180,7 @@
|
|
|
180
180
|
}
|
|
181
181
|
.wp-block-navigation .has-child:where(:not(.open-on-click)):hover > .wp-block-navigation__submenu-container {
|
|
182
182
|
visibility: visible;
|
|
183
|
+
overflow: visible;
|
|
183
184
|
opacity: 1;
|
|
184
185
|
width: auto;
|
|
185
186
|
height: auto;
|
|
@@ -187,6 +188,7 @@
|
|
|
187
188
|
}
|
|
188
189
|
.wp-block-navigation .has-child:where(:not(.open-on-click):not(.open-on-hover-click)):focus-within > .wp-block-navigation__submenu-container {
|
|
189
190
|
visibility: visible;
|
|
191
|
+
overflow: visible;
|
|
190
192
|
opacity: 1;
|
|
191
193
|
width: auto;
|
|
192
194
|
height: auto;
|
|
@@ -194,6 +196,7 @@
|
|
|
194
196
|
}
|
|
195
197
|
.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true] + .wp-block-navigation__submenu-container {
|
|
196
198
|
visibility: visible;
|
|
199
|
+
overflow: visible;
|
|
197
200
|
opacity: 1;
|
|
198
201
|
width: auto;
|
|
199
202
|
height: auto;
|
|
@@ -1159,6 +1159,7 @@ h6.has-background {
|
|
|
1159
1159
|
max-width: 100%;
|
|
1160
1160
|
vertical-align: bottom;
|
|
1161
1161
|
}
|
|
1162
|
+
.wp-block-image:not(.is-style-rounded) > a,
|
|
1162
1163
|
.wp-block-image:not(.is-style-rounded) img {
|
|
1163
1164
|
border-radius: inherit;
|
|
1164
1165
|
}
|
|
@@ -1550,13 +1551,13 @@ ul.has-background {
|
|
|
1550
1551
|
visibility: hidden;
|
|
1551
1552
|
width: 0;
|
|
1552
1553
|
height: 0;
|
|
1554
|
+
overflow: hidden;
|
|
1553
1555
|
right: -1px;
|
|
1554
1556
|
top: 100%;
|
|
1555
1557
|
}
|
|
1556
1558
|
.wp-block-navigation .has-child :where(.wp-block-navigation__submenu-container) > .wp-block-navigation-item > .wp-block-navigation-item__content {
|
|
1557
1559
|
display: flex;
|
|
1558
1560
|
flex-grow: 1;
|
|
1559
|
-
white-space: nowrap;
|
|
1560
1561
|
}
|
|
1561
1562
|
.wp-block-navigation .has-child :where(.wp-block-navigation__submenu-container) > .wp-block-navigation-item > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon {
|
|
1562
1563
|
margin-left: 0;
|
|
@@ -1585,6 +1586,7 @@ ul.has-background {
|
|
|
1585
1586
|
}
|
|
1586
1587
|
.wp-block-navigation .has-child:where(:not(.open-on-click)):hover > .wp-block-navigation__submenu-container {
|
|
1587
1588
|
visibility: visible;
|
|
1589
|
+
overflow: visible;
|
|
1588
1590
|
opacity: 1;
|
|
1589
1591
|
width: auto;
|
|
1590
1592
|
height: auto;
|
|
@@ -1592,6 +1594,7 @@ ul.has-background {
|
|
|
1592
1594
|
}
|
|
1593
1595
|
.wp-block-navigation .has-child:where(:not(.open-on-click):not(.open-on-hover-click)):focus-within > .wp-block-navigation__submenu-container {
|
|
1594
1596
|
visibility: visible;
|
|
1597
|
+
overflow: visible;
|
|
1595
1598
|
opacity: 1;
|
|
1596
1599
|
width: auto;
|
|
1597
1600
|
height: auto;
|
|
@@ -1599,6 +1602,7 @@ ul.has-background {
|
|
|
1599
1602
|
}
|
|
1600
1603
|
.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true] + .wp-block-navigation__submenu-container {
|
|
1601
1604
|
visibility: visible;
|
|
1605
|
+
overflow: visible;
|
|
1602
1606
|
opacity: 1;
|
|
1603
1607
|
width: auto;
|
|
1604
1608
|
height: auto;
|
|
@@ -1851,6 +1855,7 @@ button.wp-block-navigation-item__content {
|
|
|
1851
1855
|
color: currentColor;
|
|
1852
1856
|
font-size: inherit;
|
|
1853
1857
|
font-family: inherit;
|
|
1858
|
+
line-height: inherit;
|
|
1854
1859
|
text-align: right;
|
|
1855
1860
|
}
|
|
1856
1861
|
|
package/build-style/style.css
CHANGED
|
@@ -1163,6 +1163,7 @@ h6.has-background {
|
|
|
1163
1163
|
max-width: 100%;
|
|
1164
1164
|
vertical-align: bottom;
|
|
1165
1165
|
}
|
|
1166
|
+
.wp-block-image:not(.is-style-rounded) > a,
|
|
1166
1167
|
.wp-block-image:not(.is-style-rounded) img {
|
|
1167
1168
|
border-radius: inherit;
|
|
1168
1169
|
}
|
|
@@ -1572,13 +1573,13 @@ ul.has-background {
|
|
|
1572
1573
|
visibility: hidden;
|
|
1573
1574
|
width: 0;
|
|
1574
1575
|
height: 0;
|
|
1576
|
+
overflow: hidden;
|
|
1575
1577
|
left: -1px;
|
|
1576
1578
|
top: 100%;
|
|
1577
1579
|
}
|
|
1578
1580
|
.wp-block-navigation .has-child :where(.wp-block-navigation__submenu-container) > .wp-block-navigation-item > .wp-block-navigation-item__content {
|
|
1579
1581
|
display: flex;
|
|
1580
1582
|
flex-grow: 1;
|
|
1581
|
-
white-space: nowrap;
|
|
1582
1583
|
}
|
|
1583
1584
|
.wp-block-navigation .has-child :where(.wp-block-navigation__submenu-container) > .wp-block-navigation-item > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon {
|
|
1584
1585
|
margin-right: 0;
|
|
@@ -1607,6 +1608,7 @@ ul.has-background {
|
|
|
1607
1608
|
}
|
|
1608
1609
|
.wp-block-navigation .has-child:where(:not(.open-on-click)):hover > .wp-block-navigation__submenu-container {
|
|
1609
1610
|
visibility: visible;
|
|
1611
|
+
overflow: visible;
|
|
1610
1612
|
opacity: 1;
|
|
1611
1613
|
width: auto;
|
|
1612
1614
|
height: auto;
|
|
@@ -1614,6 +1616,7 @@ ul.has-background {
|
|
|
1614
1616
|
}
|
|
1615
1617
|
.wp-block-navigation .has-child:where(:not(.open-on-click):not(.open-on-hover-click)):focus-within > .wp-block-navigation__submenu-container {
|
|
1616
1618
|
visibility: visible;
|
|
1619
|
+
overflow: visible;
|
|
1617
1620
|
opacity: 1;
|
|
1618
1621
|
width: auto;
|
|
1619
1622
|
height: auto;
|
|
@@ -1621,6 +1624,7 @@ ul.has-background {
|
|
|
1621
1624
|
}
|
|
1622
1625
|
.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true] + .wp-block-navigation__submenu-container {
|
|
1623
1626
|
visibility: visible;
|
|
1627
|
+
overflow: visible;
|
|
1624
1628
|
opacity: 1;
|
|
1625
1629
|
width: auto;
|
|
1626
1630
|
height: auto;
|
|
@@ -1873,6 +1877,7 @@ button.wp-block-navigation-item__content {
|
|
|
1873
1877
|
color: currentColor;
|
|
1874
1878
|
font-size: inherit;
|
|
1875
1879
|
font-family: inherit;
|
|
1880
|
+
line-height: inherit;
|
|
1876
1881
|
text-align: left;
|
|
1877
1882
|
}
|
|
1878
1883
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/block-library",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.5",
|
|
4
4
|
"description": "Block library for the WordPress editor.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@wordpress/blocks": "^11.1.3",
|
|
42
42
|
"@wordpress/components": "^19.0.1",
|
|
43
43
|
"@wordpress/compose": "^5.0.5",
|
|
44
|
-
"@wordpress/core-data": "^4.0.
|
|
44
|
+
"@wordpress/core-data": "^4.0.6",
|
|
45
45
|
"@wordpress/data": "^6.1.3",
|
|
46
46
|
"@wordpress/date": "^4.2.2",
|
|
47
47
|
"@wordpress/deprecated": "^3.2.2",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"@wordpress/keycodes": "^3.2.3",
|
|
58
58
|
"@wordpress/notices": "^3.2.6",
|
|
59
59
|
"@wordpress/primitives": "^3.0.3",
|
|
60
|
-
"@wordpress/reusable-blocks": "^3.0.
|
|
60
|
+
"@wordpress/reusable-blocks": "^3.0.7",
|
|
61
61
|
"@wordpress/rich-text": "^5.0.5",
|
|
62
62
|
"@wordpress/server-side-render": "^3.0.5",
|
|
63
63
|
"@wordpress/url": "^3.3.0",
|
|
@@ -73,5 +73,5 @@
|
|
|
73
73
|
"publishConfig": {
|
|
74
74
|
"access": "public"
|
|
75
75
|
},
|
|
76
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "68d15d606a5ebcbea3977f39b0e758bcf282b96a"
|
|
77
77
|
}
|
package/src/image/style.scss
CHANGED
|
@@ -48,7 +48,7 @@ const ExistingMenusDropdown = ( {
|
|
|
48
48
|
<>
|
|
49
49
|
<MenuGroup label={ __( 'Menus' ) }>
|
|
50
50
|
{ canSwitchNavigationMenu &&
|
|
51
|
-
navigationMenus
|
|
51
|
+
navigationMenus?.map( ( menu ) => {
|
|
52
52
|
return (
|
|
53
53
|
<MenuItem
|
|
54
54
|
onClick={ () => {
|
|
@@ -64,7 +64,7 @@ const ExistingMenusDropdown = ( {
|
|
|
64
64
|
} ) }
|
|
65
65
|
</MenuGroup>
|
|
66
66
|
<MenuGroup label={ __( 'Classic Menus' ) }>
|
|
67
|
-
{ menus
|
|
67
|
+
{ menus?.map( ( menu ) => {
|
|
68
68
|
return (
|
|
69
69
|
<MenuItem
|
|
70
70
|
onClick={ () => {
|
|
@@ -119,6 +119,7 @@
|
|
|
119
119
|
// Don't take up space when the menu is collapsed.
|
|
120
120
|
width: 0;
|
|
121
121
|
height: 0;
|
|
122
|
+
overflow: hidden; // Overflow is necessary to set, otherwise submenu items will take up space.
|
|
122
123
|
|
|
123
124
|
// Submenu items.
|
|
124
125
|
> .wp-block-navigation-item {
|
|
@@ -126,10 +127,6 @@
|
|
|
126
127
|
display: flex;
|
|
127
128
|
flex-grow: 1;
|
|
128
129
|
|
|
129
|
-
// Without this, the changing to zero on hover-out can cause wrapping and
|
|
130
|
-
// result in an invinite hover/hover-out loop.
|
|
131
|
-
white-space: nowrap;
|
|
132
|
-
|
|
133
130
|
// Right-align the chevron in submenus.
|
|
134
131
|
.wp-block-navigation__submenu-icon {
|
|
135
132
|
margin-right: 0;
|
|
@@ -178,6 +175,7 @@
|
|
|
178
175
|
// Show submenus on hover unless they open on click.
|
|
179
176
|
&:where(:not(.open-on-click)):hover > .wp-block-navigation__submenu-container {
|
|
180
177
|
visibility: visible;
|
|
178
|
+
overflow: visible;
|
|
181
179
|
opacity: 1;
|
|
182
180
|
width: auto;
|
|
183
181
|
height: auto;
|
|
@@ -187,6 +185,7 @@
|
|
|
187
185
|
// Keep submenus open when focus is within.
|
|
188
186
|
&:where(:not(.open-on-click):not(.open-on-hover-click)):focus-within > .wp-block-navigation__submenu-container {
|
|
189
187
|
visibility: visible;
|
|
188
|
+
overflow: visible;
|
|
190
189
|
opacity: 1;
|
|
191
190
|
width: auto;
|
|
192
191
|
height: auto;
|
|
@@ -196,6 +195,7 @@
|
|
|
196
195
|
// Show submenus on click.
|
|
197
196
|
.wp-block-navigation-submenu__toggle[aria-expanded="true"] + .wp-block-navigation__submenu-container {
|
|
198
197
|
visibility: visible;
|
|
198
|
+
overflow: visible;
|
|
199
199
|
opacity: 1;
|
|
200
200
|
width: auto;
|
|
201
201
|
height: auto;
|
|
@@ -396,7 +396,6 @@
|
|
|
396
396
|
border: none;
|
|
397
397
|
padding-left: 32px;
|
|
398
398
|
padding-right: 32px;
|
|
399
|
-
|
|
400
399
|
}
|
|
401
400
|
|
|
402
401
|
// Space unfolded items using gap and padding for submenus.
|
|
@@ -55,7 +55,10 @@ function render_block_core_template_part( $attributes ) {
|
|
|
55
55
|
// render the corresponding file content.
|
|
56
56
|
$template_part_file_path = get_theme_file_path( '/block-template-parts/' . $attributes['slug'] . '.html' );
|
|
57
57
|
if ( 0 === validate_file( $attributes['slug'] ) && file_exists( $template_part_file_path ) ) {
|
|
58
|
-
$content =
|
|
58
|
+
$content = file_get_contents( $template_part_file_path );
|
|
59
|
+
$content = is_string( $content ) && '' !== $content
|
|
60
|
+
? _inject_theme_attribute_in_block_template_content( $content )
|
|
61
|
+
: '';
|
|
59
62
|
}
|
|
60
63
|
}
|
|
61
64
|
}
|