PluginProbe
Gutenberg / 22.3.0
Gutenberg v22.3.0
23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 7.4.0 All 402 releases
gutenberg / build / scripts / edit-post / index.js

index.js in Gutenberg 22.3.0, at build/scripts/edit-post/index.js

2,936 lines 116.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 var wp;
2 (wp ||= {}).editPost = (() => {
3 var __create = Object.create;
4 var __defProp = Object.defineProperty;
5 var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6 var __getOwnPropNames = Object.getOwnPropertyNames;
7 var __getProtoOf = Object.getPrototypeOf;
8 var __hasOwnProp = Object.prototype.hasOwnProperty;
9 var __commonJS = (cb, mod) => function __require() {
10 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11 };
12 var __export = (target, all) => {
13 for (var name in all)
14 __defProp(target, name, { get: all[name], enumerable: true });
15 };
16 var __copyProps = (to, from, except, desc) => {
17 if (from && typeof from === "object" || typeof from === "function") {
18 for (let key of __getOwnPropNames(from))
19 if (!__hasOwnProp.call(to, key) && key !== except)
20 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21 }
22 return to;
23 };
24 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25 // If the importer is in node compatibility mode or this is not an ESM
26 // file that has been converted to a CommonJS file using a Babel-
27 // compatible transform (i.e. "__esModule" has not been set), then set
28 // "default" to the CommonJS "module.exports" for node compatibility.
29 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
30 mod
31 ));
32 var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
33
34 // package-external:@wordpress/blocks
35 var require_blocks = __commonJS({
36 "package-external:@wordpress/blocks"(exports, module) {
37 module.exports = window.wp.blocks;
38 }
39 });
40
41 // package-external:@wordpress/block-library
42 var require_block_library = __commonJS({
43 "package-external:@wordpress/block-library"(exports, module) {
44 module.exports = window.wp.blockLibrary;
45 }
46 });
47
48 // package-external:@wordpress/deprecated
49 var require_deprecated = __commonJS({
50 "package-external:@wordpress/deprecated"(exports, module) {
51 module.exports = window.wp.deprecated;
52 }
53 });
54
55 // package-external:@wordpress/element
56 var require_element = __commonJS({
57 "package-external:@wordpress/element"(exports, module) {
58 module.exports = window.wp.element;
59 }
60 });
61
62 // package-external:@wordpress/data
63 var require_data = __commonJS({
64 "package-external:@wordpress/data"(exports, module) {
65 module.exports = window.wp.data;
66 }
67 });
68
69 // package-external:@wordpress/preferences
70 var require_preferences = __commonJS({
71 "package-external:@wordpress/preferences"(exports, module) {
72 module.exports = window.wp.preferences;
73 }
74 });
75
76 // package-external:@wordpress/widgets
77 var require_widgets = __commonJS({
78 "package-external:@wordpress/widgets"(exports, module) {
79 module.exports = window.wp.widgets;
80 }
81 });
82
83 // package-external:@wordpress/editor
84 var require_editor = __commonJS({
85 "package-external:@wordpress/editor"(exports, module) {
86 module.exports = window.wp.editor;
87 }
88 });
89
90 // package-external:@wordpress/i18n
91 var require_i18n = __commonJS({
92 "package-external:@wordpress/i18n"(exports, module) {
93 module.exports = window.wp.i18n;
94 }
95 });
96
97 // package-external:@wordpress/components
98 var require_components = __commonJS({
99 "package-external:@wordpress/components"(exports, module) {
100 module.exports = window.wp.components;
101 }
102 });
103
104 // vendor-external:react/jsx-runtime
105 var require_jsx_runtime = __commonJS({
106 "vendor-external:react/jsx-runtime"(exports, module) {
107 module.exports = window.ReactJSXRuntime;
108 }
109 });
110
111 // package-external:@wordpress/block-editor
112 var require_block_editor = __commonJS({
113 "package-external:@wordpress/block-editor"(exports, module) {
114 module.exports = window.wp.blockEditor;
115 }
116 });
117
118 // package-external:@wordpress/style-engine
119 var require_style_engine = __commonJS({
120 "package-external:@wordpress/style-engine"(exports, module) {
121 module.exports = window.wp.styleEngine;
122 }
123 });
124
125 // package-external:@wordpress/plugins
126 var require_plugins = __commonJS({
127 "package-external:@wordpress/plugins"(exports, module) {
128 module.exports = window.wp.plugins;
129 }
130 });
131
132 // package-external:@wordpress/primitives
133 var require_primitives = __commonJS({
134 "package-external:@wordpress/primitives"(exports, module) {
135 module.exports = window.wp.primitives;
136 }
137 });
138
139 // package-external:@wordpress/notices
140 var require_notices = __commonJS({
141 "package-external:@wordpress/notices"(exports, module) {
142 module.exports = window.wp.notices;
143 }
144 });
145
146 // package-external:@wordpress/commands
147 var require_commands = __commonJS({
148 "package-external:@wordpress/commands"(exports, module) {
149 module.exports = window.wp.commands;
150 }
151 });
152
153 // package-external:@wordpress/url
154 var require_url = __commonJS({
155 "package-external:@wordpress/url"(exports, module) {
156 module.exports = window.wp.url;
157 }
158 });
159
160 // package-external:@wordpress/html-entities
161 var require_html_entities = __commonJS({
162 "package-external:@wordpress/html-entities"(exports, module) {
163 module.exports = window.wp.htmlEntities;
164 }
165 });
166
167 // package-external:@wordpress/core-data
168 var require_core_data = __commonJS({
169 "package-external:@wordpress/core-data"(exports, module) {
170 module.exports = window.wp.coreData;
171 }
172 });
173
174 // package-external:@wordpress/compose
175 var require_compose = __commonJS({
176 "package-external:@wordpress/compose"(exports, module) {
177 module.exports = window.wp.compose;
178 }
179 });
180
181 // package-external:@wordpress/private-apis
182 var require_private_apis = __commonJS({
183 "package-external:@wordpress/private-apis"(exports, module) {
184 module.exports = window.wp.privateApis;
185 }
186 });
187
188 // package-external:@wordpress/keyboard-shortcuts
189 var require_keyboard_shortcuts = __commonJS({
190 "package-external:@wordpress/keyboard-shortcuts"(exports, module) {
191 module.exports = window.wp.keyboardShortcuts;
192 }
193 });
194
195 // package-external:@wordpress/api-fetch
196 var require_api_fetch = __commonJS({
197 "package-external:@wordpress/api-fetch"(exports, module) {
198 module.exports = window.wp.apiFetch;
199 }
200 });
201
202 // package-external:@wordpress/hooks
203 var require_hooks = __commonJS({
204 "package-external:@wordpress/hooks"(exports, module) {
205 module.exports = window.wp.hooks;
206 }
207 });
208
209 // package-external:@wordpress/keycodes
210 var require_keycodes = __commonJS({
211 "package-external:@wordpress/keycodes"(exports, module) {
212 module.exports = window.wp.keycodes;
213 }
214 });
215
216 // packages/edit-post/build-module/index.js
217 var index_exports = {};
218 __export(index_exports, {
219 PluginBlockSettingsMenuItem: () => PluginBlockSettingsMenuItem,
220 PluginDocumentSettingPanel: () => PluginDocumentSettingPanel,
221 PluginMoreMenuItem: () => PluginMoreMenuItem,
222 PluginPostPublishPanel: () => PluginPostPublishPanel,
223 PluginPostStatusInfo: () => PluginPostStatusInfo,
224 PluginPrePublishPanel: () => PluginPrePublishPanel,
225 PluginSidebar: () => PluginSidebar,
226 PluginSidebarMoreMenuItem: () => PluginSidebarMoreMenuItem,
227 __experimentalFullscreenModeClose: () => fullscreen_mode_close_default,
228 __experimentalMainDashboardButton: () => __experimentalMainDashboardButton,
229 __experimentalPluginPostExcerpt: () => __experimentalPluginPostExcerpt,
230 initializeEditor: () => initializeEditor,
231 reinitializeEditor: () => reinitializeEditor,
232 store: () => store
233 });
234 var import_blocks3 = __toESM(require_blocks());
235 var import_block_library2 = __toESM(require_block_library());
236 var import_deprecated4 = __toESM(require_deprecated());
237 var import_element13 = __toESM(require_element());
238 var import_data26 = __toESM(require_data());
239 var import_preferences11 = __toESM(require_preferences());
240 var import_widgets = __toESM(require_widgets());
241 var import_editor20 = __toESM(require_editor());
242
243 // node_modules/clsx/dist/clsx.mjs
244 function r(e) {
245 var t, f, n = "";
246 if ("string" == typeof e || "number" == typeof e) n += e;
247 else if ("object" == typeof e) if (Array.isArray(e)) {
248 var o = e.length;
249 for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
250 } else for (f in e) e[f] && (n && (n += " "), n += f);
251 return n;
252 }
253 function clsx() {
254 for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
255 return n;
256 }
257 var clsx_default = clsx;
258
259 // packages/admin-ui/build-module/navigable-region/index.js
260 var import_element = __toESM(require_element());
261 var import_jsx_runtime = __toESM(require_jsx_runtime());
262 var NavigableRegion = (0, import_element.forwardRef)(
263 ({ children, className, ariaLabel, as: Tag = "div", ...props }, ref) => {
264 return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
265 Tag,
266 {
267 ref,
268 className: clsx_default("admin-ui-navigable-region", className),
269 "aria-label": ariaLabel,
270 role: "region",
271 tabIndex: "-1",
272 ...props,
273 children
274 }
275 );
276 }
277 );
278 NavigableRegion.displayName = "NavigableRegion";
279 var navigable_region_default = NavigableRegion;
280
281 // packages/edit-post/build-module/components/layout/index.js
282 var import_editor18 = __toESM(require_editor());
283 var import_data25 = __toESM(require_data());
284 var import_block_editor2 = __toESM(require_block_editor());
285
286 // packages/global-styles-engine/build-module/utils/common.js
287 var import_style_engine = __toESM(require_style_engine());
288 var ROOT_BLOCK_SELECTOR = "body";
289 var ROOT_CSS_PROPERTIES_SELECTOR = ":root";
290
291 // packages/global-styles-engine/build-module/core/render.js
292 var import_blocks = __toESM(require_blocks());
293 var import_style_engine2 = __toESM(require_style_engine());
294 var import_data = __toESM(require_data());
295
296 // packages/global-styles-engine/build-module/utils/spacing.js
297 function getSpacingPresetCssVar(value) {
298 if (!value) {
299 return;
300 }
301 const slug = value.match(/var:preset\|spacing\|(.+)/);
302 if (!slug) {
303 return value;
304 }
305 return `var(--wp--preset--spacing--${slug[1]})`;
306 }
307
308 // packages/global-styles-engine/build-module/utils/gap.js
309 function getGapBoxControlValueFromStyle(blockGapValue) {
310 if (!blockGapValue) {
311 return null;
312 }
313 const isValueString = typeof blockGapValue === "string";
314 return {
315 top: isValueString ? blockGapValue : blockGapValue?.top,
316 left: isValueString ? blockGapValue : blockGapValue?.left
317 };
318 }
319 function getGapCSSValue(blockGapValue, defaultValue = "0") {
320 const blockGapBoxControlValue = getGapBoxControlValueFromStyle(blockGapValue);
321 if (!blockGapBoxControlValue) {
322 return null;
323 }
324 const row = getSpacingPresetCssVar(blockGapBoxControlValue?.top) || defaultValue;
325 const column = getSpacingPresetCssVar(blockGapBoxControlValue?.left) || defaultValue;
326 return row === column ? row : `${row} ${column}`;
327 }
328
329 // packages/global-styles-engine/build-module/utils/layout.js
330 var LAYOUT_DEFINITIONS = {
331 default: {
332 name: "default",
333 slug: "flow",
334 className: "is-layout-flow",
335 baseStyles: [
336 {
337 selector: " > .alignleft",
338 rules: {
339 float: "left",
340 "margin-inline-start": "0",
341 "margin-inline-end": "2em"
342 }
343 },
344 {
345 selector: " > .alignright",
346 rules: {
347 float: "right",
348 "margin-inline-start": "2em",
349 "margin-inline-end": "0"
350 }
351 },
352 {
353 selector: " > .aligncenter",
354 rules: {
355 "margin-left": "auto !important",
356 "margin-right": "auto !important"
357 }
358 }
359 ],
360 spacingStyles: [
361 {
362 selector: " > :first-child",
363 rules: {
364 "margin-block-start": "0"
365 }
366 },
367 {
368 selector: " > :last-child",
369 rules: {
370 "margin-block-end": "0"
371 }
372 },
373 {
374 selector: " > *",
375 rules: {
376 "margin-block-start": null,
377 "margin-block-end": "0"
378 }
379 }
380 ]
381 },
382 constrained: {
383 name: "constrained",
384 slug: "constrained",
385 className: "is-layout-constrained",
386 baseStyles: [
387 {
388 selector: " > .alignleft",
389 rules: {
390 float: "left",
391 "margin-inline-start": "0",
392 "margin-inline-end": "2em"
393 }
394 },
395 {
396 selector: " > .alignright",
397 rules: {
398 float: "right",
399 "margin-inline-start": "2em",
400 "margin-inline-end": "0"
401 }
402 },
403 {
404 selector: " > .aligncenter",
405 rules: {
406 "margin-left": "auto !important",
407 "margin-right": "auto !important"
408 }
409 },
410 {
411 selector: " > :where(:not(.alignleft):not(.alignright):not(.alignfull))",
412 rules: {
413 "max-width": "var(--wp--style--global--content-size)",
414 "margin-left": "auto !important",
415 "margin-right": "auto !important"
416 }
417 },
418 {
419 selector: " > .alignwide",
420 rules: {
421 "max-width": "var(--wp--style--global--wide-size)"
422 }
423 }
424 ],
425 spacingStyles: [
426 {
427 selector: " > :first-child",
428 rules: {
429 "margin-block-start": "0"
430 }
431 },
432 {
433 selector: " > :last-child",
434 rules: {
435 "margin-block-end": "0"
436 }
437 },
438 {
439 selector: " > *",
440 rules: {
441 "margin-block-start": null,
442 "margin-block-end": "0"
443 }
444 }
445 ]
446 },
447 flex: {
448 name: "flex",
449 slug: "flex",
450 className: "is-layout-flex",
451 displayMode: "flex",
452 baseStyles: [
453 {
454 selector: "",
455 rules: {
456 "flex-wrap": "wrap",
457 "align-items": "center"
458 }
459 },
460 {
461 selector: " > :is(*, div)",
462 // :is(*, div) instead of just * increases the specificity by 001.
463 rules: {
464 margin: "0"
465 }
466 }
467 ],
468 spacingStyles: [
469 {
470 selector: "",
471 rules: {
472 gap: null
473 }
474 }
475 ]
476 },
477 grid: {
478 name: "grid",
479 slug: "grid",
480 className: "is-layout-grid",
481 displayMode: "grid",
482 baseStyles: [
483 {
484 selector: " > :is(*, div)",
485 // :is(*, div) instead of just * increases the specificity by 001.
486 rules: {
487 margin: "0"
488 }
489 }
490 ],
491 spacingStyles: [
492 {
493 selector: "",
494 rules: {
495 gap: null
496 }
497 }
498 ]
499 }
500 };
501
502 // packages/global-styles-engine/build-module/core/render.js
503 function getLayoutStyles({
504 layoutDefinitions = LAYOUT_DEFINITIONS,
505 style,
506 selector,
507 hasBlockGapSupport,
508 hasFallbackGapSupport,
509 fallbackGapValue
510 }) {
511 let ruleset = "";
512 let gapValue = hasBlockGapSupport ? getGapCSSValue(style?.spacing?.blockGap) : "";
513 if (hasFallbackGapSupport) {
514 if (selector === ROOT_BLOCK_SELECTOR) {
515 gapValue = !gapValue ? "0.5em" : gapValue;
516 } else if (!hasBlockGapSupport && fallbackGapValue) {
517 gapValue = fallbackGapValue;
518 }
519 }
520 if (gapValue && layoutDefinitions) {
521 Object.values(layoutDefinitions).forEach(
522 ({ className, name, spacingStyles }) => {
523 if (!hasBlockGapSupport && "flex" !== name && "grid" !== name) {
524 return;
525 }
526 if (spacingStyles?.length) {
527 spacingStyles.forEach((spacingStyle) => {
528 const declarations = [];
529 if (spacingStyle.rules) {
530 Object.entries(spacingStyle.rules).forEach(
531 ([cssProperty, cssValue]) => {
532 declarations.push(
533 `${cssProperty}: ${cssValue ? cssValue : gapValue}`
534 );
535 }
536 );
537 }
538 if (declarations.length) {
539 let combinedSelector = "";
540 if (!hasBlockGapSupport) {
541 combinedSelector = selector === ROOT_BLOCK_SELECTOR ? `:where(.${className}${spacingStyle?.selector || ""})` : `:where(${selector}.${className}${spacingStyle?.selector || ""})`;
542 } else {
543 combinedSelector = selector === ROOT_BLOCK_SELECTOR ? `:root :where(.${className})${spacingStyle?.selector || ""}` : `:root :where(${selector}-${className})${spacingStyle?.selector || ""}`;
544 }
545 ruleset += `${combinedSelector} { ${declarations.join(
546 "; "
547 )}; }`;
548 }
549 });
550 }
551 }
552 );
553 if (selector === ROOT_BLOCK_SELECTOR && hasBlockGapSupport) {
554 ruleset += `${ROOT_CSS_PROPERTIES_SELECTOR} { --wp--style--block-gap: ${gapValue}; }`;
555 }
556 }
557 if (selector === ROOT_BLOCK_SELECTOR && layoutDefinitions) {
558 const validDisplayModes = ["block", "flex", "grid"];
559 Object.values(layoutDefinitions).forEach(
560 ({ className, displayMode, baseStyles }) => {
561 if (displayMode && validDisplayModes.includes(displayMode)) {
562 ruleset += `${selector} .${className} { display:${displayMode}; }`;
563 }
564 if (baseStyles?.length) {
565 baseStyles.forEach((baseStyle) => {
566 const declarations = [];
567 if (baseStyle.rules) {
568 Object.entries(baseStyle.rules).forEach(
569 ([cssProperty, cssValue]) => {
570 declarations.push(
571 `${cssProperty}: ${cssValue}`
572 );
573 }
574 );
575 }
576 if (declarations.length) {
577 const combinedSelector = `.${className}${baseStyle?.selector || ""}`;
578 ruleset += `${combinedSelector} { ${declarations.join(
579 "; "
580 )}; }`;
581 }
582 });
583 }
584 }
585 );
586 }
587 return ruleset;
588 }
589
590 // packages/edit-post/build-module/components/layout/index.js
591 var import_plugins = __toESM(require_plugins());
592 var import_i18n14 = __toESM(require_i18n());
593 var import_element12 = __toESM(require_element());
594
595 // packages/icons/build-module/library/arrow-up-left.js
596 var import_primitives = __toESM(require_primitives());
597 var import_jsx_runtime2 = __toESM(require_jsx_runtime());
598 var arrow_up_left_default = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives.Path, { d: "M14 6H6v8h1.5V8.5L17 18l1-1-9.5-9.5H14V6Z" }) });
599
600 // packages/icons/build-module/library/chevron-down.js
601 var import_primitives2 = __toESM(require_primitives());
602 var import_jsx_runtime3 = __toESM(require_jsx_runtime());
603 var chevron_down_default = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives2.SVG, { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives2.Path, { d: "M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z" }) });
604
605 // packages/icons/build-module/library/chevron-up.js
606 var import_primitives3 = __toESM(require_primitives());
607 var import_jsx_runtime4 = __toESM(require_jsx_runtime());
608 var chevron_up_default = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives3.SVG, { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives3.Path, { d: "M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z" }) });
609
610 // packages/icons/build-module/library/fullscreen.js
611 var import_primitives4 = __toESM(require_primitives());
612 var import_jsx_runtime5 = __toESM(require_jsx_runtime());
613 var fullscreen_default = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives4.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives4.Path, { d: "M6 4a2 2 0 0 0-2 2v3h1.5V6a.5.5 0 0 1 .5-.5h3V4H6Zm3 14.5H6a.5.5 0 0 1-.5-.5v-3H4v3a2 2 0 0 0 2 2h3v-1.5Zm6 1.5v-1.5h3a.5.5 0 0 0 .5-.5v-3H20v3a2 2 0 0 1-2 2h-3Zm3-16a2 2 0 0 1 2 2v3h-1.5V6a.5.5 0 0 0-.5-.5h-3V4h3Z" }) });
614
615 // packages/icons/build-module/library/wordpress.js
616 var import_primitives5 = __toESM(require_primitives());
617 var import_jsx_runtime6 = __toESM(require_jsx_runtime());
618 var wordpress_default = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives5.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "-2 -2 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives5.Path, { d: "M20 10c0-5.51-4.49-10-10-10C4.48 0 0 4.49 0 10c0 5.52 4.48 10 10 10 5.51 0 10-4.48 10-10zM7.78 15.37L4.37 6.22c.55-.02 1.17-.08 1.17-.08.5-.06.44-1.13-.06-1.11 0 0-1.45.11-2.37.11-.18 0-.37 0-.58-.01C4.12 2.69 6.87 1.11 10 1.11c2.33 0 4.45.87 6.05 2.34-.68-.11-1.65.39-1.65 1.58 0 .74.45 1.36.9 2.1.35.61.55 1.36.55 2.46 0 1.49-1.4 5-1.4 5l-3.03-8.37c.54-.02.82-.17.82-.17.5-.05.44-1.25-.06-1.22 0 0-1.44.12-2.38.12-.87 0-2.33-.12-2.33-.12-.5-.03-.56 1.2-.06 1.22l.92.08 1.26 3.41zM17.41 10c.24-.64.74-1.87.43-4.25.7 1.29 1.05 2.71 1.05 4.25 0 3.29-1.73 6.24-4.4 7.78.97-2.59 1.94-5.2 2.92-7.78zM6.1 18.09C3.12 16.65 1.11 13.53 1.11 10c0-1.3.23-2.48.72-3.59C3.25 10.3 4.67 14.2 6.1 18.09zm4.03-6.63l2.58 6.98c-.86.29-1.76.45-2.71.45-.79 0-1.57-.11-2.29-.33.81-2.38 1.62-4.74 2.42-7.1z" }) });
619
620 // packages/edit-post/build-module/components/layout/index.js
621 var import_notices3 = __toESM(require_notices());
622 var import_preferences10 = __toESM(require_preferences());
623 var import_commands2 = __toESM(require_commands());
624 var import_block_library = __toESM(require_block_library());
625 var import_url5 = __toESM(require_url());
626 var import_html_entities = __toESM(require_html_entities());
627 var import_core_data6 = __toESM(require_core_data());
628 var import_components9 = __toESM(require_components());
629 var import_compose3 = __toESM(require_compose());
630
631 // packages/edit-post/build-module/components/back-button/index.js
632 var import_editor2 = __toESM(require_editor());
633 var import_components2 = __toESM(require_components());
634
635 // packages/edit-post/build-module/components/back-button/fullscreen-mode-close.js
636 var import_data2 = __toESM(require_data());
637 var import_components = __toESM(require_components());
638 var import_i18n = __toESM(require_i18n());
639 var import_url = __toESM(require_url());
640 var import_editor = __toESM(require_editor());
641 var import_core_data = __toESM(require_core_data());
642 var import_compose = __toESM(require_compose());
643 var import_jsx_runtime7 = __toESM(require_jsx_runtime());
644 var siteIconVariants = {
645 edit: {
646 clipPath: "inset(0% round 0px)"
647 },
648 hover: {
649 clipPath: "inset( 22% round 2px )"
650 },
651 tap: {
652 clipPath: "inset(0% round 0px)"
653 }
654 };
655 var toggleHomeIconVariants = {
656 edit: {
657 opacity: 0,
658 scale: 0.2
659 },
660 hover: {
661 opacity: 1,
662 scale: 1,
663 clipPath: "inset( 22% round 2px )"
664 }
665 };
666 function FullscreenModeClose({ showTooltip, icon, href, initialPost }) {
667 const { isRequestingSiteIcon, postType, siteIconUrl } = (0, import_data2.useSelect)(
668 (select3) => {
669 const { getCurrentPostType } = select3(import_editor.store);
670 const { getEntityRecord, getPostType, isResolving } = select3(import_core_data.store);
671 const siteData = getEntityRecord("root", "__unstableBase", void 0) || {};
672 const _postType = initialPost?.type || getCurrentPostType();
673 return {
674 isRequestingSiteIcon: isResolving("getEntityRecord", [
675 "root",
676 "__unstableBase",
677 void 0
678 ]),
679 postType: getPostType(_postType),
680 siteIconUrl: siteData.site_icon_url
681 };
682 },
683 [initialPost?.type]
684 );
685 const disableMotion = (0, import_compose.useReducedMotion)();
686 const transition = {
687 duration: disableMotion ? 0 : 0.2
688 };
689 if (!postType) {
690 return null;
691 }
692 let siteIconContent;
693 if (isRequestingSiteIcon && !siteIconUrl) {
694 siteIconContent = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "edit-post-fullscreen-mode-close-site-icon__image" });
695 } else if (siteIconUrl) {
696 siteIconContent = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
697 "img",
698 {
699 className: "edit-post-fullscreen-mode-close-site-icon__image",
700 alt: (0, import_i18n.__)("Site Icon"),
701 src: siteIconUrl
702 }
703 );
704 } else {
705 siteIconContent = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
706 import_components.Icon,
707 {
708 className: "edit-post-fullscreen-mode-close-site-icon__icon",
709 icon: wordpress_default,
710 size: 48
711 }
712 );
713 }
714 const buttonIcon = icon ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_components.Icon, { size: "36px", icon }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "edit-post-fullscreen-mode-close-site-icon", children: siteIconContent });
715 const classes = clsx_default("edit-post-fullscreen-mode-close", {
716 "has-icon": siteIconUrl
717 });
718 const buttonHref = href ?? (0, import_url.addQueryArgs)("edit.php", {
719 post_type: postType.slug
720 });
721 const buttonLabel = postType?.labels?.view_items ?? (0, import_i18n.__)("Back");
722 return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
723 import_components.__unstableMotion.div,
724 {
725 className: "edit-post-fullscreen-mode-close__view-mode-toggle",
726 animate: "edit",
727 initial: "edit",
728 whileHover: "hover",
729 whileTap: "tap",
730 transition,
731 children: [
732 /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
733 import_components.Button,
734 {
735 __next40pxDefaultSize: true,
736 className: classes,
737 href: buttonHref,
738 label: buttonLabel,
739 showTooltip,
740 tooltipPosition: "middle right",
741 children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_components.__unstableMotion.div, { variants: !disableMotion && siteIconVariants, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "edit-post-fullscreen-mode-close__view-mode-toggle-icon", children: buttonIcon }) })
742 }
743 ),
744 /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
745 import_components.__unstableMotion.div,
746 {
747 className: clsx_default(
748 "edit-post-fullscreen-mode-close__back-icon",
749 {
750 "has-site-icon": siteIconUrl
751 }
752 ),
753 variants: !disableMotion && toggleHomeIconVariants,
754 children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_components.Icon, { icon: arrow_up_left_default })
755 }
756 )
757 ]
758 }
759 );
760 }
761 var fullscreen_mode_close_default = FullscreenModeClose;
762
763 // packages/edit-post/build-module/lock-unlock.js
764 var import_private_apis = __toESM(require_private_apis());
765 var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
766 "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
767 "@wordpress/edit-post"
768 );
769
770 // packages/edit-post/build-module/components/back-button/index.js
771 var import_jsx_runtime8 = __toESM(require_jsx_runtime());
772 var { BackButton: BackButtonFill } = unlock(import_editor2.privateApis);
773 var slideX = {
774 hidden: { x: "-100%" },
775 distractionFreeInactive: { x: 0 },
776 hover: { x: 0, transition: { type: "tween", delay: 0.2 } }
777 };
778 function BackButton({ initialPost }) {
779 return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(BackButtonFill, { children: ({ length }) => length <= 1 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
780 import_components2.__unstableMotion.div,
781 {
782 variants: slideX,
783 transition: { type: "tween", delay: 0.8 },
784 children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
785 fullscreen_mode_close_default,
786 {
787 showTooltip: true,
788 initialPost
789 }
790 )
791 }
792 ) });
793 }
794 var back_button_default = BackButton;
795
796 // packages/edit-post/build-module/components/editor-initialization/listener-hooks.js
797 var import_data3 = __toESM(require_data());
798 var import_element2 = __toESM(require_element());
799 var import_editor3 = __toESM(require_editor());
800 var import_core_data2 = __toESM(require_core_data());
801
802 // packages/edit-post/build-module/store/constants.js
803 var STORE_NAME = "core/edit-post";
804 var VIEW_AS_LINK_SELECTOR = "#wp-admin-bar-view a";
805 var VIEW_AS_PREVIEW_LINK_SELECTOR = "#wp-admin-bar-preview a";
806
807 // packages/edit-post/build-module/components/editor-initialization/listener-hooks.js
808 var useUpdatePostLinkListener = () => {
809 const { isViewable, newPermalink } = (0, import_data3.useSelect)((select3) => {
810 const { getPostType } = select3(import_core_data2.store);
811 const { getCurrentPost, getEditedPostAttribute } = select3(import_editor3.store);
812 const postType = getPostType(getEditedPostAttribute("type"));
813 return {
814 isViewable: postType?.viewable,
815 newPermalink: getCurrentPost().link
816 };
817 }, []);
818 const nodeToUpdateRef = (0, import_element2.useRef)();
819 (0, import_element2.useEffect)(() => {
820 nodeToUpdateRef.current = document.querySelector(VIEW_AS_PREVIEW_LINK_SELECTOR) || document.querySelector(VIEW_AS_LINK_SELECTOR);
821 }, []);
822 (0, import_element2.useEffect)(() => {
823 if (!newPermalink || !nodeToUpdateRef.current) {
824 return;
825 }
826 if (!isViewable) {
827 nodeToUpdateRef.current.style.display = "none";
828 return;
829 }
830 nodeToUpdateRef.current.style.display = "";
831 nodeToUpdateRef.current.setAttribute("href", newPermalink);
832 }, [newPermalink, isViewable]);
833 };
834
835 // packages/edit-post/build-module/components/editor-initialization/index.js
836 function EditorInitialization() {
837 useUpdatePostLinkListener();
838 return null;
839 }
840
841 // packages/edit-post/build-module/components/keyboard-shortcuts/index.js
842 var import_element3 = __toESM(require_element());
843 var import_data7 = __toESM(require_data());
844 var import_keyboard_shortcuts = __toESM(require_keyboard_shortcuts());
845 var import_i18n3 = __toESM(require_i18n());
846
847 // packages/edit-post/build-module/store/index.js
848 var import_data6 = __toESM(require_data());
849
850 // packages/edit-post/build-module/store/reducer.js
851 var import_data4 = __toESM(require_data());
852 function isSavingMetaBoxes(state = false, action) {
853 switch (action.type) {
854 case "REQUEST_META_BOX_UPDATES":
855 return true;
856 case "META_BOX_UPDATES_SUCCESS":
857 case "META_BOX_UPDATES_FAILURE":
858 return false;
859 default:
860 return state;
861 }
862 }
863 function mergeMetaboxes(metaboxes = [], newMetaboxes) {
864 const mergedMetaboxes = [...metaboxes];
865 for (const metabox of newMetaboxes) {
866 const existing = mergedMetaboxes.findIndex(
867 (box) => box.id === metabox.id
868 );
869 if (existing !== -1) {
870 mergedMetaboxes[existing] = metabox;
871 } else {
872 mergedMetaboxes.push(metabox);
873 }
874 }
875 return mergedMetaboxes;
876 }
877 function metaBoxLocations(state = {}, action) {
878 switch (action.type) {
879 case "SET_META_BOXES_PER_LOCATIONS": {
880 const newState = { ...state };
881 for (const [location, metaboxes] of Object.entries(
882 action.metaBoxesPerLocation
883 )) {
884 newState[location] = mergeMetaboxes(
885 newState[location],
886 metaboxes
887 );
888 }
889 return newState;
890 }
891 }
892 return state;
893 }
894 function metaBoxesInitialized(state = false, action) {
895 switch (action.type) {
896 case "META_BOXES_INITIALIZED":
897 return true;
898 }
899 return state;
900 }
901 var metaBoxes = (0, import_data4.combineReducers)({
902 isSaving: isSavingMetaBoxes,
903 locations: metaBoxLocations,
904 initialized: metaBoxesInitialized
905 });
906 var reducer_default = (0, import_data4.combineReducers)({
907 metaBoxes
908 });
909
910 // packages/edit-post/build-module/store/actions.js
911 var actions_exports = {};
912 __export(actions_exports, {
913 __experimentalSetPreviewDeviceType: () => __experimentalSetPreviewDeviceType,
914 __unstableCreateTemplate: () => __unstableCreateTemplate,
915 closeGeneralSidebar: () => closeGeneralSidebar,
916 closeModal: () => closeModal,
917 closePublishSidebar: () => closePublishSidebar,
918 hideBlockTypes: () => hideBlockTypes,
919 initializeMetaBoxes: () => initializeMetaBoxes,
920 metaBoxUpdatesFailure: () => metaBoxUpdatesFailure,
921 metaBoxUpdatesSuccess: () => metaBoxUpdatesSuccess,
922 openGeneralSidebar: () => openGeneralSidebar,
923 openModal: () => openModal,
924 openPublishSidebar: () => openPublishSidebar,
925 removeEditorPanel: () => removeEditorPanel,
926 requestMetaBoxUpdates: () => requestMetaBoxUpdates,
927 setAvailableMetaBoxesPerLocation: () => setAvailableMetaBoxesPerLocation,
928 setIsEditingTemplate: () => setIsEditingTemplate,
929 setIsInserterOpened: () => setIsInserterOpened,
930 setIsListViewOpened: () => setIsListViewOpened,
931 showBlockTypes: () => showBlockTypes,
932 switchEditorMode: () => switchEditorMode,
933 toggleDistractionFree: () => toggleDistractionFree,
934 toggleEditorPanelEnabled: () => toggleEditorPanelEnabled,
935 toggleEditorPanelOpened: () => toggleEditorPanelOpened,
936 toggleFeature: () => toggleFeature,
937 toggleFullscreenMode: () => toggleFullscreenMode,
938 togglePinnedPluginItem: () => togglePinnedPluginItem,
939 togglePublishSidebar: () => togglePublishSidebar,
940 updatePreferredStyleVariations: () => updatePreferredStyleVariations
941 });
942 var import_api_fetch = __toESM(require_api_fetch());
943 var import_preferences = __toESM(require_preferences());
944 var import_editor4 = __toESM(require_editor());
945 var import_deprecated = __toESM(require_deprecated());
946 var import_hooks = __toESM(require_hooks());
947 var import_core_data3 = __toESM(require_core_data());
948 var import_notices = __toESM(require_notices());
949 var import_i18n2 = __toESM(require_i18n());
950
951 // packages/edit-post/build-module/utils/meta-boxes.js
952 var getMetaBoxContainer = (location) => {
953 const area = document.querySelector(
954 `.edit-post-meta-boxes-area.is-${location} .metabox-location-${location}`
955 );
956 if (area) {
957 return area;
958 }
959 return document.querySelector("#metaboxes .metabox-location-" + location);
960 };
961
962 // packages/edit-post/build-module/store/actions.js
963 var { interfaceStore } = unlock(import_editor4.privateApis);
964 var openGeneralSidebar = (name) => ({ registry }) => {
965 registry.dispatch(interfaceStore).enableComplementaryArea("core", name);
966 };
967 var closeGeneralSidebar = () => ({ registry }) => registry.dispatch(interfaceStore).disableComplementaryArea("core");
968 var openModal = (name) => ({ registry }) => {
969 (0, import_deprecated.default)("select( 'core/edit-post' ).openModal( name )", {
970 since: "6.3",
971 alternative: "select( 'core/interface').openModal( name )"
972 });
973 return registry.dispatch(interfaceStore).openModal(name);
974 };
975 var closeModal = () => ({ registry }) => {
976 (0, import_deprecated.default)("select( 'core/edit-post' ).closeModal()", {
977 since: "6.3",
978 alternative: "select( 'core/interface').closeModal()"
979 });
980 return registry.dispatch(interfaceStore).closeModal();
981 };
982 var openPublishSidebar = () => ({ registry }) => {
983 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).openPublishSidebar", {
984 since: "6.6",
985 alternative: "dispatch( 'core/editor').openPublishSidebar"
986 });
987 registry.dispatch(import_editor4.store).openPublishSidebar();
988 };
989 var closePublishSidebar = () => ({ registry }) => {
990 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).closePublishSidebar", {
991 since: "6.6",
992 alternative: "dispatch( 'core/editor').closePublishSidebar"
993 });
994 registry.dispatch(import_editor4.store).closePublishSidebar();
995 };
996 var togglePublishSidebar = () => ({ registry }) => {
997 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).togglePublishSidebar", {
998 since: "6.6",
999 alternative: "dispatch( 'core/editor').togglePublishSidebar"
1000 });
1001 registry.dispatch(import_editor4.store).togglePublishSidebar();
1002 };
1003 var toggleEditorPanelEnabled = (panelName) => ({ registry }) => {
1004 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).toggleEditorPanelEnabled", {
1005 since: "6.5",
1006 alternative: "dispatch( 'core/editor').toggleEditorPanelEnabled"
1007 });
1008 registry.dispatch(import_editor4.store).toggleEditorPanelEnabled(panelName);
1009 };
1010 var toggleEditorPanelOpened = (panelName) => ({ registry }) => {
1011 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).toggleEditorPanelOpened", {
1012 since: "6.5",
1013 alternative: "dispatch( 'core/editor').toggleEditorPanelOpened"
1014 });
1015 registry.dispatch(import_editor4.store).toggleEditorPanelOpened(panelName);
1016 };
1017 var removeEditorPanel = (panelName) => ({ registry }) => {
1018 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).removeEditorPanel", {
1019 since: "6.5",
1020 alternative: "dispatch( 'core/editor').removeEditorPanel"
1021 });
1022 registry.dispatch(import_editor4.store).removeEditorPanel(panelName);
1023 };
1024 var toggleFeature = (feature) => ({ registry }) => registry.dispatch(import_preferences.store).toggle("core/edit-post", feature);
1025 var switchEditorMode = (mode) => ({ registry }) => {
1026 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).switchEditorMode", {
1027 since: "6.6",
1028 alternative: "dispatch( 'core/editor').switchEditorMode"
1029 });
1030 registry.dispatch(import_editor4.store).switchEditorMode(mode);
1031 };
1032 var togglePinnedPluginItem = (pluginName) => ({ registry }) => {
1033 const isPinned = registry.select(interfaceStore).isItemPinned("core", pluginName);
1034 registry.dispatch(interfaceStore)[isPinned ? "unpinItem" : "pinItem"]("core", pluginName);
1035 };
1036 function updatePreferredStyleVariations() {
1037 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).updatePreferredStyleVariations", {
1038 since: "6.6",
1039 hint: "Preferred Style Variations are not supported anymore."
1040 });
1041 return { type: "NOTHING" };
1042 }
1043 var showBlockTypes = (blockNames) => ({ registry }) => {
1044 unlock(registry.dispatch(import_editor4.store)).showBlockTypes(blockNames);
1045 };
1046 var hideBlockTypes = (blockNames) => ({ registry }) => {
1047 unlock(registry.dispatch(import_editor4.store)).hideBlockTypes(blockNames);
1048 };
1049 function setAvailableMetaBoxesPerLocation(metaBoxesPerLocation) {
1050 return {
1051 type: "SET_META_BOXES_PER_LOCATIONS",
1052 metaBoxesPerLocation
1053 };
1054 }
1055 var requestMetaBoxUpdates = () => async ({ registry, select: select3, dispatch: dispatch2 }) => {
1056 dispatch2({
1057 type: "REQUEST_META_BOX_UPDATES"
1058 });
1059 if (window.tinyMCE) {
1060 window.tinyMCE.triggerSave();
1061 }
1062 const baseFormData = new window.FormData(
1063 document.querySelector(".metabox-base-form")
1064 );
1065 const postId = baseFormData.get("post_ID");
1066 const postType = baseFormData.get("post_type");
1067 const post = registry.select(import_core_data3.store).getEditedEntityRecord("postType", postType, postId);
1068 const additionalData = [
1069 post.comment_status ? ["comment_status", post.comment_status] : false,
1070 post.ping_status ? ["ping_status", post.ping_status] : false,
1071 post.sticky ? ["sticky", post.sticky] : false,
1072 post.author ? ["post_author", post.author] : false
1073 ].filter(Boolean);
1074 const activeMetaBoxLocations = select3.getActiveMetaBoxLocations();
1075 const formDataToMerge = [
1076 baseFormData,
1077 ...activeMetaBoxLocations.map(
1078 (location) => new window.FormData(getMetaBoxContainer(location))
1079 )
1080 ];
1081 const formData = formDataToMerge.reduce((memo, currentFormData) => {
1082 for (const [key, value] of currentFormData) {
1083 memo.append(key, value);
1084 }
1085 return memo;
1086 }, new window.FormData());
1087 additionalData.forEach(
1088 ([key, value]) => formData.append(key, value)
1089 );
1090 try {
1091 await (0, import_api_fetch.default)({
1092 url: window._wpMetaBoxUrl,
1093 method: "POST",
1094 body: formData,
1095 parse: false
1096 });
1097 dispatch2.metaBoxUpdatesSuccess();
1098 } catch {
1099 dispatch2.metaBoxUpdatesFailure();
1100 }
1101 };
1102 function metaBoxUpdatesSuccess() {
1103 return {
1104 type: "META_BOX_UPDATES_SUCCESS"
1105 };
1106 }
1107 function metaBoxUpdatesFailure() {
1108 return {
1109 type: "META_BOX_UPDATES_FAILURE"
1110 };
1111 }
1112 var __experimentalSetPreviewDeviceType = (deviceType) => ({ registry }) => {
1113 (0, import_deprecated.default)(
1114 "dispatch( 'core/edit-post' ).__experimentalSetPreviewDeviceType",
1115 {
1116 since: "6.5",
1117 version: "6.7",
1118 hint: "registry.dispatch( editorStore ).setDeviceType"
1119 }
1120 );
1121 registry.dispatch(import_editor4.store).setDeviceType(deviceType);
1122 };
1123 var setIsInserterOpened = (value) => ({ registry }) => {
1124 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).setIsInserterOpened", {
1125 since: "6.5",
1126 alternative: "dispatch( 'core/editor').setIsInserterOpened"
1127 });
1128 registry.dispatch(import_editor4.store).setIsInserterOpened(value);
1129 };
1130 var setIsListViewOpened = (isOpen) => ({ registry }) => {
1131 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).setIsListViewOpened", {
1132 since: "6.5",
1133 alternative: "dispatch( 'core/editor').setIsListViewOpened"
1134 });
1135 registry.dispatch(import_editor4.store).setIsListViewOpened(isOpen);
1136 };
1137 function setIsEditingTemplate() {
1138 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).setIsEditingTemplate", {
1139 since: "6.5",
1140 alternative: "dispatch( 'core/editor').setRenderingMode"
1141 });
1142 return { type: "NOTHING" };
1143 }
1144 function __unstableCreateTemplate() {
1145 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).__unstableCreateTemplate", {
1146 since: "6.5"
1147 });
1148 return { type: "NOTHING" };
1149 }
1150 var metaBoxesInitialized2 = false;
1151 var initializeMetaBoxes = () => ({ registry, select: select3, dispatch: dispatch2 }) => {
1152 const isEditorReady = registry.select(import_editor4.store).__unstableIsEditorReady();
1153 if (!isEditorReady) {
1154 return;
1155 }
1156 if (metaBoxesInitialized2) {
1157 return;
1158 }
1159 const postType = registry.select(import_editor4.store).getCurrentPostType();
1160 if (window.postboxes.page !== postType) {
1161 window.postboxes.add_postbox_toggles(postType);
1162 }
1163 metaBoxesInitialized2 = true;
1164 (0, import_hooks.addAction)(
1165 "editor.savePost",
1166 "core/edit-post/save-metaboxes",
1167 async (post, options) => {
1168 if (!options.isAutosave && select3.hasMetaBoxes()) {
1169 await dispatch2.requestMetaBoxUpdates();
1170 }
1171 }
1172 );
1173 dispatch2({
1174 type: "META_BOXES_INITIALIZED"
1175 });
1176 };
1177 var toggleDistractionFree = () => ({ registry }) => {
1178 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).toggleDistractionFree", {
1179 since: "6.6",
1180 alternative: "dispatch( 'core/editor').toggleDistractionFree"
1181 });
1182 registry.dispatch(import_editor4.store).toggleDistractionFree();
1183 };
1184 var toggleFullscreenMode = () => ({ registry }) => {
1185 const isFullscreen = registry.select(import_preferences.store).get("core/edit-post", "fullscreenMode");
1186 registry.dispatch(import_preferences.store).toggle("core/edit-post", "fullscreenMode");
1187 registry.dispatch(import_notices.store).createInfoNotice(
1188 isFullscreen ? (0, import_i18n2.__)("Fullscreen mode deactivated.") : (0, import_i18n2.__)("Fullscreen mode activated."),
1189 {
1190 id: "core/edit-post/toggle-fullscreen-mode/notice",
1191 type: "snackbar",
1192 actions: [
1193 {
1194 label: (0, import_i18n2.__)("Undo"),
1195 onClick: () => {
1196 registry.dispatch(import_preferences.store).toggle(
1197 "core/edit-post",
1198 "fullscreenMode"
1199 );
1200 }
1201 }
1202 ]
1203 }
1204 );
1205 };
1206
1207 // packages/edit-post/build-module/store/selectors.js
1208 var selectors_exports = {};
1209 __export(selectors_exports, {
1210 __experimentalGetInsertionPoint: () => __experimentalGetInsertionPoint,
1211 __experimentalGetPreviewDeviceType: () => __experimentalGetPreviewDeviceType,
1212 areMetaBoxesInitialized: () => areMetaBoxesInitialized,
1213 getActiveGeneralSidebarName: () => getActiveGeneralSidebarName,
1214 getActiveMetaBoxLocations: () => getActiveMetaBoxLocations,
1215 getAllMetaBoxes: () => getAllMetaBoxes,
1216 getEditedPostTemplate: () => getEditedPostTemplate,
1217 getEditorMode: () => getEditorMode,
1218 getHiddenBlockTypes: () => getHiddenBlockTypes,
1219 getMetaBoxesPerLocation: () => getMetaBoxesPerLocation,
1220 getPreference: () => getPreference,
1221 getPreferences: () => getPreferences,
1222 hasMetaBoxes: () => hasMetaBoxes,
1223 isEditingTemplate: () => isEditingTemplate,
1224 isEditorPanelEnabled: () => isEditorPanelEnabled,
1225 isEditorPanelOpened: () => isEditorPanelOpened,
1226 isEditorPanelRemoved: () => isEditorPanelRemoved,
1227 isEditorSidebarOpened: () => isEditorSidebarOpened,
1228 isFeatureActive: () => isFeatureActive,
1229 isInserterOpened: () => isInserterOpened,
1230 isListViewOpened: () => isListViewOpened,
1231 isMetaBoxLocationActive: () => isMetaBoxLocationActive,
1232 isMetaBoxLocationVisible: () => isMetaBoxLocationVisible,
1233 isModalActive: () => isModalActive,
1234 isPluginItemPinned: () => isPluginItemPinned,
1235 isPluginSidebarOpened: () => isPluginSidebarOpened,
1236 isPublishSidebarOpened: () => isPublishSidebarOpened,
1237 isSavingMetaBoxes: () => isSavingMetaBoxes2
1238 });
1239 var import_data5 = __toESM(require_data());
1240 var import_preferences2 = __toESM(require_preferences());
1241 var import_core_data4 = __toESM(require_core_data());
1242 var import_editor5 = __toESM(require_editor());
1243 var import_deprecated2 = __toESM(require_deprecated());
1244 var { interfaceStore: interfaceStore2 } = unlock(import_editor5.privateApis);
1245 var EMPTY_ARRAY = [];
1246 var EMPTY_OBJECT = {};
1247 var getEditorMode = (0, import_data5.createRegistrySelector)(
1248 (select3) => () => select3(import_preferences2.store).get("core", "editorMode") ?? "visual"
1249 );
1250 var isEditorSidebarOpened = (0, import_data5.createRegistrySelector)(
1251 (select3) => () => {
1252 const activeGeneralSidebar = select3(interfaceStore2).getActiveComplementaryArea("core");
1253 return ["edit-post/document", "edit-post/block"].includes(
1254 activeGeneralSidebar
1255 );
1256 }
1257 );
1258 var isPluginSidebarOpened = (0, import_data5.createRegistrySelector)(
1259 (select3) => () => {
1260 const activeGeneralSidebar = select3(interfaceStore2).getActiveComplementaryArea("core");
1261 return !!activeGeneralSidebar && !["edit-post/document", "edit-post/block"].includes(
1262 activeGeneralSidebar
1263 );
1264 }
1265 );
1266 var getActiveGeneralSidebarName = (0, import_data5.createRegistrySelector)(
1267 (select3) => () => {
1268 return select3(interfaceStore2).getActiveComplementaryArea("core");
1269 }
1270 );
1271 function convertPanelsToOldFormat(inactivePanels, openPanels) {
1272 const panelsWithEnabledState = inactivePanels?.reduce(
1273 (accumulatedPanels, panelName) => ({
1274 ...accumulatedPanels,
1275 [panelName]: {
1276 enabled: false
1277 }
1278 }),
1279 {}
1280 );
1281 const panels = openPanels?.reduce((accumulatedPanels, panelName) => {
1282 const currentPanelState = accumulatedPanels?.[panelName];
1283 return {
1284 ...accumulatedPanels,
1285 [panelName]: {
1286 ...currentPanelState,
1287 opened: true
1288 }
1289 };
1290 }, panelsWithEnabledState ?? {});
1291 return panels ?? panelsWithEnabledState ?? EMPTY_OBJECT;
1292 }
1293 var getPreferences = (0, import_data5.createRegistrySelector)((select3) => () => {
1294 (0, import_deprecated2.default)(`select( 'core/edit-post' ).getPreferences`, {
1295 since: "6.0",
1296 alternative: `select( 'core/preferences' ).get`
1297 });
1298 const corePreferences = ["editorMode", "hiddenBlockTypes"].reduce(
1299 (accumulatedPrefs, preferenceKey) => {
1300 const value = select3(import_preferences2.store).get(
1301 "core",
1302 preferenceKey
1303 );
1304 return {
1305 ...accumulatedPrefs,
1306 [preferenceKey]: value
1307 };
1308 },
1309 {}
1310 );
1311 const inactivePanels = select3(import_preferences2.store).get(
1312 "core",
1313 "inactivePanels"
1314 );
1315 const openPanels = select3(import_preferences2.store).get("core", "openPanels");
1316 const panels = convertPanelsToOldFormat(inactivePanels, openPanels);
1317 return {
1318 ...corePreferences,
1319 panels
1320 };
1321 });
1322 function getPreference(state, preferenceKey, defaultValue) {
1323 (0, import_deprecated2.default)(`select( 'core/edit-post' ).getPreference`, {
1324 since: "6.0",
1325 alternative: `select( 'core/preferences' ).get`
1326 });
1327 const preferences = getPreferences(state);
1328 const value = preferences[preferenceKey];
1329 return value === void 0 ? defaultValue : value;
1330 }
1331 var getHiddenBlockTypes = (0, import_data5.createRegistrySelector)((select3) => () => {
1332 return select3(import_preferences2.store).get("core", "hiddenBlockTypes") ?? EMPTY_ARRAY;
1333 });
1334 var isPublishSidebarOpened = (0, import_data5.createRegistrySelector)(
1335 (select3) => () => {
1336 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isPublishSidebarOpened`, {
1337 since: "6.6",
1338 alternative: `select( 'core/editor' ).isPublishSidebarOpened`
1339 });
1340 return select3(import_editor5.store).isPublishSidebarOpened();
1341 }
1342 );
1343 var isEditorPanelRemoved = (0, import_data5.createRegistrySelector)(
1344 (select3) => (state, panelName) => {
1345 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isEditorPanelRemoved`, {
1346 since: "6.5",
1347 alternative: `select( 'core/editor' ).isEditorPanelRemoved`
1348 });
1349 return select3(import_editor5.store).isEditorPanelRemoved(panelName);
1350 }
1351 );
1352 var isEditorPanelEnabled = (0, import_data5.createRegistrySelector)(
1353 (select3) => (state, panelName) => {
1354 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isEditorPanelEnabled`, {
1355 since: "6.5",
1356 alternative: `select( 'core/editor' ).isEditorPanelEnabled`
1357 });
1358 return select3(import_editor5.store).isEditorPanelEnabled(panelName);
1359 }
1360 );
1361 var isEditorPanelOpened = (0, import_data5.createRegistrySelector)(
1362 (select3) => (state, panelName) => {
1363 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isEditorPanelOpened`, {
1364 since: "6.5",
1365 alternative: `select( 'core/editor' ).isEditorPanelOpened`
1366 });
1367 return select3(import_editor5.store).isEditorPanelOpened(panelName);
1368 }
1369 );
1370 var isModalActive = (0, import_data5.createRegistrySelector)(
1371 (select3) => (state, modalName) => {
1372 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isModalActive`, {
1373 since: "6.3",
1374 alternative: `select( 'core/interface' ).isModalActive`
1375 });
1376 return !!select3(interfaceStore2).isModalActive(modalName);
1377 }
1378 );
1379 var isFeatureActive = (0, import_data5.createRegistrySelector)(
1380 (select3) => (state, feature) => {
1381 return !!select3(import_preferences2.store).get("core/edit-post", feature);
1382 }
1383 );
1384 var isPluginItemPinned = (0, import_data5.createRegistrySelector)(
1385 (select3) => (state, pluginName) => {
1386 return select3(interfaceStore2).isItemPinned("core", pluginName);
1387 }
1388 );
1389 var getActiveMetaBoxLocations = (0, import_data5.createSelector)(
1390 (state) => {
1391 return Object.keys(state.metaBoxes.locations).filter(
1392 (location) => isMetaBoxLocationActive(state, location)
1393 );
1394 },
1395 (state) => [state.metaBoxes.locations]
1396 );
1397 var isMetaBoxLocationVisible = (0, import_data5.createRegistrySelector)(
1398 (select3) => (state, location) => {
1399 return isMetaBoxLocationActive(state, location) && getMetaBoxesPerLocation(state, location)?.some(({ id }) => {
1400 return select3(import_editor5.store).isEditorPanelEnabled(
1401 `meta-box-${id}`
1402 );
1403 });
1404 }
1405 );
1406 function isMetaBoxLocationActive(state, location) {
1407 const metaBoxes2 = getMetaBoxesPerLocation(state, location);
1408 return !!metaBoxes2 && metaBoxes2.length !== 0;
1409 }
1410 function getMetaBoxesPerLocation(state, location) {
1411 return state.metaBoxes.locations[location];
1412 }
1413 var getAllMetaBoxes = (0, import_data5.createSelector)(
1414 (state) => {
1415 return Object.values(state.metaBoxes.locations).flat();
1416 },
1417 (state) => [state.metaBoxes.locations]
1418 );
1419 function hasMetaBoxes(state) {
1420 return getActiveMetaBoxLocations(state).length > 0;
1421 }
1422 function isSavingMetaBoxes2(state) {
1423 return state.metaBoxes.isSaving;
1424 }
1425 var __experimentalGetPreviewDeviceType = (0, import_data5.createRegistrySelector)(
1426 (select3) => () => {
1427 (0, import_deprecated2.default)(
1428 `select( 'core/edit-site' ).__experimentalGetPreviewDeviceType`,
1429 {
1430 since: "6.5",
1431 version: "6.7",
1432 alternative: `select( 'core/editor' ).getDeviceType`
1433 }
1434 );
1435 return select3(import_editor5.store).getDeviceType();
1436 }
1437 );
1438 var isInserterOpened = (0, import_data5.createRegistrySelector)((select3) => () => {
1439 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isInserterOpened`, {
1440 since: "6.5",
1441 alternative: `select( 'core/editor' ).isInserterOpened`
1442 });
1443 return select3(import_editor5.store).isInserterOpened();
1444 });
1445 var __experimentalGetInsertionPoint = (0, import_data5.createRegistrySelector)(
1446 (select3) => () => {
1447 (0, import_deprecated2.default)(
1448 `select( 'core/edit-post' ).__experimentalGetInsertionPoint`,
1449 {
1450 since: "6.5",
1451 version: "6.7"
1452 }
1453 );
1454 return unlock(select3(import_editor5.store)).getInserter();
1455 }
1456 );
1457 var isListViewOpened = (0, import_data5.createRegistrySelector)((select3) => () => {
1458 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isListViewOpened`, {
1459 since: "6.5",
1460 alternative: `select( 'core/editor' ).isListViewOpened`
1461 });
1462 return select3(import_editor5.store).isListViewOpened();
1463 });
1464 var isEditingTemplate = (0, import_data5.createRegistrySelector)((select3) => () => {
1465 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isEditingTemplate`, {
1466 since: "6.5",
1467 alternative: `select( 'core/editor' ).getRenderingMode`
1468 });
1469 return select3(import_editor5.store).getCurrentPostType() === "wp_template";
1470 });
1471 function areMetaBoxesInitialized(state) {
1472 return state.metaBoxes.initialized;
1473 }
1474 var getEditedPostTemplate = (0, import_data5.createRegistrySelector)(
1475 (select3) => () => {
1476 const { id: postId, type: postType } = select3(import_editor5.store).getCurrentPost();
1477 const templateId = unlock(select3(import_core_data4.store)).getTemplateId(
1478 postType,
1479 postId
1480 );
1481 if (!templateId) {
1482 return void 0;
1483 }
1484 return select3(import_core_data4.store).getEditedEntityRecord(
1485 "postType",
1486 "wp_template",
1487 templateId
1488 );
1489 }
1490 );
1491
1492 // packages/edit-post/build-module/store/index.js
1493 var store = (0, import_data6.createReduxStore)(STORE_NAME, {
1494 reducer: reducer_default,
1495 actions: actions_exports,
1496 selectors: selectors_exports
1497 });
1498 (0, import_data6.register)(store);
1499
1500 // packages/edit-post/build-module/components/keyboard-shortcuts/index.js
1501 function KeyboardShortcuts() {
1502 const { toggleFullscreenMode: toggleFullscreenMode2 } = (0, import_data7.useDispatch)(store);
1503 const { registerShortcut } = (0, import_data7.useDispatch)(import_keyboard_shortcuts.store);
1504 (0, import_element3.useEffect)(() => {
1505 registerShortcut({
1506 name: "core/edit-post/toggle-fullscreen",
1507 category: "global",
1508 description: (0, import_i18n3.__)("Enable or disable fullscreen mode."),
1509 keyCombination: {
1510 modifier: "secondary",
1511 character: "f"
1512 }
1513 });
1514 }, []);
1515 (0, import_keyboard_shortcuts.useShortcut)("core/edit-post/toggle-fullscreen", () => {
1516 toggleFullscreenMode2();
1517 });
1518 return null;
1519 }
1520 var keyboard_shortcuts_default = KeyboardShortcuts;
1521
1522 // packages/edit-post/build-module/components/init-pattern-modal/index.js
1523 var import_data8 = __toESM(require_data());
1524 var import_i18n4 = __toESM(require_i18n());
1525 var import_components3 = __toESM(require_components());
1526 var import_element4 = __toESM(require_element());
1527 var import_editor6 = __toESM(require_editor());
1528 var import_jsx_runtime9 = __toESM(require_jsx_runtime());
1529 function InitPatternModal() {
1530 const { editPost } = (0, import_data8.useDispatch)(import_editor6.store);
1531 const [syncType, setSyncType] = (0, import_element4.useState)(void 0);
1532 const [title, setTitle] = (0, import_element4.useState)("");
1533 const isNewPost = (0, import_data8.useSelect)(
1534 (select3) => select3(import_editor6.store).isCleanNewPost(),
1535 []
1536 );
1537 const [isModalOpen, setIsModalOpen] = (0, import_element4.useState)(() => isNewPost);
1538 if (!isNewPost) {
1539 return null;
1540 }
1541 return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children: isModalOpen && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1542 import_components3.Modal,
1543 {
1544 title: (0, import_i18n4.__)("Create pattern"),
1545 onRequestClose: () => {
1546 setIsModalOpen(false);
1547 },
1548 overlayClassName: "reusable-blocks-menu-items__convert-modal",
1549 children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1550 "form",
1551 {
1552 onSubmit: (event) => {
1553 event.preventDefault();
1554 setIsModalOpen(false);
1555 editPost({
1556 title,
1557 meta: {
1558 wp_pattern_sync_status: syncType
1559 }
1560 });
1561 },
1562 children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_components3.__experimentalVStack, { spacing: "5", children: [
1563 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1564 import_components3.TextControl,
1565 {
1566 label: (0, import_i18n4.__)("Name"),
1567 value: title,
1568 onChange: setTitle,
1569 placeholder: (0, import_i18n4.__)("My pattern"),
1570 className: "patterns-create-modal__name-input",
1571 __nextHasNoMarginBottom: true,
1572 __next40pxDefaultSize: true
1573 }
1574 ),
1575 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1576 import_components3.ToggleControl,
1577 {
1578 __nextHasNoMarginBottom: true,
1579 label: (0, import_i18n4._x)("Synced", "pattern (singular)"),
1580 help: (0, import_i18n4.__)(
1581 "Sync this pattern across multiple locations."
1582 ),
1583 checked: !syncType,
1584 onChange: () => {
1585 setSyncType(
1586 !syncType ? "unsynced" : void 0
1587 );
1588 }
1589 }
1590 ),
1591 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components3.__experimentalHStack, { justify: "right", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1592 import_components3.Button,
1593 {
1594 __next40pxDefaultSize: true,
1595 variant: "primary",
1596 type: "submit",
1597 disabled: !title,
1598 accessibleWhenDisabled: true,
1599 children: (0, import_i18n4.__)("Create")
1600 }
1601 ) })
1602 ] })
1603 }
1604 )
1605 }
1606 ) });
1607 }
1608
1609 // packages/edit-post/build-module/components/browser-url/index.js
1610 var import_element5 = __toESM(require_element());
1611 var import_data9 = __toESM(require_data());
1612 var import_url2 = __toESM(require_url());
1613 var import_editor7 = __toESM(require_editor());
1614 function getPostEditURL(postId) {
1615 return (0, import_url2.addQueryArgs)("post.php", { post: postId, action: "edit" });
1616 }
1617 function BrowserURL() {
1618 const [historyId, setHistoryId] = (0, import_element5.useState)(null);
1619 const { postId, postStatus } = (0, import_data9.useSelect)((select3) => {
1620 const { getCurrentPost } = select3(import_editor7.store);
1621 const post = getCurrentPost();
1622 let { id, status, type } = post;
1623 const isTemplate = ["wp_template", "wp_template_part"].includes(
1624 type
1625 );
1626 if (isTemplate) {
1627 id = post.wp_id;
1628 }
1629 return {
1630 postId: id,
1631 postStatus: status
1632 };
1633 }, []);
1634 (0, import_element5.useEffect)(() => {
1635 if (postId && postId !== historyId && postStatus !== "auto-draft") {
1636 window.history.replaceState(
1637 { id: postId },
1638 "Post " + postId,
1639 getPostEditURL(postId)
1640 );
1641 setHistoryId(postId);
1642 }
1643 }, [postId, postStatus, historyId]);
1644 return null;
1645 }
1646
1647 // packages/edit-post/build-module/components/meta-boxes/index.js
1648 var import_data12 = __toESM(require_data());
1649
1650 // packages/edit-post/build-module/components/meta-boxes/meta-boxes-area/index.js
1651 var import_element6 = __toESM(require_element());
1652 var import_components4 = __toESM(require_components());
1653 var import_data10 = __toESM(require_data());
1654 var import_jsx_runtime10 = __toESM(require_jsx_runtime());
1655 function MetaBoxesArea({ location }) {
1656 const container = (0, import_element6.useRef)(null);
1657 const formRef = (0, import_element6.useRef)(null);
1658 (0, import_element6.useEffect)(() => {
1659 formRef.current = document.querySelector(
1660 ".metabox-location-" + location
1661 );
1662 if (formRef.current) {
1663 container.current.appendChild(formRef.current);
1664 }
1665 return () => {
1666 if (formRef.current) {
1667 document.querySelector("#metaboxes").appendChild(formRef.current);
1668 }
1669 };
1670 }, [location]);
1671 const isSaving = (0, import_data10.useSelect)((select3) => {
1672 return select3(store).isSavingMetaBoxes();
1673 }, []);
1674 const classes = clsx_default("edit-post-meta-boxes-area", `is-${location}`, {
1675 "is-loading": isSaving
1676 });
1677 return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: classes, children: [
1678 isSaving && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_components4.Spinner, {}),
1679 /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1680 "div",
1681 {
1682 className: "edit-post-meta-boxes-area__container",
1683 ref: container
1684 }
1685 ),
1686 /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "edit-post-meta-boxes-area__clear" })
1687 ] });
1688 }
1689 var meta_boxes_area_default = MetaBoxesArea;
1690
1691 // packages/edit-post/build-module/components/meta-boxes/meta-box-visibility.js
1692 var import_element7 = __toESM(require_element());
1693 var import_data11 = __toESM(require_data());
1694 var import_editor8 = __toESM(require_editor());
1695 function MetaBoxVisibility({ id }) {
1696 const isVisible = (0, import_data11.useSelect)(
1697 (select3) => {
1698 return select3(import_editor8.store).isEditorPanelEnabled(
1699 `meta-box-${id}`
1700 );
1701 },
1702 [id]
1703 );
1704 (0, import_element7.useEffect)(() => {
1705 const element = document.getElementById(id);
1706 if (!element) {
1707 return;
1708 }
1709 if (isVisible) {
1710 element.classList.remove("is-hidden");
1711 } else {
1712 element.classList.add("is-hidden");
1713 }
1714 }, [id, isVisible]);
1715 return null;
1716 }
1717
1718 // packages/edit-post/build-module/components/meta-boxes/index.js
1719 var import_jsx_runtime11 = __toESM(require_jsx_runtime());
1720 function MetaBoxes({ location }) {
1721 const metaBoxes2 = (0, import_data12.useSelect)(
1722 (select3) => select3(store).getMetaBoxesPerLocation(location),
1723 [location]
1724 );
1725 return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
1726 (metaBoxes2 ?? []).map(({ id }) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(MetaBoxVisibility, { id }, id)),
1727 /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(meta_boxes_area_default, { location })
1728 ] });
1729 }
1730
1731 // packages/edit-post/build-module/components/more-menu/index.js
1732 var import_i18n10 = __toESM(require_i18n());
1733 var import_compose2 = __toESM(require_compose());
1734 var import_editor14 = __toESM(require_editor());
1735 var import_keycodes = __toESM(require_keycodes());
1736 var import_preferences8 = __toESM(require_preferences());
1737
1738 // packages/edit-post/build-module/components/more-menu/manage-patterns-menu-item.js
1739 var import_components5 = __toESM(require_components());
1740 var import_core_data5 = __toESM(require_core_data());
1741 var import_data13 = __toESM(require_data());
1742 var import_i18n5 = __toESM(require_i18n());
1743 var import_url3 = __toESM(require_url());
1744 var import_jsx_runtime12 = __toESM(require_jsx_runtime());
1745 function ManagePatternsMenuItem() {
1746 const url = (0, import_data13.useSelect)((select3) => {
1747 const { canUser } = select3(import_core_data5.store);
1748 const defaultUrl = (0, import_url3.addQueryArgs)("edit.php", {
1749 post_type: "wp_block"
1750 });
1751 const patternsUrl = (0, import_url3.addQueryArgs)("site-editor.php", {
1752 p: "/pattern"
1753 });
1754 return canUser("create", {
1755 kind: "postType",
1756 name: "wp_template"
1757 }) ? patternsUrl : defaultUrl;
1758 }, []);
1759 return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_components5.MenuItem, { role: "menuitem", href: url, children: (0, import_i18n5.__)("Manage patterns") });
1760 }
1761 var manage_patterns_menu_item_default = ManagePatternsMenuItem;
1762
1763 // packages/edit-post/build-module/components/more-menu/welcome-guide-menu-item.js
1764 var import_data14 = __toESM(require_data());
1765 var import_preferences3 = __toESM(require_preferences());
1766 var import_i18n6 = __toESM(require_i18n());
1767 var import_editor9 = __toESM(require_editor());
1768 var import_jsx_runtime13 = __toESM(require_jsx_runtime());
1769 function WelcomeGuideMenuItem() {
1770 const isEditingTemplate2 = (0, import_data14.useSelect)(
1771 (select3) => select3(import_editor9.store).getCurrentPostType() === "wp_template",
1772 []
1773 );
1774 return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1775 import_preferences3.PreferenceToggleMenuItem,
1776 {
1777 scope: "core/edit-post",
1778 name: isEditingTemplate2 ? "welcomeGuideTemplate" : "welcomeGuide",
1779 label: (0, import_i18n6.__)("Welcome Guide")
1780 }
1781 );
1782 }
1783
1784 // packages/edit-post/build-module/components/preferences-modal/index.js
1785 var import_i18n9 = __toESM(require_i18n());
1786 var import_preferences7 = __toESM(require_preferences());
1787 var import_editor13 = __toESM(require_editor());
1788
1789 // packages/edit-post/build-module/components/preferences-modal/meta-boxes-section.js
1790 var import_i18n8 = __toESM(require_i18n());
1791 var import_data17 = __toESM(require_data());
1792 var import_editor12 = __toESM(require_editor());
1793 var import_preferences6 = __toESM(require_preferences());
1794
1795 // packages/edit-post/build-module/components/preferences-modal/enable-custom-fields.js
1796 var import_element8 = __toESM(require_element());
1797 var import_i18n7 = __toESM(require_i18n());
1798 var import_components6 = __toESM(require_components());
1799 var import_data15 = __toESM(require_data());
1800 var import_editor10 = __toESM(require_editor());
1801 var import_preferences4 = __toESM(require_preferences());
1802 var import_url4 = __toESM(require_url());
1803 var import_jsx_runtime14 = __toESM(require_jsx_runtime());
1804 var { PreferenceBaseOption } = unlock(import_preferences4.privateApis);
1805 function submitCustomFieldsForm() {
1806 const customFieldsForm = document.getElementById(
1807 "toggle-custom-fields-form"
1808 );
1809 customFieldsForm.querySelector('[name="_wp_http_referer"]').setAttribute("value", (0, import_url4.getPathAndQueryString)(window.location.href));
1810 customFieldsForm.submit();
1811 }
1812 function CustomFieldsConfirmation({ willEnable }) {
1813 const [isReloading, setIsReloading] = (0, import_element8.useState)(false);
1814 return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
1815 /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { className: "edit-post-preferences-modal__custom-fields-confirmation-message", children: (0, import_i18n7.__)(
1816 "A page reload is required for this change. Make sure your content is saved before reloading."
1817 ) }),
1818 /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1819 import_components6.Button,
1820 {
1821 __next40pxDefaultSize: true,
1822 variant: "secondary",
1823 isBusy: isReloading,
1824 accessibleWhenDisabled: true,
1825 disabled: isReloading,
1826 onClick: () => {
1827 setIsReloading(true);
1828 submitCustomFieldsForm();
1829 },
1830 children: willEnable ? (0, import_i18n7.__)("Show & Reload Page") : (0, import_i18n7.__)("Hide & Reload Page")
1831 }
1832 )
1833 ] });
1834 }
1835 function EnableCustomFieldsOption({ label }) {
1836 const areCustomFieldsEnabled = (0, import_data15.useSelect)((select3) => {
1837 return !!select3(import_editor10.store).getEditorSettings().enableCustomFields;
1838 }, []);
1839 const [isChecked, setIsChecked] = (0, import_element8.useState)(areCustomFieldsEnabled);
1840 return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1841 PreferenceBaseOption,
1842 {
1843 label,
1844 isChecked,
1845 onChange: setIsChecked,
1846 children: isChecked !== areCustomFieldsEnabled && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CustomFieldsConfirmation, { willEnable: isChecked })
1847 }
1848 );
1849 }
1850
1851 // packages/edit-post/build-module/components/preferences-modal/enable-panel.js
1852 var import_data16 = __toESM(require_data());
1853 var import_editor11 = __toESM(require_editor());
1854 var import_preferences5 = __toESM(require_preferences());
1855 var import_jsx_runtime15 = __toESM(require_jsx_runtime());
1856 var { PreferenceBaseOption: PreferenceBaseOption2 } = unlock(import_preferences5.privateApis);
1857 function EnablePanelOption(props) {
1858 const { toggleEditorPanelEnabled: toggleEditorPanelEnabled2 } = (0, import_data16.useDispatch)(import_editor11.store);
1859 const { isChecked, isRemoved } = (0, import_data16.useSelect)(
1860 (select3) => {
1861 const { isEditorPanelEnabled: isEditorPanelEnabled2, isEditorPanelRemoved: isEditorPanelRemoved2 } = select3(import_editor11.store);
1862 return {
1863 isChecked: isEditorPanelEnabled2(props.panelName),
1864 isRemoved: isEditorPanelRemoved2(props.panelName)
1865 };
1866 },
1867 [props.panelName]
1868 );
1869 if (isRemoved) {
1870 return null;
1871 }
1872 return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1873 PreferenceBaseOption2,
1874 {
1875 isChecked,
1876 onChange: () => toggleEditorPanelEnabled2(props.panelName),
1877 ...props
1878 }
1879 );
1880 }
1881
1882 // packages/edit-post/build-module/components/preferences-modal/meta-boxes-section.js
1883 var import_jsx_runtime16 = __toESM(require_jsx_runtime());
1884 var { PreferencesModalSection } = unlock(import_preferences6.privateApis);
1885 function MetaBoxesSection({
1886 areCustomFieldsRegistered,
1887 metaBoxes: metaBoxes2,
1888 ...sectionProps
1889 }) {
1890 const thirdPartyMetaBoxes = metaBoxes2.filter(
1891 ({ id }) => id !== "postcustom"
1892 );
1893 if (!areCustomFieldsRegistered && thirdPartyMetaBoxes.length === 0) {
1894 return null;
1895 }
1896 return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(PreferencesModalSection, { ...sectionProps, children: [
1897 areCustomFieldsRegistered && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(EnableCustomFieldsOption, { label: (0, import_i18n8.__)("Custom fields") }),
1898 thirdPartyMetaBoxes.map(({ id, title }) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1899 EnablePanelOption,
1900 {
1901 label: title,
1902 panelName: `meta-box-${id}`
1903 },
1904 id
1905 ))
1906 ] });
1907 }
1908 var meta_boxes_section_default = (0, import_data17.withSelect)((select3) => {
1909 const { getEditorSettings } = select3(import_editor12.store);
1910 const { getAllMetaBoxes: getAllMetaBoxes2 } = select3(store);
1911 return {
1912 // This setting should not live in the block editor's store.
1913 areCustomFieldsRegistered: getEditorSettings().enableCustomFields !== void 0,
1914 metaBoxes: getAllMetaBoxes2()
1915 };
1916 })(MetaBoxesSection);
1917
1918 // packages/edit-post/build-module/components/preferences-modal/index.js
1919 var import_jsx_runtime17 = __toESM(require_jsx_runtime());
1920 var { PreferenceToggleControl } = unlock(import_preferences7.privateApis);
1921 var { PreferencesModal } = unlock(import_editor13.privateApis);
1922 function EditPostPreferencesModal() {
1923 const extraSections = {
1924 general: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(meta_boxes_section_default, { title: (0, import_i18n9.__)("Advanced") }),
1925 appearance: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1926 PreferenceToggleControl,
1927 {
1928 scope: "core/edit-post",
1929 featureName: "themeStyles",
1930 help: (0, import_i18n9.__)("Make the editor look like your theme."),
1931 label: (0, import_i18n9.__)("Use theme styles")
1932 }
1933 )
1934 };
1935 return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(PreferencesModal, { extraSections });
1936 }
1937
1938 // packages/edit-post/build-module/components/more-menu/index.js
1939 var import_jsx_runtime18 = __toESM(require_jsx_runtime());
1940 var { ToolsMoreMenuGroup, ViewMoreMenuGroup } = unlock(import_editor14.privateApis);
1941 var MoreMenu = () => {
1942 const isLargeViewport = (0, import_compose2.useViewportMatch)("large");
1943 return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
1944 isLargeViewport && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ViewMoreMenuGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1945 import_preferences8.PreferenceToggleMenuItem,
1946 {
1947 scope: "core/edit-post",
1948 name: "fullscreenMode",
1949 label: (0, import_i18n10.__)("Fullscreen mode"),
1950 info: (0, import_i18n10.__)("Show and hide the admin user interface"),
1951 messageActivated: (0, import_i18n10.__)("Fullscreen mode activated."),
1952 messageDeactivated: (0, import_i18n10.__)(
1953 "Fullscreen mode deactivated."
1954 ),
1955 shortcut: import_keycodes.displayShortcut.secondary("f")
1956 }
1957 ) }),
1958 /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ToolsMoreMenuGroup, { children: [
1959 /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(manage_patterns_menu_item_default, {}),
1960 /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(WelcomeGuideMenuItem, {})
1961 ] }),
1962 /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(EditPostPreferencesModal, {})
1963 ] });
1964 };
1965 var more_menu_default = MoreMenu;
1966
1967 // packages/edit-post/build-module/components/welcome-guide/index.js
1968 var import_data20 = __toESM(require_data());
1969
1970 // packages/edit-post/build-module/components/welcome-guide/default.js
1971 var import_data18 = __toESM(require_data());
1972 var import_components7 = __toESM(require_components());
1973 var import_i18n11 = __toESM(require_i18n());
1974 var import_element9 = __toESM(require_element());
1975
1976 // packages/edit-post/build-module/components/welcome-guide/image.js
1977 var import_jsx_runtime19 = __toESM(require_jsx_runtime());
1978 function WelcomeGuideImage({ nonAnimatedSrc, animatedSrc }) {
1979 return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("picture", { className: "edit-post-welcome-guide__image", children: [
1980 /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1981 "source",
1982 {
1983 srcSet: nonAnimatedSrc,
1984 media: "(prefers-reduced-motion: reduce)"
1985 }
1986 ),
1987 /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("img", { src: animatedSrc, width: "312", height: "240", alt: "" })
1988 ] });
1989 }
1990
1991 // packages/edit-post/build-module/components/welcome-guide/default.js
1992 var import_jsx_runtime20 = __toESM(require_jsx_runtime());
1993 function WelcomeGuideDefault() {
1994 const { toggleFeature: toggleFeature2 } = (0, import_data18.useDispatch)(store);
1995 return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1996 import_components7.Guide,
1997 {
1998 className: "edit-post-welcome-guide",
1999 contentLabel: (0, import_i18n11.__)("Welcome to the editor"),
2000 finishButtonText: (0, import_i18n11.__)("Get started"),
2001 onFinish: () => toggleFeature2("welcomeGuide"),
2002 pages: [
2003 {
2004 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2005 WelcomeGuideImage,
2006 {
2007 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-canvas.svg",
2008 animatedSrc: "https://s.w.org/images/block-editor/welcome-canvas.gif"
2009 }
2010 ),
2011 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2012 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Welcome to the editor") }),
2013 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_i18n11.__)(
2014 "In the WordPress editor, each paragraph, image, or video is presented as a distinct \u201Cblock\u201D of content."
2015 ) })
2016 ] })
2017 },
2018 {
2019 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2020 WelcomeGuideImage,
2021 {
2022 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-editor.svg",
2023 animatedSrc: "https://s.w.org/images/block-editor/welcome-editor.gif"
2024 }
2025 ),
2026 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2027 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Customize each block") }),
2028 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_i18n11.__)(
2029 "Each block comes with its own set of controls for changing things like color, width, and alignment. These will show and hide automatically when you have a block selected."
2030 ) })
2031 ] })
2032 },
2033 {
2034 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2035 WelcomeGuideImage,
2036 {
2037 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-library.svg",
2038 animatedSrc: "https://s.w.org/images/block-editor/welcome-library.gif"
2039 }
2040 ),
2041 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2042 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Explore all blocks") }),
2043 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_element9.createInterpolateElement)(
2044 (0, import_i18n11.__)(
2045 "All of the blocks available to you live in the block library. You\u2019ll find it wherever you see the <InserterIconImage /> icon."
2046 ),
2047 {
2048 InserterIconImage: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2049 "img",
2050 {
2051 alt: (0, import_i18n11.__)("inserter"),
2052 src: "data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='18' height='18' rx='2' fill='%231E1E1E'/%3E%3Cpath d='M9.22727 4V14M4 8.77273H14' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E%0A"
2053 }
2054 )
2055 }
2056 ) })
2057 ] })
2058 },
2059 {
2060 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2061 WelcomeGuideImage,
2062 {
2063 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-documentation.svg",
2064 animatedSrc: "https://s.w.org/images/block-editor/welcome-documentation.gif"
2065 }
2066 ),
2067 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2068 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Learn more") }),
2069 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_element9.createInterpolateElement)(
2070 (0, import_i18n11.__)(
2071 "New to the block editor? Want to learn more about using it? <a>Here's a detailed guide.</a>"
2072 ),
2073 {
2074 a: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2075 import_components7.ExternalLink,
2076 {
2077 href: (0, import_i18n11.__)(
2078 "https://wordpress.org/documentation/article/wordpress-block-editor/"
2079 )
2080 }
2081 )
2082 }
2083 ) })
2084 ] })
2085 }
2086 ]
2087 }
2088 );
2089 }
2090
2091 // packages/edit-post/build-module/components/welcome-guide/template.js
2092 var import_data19 = __toESM(require_data());
2093 var import_components8 = __toESM(require_components());
2094 var import_i18n12 = __toESM(require_i18n());
2095 var import_jsx_runtime21 = __toESM(require_jsx_runtime());
2096 function WelcomeGuideTemplate() {
2097 const { toggleFeature: toggleFeature2 } = (0, import_data19.useDispatch)(store);
2098 return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2099 import_components8.Guide,
2100 {
2101 className: "edit-template-welcome-guide",
2102 contentLabel: (0, import_i18n12.__)("Welcome to the template editor"),
2103 finishButtonText: (0, import_i18n12.__)("Get started"),
2104 onFinish: () => toggleFeature2("welcomeGuideTemplate"),
2105 pages: [
2106 {
2107 image: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2108 WelcomeGuideImage,
2109 {
2110 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-template-editor.svg",
2111 animatedSrc: "https://s.w.org/images/block-editor/welcome-template-editor.gif"
2112 }
2113 ),
2114 content: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
2115 /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n12.__)("Welcome to the template editor") }),
2116 /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_i18n12.__)(
2117 "Templates help define the layout of the site. You can customize all aspects of your posts and pages using blocks and patterns in this editor."
2118 ) })
2119 ] })
2120 }
2121 ]
2122 }
2123 );
2124 }
2125
2126 // packages/edit-post/build-module/components/welcome-guide/index.js
2127 var import_jsx_runtime22 = __toESM(require_jsx_runtime());
2128 function WelcomeGuide({ postType }) {
2129 const { isActive, isEditingTemplate: isEditingTemplate2 } = (0, import_data20.useSelect)(
2130 (select3) => {
2131 const { isFeatureActive: isFeatureActive2 } = select3(store);
2132 const _isEditingTemplate = postType === "wp_template";
2133 const feature = _isEditingTemplate ? "welcomeGuideTemplate" : "welcomeGuide";
2134 return {
2135 isActive: isFeatureActive2(feature),
2136 isEditingTemplate: _isEditingTemplate
2137 };
2138 },
2139 [postType]
2140 );
2141 if (!isActive) {
2142 return null;
2143 }
2144 return isEditingTemplate2 ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(WelcomeGuideTemplate, {}) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(WelcomeGuideDefault, {});
2145 }
2146
2147 // packages/edit-post/build-module/commands/use-commands.js
2148 var import_data21 = __toESM(require_data());
2149 var import_i18n13 = __toESM(require_i18n());
2150 var import_commands = __toESM(require_commands());
2151 var import_preferences9 = __toESM(require_preferences());
2152 var import_notices2 = __toESM(require_notices());
2153 function useCommands() {
2154 const { isFullscreen } = (0, import_data21.useSelect)((select3) => {
2155 const { get } = select3(import_preferences9.store);
2156 return {
2157 isFullscreen: get("core/edit-post", "fullscreenMode")
2158 };
2159 }, []);
2160 const { toggle } = (0, import_data21.useDispatch)(import_preferences9.store);
2161 const { createInfoNotice } = (0, import_data21.useDispatch)(import_notices2.store);
2162 (0, import_commands.useCommand)({
2163 name: "core/toggle-fullscreen-mode",
2164 label: isFullscreen ? (0, import_i18n13.__)("Exit fullscreen") : (0, import_i18n13.__)("Enter fullscreen"),
2165 icon: fullscreen_default,
2166 callback: ({ close }) => {
2167 toggle("core/edit-post", "fullscreenMode");
2168 close();
2169 createInfoNotice(
2170 isFullscreen ? (0, import_i18n13.__)("Fullscreen off.") : (0, import_i18n13.__)("Fullscreen on."),
2171 {
2172 id: "core/edit-post/toggle-fullscreen-mode/notice",
2173 type: "snackbar",
2174 actions: [
2175 {
2176 label: (0, import_i18n13.__)("Undo"),
2177 onClick: () => {
2178 toggle("core/edit-post", "fullscreenMode");
2179 }
2180 }
2181 ]
2182 }
2183 );
2184 }
2185 });
2186 }
2187
2188 // packages/edit-post/build-module/components/layout/use-should-iframe.js
2189 var import_editor15 = __toESM(require_editor());
2190 var import_data22 = __toESM(require_data());
2191 var import_blocks2 = __toESM(require_blocks());
2192 var import_block_editor = __toESM(require_block_editor());
2193 var isGutenbergPlugin = true ? true : false;
2194 function useShouldIframe() {
2195 return (0, import_data22.useSelect)((select3) => {
2196 const { getEditorSettings, getCurrentPostType, getDeviceType } = select3(import_editor15.store);
2197 return (
2198 // If the theme is block based and the Gutenberg plugin is active,
2199 // we ALWAYS use the iframe for consistency across the post and site
2200 // editor.
2201 isGutenbergPlugin && getEditorSettings().__unstableIsBlockBasedTheme || // We also still want to iframe all the special
2202 // editor features and modes such as device previews, zoom out, and
2203 // template/pattern editing.
2204 getDeviceType() !== "Desktop" || ["wp_template", "wp_block"].includes(getCurrentPostType()) || unlock(select3(import_block_editor.store)).isZoomOut() || // Finally, still iframe the editor if all blocks are v3 (which means
2205 // they are marked as iframe-compatible).
2206 select3(import_blocks2.store).getBlockTypes().every((type) => type.apiVersion >= 3)
2207 );
2208 }, []);
2209 }
2210
2211 // packages/edit-post/build-module/hooks/use-navigate-to-entity-record.js
2212 var import_element10 = __toESM(require_element());
2213 var import_data23 = __toESM(require_data());
2214 var import_editor16 = __toESM(require_editor());
2215 function useNavigateToEntityRecord(initialPostId, initialPostType, defaultRenderingMode) {
2216 const [postHistory, dispatch2] = (0, import_element10.useReducer)(
2217 (historyState, { type, post: post2, previousRenderingMode: previousRenderingMode2 }) => {
2218 if (type === "push") {
2219 return [...historyState, { post: post2, previousRenderingMode: previousRenderingMode2 }];
2220 }
2221 if (type === "pop") {
2222 if (historyState.length > 1) {
2223 return historyState.slice(0, -1);
2224 }
2225 }
2226 return historyState;
2227 },
2228 [
2229 {
2230 post: { postId: initialPostId, postType: initialPostType }
2231 }
2232 ]
2233 );
2234 const { post, previousRenderingMode } = postHistory[postHistory.length - 1];
2235 const { getRenderingMode } = (0, import_data23.useSelect)(import_editor16.store);
2236 const { setRenderingMode } = (0, import_data23.useDispatch)(import_editor16.store);
2237 const onNavigateToEntityRecord = (0, import_element10.useCallback)(
2238 (params) => {
2239 dispatch2({
2240 type: "push",
2241 post: { postId: params.postId, postType: params.postType },
2242 // Save the current rendering mode so we can restore it when navigating back.
2243 previousRenderingMode: getRenderingMode()
2244 });
2245 setRenderingMode(defaultRenderingMode);
2246 },
2247 [getRenderingMode, setRenderingMode, defaultRenderingMode]
2248 );
2249 const onNavigateToPreviousEntityRecord = (0, import_element10.useCallback)(() => {
2250 dispatch2({ type: "pop" });
2251 if (previousRenderingMode) {
2252 setRenderingMode(previousRenderingMode);
2253 }
2254 }, [setRenderingMode, previousRenderingMode]);
2255 return {
2256 currentPost: post,
2257 onNavigateToEntityRecord,
2258 onNavigateToPreviousEntityRecord: postHistory.length > 1 ? onNavigateToPreviousEntityRecord : void 0
2259 };
2260 }
2261
2262 // packages/edit-post/build-module/components/meta-boxes/use-meta-box-initialization.js
2263 var import_data24 = __toESM(require_data());
2264 var import_editor17 = __toESM(require_editor());
2265 var import_element11 = __toESM(require_element());
2266 var useMetaBoxInitialization = (enabled) => {
2267 const isEnabledAndEditorReady = (0, import_data24.useSelect)(
2268 (select3) => enabled && select3(import_editor17.store).__unstableIsEditorReady(),
2269 [enabled]
2270 );
2271 const { initializeMetaBoxes: initializeMetaBoxes2 } = (0, import_data24.useDispatch)(store);
2272 (0, import_element11.useEffect)(() => {
2273 if (isEnabledAndEditorReady) {
2274 initializeMetaBoxes2();
2275 }
2276 }, [isEnabledAndEditorReady, initializeMetaBoxes2]);
2277 };
2278
2279 // packages/edit-post/build-module/components/layout/index.js
2280 var import_jsx_runtime23 = __toESM(require_jsx_runtime());
2281 var { useCommandContext } = unlock(import_commands2.privateApis);
2282 var { Editor, FullscreenMode } = unlock(import_editor18.privateApis);
2283 var { BlockKeyboardShortcuts } = unlock(import_block_library.privateApis);
2284 var DESIGN_POST_TYPES = [
2285 "wp_template",
2286 "wp_template_part",
2287 "wp_block",
2288 "wp_navigation"
2289 ];
2290 function useEditorStyles(settings) {
2291 const { hasThemeStyleSupport } = (0, import_data25.useSelect)((select3) => {
2292 return {
2293 hasThemeStyleSupport: select3(store).isFeatureActive("themeStyles")
2294 };
2295 }, []);
2296 return (0, import_element12.useMemo)(() => {
2297 const presetStyles = settings.styles?.filter(
2298 (style) => style.__unstableType && style.__unstableType !== "theme"
2299 ) ?? [];
2300 const defaultEditorStyles = [
2301 ...settings?.defaultEditorStyles ?? [],
2302 ...presetStyles
2303 ];
2304 const hasThemeStyles = hasThemeStyleSupport && presetStyles.length !== (settings.styles?.length ?? 0);
2305 if (!settings.disableLayoutStyles && !hasThemeStyles) {
2306 defaultEditorStyles.push({
2307 css: getLayoutStyles({
2308 style: {},
2309 selector: "body",
2310 hasBlockGapSupport: false,
2311 hasFallbackGapSupport: true,
2312 fallbackGapValue: "0.5em"
2313 })
2314 });
2315 }
2316 return hasThemeStyles ? settings.styles ?? [] : defaultEditorStyles;
2317 }, [
2318 settings.defaultEditorStyles,
2319 settings.disableLayoutStyles,
2320 settings.styles,
2321 hasThemeStyleSupport
2322 ]);
2323 }
2324 function MetaBoxesMain({ isLegacy }) {
2325 const [isOpen, openHeight, hasAnyVisible] = (0, import_data25.useSelect)((select3) => {
2326 const { get } = select3(import_preferences10.store);
2327 const { isMetaBoxLocationVisible: isMetaBoxLocationVisible2 } = select3(store);
2328 return [
2329 !!get("core/edit-post", "metaBoxesMainIsOpen"),
2330 get("core/edit-post", "metaBoxesMainOpenHeight"),
2331 isMetaBoxLocationVisible2("normal") || isMetaBoxLocationVisible2("advanced") || isMetaBoxLocationVisible2("side")
2332 ];
2333 }, []);
2334 const { set: setPreference } = (0, import_data25.useDispatch)(import_preferences10.store);
2335 const metaBoxesMainRef = (0, import_element12.useRef)();
2336 const isShort = (0, import_compose3.useMediaQuery)("(max-height: 549px)");
2337 const [{ min, max }, setHeightConstraints] = (0, import_element12.useState)(() => ({}));
2338 const effectSizeConstraints = (0, import_compose3.useRefEffect)((node) => {
2339 const container = node.closest(
2340 ".interface-interface-skeleton__content"
2341 );
2342 if (!container) {
2343 return;
2344 }
2345 const noticeLists = container.querySelectorAll(
2346 ":scope > .components-notice-list"
2347 );
2348 const resizeHandle = container.querySelector(
2349 ".edit-post-meta-boxes-main__presenter"
2350 );
2351 const deriveConstraints = () => {
2352 const fullHeight = container.offsetHeight;
2353 let nextMax = fullHeight;
2354 for (const element of noticeLists) {
2355 nextMax -= element.offsetHeight;
2356 }
2357 const nextMin = resizeHandle.offsetHeight;
2358 setHeightConstraints({ min: nextMin, max: nextMax });
2359 };
2360 const observer = new window.ResizeObserver(deriveConstraints);
2361 observer.observe(container);
2362 for (const element of noticeLists) {
2363 observer.observe(element);
2364 }
2365 return () => observer.disconnect();
2366 }, []);
2367 const resizeDataRef = (0, import_element12.useRef)({});
2368 const separatorRef = (0, import_element12.useRef)();
2369 const separatorHelpId = (0, import_element12.useId)();
2370 const applyHeight = (candidateHeight = "auto", isPersistent, isInstant) => {
2371 if (candidateHeight === "auto") {
2372 isPersistent = false;
2373 } else {
2374 candidateHeight = Math.min(max, Math.max(min, candidateHeight));
2375 }
2376 if (isPersistent) {
2377 setPreference(
2378 "core/edit-post",
2379 "metaBoxesMainOpenHeight",
2380 candidateHeight
2381 );
2382 } else if (!isShort) {
2383 separatorRef.current.ariaValueNow = getAriaValueNow(candidateHeight);
2384 }
2385 if (isInstant) {
2386 metaBoxesMainRef.current.updateSize({
2387 height: candidateHeight,
2388 // Oddly, when the event that triggered this was not from the mouse (e.g. keydown),
2389 // if `width` is left unspecified a subsequent drag gesture applies a fixed
2390 // width and the pane fails to widen/narrow with parent width changes from
2391 // sidebars opening/closing or window resizes.
2392 width: "auto"
2393 });
2394 }
2395 };
2396 const getRenderValues = (0, import_compose3.useEvent)(() => ({ isOpen, openHeight, min }));
2397 (0, import_element12.useEffect)(() => {
2398 const fresh = getRenderValues();
2399 if (fresh.min !== void 0 && metaBoxesMainRef.current) {
2400 const usedOpenHeight = isShort ? "auto" : fresh.openHeight;
2401 const usedHeight = fresh.isOpen ? usedOpenHeight : fresh.min;
2402 applyHeight(usedHeight, false, true);
2403 }
2404 }, [isShort]);
2405 if (!hasAnyVisible) {
2406 return;
2407 }
2408 const contents = /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2409 "div",
2410 {
2411 className: "edit-post-layout__metaboxes edit-post-meta-boxes-main__liner",
2412 hidden: !isLegacy && !isOpen,
2413 children: [
2414 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MetaBoxes, { location: "normal" }),
2415 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MetaBoxes, { location: "advanced" })
2416 ]
2417 }
2418 );
2419 if (isLegacy) {
2420 return contents;
2421 }
2422 const isAutoHeight = openHeight === void 0;
2423 const getAriaValueNow = (height) => Math.round((height - min) / (max - min) * 100);
2424 const usedAriaValueNow = max === void 0 || isAutoHeight ? 50 : getAriaValueNow(openHeight);
2425 const persistIsOpen = (to = !isOpen) => setPreference("core/edit-post", "metaBoxesMainIsOpen", to);
2426 const onSeparatorKeyDown = (event) => {
2427 const delta = { ArrowUp: 20, ArrowDown: -20 }[event.key];
2428 if (delta) {
2429 const pane = metaBoxesMainRef.current.resizable;
2430 const fromHeight = isAutoHeight ? pane.offsetHeight : openHeight;
2431 const nextHeight = delta + fromHeight;
2432 applyHeight(nextHeight, true, true);
2433 persistIsOpen(nextHeight > min);
2434 event.preventDefault();
2435 }
2436 };
2437 const paneLabel = (0, import_i18n14.__)("Meta Boxes");
2438 const toggle = /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2439 "button",
2440 {
2441 "aria-expanded": isOpen,
2442 onClick: ({ detail }) => {
2443 const { isToggleInferred } = resizeDataRef.current;
2444 if (isShort || !detail || isToggleInferred) {
2445 persistIsOpen();
2446 const usedOpenHeight = isShort ? "auto" : openHeight;
2447 const usedHeight = isOpen ? min : usedOpenHeight;
2448 applyHeight(usedHeight, false, true);
2449 }
2450 },
2451 ...isShort && {
2452 onMouseDown: (event) => event.stopPropagation(),
2453 onTouchStart: (event) => event.stopPropagation()
2454 },
2455 children: [
2456 paneLabel,
2457 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components9.Icon, { icon: isOpen ? chevron_up_default : chevron_down_default })
2458 ]
2459 }
2460 );
2461 const separator = !isShort && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2462 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components9.Tooltip, { text: (0, import_i18n14.__)("Drag to resize"), children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2463 "button",
2464 {
2465 ref: separatorRef,
2466 role: "separator",
2467 "aria-valuenow": usedAriaValueNow,
2468 "aria-label": (0, import_i18n14.__)("Drag to resize"),
2469 "aria-describedby": separatorHelpId,
2470 onKeyDown: onSeparatorKeyDown
2471 }
2472 ) }),
2473 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components9.VisuallyHidden, { id: separatorHelpId, children: (0, import_i18n14.__)(
2474 "Use up and down arrow keys to resize the meta box panel."
2475 ) })
2476 ] });
2477 const paneProps = (
2478 /** @type {Parameters<typeof ResizableBox>[0]} */
2479 {
2480 as: navigable_region_default,
2481 ref: metaBoxesMainRef,
2482 className: "edit-post-meta-boxes-main",
2483 defaultSize: { height: isOpen ? openHeight : 0 },
2484 minHeight: min,
2485 maxHeight: max,
2486 enable: { top: true },
2487 handleClasses: { top: "edit-post-meta-boxes-main__presenter" },
2488 handleComponent: {
2489 top: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2490 toggle,
2491 separator
2492 ] })
2493 },
2494 // Avoids hiccups while dragging over objects like iframes and ensures that
2495 // the event to end the drag is captured by the target (resize handle)
2496 // whether or not it’s under the pointer.
2497 onPointerDown: ({ pointerId, target }) => {
2498 if (separatorRef.current?.parentElement.contains(target)) {
2499 target.setPointerCapture(pointerId);
2500 }
2501 },
2502 onResizeStart: ({ timeStamp }, direction, elementRef) => {
2503 if (isAutoHeight) {
2504 applyHeight(elementRef.offsetHeight, false, true);
2505 }
2506 elementRef.classList.add("is-resizing");
2507 resizeDataRef.current = { timeStamp, maxDelta: 0 };
2508 },
2509 onResize: (event, direction, elementRef, delta) => {
2510 const { maxDelta } = resizeDataRef.current;
2511 const newDelta = Math.abs(delta.height);
2512 resizeDataRef.current.maxDelta = Math.max(maxDelta, newDelta);
2513 applyHeight(metaBoxesMainRef.current.state.height);
2514 },
2515 onResizeStop: (event, direction, elementRef) => {
2516 elementRef.classList.remove("is-resizing");
2517 const duration = event.timeStamp - resizeDataRef.current.timeStamp;
2518 const wasSeparator = event.target === separatorRef.current;
2519 const { maxDelta } = resizeDataRef.current;
2520 const isToggleInferred = maxDelta < 1 || duration < 144 && maxDelta < 5;
2521 if (isShort || !wasSeparator && isToggleInferred) {
2522 resizeDataRef.current.isToggleInferred = true;
2523 } else {
2524 const { height } = metaBoxesMainRef.current.state;
2525 const nextIsOpen = height > min;
2526 persistIsOpen(nextIsOpen);
2527 if (nextIsOpen) {
2528 applyHeight(height, true);
2529 }
2530 }
2531 }
2532 }
2533 );
2534 return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_components9.ResizableBox, { "aria-label": paneLabel, ...paneProps, children: [
2535 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("meta", { ref: effectSizeConstraints }),
2536 contents
2537 ] });
2538 }
2539 function Layout({
2540 postId: initialPostId,
2541 postType: initialPostType,
2542 settings,
2543 initialEdits
2544 }) {
2545 useCommands();
2546 const shouldIframe = useShouldIframe();
2547 const { createErrorNotice } = (0, import_data25.useDispatch)(import_notices3.store);
2548 const {
2549 currentPost: { postId: currentPostId, postType: currentPostType },
2550 onNavigateToEntityRecord,
2551 onNavigateToPreviousEntityRecord
2552 } = useNavigateToEntityRecord(
2553 initialPostId,
2554 initialPostType,
2555 "post-only"
2556 );
2557 const isEditingTemplate2 = currentPostType === "wp_template";
2558 const {
2559 mode,
2560 isFullscreenActive,
2561 hasResolvedMode,
2562 hasActiveMetaboxes,
2563 hasBlockSelected,
2564 showIconLabels,
2565 isDistractionFree,
2566 showMetaBoxes,
2567 isWelcomeGuideVisible,
2568 templateId,
2569 isDevicePreview
2570 } = (0, import_data25.useSelect)(
2571 (select3) => {
2572 const { get } = select3(import_preferences10.store);
2573 const { isFeatureActive: isFeatureActive2, hasMetaBoxes: hasMetaBoxes2 } = select3(store);
2574 const { canUser, getPostType, getTemplateId } = unlock(
2575 select3(import_core_data6.store)
2576 );
2577 const supportsTemplateMode = settings.supportsTemplateMode;
2578 const isViewable = getPostType(currentPostType)?.viewable ?? false;
2579 const canViewTemplate = canUser("read", {
2580 kind: "postType",
2581 name: "wp_template"
2582 });
2583 const { getBlockSelectionStart, isZoomOut } = unlock(
2584 select3(import_block_editor2.store)
2585 );
2586 const { getEditorMode: getEditorMode2, getDefaultRenderingMode, getDeviceType } = unlock(select3(import_editor18.store));
2587 const isNotDesignPostType = !DESIGN_POST_TYPES.includes(currentPostType);
2588 const isDirectlyEditingPattern = currentPostType === "wp_block" && !onNavigateToPreviousEntityRecord;
2589 const _templateId = getTemplateId(currentPostType, currentPostId);
2590 const defaultMode = getDefaultRenderingMode(currentPostType);
2591 return {
2592 mode: getEditorMode2(),
2593 isFullscreenActive: isFeatureActive2("fullscreenMode"),
2594 hasActiveMetaboxes: hasMetaBoxes2(),
2595 hasResolvedMode: defaultMode === "template-locked" ? !!_templateId : defaultMode !== void 0,
2596 hasBlockSelected: !!getBlockSelectionStart(),
2597 showIconLabels: get("core", "showIconLabels"),
2598 isDistractionFree: get("core", "distractionFree"),
2599 showMetaBoxes: isNotDesignPostType && !isZoomOut() || isDirectlyEditingPattern,
2600 isWelcomeGuideVisible: isFeatureActive2("welcomeGuide"),
2601 templateId: supportsTemplateMode && isViewable && canViewTemplate && !isEditingTemplate2 ? _templateId : null,
2602 isDevicePreview: getDeviceType() !== "Desktop"
2603 };
2604 },
2605 [
2606 currentPostType,
2607 currentPostId,
2608 isEditingTemplate2,
2609 settings.supportsTemplateMode,
2610 onNavigateToPreviousEntityRecord
2611 ]
2612 );
2613 useMetaBoxInitialization(hasActiveMetaboxes && hasResolvedMode);
2614 const commandContext = hasBlockSelected ? "block-selection-edit" : "entity-edit";
2615 useCommandContext(commandContext);
2616 const styles = useEditorStyles(settings);
2617 const editorSettings = (0, import_element12.useMemo)(
2618 () => ({
2619 ...settings,
2620 styles,
2621 onNavigateToEntityRecord,
2622 onNavigateToPreviousEntityRecord,
2623 defaultRenderingMode: "post-only"
2624 }),
2625 [
2626 settings,
2627 styles,
2628 onNavigateToEntityRecord,
2629 onNavigateToPreviousEntityRecord
2630 ]
2631 );
2632 if (showIconLabels) {
2633 document.body.classList.add("show-icon-labels");
2634 } else {
2635 document.body.classList.remove("show-icon-labels");
2636 }
2637 const navigateRegionsProps = (0, import_components9.__unstableUseNavigateRegions)();
2638 const className = clsx_default("edit-post-layout", "is-mode-" + mode, {
2639 "has-metaboxes": hasActiveMetaboxes
2640 });
2641 function onPluginAreaError(name) {
2642 createErrorNotice(
2643 (0, import_i18n14.sprintf)(
2644 /* translators: %s: plugin name */
2645 (0, import_i18n14.__)(
2646 'The "%s" plugin has encountered an error and cannot be rendered.'
2647 ),
2648 name
2649 )
2650 );
2651 }
2652 const { createSuccessNotice } = (0, import_data25.useDispatch)(import_notices3.store);
2653 const onActionPerformed = (0, import_element12.useCallback)(
2654 (actionId, items) => {
2655 switch (actionId) {
2656 case "move-to-trash":
2657 {
2658 document.location.href = (0, import_url5.addQueryArgs)("edit.php", {
2659 trashed: 1,
2660 post_type: items[0].type,
2661 ids: items[0].id
2662 });
2663 }
2664 break;
2665 case "duplicate-post":
2666 {
2667 const newItem = items[0];
2668 const title = typeof newItem.title === "string" ? newItem.title : newItem.title?.rendered;
2669 createSuccessNotice(
2670 (0, import_i18n14.sprintf)(
2671 // translators: %s: Title of the created post or template, e.g: "Hello world".
2672 (0, import_i18n14.__)('"%s" successfully created.'),
2673 (0, import_html_entities.decodeEntities)(title) || (0, import_i18n14.__)("(no title)")
2674 ),
2675 {
2676 type: "snackbar",
2677 id: "duplicate-post-action",
2678 actions: [
2679 {
2680 label: (0, import_i18n14.__)("Edit"),
2681 onClick: () => {
2682 const postId = newItem.id;
2683 document.location.href = (0, import_url5.addQueryArgs)("post.php", {
2684 post: postId,
2685 action: "edit"
2686 });
2687 }
2688 }
2689 ]
2690 }
2691 );
2692 }
2693 break;
2694 }
2695 },
2696 [createSuccessNotice]
2697 );
2698 const initialPost = (0, import_element12.useMemo)(() => {
2699 return {
2700 type: initialPostType,
2701 id: initialPostId
2702 };
2703 }, [initialPostType, initialPostId]);
2704 const backButton = (0, import_compose3.useViewportMatch)("medium") && isFullscreenActive ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(back_button_default, { initialPost }) : null;
2705 return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components9.SlotFillProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_editor18.ErrorBoundary, { canCopyContent: true, children: [
2706 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(WelcomeGuide, { postType: currentPostType }),
2707 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2708 "div",
2709 {
2710 className: navigateRegionsProps.className,
2711 ...navigateRegionsProps,
2712 ref: navigateRegionsProps.ref,
2713 children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2714 Editor,
2715 {
2716 settings: editorSettings,
2717 initialEdits,
2718 postType: currentPostType,
2719 postId: currentPostId,
2720 templateId,
2721 className,
2722 forceIsDirty: hasActiveMetaboxes,
2723 disableIframe: !shouldIframe,
2724 autoFocus: !isWelcomeGuideVisible,
2725 onActionPerformed,
2726 extraSidebarPanels: showMetaBoxes && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MetaBoxes, { location: "side" }),
2727 extraContent: !isDistractionFree && showMetaBoxes && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2728 MetaBoxesMain,
2729 {
2730 isLegacy: !shouldIframe || isDevicePreview
2731 }
2732 ),
2733 children: [
2734 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.PostLockedModal, {}),
2735 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(EditorInitialization, {}),
2736 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(FullscreenMode, { isActive: isFullscreenActive }),
2737 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(BrowserURL, {}),
2738 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.UnsavedChangesWarning, {}),
2739 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.AutosaveMonitor, {}),
2740 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.LocalAutosaveMonitor, {}),
2741 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(keyboard_shortcuts_default, {}),
2742 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.EditorKeyboardShortcutsRegister, {}),
2743 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(BlockKeyboardShortcuts, {}),
2744 currentPostType === "wp_block" && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(InitPatternModal, {}),
2745 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_plugins.PluginArea, { onError: onPluginAreaError }),
2746 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(more_menu_default, {}),
2747 backButton,
2748 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.EditorSnackbars, {})
2749 ]
2750 }
2751 )
2752 }
2753 )
2754 ] }) });
2755 }
2756 var layout_default = Layout;
2757
2758 // packages/edit-post/build-module/deprecated.js
2759 var import_editor19 = __toESM(require_editor());
2760 var import_url6 = __toESM(require_url());
2761 var import_deprecated3 = __toESM(require_deprecated());
2762 var import_jsx_runtime24 = __toESM(require_jsx_runtime());
2763 var { PluginPostExcerpt } = unlock(import_editor19.privateApis);
2764 var isSiteEditor = (0, import_url6.getPath)(window.location.href)?.includes(
2765 "site-editor.php"
2766 );
2767 var deprecateSlot = (name) => {
2768 (0, import_deprecated3.default)(`wp.editPost.${name}`, {
2769 since: "6.6",
2770 alternative: `wp.editor.${name}`
2771 });
2772 };
2773 function PluginBlockSettingsMenuItem(props) {
2774 if (isSiteEditor) {
2775 return null;
2776 }
2777 deprecateSlot("PluginBlockSettingsMenuItem");
2778 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginBlockSettingsMenuItem, { ...props });
2779 }
2780 function PluginDocumentSettingPanel(props) {
2781 if (isSiteEditor) {
2782 return null;
2783 }
2784 deprecateSlot("PluginDocumentSettingPanel");
2785 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginDocumentSettingPanel, { ...props });
2786 }
2787 function PluginMoreMenuItem(props) {
2788 if (isSiteEditor) {
2789 return null;
2790 }
2791 deprecateSlot("PluginMoreMenuItem");
2792 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginMoreMenuItem, { ...props });
2793 }
2794 function PluginPrePublishPanel(props) {
2795 if (isSiteEditor) {
2796 return null;
2797 }
2798 deprecateSlot("PluginPrePublishPanel");
2799 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginPrePublishPanel, { ...props });
2800 }
2801 function PluginPostPublishPanel(props) {
2802 if (isSiteEditor) {
2803 return null;
2804 }
2805 deprecateSlot("PluginPostPublishPanel");
2806 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginPostPublishPanel, { ...props });
2807 }
2808 function PluginPostStatusInfo(props) {
2809 if (isSiteEditor) {
2810 return null;
2811 }
2812 deprecateSlot("PluginPostStatusInfo");
2813 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginPostStatusInfo, { ...props });
2814 }
2815 function PluginSidebar(props) {
2816 if (isSiteEditor) {
2817 return null;
2818 }
2819 deprecateSlot("PluginSidebar");
2820 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginSidebar, { ...props });
2821 }
2822 function PluginSidebarMoreMenuItem(props) {
2823 if (isSiteEditor) {
2824 return null;
2825 }
2826 deprecateSlot("PluginSidebarMoreMenuItem");
2827 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginSidebarMoreMenuItem, { ...props });
2828 }
2829 function __experimentalPluginPostExcerpt() {
2830 if (isSiteEditor) {
2831 return null;
2832 }
2833 (0, import_deprecated3.default)("wp.editPost.__experimentalPluginPostExcerpt", {
2834 since: "6.6",
2835 hint: "Core and custom panels can be access programmatically using their panel name.",
2836 link: "https://developer.wordpress.org/block-editor/reference-guides/slotfills/plugin-document-setting-panel/#accessing-a-panel-programmatically"
2837 });
2838 return PluginPostExcerpt;
2839 }
2840
2841 // packages/edit-post/build-module/index.js
2842 var import_jsx_runtime25 = __toESM(require_jsx_runtime());
2843 var {
2844 BackButton: __experimentalMainDashboardButton,
2845 registerCoreBlockBindingsSources
2846 } = unlock(import_editor20.privateApis);
2847 function initializeEditor(id, postType, postId, settings, initialEdits) {
2848 const isMediumOrBigger = window.matchMedia("(min-width: 782px)").matches;
2849 const target = document.getElementById(id);
2850 const root = (0, import_element13.createRoot)(target);
2851 (0, import_data26.dispatch)(import_preferences11.store).setDefaults("core/edit-post", {
2852 fullscreenMode: true,
2853 themeStyles: true,
2854 welcomeGuide: true,
2855 welcomeGuideTemplate: true
2856 });
2857 (0, import_data26.dispatch)(import_preferences11.store).setDefaults("core", {
2858 allowRightClickOverrides: true,
2859 editorMode: "visual",
2860 editorTool: "edit",
2861 fixedToolbar: false,
2862 hiddenBlockTypes: [],
2863 inactivePanels: [],
2864 openPanels: ["post-status"],
2865 showBlockBreadcrumbs: true,
2866 showIconLabels: false,
2867 showListViewByDefault: false,
2868 enableChoosePatternModal: true,
2869 isPublishSidebarEnabled: true
2870 });
2871 if (window.__experimentalMediaProcessing) {
2872 (0, import_data26.dispatch)(import_preferences11.store).setDefaults("core/media", {
2873 requireApproval: true,
2874 optimizeOnUpload: true
2875 });
2876 }
2877 (0, import_data26.dispatch)(import_blocks3.store).reapplyBlockTypeFilters();
2878 if (isMediumOrBigger && (0, import_data26.select)(import_preferences11.store).get("core", "showListViewByDefault") && !(0, import_data26.select)(import_preferences11.store).get("core", "distractionFree")) {
2879 (0, import_data26.dispatch)(import_editor20.store).setIsListViewOpened(true);
2880 }
2881 (0, import_block_library2.registerCoreBlocks)();
2882 registerCoreBlockBindingsSources();
2883 (0, import_widgets.registerLegacyWidgetBlock)({ inserter: false });
2884 (0, import_widgets.registerWidgetGroupBlock)({ inserter: false });
2885 if (true) {
2886 (0, import_block_library2.__experimentalRegisterExperimentalCoreBlocks)({
2887 enableFSEBlocks: settings.__unstableEnableFullSiteEditingBlocks
2888 });
2889 }
2890 const documentMode = document.compatMode === "CSS1Compat" ? "Standards" : "Quirks";
2891 if (documentMode !== "Standards") {
2892 console.warn(
2893 "Your browser is using Quirks Mode. \nThis can cause rendering issues such as blocks overlaying meta boxes in the editor. Quirks Mode can be triggered by PHP errors or HTML code appearing before the opening <!DOCTYPE html>. Try checking the raw page source or your site's PHP error log and resolving errors there, removing any HTML before the doctype, or disabling plugins."
2894 );
2895 }
2896 const isIphone = window.navigator.userAgent.indexOf("iPhone") !== -1;
2897 if (isIphone) {
2898 window.addEventListener("scroll", (event) => {
2899 const editorScrollContainer = document.getElementsByClassName(
2900 "interface-interface-skeleton__body"
2901 )[0];
2902 if (event.target === document) {
2903 if (window.scrollY > 100) {
2904 editorScrollContainer.scrollTop = editorScrollContainer.scrollTop + window.scrollY;
2905 }
2906 if (document.getElementsByClassName("is-mode-visual")[0]) {
2907 window.scrollTo(0, 0);
2908 }
2909 }
2910 });
2911 }
2912 window.addEventListener("dragover", (e) => e.preventDefault(), false);
2913 window.addEventListener("drop", (e) => e.preventDefault(), false);
2914 root.render(
2915 /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_element13.StrictMode, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2916 layout_default,
2917 {
2918 settings,
2919 postId,
2920 postType,
2921 initialEdits
2922 }
2923 ) })
2924 );
2925 return root;
2926 }
2927 function reinitializeEditor() {
2928 (0, import_deprecated4.default)("wp.editPost.reinitializeEditor", {
2929 since: "6.2",
2930 version: "6.3"
2931 });
2932 }
2933 return __toCommonJS(index_exports);
2934 })();
2935 //# sourceMappingURL=index.js.map
2936