@wordpress/block-library 9.36.1-next.8b30e05b0.0 → 9.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/audio/index.js +1 -1
- package/build/audio/index.js.map +2 -2
- package/build/avatar/edit.js +13 -38
- package/build/avatar/edit.js.map +2 -2
- package/build/breadcrumbs/block.json +3 -2
- package/build/breadcrumbs/edit.js +18 -18
- package/build/breadcrumbs/edit.js.map +2 -2
- package/build/button/block.json +2 -3
- package/build/button/deprecated.js +203 -0
- package/build/button/deprecated.js.map +3 -3
- package/build/button/edit.js +13 -24
- package/build/button/edit.js.map +3 -3
- package/build/button/index.js +1 -1
- package/build/button/index.js.map +2 -2
- package/build/button/save.js +0 -2
- package/build/button/save.js.map +2 -2
- package/build/code/index.js +1 -1
- package/build/code/index.js.map +2 -2
- package/build/comments-pagination-numbers/block.json +7 -0
- package/build/cover/index.js +2 -2
- package/build/cover/index.js.map +2 -2
- package/build/details/index.js +1 -1
- package/build/details/index.js.map +2 -2
- package/build/file/index.js +1 -1
- package/build/file/index.js.map +2 -2
- package/build/freeform/block.json +0 -1
- package/build/gallery/edit.js +1 -1
- package/build/gallery/edit.js.map +2 -2
- package/build/gallery/transforms.js +7 -3
- package/build/gallery/transforms.js.map +2 -2
- package/build/heading/index.js +1 -1
- package/build/heading/index.js.map +2 -2
- package/build/html/modal.js +18 -7
- package/build/html/modal.js.map +2 -2
- package/build/image/index.js +1 -1
- package/build/image/index.js.map +2 -2
- package/build/index.js +9 -3
- package/build/index.js.map +2 -2
- package/build/list-item/index.js +1 -1
- package/build/list-item/index.js.map +2 -2
- package/build/math/edit.js +14 -2
- package/build/math/edit.js.map +2 -2
- package/build/media-text/index.js +1 -1
- package/build/media-text/index.js.map +2 -2
- package/build/more/index.js +1 -1
- package/build/more/index.js.map +2 -2
- package/build/navigation/block.json +3 -0
- package/build/navigation/edit/index.js +57 -83
- package/build/navigation/edit/index.js.map +3 -3
- package/build/navigation/edit/overlay-menu-preview-button.js +96 -0
- package/build/navigation/edit/overlay-menu-preview-button.js.map +7 -0
- package/build/navigation/edit/overlay-menu-preview-controls.js +90 -0
- package/build/navigation/edit/overlay-menu-preview-controls.js.map +7 -0
- package/build/navigation/edit/overlay-panel.js +86 -0
- package/build/navigation/edit/overlay-panel.js.map +7 -0
- package/build/navigation/edit/overlay-template-part-selector.js +163 -0
- package/build/navigation/edit/overlay-template-part-selector.js.map +7 -0
- package/build/navigation/edit/overlay-visibility-control.js +54 -0
- package/build/navigation/edit/overlay-visibility-control.js.map +7 -0
- package/build/navigation/edit/responsive-wrapper.js +14 -2
- package/build/navigation/edit/responsive-wrapper.js.map +2 -2
- package/build/navigation-link/edit.js +7 -21
- package/build/navigation-link/edit.js.map +2 -2
- package/build/navigation-link/index.js +1 -1
- package/build/navigation-link/index.js.map +2 -2
- package/build/navigation-link/shared/index.js +5 -2
- package/build/navigation-link/shared/index.js.map +2 -2
- package/build/navigation-link/shared/use-handle-link-change.js +84 -0
- package/build/navigation-link/shared/use-handle-link-change.js.map +7 -0
- package/build/navigation-submenu/index.js +1 -1
- package/build/navigation-submenu/index.js.map +2 -2
- package/build/page-list-item/edit.js +4 -3
- package/build/page-list-item/edit.js.map +2 -2
- package/build/paragraph/index.js +1 -1
- package/build/paragraph/index.js.map +2 -2
- package/build/post-title/edit.js +6 -4
- package/build/post-title/edit.js.map +2 -2
- package/build/preformatted/index.js +1 -1
- package/build/preformatted/index.js.map +2 -2
- package/build/pullquote/index.js +1 -1
- package/build/pullquote/index.js.map +2 -2
- package/build/query/edit/inspector-controls/author-control.js +0 -1
- package/build/query/edit/inspector-controls/author-control.js.map +2 -2
- package/build/query/edit/inspector-controls/format-controls.js +0 -1
- package/build/query/edit/inspector-controls/format-controls.js.map +2 -2
- package/build/query/edit/inspector-controls/parent-control.js +1 -2
- package/build/query/edit/inspector-controls/parent-control.js.map +2 -2
- package/build/query/edit/inspector-controls/taxonomy-controls.js +0 -1
- package/build/query/edit/inspector-controls/taxonomy-controls.js.map +2 -2
- package/build/search/index.js +1 -1
- package/build/search/index.js.map +2 -2
- package/build/social-link/index.js +1 -1
- package/build/social-link/index.js.map +2 -2
- package/build/template-part/edit/index.js +3 -31
- package/build/template-part/edit/index.js.map +2 -2
- package/build/template-part/edit/utils/get-template-part-icon.js +9 -4
- package/build/template-part/edit/utils/get-template-part-icon.js.map +3 -3
- package/build/template-part/edit/utils/hooks.js +3 -2
- package/build/template-part/edit/utils/hooks.js.map +2 -2
- package/build/terms-query/edit/inspector-controls/include-control.js +0 -1
- package/build/terms-query/edit/inspector-controls/include-control.js.map +2 -2
- package/build/utils/deprecated-text-align-attributes.js +70 -0
- package/build/utils/deprecated-text-align-attributes.js.map +7 -0
- package/build/utils/migrate-text-align.js +42 -0
- package/build/utils/migrate-text-align.js.map +7 -0
- package/build/verse/index.js +1 -1
- package/build/verse/index.js.map +2 -2
- package/build/video/index.js +1 -1
- package/build/video/index.js.map +2 -2
- package/build-module/audio/index.js +1 -1
- package/build-module/audio/index.js.map +2 -2
- package/build-module/avatar/edit.js +13 -38
- package/build-module/avatar/edit.js.map +2 -2
- package/build-module/breadcrumbs/block.json +3 -2
- package/build-module/breadcrumbs/edit.js +18 -18
- package/build-module/breadcrumbs/edit.js.map +2 -2
- package/build-module/button/block.json +2 -3
- package/build-module/button/deprecated.js +205 -1
- package/build-module/button/deprecated.js.map +2 -2
- package/build-module/button/edit.js +13 -25
- package/build-module/button/edit.js.map +2 -2
- package/build-module/button/index.js +1 -1
- package/build-module/button/index.js.map +2 -2
- package/build-module/button/save.js +0 -2
- package/build-module/button/save.js.map +2 -2
- package/build-module/code/index.js +1 -1
- package/build-module/code/index.js.map +2 -2
- package/build-module/comments-pagination-numbers/block.json +7 -0
- package/build-module/cover/index.js +2 -2
- package/build-module/cover/index.js.map +2 -2
- package/build-module/details/index.js +1 -1
- package/build-module/details/index.js.map +2 -2
- package/build-module/file/index.js +1 -1
- package/build-module/file/index.js.map +2 -2
- package/build-module/freeform/block.json +0 -1
- package/build-module/gallery/edit.js +1 -1
- package/build-module/gallery/edit.js.map +2 -2
- package/build-module/gallery/transforms.js +7 -3
- package/build-module/gallery/transforms.js.map +2 -2
- package/build-module/heading/index.js +1 -1
- package/build-module/heading/index.js.map +2 -2
- package/build-module/html/modal.js +19 -7
- package/build-module/html/modal.js.map +2 -2
- package/build-module/image/index.js +1 -1
- package/build-module/image/index.js.map +2 -2
- package/build-module/index.js +9 -3
- package/build-module/index.js.map +2 -2
- package/build-module/list-item/index.js +1 -1
- package/build-module/list-item/index.js.map +2 -2
- package/build-module/math/edit.js +15 -3
- package/build-module/math/edit.js.map +2 -2
- package/build-module/media-text/index.js +1 -1
- package/build-module/media-text/index.js.map +2 -2
- package/build-module/more/index.js +1 -1
- package/build-module/more/index.js.map +2 -2
- package/build-module/navigation/block.json +3 -0
- package/build-module/navigation/edit/index.js +58 -88
- package/build-module/navigation/edit/index.js.map +2 -2
- package/build-module/navigation/edit/overlay-menu-preview-button.js +65 -0
- package/build-module/navigation/edit/overlay-menu-preview-button.js.map +7 -0
- package/build-module/navigation/edit/overlay-menu-preview-controls.js +64 -0
- package/build-module/navigation/edit/overlay-menu-preview-controls.js.map +7 -0
- package/build-module/navigation/edit/overlay-panel.js +58 -0
- package/build-module/navigation/edit/overlay-panel.js.map +7 -0
- package/build-module/navigation/edit/overlay-template-part-selector.js +142 -0
- package/build-module/navigation/edit/overlay-template-part-selector.js.map +7 -0
- package/build-module/navigation/edit/overlay-visibility-control.js +36 -0
- package/build-module/navigation/edit/overlay-visibility-control.js.map +7 -0
- package/build-module/navigation/edit/responsive-wrapper.js +14 -2
- package/build-module/navigation/edit/responsive-wrapper.js.map +2 -2
- package/build-module/navigation-link/edit.js +9 -23
- package/build-module/navigation-link/edit.js.map +2 -2
- package/build-module/navigation-link/index.js +1 -1
- package/build-module/navigation-link/index.js.map +2 -2
- package/build-module/navigation-link/shared/index.js +3 -1
- package/build-module/navigation-link/shared/index.js.map +2 -2
- package/build-module/navigation-link/shared/use-handle-link-change.js +59 -0
- package/build-module/navigation-link/shared/use-handle-link-change.js.map +7 -0
- package/build-module/navigation-submenu/index.js +1 -1
- package/build-module/navigation-submenu/index.js.map +2 -2
- package/build-module/page-list-item/edit.js +4 -3
- package/build-module/page-list-item/edit.js.map +2 -2
- package/build-module/paragraph/index.js +1 -1
- package/build-module/paragraph/index.js.map +2 -2
- package/build-module/post-title/edit.js +6 -4
- package/build-module/post-title/edit.js.map +2 -2
- package/build-module/preformatted/index.js +1 -1
- package/build-module/preformatted/index.js.map +2 -2
- package/build-module/pullquote/index.js +1 -1
- package/build-module/pullquote/index.js.map +2 -2
- package/build-module/query/edit/inspector-controls/author-control.js +0 -1
- package/build-module/query/edit/inspector-controls/author-control.js.map +2 -2
- package/build-module/query/edit/inspector-controls/format-controls.js +0 -1
- package/build-module/query/edit/inspector-controls/format-controls.js.map +2 -2
- package/build-module/query/edit/inspector-controls/parent-control.js +1 -2
- package/build-module/query/edit/inspector-controls/parent-control.js.map +2 -2
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js +0 -1
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +2 -2
- package/build-module/search/index.js +1 -1
- package/build-module/search/index.js.map +2 -2
- package/build-module/social-link/index.js +1 -1
- package/build-module/social-link/index.js.map +2 -2
- package/build-module/template-part/edit/index.js +3 -31
- package/build-module/template-part/edit/index.js.map +2 -2
- package/build-module/template-part/edit/utils/get-template-part-icon.js +10 -4
- package/build-module/template-part/edit/utils/get-template-part-icon.js.map +2 -2
- package/build-module/template-part/edit/utils/hooks.js +3 -2
- package/build-module/template-part/edit/utils/hooks.js.map +2 -2
- package/build-module/terms-query/edit/inspector-controls/include-control.js +0 -1
- package/build-module/terms-query/edit/inspector-controls/include-control.js.map +2 -2
- package/build-module/utils/deprecated-text-align-attributes.js +39 -0
- package/build-module/utils/deprecated-text-align-attributes.js.map +7 -0
- package/build-module/utils/migrate-text-align.js +21 -0
- package/build-module/utils/migrate-text-align.js.map +7 -0
- package/build-module/verse/index.js +1 -1
- package/build-module/verse/index.js.map +2 -2
- package/build-module/video/index.js +1 -1
- package/build-module/video/index.js.map +2 -2
- package/build-style/accordion-heading/style-rtl.css +2 -18
- package/build-style/accordion-heading/style.css +2 -18
- package/build-style/classic-rtl.css +24 -0
- package/build-style/classic.css +24 -0
- package/build-style/common-rtl.css +4 -4
- package/build-style/common.css +4 -0
- package/build-style/editor-rtl.css +5 -0
- package/build-style/editor.css +5 -0
- package/build-style/navigation/editor-rtl.css +5 -0
- package/build-style/navigation/editor.css +5 -0
- package/build-style/style-rtl.css +8 -22
- package/build-style/style.css +8 -18
- package/build-style/verse/style-rtl.css +2 -0
- package/build-style/verse/style.css +2 -0
- package/package.json +40 -38
- package/src/accordion-heading/style.scss +2 -30
- package/src/audio/index.js +1 -1
- package/src/avatar/edit.js +68 -83
- package/src/breadcrumbs/block.json +3 -2
- package/src/breadcrumbs/edit.js +18 -18
- package/src/breadcrumbs/index.php +38 -17
- package/src/button/block.json +2 -3
- package/src/button/deprecated.js +214 -0
- package/src/button/edit.js +2 -11
- package/src/button/index.js +1 -1
- package/src/button/save.js +0 -2
- package/src/classic.scss +38 -0
- package/src/code/index.js +1 -1
- package/src/comments-pagination-numbers/block.json +7 -0
- package/src/common.scss +4 -0
- package/src/cover/index.js +2 -2
- package/src/details/index.js +1 -1
- package/src/file/index.js +1 -1
- package/src/freeform/block.json +0 -1
- package/src/gallery/edit.js +4 -1
- package/src/gallery/transforms.js +6 -2
- package/src/heading/index.js +1 -1
- package/src/html/modal.js +39 -20
- package/src/image/index.js +1 -1
- package/src/index.js +9 -3
- package/src/list-item/index.js +1 -1
- package/src/math/edit.js +15 -3
- package/src/media-text/index.js +1 -1
- package/src/more/index.js +1 -1
- package/src/navigation/block.json +3 -0
- package/src/navigation/edit/index.js +77 -82
- package/src/navigation/edit/overlay-menu-preview-button.js +82 -0
- package/src/navigation/edit/overlay-menu-preview-controls.js +65 -0
- package/src/navigation/edit/overlay-panel.js +78 -0
- package/src/navigation/edit/overlay-template-part-selector.js +198 -0
- package/src/navigation/edit/overlay-visibility-control.js +40 -0
- package/src/navigation/edit/responsive-wrapper.js +16 -1
- package/src/navigation/edit/test/overlay-template-part-selector.js +461 -0
- package/src/navigation/editor.scss +5 -0
- package/src/navigation-link/edit.js +9 -26
- package/src/navigation-link/index.js +1 -1
- package/src/navigation-link/shared/index.js +1 -0
- package/src/navigation-link/shared/test/use-handle-link-change.test.js +804 -0
- package/src/navigation-link/shared/use-handle-link-change.js +91 -0
- package/src/navigation-submenu/index.js +1 -1
- package/src/page-list/index.php +3 -4
- package/src/page-list-item/edit.js +4 -3
- package/src/paragraph/index.js +1 -1
- package/src/post-title/edit.js +8 -4
- package/src/post-title/index.php +1 -1
- package/src/preformatted/index.js +1 -1
- package/src/pullquote/index.js +1 -1
- package/src/query/edit/inspector-controls/author-control.js +0 -1
- package/src/query/edit/inspector-controls/format-controls.js +0 -1
- package/src/query/edit/inspector-controls/parent-control.js +0 -1
- package/src/query/edit/inspector-controls/taxonomy-controls.js +0 -1
- package/src/search/index.js +1 -1
- package/src/social-link/index.js +1 -1
- package/src/template-part/edit/index.js +5 -41
- package/src/template-part/edit/utils/get-template-part-icon.js +23 -4
- package/src/template-part/edit/utils/hooks.js +10 -2
- package/src/terms-query/edit/inspector-controls/include-control.js +0 -1
- package/src/utils/deprecated-text-align-attributes.js +45 -0
- package/src/utils/migrate-text-align.js +22 -0
- package/src/verse/index.js +1 -1
- package/src/verse/style.scss +4 -0
- package/src/video/index.js +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// packages/block-library/src/navigation/edit/overlay-menu-preview-controls.js
|
|
31
|
+
var overlay_menu_preview_controls_exports = {};
|
|
32
|
+
__export(overlay_menu_preview_controls_exports, {
|
|
33
|
+
default: () => OverlayMenuPreviewControls
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(overlay_menu_preview_controls_exports);
|
|
36
|
+
var import_components = require("@wordpress/components");
|
|
37
|
+
var import_i18n = require("@wordpress/i18n");
|
|
38
|
+
var import_overlay_menu_icon = __toESM(require("./overlay-menu-icon"));
|
|
39
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
40
|
+
function OverlayMenuPreviewControls({
|
|
41
|
+
hasIcon,
|
|
42
|
+
icon,
|
|
43
|
+
setAttributes
|
|
44
|
+
}) {
|
|
45
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalVStack, { spacing: 4, children: [
|
|
46
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
47
|
+
import_components.ToggleControl,
|
|
48
|
+
{
|
|
49
|
+
__nextHasNoMarginBottom: true,
|
|
50
|
+
label: (0, import_i18n.__)("Show icon button"),
|
|
51
|
+
help: (0, import_i18n.__)(
|
|
52
|
+
"Configure the visual appearance of the button that toggles the overlay menu."
|
|
53
|
+
),
|
|
54
|
+
onChange: (value) => setAttributes({ hasIcon: value }),
|
|
55
|
+
checked: hasIcon
|
|
56
|
+
}
|
|
57
|
+
),
|
|
58
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
59
|
+
import_components.__experimentalToggleGroupControl,
|
|
60
|
+
{
|
|
61
|
+
__next40pxDefaultSize: true,
|
|
62
|
+
__nextHasNoMarginBottom: true,
|
|
63
|
+
className: "wp-block-navigation__overlay-menu-icon-toggle-group",
|
|
64
|
+
label: (0, import_i18n.__)("Icon"),
|
|
65
|
+
value: icon,
|
|
66
|
+
onChange: (value) => setAttributes({ icon: value }),
|
|
67
|
+
isBlock: true,
|
|
68
|
+
children: [
|
|
69
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
70
|
+
import_components.__experimentalToggleGroupControlOption,
|
|
71
|
+
{
|
|
72
|
+
value: "handle",
|
|
73
|
+
"aria-label": (0, import_i18n.__)("handle"),
|
|
74
|
+
label: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_overlay_menu_icon.default, { icon: "handle" })
|
|
75
|
+
}
|
|
76
|
+
),
|
|
77
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
78
|
+
import_components.__experimentalToggleGroupControlOption,
|
|
79
|
+
{
|
|
80
|
+
value: "menu",
|
|
81
|
+
"aria-label": (0, import_i18n.__)("menu"),
|
|
82
|
+
label: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_overlay_menu_icon.default, { icon: "menu" })
|
|
83
|
+
}
|
|
84
|
+
)
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
)
|
|
88
|
+
] });
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=overlay-menu-preview-controls.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/navigation/edit/overlay-menu-preview-controls.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport OverlayMenuIcon from './overlay-menu-icon';\n\n/**\n * Overlay Menu Preview Controls component.\n * Used within PanelBody context (not ToolsPanel).\n *\n * @param {Object} props Component props.\n * @param {boolean} props.hasIcon Whether the overlay menu has an icon.\n * @param {string} props.icon Icon type for overlay menu.\n * @param {Function} props.setAttributes Function to update block attributes.\n * @return {JSX.Element} The overlay menu preview controls.\n */\nexport default function OverlayMenuPreviewControls( {\n\thasIcon,\n\ticon,\n\tsetAttributes,\n} ) {\n\treturn (\n\t\t<VStack spacing={ 4 }>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Show icon button' ) }\n\t\t\t\thelp={ __(\n\t\t\t\t\t'Configure the visual appearance of the button that toggles the overlay menu.'\n\t\t\t\t) }\n\t\t\t\tonChange={ ( value ) => setAttributes( { hasIcon: value } ) }\n\t\t\t\tchecked={ hasIcon }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tclassName=\"wp-block-navigation__overlay-menu-icon-toggle-group\"\n\t\t\t\tlabel={ __( 'Icon' ) }\n\t\t\t\tvalue={ icon }\n\t\t\t\tonChange={ ( value ) => setAttributes( { icon: value } ) }\n\t\t\t\tisBlock\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tvalue=\"handle\"\n\t\t\t\t\taria-label={ __( 'handle' ) }\n\t\t\t\t\tlabel={ <OverlayMenuIcon icon=\"handle\" /> }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tvalue=\"menu\"\n\t\t\t\t\taria-label={ __( 'menu' ) }\n\t\t\t\t\tlabel={ <OverlayMenuIcon icon=\"menu\" /> }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t</VStack>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAKO;AACP,kBAAmB;AAKnB,+BAA4B;AAmBzB;AAPY,SAAR,2BAA6C;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,SACC,6CAAC,kBAAAA,sBAAA,EAAO,SAAU,GACjB;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,yBAAuB;AAAA,QACvB,WAAQ,gBAAI,kBAAmB;AAAA,QAC/B,UAAO;AAAA,UACN;AAAA,QACD;AAAA,QACA,UAAW,CAAE,UAAW,cAAe,EAAE,SAAS,MAAM,CAAE;AAAA,QAC1D,SAAU;AAAA;AAAA,IACX;AAAA,IACA;AAAA,MAAC,kBAAAC;AAAA,MAAA;AAAA,QACA,uBAAqB;AAAA,QACrB,yBAAuB;AAAA,QACvB,WAAU;AAAA,QACV,WAAQ,gBAAI,MAAO;AAAA,QACnB,OAAQ;AAAA,QACR,UAAW,CAAE,UAAW,cAAe,EAAE,MAAM,MAAM,CAAE;AAAA,QACvD,SAAO;AAAA,QAEP;AAAA;AAAA,YAAC,kBAAAC;AAAA,YAAA;AAAA,cACA,OAAM;AAAA,cACN,kBAAa,gBAAI,QAAS;AAAA,cAC1B,OAAQ,4CAAC,yBAAAC,SAAA,EAAgB,MAAK,UAAS;AAAA;AAAA,UACxC;AAAA,UACA;AAAA,YAAC,kBAAAD;AAAA,YAAA;AAAA,cACA,OAAM;AAAA,cACN,kBAAa,gBAAI,MAAO;AAAA,cACxB,OAAQ,4CAAC,yBAAAC,SAAA,EAAgB,MAAK,QAAO;AAAA;AAAA,UACtC;AAAA;AAAA;AAAA,IACD;AAAA,KACD;AAEF;",
|
|
6
|
+
"names": ["VStack", "ToggleGroupControl", "ToggleGroupControlOption", "OverlayMenuIcon"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// packages/block-library/src/navigation/edit/overlay-panel.js
|
|
31
|
+
var overlay_panel_exports = {};
|
|
32
|
+
__export(overlay_panel_exports, {
|
|
33
|
+
default: () => OverlayPanel
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(overlay_panel_exports);
|
|
36
|
+
var import_components = require("@wordpress/components");
|
|
37
|
+
var import_i18n = require("@wordpress/i18n");
|
|
38
|
+
var import_overlay_template_part_selector = __toESM(require("./overlay-template-part-selector"));
|
|
39
|
+
var import_overlay_visibility_control = __toESM(require("./overlay-visibility-control"));
|
|
40
|
+
var import_overlay_menu_preview_button = __toESM(require("./overlay-menu-preview-button"));
|
|
41
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
42
|
+
function OverlayPanel({
|
|
43
|
+
overlayMenu,
|
|
44
|
+
overlay,
|
|
45
|
+
setAttributes,
|
|
46
|
+
onNavigateToEntityRecord,
|
|
47
|
+
overlayMenuPreview,
|
|
48
|
+
setOverlayMenuPreview,
|
|
49
|
+
hasIcon,
|
|
50
|
+
icon,
|
|
51
|
+
overlayMenuPreviewClasses,
|
|
52
|
+
overlayMenuPreviewId,
|
|
53
|
+
isResponsive
|
|
54
|
+
}) {
|
|
55
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.PanelBody, { title: (0, import_i18n.__)("Overlay"), initialOpen: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalVStack, { spacing: 4, children: [
|
|
56
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
57
|
+
import_overlay_visibility_control.default,
|
|
58
|
+
{
|
|
59
|
+
overlayMenu,
|
|
60
|
+
setAttributes
|
|
61
|
+
}
|
|
62
|
+
),
|
|
63
|
+
overlayMenu !== "never" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
64
|
+
import_overlay_menu_preview_button.default,
|
|
65
|
+
{
|
|
66
|
+
isResponsive,
|
|
67
|
+
overlayMenuPreview,
|
|
68
|
+
setOverlayMenuPreview,
|
|
69
|
+
hasIcon,
|
|
70
|
+
icon,
|
|
71
|
+
setAttributes,
|
|
72
|
+
overlayMenuPreviewClasses,
|
|
73
|
+
overlayMenuPreviewId
|
|
74
|
+
}
|
|
75
|
+
),
|
|
76
|
+
overlayMenu !== "never" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
77
|
+
import_overlay_template_part_selector.default,
|
|
78
|
+
{
|
|
79
|
+
overlay,
|
|
80
|
+
setAttributes,
|
|
81
|
+
onNavigateToEntityRecord
|
|
82
|
+
}
|
|
83
|
+
)
|
|
84
|
+
] }) });
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=overlay-panel.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/navigation/edit/overlay-panel.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport OverlayTemplatePartSelector from './overlay-template-part-selector';\nimport OverlayVisibilityControl from './overlay-visibility-control';\nimport OverlayMenuPreviewButton from './overlay-menu-preview-button';\n\n/**\n * Overlay Panel component for Navigation block.\n *\n * @param {Object} props Component props.\n * @param {string} props.overlayMenu Overlay menu setting ('never', 'mobile', 'always').\n * @param {string} props.overlay Currently selected overlay template part ID.\n * @param {Function} props.setAttributes Function to update block attributes.\n * @param {Function} props.onNavigateToEntityRecord Function to navigate to template part editor.\n * @param {boolean} props.overlayMenuPreview Whether overlay menu preview is open.\n * @param {Function} props.setOverlayMenuPreview Function to toggle overlay menu preview.\n * @param {boolean} props.hasIcon Whether the overlay menu has an icon.\n * @param {string} props.icon Icon type for overlay menu.\n * @param {string} props.overlayMenuPreviewClasses CSS classes for overlay menu preview button.\n * @param {string} props.overlayMenuPreviewId ID for overlay menu preview.\n * @param {boolean} props.isResponsive Whether overlay menu is responsive.\n * @return {JSX.Element|null} The overlay panel component or null if overlay is disabled.\n */\nexport default function OverlayPanel( {\n\toverlayMenu,\n\toverlay,\n\tsetAttributes,\n\tonNavigateToEntityRecord,\n\toverlayMenuPreview,\n\tsetOverlayMenuPreview,\n\thasIcon,\n\ticon,\n\toverlayMenuPreviewClasses,\n\toverlayMenuPreviewId,\n\tisResponsive,\n} ) {\n\treturn (\n\t\t<PanelBody title={ __( 'Overlay' ) } initialOpen>\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<OverlayVisibilityControl\n\t\t\t\t\toverlayMenu={ overlayMenu }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\n\t\t\t\t{ overlayMenu !== 'never' && (\n\t\t\t\t\t<OverlayMenuPreviewButton\n\t\t\t\t\t\tisResponsive={ isResponsive }\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\tsetAttributes={ setAttributes }\n\t\t\t\t\t\toverlayMenuPreviewClasses={ overlayMenuPreviewClasses }\n\t\t\t\t\t\toverlayMenuPreviewId={ overlayMenuPreviewId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ overlayMenu !== 'never' && (\n\t\t\t\t\t<OverlayTemplatePartSelector\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/>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</PanelBody>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAGO;AACP,kBAAmB;AAKnB,4CAAwC;AACxC,wCAAqC;AACrC,yCAAqC;AAkClC;AAfY,SAAR,aAA+B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,SACC,4CAAC,+BAAU,WAAQ,gBAAI,SAAU,GAAI,aAAW,MAC/C,uDAAC,kBAAAA,sBAAA,EAAO,SAAU,GACjB;AAAA;AAAA,MAAC,kCAAAC;AAAA,MAAA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD;AAAA,IAEE,gBAAgB,WACjB;AAAA,MAAC,mCAAAC;AAAA,MAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD;AAAA,IAGC,gBAAgB,WACjB;AAAA,MAAC,sCAAAC;AAAA,MAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD;AAAA,KAEF,GACD;AAEF;",
|
|
6
|
+
"names": ["VStack", "OverlayVisibilityControl", "OverlayMenuPreviewButton", "OverlayTemplatePartSelector"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// packages/block-library/src/navigation/edit/overlay-template-part-selector.js
|
|
21
|
+
var overlay_template_part_selector_exports = {};
|
|
22
|
+
__export(overlay_template_part_selector_exports, {
|
|
23
|
+
default: () => OverlayTemplatePartSelector
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(overlay_template_part_selector_exports);
|
|
26
|
+
var import_element = require("@wordpress/element");
|
|
27
|
+
var import_core_data = require("@wordpress/core-data");
|
|
28
|
+
var import_components = require("@wordpress/components");
|
|
29
|
+
var import_i18n = require("@wordpress/i18n");
|
|
30
|
+
var import_html_entities = require("@wordpress/html-entities");
|
|
31
|
+
var import_create_template_part_id = require("../../template-part/edit/utils/create-template-part-id");
|
|
32
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
33
|
+
function parseTemplatePartId(templatePartId) {
|
|
34
|
+
if (!templatePartId || typeof templatePartId !== "string") {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
const parts = templatePartId.split("//");
|
|
38
|
+
if (parts.length !== 2) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
theme: parts[0],
|
|
43
|
+
slug: parts[1]
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function OverlayTemplatePartSelector({
|
|
47
|
+
overlay,
|
|
48
|
+
setAttributes,
|
|
49
|
+
onNavigateToEntityRecord
|
|
50
|
+
}) {
|
|
51
|
+
const {
|
|
52
|
+
records: templateParts,
|
|
53
|
+
isResolving,
|
|
54
|
+
hasResolved
|
|
55
|
+
} = (0, import_core_data.useEntityRecords)("postType", "wp_template_part", {
|
|
56
|
+
per_page: -1
|
|
57
|
+
});
|
|
58
|
+
const overlayTemplateParts = (0, import_element.useMemo)(() => {
|
|
59
|
+
if (!templateParts) {
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
return templateParts.filter(
|
|
63
|
+
(templatePart) => templatePart.area === "overlay"
|
|
64
|
+
);
|
|
65
|
+
}, [templateParts]);
|
|
66
|
+
const options = (0, import_element.useMemo)(() => {
|
|
67
|
+
const baseOptions = [
|
|
68
|
+
{
|
|
69
|
+
label: (0, import_i18n.__)("None (default)"),
|
|
70
|
+
value: ""
|
|
71
|
+
}
|
|
72
|
+
];
|
|
73
|
+
if (!hasResolved || isResolving) {
|
|
74
|
+
return baseOptions;
|
|
75
|
+
}
|
|
76
|
+
const templatePartOptions = overlayTemplateParts.map(
|
|
77
|
+
(templatePart) => {
|
|
78
|
+
const templatePartId = (0, import_create_template_part_id.createTemplatePartId)(
|
|
79
|
+
templatePart.theme,
|
|
80
|
+
templatePart.slug
|
|
81
|
+
);
|
|
82
|
+
const label = templatePart.title?.rendered ? (0, import_html_entities.decodeEntities)(templatePart.title.rendered) : templatePart.slug;
|
|
83
|
+
return {
|
|
84
|
+
label,
|
|
85
|
+
value: templatePartId
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
);
|
|
89
|
+
return [...baseOptions, ...templatePartOptions];
|
|
90
|
+
}, [overlayTemplateParts, hasResolved, isResolving]);
|
|
91
|
+
const parsedTemplatePart = (0, import_element.useMemo)(() => {
|
|
92
|
+
return parseTemplatePartId(overlay);
|
|
93
|
+
}, [overlay]);
|
|
94
|
+
const selectedTemplatePart = (0, import_element.useMemo)(() => {
|
|
95
|
+
if (!overlay || !overlayTemplateParts) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
return overlayTemplateParts.find((templatePart) => {
|
|
99
|
+
const templatePartId = (0, import_create_template_part_id.createTemplatePartId)(
|
|
100
|
+
templatePart.theme,
|
|
101
|
+
templatePart.slug
|
|
102
|
+
);
|
|
103
|
+
return templatePartId === overlay;
|
|
104
|
+
});
|
|
105
|
+
}, [overlay, overlayTemplateParts]);
|
|
106
|
+
const handleSelectChange = (value) => {
|
|
107
|
+
setAttributes({
|
|
108
|
+
overlay: value || void 0
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
const handleEditClick = () => {
|
|
112
|
+
if (!overlay || !onNavigateToEntityRecord) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
onNavigateToEntityRecord({
|
|
116
|
+
postId: overlay,
|
|
117
|
+
postType: "wp_template_part"
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
const isEditButtonDisabled = !overlay || !parsedTemplatePart || !onNavigateToEntityRecord || isResolving;
|
|
121
|
+
if (isResolving && !hasResolved) {
|
|
122
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "wp-block-navigation__overlay-selector", children: [
|
|
123
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Spinner, {}),
|
|
124
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: (0, import_i18n.__)("Loading overlays\u2026") })
|
|
125
|
+
] });
|
|
126
|
+
}
|
|
127
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "wp-block-navigation__overlay-selector", children: [
|
|
128
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
129
|
+
import_components.SelectControl,
|
|
130
|
+
{
|
|
131
|
+
__next40pxDefaultSize: true,
|
|
132
|
+
__nextHasNoMarginBottom: true,
|
|
133
|
+
label: (0, import_i18n.__)("Overlay template"),
|
|
134
|
+
value: overlay || "",
|
|
135
|
+
options,
|
|
136
|
+
onChange: handleSelectChange,
|
|
137
|
+
disabled: isResolving,
|
|
138
|
+
accessibleWhenDisabled: true,
|
|
139
|
+
help: overlayTemplateParts.length === 0 && hasResolved ? (0, import_i18n.__)("No overlays found.") : (0, import_i18n.__)("Select an overlay to use for the navigation.")
|
|
140
|
+
}
|
|
141
|
+
),
|
|
142
|
+
overlay && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
143
|
+
import_components.Button,
|
|
144
|
+
{
|
|
145
|
+
__next40pxDefaultSize: true,
|
|
146
|
+
variant: "secondary",
|
|
147
|
+
onClick: handleEditClick,
|
|
148
|
+
disabled: isEditButtonDisabled,
|
|
149
|
+
accessibleWhenDisabled: true,
|
|
150
|
+
"aria-label": selectedTemplatePart ? (0, import_i18n.sprintf)(
|
|
151
|
+
/* translators: %s: Overlay title. */
|
|
152
|
+
(0, import_i18n.__)("Edit overlay: %s"),
|
|
153
|
+
selectedTemplatePart.title?.rendered ? (0, import_html_entities.decodeEntities)(
|
|
154
|
+
selectedTemplatePart.title.rendered
|
|
155
|
+
) : selectedTemplatePart.slug
|
|
156
|
+
) : (0, import_i18n.__)("Edit overlay"),
|
|
157
|
+
className: "wp-block-navigation__overlay-edit-button",
|
|
158
|
+
children: (0, import_i18n.__)("Edit")
|
|
159
|
+
}
|
|
160
|
+
)
|
|
161
|
+
] });
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=overlay-template-part-selector.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/navigation/edit/overlay-template-part-selector.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { SelectControl, Spinner, Button } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { createTemplatePartId } from '../../template-part/edit/utils/create-template-part-id';\n\n/**\n * Parses a template part ID into theme and slug components.\n *\n * @param {string} templatePartId Template part ID in format \"theme//slug\".\n * @return {{theme: string, slug: string}|null} Parsed components or null if invalid.\n */\nfunction parseTemplatePartId( templatePartId ) {\n\tif ( ! templatePartId || typeof templatePartId !== 'string' ) {\n\t\treturn null;\n\t}\n\n\tconst parts = templatePartId.split( '//' );\n\tif ( parts.length !== 2 ) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\ttheme: parts[ 0 ],\n\t\tslug: parts[ 1 ],\n\t};\n}\n\n/**\n * Overlay Template Part Selector component.\n *\n * @param {Object} props Component props.\n * @param {string} props.overlay Currently selected overlay template part ID.\n * @param {Function} props.setAttributes Function to update block attributes.\n * @param {Function} props.onNavigateToEntityRecord Function to navigate to template part editor.\n * @return {JSX.Element} The overlay template part selector component.\n */\nexport default function OverlayTemplatePartSelector( {\n\toverlay,\n\tsetAttributes,\n\tonNavigateToEntityRecord,\n} ) {\n\tconst {\n\t\trecords: templateParts,\n\t\tisResolving,\n\t\thasResolved,\n\t} = useEntityRecords( 'postType', 'wp_template_part', {\n\t\tper_page: -1,\n\t} );\n\n\t// Filter template parts by overlay area\n\tconst overlayTemplateParts = useMemo( () => {\n\t\tif ( ! templateParts ) {\n\t\t\treturn [];\n\t\t}\n\t\treturn templateParts.filter(\n\t\t\t( templatePart ) => templatePart.area === 'overlay'\n\t\t);\n\t}, [ templateParts ] );\n\n\t// Build options for SelectControl\n\tconst options = useMemo( () => {\n\t\tconst baseOptions = [\n\t\t\t{\n\t\t\t\tlabel: __( 'None (default)' ),\n\t\t\t\tvalue: '',\n\t\t\t},\n\t\t];\n\n\t\tif ( ! hasResolved || isResolving ) {\n\t\t\treturn baseOptions;\n\t\t}\n\n\t\tconst templatePartOptions = overlayTemplateParts.map(\n\t\t\t( templatePart ) => {\n\t\t\t\tconst templatePartId = createTemplatePartId(\n\t\t\t\t\ttemplatePart.theme,\n\t\t\t\t\ttemplatePart.slug\n\t\t\t\t);\n\t\t\t\tconst label = templatePart.title?.rendered\n\t\t\t\t\t? decodeEntities( templatePart.title.rendered )\n\t\t\t\t\t: templatePart.slug;\n\n\t\t\t\treturn {\n\t\t\t\t\tlabel,\n\t\t\t\t\tvalue: templatePartId,\n\t\t\t\t};\n\t\t\t}\n\t\t);\n\n\t\treturn [ ...baseOptions, ...templatePartOptions ];\n\t}, [ overlayTemplateParts, hasResolved, isResolving ] );\n\n\t// Parse selected template part for navigation\n\tconst parsedTemplatePart = useMemo( () => {\n\t\treturn parseTemplatePartId( overlay );\n\t}, [ overlay ] );\n\n\t// Find the selected template part to get its title\n\tconst selectedTemplatePart = useMemo( () => {\n\t\tif ( ! overlay || ! overlayTemplateParts ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn overlayTemplateParts.find( ( templatePart ) => {\n\t\t\tconst templatePartId = createTemplatePartId(\n\t\t\t\ttemplatePart.theme,\n\t\t\t\ttemplatePart.slug\n\t\t\t);\n\t\t\treturn templatePartId === overlay;\n\t\t} );\n\t}, [ overlay, overlayTemplateParts ] );\n\n\tconst handleSelectChange = ( value ) => {\n\t\tsetAttributes( {\n\t\t\toverlay: value || undefined,\n\t\t} );\n\t};\n\n\tconst handleEditClick = () => {\n\t\tif ( ! overlay || ! onNavigateToEntityRecord ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: overlay,\n\t\t\tpostType: 'wp_template_part',\n\t\t} );\n\t};\n\n\tconst isEditButtonDisabled =\n\t\t! overlay ||\n\t\t! parsedTemplatePart ||\n\t\t! onNavigateToEntityRecord ||\n\t\tisResolving;\n\n\tif ( isResolving && ! hasResolved ) {\n\t\treturn (\n\t\t\t<div className=\"wp-block-navigation__overlay-selector\">\n\t\t\t\t<Spinner />\n\t\t\t\t<p>{ __( 'Loading overlays\u2026' ) }</p>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className=\"wp-block-navigation__overlay-selector\">\n\t\t\t<SelectControl\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Overlay template' ) }\n\t\t\t\tvalue={ overlay || '' }\n\t\t\t\toptions={ options }\n\t\t\t\tonChange={ handleSelectChange }\n\t\t\t\tdisabled={ isResolving }\n\t\t\t\taccessibleWhenDisabled\n\t\t\t\thelp={\n\t\t\t\t\toverlayTemplateParts.length === 0 && hasResolved\n\t\t\t\t\t\t? __( 'No overlays found.' )\n\t\t\t\t\t\t: __( 'Select an overlay to use for the navigation.' )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ overlay && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ handleEditClick }\n\t\t\t\t\tdisabled={ isEditButtonDisabled }\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\taria-label={\n\t\t\t\t\t\tselectedTemplatePart\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: Overlay title. */\n\t\t\t\t\t\t\t\t\t__( 'Edit overlay: %s' ),\n\t\t\t\t\t\t\t\t\tselectedTemplatePart.title?.rendered\n\t\t\t\t\t\t\t\t\t\t? decodeEntities(\n\t\t\t\t\t\t\t\t\t\t\t\tselectedTemplatePart.title\n\t\t\t\t\t\t\t\t\t\t\t\t\t.rendered\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: selectedTemplatePart.slug\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'Edit overlay' )\n\t\t\t\t\t}\n\t\t\t\t\tclassName=\"wp-block-navigation__overlay-edit-button\"\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAAwB;AACxB,uBAAiC;AACjC,wBAA+C;AAC/C,kBAA4B;AAC5B,2BAA+B;AAK/B,qCAAqC;AAqIlC;AA7HH,SAAS,oBAAqB,gBAAiB;AAC9C,MAAK,CAAE,kBAAkB,OAAO,mBAAmB,UAAW;AAC7D,WAAO;AAAA,EACR;AAEA,QAAM,QAAQ,eAAe,MAAO,IAAK;AACzC,MAAK,MAAM,WAAW,GAAI;AACzB,WAAO;AAAA,EACR;AAEA,SAAO;AAAA,IACN,OAAO,MAAO,CAAE;AAAA,IAChB,MAAM,MAAO,CAAE;AAAA,EAChB;AACD;AAWe,SAAR,4BAA8C;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM;AAAA,IACL,SAAS;AAAA,IACT;AAAA,IACA;AAAA,EACD,QAAI,mCAAkB,YAAY,oBAAoB;AAAA,IACrD,UAAU;AAAA,EACX,CAAE;AAGF,QAAM,2BAAuB,wBAAS,MAAM;AAC3C,QAAK,CAAE,eAAgB;AACtB,aAAO,CAAC;AAAA,IACT;AACA,WAAO,cAAc;AAAA,MACpB,CAAE,iBAAkB,aAAa,SAAS;AAAA,IAC3C;AAAA,EACD,GAAG,CAAE,aAAc,CAAE;AAGrB,QAAM,cAAU,wBAAS,MAAM;AAC9B,UAAM,cAAc;AAAA,MACnB;AAAA,QACC,WAAO,gBAAI,gBAAiB;AAAA,QAC5B,OAAO;AAAA,MACR;AAAA,IACD;AAEA,QAAK,CAAE,eAAe,aAAc;AACnC,aAAO;AAAA,IACR;AAEA,UAAM,sBAAsB,qBAAqB;AAAA,MAChD,CAAE,iBAAkB;AACnB,cAAM,qBAAiB;AAAA,UACtB,aAAa;AAAA,UACb,aAAa;AAAA,QACd;AACA,cAAM,QAAQ,aAAa,OAAO,eAC/B,qCAAgB,aAAa,MAAM,QAAS,IAC5C,aAAa;AAEhB,eAAO;AAAA,UACN;AAAA,UACA,OAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD;AAEA,WAAO,CAAE,GAAG,aAAa,GAAG,mBAAoB;AAAA,EACjD,GAAG,CAAE,sBAAsB,aAAa,WAAY,CAAE;AAGtD,QAAM,yBAAqB,wBAAS,MAAM;AACzC,WAAO,oBAAqB,OAAQ;AAAA,EACrC,GAAG,CAAE,OAAQ,CAAE;AAGf,QAAM,2BAAuB,wBAAS,MAAM;AAC3C,QAAK,CAAE,WAAW,CAAE,sBAAuB;AAC1C,aAAO;AAAA,IACR;AACA,WAAO,qBAAqB,KAAM,CAAE,iBAAkB;AACrD,YAAM,qBAAiB;AAAA,QACtB,aAAa;AAAA,QACb,aAAa;AAAA,MACd;AACA,aAAO,mBAAmB;AAAA,IAC3B,CAAE;AAAA,EACH,GAAG,CAAE,SAAS,oBAAqB,CAAE;AAErC,QAAM,qBAAqB,CAAE,UAAW;AACvC,kBAAe;AAAA,MACd,SAAS,SAAS;AAAA,IACnB,CAAE;AAAA,EACH;AAEA,QAAM,kBAAkB,MAAM;AAC7B,QAAK,CAAE,WAAW,CAAE,0BAA2B;AAC9C;AAAA,IACD;AAEA,6BAA0B;AAAA,MACzB,QAAQ;AAAA,MACR,UAAU;AAAA,IACX,CAAE;AAAA,EACH;AAEA,QAAM,uBACL,CAAE,WACF,CAAE,sBACF,CAAE,4BACF;AAED,MAAK,eAAe,CAAE,aAAc;AACnC,WACC,6CAAC,SAAI,WAAU,yCACd;AAAA,kDAAC,6BAAQ;AAAA,MACT,4CAAC,OAAI,8BAAI,wBAAoB,GAAG;AAAA,OACjC;AAAA,EAEF;AAEA,SACC,6CAAC,SAAI,WAAU,yCACd;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,uBAAqB;AAAA,QACrB,yBAAuB;AAAA,QACvB,WAAQ,gBAAI,kBAAmB;AAAA,QAC/B,OAAQ,WAAW;AAAA,QACnB;AAAA,QACA,UAAW;AAAA,QACX,UAAW;AAAA,QACX,wBAAsB;AAAA,QACtB,MACC,qBAAqB,WAAW,KAAK,kBAClC,gBAAI,oBAAqB,QACzB,gBAAI,8CAA+C;AAAA;AAAA,IAExD;AAAA,IACE,WACD;AAAA,MAAC;AAAA;AAAA,QACA,uBAAqB;AAAA,QACrB,SAAQ;AAAA,QACR,SAAU;AAAA,QACV,UAAW;AAAA,QACX,wBAAsB;AAAA,QACtB,cACC,2BACG;AAAA;AAAA,cAEA,gBAAI,kBAAmB;AAAA,UACvB,qBAAqB,OAAO,eACzB;AAAA,YACA,qBAAqB,MACnB;AAAA,UACF,IACA,qBAAqB;AAAA,QACxB,QACA,gBAAI,cAAe;AAAA,QAEvB,WAAU;AAAA,QAER,8BAAI,MAAO;AAAA;AAAA,IACd;AAAA,KAEF;AAEF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// packages/block-library/src/navigation/edit/overlay-visibility-control.js
|
|
21
|
+
var overlay_visibility_control_exports = {};
|
|
22
|
+
__export(overlay_visibility_control_exports, {
|
|
23
|
+
default: () => OverlayVisibilityControl
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(overlay_visibility_control_exports);
|
|
26
|
+
var import_components = require("@wordpress/components");
|
|
27
|
+
var import_i18n = require("@wordpress/i18n");
|
|
28
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
29
|
+
function OverlayVisibilityControl({
|
|
30
|
+
overlayMenu,
|
|
31
|
+
setAttributes
|
|
32
|
+
}) {
|
|
33
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
34
|
+
import_components.__experimentalToggleGroupControl,
|
|
35
|
+
{
|
|
36
|
+
__next40pxDefaultSize: true,
|
|
37
|
+
__nextHasNoMarginBottom: true,
|
|
38
|
+
label: (0, import_i18n.__)("Overlay Visibility"),
|
|
39
|
+
"aria-label": (0, import_i18n.__)("Configure overlay visibility"),
|
|
40
|
+
value: overlayMenu,
|
|
41
|
+
help: (0, import_i18n.__)(
|
|
42
|
+
"Collapses the navigation options in a menu icon opening an overlay."
|
|
43
|
+
),
|
|
44
|
+
onChange: (value) => setAttributes({ overlayMenu: value }),
|
|
45
|
+
isBlock: true,
|
|
46
|
+
children: [
|
|
47
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalToggleGroupControlOption, { value: "never", label: (0, import_i18n.__)("Off") }),
|
|
48
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalToggleGroupControlOption, { value: "mobile", label: (0, import_i18n.__)("Mobile") }),
|
|
49
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalToggleGroupControlOption, { value: "always", label: (0, import_i18n.__)("Always") })
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=overlay-visibility-control.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/navigation/edit/overlay-visibility-control.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Overlay Visibility Control component.\n *\n * @param {Object} props Component props.\n * @param {string} props.overlayMenu Overlay menu setting ('never', 'mobile', 'always').\n * @param {Function} props.setAttributes Function to update block attributes.\n * @return {JSX.Element} The overlay visibility control.\n */\nexport default function OverlayVisibilityControl( {\n\toverlayMenu,\n\tsetAttributes,\n} ) {\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Overlay Visibility' ) }\n\t\t\taria-label={ __( 'Configure overlay visibility' ) }\n\t\t\tvalue={ overlayMenu }\n\t\t\thelp={ __(\n\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t) }\n\t\t\tonChange={ ( value ) => setAttributes( { overlayMenu: value } ) }\n\t\t\tisBlock\n\t\t>\n\t\t\t<ToggleGroupControlOption value=\"never\" label={ __( 'Off' ) } />\n\t\t\t<ToggleGroupControlOption value=\"mobile\" label={ __( 'Mobile' ) } />\n\t\t\t<ToggleGroupControlOption value=\"always\" label={ __( 'Always' ) } />\n\t\t</ToggleGroupControl>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAGO;AACP,kBAAmB;AAejB;AALa,SAAR,yBAA2C;AAAA,EACjD;AAAA,EACA;AACD,GAAI;AACH,SACC;AAAA,IAAC,kBAAAA;AAAA,IAAA;AAAA,MACA,uBAAqB;AAAA,MACrB,yBAAuB;AAAA,MACvB,WAAQ,gBAAI,oBAAqB;AAAA,MACjC,kBAAa,gBAAI,8BAA+B;AAAA,MAChD,OAAQ;AAAA,MACR,UAAO;AAAA,QACN;AAAA,MACD;AAAA,MACA,UAAW,CAAE,UAAW,cAAe,EAAE,aAAa,MAAM,CAAE;AAAA,MAC9D,SAAO;AAAA,MAEP;AAAA,oDAAC,kBAAAC,wCAAA,EAAyB,OAAM,SAAQ,WAAQ,gBAAI,KAAM,GAAI;AAAA,QAC9D,4CAAC,kBAAAA,wCAAA,EAAyB,OAAM,UAAS,WAAQ,gBAAI,QAAS,GAAI;AAAA,QAClE,4CAAC,kBAAAA,wCAAA,EAAyB,OAAM,UAAS,WAAQ,gBAAI,QAAS,GAAI;AAAA;AAAA;AAAA,EACnE;AAEF;",
|
|
6
|
+
"names": ["ToggleGroupControl", "ToggleGroupControlOption"]
|
|
7
|
+
}
|
|
@@ -50,7 +50,9 @@ function ResponsiveWrapper({
|
|
|
50
50
|
overlayBackgroundColor,
|
|
51
51
|
overlayTextColor,
|
|
52
52
|
hasIcon,
|
|
53
|
-
icon
|
|
53
|
+
icon,
|
|
54
|
+
overlay,
|
|
55
|
+
onNavigateToEntityRecord
|
|
54
56
|
}) {
|
|
55
57
|
if (!isResponsive) {
|
|
56
58
|
return children;
|
|
@@ -86,6 +88,16 @@ function ResponsiveWrapper({
|
|
|
86
88
|
"aria-label": (0, import_i18n.__)("Menu")
|
|
87
89
|
}
|
|
88
90
|
};
|
|
91
|
+
const handleToggleClick = () => {
|
|
92
|
+
if (overlay && onNavigateToEntityRecord) {
|
|
93
|
+
onNavigateToEntityRecord({
|
|
94
|
+
postId: overlay,
|
|
95
|
+
postType: "wp_template_part"
|
|
96
|
+
});
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
onToggle(true);
|
|
100
|
+
};
|
|
89
101
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
90
102
|
!isOpen && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
91
103
|
import_components.Button,
|
|
@@ -94,7 +106,7 @@ function ResponsiveWrapper({
|
|
|
94
106
|
"aria-haspopup": "true",
|
|
95
107
|
"aria-label": hasIcon && (0, import_i18n.__)("Open menu"),
|
|
96
108
|
className: openButtonClasses,
|
|
97
|
-
onClick:
|
|
109
|
+
onClick: handleToggleClick,
|
|
98
110
|
children: [
|
|
99
111
|
hasIcon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_overlay_menu_icon.default, { icon }),
|
|
100
112
|
!hasIcon && (0, import_i18n.__)("Menu")
|
|
@@ -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} ) {\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\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={
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,mBAA4B;AAC5B,wBAAuB;AACvB,kBAAmB;AACnB,0BAAkC;AAKlC,+BAA4B;
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { close, Icon } from '@wordpress/icons';\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { getColorClassName } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport OverlayMenuIcon from './overlay-menu-icon';\n\nexport default function ResponsiveWrapper( {\n\tchildren,\n\tid,\n\tisOpen,\n\tisResponsive,\n\tonToggle,\n\tisHiddenByDefault,\n\toverlayBackgroundColor,\n\toverlayTextColor,\n\thasIcon,\n\ticon,\n\toverlay,\n\tonNavigateToEntityRecord,\n} ) {\n\tif ( ! isResponsive ) {\n\t\treturn children;\n\t}\n\n\tconst responsiveContainerClasses = clsx(\n\t\t'wp-block-navigation__responsive-container',\n\t\t{\n\t\t\t'has-text-color':\n\t\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t\t[ getColorClassName( 'color', overlayTextColor?.slug ) ]:\n\t\t\t\t!! overlayTextColor?.slug,\n\t\t\t'has-background':\n\t\t\t\t!! overlayBackgroundColor.color ||\n\t\t\t\toverlayBackgroundColor?.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\toverlayBackgroundColor?.slug\n\t\t\t) ]: !! overlayBackgroundColor?.slug,\n\t\t\t'is-menu-open': isOpen,\n\t\t\t'hidden-by-default': isHiddenByDefault,\n\t\t}\n\t);\n\n\tconst styles = {\n\t\tcolor: ! overlayTextColor?.slug && overlayTextColor?.color,\n\t\tbackgroundColor:\n\t\t\t! overlayBackgroundColor?.slug &&\n\t\t\toverlayBackgroundColor?.color &&\n\t\t\toverlayBackgroundColor.color,\n\t};\n\n\tconst openButtonClasses = clsx(\n\t\t'wp-block-navigation__responsive-container-open',\n\t\t{ 'always-shown': isHiddenByDefault }\n\t);\n\n\tconst modalId = `${ id }-modal`;\n\n\tconst dialogProps = {\n\t\tclassName: 'wp-block-navigation__responsive-dialog',\n\t\t...( isOpen && {\n\t\t\trole: 'dialog',\n\t\t\t'aria-modal': true,\n\t\t\t'aria-label': __( 'Menu' ),\n\t\t} ),\n\t};\n\n\tconst handleToggleClick = () => {\n\t\t// If an overlay template part is selected, navigate to it instead of toggling\n\t\tif ( overlay && onNavigateToEntityRecord ) {\n\t\t\tonNavigateToEntityRecord( {\n\t\t\t\tpostId: overlay,\n\t\t\t\tpostType: 'wp_template_part',\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\t\t// Otherwise, use normal toggle behavior\n\t\tonToggle( true );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isOpen && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\taria-label={ hasIcon && __( 'Open menu' ) }\n\t\t\t\t\tclassName={ openButtonClasses }\n\t\t\t\t\tonClick={ handleToggleClick }\n\t\t\t\t>\n\t\t\t\t\t{ hasIcon && <OverlayMenuIcon icon={ icon } /> }\n\t\t\t\t\t{ ! hasIcon && __( 'Menu' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\n\t\t\t<div\n\t\t\t\tclassName={ responsiveContainerClasses }\n\t\t\t\tstyle={ styles }\n\t\t\t\tid={ modalId }\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"wp-block-navigation__responsive-close\"\n\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t>\n\t\t\t\t\t<div { ...dialogProps }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation__responsive-container-close\"\n\t\t\t\t\t\t\taria-label={ hasIcon && __( 'Close menu' ) }\n\t\t\t\t\t\t\tonClick={ () => onToggle( false ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ hasIcon && <Icon icon={ close } /> }\n\t\t\t\t\t\t\t{ ! hasIcon && __( 'Close' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation__responsive-container-content\"\n\t\t\t\t\t\t\tid={ `${ modalId }-content` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,mBAA4B;AAC5B,wBAAuB;AACvB,kBAAmB;AACnB,0BAAkC;AAKlC,+BAA4B;AA6E1B;AA3Ea,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;AAEA,QAAM,iCAA6B,YAAAA;AAAA,IAClC;AAAA,IACA;AAAA,MACC,kBACC,CAAC,CAAE,iBAAiB,SAAS,CAAC,CAAE,kBAAkB;AAAA,MACnD,KAAE,uCAAmB,SAAS,kBAAkB,IAAK,CAAE,GACtD,CAAC,CAAE,kBAAkB;AAAA,MACtB,kBACC,CAAC,CAAE,uBAAuB,SAC1B,wBAAwB;AAAA,MACzB,KAAE;AAAA,QACD;AAAA,QACA,wBAAwB;AAAA,MACzB,CAAE,GAAG,CAAC,CAAE,wBAAwB;AAAA,MAChC,gBAAgB;AAAA,MAChB,qBAAqB;AAAA,IACtB;AAAA,EACD;AAEA,QAAM,SAAS;AAAA,IACd,OAAO,CAAE,kBAAkB,QAAQ,kBAAkB;AAAA,IACrD,iBACC,CAAE,wBAAwB,QAC1B,wBAAwB,SACxB,uBAAuB;AAAA,EACzB;AAEA,QAAM,wBAAoB,YAAAA;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,kBAAc,gBAAI,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,4EACG;AAAA,KAAE,UACH;AAAA,MAAC;AAAA;AAAA,QACA,uBAAqB;AAAA,QACrB,iBAAc;AAAA,QACd,cAAa,eAAW,gBAAI,WAAY;AAAA,QACxC,WAAY;AAAA,QACZ,SAAU;AAAA,QAER;AAAA,qBAAW,4CAAC,yBAAAC,SAAA,EAAgB,MAAc;AAAA,UAC1C,CAAE,eAAW,gBAAI,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,uDAAC,SAAM,GAAG,aACT;AAAA;AAAA,gBAAC;AAAA;AAAA,kBACA,uBAAqB;AAAA,kBACrB,WAAU;AAAA,kBACV,cAAa,eAAW,gBAAI,YAAa;AAAA,kBACzC,SAAU,MAAM,SAAU,KAAM;AAAA,kBAE9B;AAAA,+BAAW,4CAAC,qBAAK,MAAO,oBAAQ;AAAA,oBAChC,CAAE,eAAW,gBAAI,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": ["clsx", "OverlayMenuIcon"]
|
|
7
7
|
}
|
|
@@ -203,15 +203,15 @@ function NavigationLinkEdit({
|
|
|
203
203
|
[clientId, maxNestingLevel]
|
|
204
204
|
);
|
|
205
205
|
const { getBlocks } = (0, import_data.useSelect)(import_block_editor.store);
|
|
206
|
-
const {
|
|
207
|
-
clearBinding,
|
|
208
|
-
createBinding,
|
|
209
|
-
hasUrlBinding,
|
|
210
|
-
isBoundEntityAvailable
|
|
211
|
-
} = (0, import_shared.useEntityBinding)({
|
|
206
|
+
const { hasUrlBinding, isBoundEntityAvailable } = (0, import_shared.useEntityBinding)({
|
|
212
207
|
clientId,
|
|
213
208
|
attributes
|
|
214
209
|
});
|
|
210
|
+
const handleLinkChange = (0, import_shared.useHandleLinkChange)({
|
|
211
|
+
clientId,
|
|
212
|
+
attributes,
|
|
213
|
+
setAttributes
|
|
214
|
+
});
|
|
215
215
|
const [isInvalid, isDraft] = useIsInvalidLink(
|
|
216
216
|
kind,
|
|
217
217
|
type,
|
|
@@ -454,21 +454,7 @@ function NavigationLinkEdit({
|
|
|
454
454
|
},
|
|
455
455
|
anchor: popoverAnchor,
|
|
456
456
|
onRemove: removeLink,
|
|
457
|
-
onChange:
|
|
458
|
-
const {
|
|
459
|
-
isEntityLink,
|
|
460
|
-
attributes: updatedAttributes
|
|
461
|
-
} = (0, import_shared.updateAttributes)(
|
|
462
|
-
updatedValue,
|
|
463
|
-
setAttributes,
|
|
464
|
-
attributes
|
|
465
|
-
);
|
|
466
|
-
if (isEntityLink) {
|
|
467
|
-
createBinding(updatedAttributes);
|
|
468
|
-
} else {
|
|
469
|
-
clearBinding();
|
|
470
|
-
}
|
|
471
|
-
}
|
|
457
|
+
onChange: handleLinkChange
|
|
472
458
|
}
|
|
473
459
|
)
|
|
474
460
|
] }),
|