@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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/more/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { more as icon } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\t__experimentalLabel( attributes, { context } ) {\n\t\tconst customName = attributes?.metadata?.name;\n\n\t\tif ( context === 'list-view' && customName ) {\n\t\t\treturn customName;\n\t\t}\n\n\t\tif ( context === 'accessibility' ) {\n\t\t\treturn attributes.customText;\n\t\t}\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'customText',\n\t\t\tlabel: __( 'Content' ),\n\t\t\ttype: '
|
|
5
|
-
"mappings": ";AAGA,SAAS,QAAQ,YAAY;AAC7B,SAAS,UAAU;AACnB,SAAS,eAAe,yBAAyB;AAKjD,OAAO,eAAe;AACtB,OAAO,UAAU;AACjB,OAAO,cAAc;AACrB,OAAO,UAAU;AACjB,OAAO,gBAAgB;AACvB,SAAS,cAAc;AAEvB,IAAM,EAAE,WAAW,QAAQ,IAAI,OAAQ,iBAAkB;AAEzD,IAAM,EAAE,KAAK,IAAI;AAIV,IAAM,WAAW;AAAA,EACvB;AAAA,EACA,SAAS,CAAC;AAAA,EACV,oBAAqB,YAAY,EAAE,QAAQ,GAAI;AAC9C,UAAM,aAAa,YAAY,UAAU;AAEzC,QAAK,YAAY,eAAe,YAAa;AAC5C,aAAO;AAAA,IACR;AAEA,QAAK,YAAY,iBAAkB;AAClC,aAAO,WAAW;AAAA,IACnB;AAAA,EACD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEA,IAAK,OAAO,0CAA2C;AACtD,WAAU,SAAU,IAAI;AAAA,IACvB;AAAA,MACC,IAAI;AAAA,MACJ,OAAO,GAAI,SAAU;AAAA,MACrB,MAAM;AAAA,IACP;AAAA,EACD;AACA,WAAU,OAAQ,IAAI;AAAA,IACrB,QAAQ,CAAE,YAAa;AAAA,EACxB;AACD;AAEO,IAAM,OAAO,MAAM,UAAW,EAAE,MAAM,UAAU,SAAS,CAAE;",
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { more as icon } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\t__experimentalLabel( attributes, { context } ) {\n\t\tconst customName = attributes?.metadata?.name;\n\n\t\tif ( context === 'list-view' && customName ) {\n\t\t\treturn customName;\n\t\t}\n\n\t\tif ( context === 'accessibility' ) {\n\t\t\treturn attributes.customText;\n\t\t}\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'customText',\n\t\t\tlabel: __( 'Content' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'customText' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,QAAQ,YAAY;AAC7B,SAAS,UAAU;AACnB,SAAS,eAAe,yBAAyB;AAKjD,OAAO,eAAe;AACtB,OAAO,UAAU;AACjB,OAAO,cAAc;AACrB,OAAO,UAAU;AACjB,OAAO,gBAAgB;AACvB,SAAS,cAAc;AAEvB,IAAM,EAAE,WAAW,QAAQ,IAAI,OAAQ,iBAAkB;AAEzD,IAAM,EAAE,KAAK,IAAI;AAIV,IAAM,WAAW;AAAA,EACvB;AAAA,EACA,SAAS,CAAC;AAAA,EACV,oBAAqB,YAAY,EAAE,QAAQ,GAAI;AAC9C,UAAM,aAAa,YAAY,UAAU;AAEzC,QAAK,YAAY,eAAe,YAAa;AAC5C,aAAO;AAAA,IACR;AAEA,QAAK,YAAY,iBAAkB;AAClC,aAAO,WAAW;AAAA,IACnB;AAAA,EACD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEA,IAAK,OAAO,0CAA2C;AACtD,WAAU,SAAU,IAAI;AAAA,IACvB;AAAA,MACC,IAAI;AAAA,MACJ,OAAO,GAAI,SAAU;AAAA,MACrB,MAAM;AAAA,MACN,MAAM;AAAA;AAAA,IACP;AAAA,EACD;AACA,WAAU,OAAQ,IAAI;AAAA,IACrB,QAAQ,CAAE,YAAa;AAAA,EACxB;AACD;AAEO,IAAM,OAAO,MAAM,UAAW,EAAE,MAAM,UAAU,SAAS,CAAE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -99,7 +99,8 @@ function ColorTools({
|
|
|
99
99
|
overlayBackgroundColor,
|
|
100
100
|
setOverlayBackgroundColor,
|
|
101
101
|
clientId,
|
|
102
|
-
navRef
|
|
102
|
+
navRef,
|
|
103
|
+
hasCustomOverlay
|
|
103
104
|
}) {
|
|
104
105
|
const [detectedBackgroundColor, setDetectedBackgroundColor] = useState();
|
|
105
106
|
const [detectedColor, setDetectedColor] = useState();
|
|
@@ -165,7 +166,7 @@ function ColorTools({
|
|
|
165
166
|
},
|
|
166
167
|
{
|
|
167
168
|
colorValue: overlayTextColor.color,
|
|
168
|
-
label: __("Submenu & overlay text"),
|
|
169
|
+
label: hasCustomOverlay ? __("Submenu text") : __("Submenu & overlay text"),
|
|
169
170
|
onColorChange: setOverlayTextColor,
|
|
170
171
|
resetAllFilter: () => setOverlayTextColor(),
|
|
171
172
|
clearable: true,
|
|
@@ -173,7 +174,7 @@ function ColorTools({
|
|
|
173
174
|
},
|
|
174
175
|
{
|
|
175
176
|
colorValue: overlayBackgroundColor.color,
|
|
176
|
-
label: __("Submenu & overlay background"),
|
|
177
|
+
label: hasCustomOverlay ? __("Submenu background") : __("Submenu & overlay background"),
|
|
177
178
|
onColorChange: setOverlayBackgroundColor,
|
|
178
179
|
resetAllFilter: () => setOverlayBackgroundColor(),
|
|
179
180
|
clearable: true,
|
|
@@ -220,7 +221,6 @@ function Navigation({
|
|
|
220
221
|
setOverlayTextColor,
|
|
221
222
|
// These props are used by the navigation editor to override specific
|
|
222
223
|
// navigation block settings.
|
|
223
|
-
hasSubmenuIndicatorSetting = true,
|
|
224
224
|
customPlaceholder: CustomPlaceholder = null,
|
|
225
225
|
__unstableLayoutClassNames: layoutClassNames
|
|
226
226
|
}) {
|
|
@@ -498,7 +498,7 @@ function Navigation({
|
|
|
498
498
|
);
|
|
499
499
|
const dropdownMenuProps = useToolsPanelDropdownMenuProps();
|
|
500
500
|
const stylingInspectorControls = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
501
|
-
/* @__PURE__ */ jsx(InspectorControls, { children:
|
|
501
|
+
/* @__PURE__ */ jsx(InspectorControls, { children: (!isOverlayExperimentEnabled || hasSubmenus) && /* @__PURE__ */ jsxs(
|
|
502
502
|
ToolsPanel,
|
|
503
503
|
{
|
|
504
504
|
label: __("Display"),
|
|
@@ -646,7 +646,8 @@ function Navigation({
|
|
|
646
646
|
overlayBackgroundColor,
|
|
647
647
|
setOverlayBackgroundColor,
|
|
648
648
|
clientId,
|
|
649
|
-
navRef
|
|
649
|
+
navRef,
|
|
650
|
+
hasCustomOverlay: !!overlay
|
|
650
651
|
}
|
|
651
652
|
) })
|
|
652
653
|
] });
|
|
@@ -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": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -23,24 +23,27 @@ function ResponsiveWrapper({
|
|
|
23
23
|
if (!isResponsive) {
|
|
24
24
|
return children;
|
|
25
25
|
}
|
|
26
|
+
const hasCustomOverlay = !!overlay;
|
|
26
27
|
const responsiveContainerClasses = clsx(
|
|
27
28
|
"wp-block-navigation__responsive-container",
|
|
28
|
-
{
|
|
29
|
+
!hasCustomOverlay && {
|
|
29
30
|
"has-text-color": !!overlayTextColor.color || !!overlayTextColor?.class,
|
|
30
31
|
[getColorClassName("color", overlayTextColor?.slug)]: !!overlayTextColor?.slug,
|
|
31
32
|
"has-background": !!overlayBackgroundColor.color || overlayBackgroundColor?.class,
|
|
32
33
|
[getColorClassName(
|
|
33
34
|
"background-color",
|
|
34
35
|
overlayBackgroundColor?.slug
|
|
35
|
-
)]: !!overlayBackgroundColor?.slug
|
|
36
|
+
)]: !!overlayBackgroundColor?.slug
|
|
37
|
+
},
|
|
38
|
+
{
|
|
36
39
|
"is-menu-open": isOpen,
|
|
37
40
|
"hidden-by-default": isHiddenByDefault
|
|
38
41
|
}
|
|
39
42
|
);
|
|
40
|
-
const styles = {
|
|
43
|
+
const styles = !hasCustomOverlay ? {
|
|
41
44
|
color: !overlayTextColor?.slug && overlayTextColor?.color,
|
|
42
45
|
backgroundColor: !overlayBackgroundColor?.slug && overlayBackgroundColor?.color && overlayBackgroundColor.color
|
|
43
|
-
};
|
|
46
|
+
} : {};
|
|
44
47
|
const openButtonClasses = clsx(
|
|
45
48
|
"wp-block-navigation__responsive-container-open",
|
|
46
49
|
{ "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": ";AAGA,OAAO,UAAU;AAKjB,SAAS,OAAO,YAAY;AAC5B,SAAS,cAAc;AACvB,SAAS,UAAU;AACnB,SAAS,yBAAyB;AAKlC,OAAO,qBAAqB;
|
|
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": ";AAGA,OAAO,UAAU;AAKjB,SAAS,OAAO,YAAY;AAC5B,SAAS,cAAc;AACvB,SAAS,UAAU;AACnB,SAAS,yBAAyB;AAKlC,OAAO,qBAAqB;AAoF1B,mBASgB,KAPd,YAFF;AAlFa,SAAR,kBAAoC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,MAAK,CAAE,cAAe;AACrB,WAAO;AAAA,EACR;AAGA,QAAM,mBAAmB,CAAC,CAAE;AAE5B,QAAM,6BAA6B;AAAA,IAClC;AAAA,IACA,CAAE,oBAAoB;AAAA,MACrB,kBACC,CAAC,CAAE,iBAAiB,SAAS,CAAC,CAAE,kBAAkB;AAAA,MACnD,CAAE,kBAAmB,SAAS,kBAAkB,IAAK,CAAE,GACtD,CAAC,CAAE,kBAAkB;AAAA,MACtB,kBACC,CAAC,CAAE,uBAAuB,SAC1B,wBAAwB;AAAA,MACzB,CAAE;AAAA,QACD;AAAA,QACA,wBAAwB;AAAA,MACzB,CAAE,GAAG,CAAC,CAAE,wBAAwB;AAAA,IACjC;AAAA,IACA;AAAA,MACC,gBAAgB;AAAA,MAChB,qBAAqB;AAAA,IACtB;AAAA,EACD;AAEA,QAAM,SAAS,CAAE,mBACd;AAAA,IACA,OAAO,CAAE,kBAAkB,QAAQ,kBAAkB;AAAA,IACrD,iBACC,CAAE,wBAAwB,QAC1B,wBAAwB,SACxB,uBAAuB;AAAA,EACxB,IACA,CAAC;AAEJ,QAAM,oBAAoB;AAAA,IACzB;AAAA,IACA,EAAE,gBAAgB,kBAAkB;AAAA,EACrC;AAEA,QAAM,UAAU,GAAI,EAAG;AAEvB,QAAM,cAAc;AAAA,IACnB,WAAW;AAAA,IACX,GAAK,UAAU;AAAA,MACd,MAAM;AAAA,MACN,cAAc;AAAA,MACd,cAAc,GAAI,MAAO;AAAA,IAC1B;AAAA,EACD;AAEA,QAAM,oBAAoB,MAAM;AAE/B,QAAK,WAAW,0BAA2B;AAC1C,+BAA0B;AAAA,QACzB,QAAQ;AAAA,QACR,UAAU;AAAA,MACX,CAAE;AACF;AAAA,IACD;AAEA,aAAU,IAAK;AAAA,EAChB;AAEA,SACC,iCACG;AAAA,KAAE,UACH;AAAA,MAAC;AAAA;AAAA,QACA,uBAAqB;AAAA,QACrB,iBAAc;AAAA,QACd,cAAa,WAAW,GAAI,WAAY;AAAA,QACxC,WAAY;AAAA,QACZ,SAAU;AAAA,QAER;AAAA,qBAAW,oBAAC,mBAAgB,MAAc;AAAA,UAC1C,CAAE,WAAW,GAAI,MAAO;AAAA;AAAA;AAAA,IAC3B;AAAA,IAGD;AAAA,MAAC;AAAA;AAAA,QACA,WAAY;AAAA,QACZ,OAAQ;AAAA,QACR,IAAK;AAAA,QAEL;AAAA,UAAC;AAAA;AAAA,YACA,WAAU;AAAA,YACV,UAAS;AAAA,YAET,+BAAC,SAAM,GAAG,aACT;AAAA;AAAA,gBAAC;AAAA;AAAA,kBACA,uBAAqB;AAAA,kBACrB,WAAU;AAAA,kBACV,cAAa,WAAW,GAAI,YAAa;AAAA,kBACzC,SAAU,MAAM,SAAU,KAAM;AAAA,kBAE9B;AAAA,+BAAW,oBAAC,QAAK,MAAO,OAAQ;AAAA,oBAChC,CAAE,WAAW,GAAI,OAAQ;AAAA;AAAA;AAAA,cAC5B;AAAA,cACA;AAAA,gBAAC;AAAA;AAAA,kBACA,WAAU;AAAA,kBACV,IAAK,GAAI,OAAQ;AAAA,kBAEf;AAAA;AAAA,cACH;AAAA,eACD;AAAA;AAAA,QACD;AAAA;AAAA,IACD;AAAA,KACD;AAEF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -3,6 +3,7 @@ import { useCallback } from "@wordpress/element";
|
|
|
3
3
|
import { useDispatch } from "@wordpress/data";
|
|
4
4
|
import { store as coreStore } from "@wordpress/core-data";
|
|
5
5
|
import { __ } from "@wordpress/i18n";
|
|
6
|
+
import { serialize, createBlock } from "@wordpress/blocks";
|
|
6
7
|
import { getUniqueTemplatePartTitle, getCleanTemplatePartSlug } from "./utils.mjs";
|
|
7
8
|
import { NAVIGATION_OVERLAY_TEMPLATE_PART_AREA } from "../constants.mjs";
|
|
8
9
|
function useCreateOverlayTemplatePart(overlayTemplateParts) {
|
|
@@ -22,6 +23,7 @@ function useCreateOverlayTemplatePart(overlayTemplateParts) {
|
|
|
22
23
|
{
|
|
23
24
|
slug: cleanSlug,
|
|
24
25
|
title: uniqueTitle,
|
|
26
|
+
content: serialize([createBlock("core/paragraph")]),
|
|
25
27
|
area: NAVIGATION_OVERLAY_TEMPLATE_PART_AREA
|
|
26
28
|
},
|
|
27
29
|
{ 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": ";AAGA,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,SAAS,iBAAiB;AACnC,SAAS,UAAU;
|
|
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": ";AAGA,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,SAAS,iBAAiB;AACnC,SAAS,UAAU;AACnB,SAAS,WAAW,mBAAmB;AAKvC,SAAS,4BAA4B,gCAAgC;AACrE,SAAS,6CAA6C;AASvC,SAAR,6BAA+C,sBAAuB;AAC5E,QAAM,EAAE,iBAAiB,IAAI,YAAa,SAAU;AAEpD,QAAM,4BAA4B,YAAa,YAAY;AAG1D,UAAM,0BAA0B,qBAAqB;AAAA,MACpD,CAAEA,kBAAkBA,cAAa,OAAO;AAAA,IACzC;AACA,UAAM,cAAc;AAAA,MACnB,GAAI,SAAU;AAAA,MACd;AAAA,IACD;AACA,UAAM,YAAY,yBAA0B,WAAY;AAGxD,UAAM,eAAe,MAAM;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,QACC,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS,UAAW,CAAE,YAAa,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": ["templatePart"]
|
|
7
7
|
}
|
|
@@ -16,14 +16,11 @@ import {
|
|
|
16
16
|
useBlockProps,
|
|
17
17
|
store as blockEditorStore,
|
|
18
18
|
getColorClassName,
|
|
19
|
-
useInnerBlocksProps
|
|
20
|
-
useBlockEditingMode
|
|
19
|
+
useInnerBlocksProps
|
|
21
20
|
} from "@wordpress/block-editor";
|
|
22
21
|
import { isURL, prependHTTP } from "@wordpress/url";
|
|
23
22
|
import { useState, useEffect, useRef, useCallback } from "@wordpress/element";
|
|
24
|
-
import { decodeEntities } from "@wordpress/html-entities";
|
|
25
23
|
import { link as linkIcon, addSubmenu } from "@wordpress/icons";
|
|
26
|
-
import { store as coreStore } from "@wordpress/core-data";
|
|
27
24
|
import { useMergeRefs, useInstanceId } from "@wordpress/compose";
|
|
28
25
|
import { getColors } from "../navigation/edit/utils.mjs";
|
|
29
26
|
import {
|
|
@@ -31,7 +28,10 @@ import {
|
|
|
31
28
|
LinkUI,
|
|
32
29
|
useEntityBinding,
|
|
33
30
|
MissingEntityHelpText,
|
|
34
|
-
useHandleLinkChange
|
|
31
|
+
useHandleLinkChange,
|
|
32
|
+
useIsInvalidLink,
|
|
33
|
+
InvalidDraftDisplay,
|
|
34
|
+
useEnableLinkStatusValidation
|
|
35
35
|
} from "./shared/index.mjs";
|
|
36
36
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
37
37
|
var DEFAULT_BLOCK = { name: "core/navigation-link" };
|
|
@@ -67,37 +67,6 @@ var useIsDraggingWithin = (elementRef) => {
|
|
|
67
67
|
}, [elementRef]);
|
|
68
68
|
return isDraggingWithin;
|
|
69
69
|
};
|
|
70
|
-
var useIsInvalidLink = (kind, type, id, enabled) => {
|
|
71
|
-
const isPostType = kind === "post-type" || type === "post" || type === "page";
|
|
72
|
-
const hasId = Number.isInteger(id);
|
|
73
|
-
const blockEditingMode = useBlockEditingMode();
|
|
74
|
-
const { postStatus, isDeleted } = useSelect(
|
|
75
|
-
(select) => {
|
|
76
|
-
if (!isPostType) {
|
|
77
|
-
return { postStatus: null, isDeleted: false };
|
|
78
|
-
}
|
|
79
|
-
if (blockEditingMode === "disabled" || !enabled) {
|
|
80
|
-
return { postStatus: null, isDeleted: false };
|
|
81
|
-
}
|
|
82
|
-
const { getEntityRecord, hasFinishedResolution } = select(coreStore);
|
|
83
|
-
const entityRecord = getEntityRecord("postType", type, id);
|
|
84
|
-
const hasResolved = hasFinishedResolution("getEntityRecord", [
|
|
85
|
-
"postType",
|
|
86
|
-
type,
|
|
87
|
-
id
|
|
88
|
-
]);
|
|
89
|
-
const deleted = hasResolved && entityRecord === void 0;
|
|
90
|
-
return {
|
|
91
|
-
postStatus: entityRecord?.status,
|
|
92
|
-
isDeleted: deleted
|
|
93
|
-
};
|
|
94
|
-
},
|
|
95
|
-
[isPostType, blockEditingMode, enabled, type, id]
|
|
96
|
-
);
|
|
97
|
-
const isInvalid = isPostType && hasId && (isDeleted || postStatus && "trash" === postStatus);
|
|
98
|
-
const isDraft = "draft" === postStatus;
|
|
99
|
-
return [isInvalid, isDraft];
|
|
100
|
-
};
|
|
101
70
|
function getMissingText(type) {
|
|
102
71
|
let missingText = "";
|
|
103
72
|
switch (type) {
|
|
@@ -149,7 +118,6 @@ function NavigationLinkEdit({
|
|
|
149
118
|
isTopLevelLink,
|
|
150
119
|
isParentOfSelectedBlock,
|
|
151
120
|
hasChildren,
|
|
152
|
-
validateLinkStatus,
|
|
153
121
|
parentBlockClientId,
|
|
154
122
|
isSubmenu
|
|
155
123
|
} = useSelect(
|
|
@@ -159,19 +127,16 @@ function NavigationLinkEdit({
|
|
|
159
127
|
getBlockName,
|
|
160
128
|
getBlockRootClientId,
|
|
161
129
|
hasSelectedInnerBlock,
|
|
162
|
-
getBlockParentsByBlockName
|
|
163
|
-
getSelectedBlockClientId
|
|
130
|
+
getBlockParentsByBlockName
|
|
164
131
|
} = select(blockEditorStore);
|
|
165
132
|
const rootClientId = getBlockRootClientId(clientId);
|
|
166
133
|
const parentBlockName = getBlockName(rootClientId);
|
|
167
134
|
const isTopLevel = parentBlockName === "core/navigation";
|
|
168
|
-
const selectedBlockClientId = getSelectedBlockClientId();
|
|
169
135
|
const rootNavigationClientId = isTopLevel ? rootClientId : getBlockParentsByBlockName(
|
|
170
136
|
clientId,
|
|
171
137
|
"core/navigation"
|
|
172
138
|
)[0];
|
|
173
139
|
const parentBlockId = parentBlockName === "core/navigation-submenu" ? rootClientId : rootNavigationClientId;
|
|
174
|
-
const enableLinkStatusValidation = selectedBlockClientId === rootNavigationClientId || hasSelectedInnerBlock(rootNavigationClientId, true);
|
|
175
140
|
return {
|
|
176
141
|
isAtMaxNesting: getBlockParentsByBlockName(clientId, NESTING_BLOCK_NAMES).length >= maxNestingLevel,
|
|
177
142
|
isTopLevelLink: isTopLevel,
|
|
@@ -180,13 +145,13 @@ function NavigationLinkEdit({
|
|
|
180
145
|
true
|
|
181
146
|
),
|
|
182
147
|
hasChildren: !!getBlockCount(clientId),
|
|
183
|
-
validateLinkStatus: enableLinkStatusValidation,
|
|
184
148
|
parentBlockClientId: parentBlockId,
|
|
185
149
|
isSubmenu: parentBlockName === "core/navigation-submenu"
|
|
186
150
|
};
|
|
187
151
|
},
|
|
188
152
|
[clientId, maxNestingLevel]
|
|
189
153
|
);
|
|
154
|
+
const validateLinkStatus = useEnableLinkStatusValidation(clientId);
|
|
190
155
|
const { getBlocks } = useSelect(blockEditorStore);
|
|
191
156
|
const { hasUrlBinding, isBoundEntityAvailable } = useEntityBinding({
|
|
192
157
|
clientId,
|
|
@@ -327,7 +292,6 @@ function NavigationLinkEdit({
|
|
|
327
292
|
"wp-block-navigation-link__placeholder": needsValidLink
|
|
328
293
|
});
|
|
329
294
|
const missingText = getMissingText(type);
|
|
330
|
-
const placeholderText = `(${isInvalid ? __("Invalid") : __("Draft")})`;
|
|
331
295
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
332
296
|
/* @__PURE__ */ jsx(BlockControls, { children: /* @__PURE__ */ jsxs(ToolbarGroup, { children: [
|
|
333
297
|
/* @__PURE__ */ jsx(
|
|
@@ -392,24 +356,12 @@ function NavigationLinkEdit({
|
|
|
392
356
|
description && /* @__PURE__ */ jsx("span", { className: "wp-block-navigation-item__description", children: description })
|
|
393
357
|
] }),
|
|
394
358
|
(isInvalid || isDraft) && /* @__PURE__ */ jsx(
|
|
395
|
-
|
|
359
|
+
InvalidDraftDisplay,
|
|
396
360
|
{
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
"is-invalid": isInvalid,
|
|
402
|
-
"is-draft": isDraft
|
|
403
|
-
}
|
|
404
|
-
),
|
|
405
|
-
children: /* @__PURE__ */ jsx("span", {
|
|
406
|
-
// Some attributes are stored in an escaped form. It's a legacy issue.
|
|
407
|
-
// Ideally they would be stored in a raw, unescaped form.
|
|
408
|
-
// Unescape is used here to "recover" the escaped characters
|
|
409
|
-
// so they display without encoding.
|
|
410
|
-
// See `updateAttributes` for more details.
|
|
411
|
-
children: `${decodeEntities(label)} ${isInvalid || isDraft ? placeholderText : ""}`.trim()
|
|
412
|
-
})
|
|
361
|
+
label,
|
|
362
|
+
isInvalid,
|
|
363
|
+
isDraft,
|
|
364
|
+
className: "wp-block-navigation-link__label"
|
|
413
365
|
}
|
|
414
366
|
)
|
|
415
367
|
] }),
|