@wordpress/block-library 9.37.2-next.ba3aee3a2.0 → 9.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/build/audio/index.cjs +16 -8
- package/build/audio/index.cjs.map +2 -2
- package/build/block-keyboard-shortcuts/index.cjs +2 -4
- package/build/block-keyboard-shortcuts/index.cjs.map +2 -2
- package/build/button/index.cjs +17 -8
- package/build/button/index.cjs.map +2 -2
- package/build/code/index.cjs +3 -1
- package/build/code/index.cjs.map +2 -2
- package/build/comments-title/edit.cjs +10 -6
- package/build/comments-title/edit.cjs.map +2 -2
- package/build/cover/index.cjs +20 -10
- package/build/cover/index.cjs.map +2 -2
- package/build/details/index.cjs +3 -1
- package/build/details/index.cjs.map +2 -2
- package/build/file/index.cjs +19 -9
- package/build/file/index.cjs.map +2 -2
- package/build/heading/block.json +1 -3
- package/build/heading/deprecated.cjs +101 -5
- package/build/heading/deprecated.cjs.map +3 -3
- package/build/heading/edit.cjs +20 -41
- package/build/heading/edit.cjs.map +3 -3
- package/build/heading/index.cjs +3 -1
- package/build/heading/index.cjs.map +2 -2
- package/build/heading/save.cjs +2 -16
- package/build/heading/save.cjs.map +3 -3
- package/build/heading/transforms.cjs +16 -3
- package/build/heading/transforms.cjs.map +2 -2
- package/build/image/image.cjs +3 -3
- package/build/image/image.cjs.map +2 -2
- package/build/image/index.cjs +33 -17
- package/build/image/index.cjs.map +2 -2
- package/build/list-item/index.cjs +3 -1
- package/build/list-item/index.cjs.map +2 -2
- package/build/media-text/index.cjs +30 -15
- package/build/media-text/index.cjs.map +2 -2
- package/build/more/block.json +1 -0
- package/build/more/index.cjs +3 -1
- package/build/more/index.cjs.map +2 -2
- package/build/navigation/edit/index.cjs +7 -6
- package/build/navigation/edit/index.cjs.map +2 -2
- package/build/navigation/edit/responsive-wrapper.cjs +7 -4
- package/build/navigation/edit/responsive-wrapper.cjs.map +2 -2
- package/build/navigation/edit/use-create-overlay.cjs +2 -0
- package/build/navigation/edit/use-create-overlay.cjs.map +2 -2
- package/build/navigation-link/edit.cjs +8 -58
- package/build/navigation-link/edit.cjs.map +3 -3
- package/build/navigation-link/index.cjs +13 -8
- package/build/navigation-link/index.cjs.map +2 -2
- package/build/navigation-link/shared/index.cjs +11 -2
- package/build/navigation-link/shared/index.cjs.map +2 -2
- package/build/navigation-link/shared/invalid-draft-display.cjs +82 -0
- package/build/navigation-link/shared/invalid-draft-display.cjs.map +7 -0
- package/build/navigation-link/shared/use-enable-link-status-validation.cjs +50 -0
- package/build/navigation-link/shared/use-enable-link-status-validation.cjs.map +7 -0
- package/build/navigation-link/shared/use-is-invalid-link.cjs +64 -0
- package/build/navigation-link/shared/use-is-invalid-link.cjs.map +7 -0
- package/build/navigation-overlay-close/block.json +1 -4
- package/build/navigation-overlay-close/index.cjs +3 -25
- package/build/navigation-overlay-close/index.cjs.map +3 -3
- package/build/navigation-submenu/edit.cjs +36 -18
- package/build/navigation-submenu/edit.cjs.map +2 -2
- package/build/navigation-submenu/index.cjs +15 -8
- package/build/navigation-submenu/index.cjs.map +2 -2
- package/build/nextpage/block.json +1 -0
- package/build/paragraph/index.cjs +3 -1
- package/build/paragraph/index.cjs.map +2 -2
- package/build/paragraph/transforms.cjs +14 -3
- package/build/paragraph/transforms.cjs.map +3 -3
- package/build/preformatted/index.cjs +3 -1
- package/build/preformatted/index.cjs.map +2 -2
- package/build/pullquote/index.cjs +7 -3
- package/build/pullquote/index.cjs.map +2 -2
- package/build/search/index.cjs +10 -5
- package/build/search/index.cjs.map +2 -2
- package/build/social-link/index.cjs +13 -7
- package/build/social-link/index.cjs.map +2 -2
- package/build/table-of-contents/hooks.cjs +1 -1
- package/build/table-of-contents/hooks.cjs.map +1 -1
- package/build/template-part/edit/utils/get-template-part-icon.cjs.map +1 -1
- package/build/utils/is-within-overlay.cjs +52 -0
- package/build/utils/is-within-overlay.cjs.map +7 -0
- package/build/verse/index.cjs +3 -1
- package/build/verse/index.cjs.map +2 -2
- package/build/video/index.cjs +20 -10
- package/build/video/index.cjs.map +2 -2
- package/build-module/audio/index.mjs +16 -8
- package/build-module/audio/index.mjs.map +2 -2
- package/build-module/block-keyboard-shortcuts/index.mjs +2 -4
- package/build-module/block-keyboard-shortcuts/index.mjs.map +2 -2
- package/build-module/button/index.mjs +17 -8
- package/build-module/button/index.mjs.map +2 -2
- package/build-module/code/index.mjs +3 -1
- package/build-module/code/index.mjs.map +2 -2
- package/build-module/comments-title/edit.mjs +10 -6
- package/build-module/comments-title/edit.mjs.map +2 -2
- package/build-module/cover/index.mjs +20 -10
- package/build-module/cover/index.mjs.map +2 -2
- package/build-module/details/index.mjs +3 -1
- package/build-module/details/index.mjs.map +2 -2
- package/build-module/file/index.mjs +19 -9
- package/build-module/file/index.mjs.map +2 -2
- package/build-module/heading/block.json +1 -3
- package/build-module/heading/deprecated.mjs +101 -5
- package/build-module/heading/deprecated.mjs.map +2 -2
- package/build-module/heading/edit.mjs +22 -46
- package/build-module/heading/edit.mjs.map +2 -2
- package/build-module/heading/index.mjs +3 -1
- package/build-module/heading/index.mjs.map +2 -2
- package/build-module/heading/save.mjs +2 -6
- package/build-module/heading/save.mjs.map +2 -2
- package/build-module/heading/transforms.mjs +16 -3
- package/build-module/heading/transforms.mjs.map +2 -2
- package/build-module/image/image.mjs +3 -3
- package/build-module/image/image.mjs.map +2 -2
- package/build-module/image/index.mjs +33 -17
- package/build-module/image/index.mjs.map +2 -2
- package/build-module/list-item/index.mjs +3 -1
- package/build-module/list-item/index.mjs.map +2 -2
- package/build-module/media-text/index.mjs +30 -15
- package/build-module/media-text/index.mjs.map +2 -2
- package/build-module/more/block.json +1 -0
- package/build-module/more/index.mjs +3 -1
- package/build-module/more/index.mjs.map +2 -2
- package/build-module/navigation/edit/index.mjs +7 -6
- package/build-module/navigation/edit/index.mjs.map +2 -2
- package/build-module/navigation/edit/responsive-wrapper.mjs +7 -4
- package/build-module/navigation/edit/responsive-wrapper.mjs.map +2 -2
- package/build-module/navigation/edit/use-create-overlay.mjs +2 -0
- package/build-module/navigation/edit/use-create-overlay.mjs.map +2 -2
- package/build-module/navigation-link/edit.mjs +12 -60
- package/build-module/navigation-link/edit.mjs.map +2 -2
- package/build-module/navigation-link/index.mjs +13 -8
- package/build-module/navigation-link/index.mjs.map +2 -2
- package/build-module/navigation-link/shared/index.mjs +7 -1
- package/build-module/navigation-link/shared/index.mjs.map +2 -2
- package/build-module/navigation-link/shared/invalid-draft-display.mjs +47 -0
- package/build-module/navigation-link/shared/invalid-draft-display.mjs.map +7 -0
- package/build-module/navigation-link/shared/use-enable-link-status-validation.mjs +25 -0
- package/build-module/navigation-link/shared/use-enable-link-status-validation.mjs.map +7 -0
- package/build-module/navigation-link/shared/use-is-invalid-link.mjs +39 -0
- package/build-module/navigation-link/shared/use-is-invalid-link.mjs.map +7 -0
- package/build-module/navigation-overlay-close/block.json +1 -4
- package/build-module/navigation-overlay-close/index.mjs +3 -25
- package/build-module/navigation-overlay-close/index.mjs.map +2 -2
- package/build-module/navigation-submenu/edit.mjs +40 -19
- package/build-module/navigation-submenu/edit.mjs.map +2 -2
- package/build-module/navigation-submenu/index.mjs +15 -8
- package/build-module/navigation-submenu/index.mjs.map +2 -2
- package/build-module/nextpage/block.json +1 -0
- package/build-module/paragraph/index.mjs +3 -1
- package/build-module/paragraph/index.mjs.map +2 -2
- package/build-module/paragraph/transforms.mjs +2 -1
- package/build-module/paragraph/transforms.mjs.map +2 -2
- package/build-module/preformatted/index.mjs +3 -1
- package/build-module/preformatted/index.mjs.map +2 -2
- package/build-module/pullquote/index.mjs +7 -3
- package/build-module/pullquote/index.mjs.map +2 -2
- package/build-module/search/index.mjs +10 -5
- package/build-module/search/index.mjs.map +2 -2
- package/build-module/social-link/index.mjs +13 -7
- package/build-module/social-link/index.mjs.map +2 -2
- package/build-module/table-of-contents/hooks.mjs +1 -1
- package/build-module/table-of-contents/hooks.mjs.map +1 -1
- package/build-module/template-part/edit/utils/get-template-part-icon.mjs.map +1 -1
- package/build-module/utils/is-within-overlay.mjs +27 -0
- package/build-module/utils/is-within-overlay.mjs.map +7 -0
- package/build-module/verse/index.mjs +3 -1
- package/build-module/verse/index.mjs.map +2 -2
- package/build-module/video/index.mjs +20 -10
- package/build-module/video/index.mjs.map +2 -2
- package/build-style/navigation/style-rtl.css +1 -16
- package/build-style/navigation/style.css +1 -16
- package/build-style/style-rtl.css +1 -16
- package/build-style/style.css +1 -16
- package/package.json +37 -38
- package/src/audio/index.js +13 -7
- package/src/block-keyboard-shortcuts/index.js +4 -7
- package/src/breadcrumbs/index.php +6 -3
- package/src/button/index.js +15 -8
- package/src/code/index.js +2 -1
- package/src/comments-title/edit.js +10 -7
- package/src/comments-title/index.php +7 -8
- package/src/cover/index.js +17 -8
- package/src/details/index.js +2 -1
- package/src/file/index.js +15 -8
- package/src/heading/block.json +1 -3
- package/src/heading/deprecated.js +118 -5
- package/src/heading/edit.js +6 -32
- package/src/heading/edit.native.js +17 -2
- package/src/heading/index.js +2 -1
- package/src/heading/save.js +2 -11
- package/src/heading/transforms.js +16 -3
- package/src/image/image.js +38 -40
- package/src/image/index.js +29 -16
- package/src/list-item/index.js +2 -1
- package/src/media-text/index.js +27 -14
- package/src/more/block.json +1 -0
- package/src/more/index.js +2 -1
- package/src/navigation/edit/index.js +9 -4
- package/src/navigation/edit/responsive-wrapper.js +15 -8
- package/src/navigation/edit/test/use-create-overlay.js +12 -0
- package/src/navigation/edit/use-create-overlay.js +2 -0
- package/src/navigation/index.php +74 -24
- package/src/navigation/style.scss +2 -18
- package/src/navigation-link/edit.js +11 -97
- package/src/navigation-link/index.js +13 -8
- package/src/navigation-link/index.php +17 -29
- package/src/navigation-link/shared/helpers.php +46 -0
- package/src/navigation-link/shared/index.js +3 -0
- package/src/navigation-link/shared/invalid-draft-display.js +63 -0
- package/src/navigation-link/shared/test/use-enable-link-status-validation.test.js +127 -0
- package/src/navigation-link/shared/use-enable-link-status-validation.js +40 -0
- package/src/navigation-link/shared/use-is-invalid-link.js +72 -0
- package/src/navigation-overlay-close/block.json +1 -4
- package/src/navigation-overlay-close/index.js +2 -37
- package/src/navigation-overlay-close/index.php +37 -1
- package/src/navigation-submenu/edit.js +49 -24
- package/src/navigation-submenu/index.js +13 -8
- package/src/navigation-submenu/index.php +25 -18
- package/src/nextpage/block.json +1 -0
- package/src/paragraph/index.js +2 -1
- package/src/paragraph/transforms.js +3 -1
- package/src/preformatted/index.js +2 -1
- package/src/pullquote/index.js +5 -3
- package/src/query-title/index.php +2 -2
- package/src/search/index.js +7 -5
- package/src/social-link/index.js +12 -7
- package/src/table-of-contents/hooks.js +1 -1
- package/src/template-part/edit/utils/get-template-part-icon.js +1 -1
- package/src/utils/is-within-overlay.js +54 -0
- package/src/verse/index.js +2 -1
- package/src/video/index.js +17 -9
- package/build/navigation-overlay-close/save.cjs +0 -67
- package/build/navigation-overlay-close/save.cjs.map +0 -7
- package/build-module/navigation-overlay-close/save.mjs +0 -46
- package/build-module/navigation-overlay-close/save.mjs.map +0 -7
- package/src/navigation-overlay-close/save.js +0 -44
|
@@ -101,7 +101,8 @@ function ColorTools({
|
|
|
101
101
|
overlayBackgroundColor,
|
|
102
102
|
setOverlayBackgroundColor,
|
|
103
103
|
clientId,
|
|
104
|
-
navRef
|
|
104
|
+
navRef,
|
|
105
|
+
hasCustomOverlay
|
|
105
106
|
}) {
|
|
106
107
|
const [detectedBackgroundColor, setDetectedBackgroundColor] = (0, import_element.useState)();
|
|
107
108
|
const [detectedColor, setDetectedColor] = (0, import_element.useState)();
|
|
@@ -167,7 +168,7 @@ function ColorTools({
|
|
|
167
168
|
},
|
|
168
169
|
{
|
|
169
170
|
colorValue: overlayTextColor.color,
|
|
170
|
-
label: (0, import_i18n.__)("Submenu & overlay text"),
|
|
171
|
+
label: hasCustomOverlay ? (0, import_i18n.__)("Submenu text") : (0, import_i18n.__)("Submenu & overlay text"),
|
|
171
172
|
onColorChange: setOverlayTextColor,
|
|
172
173
|
resetAllFilter: () => setOverlayTextColor(),
|
|
173
174
|
clearable: true,
|
|
@@ -175,7 +176,7 @@ function ColorTools({
|
|
|
175
176
|
},
|
|
176
177
|
{
|
|
177
178
|
colorValue: overlayBackgroundColor.color,
|
|
178
|
-
label: (0, import_i18n.__)("Submenu & overlay background"),
|
|
179
|
+
label: hasCustomOverlay ? (0, import_i18n.__)("Submenu background") : (0, import_i18n.__)("Submenu & overlay background"),
|
|
179
180
|
onColorChange: setOverlayBackgroundColor,
|
|
180
181
|
resetAllFilter: () => setOverlayBackgroundColor(),
|
|
181
182
|
clearable: true,
|
|
@@ -222,7 +223,6 @@ function Navigation({
|
|
|
222
223
|
setOverlayTextColor,
|
|
223
224
|
// These props are used by the navigation editor to override specific
|
|
224
225
|
// navigation block settings.
|
|
225
|
-
hasSubmenuIndicatorSetting = true,
|
|
226
226
|
customPlaceholder: CustomPlaceholder = null,
|
|
227
227
|
__unstableLayoutClassNames: layoutClassNames
|
|
228
228
|
}) {
|
|
@@ -500,7 +500,7 @@ function Navigation({
|
|
|
500
500
|
);
|
|
501
501
|
const dropdownMenuProps = (0, import_hooks.useToolsPanelDropdownMenuProps)();
|
|
502
502
|
const stylingInspectorControls = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
503
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.InspectorControls, { children:
|
|
503
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.InspectorControls, { children: (!isOverlayExperimentEnabled || hasSubmenus) && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
504
504
|
import_components.__experimentalToolsPanel,
|
|
505
505
|
{
|
|
506
506
|
label: (0, import_i18n.__)("Display"),
|
|
@@ -648,7 +648,8 @@ function Navigation({
|
|
|
648
648
|
overlayBackgroundColor,
|
|
649
649
|
setOverlayBackgroundColor,
|
|
650
650
|
clientId,
|
|
651
|
-
navRef
|
|
651
|
+
navRef,
|
|
652
|
+
hasCustomOverlay: !!overlay
|
|
652
653
|
}
|
|
653
654
|
) })
|
|
654
655
|
] });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/navigation/edit/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n\tuseBlockEditingMode,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { EntityProvider, store as coreStore } from '@wordpress/core-data';\n\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n\tSpinner,\n\tNotice,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { page } from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\nimport { useInstanceId } from '@wordpress/compose';\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 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 OverlayMenuPreview from './overlay-menu-preview';\nimport OverlayPanel from './overlay-panel';\nimport OverlayVisibilityControl from './overlay-visibility-control';\nimport OverlayMenuPreviewButton from './overlay-menu-preview-button';\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 from './use-create-navigation-menu';\nimport { useInnerBlocks } from './use-inner-blocks';\nimport { detectColors } from './utils';\nimport ManageMenusButton from './manage-menus-button';\nimport MenuInspectorControls from './menu-inspector-controls';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\nimport AccessibleDescription from './accessible-description';\nimport AccessibleMenuDescription from './accessible-menu-description';\nimport { unlock } from '../../lock-unlock';\nimport { useToolsPanelDropdownMenuProps } from '../../utils/hooks';\nimport { DEFAULT_BLOCK } from '../constants';\n\n/**\n * Component that renders the Add page button for the Navigation block.\n *\n * @param {Object} props Component props.\n * @param {string} props.clientId Block client ID.\n * @return {JSX.Element|null} The Add page button component or null if not applicable.\n */\nfunction NavigationAddPageButton( { clientId } ) {\n\tconst { insertBlock } = useDispatch( blockEditorStore );\n\tconst { getBlockCount } = useSelect( blockEditorStore );\n\n\tconst onAddPage = useCallback( () => {\n\t\t// Get the current number of blocks to insert at the end\n\t\tconst blockCount = getBlockCount( clientId );\n\n\t\t// Create a new navigation link block (default block)\n\t\tconst newBlock = createBlock( DEFAULT_BLOCK.name, {\n\t\t\tkind: DEFAULT_BLOCK.attributes.kind,\n\t\t\ttype: DEFAULT_BLOCK.attributes.type,\n\t\t} );\n\n\t\t// Insert the block at the end of the navigation\n\t\tinsertBlock( newBlock, blockCount, clientId );\n\t}, [ clientId, insertBlock, getBlockCount ] );\n\n\treturn (\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tname=\"add-page\"\n\t\t\t\t\ticon={ page }\n\t\t\t\t\tonClick={ onAddPage }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Add page' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n}\n\nfunction ColorTools( {\n\ttextColor,\n\tsetTextColor,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\tclientId,\n\tnavRef,\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\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\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\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-submenu\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\n\t\tif ( ! subMenuElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Only detect submenu overlay colors if they have previously been explicitly set.\n\t\t// This avoids the contrast checker from reporting on inherited submenu colors and\n\t\t// showing the contrast warning twice.\n\t\tif ( overlayTextColor.color || overlayBackgroundColor.color ) {\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\t\tenableContrastChecking,\n\t\toverlayTextColor.color,\n\t\toverlayBackgroundColor.color,\n\t\tnavRef,\n\t] );\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tif ( ! colorGradientSettings.hasColorsOrGradients ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\tsettings={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tcolorValue: textColor.color,\n\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\tonColorChange: setTextColor,\n\t\t\t\t\t\tresetAllFilter: () => setTextColor(),\n\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcolorValue: backgroundColor.color,\n\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\tonColorChange: setBackgroundColor,\n\t\t\t\t\t\tresetAllFilter: () => setBackgroundColor(),\n\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcolorValue: overlayTextColor.color,\n\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\tonColorChange: setOverlayTextColor,\n\t\t\t\t\t\tresetAllFilter: () => setOverlayTextColor(),\n\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcolorValue: overlayBackgroundColor.color,\n\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\tonColorChange: setOverlayBackgroundColor,\n\t\t\t\t\t\tresetAllFilter: () => setOverlayBackgroundColor(),\n\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t\tpanelId={ clientId }\n\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\tgradients={ [] }\n\t\t\t\tdisableCustomGradients\n\t\t\t/>\n\t\t\t{ enableContrastChecking && (\n\t\t\t\t<>\n\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t/>\n\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\tbackgroundColor={ detectedOverlayBackgroundColor }\n\t\t\t\t\t\ttextColor={ detectedOverlayColor }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</>\n\t);\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\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\toverlay,\n\t\tshowSubmenuIcon,\n\t\ttemplateLock,\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\ticon = 'handle',\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst setRef = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { ref: postId } );\n\t\t},\n\t\t[ setAttributes ]\n\t);\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { onNavigateToEntityRecord } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst settings = getSettings();\n\t\treturn {\n\t\t\tonNavigateToEntityRecord: settings?.onNavigateToEntityRecord,\n\t\t};\n\t}, [] );\n\n\tconst isOverlayExperimentEnabled =\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.__experimentalNavigationOverlays === true;\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/status',\n\t\t} );\n\n\tconst [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/classic-menu-conversion',\n\t\t} );\n\n\tconst [\n\t\tshowNavigationMenuPermissionsNotice,\n\t\thideNavigationMenuPermissionsNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t\tisPending: isCreatingNavigationMenu,\n\t\tisSuccess: createNavigationMenuIsSuccess,\n\t\tisError: createNavigationMenuIsError,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst createUntitledEmptyNavigationMenu = async () => {\n\t\tawait createNavigationMenu( '' );\n\t};\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\tinnerBlocks,\n\t} = useInnerBlocks( clientId );\n\n\tconst hasSubmenus = !! innerBlocks.find(\n\t\t( block ) => block.name === 'core/navigation-submenu'\n\t);\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] =\n\t\tuseState( false );\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenus,\n\t\tisResolvingCanUserCreateNavigationMenus,\n\t\thasResolvedCanUserCreateNavigationMenus,\n\t} = useNavigationMenu( ref );\n\n\tconst navMenuResolvedButMissing =\n\t\thasResolvedNavigationMenus && isNavigationMenuMissing;\n\n\tconst {\n\t\tconvert: convertClassicMenu,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t} = useConvertClassicToBlockMenu( createNavigationMenu );\n\n\tconst isConvertingClassicMenu =\n\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;\n\n\tconst handleUpdateMenu = useCallback(\n\t\t( menuId, options = { focusNavigationBlock: false } ) => {\n\t\t\tconst { focusNavigationBlock } = options;\n\t\t\tsetRef( menuId );\n\t\t\tif ( focusNavigationBlock ) {\n\t\t\t\tselectBlock( clientId );\n\t\t\t}\n\t\t},\n\t\t[ selectBlock, clientId, setRef ]\n\t);\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\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\n\tconst { getNavigationFallbackId } = unlock( useSelect( coreStore ) );\n\n\tconst navigationFallbackId = ! ( ref || hasUnsavedBlocks )\n\t\t? getNavigationFallbackId()\n\t\t: null;\n\n\tuseEffect( () => {\n\t\t// If:\n\t\t// - there is an existing menu, OR\n\t\t// - there are existing (uncontrolled) inner blocks\n\t\t// ...then don't request a fallback menu.\n\t\tif ( ref || hasUnsavedBlocks || ! navigationFallbackId ) {\n\t\t\treturn;\n\t\t}\n\n\t\t/**\n\t\t * This fallback displays (both in editor and on front)\n\t\t * The fallback should not request a save (entity dirty state)\n\t\t * nor to be undoable, hence why it is marked as non persistent\n\t\t */\n\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetRef( navigationFallbackId );\n\t}, [\n\t\tref,\n\t\tsetRef,\n\t\thasUnsavedBlocks,\n\t\tnavigationFallbackId,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\n\n\tconst navRef = useRef();\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\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\tclassicMenus?.length === 0 &&\n\t\t! hasUncontrolledInnerBlocks;\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 hasBlockOverlay = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__unstableHasActiveBlockOverlayActive(\n\t\t\t\tclientId\n\t\t\t),\n\t\t[ clientId ]\n\t);\n\tconst isResponsive = 'never' !== overlayMenu;\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: clsx(\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t\t'items-justified-space-between':\n\t\t\t\t\tjustifyContent === 'space-between',\n\t\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t\t'is-responsive': isResponsive,\n\t\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t\t!! textColor?.slug,\n\t\t\t\t'has-background':\n\t\t\t\t\t!! backgroundColor.color || backgroundColor.class,\n\t\t\t\t[ getColorClassName(\n\t\t\t\t\t'background-color',\n\t\t\t\t\tbackgroundColor?.slug\n\t\t\t\t) ]: !! backgroundColor?.slug,\n\t\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t\t},\n\t\t\tlayoutClassNames\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 onSelectClassicMenu = async ( classicMenu ) => {\n\t\treturn convertClassicMenu( classicMenu.id, classicMenu.name, 'draft' );\n\t};\n\n\tconst onSelectNavigationMenu = ( menuId ) => {\n\t\thandleUpdateMenu( menuId );\n\t};\n\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\thandleUpdateMenu( createNavigationMenuPost?.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost?.id,\n\t\tcreateNavigationMenuIsError,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tisCreatingNavigationMenu,\n\t\thandleUpdateMenu,\n\t\thideNavigationMenuStatusNotice,\n\t\tshowNavigationMenuStatusNotice,\n\t] );\n\n\tuseEffect( () => {\n\t\thideClassicMenuConversionNotice();\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu imported successfully.' )\n\t\t\t);\n\t\t\thandleUpdateMenu( createNavigationMenuPost?.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu import failed.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tclassicMenuConversionStatus,\n\t\tclassicMenuConversionError,\n\t\thideClassicMenuConversionNotice,\n\t\tshowClassicMenuConversionNotice,\n\t\tcreateNavigationMenuPost?.id,\n\t\thandleUpdateMenu,\n\t] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideNavigationMenuPermissionsNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\t! navMenuResolvedButMissing &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenus &&\n\t\t\t\t! canUserCreateNavigationMenus\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenus,\n\t\thasResolvedCanUserCreateNavigationMenus,\n\t\tref,\n\t\thideNavigationMenuPermissionsNotice,\n\t\tshowNavigationMenuPermissionsNotice,\n\t\tnavMenuResolvedButMissing,\n\t] );\n\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenus || canUserUpdateNavigationMenu;\n\n\tconst overlayMenuPreviewClasses = clsx(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\tconst submenuAccessibilityNotice =\n\t\t! showSubmenuIcon && ! openSubmenusOnClick\n\t\t\t? __(\n\t\t\t\t\t'The current menu options offer reduced accessibility for users and are not recommended. Enabling either \"Open on Click\" or \"Show arrow\" offers enhanced accessibility by allowing keyboard users to browse submenus selectively.'\n\t\t\t )\n\t\t\t: '';\n\n\tconst isFirstRender = useRef( true ); // Don't speak on first render.\n\tuseEffect( () => {\n\t\tif ( ! isFirstRender.current && submenuAccessibilityNotice ) {\n\t\t\tspeak( submenuAccessibilityNotice );\n\t\t}\n\t\tisFirstRender.current = false;\n\t}, [ submenuAccessibilityNotice ] );\n\n\tconst overlayMenuPreviewId = useInstanceId(\n\t\tOverlayMenuPreview,\n\t\t`overlay-menu-preview`\n\t);\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst stylingInspectorControls = (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Display' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\topenSubmenusOnClick: false,\n\t\t\t\t\t\t\t\toverlayMenu: 'mobile',\n\t\t\t\t\t\t\t\thasIcon: true,\n\t\t\t\t\t\t\t\ticon: 'handle',\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! isOverlayExperimentEnabled && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t\t\t\t<OverlayMenuPreviewButton\n\t\t\t\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\t\t\t\toverlayMenuPreview={\n\t\t\t\t\t\t\t\t\t\t\toverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview={\n\t\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t\toverlayMenuPreviewClasses={\n\t\t\t\t\t\t\t\t\t\t\toverlayMenuPreviewClasses\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\toverlayMenuPreviewId={\n\t\t\t\t\t\t\t\t\t\t\toverlayMenuPreviewId\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcontainerStyle={ {\n\t\t\t\t\t\t\t\t\t\t\tgridColumn: 'span 2',\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\n\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\thasValue={ () => overlayMenu !== 'mobile' }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Overlay Visibility' ) }\n\t\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\toverlayMenu: 'mobile',\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\tisShownByDefault\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<OverlayVisibilityControl\n\t\t\t\t\t\t\t\t\t\toverlayMenu={ overlayMenu }\n\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<h3 className=\"wp-block-navigation__submenu-header\">\n\t\t\t\t\t\t\t\t\t{ __( 'Submenus' ) }\n\t\t\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\thasValue={ () => openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: false,\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\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\tisShownByDefault\n\t\t\t\t\t\t\t\t>\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\t\t\t\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\thasValue={ () => ! showSubmenuIcon }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\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\tisDisabled={\n\t\t\t\t\t\t\t\t\t\tattributes.openSubmenusOnClick\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\t>\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</ToolsPanelItem>\n\n\t\t\t\t\t\t\t\t{ submenuAccessibilityNotice && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tspokenMessage={ null }\n\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation__submenu-accessibility-notice\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ submenuAccessibilityNotice }\n\t\t\t\t\t\t\t\t\t</Notice>\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</ToolsPanel>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t{ isOverlayExperimentEnabled && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<OverlayPanel\n\t\t\t\t\t\toverlayMenu={ overlayMenu }\n\t\t\t\t\t\toverlay={ overlay }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tonNavigateToEntityRecord={ onNavigateToEntityRecord }\n\t\t\t\t\t\toverlayMenuPreview={ overlayMenuPreview }\n\t\t\t\t\t\tsetOverlayMenuPreview={ setOverlayMenuPreview }\n\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\toverlayMenuPreviewClasses={ overlayMenuPreviewClasses }\n\t\t\t\t\t\toverlayMenuPreviewId={ overlayMenuPreviewId }\n\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t{ /*\n\t\t\t\t * Avoid useMultipleOriginColorsAndGradients and detectColors\n\t\t\t\t * on block mount. InspectorControls only mounts this component\n\t\t\t\t * when the block is selected.\n\t\t\t\t * */ }\n\t\t\t\t<ColorTools\n\t\t\t\t\ttextColor={ textColor }\n\t\t\t\t\tsetTextColor={ setTextColor }\n\t\t\t\t\tbackgroundColor={ backgroundColor }\n\t\t\t\t\tsetBackgroundColor={ setBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\tsetOverlayTextColor={ setOverlayTextColor }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\tsetOverlayBackgroundColor={ setOverlayBackgroundColor }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tnavRef={ navRef }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst accessibleDescriptionId = `${ clientId }-desc`;\n\tconst isHiddenByDefault = 'always' === overlayMenu;\n\tconst isManageMenusButtonDisabled =\n\t\t! hasManagePermissions || ! hasResolvedNavigationMenus;\n\n\tif ( hasUnsavedBlocks && ! isCreatingNavigationMenu ) {\n\t\treturn (\n\t\t\t<TagName\n\t\t\t\t{ ...blockProps }\n\t\t\t\taria-describedby={\n\t\t\t\t\t! isPlaceholder ? accessibleDescriptionId : undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<AccessibleDescription id={ accessibleDescriptionId }>\n\t\t\t\t\t{ __( 'Unsaved Navigation Menu.' ) }\n\t\t\t\t</AccessibleDescription>\n\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t\t{ blockEditingMode === 'default' && stylingInspectorControls }\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\thasIcon={ hasIcon }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\tisHiddenByDefault={ isHiddenByDefault }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\toverlay={ overlay }\n\t\t\t\t\tonNavigateToEntityRecord={ onNavigateToEntityRecord }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tcreateNavigationMenu={ createNavigationMenu }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\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<TagName { ...blockProps }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t\t<DeletedNavigationWarning\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\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\t/**\n\t * Historically the navigation block has supported custom placeholders.\n\t * Even though the current UX tries as hard as possible not to\n\t * end up in a placeholder state, the block continues to support\n\t * this extensibility point, via a CustomPlaceholder.\n\t * When CustomPlaceholder is present it becomes the default fallback\n\t * for an empty navigation block, instead of the default fallbacks.\n\t *\n\t */\n\n\tif ( isPlaceholder && CustomPlaceholder ) {\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\tcanUserCreateNavigationMenus={\n\t\t\t\t\t\tcanUserCreateNavigationMenus\n\t\t\t\t\t}\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenus={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenus\n\t\t\t\t\t}\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonCreateEmpty={ createUntitledEmptyNavigationMenu }\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 uniqueId={ recursionId }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t\t{ blockEditingMode === 'default' && stylingInspectorControls }\n\t\t\t\t{ blockEditingMode === 'contentOnly' && isEntityAvailable && (\n\t\t\t\t\t<NavigationAddPageButton clientId={ clientId } />\n\t\t\t\t) }\n\t\t\t\t{ blockEditingMode === 'default' && isEntityAvailable && (\n\t\t\t\t\t<InspectorControls group=\"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={ () => {\n\t\t\t\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'Navigation Menu successfully deleted.'\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\t<ManageMenusButton\n\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-manage-menus-button\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t<TagName\n\t\t\t\t\t{ ...blockProps }\n\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t! isPlaceholder && ! isLoading\n\t\t\t\t\t\t\t? accessibleDescriptionId\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isLoading && ! isHiddenByDefault && (\n\t\t\t\t\t\t<div className=\"wp-block-navigation__loading-indicator-container\">\n\t\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ( ! isLoading || isHiddenByDefault ) && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<AccessibleMenuDescription\n\t\t\t\t\t\t\t\tid={ accessibleDescriptionId }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\t\tisHiddenByDefault={ isHiddenByDefault }\n\t\t\t\t\t\t\t\toverlayBackgroundColor={\n\t\t\t\t\t\t\t\t\toverlayBackgroundColor\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\t\t\t\toverlay={ overlay }\n\t\t\t\t\t\t\t\tonNavigateToEntityRecord={\n\t\t\t\t\t\t\t\t\tonNavigateToEntityRecord\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{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\t\t\t\t\torientation={ orientation }\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</ResponsiveWrapper>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</TagName>\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"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n\tuseBlockEditingMode,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { EntityProvider, store as coreStore } from '@wordpress/core-data';\n\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n\tSpinner,\n\tNotice,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { page } from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\nimport { useInstanceId } from '@wordpress/compose';\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 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 OverlayMenuPreview from './overlay-menu-preview';\nimport OverlayPanel from './overlay-panel';\nimport OverlayVisibilityControl from './overlay-visibility-control';\nimport OverlayMenuPreviewButton from './overlay-menu-preview-button';\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 from './use-create-navigation-menu';\nimport { useInnerBlocks } from './use-inner-blocks';\nimport { detectColors } from './utils';\nimport ManageMenusButton from './manage-menus-button';\nimport MenuInspectorControls from './menu-inspector-controls';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\nimport AccessibleDescription from './accessible-description';\nimport AccessibleMenuDescription from './accessible-menu-description';\nimport { unlock } from '../../lock-unlock';\nimport { useToolsPanelDropdownMenuProps } from '../../utils/hooks';\nimport { DEFAULT_BLOCK } from '../constants';\n\n/**\n * Component that renders the Add page button for the Navigation block.\n *\n * @param {Object} props Component props.\n * @param {string} props.clientId Block client ID.\n * @return {JSX.Element|null} The Add page button component or null if not applicable.\n */\nfunction NavigationAddPageButton( { clientId } ) {\n\tconst { insertBlock } = useDispatch( blockEditorStore );\n\tconst { getBlockCount } = useSelect( blockEditorStore );\n\n\tconst onAddPage = useCallback( () => {\n\t\t// Get the current number of blocks to insert at the end\n\t\tconst blockCount = getBlockCount( clientId );\n\n\t\t// Create a new navigation link block (default block)\n\t\tconst newBlock = createBlock( DEFAULT_BLOCK.name, {\n\t\t\tkind: DEFAULT_BLOCK.attributes.kind,\n\t\t\ttype: DEFAULT_BLOCK.attributes.type,\n\t\t} );\n\n\t\t// Insert the block at the end of the navigation\n\t\tinsertBlock( newBlock, blockCount, clientId );\n\t}, [ clientId, insertBlock, getBlockCount ] );\n\n\treturn (\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tname=\"add-page\"\n\t\t\t\t\ticon={ page }\n\t\t\t\t\tonClick={ onAddPage }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Add page' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n}\n\nfunction ColorTools( {\n\ttextColor,\n\tsetTextColor,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\tclientId,\n\tnavRef,\n\thasCustomOverlay,\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\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\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\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-submenu\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\n\t\tif ( ! subMenuElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Only detect submenu overlay colors if they have previously been explicitly set.\n\t\t// This avoids the contrast checker from reporting on inherited submenu colors and\n\t\t// showing the contrast warning twice.\n\t\tif ( overlayTextColor.color || overlayBackgroundColor.color ) {\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\t\tenableContrastChecking,\n\t\toverlayTextColor.color,\n\t\toverlayBackgroundColor.color,\n\t\tnavRef,\n\t] );\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tif ( ! colorGradientSettings.hasColorsOrGradients ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\tsettings={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tcolorValue: textColor.color,\n\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\tonColorChange: setTextColor,\n\t\t\t\t\t\tresetAllFilter: () => setTextColor(),\n\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcolorValue: backgroundColor.color,\n\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\tonColorChange: setBackgroundColor,\n\t\t\t\t\t\tresetAllFilter: () => setBackgroundColor(),\n\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcolorValue: overlayTextColor.color,\n\t\t\t\t\t\tlabel: hasCustomOverlay\n\t\t\t\t\t\t\t? __( 'Submenu text' )\n\t\t\t\t\t\t\t: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\tonColorChange: setOverlayTextColor,\n\t\t\t\t\t\tresetAllFilter: () => setOverlayTextColor(),\n\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcolorValue: overlayBackgroundColor.color,\n\t\t\t\t\t\tlabel: hasCustomOverlay\n\t\t\t\t\t\t\t? __( 'Submenu background' )\n\t\t\t\t\t\t\t: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\tonColorChange: setOverlayBackgroundColor,\n\t\t\t\t\t\tresetAllFilter: () => setOverlayBackgroundColor(),\n\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t\tpanelId={ clientId }\n\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\tgradients={ [] }\n\t\t\t\tdisableCustomGradients\n\t\t\t/>\n\t\t\t{ enableContrastChecking && (\n\t\t\t\t<>\n\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t/>\n\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\tbackgroundColor={ detectedOverlayBackgroundColor }\n\t\t\t\t\t\ttextColor={ detectedOverlayColor }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</>\n\t);\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\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\tcustomPlaceholder: CustomPlaceholder = null,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\toverlay,\n\t\tshowSubmenuIcon,\n\t\ttemplateLock,\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\ticon = 'handle',\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst setRef = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { ref: postId } );\n\t\t},\n\t\t[ setAttributes ]\n\t);\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { onNavigateToEntityRecord } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst settings = getSettings();\n\t\treturn {\n\t\t\tonNavigateToEntityRecord: settings?.onNavigateToEntityRecord,\n\t\t};\n\t}, [] );\n\n\tconst isOverlayExperimentEnabled =\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.__experimentalNavigationOverlays === true;\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/status',\n\t\t} );\n\n\tconst [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/classic-menu-conversion',\n\t\t} );\n\n\tconst [\n\t\tshowNavigationMenuPermissionsNotice,\n\t\thideNavigationMenuPermissionsNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t\tisPending: isCreatingNavigationMenu,\n\t\tisSuccess: createNavigationMenuIsSuccess,\n\t\tisError: createNavigationMenuIsError,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst createUntitledEmptyNavigationMenu = async () => {\n\t\tawait createNavigationMenu( '' );\n\t};\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\tinnerBlocks,\n\t} = useInnerBlocks( clientId );\n\n\tconst hasSubmenus = !! innerBlocks.find(\n\t\t( block ) => block.name === 'core/navigation-submenu'\n\t);\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] =\n\t\tuseState( false );\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenus,\n\t\tisResolvingCanUserCreateNavigationMenus,\n\t\thasResolvedCanUserCreateNavigationMenus,\n\t} = useNavigationMenu( ref );\n\n\tconst navMenuResolvedButMissing =\n\t\thasResolvedNavigationMenus && isNavigationMenuMissing;\n\n\tconst {\n\t\tconvert: convertClassicMenu,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t} = useConvertClassicToBlockMenu( createNavigationMenu );\n\n\tconst isConvertingClassicMenu =\n\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;\n\n\tconst handleUpdateMenu = useCallback(\n\t\t( menuId, options = { focusNavigationBlock: false } ) => {\n\t\t\tconst { focusNavigationBlock } = options;\n\t\t\tsetRef( menuId );\n\t\t\tif ( focusNavigationBlock ) {\n\t\t\t\tselectBlock( clientId );\n\t\t\t}\n\t\t},\n\t\t[ selectBlock, clientId, setRef ]\n\t);\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\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\n\tconst { getNavigationFallbackId } = unlock( useSelect( coreStore ) );\n\n\tconst navigationFallbackId = ! ( ref || hasUnsavedBlocks )\n\t\t? getNavigationFallbackId()\n\t\t: null;\n\n\tuseEffect( () => {\n\t\t// If:\n\t\t// - there is an existing menu, OR\n\t\t// - there are existing (uncontrolled) inner blocks\n\t\t// ...then don't request a fallback menu.\n\t\tif ( ref || hasUnsavedBlocks || ! navigationFallbackId ) {\n\t\t\treturn;\n\t\t}\n\n\t\t/**\n\t\t * This fallback displays (both in editor and on front)\n\t\t * The fallback should not request a save (entity dirty state)\n\t\t * nor to be undoable, hence why it is marked as non persistent\n\t\t */\n\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetRef( navigationFallbackId );\n\t}, [\n\t\tref,\n\t\tsetRef,\n\t\thasUnsavedBlocks,\n\t\tnavigationFallbackId,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\n\n\tconst navRef = useRef();\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\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\tclassicMenus?.length === 0 &&\n\t\t! hasUncontrolledInnerBlocks;\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 hasBlockOverlay = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__unstableHasActiveBlockOverlayActive(\n\t\t\t\tclientId\n\t\t\t),\n\t\t[ clientId ]\n\t);\n\tconst isResponsive = 'never' !== overlayMenu;\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: clsx(\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t\t'items-justified-space-between':\n\t\t\t\t\tjustifyContent === 'space-between',\n\t\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t\t'is-responsive': isResponsive,\n\t\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t\t!! textColor?.slug,\n\t\t\t\t'has-background':\n\t\t\t\t\t!! backgroundColor.color || backgroundColor.class,\n\t\t\t\t[ getColorClassName(\n\t\t\t\t\t'background-color',\n\t\t\t\t\tbackgroundColor?.slug\n\t\t\t\t) ]: !! backgroundColor?.slug,\n\t\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t\t},\n\t\t\tlayoutClassNames\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 onSelectClassicMenu = async ( classicMenu ) => {\n\t\treturn convertClassicMenu( classicMenu.id, classicMenu.name, 'draft' );\n\t};\n\n\tconst onSelectNavigationMenu = ( menuId ) => {\n\t\thandleUpdateMenu( menuId );\n\t};\n\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\thandleUpdateMenu( createNavigationMenuPost?.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost?.id,\n\t\tcreateNavigationMenuIsError,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tisCreatingNavigationMenu,\n\t\thandleUpdateMenu,\n\t\thideNavigationMenuStatusNotice,\n\t\tshowNavigationMenuStatusNotice,\n\t] );\n\n\tuseEffect( () => {\n\t\thideClassicMenuConversionNotice();\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu imported successfully.' )\n\t\t\t);\n\t\t\thandleUpdateMenu( createNavigationMenuPost?.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu import failed.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tclassicMenuConversionStatus,\n\t\tclassicMenuConversionError,\n\t\thideClassicMenuConversionNotice,\n\t\tshowClassicMenuConversionNotice,\n\t\tcreateNavigationMenuPost?.id,\n\t\thandleUpdateMenu,\n\t] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideNavigationMenuPermissionsNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\t! navMenuResolvedButMissing &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenus &&\n\t\t\t\t! canUserCreateNavigationMenus\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenus,\n\t\thasResolvedCanUserCreateNavigationMenus,\n\t\tref,\n\t\thideNavigationMenuPermissionsNotice,\n\t\tshowNavigationMenuPermissionsNotice,\n\t\tnavMenuResolvedButMissing,\n\t] );\n\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenus || canUserUpdateNavigationMenu;\n\n\tconst overlayMenuPreviewClasses = clsx(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\tconst submenuAccessibilityNotice =\n\t\t! showSubmenuIcon && ! openSubmenusOnClick\n\t\t\t? __(\n\t\t\t\t\t'The current menu options offer reduced accessibility for users and are not recommended. Enabling either \"Open on Click\" or \"Show arrow\" offers enhanced accessibility by allowing keyboard users to browse submenus selectively.'\n\t\t\t )\n\t\t\t: '';\n\n\tconst isFirstRender = useRef( true ); // Don't speak on first render.\n\tuseEffect( () => {\n\t\tif ( ! isFirstRender.current && submenuAccessibilityNotice ) {\n\t\t\tspeak( submenuAccessibilityNotice );\n\t\t}\n\t\tisFirstRender.current = false;\n\t}, [ submenuAccessibilityNotice ] );\n\n\tconst overlayMenuPreviewId = useInstanceId(\n\t\tOverlayMenuPreview,\n\t\t`overlay-menu-preview`\n\t);\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst stylingInspectorControls = (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ ( ! isOverlayExperimentEnabled || hasSubmenus ) && (\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Display' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\topenSubmenusOnClick: false,\n\t\t\t\t\t\t\t\toverlayMenu: 'mobile',\n\t\t\t\t\t\t\t\thasIcon: true,\n\t\t\t\t\t\t\t\ticon: 'handle',\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! isOverlayExperimentEnabled && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t\t\t\t<OverlayMenuPreviewButton\n\t\t\t\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\t\t\t\toverlayMenuPreview={\n\t\t\t\t\t\t\t\t\t\t\toverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview={\n\t\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t\toverlayMenuPreviewClasses={\n\t\t\t\t\t\t\t\t\t\t\toverlayMenuPreviewClasses\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\toverlayMenuPreviewId={\n\t\t\t\t\t\t\t\t\t\t\toverlayMenuPreviewId\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcontainerStyle={ {\n\t\t\t\t\t\t\t\t\t\t\tgridColumn: 'span 2',\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\n\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\thasValue={ () => overlayMenu !== 'mobile' }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Overlay Visibility' ) }\n\t\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\toverlayMenu: 'mobile',\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\tisShownByDefault\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<OverlayVisibilityControl\n\t\t\t\t\t\t\t\t\t\toverlayMenu={ overlayMenu }\n\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<h3 className=\"wp-block-navigation__submenu-header\">\n\t\t\t\t\t\t\t\t\t{ __( 'Submenus' ) }\n\t\t\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\thasValue={ () => openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: false,\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\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\tisShownByDefault\n\t\t\t\t\t\t\t\t>\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\t\t\t\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\thasValue={ () => ! showSubmenuIcon }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\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\tisDisabled={\n\t\t\t\t\t\t\t\t\t\tattributes.openSubmenusOnClick\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\t>\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</ToolsPanelItem>\n\n\t\t\t\t\t\t\t\t{ submenuAccessibilityNotice && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tspokenMessage={ null }\n\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation__submenu-accessibility-notice\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ submenuAccessibilityNotice }\n\t\t\t\t\t\t\t\t\t</Notice>\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</ToolsPanel>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t{ isOverlayExperimentEnabled && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<OverlayPanel\n\t\t\t\t\t\toverlayMenu={ overlayMenu }\n\t\t\t\t\t\toverlay={ overlay }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tonNavigateToEntityRecord={ onNavigateToEntityRecord }\n\t\t\t\t\t\toverlayMenuPreview={ overlayMenuPreview }\n\t\t\t\t\t\tsetOverlayMenuPreview={ setOverlayMenuPreview }\n\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\toverlayMenuPreviewClasses={ overlayMenuPreviewClasses }\n\t\t\t\t\t\toverlayMenuPreviewId={ overlayMenuPreviewId }\n\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t{ /*\n\t\t\t\t * Avoid useMultipleOriginColorsAndGradients and detectColors\n\t\t\t\t * on block mount. InspectorControls only mounts this component\n\t\t\t\t * when the block is selected.\n\t\t\t\t * */ }\n\t\t\t\t<ColorTools\n\t\t\t\t\ttextColor={ textColor }\n\t\t\t\t\tsetTextColor={ setTextColor }\n\t\t\t\t\tbackgroundColor={ backgroundColor }\n\t\t\t\t\tsetBackgroundColor={ setBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\tsetOverlayTextColor={ setOverlayTextColor }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\tsetOverlayBackgroundColor={ setOverlayBackgroundColor }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tnavRef={ navRef }\n\t\t\t\t\thasCustomOverlay={ !! overlay }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst accessibleDescriptionId = `${ clientId }-desc`;\n\tconst isHiddenByDefault = 'always' === overlayMenu;\n\tconst isManageMenusButtonDisabled =\n\t\t! hasManagePermissions || ! hasResolvedNavigationMenus;\n\n\tif ( hasUnsavedBlocks && ! isCreatingNavigationMenu ) {\n\t\treturn (\n\t\t\t<TagName\n\t\t\t\t{ ...blockProps }\n\t\t\t\taria-describedby={\n\t\t\t\t\t! isPlaceholder ? accessibleDescriptionId : undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<AccessibleDescription id={ accessibleDescriptionId }>\n\t\t\t\t\t{ __( 'Unsaved Navigation Menu.' ) }\n\t\t\t\t</AccessibleDescription>\n\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t\t{ blockEditingMode === 'default' && stylingInspectorControls }\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\thasIcon={ hasIcon }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\tisHiddenByDefault={ isHiddenByDefault }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\toverlay={ overlay }\n\t\t\t\t\tonNavigateToEntityRecord={ onNavigateToEntityRecord }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tcreateNavigationMenu={ createNavigationMenu }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\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<TagName { ...blockProps }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t\t<DeletedNavigationWarning\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\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\t/**\n\t * Historically the navigation block has supported custom placeholders.\n\t * Even though the current UX tries as hard as possible not to\n\t * end up in a placeholder state, the block continues to support\n\t * this extensibility point, via a CustomPlaceholder.\n\t * When CustomPlaceholder is present it becomes the default fallback\n\t * for an empty navigation block, instead of the default fallbacks.\n\t *\n\t */\n\n\tif ( isPlaceholder && CustomPlaceholder ) {\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\tcanUserCreateNavigationMenus={\n\t\t\t\t\t\tcanUserCreateNavigationMenus\n\t\t\t\t\t}\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenus={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenus\n\t\t\t\t\t}\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonCreateEmpty={ createUntitledEmptyNavigationMenu }\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 uniqueId={ recursionId }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t\t{ blockEditingMode === 'default' && stylingInspectorControls }\n\t\t\t\t{ blockEditingMode === 'contentOnly' && isEntityAvailable && (\n\t\t\t\t\t<NavigationAddPageButton clientId={ clientId } />\n\t\t\t\t) }\n\t\t\t\t{ blockEditingMode === 'default' && isEntityAvailable && (\n\t\t\t\t\t<InspectorControls group=\"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={ () => {\n\t\t\t\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'Navigation Menu successfully deleted.'\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\t<ManageMenusButton\n\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-manage-menus-button\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t<TagName\n\t\t\t\t\t{ ...blockProps }\n\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t! isPlaceholder && ! isLoading\n\t\t\t\t\t\t\t? accessibleDescriptionId\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isLoading && ! isHiddenByDefault && (\n\t\t\t\t\t\t<div className=\"wp-block-navigation__loading-indicator-container\">\n\t\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ( ! isLoading || isHiddenByDefault ) && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<AccessibleMenuDescription\n\t\t\t\t\t\t\t\tid={ accessibleDescriptionId }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\t\tisHiddenByDefault={ isHiddenByDefault }\n\t\t\t\t\t\t\t\toverlayBackgroundColor={\n\t\t\t\t\t\t\t\t\toverlayBackgroundColor\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\t\t\t\toverlay={ overlay }\n\t\t\t\t\t\t\t\tonNavigateToEntityRecord={\n\t\t\t\t\t\t\t\t\tonNavigateToEntityRecord\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{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\t\t\t\t\torientation={ orientation }\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</ResponsiveWrapper>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</TagName>\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"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,qBAMO;AACP,0BAcO;AACP,uBAAmD;AAEnD,kBAAuC;AACvC,wBAQO;AACP,kBAAmB;AACnB,kBAAsB;AACtB,mBAAqB;AACrB,oBAA4B;AAC5B,qBAA8B;AAK9B,iCAA8B;AAC9B,qCAAkC;AAClC,yBAAwB;AACxB,gCAA8B;AAC9B,0BAAkC;AAClC,0CAAsC;AACtC,kCAA+B;AAC/B,4CAAwC;AACxC,mCAAgC;AAChC,kCAA+B;AAC/B,2BAAyB;AACzB,wCAAqC;AACrC,yCAAqC;AACrC,oDAIO;AACP,wCAAoC;AACpC,8BAA+B;AAC/B,mBAA6B;AAC7B,iCAA8B;AAC9B,qCAAkC;AAClC,wCAAqC;AACrC,oCAAkC;AAClC,yCAAsC;AACtC,yBAAuB;AACvB,mBAA+C;AAC/C,uBAA8B;AA8B1B;AArBJ,SAAS,wBAAyB,EAAE,SAAS,GAAI;AAChD,QAAM,EAAE,YAAY,QAAI,yBAAa,oBAAAA,KAAiB;AACtD,QAAM,EAAE,cAAc,QAAI,uBAAW,oBAAAA,KAAiB;AAEtD,QAAM,gBAAY,4BAAa,MAAM;AAEpC,UAAM,aAAa,cAAe,QAAS;AAG3C,UAAM,eAAW,2BAAa,+BAAc,MAAM;AAAA,MACjD,MAAM,+BAAc,WAAW;AAAA,MAC/B,MAAM,+BAAc,WAAW;AAAA,IAChC,CAAE;AAGF,gBAAa,UAAU,YAAY,QAAS;AAAA,EAC7C,GAAG,CAAE,UAAU,aAAa,aAAc,CAAE;AAE5C,SACC,4CAAC,qCACA,sDAAC,kCACA;AAAA,IAAC;AAAA;AAAA,MACA,MAAK;AAAA,MACL,MAAO;AAAA,MACP,SAAU;AAAA,MAER,8BAAI,UAAW;AAAA;AAAA,EAClB,GACD,GACD;AAEF;AAEA,SAAS,WAAY;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,CAAE,yBAAyB,0BAA2B,QAAI,yBAAS;AACzE,QAAM,CAAE,eAAe,gBAAiB,QAAI,yBAAS;AACrD,QAAM;AAAA,IACL;AAAA,IACA;AAAA,EACD,QAAI,yBAAS;AACb,QAAM,CAAE,sBAAsB,uBAAwB,QAAI,yBAAS;AAEnE,QAAM,yBAAyB,wBAAS,OAAO;AAC/C,gCAAW,MAAM;AAChB,QAAK,CAAE,wBAAyB;AAC/B;AAAA,IACD;AACA;AAAA,MACC,OAAO;AAAA,MACP;AAAA,MACA;AAAA,IACD;AAEA,UAAM,iBAAiB,OAAO,SAAS;AAAA,MACtC;AAAA,IACD;AAEA,QAAK,CAAE,gBAAiB;AACvB;AAAA,IACD;AAKA,QAAK,iBAAiB,SAAS,uBAAuB,OAAQ;AAC7D;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,EACD,GAAG;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,IACjB,uBAAuB;AAAA,IACvB;AAAA,EACD,CAAE;AACF,QAAM,4BAAwB,oBAAAC,mDAAoC;AAClE,MAAK,CAAE,sBAAsB,sBAAuB;AACnD,WAAO;AAAA,EACR;AACA,SACC,4EACC;AAAA;AAAA,MAAC,oBAAAC;AAAA,MAAA;AAAA,QACA,mCAAiC;AAAA,QACjC,UAAW;AAAA,UACV;AAAA,YACC,YAAY,UAAU;AAAA,YACtB,WAAO,gBAAI,MAAO;AAAA,YAClB,eAAe;AAAA,YACf,gBAAgB,MAAM,aAAa;AAAA,YACnC,WAAW;AAAA,YACX,aAAa;AAAA,UACd;AAAA,UACA;AAAA,YACC,YAAY,gBAAgB;AAAA,YAC5B,WAAO,gBAAI,YAAa;AAAA,YACxB,eAAe;AAAA,YACf,gBAAgB,MAAM,mBAAmB;AAAA,YACzC,WAAW;AAAA,YACX,aAAa;AAAA,UACd;AAAA,UACA;AAAA,YACC,YAAY,iBAAiB;AAAA,YAC7B,OAAO,uBACJ,gBAAI,cAAe,QACnB,gBAAI,wBAAyB;AAAA,YAChC,eAAe;AAAA,YACf,gBAAgB,MAAM,oBAAoB;AAAA,YAC1C,WAAW;AAAA,YACX,aAAa;AAAA,UACd;AAAA,UACA;AAAA,YACC,YAAY,uBAAuB;AAAA,YACnC,OAAO,uBACJ,gBAAI,oBAAqB,QACzB,gBAAI,8BAA+B;AAAA,YACtC,eAAe;AAAA,YACf,gBAAgB,MAAM,0BAA0B;AAAA,YAChD,WAAW;AAAA,YACX,aAAa;AAAA,UACd;AAAA,QACD;AAAA,QACA,SAAU;AAAA,QACR,GAAG;AAAA,QACL,WAAY,CAAC;AAAA,QACb,wBAAsB;AAAA;AAAA,IACvB;AAAA,IACE,0BACD,4EACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,iBAAkB;AAAA,UAClB,WAAY;AAAA;AAAA,MACb;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACA,iBAAkB;AAAA,UAClB,WAAY;AAAA;AAAA,MACb;AAAA,OACD;AAAA,KAEF;AAEF;AAEA,SAAS,WAAY;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA,EAIA,mBAAmB,oBAAoB;AAAA,EACvC,4BAA4B;AAC7B,GAAI;AACH,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,MACP;AAAA,MACA,cAAc;AAAA,MACd,WAAW;AAAA,IACZ,IAAI,CAAC;AAAA,IACL;AAAA,IACA,OAAO;AAAA,EACR,IAAI;AAEJ,QAAM,MAAM,WAAW;AAEvB,QAAM,aAAS;AAAA,IACd,CAAE,WAAY;AACb,oBAAe,EAAE,KAAK,OAAO,CAAE;AAAA,IAChC;AAAA,IACA,CAAE,aAAc;AAAA,EACjB;AAEA,QAAM,cAAc,kBAAmB,GAAI;AAC3C,QAAM,yBAAqB,qCAAiB,WAAY;AAExD,QAAM,uBAAmB,yCAAoB;AAE7C,QAAM,EAAE,yBAAyB,QAAI,uBAAW,CAAE,WAAY;AAC7D,UAAM,EAAE,YAAY,IAAI,OAAQ,oBAAAF,KAAiB;AACjD,UAAM,WAAW,YAAY;AAC7B,WAAO;AAAA,MACN,0BAA0B,UAAU;AAAA,IACrC;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,QAAM,6BACL,OAAO,WAAW,eAClB,OAAO,qCAAqC;AAI7C,QAAM,EAAE,OAAO,aAAa,QAAI,+BAAAG,SAAsB;AAEtD,QAAM,CAAE,gCAAgC,8BAA+B,QACtE,6BAAAC,SAAqB;AAAA,IACpB,MAAM;AAAA,EACP,CAAE;AAEH,QAAM,CAAE,iCAAiC,+BAAgC,QACxE,6BAAAA,SAAqB;AAAA,IACpB,MAAM;AAAA,EACP,CAAE;AAEH,QAAM;AAAA,IACL;AAAA,IACA;AAAA,EACD,QAAI,6BAAAA,SAAqB;AAAA,IACxB,MAAM;AAAA,EACP,CAAE;AAEF,QAAM;AAAA,IACL,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA,IACX,WAAW;AAAA,IACX,SAAS;AAAA,EACV,QAAI,kCAAAC,SAAyB,QAAS;AAEtC,QAAM,oCAAoC,YAAY;AACrD,UAAM,qBAAsB,EAAG;AAAA,EAChC;AAEA,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,QAAI,wCAAgB,QAAS;AAE7B,QAAM,cAAc,CAAC,CAAE,YAAY;AAAA,IAClC,CAAE,UAAW,MAAM,SAAS;AAAA,EAC7B;AAEA,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACD,QAAI,yBAAa,oBAAAL,KAAiB;AAElC,QAAM,CAAE,sBAAsB,2BAA4B,QACzD,yBAAU,KAAM;AAEjB,QAAM,CAAE,oBAAoB,qBAAsB,QAAI,yBAAU,KAAM;AAEtE,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,QAAI,2BAAAM,SAAmB,GAAI;AAE3B,QAAM,4BACL,8BAA8B;AAE/B,QAAM;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,OAAO;AAAA,EACR,QAAI,8CAAAC,SAA8B,oBAAqB;AAEvD,QAAM,0BACL,gCAAgC;AAEjC,QAAM,uBAAmB;AAAA,IACxB,CAAE,QAAQ,UAAU,EAAE,sBAAsB,MAAM,MAAO;AACxD,YAAM,EAAE,qBAAqB,IAAI;AACjC,aAAQ,MAAO;AACf,UAAK,sBAAuB;AAC3B,oBAAa,QAAS;AAAA,MACvB;AAAA,IACD;AAAA,IACA,CAAE,aAAa,UAAU,MAAO;AAAA,EACjC;AAEA,QAAM,oBACL,CAAE,2BAA2B;AAQ9B,QAAM,mBAAmB,8BAA8B,CAAE;AAEzD,QAAM,EAAE,wBAAwB,QAAI,+BAAQ,uBAAW,iBAAAC,KAAU,CAAE;AAEnE,QAAM,uBAAuB,EAAI,OAAO,oBACrC,wBAAwB,IACxB;AAEH,gCAAW,MAAM;AAKhB,QAAK,OAAO,oBAAoB,CAAE,sBAAuB;AACxD;AAAA,IACD;AAQA,4CAAwC;AACxC,WAAQ,oBAAqB;AAAA,EAC9B,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AAEF,QAAM,aAAS,uBAAO;AAGtB,QAAM,UAAU;AAOhB,QAAM,gBACL,CAAE,OACF,CAAE,4BACF,CAAE,2BACF,8BACA,cAAc,WAAW,KACzB,CAAE;AAQH,QAAM,YACL,CAAE,8BACF,4BACA,2BACA,CAAC,EAAI,OAAO,CAAE,qBAAqB,CAAE;AAEtC,QAAM,iBAAiB,WAAW,OAAO,YAAY;AAErD,QAAM,sBAAkB;AAAA,IACvB,CAAE,WACD,OAAQ,oBAAAR,KAAiB,EAAE;AAAA,MAC1B;AAAA,IACD;AAAA,IACD,CAAE,QAAS;AAAA,EACZ;AACA,QAAM,eAAe,YAAY;AACjC,QAAM,iBAAa,mCAAe;AAAA,IACjC,KAAK;AAAA,IACL,eAAW,YAAAS;AAAA,MACV;AAAA,MACA;AAAA,QACC,yBAAyB,mBAAmB;AAAA,QAC5C,iCACC,mBAAmB;AAAA,QACpB,wBAAwB,mBAAmB;AAAA,QAC3C,0BAA0B,mBAAmB;AAAA,QAC7C,eAAe,gBAAgB;AAAA,QAC/B,WAAW,aAAa;AAAA,QACxB,iBAAiB;AAAA,QACjB,kBAAkB,CAAC,CAAE,UAAU,SAAS,CAAC,CAAE,WAAW;AAAA,QACtD,KAAE,uCAAmB,SAAS,WAAW,IAAK,CAAE,GAC/C,CAAC,CAAE,WAAW;AAAA,QACf,kBACC,CAAC,CAAE,gBAAgB,SAAS,gBAAgB;AAAA,QAC7C,KAAE;AAAA,UACD;AAAA,UACA,iBAAiB;AAAA,QAClB,CAAE,GAAG,CAAC,CAAE,iBAAiB;AAAA,QACzB,CAAE,uBAAwB,cAAe,EAAG,GAAG;AAAA,QAC/C,sCAAsC;AAAA,MACvC;AAAA,MACA;AAAA,IACD;AAAA,IACA,OAAO;AAAA,MACN,OAAO,CAAE,WAAW,QAAQ,WAAW;AAAA,MACvC,iBAAiB,CAAE,iBAAiB,QAAQ,iBAAiB;AAAA,IAC9D;AAAA,EACD,CAAE;AAEF,QAAM,sBAAsB,OAAQ,gBAAiB;AACpD,WAAO,mBAAoB,YAAY,IAAI,YAAY,MAAM,OAAQ;AAAA,EACtE;AAEA,QAAM,yBAAyB,CAAE,WAAY;AAC5C,qBAAkB,MAAO;AAAA,EAC1B;AAEA,gCAAW,MAAM;AAChB,mCAA+B;AAE/B,QAAK,0BAA2B;AAC/B,iCAAO,gBAAI,2BAA4B,CAAE;AAAA,IAC1C;AAEA,QAAK,+BAAgC;AACpC,uBAAkB,0BAA0B,IAAI;AAAA,QAC/C,sBAAsB;AAAA,MACvB,CAAE;AAEF;AAAA,YACC,gBAAI,uCAAwC;AAAA,MAC7C;AAAA,IACD;AAEA,QAAK,6BAA8B;AAClC;AAAA,YACC,gBAAI,mCAAoC;AAAA,MACzC;AAAA,IACD;AAAA,EACD,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA,0BAA0B;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AAEF,gCAAW,MAAM;AAChB,oCAAgC;AAChC,QAAK,gCAAgC,+EAAkC;AACtE,iCAAO,gBAAI,yBAA0B,CAAE;AAAA,IACxC;AAEA,QAAK,gCAAgC,+EAAkC;AACtE;AAAA,YACC,gBAAI,qCAAsC;AAAA,MAC3C;AACA,uBAAkB,0BAA0B,IAAI;AAAA,QAC/C,sBAAsB;AAAA,MACvB,CAAE;AAAA,IACH;AAEA,QAAK,gCAAgC,6EAAgC;AACpE;AAAA,YACC,gBAAI,6BAA8B;AAAA,MACnC;AAAA,IACD;AAAA,EACD,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,0BAA0B;AAAA,IAC1B;AAAA,EACD,CAAE;AAEF,gCAAW,MAAM;AAChB,QAAK,CAAE,cAAc,CAAE,sBAAuB;AAC7C,0CAAoC;AAAA,IACrC;AAEA,QAAK,cAAc,sBAAuB;AACzC,UACC,OACA,CAAE,6BACF,0CACA,CAAE,6BACD;AACD;AAAA,cACC;AAAA,YACC;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAEA,UACC,CAAE,OACF,2CACA,CAAE,8BACD;AACD;AAAA,cACC;AAAA,YACC;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AAEF,QAAM,uBACL,gCAAgC;AAEjC,QAAM,gCAA4B,YAAAA;AAAA,IACjC;AAAA,IACA,EAAE,MAAM,mBAAmB;AAAA,EAC5B;AAEA,QAAM,6BACL,CAAE,mBAAmB,CAAE,0BACpB;AAAA,IACA;AAAA,EACA,IACA;AAEJ,QAAM,oBAAgB,uBAAQ,IAAK;AACnC,gCAAW,MAAM;AAChB,QAAK,CAAE,cAAc,WAAW,4BAA6B;AAC5D,6BAAO,0BAA2B;AAAA,IACnC;AACA,kBAAc,UAAU;AAAA,EACzB,GAAG,CAAE,0BAA2B,CAAE;AAElC,QAAM,2BAAuB;AAAA,IAC5B,4BAAAC;AAAA,IACA;AAAA,EACD;AAEA,QAAM,wBAAoB,6CAA+B;AAEzD,QAAM,2BACL,4EACC;AAAA,gDAAC,yCACI,YAAE,8BAA8B,gBACnC;AAAA,MAAC,kBAAAC;AAAA,MAAA;AAAA,QACA,WAAQ,gBAAI,SAAU;AAAA,QACtB,UAAW,MAAM;AAChB,wBAAe;AAAA,YACd,iBAAiB;AAAA,YACjB,qBAAqB;AAAA,YACrB,aAAa;AAAA,YACb,SAAS;AAAA,YACT,MAAM;AAAA,UACP,CAAE;AAAA,QACH;AAAA,QACA;AAAA,QAEE;AAAA,WAAE,8BACH,4EACG;AAAA,4BACD;AAAA,cAAC,mCAAAC;AAAA,cAAA;AAAA,gBACA;AAAA,gBACA;AAAA,gBAGA;AAAA,gBAGA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBAGA;AAAA,gBAGA,gBAAiB;AAAA,kBAChB,YAAY;AAAA,gBACb;AAAA;AAAA,YACD;AAAA,YAGD;AAAA,cAAC,kBAAAC;AAAA,cAAA;AAAA,gBACA,UAAW,MAAM,gBAAgB;AAAA,gBACjC,WAAQ,gBAAI,oBAAqB;AAAA,gBACjC,YAAa,MACZ,cAAe;AAAA,kBACd,aAAa;AAAA,gBACd,CAAE;AAAA,gBAEH,kBAAgB;AAAA,gBAEhB;AAAA,kBAAC,kCAAAC;AAAA,kBAAA;AAAA,oBACA;AAAA,oBACA;AAAA;AAAA,gBACD;AAAA;AAAA,YACD;AAAA,aACD;AAAA,UAGC,eACD,4EACC;AAAA,wDAAC,QAAG,WAAU,uCACX,8BAAI,UAAW,GAClB;AAAA,YACA;AAAA,cAAC,kBAAAD;AAAA,cAAA;AAAA,gBACA,UAAW,MAAM;AAAA,gBACjB,WAAQ,gBAAI,eAAgB;AAAA,gBAC5B,YAAa,MACZ,cAAe;AAAA,kBACd,qBAAqB;AAAA,kBACrB,iBAAiB;AAAA,gBAClB,CAAE;AAAA,gBAEH,kBAAgB;AAAA,gBAEhB;AAAA,kBAAC;AAAA;AAAA,oBACA,SAAU;AAAA,oBACV,UAAW,CAAE,UAAW;AACvB,oCAAe;AAAA,wBACd,qBAAqB;AAAA,wBACrB,GAAK,SAAS;AAAA,0BACb,iBAAiB;AAAA,wBAClB;AAAA;AAAA,sBACD,CAAE;AAAA,oBACH;AAAA,oBACA,WAAQ,gBAAI,eAAgB;AAAA;AAAA,gBAC7B;AAAA;AAAA,YACD;AAAA,YAEA;AAAA,cAAC,kBAAAA;AAAA,cAAA;AAAA,gBACA,UAAW,MAAM,CAAE;AAAA,gBACnB,WAAQ,gBAAI,YAAa;AAAA,gBACzB,YAAa,MACZ,cAAe;AAAA,kBACd,iBAAiB;AAAA,gBAClB,CAAE;AAAA,gBAEH,YACC,WAAW;AAAA,gBAEZ,kBAAgB;AAAA,gBAEhB;AAAA,kBAAC;AAAA;AAAA,oBACA,SAAU;AAAA,oBACV,UAAW,CAAE,UAAW;AACvB,oCAAe;AAAA,wBACd,iBAAiB;AAAA,sBAClB,CAAE;AAAA,oBACH;AAAA,oBACA,UACC,WAAW;AAAA,oBAEZ,WAAQ,gBAAI,YAAa;AAAA;AAAA,gBAC1B;AAAA;AAAA,YACD;AAAA,YAEE,8BACD;AAAA,cAAC;AAAA;AAAA,gBACA,eAAgB;AAAA,gBAChB,QAAO;AAAA,gBACP,eAAgB;AAAA,gBAChB,WAAU;AAAA,gBAER;AAAA;AAAA,YACH;AAAA,aAEF;AAAA;AAAA;AAAA,IAEF,GAEF;AAAA,IACE,8BACD,4CAAC,yCACA;AAAA,MAAC,qBAAAE;AAAA,MAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD,GACD;AAAA,IAED,4CAAC,yCAAkB,OAAM,SAMxB;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,kBAAmB,CAAC,CAAE;AAAA;AAAA,IACvB,GACD;AAAA,KACD;AAGD,QAAM,0BAA0B,GAAI,QAAS;AAC7C,QAAM,oBAAoB,aAAa;AACvC,QAAM,8BACL,CAAE,wBAAwB,CAAE;AAE7B,MAAK,oBAAoB,CAAE,0BAA2B;AACrD,WACC;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACL,oBACC,CAAE,gBAAgB,0BAA0B;AAAA,QAG7C;AAAA,sDAAC,8BAAAC,SAAA,EAAsB,IAAK,yBACzB,8BAAI,0BAA2B,GAClC;AAAA,UAEA;AAAA,YAAC,+BAAAC;AAAA,YAAA;AAAA,cACA;AAAA,cACA;AAAA,cAGA;AAAA,cACA,eAAgB;AAAA,cAChB;AAAA,cACA;AAAA,cACA,aAAc;AAAA,cACd;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;AAAA,UACD;AAAA,UACE,qBAAqB,aAAa;AAAA,UACpC;AAAA,YAAC,0BAAAC;AAAA,YAAA;AAAA,cACA,IAAK;AAAA,cACL,UAAW;AAAA,cACX,QAAS;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cAEA;AAAA,gBAAC,4BAAAC;AAAA,gBAAA;AAAA,kBACA;AAAA,kBACA,QAAS;AAAA,kBACT,cAAe,cAAc;AAAA;AAAA,cAC9B;AAAA;AAAA,UACD;AAAA;AAAA;AAAA,IACD;AAAA,EAEF;AAIA,MAAK,OAAO,yBAA0B;AACrC,WACC,6CAAC,WAAU,GAAG,YACb;AAAA;AAAA,QAAC,+BAAAF;AAAA,QAAA;AAAA,UACA;AAAA,UACA;AAAA,UAGA;AAAA,UACA,eAAgB;AAAA,UAChB;AAAA,UACA;AAAA,UACA,aAAc;AAAA,UACd;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACD;AAAA,MACA;AAAA,QAAC,kCAAAG;AAAA,QAAA;AAAA,UACA,aAAc;AAAA;AAAA,MACf;AAAA,OACD;AAAA,EAEF;AAEA,MAAK,qBAAqB,oBAAqB;AAC9C,WACC,4CAAC,SAAM,GAAG,YACT,sDAAC,+BACE,8BAAI,yCAA0C,GACjD,GACD;AAAA,EAEF;AAEA,QAAM,uBAAuB,oBAC1B,oBACA,mBAAAC;AAYH,MAAK,iBAAiB,mBAAoB;AACzC,WACC,4CAAC,WAAU,GAAG,YACb;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA,eAAgB;AAAA,QAChB;AAAA,QACA;AAAA,QAGA;AAAA,QAGA;AAAA,QACA;AAAA,QACA,eAAgB;AAAA;AAAA,IACjB,GACD;AAAA,EAEF;AAEA,SACC,4CAAC,mCAAe,MAAK,YAAW,MAAK,iBAAgB,IAAK,KACzD,uDAAC,yCAAkB,UAAW,aAC7B;AAAA;AAAA,MAAC,+BAAAJ;AAAA,MAAA;AAAA,QACA;AAAA,QACA;AAAA,QAGA;AAAA,QACA,eAAgB;AAAA,QAChB;AAAA,QACA;AAAA,QACA,aAAc;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD;AAAA,IACE,qBAAqB,aAAa;AAAA,IAClC,qBAAqB,iBAAiB,qBACvC,4CAAC,2BAAwB,UAAsB;AAAA,IAE9C,qBAAqB,aAAa,qBACnC,6CAAC,yCAAkB,OAAM,YACtB;AAAA,gDACD,+BACC,4CAAC,oCAAAK,SAAA,EAA0B;AAAA,MAE3B,0CACD,+BACC;AAAA,QAAC,sCAAAC;AAAA,QAAA;AAAA,UACA,UAAW,MAAM;AAChB,+BAAoB,UAAU,CAAC,CAAE;AACjC;AAAA,kBACC;AAAA,gBACC;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAAA;AAAA,MACD;AAAA,MAEF;AAAA,QAAC,2BAAAC;AAAA,QAAA;AAAA,UACA,UAAW;AAAA,UACX,WAAU;AAAA;AAAA,MACX;AAAA,OACD;AAAA,IAGD;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACL,oBACC,CAAE,iBAAiB,CAAE,YAClB,0BACA;AAAA,QAGF;AAAA,uBAAa,CAAE,qBAChB,4CAAC,SAAI,WAAU,oDACd,sDAAC,6BAAQ,WAAU,0CAAyC,GAC7D;AAAA,WAGG,CAAE,aAAa,sBAClB,4EACC;AAAA;AAAA,cAAC,mCAAAC;AAAA,cAAA;AAAA,gBACA,IAAK;AAAA;AAAA,YACN;AAAA,YACA;AAAA,cAAC,0BAAAP;AAAA,cAAA;AAAA,gBACA,IAAK;AAAA,gBACL,UAAW;AAAA,gBACX;AAAA,gBACA;AAAA,gBACA,QAAS;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA;AAAA,gBAGA;AAAA,gBACA;AAAA,gBACA;AAAA,gBAIE,+BACD;AAAA,kBAAC,oBAAAQ;AAAA,kBAAA;AAAA,oBACA;AAAA,oBACA,sBACC,CAAC,CAAE;AAAA,oBAEJ;AAAA,oBACA;AAAA;AAAA,gBACD;AAAA;AAAA,YAEF;AAAA,aACD;AAAA;AAAA;AAAA,IAEF;AAAA,KACD,GACD;AAEF;AAEA,IAAO,mBAAQ;AAAA,EACd,EAAE,WAAW,QAAQ;AAAA,EACrB,EAAE,iBAAiB,QAAQ;AAAA,EAC3B,EAAE,wBAAwB,QAAQ;AAAA,EAClC,EAAE,kBAAkB,QAAQ;AAC7B,EAAG,UAAW;",
|
|
6
6
|
"names": ["blockEditorStore", "useMultipleOriginColorsAndGradients", "ColorGradientSettingsDropdown", "useNavigationEntities", "useNavigationNotice", "useCreateNavigationMenu", "useNavigationMenu", "useConvertClassicToBlockMenu", "coreStore", "clsx", "OverlayMenuPreview", "ToolsPanel", "OverlayMenuPreviewButton", "ToolsPanelItem", "OverlayVisibilityControl", "OverlayPanel", "AccessibleDescription", "MenuInspectorControls", "ResponsiveWrapper", "UnsavedInnerBlocks", "DeletedNavigationWarning", "Placeholder", "NavigationMenuNameControl", "NavigationMenuDeleteControl", "ManageMenusButton", "AccessibleMenuDescription", "NavigationInnerBlocks"]
|
|
7
7
|
}
|
|
@@ -57,24 +57,27 @@ function ResponsiveWrapper({
|
|
|
57
57
|
if (!isResponsive) {
|
|
58
58
|
return children;
|
|
59
59
|
}
|
|
60
|
+
const hasCustomOverlay = !!overlay;
|
|
60
61
|
const responsiveContainerClasses = (0, import_clsx.default)(
|
|
61
62
|
"wp-block-navigation__responsive-container",
|
|
62
|
-
{
|
|
63
|
+
!hasCustomOverlay && {
|
|
63
64
|
"has-text-color": !!overlayTextColor.color || !!overlayTextColor?.class,
|
|
64
65
|
[(0, import_block_editor.getColorClassName)("color", overlayTextColor?.slug)]: !!overlayTextColor?.slug,
|
|
65
66
|
"has-background": !!overlayBackgroundColor.color || overlayBackgroundColor?.class,
|
|
66
67
|
[(0, import_block_editor.getColorClassName)(
|
|
67
68
|
"background-color",
|
|
68
69
|
overlayBackgroundColor?.slug
|
|
69
|
-
)]: !!overlayBackgroundColor?.slug
|
|
70
|
+
)]: !!overlayBackgroundColor?.slug
|
|
71
|
+
},
|
|
72
|
+
{
|
|
70
73
|
"is-menu-open": isOpen,
|
|
71
74
|
"hidden-by-default": isHiddenByDefault
|
|
72
75
|
}
|
|
73
76
|
);
|
|
74
|
-
const styles = {
|
|
77
|
+
const styles = !hasCustomOverlay ? {
|
|
75
78
|
color: !overlayTextColor?.slug && overlayTextColor?.color,
|
|
76
79
|
backgroundColor: !overlayBackgroundColor?.slug && overlayBackgroundColor?.color && overlayBackgroundColor.color
|
|
77
|
-
};
|
|
80
|
+
} : {};
|
|
78
81
|
const openButtonClasses = (0, import_clsx.default)(
|
|
79
82
|
"wp-block-navigation__responsive-container-open",
|
|
80
83
|
{ "always-shown": isHiddenByDefault }
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/navigation/edit/responsive-wrapper.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { close, Icon } from '@wordpress/icons';\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { getColorClassName } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport OverlayMenuIcon from './overlay-menu-icon';\n\nexport default function ResponsiveWrapper( {\n\tchildren,\n\tid,\n\tisOpen,\n\tisResponsive,\n\tonToggle,\n\tisHiddenByDefault,\n\toverlayBackgroundColor,\n\toverlayTextColor,\n\thasIcon,\n\ticon,\n\toverlay,\n\tonNavigateToEntityRecord,\n} ) {\n\tif ( ! isResponsive ) {\n\t\treturn children;\n\t}\n\n\tconst responsiveContainerClasses = clsx(\n\t\t'wp-block-navigation__responsive-container',\n\t\t{\n\t\t\t'has-text-color':\n\t\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t\t[ getColorClassName( 'color', overlayTextColor?.slug ) ]:\n\t\t\t\t!! overlayTextColor?.slug,\n\t\t\t'has-background':\n\t\t\t\t!! overlayBackgroundColor.color ||\n\t\t\t\toverlayBackgroundColor?.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\toverlayBackgroundColor?.slug\n\t\t\t) ]: !! overlayBackgroundColor?.slug,\n\t\t\t'is-menu-open': isOpen,\n\t\t\t'hidden-by-default': isHiddenByDefault,\n\t\t}\n\t);\n\n\tconst styles = {\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\tconst openButtonClasses = clsx(\n\t\t'wp-block-navigation__responsive-container-open',\n\t\t{ 'always-shown': isHiddenByDefault }\n\t);\n\n\tconst modalId = `${ id }-modal`;\n\n\tconst dialogProps = {\n\t\tclassName: 'wp-block-navigation__responsive-dialog',\n\t\t...( isOpen && {\n\t\t\trole: 'dialog',\n\t\t\t'aria-modal': true,\n\t\t\t'aria-label': __( 'Menu' ),\n\t\t} ),\n\t};\n\n\tconst handleToggleClick = () => {\n\t\t// If an overlay template part is selected, navigate to it instead of toggling\n\t\tif ( overlay && onNavigateToEntityRecord ) {\n\t\t\tonNavigateToEntityRecord( {\n\t\t\t\tpostId: overlay,\n\t\t\t\tpostType: 'wp_template_part',\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\t\t// Otherwise, use normal toggle behavior\n\t\tonToggle( true );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isOpen && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\taria-label={ hasIcon && __( 'Open menu' ) }\n\t\t\t\t\tclassName={ openButtonClasses }\n\t\t\t\t\tonClick={ handleToggleClick }\n\t\t\t\t>\n\t\t\t\t\t{ hasIcon && <OverlayMenuIcon icon={ icon } /> }\n\t\t\t\t\t{ ! hasIcon && __( 'Menu' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\n\t\t\t<div\n\t\t\t\tclassName={ responsiveContainerClasses }\n\t\t\t\tstyle={ styles }\n\t\t\t\tid={ modalId }\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"wp-block-navigation__responsive-close\"\n\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t>\n\t\t\t\t\t<div { ...dialogProps }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation__responsive-container-close\"\n\t\t\t\t\t\t\taria-label={ hasIcon && __( 'Close menu' ) }\n\t\t\t\t\t\t\tonClick={ () => onToggle( false ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ hasIcon && <Icon icon={ close } /> }\n\t\t\t\t\t\t\t{ ! hasIcon && __( 'Close' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation__responsive-container-content\"\n\t\t\t\t\t\t\tid={ `${ modalId }-content` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,mBAA4B;AAC5B,wBAAuB;AACvB,kBAAmB;AACnB,0BAAkC;AAKlC,+BAA4B;
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { close, Icon } from '@wordpress/icons';\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { getColorClassName } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport OverlayMenuIcon from './overlay-menu-icon';\n\nexport default function ResponsiveWrapper( {\n\tchildren,\n\tid,\n\tisOpen,\n\tisResponsive,\n\tonToggle,\n\tisHiddenByDefault,\n\toverlayBackgroundColor,\n\toverlayTextColor,\n\thasIcon,\n\ticon,\n\toverlay,\n\tonNavigateToEntityRecord,\n} ) {\n\tif ( ! isResponsive ) {\n\t\treturn children;\n\t}\n\n\t// Only apply overlay colors if there's no custom overlay template part.\n\tconst hasCustomOverlay = !! overlay;\n\n\tconst responsiveContainerClasses = clsx(\n\t\t'wp-block-navigation__responsive-container',\n\t\t! hasCustomOverlay && {\n\t\t\t'has-text-color':\n\t\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t\t[ getColorClassName( 'color', overlayTextColor?.slug ) ]:\n\t\t\t\t!! overlayTextColor?.slug,\n\t\t\t'has-background':\n\t\t\t\t!! overlayBackgroundColor.color ||\n\t\t\t\toverlayBackgroundColor?.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\toverlayBackgroundColor?.slug\n\t\t\t) ]: !! overlayBackgroundColor?.slug,\n\t\t},\n\t\t{\n\t\t\t'is-menu-open': isOpen,\n\t\t\t'hidden-by-default': isHiddenByDefault,\n\t\t}\n\t);\n\n\tconst styles = ! hasCustomOverlay\n\t\t? {\n\t\t\t\tcolor: ! overlayTextColor?.slug && overlayTextColor?.color,\n\t\t\t\tbackgroundColor:\n\t\t\t\t\t! overlayBackgroundColor?.slug &&\n\t\t\t\t\toverlayBackgroundColor?.color &&\n\t\t\t\t\toverlayBackgroundColor.color,\n\t\t }\n\t\t: {};\n\n\tconst openButtonClasses = clsx(\n\t\t'wp-block-navigation__responsive-container-open',\n\t\t{ 'always-shown': isHiddenByDefault }\n\t);\n\n\tconst modalId = `${ id }-modal`;\n\n\tconst dialogProps = {\n\t\tclassName: 'wp-block-navigation__responsive-dialog',\n\t\t...( isOpen && {\n\t\t\trole: 'dialog',\n\t\t\t'aria-modal': true,\n\t\t\t'aria-label': __( 'Menu' ),\n\t\t} ),\n\t};\n\n\tconst handleToggleClick = () => {\n\t\t// If an overlay template part is selected, navigate to it instead of toggling\n\t\tif ( overlay && onNavigateToEntityRecord ) {\n\t\t\tonNavigateToEntityRecord( {\n\t\t\t\tpostId: overlay,\n\t\t\t\tpostType: 'wp_template_part',\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\t\t// Otherwise, use normal toggle behavior\n\t\tonToggle( true );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isOpen && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\taria-label={ hasIcon && __( 'Open menu' ) }\n\t\t\t\t\tclassName={ openButtonClasses }\n\t\t\t\t\tonClick={ handleToggleClick }\n\t\t\t\t>\n\t\t\t\t\t{ hasIcon && <OverlayMenuIcon icon={ icon } /> }\n\t\t\t\t\t{ ! hasIcon && __( 'Menu' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\n\t\t\t<div\n\t\t\t\tclassName={ responsiveContainerClasses }\n\t\t\t\tstyle={ styles }\n\t\t\t\tid={ modalId }\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"wp-block-navigation__responsive-close\"\n\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t>\n\t\t\t\t\t<div { ...dialogProps }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation__responsive-container-close\"\n\t\t\t\t\t\t\taria-label={ hasIcon && __( 'Close menu' ) }\n\t\t\t\t\t\t\tonClick={ () => onToggle( false ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ hasIcon && <Icon icon={ close } /> }\n\t\t\t\t\t\t\t{ ! hasIcon && __( 'Close' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation__responsive-container-content\"\n\t\t\t\t\t\t\tid={ `${ modalId }-content` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["clsx", "OverlayMenuIcon"]
|
|
7
7
|
}
|
|
@@ -27,6 +27,7 @@ var import_element = require("@wordpress/element");
|
|
|
27
27
|
var import_data = require("@wordpress/data");
|
|
28
28
|
var import_core_data = require("@wordpress/core-data");
|
|
29
29
|
var import_i18n = require("@wordpress/i18n");
|
|
30
|
+
var import_blocks = require("@wordpress/blocks");
|
|
30
31
|
var import_utils = require("./utils.cjs");
|
|
31
32
|
var import_constants = require("../constants.cjs");
|
|
32
33
|
function useCreateOverlayTemplatePart(overlayTemplateParts) {
|
|
@@ -46,6 +47,7 @@ function useCreateOverlayTemplatePart(overlayTemplateParts) {
|
|
|
46
47
|
{
|
|
47
48
|
slug: cleanSlug,
|
|
48
49
|
title: uniqueTitle,
|
|
50
|
+
content: (0, import_blocks.serialize)([(0, import_blocks.createBlock)("core/paragraph")]),
|
|
49
51
|
area: import_constants.NAVIGATION_OVERLAY_TEMPLATE_PART_AREA
|
|
50
52
|
},
|
|
51
53
|
{ throwOnError: true }
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/navigation/edit/use-create-overlay.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getUniqueTemplatePartTitle, getCleanTemplatePartSlug } from './utils';\nimport { NAVIGATION_OVERLAY_TEMPLATE_PART_AREA } from '../constants';\n\n/**\n * Hook to create a new overlay template part.\n *\n * @param {Array} overlayTemplateParts Array of existing overlay template parts.\n * @return {function(): Promise<Object>} Function to create a new overlay template part.\n * The function returns a Promise that resolves to the created template part object.\n */\nexport default function useCreateOverlayTemplatePart( overlayTemplateParts ) {\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst createOverlayTemplatePart = useCallback( async () => {\n\t\t// Generate unique name using only overlay area template parts\n\t\t// Filter to only include template parts with titles for uniqueness check\n\t\tconst templatePartsWithTitles = overlayTemplateParts.filter(\n\t\t\t( templatePart ) => templatePart.title?.rendered\n\t\t);\n\t\tconst uniqueTitle = getUniqueTemplatePartTitle(\n\t\t\t__( 'Overlay' ),\n\t\t\ttemplatePartsWithTitles\n\t\t);\n\t\tconst cleanSlug = getCleanTemplatePartSlug( uniqueTitle );\n\n\t\t// Create the template part\n\t\tconst templatePart = await saveEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\t{\n\t\t\t\tslug: cleanSlug,\n\t\t\t\ttitle: uniqueTitle,\n\t\t\t\tarea: NAVIGATION_OVERLAY_TEMPLATE_PART_AREA,\n\t\t\t},\n\t\t\t{ throwOnError: true }\n\t\t);\n\n\t\treturn templatePart;\n\t}, [ overlayTemplateParts, saveEntityRecord ] );\n\n\treturn createOverlayTemplatePart;\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAA4B;AAC5B,kBAA4B;AAC5B,uBAAmC;AACnC,kBAAmB;
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\nimport { serialize, createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getUniqueTemplatePartTitle, getCleanTemplatePartSlug } from './utils';\nimport { NAVIGATION_OVERLAY_TEMPLATE_PART_AREA } from '../constants';\n\n/**\n * Hook to create a new overlay template part.\n *\n * @param {Array} overlayTemplateParts Array of existing overlay template parts.\n * @return {function(): Promise<Object>} Function to create a new overlay template part.\n * The function returns a Promise that resolves to the created template part object.\n */\nexport default function useCreateOverlayTemplatePart( overlayTemplateParts ) {\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst createOverlayTemplatePart = useCallback( async () => {\n\t\t// Generate unique name using only overlay area template parts\n\t\t// Filter to only include template parts with titles for uniqueness check\n\t\tconst templatePartsWithTitles = overlayTemplateParts.filter(\n\t\t\t( templatePart ) => templatePart.title?.rendered\n\t\t);\n\t\tconst uniqueTitle = getUniqueTemplatePartTitle(\n\t\t\t__( 'Overlay' ),\n\t\t\ttemplatePartsWithTitles\n\t\t);\n\t\tconst cleanSlug = getCleanTemplatePartSlug( uniqueTitle );\n\n\t\t// Create the template part\n\t\tconst templatePart = await saveEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\t{\n\t\t\t\tslug: cleanSlug,\n\t\t\t\ttitle: uniqueTitle,\n\t\t\t\tcontent: serialize( [ createBlock( 'core/paragraph' ) ] ),\n\t\t\t\tarea: NAVIGATION_OVERLAY_TEMPLATE_PART_AREA,\n\t\t\t},\n\t\t\t{ throwOnError: true }\n\t\t);\n\n\t\treturn templatePart;\n\t}, [ overlayTemplateParts, saveEntityRecord ] );\n\n\treturn createOverlayTemplatePart;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAA4B;AAC5B,kBAA4B;AAC5B,uBAAmC;AACnC,kBAAmB;AACnB,oBAAuC;AAKvC,mBAAqE;AACrE,uBAAsD;AASvC,SAAR,6BAA+C,sBAAuB;AAC5E,QAAM,EAAE,iBAAiB,QAAI,yBAAa,iBAAAA,KAAU;AAEpD,QAAM,gCAA4B,4BAAa,YAAY;AAG1D,UAAM,0BAA0B,qBAAqB;AAAA,MACpD,CAAEC,kBAAkBA,cAAa,OAAO;AAAA,IACzC;AACA,UAAM,kBAAc;AAAA,UACnB,gBAAI,SAAU;AAAA,MACd;AAAA,IACD;AACA,UAAM,gBAAY,uCAA0B,WAAY;AAGxD,UAAM,eAAe,MAAM;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,QACC,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAS,yBAAW,KAAE,2BAAa,gBAAiB,CAAE,CAAE;AAAA,QACxD,MAAM;AAAA,MACP;AAAA,MACA,EAAE,cAAc,KAAK;AAAA,IACtB;AAEA,WAAO;AAAA,EACR,GAAG,CAAE,sBAAsB,gBAAiB,CAAE;AAE9C,SAAO;AACR;",
|
|
6
6
|
"names": ["coreStore", "templatePart"]
|
|
7
7
|
}
|
|
@@ -42,9 +42,7 @@ var import_i18n = require("@wordpress/i18n");
|
|
|
42
42
|
var import_block_editor = require("@wordpress/block-editor");
|
|
43
43
|
var import_url = require("@wordpress/url");
|
|
44
44
|
var import_element = require("@wordpress/element");
|
|
45
|
-
var import_html_entities = require("@wordpress/html-entities");
|
|
46
45
|
var import_icons = require("@wordpress/icons");
|
|
47
|
-
var import_core_data = require("@wordpress/core-data");
|
|
48
46
|
var import_compose = require("@wordpress/compose");
|
|
49
47
|
var import_utils = require("../navigation/edit/utils.cjs");
|
|
50
48
|
var import_shared = require("./shared/index.cjs");
|
|
@@ -82,37 +80,6 @@ var useIsDraggingWithin = (elementRef) => {
|
|
|
82
80
|
}, [elementRef]);
|
|
83
81
|
return isDraggingWithin;
|
|
84
82
|
};
|
|
85
|
-
var useIsInvalidLink = (kind, type, id, enabled) => {
|
|
86
|
-
const isPostType = kind === "post-type" || type === "post" || type === "page";
|
|
87
|
-
const hasId = Number.isInteger(id);
|
|
88
|
-
const blockEditingMode = (0, import_block_editor.useBlockEditingMode)();
|
|
89
|
-
const { postStatus, isDeleted } = (0, import_data.useSelect)(
|
|
90
|
-
(select) => {
|
|
91
|
-
if (!isPostType) {
|
|
92
|
-
return { postStatus: null, isDeleted: false };
|
|
93
|
-
}
|
|
94
|
-
if (blockEditingMode === "disabled" || !enabled) {
|
|
95
|
-
return { postStatus: null, isDeleted: false };
|
|
96
|
-
}
|
|
97
|
-
const { getEntityRecord, hasFinishedResolution } = select(import_core_data.store);
|
|
98
|
-
const entityRecord = getEntityRecord("postType", type, id);
|
|
99
|
-
const hasResolved = hasFinishedResolution("getEntityRecord", [
|
|
100
|
-
"postType",
|
|
101
|
-
type,
|
|
102
|
-
id
|
|
103
|
-
]);
|
|
104
|
-
const deleted = hasResolved && entityRecord === void 0;
|
|
105
|
-
return {
|
|
106
|
-
postStatus: entityRecord?.status,
|
|
107
|
-
isDeleted: deleted
|
|
108
|
-
};
|
|
109
|
-
},
|
|
110
|
-
[isPostType, blockEditingMode, enabled, type, id]
|
|
111
|
-
);
|
|
112
|
-
const isInvalid = isPostType && hasId && (isDeleted || postStatus && "trash" === postStatus);
|
|
113
|
-
const isDraft = "draft" === postStatus;
|
|
114
|
-
return [isInvalid, isDraft];
|
|
115
|
-
};
|
|
116
83
|
function getMissingText(type) {
|
|
117
84
|
let missingText = "";
|
|
118
85
|
switch (type) {
|
|
@@ -164,7 +131,6 @@ function NavigationLinkEdit({
|
|
|
164
131
|
isTopLevelLink,
|
|
165
132
|
isParentOfSelectedBlock,
|
|
166
133
|
hasChildren,
|
|
167
|
-
validateLinkStatus,
|
|
168
134
|
parentBlockClientId,
|
|
169
135
|
isSubmenu
|
|
170
136
|
} = (0, import_data.useSelect)(
|
|
@@ -174,19 +140,16 @@ function NavigationLinkEdit({
|
|
|
174
140
|
getBlockName,
|
|
175
141
|
getBlockRootClientId,
|
|
176
142
|
hasSelectedInnerBlock,
|
|
177
|
-
getBlockParentsByBlockName
|
|
178
|
-
getSelectedBlockClientId
|
|
143
|
+
getBlockParentsByBlockName
|
|
179
144
|
} = select(import_block_editor.store);
|
|
180
145
|
const rootClientId = getBlockRootClientId(clientId);
|
|
181
146
|
const parentBlockName = getBlockName(rootClientId);
|
|
182
147
|
const isTopLevel = parentBlockName === "core/navigation";
|
|
183
|
-
const selectedBlockClientId = getSelectedBlockClientId();
|
|
184
148
|
const rootNavigationClientId = isTopLevel ? rootClientId : getBlockParentsByBlockName(
|
|
185
149
|
clientId,
|
|
186
150
|
"core/navigation"
|
|
187
151
|
)[0];
|
|
188
152
|
const parentBlockId = parentBlockName === "core/navigation-submenu" ? rootClientId : rootNavigationClientId;
|
|
189
|
-
const enableLinkStatusValidation = selectedBlockClientId === rootNavigationClientId || hasSelectedInnerBlock(rootNavigationClientId, true);
|
|
190
153
|
return {
|
|
191
154
|
isAtMaxNesting: getBlockParentsByBlockName(clientId, NESTING_BLOCK_NAMES).length >= maxNestingLevel,
|
|
192
155
|
isTopLevelLink: isTopLevel,
|
|
@@ -195,13 +158,13 @@ function NavigationLinkEdit({
|
|
|
195
158
|
true
|
|
196
159
|
),
|
|
197
160
|
hasChildren: !!getBlockCount(clientId),
|
|
198
|
-
validateLinkStatus: enableLinkStatusValidation,
|
|
199
161
|
parentBlockClientId: parentBlockId,
|
|
200
162
|
isSubmenu: parentBlockName === "core/navigation-submenu"
|
|
201
163
|
};
|
|
202
164
|
},
|
|
203
165
|
[clientId, maxNestingLevel]
|
|
204
166
|
);
|
|
167
|
+
const validateLinkStatus = (0, import_shared.useEnableLinkStatusValidation)(clientId);
|
|
205
168
|
const { getBlocks } = (0, import_data.useSelect)(import_block_editor.store);
|
|
206
169
|
const { hasUrlBinding, isBoundEntityAvailable } = (0, import_shared.useEntityBinding)({
|
|
207
170
|
clientId,
|
|
@@ -212,7 +175,7 @@ function NavigationLinkEdit({
|
|
|
212
175
|
attributes,
|
|
213
176
|
setAttributes
|
|
214
177
|
});
|
|
215
|
-
const [isInvalid, isDraft] = useIsInvalidLink(
|
|
178
|
+
const [isInvalid, isDraft] = (0, import_shared.useIsInvalidLink)(
|
|
216
179
|
kind,
|
|
217
180
|
type,
|
|
218
181
|
id,
|
|
@@ -342,7 +305,6 @@ function NavigationLinkEdit({
|
|
|
342
305
|
"wp-block-navigation-link__placeholder": needsValidLink
|
|
343
306
|
});
|
|
344
307
|
const missingText = getMissingText(type);
|
|
345
|
-
const placeholderText = `(${isInvalid ? (0, import_i18n.__)("Invalid") : (0, import_i18n.__)("Draft")})`;
|
|
346
308
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
347
309
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.BlockControls, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.ToolbarGroup, { children: [
|
|
348
310
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -407,24 +369,12 @@ function NavigationLinkEdit({
|
|
|
407
369
|
description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "wp-block-navigation-item__description", children: description })
|
|
408
370
|
] }),
|
|
409
371
|
(isInvalid || isDraft) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
410
|
-
|
|
372
|
+
import_shared.InvalidDraftDisplay,
|
|
411
373
|
{
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
"is-invalid": isInvalid,
|
|
417
|
-
"is-draft": isDraft
|
|
418
|
-
}
|
|
419
|
-
),
|
|
420
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
421
|
-
// Some attributes are stored in an escaped form. It's a legacy issue.
|
|
422
|
-
// Ideally they would be stored in a raw, unescaped form.
|
|
423
|
-
// Unescape is used here to "recover" the escaped characters
|
|
424
|
-
// so they display without encoding.
|
|
425
|
-
// See `updateAttributes` for more details.
|
|
426
|
-
children: `${(0, import_html_entities.decodeEntities)(label)} ${isInvalid || isDraft ? placeholderText : ""}`.trim()
|
|
427
|
-
})
|
|
374
|
+
label,
|
|
375
|
+
isInvalid,
|
|
376
|
+
isDraft,
|
|
377
|
+
className: "wp-block-navigation-link__label"
|
|
428
378
|
}
|
|
429
379
|
)
|
|
430
380
|
] }),
|