@wordpress/block-library 7.3.1 → 7.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/build/audio/edit.js +1 -1
  2. package/build/audio/edit.js.map +1 -1
  3. package/build/comment-template/edit.js +3 -1
  4. package/build/comment-template/edit.js.map +1 -1
  5. package/build/comment-template/hooks.js +14 -4
  6. package/build/comment-template/hooks.js.map +1 -1
  7. package/build/comments-pagination/edit.js +18 -1
  8. package/build/comments-pagination/edit.js.map +1 -1
  9. package/build/comments-query-loop/edit.js +2 -2
  10. package/build/comments-query-loop/edit.js.map +1 -1
  11. package/build/comments-title/edit.js +151 -0
  12. package/build/comments-title/edit.js.map +1 -0
  13. package/build/comments-title/index.js +101 -0
  14. package/build/comments-title/index.js.map +1 -0
  15. package/build/cover/transforms.js +33 -32
  16. package/build/cover/transforms.js.map +1 -1
  17. package/build/index.js +6 -4
  18. package/build/index.js.map +1 -1
  19. package/build/list/index.js +13 -2
  20. package/build/list/index.js.map +1 -1
  21. package/build/navigation/edit/index.js +17 -1
  22. package/build/navigation/edit/index.js.map +1 -1
  23. package/build/navigation/edit/inner-blocks.js +5 -7
  24. package/build/navigation/edit/inner-blocks.js.map +1 -1
  25. package/build/navigation/edit/navigation-menu-selector.js +7 -2
  26. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  27. package/build/navigation-link/edit.js +29 -30
  28. package/build/navigation-link/edit.js.map +1 -1
  29. package/build/navigation-submenu/edit.js +14 -14
  30. package/build/navigation-submenu/edit.js.map +1 -1
  31. package/build/post-comments/edit.js +141 -35
  32. package/build/post-comments/edit.js.map +1 -1
  33. package/build/post-comments/index.js +2 -1
  34. package/build/post-comments/index.js.map +1 -1
  35. package/build/post-comments-form/edit.js +22 -1
  36. package/build/post-comments-form/edit.js.map +1 -1
  37. package/build/post-comments-form/index.js +1 -0
  38. package/build/post-comments-form/index.js.map +1 -1
  39. package/build/post-content/edit.js +1 -1
  40. package/build/post-content/edit.js.map +1 -1
  41. package/build/post-featured-image/edit.js +19 -7
  42. package/build/post-featured-image/edit.js.map +1 -1
  43. package/build/query-no-results/edit.js +1 -1
  44. package/build/query-no-results/edit.js.map +1 -1
  45. package/build/quote/index.js +13 -2
  46. package/build/quote/index.js.map +1 -1
  47. package/build-module/audio/edit.js +1 -1
  48. package/build-module/audio/edit.js.map +1 -1
  49. package/build-module/comment-template/edit.js +3 -1
  50. package/build-module/comment-template/edit.js.map +1 -1
  51. package/build-module/comment-template/hooks.js +14 -4
  52. package/build-module/comment-template/hooks.js.map +1 -1
  53. package/build-module/comments-pagination/edit.js +19 -2
  54. package/build-module/comments-pagination/edit.js.map +1 -1
  55. package/build-module/comments-query-loop/edit.js +2 -2
  56. package/build-module/comments-query-loop/edit.js.map +1 -1
  57. package/build-module/comments-title/edit.js +135 -0
  58. package/build-module/comments-title/edit.js.map +1 -0
  59. package/build-module/comments-title/index.js +88 -0
  60. package/build-module/comments-title/index.js.map +1 -0
  61. package/build-module/cover/transforms.js +33 -32
  62. package/build-module/cover/transforms.js.map +1 -1
  63. package/build-module/index.js +5 -4
  64. package/build-module/index.js.map +1 -1
  65. package/build-module/list/index.js +9 -3
  66. package/build-module/list/index.js.map +1 -1
  67. package/build-module/navigation/edit/index.js +17 -1
  68. package/build-module/navigation/edit/index.js.map +1 -1
  69. package/build-module/navigation/edit/inner-blocks.js +5 -7
  70. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  71. package/build-module/navigation/edit/navigation-menu-selector.js +6 -2
  72. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  73. package/build-module/navigation-link/edit.js +29 -30
  74. package/build-module/navigation-link/edit.js.map +1 -1
  75. package/build-module/navigation-submenu/edit.js +14 -14
  76. package/build-module/navigation-submenu/edit.js.map +1 -1
  77. package/build-module/post-comments/edit.js +143 -38
  78. package/build-module/post-comments/edit.js.map +1 -1
  79. package/build-module/post-comments/index.js +2 -1
  80. package/build-module/post-comments/index.js.map +1 -1
  81. package/build-module/post-comments-form/edit.js +21 -1
  82. package/build-module/post-comments-form/edit.js.map +1 -1
  83. package/build-module/post-comments-form/index.js +1 -0
  84. package/build-module/post-comments-form/index.js.map +1 -1
  85. package/build-module/post-content/edit.js +1 -1
  86. package/build-module/post-content/edit.js.map +1 -1
  87. package/build-module/post-featured-image/edit.js +19 -7
  88. package/build-module/post-featured-image/edit.js.map +1 -1
  89. package/build-module/query-no-results/edit.js +1 -1
  90. package/build-module/query-no-results/edit.js.map +1 -1
  91. package/build-module/quote/index.js +9 -3
  92. package/build-module/quote/index.js.map +1 -1
  93. package/build-style/comment-content/style-rtl.css +81 -0
  94. package/build-style/comment-content/style.css +81 -0
  95. package/build-style/comments-title/editor-rtl.css +79 -0
  96. package/build-style/comments-title/editor.css +79 -0
  97. package/build-style/cover/style-rtl.css +1 -1
  98. package/build-style/cover/style.css +1 -1
  99. package/build-style/editor-rtl.css +12 -0
  100. package/build-style/editor.css +12 -0
  101. package/build-style/latest-posts/style-rtl.css +2 -0
  102. package/build-style/latest-posts/style.css +4 -0
  103. package/build-style/post-comments/editor-rtl.css +79 -0
  104. package/build-style/post-comments/editor.css +79 -0
  105. package/build-style/post-comments/style-rtl.css +1 -3
  106. package/build-style/post-comments/style.css +1 -3
  107. package/build-style/post-comments-form/editor-rtl.css +79 -0
  108. package/build-style/post-comments-form/editor.css +79 -0
  109. package/build-style/post-comments-form/style-rtl.css +9 -0
  110. package/build-style/post-comments-form/style.css +9 -0
  111. package/build-style/style-rtl.css +13 -4
  112. package/build-style/style.css +15 -4
  113. package/package.json +28 -28
  114. package/src/audio/edit.js +1 -1
  115. package/src/comment-author-name/index.php +7 -5
  116. package/src/comment-content/index.php +25 -3
  117. package/src/comment-content/style.scss +5 -0
  118. package/src/comment-edit-link/index.php +1 -4
  119. package/src/comment-reply-link/index.php +1 -4
  120. package/src/comment-template/edit.js +5 -2
  121. package/src/comment-template/hooks.js +15 -2
  122. package/src/comment-template/index.php +23 -2
  123. package/src/comments-pagination/edit.js +23 -0
  124. package/src/comments-query-loop/edit.js +2 -0
  125. package/src/comments-title/block.json +70 -0
  126. package/src/comments-title/edit.js +213 -0
  127. package/src/comments-title/editor.scss +4 -0
  128. package/src/comments-title/index.js +18 -0
  129. package/src/comments-title/index.php +75 -0
  130. package/src/cover/index.php +1 -1
  131. package/src/cover/style.scss +1 -1
  132. package/src/cover/transforms.js +51 -28
  133. package/src/editor.scss +3 -0
  134. package/src/index.js +8 -2
  135. package/src/latest-posts/style.scss +4 -0
  136. package/src/list/index.js +7 -3
  137. package/src/navigation/edit/index.js +24 -0
  138. package/src/navigation/edit/inner-blocks.js +5 -7
  139. package/src/navigation/edit/navigation-menu-selector.js +15 -9
  140. package/src/navigation-link/edit.js +40 -43
  141. package/src/navigation-submenu/edit.js +13 -17
  142. package/src/post-comments/block.json +2 -1
  143. package/src/post-comments/edit.js +204 -44
  144. package/src/post-comments/editor.scss +3 -0
  145. package/src/post-comments/style.scss +1 -5
  146. package/src/post-comments-form/block.json +1 -0
  147. package/src/post-comments-form/edit.js +39 -2
  148. package/src/post-comments-form/editor.scss +3 -0
  149. package/src/post-comments-form/index.php +16 -5
  150. package/src/post-comments-form/style.scss +11 -0
  151. package/src/post-content/edit.js +15 -1
  152. package/src/post-featured-image/edit.js +24 -12
  153. package/src/query-no-results/edit.js +1 -1
  154. package/src/quote/index.js +7 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["EMPTY_ARRAY","getComputedStyle","node","ownerDocument","defaultView","detectColors","colorsDetectionElement","setColor","setBackground","color","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","Navigation","attributes","setAttributes","clientId","isSelected","className","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","context","navigationArea","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","layout","justifyContent","orientation","flexWrap","hasIcon","areaMenu","setAreaMenu","noop","process","env","IS_GUTENBERG_PLUGIN","navigationAreaMenu","undefined","ref","registry","setRef","postId","hasAlreadyRendered","RecursionProvider","showNavigationMenuDeleteNotice","name","showNavigationMenuCreateNotice","hideNavigationMenuCreateNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isCreatingNavigationMenu","CREATE_NAVIGATION_MENU_PENDING","CREATE_NAVIGATION_MENU_SUCCESS","id","selectBlock","CREATE_NAVIGATION_MENU_ERROR","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","hasSubmenus","select","getBlock","getBlocks","hasSelectedInnerBlock","blockEditorStore","_uncontrolledInnerBlocks","innerBlocks","_hasUncontrolledInnerBlocks","length","_controlledInnerBlocks","find","block","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isWithinUnassignedArea","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navRef","isDraftNavigationMenu","convert","classicMenuConversionStatus","classicMenuConversionError","classicMenuConversionResult","isConvertingClassicMenu","CLASSIC_MENU_CONVERSION_PENDING","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","blockProps","class","slug","overlayClassnames","overlayStyles","enableContrastChecking","Platform","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","showClassicMenuConversionErrorNotice","hideClassicMenuConversionErrorNotice","handleUpdateMenu","menuId","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","current","subMenuElement","querySelector","showCantEditNotice","hideCantEditNotice","message","showCantCreateNotice","hideCantCreateNotice","handleSelectNavigation","navPostOrClassicMenu","isClassicMenu","hasOwnProperty","resetToEmptyBlock","batch","hasUnsavedBlocks","post","PlaceholderComponent","Placeholder","isResponsive","overlayMenuPreviewClasses","open","onChange","label","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\t__experimentalUseNoRecursiveRenders as useNoRecursiveRenders,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n} from '@wordpress/block-editor';\nimport { EntityProvider, useEntityProp } from '@wordpress/core-data';\n\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToolbarGroup,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\nimport useNavigationNotice from './use-navigation-notice';\nimport OverlayMenuIcon from './overlay-menu-icon';\nimport useConvertClassicToBlockMenu, {\n\tCLASSIC_MENU_CONVERSION_ERROR,\n\tCLASSIC_MENU_CONVERSION_PENDING,\n\tCLASSIC_MENU_CONVERSION_SUCCESS,\n} from './use-convert-classic-menu-to-block-menu';\nimport useCreateNavigationMenu, {\n\tCREATE_NAVIGATION_MENU_ERROR,\n\tCREATE_NAVIGATION_MENU_PENDING,\n\tCREATE_NAVIGATION_MENU_SUCCESS,\n} from './use-create-navigation-menu';\n\nconst EMPTY_ARRAY = [];\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nfunction detectColors( colorsDetectionElement, setColor, setBackground ) {\n\tif ( ! colorsDetectionElement ) {\n\t\treturn;\n\t}\n\tsetColor( getComputedStyle( colorsDetectionElement ).color );\n\n\tlet backgroundColorNode = colorsDetectionElement;\n\tlet backgroundColor = getComputedStyle( backgroundColorNode )\n\t\t.backgroundColor;\n\twhile (\n\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\tbackgroundColorNode.parentNode &&\n\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t) {\n\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\tbackgroundColor = getComputedStyle( backgroundColorNode )\n\t\t\t.backgroundColor;\n\t}\n\n\tsetBackground( backgroundColor );\n}\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\tcontext: { navigationArea },\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t} = attributes;\n\n\tlet areaMenu,\n\t\tsetAreaMenu = noop;\n\t// Navigation areas are deprecated and on their way out. Let's not perform\n\t// the request unless we're in an environment where the endpoint exists.\n\tif ( process.env.IS_GUTENBERG_PLUGIN ) {\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\t[ areaMenu, setAreaMenu ] = useEntityProp(\n\t\t\t'root',\n\t\t\t'navigationArea',\n\t\t\t'navigation',\n\t\t\tnavigationArea\n\t\t);\n\t}\n\n\tconst navigationAreaMenu = areaMenu === 0 ? undefined : areaMenu;\n\n\tconst ref = navigationArea ? navigationAreaMenu : attributes.ref;\n\n\tconst registry = useRegistry();\n\tconst setRef = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { ref: postId } );\n\t\t\tif ( navigationArea ) {\n\t\t\t\tsetAreaMenu( postId );\n\t\t\t}\n\t\t},\n\t\t[ navigationArea ]\n\t);\n\n\tconst [ hasAlreadyRendered, RecursionProvider ] = useNoRecursiveRenders(\n\t\t`navigationMenu/${ ref }`\n\t);\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tuseNavigationEntities();\n\n\tconst [ showNavigationMenuDeleteNotice ] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/delete',\n\t} );\n\n\tconst [\n\t\tshowNavigationMenuCreateNotice,\n\t\thideNavigationMenuCreateNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/create',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst isCreatingNavigationMenu =\n\t\tcreateNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING;\n\n\tuseEffect( () => {\n\t\thideNavigationMenuCreateNotice();\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_SUCCESS ) {\n\t\t\tsetRef( createNavigationMenuPost.id );\n\t\t\tselectBlock( clientId );\n\n\t\t\tshowNavigationMenuCreateNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_ERROR ) {\n\t\t\tshowNavigationMenuCreateNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenu,\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost,\n\t] );\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\thasSubmenus,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlocks, hasSelectedInnerBlock } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\t// This relies on the fact that `getBlock` won't return controlled\n\t\t\t// inner blocks, while `getBlocks` does. It might be more stable to\n\t\t\t// introduce a selector like `getUncontrolledInnerBlocks`, just in\n\t\t\t// case `getBlock` is fixed.\n\t\t\tconst _uncontrolledInnerBlocks = getBlock( clientId ).innerBlocks;\n\t\t\tconst _hasUncontrolledInnerBlocks = !! _uncontrolledInnerBlocks?.length;\n\t\t\tconst _controlledInnerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? EMPTY_ARRAY\n\t\t\t\t: getBlocks( clientId );\n\t\t\tconst innerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? _uncontrolledInnerBlocks\n\t\t\t\t: _controlledInnerBlocks;\n\n\t\t\treturn {\n\t\t\t\thasSubmenus: !! innerBlocks.find(\n\t\t\t\t\t( block ) => block.name === 'core/navigation-submenu'\n\t\t\t\t),\n\t\t\t\thasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,\n\t\t\t\tuncontrolledInnerBlocks: _uncontrolledInnerBlocks,\n\t\t\t\tisInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [\n\t\thasSavedUnsavedInnerBlocks,\n\t\tsetHasSavedUnsavedInnerBlocks,\n\t] = useState( false );\n\n\tconst isWithinUnassignedArea = !! navigationArea && ! ref;\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] = useState(\n\t\tfalse\n\t);\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\tisResolvingCanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\t// Attempt to retrieve and prioritize any existing navigation menu unless\n\t// a specific ref is allocated or the user is explicitly creating a new menu. The aim is\n\t// for the block to \"just work\" from a user perspective using existing data.\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisCreatingNavigationMenu ||\n\t\t\tref ||\n\t\t\t! navigationMenus?.length ||\n\t\t\tnavigationMenus?.length > 1\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetRef( navigationMenus[ 0 ].id );\n\t}, [ navigationMenus ] );\n\n\tconst navRef = useRef();\n\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\n\tconst {\n\t\tconvert,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t\tvalue: classicMenuConversionResult,\n\t} = useConvertClassicToBlockMenu( clientId );\n\n\tconst isConvertingClassicMenu =\n\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;\n\n\t// The standard HTML5 tag for the block wrapper.\n\tconst TagName = 'nav';\n\n\t// \"placeholder\" shown if:\n\t// - there is no ref attribute pointing to a Navigation Post.\n\t// - there is no classic menu conversion process in progress.\n\t// - there is no menu creation process in progress.\n\t// - there are no uncontrolled blocks.\n\t// - (legacy) there is a Navigation Area without a ref attribute pointing to a Navigation Post.\n\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\t( ! hasUncontrolledInnerBlocks || isWithinUnassignedArea );\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\t// \"loading\" state:\n\t// - there is a menu creation process in progress.\n\t// - there is a classic menu conversion process in progress.\n\t// OR\n\t// - there is a ref attribute pointing to a Navigation Post\n\t// - the Navigation Post isn't available (hasn't resolved) yet.\n\tconst isLoading =\n\t\t! hasResolvedNavigationMenus ||\n\t\tisCreatingNavigationMenu ||\n\t\tisConvertingClassicMenu ||\n\t\t!! ( ref && ! isEntityAvailable && ! isConvertingClassicMenu );\n\n\tconst textDecoration = attributes.style?.typography?.textDecoration;\n\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'color',\n\t\t\t\ttextColor?.slug\n\t\t\t) ]: !! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor?.slug\n\t\t\t) ]: !! backgroundColor?.slug,\n\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\tconst overlayClassnames = classnames( {\n\t\t'has-text-color':\n\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'color',\n\t\t\toverlayTextColor?.slug\n\t\t) ]: !! overlayTextColor?.slug,\n\t\t'has-background':\n\t\t\t!! overlayBackgroundColor.color || overlayBackgroundColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayBackgroundColor?.slug\n\t\t) ]: !! overlayBackgroundColor?.slug,\n\t} );\n\n\tconst overlayStyles = {\n\t\tcolor: ! overlayTextColor?.slug && overlayTextColor?.color,\n\t\tbackgroundColor:\n\t\t\t! overlayBackgroundColor?.slug &&\n\t\t\toverlayBackgroundColor?.color &&\n\t\t\toverlayBackgroundColor.color,\n\t};\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst [\n\t\tshowClassicMenuConversionErrorNotice,\n\t\thideClassicMenuConversionErrorNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/classic-menu-conversion/error',\n\t} );\n\n\tfunction handleUpdateMenu( menuId ) {\n\t\tsetRef( menuId );\n\t\tselectBlock( clientId );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif (\n\t\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS &&\n\t\t\tclassicMenuConversionResult\n\t\t) {\n\t\t\thandleUpdateMenu( classicMenuConversionResult?.id );\n\t\t\thideClassicMenuConversionErrorNotice();\n\t\t\tspeak( __( 'Classic menu imported successfully.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionErrorNotice( classicMenuConversionError );\n\t\t\tspeak( __( 'Classic menu import failed.' ) );\n\t\t}\n\t}, [\n\t\tclassicMenuConversionStatus,\n\t\tclassicMenuConversionResult,\n\t\tclassicMenuConversionError,\n\t] );\n\n\t// Spacer block needs orientation from context. This is a patch until\n\t// https://github.com/WordPress/gutenberg/issues/36197 is addressed.\n\tuseEffect( () => {\n\t\tif ( orientation ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { orientation } );\n\t\t}\n\t}, [ orientation ] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t} );\n\n\tconst [ showCantEditNotice, hideCantEditNotice ] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t\tmessage: __(\n\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t),\n\t} );\n\n\tconst [ showCantCreateNotice, hideCantCreateNotice ] = useNavigationNotice(\n\t\t{\n\t\t\tname: 'block-library/core/navigation/permissions/create',\n\t\t\tmessage: __(\n\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t),\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideCantEditNotice();\n\t\t\thideCantCreateNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowCantEditNotice();\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowCantCreateNotice();\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t] );\n\n\tconst handleSelectNavigation = useCallback(\n\t\t( navPostOrClassicMenu ) => {\n\t\t\tif ( ! navPostOrClassicMenu ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isClassicMenu = navPostOrClassicMenu.hasOwnProperty(\n\t\t\t\t'auto_add'\n\t\t\t);\n\n\t\t\tif ( isClassicMenu ) {\n\t\t\t\tconvert( navPostOrClassicMenu.id, navPostOrClassicMenu.name );\n\t\t\t} else {\n\t\t\t\thandleUpdateMenu( navPostOrClassicMenu.id );\n\t\t\t}\n\t\t},\n\t\t[ convert, handleUpdateMenu ]\n\t);\n\n\tconst resetToEmptyBlock = useCallback( () => {\n\t\tregistry.batch( () => {\n\t\t\tif ( navigationArea ) {\n\t\t\t\tsetAreaMenu( 0 );\n\t\t\t}\n\t\t\tsetAttributes( {\n\t\t\t\tref: undefined,\n\t\t\t} );\n\t\t\tif ( ! ref ) {\n\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t}\n\t\t} );\n\t}, [ clientId, ref ] );\n\n\t// If the block has inner blocks, but no menu id, then these blocks are either:\n\t// - inserted via a pattern.\n\t// - inserted directly via Code View (or otherwise).\n\t// - from an older version of navigation block added before the block used a wp_navigation entity.\n\t// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu as an entity when changes are made to the inner blocks.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\tif ( hasUnsavedBlocks ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\tclassNames={ overlayClassnames }\n\t\t\t\t\tstyles={ overlayStyles }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t\thasSavedUnsavedInnerBlocks={\n\t\t\t\t\t\t\thasSavedUnsavedInnerBlocks\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSave={ ( post ) => {\n\t\t\t\t\t\t\t// Set some state used as a guard to prevent the creation of multiple posts.\n\t\t\t\t\t\t\tsetHasSavedUnsavedInnerBlocks( true );\n\t\t\t\t\t\t\t// Switch to using the wp_navigation entity.\n\t\t\t\t\t\t\tsetRef( post.id );\n\n\t\t\t\t\t\t\tshowNavigationMenuCreateNotice(\n\t\t\t\t\t\t\t\t__( `New Navigation Menu created.` )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button onClick={ resetToEmptyBlock } variant=\"link\">\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\tif ( isPlaceholder ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlaceholderComponent\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcanUserCreateNavigationMenu={ canUserCreateNavigationMenu }\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenu={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenu\n\t\t\t\t\t}\n\t\t\t\t\tonFinish={ handleSelectNavigation }\n\t\t\t\t\tonCreateEmpty={ () => createNavigationMenu( '', [] ) }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t{ ! isDraftNavigationMenu && isEntityAvailable && (\n\t\t\t\t\t\t<ToolbarGroup className=\"wp-block-navigation__toolbar-menu-selector\">\n\t\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\tonSelect={ handleSelectNavigation }\n\t\t\t\t\t\t\t\tonCreateNew={ resetToEmptyBlock }\n\t\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t\t\tshowManageActions\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\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>\n\t\t\t\t\t\t\t\t\t{ hasIcon && <OverlayMenuIcon /> }\n\t\t\t\t\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t) }\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\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show icon button' ) }\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Configure the visual appearance of the button opening the overlay menu.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { hasIcon: value } )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tchecked={ hasIcon }\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<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\t\t\t\t\t} ), // Make sure arrows are shown when we toggle this on.\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\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\tattributes.openSubmenusOnClick\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t) }\n\t\t\t\t\t{ hasColorSettings && (\n\t\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\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\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\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\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\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\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\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\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</PanelColorSettings>\n\t\t\t\t\t) }\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasResolvedCanUserDeleteNavigationMenu &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ ( deletedMenuTitle = '' ) => {\n\t\t\t\t\t\t\t\t\t\tresetToEmptyBlock();\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuDeleteNotice(\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\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\t\t'Navigation menu %s successfully deleted.'\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\tdeletedMenuTitle\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/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t{ isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\tclassNames={ overlayClassnames }\n\t\t\t\t\t\t\tstyles={ overlayStyles }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["EMPTY_ARRAY","getComputedStyle","node","ownerDocument","defaultView","detectColors","colorsDetectionElement","setColor","setBackground","color","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","Navigation","attributes","setAttributes","clientId","isSelected","className","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","context","navigationArea","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","layout","justifyContent","orientation","flexWrap","hasIcon","areaMenu","setAreaMenu","noop","process","env","IS_GUTENBERG_PLUGIN","navigationAreaMenu","undefined","ref","registry","setRef","postId","hasAlreadyRendered","RecursionProvider","showNavigationMenuDeleteNotice","name","showNavigationMenuCreateNotice","hideNavigationMenuCreateNotice","create","createNavigationMenu","status","createNavigationMenuStatus","error","createNavigationMenuError","value","createNavigationMenuPost","isCreatingNavigationMenu","CREATE_NAVIGATION_MENU_PENDING","CREATE_NAVIGATION_MENU_SUCCESS","id","selectBlock","CREATE_NAVIGATION_MENU_ERROR","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","hasSubmenus","select","getBlock","getBlocks","hasSelectedInnerBlock","blockEditorStore","_uncontrolledInnerBlocks","innerBlocks","_hasUncontrolledInnerBlocks","length","_controlledInnerBlocks","find","block","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isWithinUnassignedArea","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","hasResolvedNavigationMenus","isNavigationMenuResolved","isNavigationMenuMissing","navigationMenus","navigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","navRef","isDraftNavigationMenu","convert","classicMenuConversionStatus","classicMenuConversionError","classicMenuConversionResult","isConvertingClassicMenu","CLASSIC_MENU_CONVERSION_PENDING","TagName","isPlaceholder","isEntityAvailable","isLoading","textDecoration","style","typography","blockProps","class","slug","overlayClassnames","overlayStyles","enableContrastChecking","Platform","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","showClassicMenuConversionErrorNotice","hideClassicMenuConversionErrorNotice","handleUpdateMenu","menuId","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","current","subMenuElement","querySelector","showCantEditNotice","hideCantEditNotice","message","showCantCreateNotice","hideCantCreateNotice","navigationSelectorRef","shouldFocusNavigationSelector","setShouldFocusNavigationSelector","handleSelectNavigation","navPostOrClassicMenu","isClassicMenu","hasOwnProperty","focus","resetToEmptyBlock","batch","hasUnsavedBlocks","post","PlaceholderComponent","Placeholder","isResponsive","overlayMenuPreviewClasses","open","onChange","label","deletedMenuTitle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\t__experimentalUseNoRecursiveRenders as useNoRecursiveRenders,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n} from '@wordpress/block-editor';\nimport { EntityProvider, useEntityProp } from '@wordpress/core-data';\n\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToolbarGroup,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\nimport useNavigationNotice from './use-navigation-notice';\nimport OverlayMenuIcon from './overlay-menu-icon';\nimport useConvertClassicToBlockMenu, {\n\tCLASSIC_MENU_CONVERSION_ERROR,\n\tCLASSIC_MENU_CONVERSION_PENDING,\n\tCLASSIC_MENU_CONVERSION_SUCCESS,\n} from './use-convert-classic-menu-to-block-menu';\nimport useCreateNavigationMenu, {\n\tCREATE_NAVIGATION_MENU_ERROR,\n\tCREATE_NAVIGATION_MENU_PENDING,\n\tCREATE_NAVIGATION_MENU_SUCCESS,\n} from './use-create-navigation-menu';\n\nconst EMPTY_ARRAY = [];\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nfunction detectColors( colorsDetectionElement, setColor, setBackground ) {\n\tif ( ! colorsDetectionElement ) {\n\t\treturn;\n\t}\n\tsetColor( getComputedStyle( colorsDetectionElement ).color );\n\n\tlet backgroundColorNode = colorsDetectionElement;\n\tlet backgroundColor = getComputedStyle( backgroundColorNode )\n\t\t.backgroundColor;\n\twhile (\n\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\tbackgroundColorNode.parentNode &&\n\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t) {\n\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\tbackgroundColor = getComputedStyle( backgroundColorNode )\n\t\t\t.backgroundColor;\n\t}\n\n\tsetBackground( backgroundColor );\n}\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\tcontext: { navigationArea },\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t} = attributes;\n\n\tlet areaMenu,\n\t\tsetAreaMenu = noop;\n\t// Navigation areas are deprecated and on their way out. Let's not perform\n\t// the request unless we're in an environment where the endpoint exists.\n\tif ( process.env.IS_GUTENBERG_PLUGIN ) {\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\t[ areaMenu, setAreaMenu ] = useEntityProp(\n\t\t\t'root',\n\t\t\t'navigationArea',\n\t\t\t'navigation',\n\t\t\tnavigationArea\n\t\t);\n\t}\n\n\tconst navigationAreaMenu = areaMenu === 0 ? undefined : areaMenu;\n\n\tconst ref = navigationArea ? navigationAreaMenu : attributes.ref;\n\n\tconst registry = useRegistry();\n\tconst setRef = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { ref: postId } );\n\t\t\tif ( navigationArea ) {\n\t\t\t\tsetAreaMenu( postId );\n\t\t\t}\n\t\t},\n\t\t[ navigationArea ]\n\t);\n\n\tconst [ hasAlreadyRendered, RecursionProvider ] = useNoRecursiveRenders(\n\t\t`navigationMenu/${ ref }`\n\t);\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tuseNavigationEntities();\n\n\tconst [ showNavigationMenuDeleteNotice ] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/delete',\n\t} );\n\n\tconst [\n\t\tshowNavigationMenuCreateNotice,\n\t\thideNavigationMenuCreateNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/create',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst isCreatingNavigationMenu =\n\t\tcreateNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING;\n\n\tuseEffect( () => {\n\t\thideNavigationMenuCreateNotice();\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_PENDING ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_SUCCESS ) {\n\t\t\tsetRef( createNavigationMenuPost.id );\n\t\t\tselectBlock( clientId );\n\n\t\t\tshowNavigationMenuCreateNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuStatus === CREATE_NAVIGATION_MENU_ERROR ) {\n\t\t\tshowNavigationMenuCreateNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenu,\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost,\n\t] );\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\thasSubmenus,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlocks, hasSelectedInnerBlock } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\t// This relies on the fact that `getBlock` won't return controlled\n\t\t\t// inner blocks, while `getBlocks` does. It might be more stable to\n\t\t\t// introduce a selector like `getUncontrolledInnerBlocks`, just in\n\t\t\t// case `getBlock` is fixed.\n\t\t\tconst _uncontrolledInnerBlocks = getBlock( clientId ).innerBlocks;\n\t\t\tconst _hasUncontrolledInnerBlocks = !! _uncontrolledInnerBlocks?.length;\n\t\t\tconst _controlledInnerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? EMPTY_ARRAY\n\t\t\t\t: getBlocks( clientId );\n\t\t\tconst innerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? _uncontrolledInnerBlocks\n\t\t\t\t: _controlledInnerBlocks;\n\n\t\t\treturn {\n\t\t\t\thasSubmenus: !! innerBlocks.find(\n\t\t\t\t\t( block ) => block.name === 'core/navigation-submenu'\n\t\t\t\t),\n\t\t\t\thasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,\n\t\t\t\tuncontrolledInnerBlocks: _uncontrolledInnerBlocks,\n\t\t\t\tisInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [\n\t\thasSavedUnsavedInnerBlocks,\n\t\tsetHasSavedUnsavedInnerBlocks,\n\t] = useState( false );\n\n\tconst isWithinUnassignedArea = !! navigationArea && ! ref;\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] = useState(\n\t\tfalse\n\t);\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\tisResolvingCanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\t// Attempt to retrieve and prioritize any existing navigation menu unless\n\t// a specific ref is allocated or the user is explicitly creating a new menu. The aim is\n\t// for the block to \"just work\" from a user perspective using existing data.\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisCreatingNavigationMenu ||\n\t\t\tref ||\n\t\t\t! navigationMenus?.length ||\n\t\t\tnavigationMenus?.length > 1\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetRef( navigationMenus[ 0 ].id );\n\t}, [ navigationMenus ] );\n\n\tconst navRef = useRef();\n\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\n\tconst {\n\t\tconvert,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t\tvalue: classicMenuConversionResult,\n\t} = useConvertClassicToBlockMenu( clientId );\n\n\tconst isConvertingClassicMenu =\n\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;\n\n\t// The standard HTML5 tag for the block wrapper.\n\tconst TagName = 'nav';\n\n\t// \"placeholder\" shown if:\n\t// - there is no ref attribute pointing to a Navigation Post.\n\t// - there is no classic menu conversion process in progress.\n\t// - there is no menu creation process in progress.\n\t// - there are no uncontrolled blocks.\n\t// - (legacy) there is a Navigation Area without a ref attribute pointing to a Navigation Post.\n\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\t( ! hasUncontrolledInnerBlocks || isWithinUnassignedArea );\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\t// \"loading\" state:\n\t// - there is a menu creation process in progress.\n\t// - there is a classic menu conversion process in progress.\n\t// OR\n\t// - there is a ref attribute pointing to a Navigation Post\n\t// - the Navigation Post isn't available (hasn't resolved) yet.\n\tconst isLoading =\n\t\t! hasResolvedNavigationMenus ||\n\t\tisCreatingNavigationMenu ||\n\t\tisConvertingClassicMenu ||\n\t\t!! ( ref && ! isEntityAvailable && ! isConvertingClassicMenu );\n\n\tconst textDecoration = attributes.style?.typography?.textDecoration;\n\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'color',\n\t\t\t\ttextColor?.slug\n\t\t\t) ]: !! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor?.slug\n\t\t\t) ]: !! backgroundColor?.slug,\n\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\tconst overlayClassnames = classnames( {\n\t\t'has-text-color':\n\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'color',\n\t\t\toverlayTextColor?.slug\n\t\t) ]: !! overlayTextColor?.slug,\n\t\t'has-background':\n\t\t\t!! overlayBackgroundColor.color || overlayBackgroundColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayBackgroundColor?.slug\n\t\t) ]: !! overlayBackgroundColor?.slug,\n\t} );\n\n\tconst overlayStyles = {\n\t\tcolor: ! overlayTextColor?.slug && overlayTextColor?.color,\n\t\tbackgroundColor:\n\t\t\t! overlayBackgroundColor?.slug &&\n\t\t\toverlayBackgroundColor?.color &&\n\t\t\toverlayBackgroundColor.color,\n\t};\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\tconst [\n\t\tshowClassicMenuConversionErrorNotice,\n\t\thideClassicMenuConversionErrorNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/classic-menu-conversion/error',\n\t} );\n\n\tfunction handleUpdateMenu( menuId ) {\n\t\tsetRef( menuId );\n\t\tselectBlock( clientId );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif (\n\t\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS &&\n\t\t\tclassicMenuConversionResult\n\t\t) {\n\t\t\thandleUpdateMenu( classicMenuConversionResult?.id );\n\t\t\thideClassicMenuConversionErrorNotice();\n\t\t\tspeak( __( 'Classic menu imported successfully.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionErrorNotice( classicMenuConversionError );\n\t\t\tspeak( __( 'Classic menu import failed.' ) );\n\t\t}\n\t}, [\n\t\tclassicMenuConversionStatus,\n\t\tclassicMenuConversionResult,\n\t\tclassicMenuConversionError,\n\t] );\n\n\t// Spacer block needs orientation from context. This is a patch until\n\t// https://github.com/WordPress/gutenberg/issues/36197 is addressed.\n\tuseEffect( () => {\n\t\tif ( orientation ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { orientation } );\n\t\t}\n\t}, [ orientation ] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t} );\n\n\tconst [ showCantEditNotice, hideCantEditNotice ] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t\tmessage: __(\n\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t),\n\t} );\n\n\tconst [ showCantCreateNotice, hideCantCreateNotice ] = useNavigationNotice(\n\t\t{\n\t\t\tname: 'block-library/core/navigation/permissions/create',\n\t\t\tmessage: __(\n\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t),\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideCantEditNotice();\n\t\t\thideCantCreateNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowCantEditNotice();\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenu &&\n\t\t\t\t! canUserCreateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowCantCreateNotice();\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenu,\n\t\thasResolvedCanUserCreateNavigationMenu,\n\t\tref,\n\t] );\n\n\tconst navigationSelectorRef = useRef();\n\tconst [\n\t\tshouldFocusNavigationSelector,\n\t\tsetShouldFocusNavigationSelector,\n\t] = useState( false );\n\tconst handleSelectNavigation = useCallback(\n\t\t( navPostOrClassicMenu ) => {\n\t\t\tif ( ! navPostOrClassicMenu ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isClassicMenu = navPostOrClassicMenu.hasOwnProperty(\n\t\t\t\t'auto_add'\n\t\t\t);\n\n\t\t\tif ( isClassicMenu ) {\n\t\t\t\tconvert( navPostOrClassicMenu.id, navPostOrClassicMenu.name );\n\t\t\t} else {\n\t\t\t\thandleUpdateMenu( navPostOrClassicMenu.id );\n\t\t\t}\n\t\t\tsetShouldFocusNavigationSelector( true );\n\t\t},\n\t\t[ convert, handleUpdateMenu ]\n\t);\n\n\t// Focus support after menu selection.\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisDraftNavigationMenu ||\n\t\t\t! isEntityAvailable ||\n\t\t\t! shouldFocusNavigationSelector\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tnavigationSelectorRef?.current?.focus();\n\t\tsetShouldFocusNavigationSelector( false );\n\t}, [\n\t\tisDraftNavigationMenu,\n\t\tisEntityAvailable,\n\t\tshouldFocusNavigationSelector,\n\t] );\n\n\tconst resetToEmptyBlock = useCallback( () => {\n\t\tregistry.batch( () => {\n\t\t\tif ( navigationArea ) {\n\t\t\t\tsetAreaMenu( 0 );\n\t\t\t}\n\t\t\tsetAttributes( {\n\t\t\t\tref: undefined,\n\t\t\t} );\n\t\t\tif ( ! ref ) {\n\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t}\n\t\t} );\n\t}, [ clientId, ref ] );\n\n\t// If the block has inner blocks, but no menu id, then these blocks are either:\n\t// - inserted via a pattern.\n\t// - inserted directly via Code View (or otherwise).\n\t// - from an older version of navigation block added before the block used a wp_navigation entity.\n\t// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu as an entity when changes are made to the inner blocks.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\tif ( hasUnsavedBlocks ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\tclassNames={ overlayClassnames }\n\t\t\t\t\tstyles={ overlayStyles }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t\thasSavedUnsavedInnerBlocks={\n\t\t\t\t\t\t\thasSavedUnsavedInnerBlocks\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSave={ ( post ) => {\n\t\t\t\t\t\t\t// Set some state used as a guard to prevent the creation of multiple posts.\n\t\t\t\t\t\t\tsetHasSavedUnsavedInnerBlocks( true );\n\t\t\t\t\t\t\t// Switch to using the wp_navigation entity.\n\t\t\t\t\t\t\tsetRef( post.id );\n\n\t\t\t\t\t\t\tshowNavigationMenuCreateNotice(\n\t\t\t\t\t\t\t\t__( `New Navigation Menu created.` )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button onClick={ resetToEmptyBlock } variant=\"link\">\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\tconst isResponsive = 'never' !== overlayMenu;\n\n\tconst overlayMenuPreviewClasses = classnames(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\tif ( isPlaceholder ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlaceholderComponent\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcanUserCreateNavigationMenu={ canUserCreateNavigationMenu }\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenu={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenu\n\t\t\t\t\t}\n\t\t\t\t\tonFinish={ handleSelectNavigation }\n\t\t\t\t\tonCreateEmpty={ () => createNavigationMenu( '', [] ) }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t{ ! isDraftNavigationMenu && isEntityAvailable && (\n\t\t\t\t\t\t<ToolbarGroup className=\"wp-block-navigation__toolbar-menu-selector\">\n\t\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\t\tref={ navigationSelectorRef }\n\t\t\t\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\tonSelect={ handleSelectNavigation }\n\t\t\t\t\t\t\t\tonCreateNew={ resetToEmptyBlock }\n\t\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\t\tactionLabel={ __( \"Switch to '%s'\" ) }\n\t\t\t\t\t\t\t\tshowManageActions\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\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>\n\t\t\t\t\t\t\t\t\t{ hasIcon && <OverlayMenuIcon /> }\n\t\t\t\t\t\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t) }\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\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show icon button' ) }\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Configure the visual appearance of the button opening the overlay menu.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { hasIcon: value } )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tchecked={ hasIcon }\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<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\t\t\t\t\t} ), // Make sure arrows are shown when we toggle this on.\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\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\tattributes.openSubmenusOnClick\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t) }\n\t\t\t\t\t{ hasColorSettings && (\n\t\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\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\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\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\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\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\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\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\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</PanelColorSettings>\n\t\t\t\t\t) }\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasResolvedCanUserDeleteNavigationMenu &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ ( deletedMenuTitle = '' ) => {\n\t\t\t\t\t\t\t\t\t\tresetToEmptyBlock();\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuDeleteNotice(\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\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\t\t'Navigation menu %s successfully deleted.'\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\tdeletedMenuTitle\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/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t{ isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\tclassNames={ overlayClassnames }\n\t\t\t\t\t\t\tstyles={ overlayStyles }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
@@ -41,20 +41,18 @@ function NavigationInnerBlocks(_ref) {
41
41
  } = _ref;
42
42
  const {
43
43
  isImmediateParentOfSelectedBlock,
44
- selectedBlockHasDescendants,
44
+ selectedBlockHasChildren,
45
45
  isSelected
46
46
  } = (0, _data.useSelect)(select => {
47
- var _getClientIdsOfDescen;
48
-
49
47
  const {
50
- getClientIdsOfDescendants,
48
+ getBlockCount,
51
49
  hasSelectedInnerBlock,
52
50
  getSelectedBlockClientId
53
51
  } = select(_blockEditor.store);
54
52
  const selectedBlockId = getSelectedBlockClientId();
55
53
  return {
56
54
  isImmediateParentOfSelectedBlock: hasSelectedInnerBlock(clientId, false),
57
- selectedBlockHasDescendants: !!((_getClientIdsOfDescen = getClientIdsOfDescendants([selectedBlockId])) !== null && _getClientIdsOfDescen !== void 0 && _getClientIdsOfDescen.length),
55
+ selectedBlockHasChildren: !!getBlockCount(selectedBlockId),
58
56
  // This prop is already available but computing it here ensures it's
59
57
  // fresh compared to isImmediateParentOfSelectedBlock.
60
58
  isSelected: selectedBlockId === clientId
@@ -70,7 +68,7 @@ function NavigationInnerBlocks(_ref) {
70
68
  // doesn't itself have children, show the standard appender. Else show no
71
69
  // appender.
72
70
 
73
- const parentOrChildHasSelection = isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasDescendants;
71
+ const parentOrChildHasSelection = isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren;
74
72
  const placeholder = (0, _element.useMemo)(() => (0, _element.createElement)(_placeholderPreview.default, null), []);
75
73
  const hasMenuItems = !!(blocks !== null && blocks !== void 0 && blocks.length); // If there is a `ref` attribute pointing to a `wp_navigation` but
76
74
  // that menu has no **items** (i.e. empty) then show a placeholder.
@@ -93,7 +91,7 @@ function NavigationInnerBlocks(_ref) {
93
91
  // This should be a temporary fix, to be replaced by improvements to
94
92
  // the sibling inserter.
95
93
  // See https://github.com/WordPress/gutenberg/issues/37572.
96
- renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasDescendants || // Show the appender while dragging to allow inserting element between item and the appender.
94
+ renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren || // Show the appender while dragging to allow inserting element between item and the appender.
97
95
  parentOrChildHasSelection ? _blockEditor.InnerBlocks.ButtonBlockAppender : false,
98
96
  // Template lock set to false here so that the Nav
99
97
  // Block on the experimental menus screen does not
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/inner-blocks.js"],"names":["ALLOWED_BLOCKS","DEFAULT_BLOCK","name","LAYOUT","type","alignments","NavigationInnerBlocks","clientId","hasCustomPlaceholder","orientation","isImmediateParentOfSelectedBlock","selectedBlockHasDescendants","isSelected","select","getClientIdsOfDescendants","hasSelectedInnerBlock","getSelectedBlockClientId","blockEditorStore","selectedBlockId","length","blocks","onInput","onChange","shouldDirectInsert","every","parentOrChildHasSelection","placeholder","hasMenuItems","showPlaceholder","innerBlocksProps","className","value","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","renderAppender","InnerBlocks","ButtonBlockAppender","templateLock","__experimentalLayout","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEntityBlockEditor } from '@wordpress/core-data';\nimport {\n\tuseInnerBlocksProps,\n\tInnerBlocks,\n\t__experimentalBlockContentOverlay as BlockContentOverlay,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport PlaceholderPreview from './placeholder/placeholder-preview';\n\nconst ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/search',\n\t'core/social-links',\n\t'core/page-list',\n\t'core/spacer',\n\t'core/home-link',\n\t'core/site-title',\n\t'core/site-logo',\n\t'core/navigation-submenu',\n];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n};\n\nconst LAYOUT = {\n\ttype: 'default',\n\talignments: [],\n};\n\nexport default function NavigationInnerBlocks( {\n\tclientId,\n\thasCustomPlaceholder,\n\torientation,\n} ) {\n\tconst {\n\t\tisImmediateParentOfSelectedBlock,\n\t\tselectedBlockHasDescendants,\n\t\tisSelected,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\treturn {\n\t\t\t\tisImmediateParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\tselectedBlockHasDescendants: !! getClientIdsOfDescendants( [\n\t\t\t\t\tselectedBlockId,\n\t\t\t\t] )?.length,\n\n\t\t\t\t// This prop is already available but computing it here ensures it's\n\t\t\t\t// fresh compared to isImmediateParentOfSelectedBlock.\n\t\t\t\tisSelected: selectedBlockId === clientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_navigation'\n\t);\n\n\tconst shouldDirectInsert = useMemo(\n\t\t() =>\n\t\t\tblocks.every(\n\t\t\t\t( { name } ) =>\n\t\t\t\t\tname === 'core/navigation-link' ||\n\t\t\t\t\tname === 'core/navigation-submenu' ||\n\t\t\t\t\tname === 'core/page-list'\n\t\t\t),\n\t\t[ blocks ]\n\t);\n\n\t// When the block is selected itself or has a top level item selected that\n\t// doesn't itself have children, show the standard appender. Else show no\n\t// appender.\n\tconst parentOrChildHasSelection =\n\t\tisSelected ||\n\t\t( isImmediateParentOfSelectedBlock && ! selectedBlockHasDescendants );\n\n\tconst placeholder = useMemo( () => <PlaceholderPreview />, [] );\n\n\tconst hasMenuItems = !! blocks?.length;\n\n\t// If there is a `ref` attribute pointing to a `wp_navigation` but\n\t// that menu has no **items** (i.e. empty) then show a placeholder.\n\t// The block must also be selected else the placeholder will display\n\t// alongside the appender.\n\tconst showPlaceholder =\n\t\t! hasCustomPlaceholder && ! hasMenuItems && ! isSelected;\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: 'wp-block-navigation__container',\n\t\t},\n\t\t{\n\t\t\tvalue: blocks,\n\t\t\tonInput,\n\t\t\tonChange,\n\t\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t\t__experimentalDirectInsert: shouldDirectInsert,\n\t\t\torientation,\n\n\t\t\t// As an exception to other blocks which feature nesting, show\n\t\t\t// the block appender even when a child block is selected.\n\t\t\t// This should be a temporary fix, to be replaced by improvements to\n\t\t\t// the sibling inserter.\n\t\t\t// See https://github.com/WordPress/gutenberg/issues/37572.\n\t\t\trenderAppender:\n\t\t\t\tisSelected ||\n\t\t\t\t( isImmediateParentOfSelectedBlock &&\n\t\t\t\t\t! selectedBlockHasDescendants ) ||\n\t\t\t\t// Show the appender while dragging to allow inserting element between item and the appender.\n\t\t\t\tparentOrChildHasSelection\n\t\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t\t: false,\n\n\t\t\t// Template lock set to false here so that the Nav\n\t\t\t// Block on the experimental menus screen does not\n\t\t\t// inherit templateLock={ 'all' }.\n\t\t\ttemplateLock: false,\n\t\t\t__experimentalLayout: LAYOUT,\n\t\t\tplaceholder: showPlaceholder ? placeholder : undefined,\n\t\t}\n\t);\n\n\treturn (\n\t\t<BlockContentOverlay\n\t\t\tclientId={ clientId }\n\t\t\ttagName={ 'div' }\n\t\t\twrapperProps={ innerBlocksProps }\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/inner-blocks.js"],"names":["ALLOWED_BLOCKS","DEFAULT_BLOCK","name","LAYOUT","type","alignments","NavigationInnerBlocks","clientId","hasCustomPlaceholder","orientation","isImmediateParentOfSelectedBlock","selectedBlockHasChildren","isSelected","select","getBlockCount","hasSelectedInnerBlock","getSelectedBlockClientId","blockEditorStore","selectedBlockId","blocks","onInput","onChange","shouldDirectInsert","every","parentOrChildHasSelection","placeholder","hasMenuItems","length","showPlaceholder","innerBlocksProps","className","value","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","renderAppender","InnerBlocks","ButtonBlockAppender","templateLock","__experimentalLayout","undefined"],"mappings":";;;;;;;;;AAWA;;AARA;;AACA;;AAMA;;AAMA;;AAhBA;AACA;AACA;;AAWA;AACA;AACA;AAGA,MAAMA,cAAc,GAAG,CACtB,sBADsB,EAEtB,aAFsB,EAGtB,mBAHsB,EAItB,gBAJsB,EAKtB,aALsB,EAMtB,gBANsB,EAOtB,iBAPsB,EAQtB,gBARsB,EAStB,yBATsB,CAAvB;AAYA,MAAMC,aAAa,GAAG;AACrBC,EAAAA,IAAI,EAAE;AADe,CAAtB;AAIA,MAAMC,MAAM,GAAG;AACdC,EAAAA,IAAI,EAAE,SADQ;AAEdC,EAAAA,UAAU,EAAE;AAFE,CAAf;;AAKe,SAASC,qBAAT,OAIX;AAAA,MAJ2C;AAC9CC,IAAAA,QAD8C;AAE9CC,IAAAA,oBAF8C;AAG9CC,IAAAA;AAH8C,GAI3C;AACH,QAAM;AACLC,IAAAA,gCADK;AAELC,IAAAA,wBAFK;AAGLC,IAAAA;AAHK,MAIF,qBACDC,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,aADK;AAELC,MAAAA,qBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEI,kBAAF,CAJV;AAKA,UAAMC,eAAe,GAAGF,wBAAwB,EAAhD;AAEA,WAAO;AACNN,MAAAA,gCAAgC,EAAEK,qBAAqB,CACtDR,QADsD,EAEtD,KAFsD,CADjD;AAKNI,MAAAA,wBAAwB,EAAE,CAAC,CAAEG,aAAa,CAAEI,eAAF,CALpC;AAON;AACA;AACAN,MAAAA,UAAU,EAAEM,eAAe,KAAKX;AAT1B,KAAP;AAWA,GApBE,EAqBH,CAAEA,QAAF,CArBG,CAJJ;AA4BA,QAAM,CAAEY,MAAF,EAAUC,OAAV,EAAmBC,QAAnB,IAAgC,oCACrC,UADqC,EAErC,eAFqC,CAAtC;AAKA,QAAMC,kBAAkB,GAAG,sBAC1B,MACCH,MAAM,CAACI,KAAP,CACC;AAAA,QAAE;AAAErB,MAAAA;AAAF,KAAF;AAAA,WACCA,IAAI,KAAK,sBAAT,IACAA,IAAI,KAAK,yBADT,IAEAA,IAAI,KAAK,gBAHV;AAAA,GADD,CAFyB,EAQ1B,CAAEiB,MAAF,CAR0B,CAA3B,CAlCG,CA6CH;AACA;AACA;;AACA,QAAMK,yBAAyB,GAC9BZ,UAAU,IACRF,gCAAgC,IAAI,CAAEC,wBAFzC;AAIA,QAAMc,WAAW,GAAG,sBAAS,MAAM,4BAAC,2BAAD,OAAf,EAAuC,EAAvC,CAApB;AAEA,QAAMC,YAAY,GAAG,CAAC,EAAEP,MAAF,aAAEA,MAAF,eAAEA,MAAM,CAAEQ,MAAV,CAAtB,CAtDG,CAwDH;AACA;AACA;AACA;;AACA,QAAMC,eAAe,GACpB,CAAEpB,oBAAF,IAA0B,CAAEkB,YAA5B,IAA4C,CAAEd,UAD/C;AAGA,QAAMiB,gBAAgB,GAAG,sCACxB;AACCC,IAAAA,SAAS,EAAE;AADZ,GADwB,EAIxB;AACCC,IAAAA,KAAK,EAAEZ,MADR;AAECC,IAAAA,OAFD;AAGCC,IAAAA,QAHD;AAICW,IAAAA,aAAa,EAAEhC,cAJhB;AAKCiC,IAAAA,0BAA0B,EAAEhC,aAL7B;AAMCiC,IAAAA,0BAA0B,EAAEZ,kBAN7B;AAOCb,IAAAA,WAPD;AASC;AACA;AACA;AACA;AACA;AACA0B,IAAAA,cAAc,EACbvB,UAAU,IACRF,gCAAgC,IACjC,CAAEC,wBAFH,IAGA;AACAa,IAAAA,yBAJA,GAKGY,yBAAYC,mBALf,GAMG,KArBL;AAuBC;AACA;AACA;AACAC,IAAAA,YAAY,EAAE,KA1Bf;AA2BCC,IAAAA,oBAAoB,EAAEpC,MA3BvB;AA4BCsB,IAAAA,WAAW,EAAEG,eAAe,GAAGH,WAAH,GAAiBe;AA5B9C,GAJwB,CAAzB;AAoCA,SACC,4BAAC,8CAAD;AACC,IAAA,QAAQ,EAAGjC,QADZ;AAEC,IAAA,OAAO,EAAG,KAFX;AAGC,IAAA,YAAY,EAAGsB;AAHhB,IADD;AAOA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEntityBlockEditor } from '@wordpress/core-data';\nimport {\n\tuseInnerBlocksProps,\n\tInnerBlocks,\n\t__experimentalBlockContentOverlay as BlockContentOverlay,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport PlaceholderPreview from './placeholder/placeholder-preview';\n\nconst ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/search',\n\t'core/social-links',\n\t'core/page-list',\n\t'core/spacer',\n\t'core/home-link',\n\t'core/site-title',\n\t'core/site-logo',\n\t'core/navigation-submenu',\n];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n};\n\nconst LAYOUT = {\n\ttype: 'default',\n\talignments: [],\n};\n\nexport default function NavigationInnerBlocks( {\n\tclientId,\n\thasCustomPlaceholder,\n\torientation,\n} ) {\n\tconst {\n\t\tisImmediateParentOfSelectedBlock,\n\t\tselectedBlockHasChildren,\n\t\tisSelected,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\treturn {\n\t\t\t\tisImmediateParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\tselectedBlockHasChildren: !! getBlockCount( selectedBlockId ),\n\n\t\t\t\t// This prop is already available but computing it here ensures it's\n\t\t\t\t// fresh compared to isImmediateParentOfSelectedBlock.\n\t\t\t\tisSelected: selectedBlockId === clientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_navigation'\n\t);\n\n\tconst shouldDirectInsert = useMemo(\n\t\t() =>\n\t\t\tblocks.every(\n\t\t\t\t( { name } ) =>\n\t\t\t\t\tname === 'core/navigation-link' ||\n\t\t\t\t\tname === 'core/navigation-submenu' ||\n\t\t\t\t\tname === 'core/page-list'\n\t\t\t),\n\t\t[ blocks ]\n\t);\n\n\t// When the block is selected itself or has a top level item selected that\n\t// doesn't itself have children, show the standard appender. Else show no\n\t// appender.\n\tconst parentOrChildHasSelection =\n\t\tisSelected ||\n\t\t( isImmediateParentOfSelectedBlock && ! selectedBlockHasChildren );\n\n\tconst placeholder = useMemo( () => <PlaceholderPreview />, [] );\n\n\tconst hasMenuItems = !! blocks?.length;\n\n\t// If there is a `ref` attribute pointing to a `wp_navigation` but\n\t// that menu has no **items** (i.e. empty) then show a placeholder.\n\t// The block must also be selected else the placeholder will display\n\t// alongside the appender.\n\tconst showPlaceholder =\n\t\t! hasCustomPlaceholder && ! hasMenuItems && ! isSelected;\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: 'wp-block-navigation__container',\n\t\t},\n\t\t{\n\t\t\tvalue: blocks,\n\t\t\tonInput,\n\t\t\tonChange,\n\t\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t\t__experimentalDirectInsert: shouldDirectInsert,\n\t\t\torientation,\n\n\t\t\t// As an exception to other blocks which feature nesting, show\n\t\t\t// the block appender even when a child block is selected.\n\t\t\t// This should be a temporary fix, to be replaced by improvements to\n\t\t\t// the sibling inserter.\n\t\t\t// See https://github.com/WordPress/gutenberg/issues/37572.\n\t\t\trenderAppender:\n\t\t\t\tisSelected ||\n\t\t\t\t( isImmediateParentOfSelectedBlock &&\n\t\t\t\t\t! selectedBlockHasChildren ) ||\n\t\t\t\t// Show the appender while dragging to allow inserting element between item and the appender.\n\t\t\t\tparentOrChildHasSelection\n\t\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t\t: false,\n\n\t\t\t// Template lock set to false here so that the Nav\n\t\t\t// Block on the experimental menus screen does not\n\t\t\t// inherit templateLock={ 'all' }.\n\t\t\ttemplateLock: false,\n\t\t\t__experimentalLayout: LAYOUT,\n\t\t\tplaceholder: showPlaceholder ? placeholder : undefined,\n\t\t}\n\t);\n\n\treturn (\n\t\t<BlockContentOverlay\n\t\t\tclientId={ clientId }\n\t\t\ttagName={ 'div' }\n\t\t\twrapperProps={ innerBlocksProps }\n\t\t/>\n\t);\n}\n"]}
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = NavigationMenuSelector;
8
+ exports.default = void 0;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
@@ -28,7 +28,7 @@ var _useNavigationEntities = _interopRequireDefault(require("../use-navigation-e
28
28
  /**
29
29
  * Internal dependencies
30
30
  */
31
- function NavigationMenuSelector(_ref) {
31
+ function NavigationMenuSelector(_ref, forwardedRef) {
32
32
  let {
33
33
  currentMenuId,
34
34
  onSelect,
@@ -89,6 +89,7 @@ function NavigationMenuSelector(_ref) {
89
89
  }
90
90
 
91
91
  return (0, _element.createElement)(_components.ToolbarDropdownMenu, {
92
+ ref: forwardedRef,
92
93
  label: (0, _i18n.__)('Select Menu'),
93
94
  text: (0, _i18n.__)('Select Menu'),
94
95
  icon: null,
@@ -123,4 +124,8 @@ function NavigationMenuSelector(_ref) {
123
124
  }, (0, _i18n.__)('Manage menus'))));
124
125
  });
125
126
  }
127
+
128
+ var _default = (0, _element.forwardRef)(NavigationMenuSelector);
129
+
130
+ exports.default = _default;
126
131
  //# sourceMappingURL=navigation-menu-selector.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-selector.js"],"names":["NavigationMenuSelector","currentMenuId","onSelect","onCreateNew","showManageActions","actionLabel","toggleProps","createActionLabel","menus","classicMenus","navigationMenus","canUserCreateNavigationMenu","canUserUpdateNavigationMenu","canSwitchNavigationMenu","handleSelect","_onClose","selectedId","find","post","id","handleSelectClassic","menu","menuChoices","map","title","label","rendered","value","ariaLabel","hasNavigationMenus","length","hasClassicMenus","showNavigationMenus","showClassicMenus","hasManagePermissions","showSelectMenus","onClose","name","post_type"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tToolbarDropdownMenu,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\n\nexport default function NavigationMenuSelector( {\n\tcurrentMenuId,\n\tonSelect,\n\tonCreateNew,\n\tshowManageActions = false,\n\tactionLabel,\n\ttoggleProps = {},\n} ) {\n\t/* translators: %s: The name of a menu. */\n\tconst createActionLabel = __( \"Create from '%s'\" );\n\n\tactionLabel = actionLabel || createActionLabel;\n\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst {\n\t\tnavigationMenus,\n\t\tcanUserCreateNavigationMenu,\n\t\tcanUserUpdateNavigationMenu,\n\t\tcanSwitchNavigationMenu,\n\t} = useNavigationMenu();\n\n\tconst handleSelect = useCallback(\n\t\t( _onClose ) => ( selectedId ) => {\n\t\t\t_onClose();\n\t\t\tonSelect(\n\t\t\t\tnavigationMenus?.find( ( post ) => post.id === selectedId )\n\t\t\t);\n\t\t},\n\t\t[ navigationMenus ]\n\t);\n\n\tconst handleSelectClassic = useCallback(\n\t\t( _onClose, menu ) => () => {\n\t\t\t_onClose();\n\t\t\tonSelect( menu );\n\t\t},\n\t\t[]\n\t);\n\n\tconst menuChoices = useMemo( () => {\n\t\treturn (\n\t\t\tnavigationMenus?.map( ( { id, title } ) => {\n\t\t\t\tconst label = decodeEntities( title.rendered );\n\t\t\t\treturn {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel,\n\t\t\t\t\tariaLabel: sprintf( actionLabel, label ),\n\t\t\t\t};\n\t\t\t} ) || []\n\t\t);\n\t}, [ navigationMenus ] );\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\tconst hasClassicMenus = !! classicMenus?.length;\n\tconst showNavigationMenus = !! canSwitchNavigationMenu;\n\tconst showClassicMenus = !! canUserCreateNavigationMenu;\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenu || canUserUpdateNavigationMenu;\n\n\t// Show the selector if:\n\t// - has switch or create permissions and there are block or classic menus.\n\t// - user has create or update permisisons and component should show the menu actions.\n\tconst showSelectMenus =\n\t\t( ( canSwitchNavigationMenu || canUserCreateNavigationMenu ) &&\n\t\t\t( hasNavigationMenus || hasClassicMenus ) ) ||\n\t\t( hasManagePermissions && showManageActions );\n\n\tif ( ! showSelectMenus ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToolbarDropdownMenu\n\t\t\tlabel={ __( 'Select Menu' ) }\n\t\t\ttext={ __( 'Select Menu' ) }\n\t\t\ticon={ null }\n\t\t\ttoggleProps={ toggleProps }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ showNavigationMenus && hasNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\tvalue={ currentMenuId }\n\t\t\t\t\t\t\t\tonSelect={ handleSelect( onClose ) }\n\t\t\t\t\t\t\t\tchoices={ menuChoices }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showClassicMenus && hasClassicMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Classic Menus' ) }>\n\t\t\t\t\t\t\t{ classicMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\tconst label = decodeEntities( menu.name );\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={ handleSelectClassic(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tmenu\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t\t\tcreateActionLabel,\n\t\t\t\t\t\t\t\t\t\t\tlabel\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\t{ label }\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\t</MenuGroup>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showManageActions && hasManagePermissions && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t{ canUserCreateNavigationMenu && (\n\t\t\t\t\t\t\t\t<MenuItem onClick={ onCreateNew }>\n\t\t\t\t\t\t\t\t\t{ __( 'Create new menu' ) }\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\t<MenuItem\n\t\t\t\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\t\t\tpost_type: 'wp_navigation',\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{ __( 'Manage menus' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</ToolbarDropdownMenu>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-selector.js"],"names":["NavigationMenuSelector","forwardedRef","currentMenuId","onSelect","onCreateNew","showManageActions","actionLabel","toggleProps","createActionLabel","menus","classicMenus","navigationMenus","canUserCreateNavigationMenu","canUserUpdateNavigationMenu","canSwitchNavigationMenu","handleSelect","_onClose","selectedId","find","post","id","handleSelectClassic","menu","menuChoices","map","title","label","rendered","value","ariaLabel","hasNavigationMenus","length","hasClassicMenus","showNavigationMenus","showClassicMenus","hasManagePermissions","showSelectMenus","onClose","name","post_type"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tToolbarDropdownMenu,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { addQueryArgs } from '@wordpress/url';\nimport { forwardRef, useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\n\nfunction NavigationMenuSelector(\n\t{\n\t\tcurrentMenuId,\n\t\tonSelect,\n\t\tonCreateNew,\n\t\tshowManageActions = false,\n\t\tactionLabel,\n\t\ttoggleProps = {},\n\t},\n\tforwardedRef\n) {\n\t/* translators: %s: The name of a menu. */\n\tconst createActionLabel = __( \"Create from '%s'\" );\n\n\tactionLabel = actionLabel || createActionLabel;\n\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst {\n\t\tnavigationMenus,\n\t\tcanUserCreateNavigationMenu,\n\t\tcanUserUpdateNavigationMenu,\n\t\tcanSwitchNavigationMenu,\n\t} = useNavigationMenu();\n\n\tconst handleSelect = useCallback(\n\t\t( _onClose ) => ( selectedId ) => {\n\t\t\t_onClose();\n\t\t\tonSelect(\n\t\t\t\tnavigationMenus?.find( ( post ) => post.id === selectedId )\n\t\t\t);\n\t\t},\n\t\t[ navigationMenus ]\n\t);\n\n\tconst handleSelectClassic = useCallback(\n\t\t( _onClose, menu ) => () => {\n\t\t\t_onClose();\n\t\t\tonSelect( menu );\n\t\t},\n\t\t[]\n\t);\n\n\tconst menuChoices = useMemo( () => {\n\t\treturn (\n\t\t\tnavigationMenus?.map( ( { id, title } ) => {\n\t\t\t\tconst label = decodeEntities( title.rendered );\n\t\t\t\treturn {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel,\n\t\t\t\t\tariaLabel: sprintf( actionLabel, label ),\n\t\t\t\t};\n\t\t\t} ) || []\n\t\t);\n\t}, [ navigationMenus ] );\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\tconst hasClassicMenus = !! classicMenus?.length;\n\tconst showNavigationMenus = !! canSwitchNavigationMenu;\n\tconst showClassicMenus = !! canUserCreateNavigationMenu;\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenu || canUserUpdateNavigationMenu;\n\n\t// Show the selector if:\n\t// - has switch or create permissions and there are block or classic menus.\n\t// - user has create or update permisisons and component should show the menu actions.\n\tconst showSelectMenus =\n\t\t( ( canSwitchNavigationMenu || canUserCreateNavigationMenu ) &&\n\t\t\t( hasNavigationMenus || hasClassicMenus ) ) ||\n\t\t( hasManagePermissions && showManageActions );\n\n\tif ( ! showSelectMenus ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToolbarDropdownMenu\n\t\t\tref={ forwardedRef }\n\t\t\tlabel={ __( 'Select Menu' ) }\n\t\t\ttext={ __( 'Select Menu' ) }\n\t\t\ticon={ null }\n\t\t\ttoggleProps={ toggleProps }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ showNavigationMenus && hasNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\tvalue={ currentMenuId }\n\t\t\t\t\t\t\t\tonSelect={ handleSelect( onClose ) }\n\t\t\t\t\t\t\t\tchoices={ menuChoices }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showClassicMenus && hasClassicMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Classic Menus' ) }>\n\t\t\t\t\t\t\t{ classicMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\tconst label = decodeEntities( menu.name );\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={ handleSelectClassic(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tmenu\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t\t\tcreateActionLabel,\n\t\t\t\t\t\t\t\t\t\t\tlabel\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\t{ label }\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\t</MenuGroup>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showManageActions && hasManagePermissions && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t{ canUserCreateNavigationMenu && (\n\t\t\t\t\t\t\t\t<MenuItem onClick={ onCreateNew }>\n\t\t\t\t\t\t\t\t\t{ __( 'Create new menu' ) }\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\t<MenuItem\n\t\t\t\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\t\t\t\tpost_type: 'wp_navigation',\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{ __( 'Manage menus' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</ToolbarDropdownMenu>\n\t);\n}\n\nexport default forwardRef( NavigationMenuSelector );\n"]}
@@ -422,10 +422,27 @@ function navStripHTML(html) {
422
422
 
423
423
  function LinkControlTransforms(_ref) {
424
424
  let {
425
- block,
426
- transforms,
425
+ clientId,
427
426
  replace
428
427
  } = _ref;
428
+ const {
429
+ getBlock,
430
+ blockTransforms
431
+ } = (0, _data.useSelect)(select => {
432
+ const {
433
+ getBlock: _getBlock,
434
+ getBlockRootClientId,
435
+ getBlockTransformItems
436
+ } = select(_blockEditor.store);
437
+ return {
438
+ getBlock: _getBlock,
439
+ blockTransforms: getBlockTransformItems([_getBlock(clientId)], getBlockRootClientId(clientId))
440
+ };
441
+ }, [clientId]);
442
+ const featuredBlocks = ['core/site-logo', 'core/social-links', 'core/search'];
443
+ const transforms = blockTransforms.filter(item => {
444
+ return featuredBlocks.includes(item.name);
445
+ });
429
446
 
430
447
  if (!(transforms !== null && transforms !== void 0 && transforms.length)) {
431
448
  return null;
@@ -440,7 +457,7 @@ function LinkControlTransforms(_ref) {
440
457
  }, transforms.map((item, index) => {
441
458
  return (0, _element.createElement)(_components.Button, {
442
459
  key: `transform-${index}`,
443
- onClick: () => replace(block.clientId, (0, _blocks.switchToBlockType)(block, item.name)),
460
+ onClick: () => replace(clientId, (0, _blocks.switchToBlockType)(getBlock(clientId), item.name)),
444
461
  className: "link-control-transform__item"
445
462
  }, (0, _element.createElement)(_blockEditor.BlockIcon, {
446
463
  icon: item.icon
@@ -497,39 +514,26 @@ function NavigationLinkEdit(_ref2) {
497
514
  isAtMaxNesting,
498
515
  isTopLevelLink,
499
516
  isParentOfSelectedBlock,
500
- hasDescendants,
517
+ hasChildren,
501
518
  userCanCreatePages,
502
- userCanCreatePosts,
503
- thisBlock,
504
- blockTransforms
519
+ userCanCreatePosts
505
520
  } = (0, _data.useSelect)(select => {
506
- var _getClientIdsOfDescen;
507
-
508
521
  const {
509
- getBlock,
510
522
  getBlocks,
523
+ getBlockCount,
511
524
  getBlockName,
512
525
  getBlockRootClientId,
513
- getClientIdsOfDescendants,
514
526
  hasSelectedInnerBlock,
515
- getSelectedBlockClientId,
516
- getBlockParentsByBlockName,
517
- getBlockTransformItems
527
+ getBlockParentsByBlockName
518
528
  } = select(_blockEditor.store);
519
- const selectedBlockId = getSelectedBlockClientId();
520
- const descendants = getClientIdsOfDescendants([clientId]).length;
521
529
  return {
522
530
  innerBlocks: getBlocks(clientId),
523
531
  isAtMaxNesting: getBlockParentsByBlockName(clientId, [name, 'core/navigation-submenu']).length >= maxNestingLevel,
524
532
  isTopLevelLink: getBlockName(getBlockRootClientId(clientId)) === 'core/navigation',
525
533
  isParentOfSelectedBlock: hasSelectedInnerBlock(clientId, true),
526
- isImmediateParentOfSelectedBlock: hasSelectedInnerBlock(clientId, false),
527
- hasDescendants: !!descendants,
528
- selectedBlockHasDescendants: !!((_getClientIdsOfDescen = getClientIdsOfDescendants([selectedBlockId])) !== null && _getClientIdsOfDescen !== void 0 && _getClientIdsOfDescen.length),
534
+ hasChildren: !!getBlockCount(clientId),
529
535
  userCanCreatePages: select(_coreData.store).canUser('create', 'pages'),
530
- userCanCreatePosts: select(_coreData.store).canUser('create', 'posts'),
531
- thisBlock: getBlock(clientId),
532
- blockTransforms: getBlockTransformItems([getBlock(clientId)], getBlockRootClientId(clientId))
536
+ userCanCreatePosts: select(_coreData.store).canUser('create', 'posts')
533
537
  };
534
538
  }, [clientId]);
535
539
  (0, _element.useEffect)(() => {
@@ -552,10 +556,6 @@ function NavigationLinkEdit(_ref2) {
552
556
  replaceBlock(clientId, newSubmenu);
553
557
  }
554
558
 
555
- const featuredBlocks = ['core/site-logo', 'core/social-links', 'core/search'];
556
- const featuredTransforms = blockTransforms.filter(item => {
557
- return featuredBlocks.includes(item.name);
558
- });
559
559
  (0, _element.useEffect)(() => {
560
560
  // Show the LinkControl on mount if the URL is empty
561
561
  // ( When adding a new menu item)
@@ -566,7 +566,7 @@ function NavigationLinkEdit(_ref2) {
566
566
  } // If block has inner blocks, transform to Submenu.
567
567
 
568
568
 
569
- if (hasDescendants) {
569
+ if (hasChildren) {
570
570
  transformToSubmenu();
571
571
  }
572
572
  }, []);
@@ -672,7 +672,7 @@ function NavigationLinkEdit(_ref2) {
672
672
  'is-editing': isSelected || isParentOfSelectedBlock,
673
673
  'is-dragging-within': isDraggingWithin,
674
674
  'has-link': !!url,
675
- 'has-child': hasDescendants,
675
+ 'has-child': hasChildren,
676
676
  'has-text-color': !!textColor || !!customTextColor,
677
677
  [(0, _blockEditor.getColorClassName)('color', textColor)]: !!textColor,
678
678
  'has-background': !!backgroundColor || customBackgroundColor,
@@ -814,8 +814,7 @@ function NavigationLinkEdit(_ref2) {
814
814
  onChange: updatedValue => updateNavigationLinkBlockAttributes(updatedValue, setAttributes, attributes),
815
815
  onRemove: removeLink,
816
816
  renderControlBottom: !url ? () => (0, _element.createElement)(LinkControlTransforms, {
817
- block: thisBlock,
818
- transforms: featuredTransforms,
817
+ clientId: clientId,
819
818
  replace: replaceBlock
820
819
  }) : null
821
820
  })))));