PluginProbe
Gutenberg / 22.7.0
Gutenberg v22.7.0
24.0.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 All 403 releases
gutenberg / build / scripts / edit-post / index.js

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

2,963 lines 116.6 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.mjs
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(), 1);
235 var import_block_library2 = __toESM(require_block_library(), 1);
236 var import_deprecated4 = __toESM(require_deprecated(), 1);
237 var import_element13 = __toESM(require_element(), 1);
238 var import_data26 = __toESM(require_data(), 1);
239 var import_preferences11 = __toESM(require_preferences(), 1);
240 var import_widgets = __toESM(require_widgets(), 1);
241 var import_editor20 = __toESM(require_editor(), 1);
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.mjs
260 var import_element = __toESM(require_element(), 1);
261 var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
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.mjs
282 var import_editor18 = __toESM(require_editor(), 1);
283 var import_data25 = __toESM(require_data(), 1);
284 var import_block_editor2 = __toESM(require_block_editor(), 1);
285
286 // packages/global-styles-engine/build-module/utils/common.mjs
287 var import_style_engine = __toESM(require_style_engine(), 1);
288 var ROOT_BLOCK_SELECTOR = "body";
289 var ROOT_CSS_PROPERTIES_SELECTOR = ":root";
290
291 // packages/global-styles-engine/build-module/core/render.mjs
292 var import_blocks = __toESM(require_blocks(), 1);
293 var import_style_engine2 = __toESM(require_style_engine(), 1);
294 var import_data = __toESM(require_data(), 1);
295
296 // packages/global-styles-engine/build-module/utils/spacing.mjs
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.mjs
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.mjs
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.mjs
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.mjs
591 var import_plugins = __toESM(require_plugins(), 1);
592 var import_i18n14 = __toESM(require_i18n(), 1);
593 var import_element12 = __toESM(require_element(), 1);
594
595 // packages/icons/build-module/library/arrow-up-left.mjs
596 var import_primitives = __toESM(require_primitives(), 1);
597 var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
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.mjs
601 var import_primitives2 = __toESM(require_primitives(), 1);
602 var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
603 var chevron_down_default = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", 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.mjs
606 var import_primitives3 = __toESM(require_primitives(), 1);
607 var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
608 var chevron_up_default = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", 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.mjs
611 var import_primitives4 = __toESM(require_primitives(), 1);
612 var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
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.mjs
616 var import_primitives5 = __toESM(require_primitives(), 1);
617 var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
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.mjs
621 var import_notices3 = __toESM(require_notices(), 1);
622 var import_preferences10 = __toESM(require_preferences(), 1);
623 var import_commands2 = __toESM(require_commands(), 1);
624 var import_block_library = __toESM(require_block_library(), 1);
625 var import_url5 = __toESM(require_url(), 1);
626 var import_html_entities = __toESM(require_html_entities(), 1);
627 var import_core_data8 = __toESM(require_core_data(), 1);
628 var import_components9 = __toESM(require_components(), 1);
629 var import_compose3 = __toESM(require_compose(), 1);
630
631 // packages/edit-post/build-module/components/back-button/index.mjs
632 var import_editor2 = __toESM(require_editor(), 1);
633 var import_components2 = __toESM(require_components(), 1);
634
635 // packages/edit-post/build-module/components/back-button/fullscreen-mode-close.mjs
636 var import_data2 = __toESM(require_data(), 1);
637 var import_components = __toESM(require_components(), 1);
638 var import_i18n = __toESM(require_i18n(), 1);
639 var import_url = __toESM(require_url(), 1);
640 var import_editor = __toESM(require_editor(), 1);
641 var import_core_data = __toESM(require_core_data(), 1);
642 var import_compose = __toESM(require_compose(), 1);
643 var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1);
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.mjs
764 var import_private_apis = __toESM(require_private_apis(), 1);
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.mjs
771 var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
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.mjs
797 var import_data3 = __toESM(require_data(), 1);
798 var import_element2 = __toESM(require_element(), 1);
799 var import_editor3 = __toESM(require_editor(), 1);
800 var import_core_data2 = __toESM(require_core_data(), 1);
801
802 // packages/edit-post/build-module/store/constants.mjs
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.mjs
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.mjs
836 function EditorInitialization() {
837 useUpdatePostLinkListener();
838 return null;
839 }
840
841 // packages/edit-post/build-module/components/keyboard-shortcuts/index.mjs
842 var import_element3 = __toESM(require_element(), 1);
843 var import_data7 = __toESM(require_data(), 1);
844 var import_keyboard_shortcuts = __toESM(require_keyboard_shortcuts(), 1);
845 var import_i18n3 = __toESM(require_i18n(), 1);
846
847 // packages/edit-post/build-module/store/index.mjs
848 var import_data6 = __toESM(require_data(), 1);
849
850 // packages/edit-post/build-module/store/reducer.mjs
851 var import_data4 = __toESM(require_data(), 1);
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.mjs
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(), 1);
943 var import_preferences = __toESM(require_preferences(), 1);
944 var import_editor4 = __toESM(require_editor(), 1);
945 var import_deprecated = __toESM(require_deprecated(), 1);
946 var import_hooks = __toESM(require_hooks(), 1);
947 var import_core_data3 = __toESM(require_core_data(), 1);
948 var import_notices = __toESM(require_notices(), 1);
949 var import_i18n2 = __toESM(require_i18n(), 1);
950
951 // packages/edit-post/build-module/utils/meta-boxes.mjs
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.mjs
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.mjs
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(), 1);
1240 var import_preferences2 = __toESM(require_preferences(), 1);
1241 var import_core_data4 = __toESM(require_core_data(), 1);
1242 var import_editor5 = __toESM(require_editor(), 1);
1243 var import_deprecated2 = __toESM(require_deprecated(), 1);
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.mjs
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.mjs
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.mjs
1523 var import_data8 = __toESM(require_data(), 1);
1524 var import_i18n4 = __toESM(require_i18n(), 1);
1525 var import_components3 = __toESM(require_components(), 1);
1526 var import_element4 = __toESM(require_element(), 1);
1527 var import_editor6 = __toESM(require_editor(), 1);
1528 var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
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 __next40pxDefaultSize: true
1572 }
1573 ),
1574 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1575 import_components3.ToggleControl,
1576 {
1577 label: (0, import_i18n4._x)("Synced", "pattern (singular)"),
1578 help: (0, import_i18n4.__)(
1579 "Sync this pattern across multiple locations."
1580 ),
1581 checked: !syncType,
1582 onChange: () => {
1583 setSyncType(
1584 !syncType ? "unsynced" : void 0
1585 );
1586 }
1587 }
1588 ),
1589 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components3.__experimentalHStack, { justify: "right", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1590 import_components3.Button,
1591 {
1592 __next40pxDefaultSize: true,
1593 variant: "primary",
1594 type: "submit",
1595 disabled: !title,
1596 accessibleWhenDisabled: true,
1597 children: (0, import_i18n4.__)("Create")
1598 }
1599 ) })
1600 ] })
1601 }
1602 )
1603 }
1604 ) });
1605 }
1606
1607 // packages/edit-post/build-module/components/browser-url/index.mjs
1608 var import_element5 = __toESM(require_element(), 1);
1609 var import_data9 = __toESM(require_data(), 1);
1610 var import_url2 = __toESM(require_url(), 1);
1611 var import_editor7 = __toESM(require_editor(), 1);
1612 function getPostEditURL(postId) {
1613 return (0, import_url2.addQueryArgs)("post.php", { post: postId, action: "edit" });
1614 }
1615 function BrowserURL() {
1616 const [historyId, setHistoryId] = (0, import_element5.useState)(null);
1617 const { postId, postStatus } = (0, import_data9.useSelect)((select3) => {
1618 const { getCurrentPost } = select3(import_editor7.store);
1619 const post = getCurrentPost();
1620 let { id, status, type } = post;
1621 const isTemplate = ["wp_template", "wp_template_part"].includes(
1622 type
1623 );
1624 if (isTemplate) {
1625 id = post.wp_id;
1626 }
1627 return {
1628 postId: id,
1629 postStatus: status
1630 };
1631 }, []);
1632 (0, import_element5.useEffect)(() => {
1633 if (postId && postId !== historyId && postStatus !== "auto-draft") {
1634 window.history.replaceState(
1635 { id: postId },
1636 "Post " + postId,
1637 getPostEditURL(postId)
1638 );
1639 setHistoryId(postId);
1640 }
1641 }, [postId, postStatus, historyId]);
1642 return null;
1643 }
1644
1645 // packages/edit-post/build-module/components/meta-boxes/index.mjs
1646 var import_data12 = __toESM(require_data(), 1);
1647
1648 // packages/edit-post/build-module/components/meta-boxes/meta-boxes-area/index.mjs
1649 var import_element6 = __toESM(require_element(), 1);
1650 var import_components4 = __toESM(require_components(), 1);
1651 var import_data10 = __toESM(require_data(), 1);
1652 var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1);
1653 function MetaBoxesArea({ location }) {
1654 const container = (0, import_element6.useRef)(null);
1655 const formRef = (0, import_element6.useRef)(null);
1656 (0, import_element6.useEffect)(() => {
1657 formRef.current = document.querySelector(
1658 ".metabox-location-" + location
1659 );
1660 if (formRef.current) {
1661 container.current.appendChild(formRef.current);
1662 }
1663 return () => {
1664 if (formRef.current) {
1665 document.querySelector("#metaboxes").appendChild(formRef.current);
1666 }
1667 };
1668 }, [location]);
1669 const isSaving = (0, import_data10.useSelect)((select3) => {
1670 return select3(store).isSavingMetaBoxes();
1671 }, []);
1672 const classes = clsx_default("edit-post-meta-boxes-area", `is-${location}`, {
1673 "is-loading": isSaving
1674 });
1675 return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: classes, children: [
1676 isSaving && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_components4.Spinner, {}),
1677 /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1678 "div",
1679 {
1680 className: "edit-post-meta-boxes-area__container",
1681 ref: container
1682 }
1683 ),
1684 /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "edit-post-meta-boxes-area__clear" })
1685 ] });
1686 }
1687 var meta_boxes_area_default = MetaBoxesArea;
1688
1689 // packages/edit-post/build-module/components/meta-boxes/meta-box-visibility.mjs
1690 var import_element7 = __toESM(require_element(), 1);
1691 var import_data11 = __toESM(require_data(), 1);
1692 var import_editor8 = __toESM(require_editor(), 1);
1693 function MetaBoxVisibility({ id }) {
1694 const isVisible = (0, import_data11.useSelect)(
1695 (select3) => {
1696 return select3(import_editor8.store).isEditorPanelEnabled(
1697 `meta-box-${id}`
1698 );
1699 },
1700 [id]
1701 );
1702 (0, import_element7.useEffect)(() => {
1703 const element = document.getElementById(id);
1704 if (!element) {
1705 return;
1706 }
1707 if (isVisible) {
1708 element.classList.remove("is-hidden");
1709 } else {
1710 element.classList.add("is-hidden");
1711 }
1712 }, [id, isVisible]);
1713 return null;
1714 }
1715
1716 // packages/edit-post/build-module/components/meta-boxes/index.mjs
1717 var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1);
1718 function MetaBoxes({ location }) {
1719 const metaBoxes2 = (0, import_data12.useSelect)(
1720 (select3) => select3(store).getMetaBoxesPerLocation(location),
1721 [location]
1722 );
1723 return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
1724 (metaBoxes2 ?? []).map(({ id }) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(MetaBoxVisibility, { id }, id)),
1725 /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(meta_boxes_area_default, { location })
1726 ] });
1727 }
1728
1729 // packages/edit-post/build-module/components/more-menu/index.mjs
1730 var import_i18n10 = __toESM(require_i18n(), 1);
1731 var import_compose2 = __toESM(require_compose(), 1);
1732 var import_editor14 = __toESM(require_editor(), 1);
1733 var import_keycodes = __toESM(require_keycodes(), 1);
1734 var import_preferences8 = __toESM(require_preferences(), 1);
1735
1736 // packages/edit-post/build-module/components/more-menu/manage-patterns-menu-item.mjs
1737 var import_components5 = __toESM(require_components(), 1);
1738 var import_core_data5 = __toESM(require_core_data(), 1);
1739 var import_data13 = __toESM(require_data(), 1);
1740 var import_i18n5 = __toESM(require_i18n(), 1);
1741 var import_url3 = __toESM(require_url(), 1);
1742 var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1);
1743 function ManagePatternsMenuItem() {
1744 const url = (0, import_data13.useSelect)((select3) => {
1745 const { canUser } = select3(import_core_data5.store);
1746 const defaultUrl = (0, import_url3.addQueryArgs)("edit.php", {
1747 post_type: "wp_block"
1748 });
1749 const patternsUrl = (0, import_url3.addQueryArgs)("site-editor.php", {
1750 p: "/pattern"
1751 });
1752 return canUser("create", {
1753 kind: "postType",
1754 name: "wp_template"
1755 }) ? patternsUrl : defaultUrl;
1756 }, []);
1757 return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_components5.MenuItem, { role: "menuitem", href: url, children: (0, import_i18n5.__)("Manage patterns") });
1758 }
1759 var manage_patterns_menu_item_default = ManagePatternsMenuItem;
1760
1761 // packages/edit-post/build-module/components/more-menu/welcome-guide-menu-item.mjs
1762 var import_data14 = __toESM(require_data(), 1);
1763 var import_preferences3 = __toESM(require_preferences(), 1);
1764 var import_i18n6 = __toESM(require_i18n(), 1);
1765 var import_editor9 = __toESM(require_editor(), 1);
1766 var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1);
1767 function WelcomeGuideMenuItem() {
1768 const isEditingTemplate2 = (0, import_data14.useSelect)(
1769 (select3) => select3(import_editor9.store).getCurrentPostType() === "wp_template",
1770 []
1771 );
1772 return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1773 import_preferences3.PreferenceToggleMenuItem,
1774 {
1775 scope: "core/edit-post",
1776 name: isEditingTemplate2 ? "welcomeGuideTemplate" : "welcomeGuide",
1777 label: (0, import_i18n6.__)("Welcome Guide")
1778 }
1779 );
1780 }
1781
1782 // packages/edit-post/build-module/components/preferences-modal/index.mjs
1783 var import_i18n9 = __toESM(require_i18n(), 1);
1784 var import_preferences7 = __toESM(require_preferences(), 1);
1785 var import_editor13 = __toESM(require_editor(), 1);
1786
1787 // packages/edit-post/build-module/components/preferences-modal/meta-boxes-section.mjs
1788 var import_i18n8 = __toESM(require_i18n(), 1);
1789 var import_data17 = __toESM(require_data(), 1);
1790 var import_editor12 = __toESM(require_editor(), 1);
1791 var import_preferences6 = __toESM(require_preferences(), 1);
1792
1793 // packages/edit-post/build-module/components/preferences-modal/enable-custom-fields.mjs
1794 var import_element8 = __toESM(require_element(), 1);
1795 var import_i18n7 = __toESM(require_i18n(), 1);
1796 var import_components6 = __toESM(require_components(), 1);
1797 var import_data15 = __toESM(require_data(), 1);
1798 var import_editor10 = __toESM(require_editor(), 1);
1799 var import_preferences4 = __toESM(require_preferences(), 1);
1800 var import_url4 = __toESM(require_url(), 1);
1801 var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
1802 var { PreferenceBaseOption } = unlock(import_preferences4.privateApis);
1803 function submitCustomFieldsForm() {
1804 const customFieldsForm = document.getElementById(
1805 "toggle-custom-fields-form"
1806 );
1807 customFieldsForm.querySelector('[name="_wp_http_referer"]').setAttribute("value", (0, import_url4.getPathAndQueryString)(window.location.href));
1808 customFieldsForm.submit();
1809 }
1810 function CustomFieldsConfirmation({ willEnable }) {
1811 const [isReloading, setIsReloading] = (0, import_element8.useState)(false);
1812 return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
1813 /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { className: "edit-post-preferences-modal__custom-fields-confirmation-message", children: (0, import_i18n7.__)(
1814 "A page reload is required for this change. Make sure your content is saved before reloading."
1815 ) }),
1816 /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1817 import_components6.Button,
1818 {
1819 __next40pxDefaultSize: true,
1820 variant: "secondary",
1821 isBusy: isReloading,
1822 accessibleWhenDisabled: true,
1823 disabled: isReloading,
1824 onClick: () => {
1825 setIsReloading(true);
1826 submitCustomFieldsForm();
1827 },
1828 children: willEnable ? (0, import_i18n7.__)("Show & Reload Page") : (0, import_i18n7.__)("Hide & Reload Page")
1829 }
1830 )
1831 ] });
1832 }
1833 function EnableCustomFieldsOption({ label }) {
1834 const areCustomFieldsEnabled = (0, import_data15.useSelect)((select3) => {
1835 return !!select3(import_editor10.store).getEditorSettings().enableCustomFields;
1836 }, []);
1837 const [isChecked, setIsChecked] = (0, import_element8.useState)(areCustomFieldsEnabled);
1838 return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1839 PreferenceBaseOption,
1840 {
1841 label,
1842 isChecked,
1843 onChange: setIsChecked,
1844 children: isChecked !== areCustomFieldsEnabled && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CustomFieldsConfirmation, { willEnable: isChecked })
1845 }
1846 );
1847 }
1848
1849 // packages/edit-post/build-module/components/preferences-modal/enable-panel.mjs
1850 var import_data16 = __toESM(require_data(), 1);
1851 var import_editor11 = __toESM(require_editor(), 1);
1852 var import_preferences5 = __toESM(require_preferences(), 1);
1853 var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
1854 var { PreferenceBaseOption: PreferenceBaseOption2 } = unlock(import_preferences5.privateApis);
1855 function EnablePanelOption(props) {
1856 const { toggleEditorPanelEnabled: toggleEditorPanelEnabled2 } = (0, import_data16.useDispatch)(import_editor11.store);
1857 const { isChecked, isRemoved } = (0, import_data16.useSelect)(
1858 (select3) => {
1859 const { isEditorPanelEnabled: isEditorPanelEnabled2, isEditorPanelRemoved: isEditorPanelRemoved2 } = select3(import_editor11.store);
1860 return {
1861 isChecked: isEditorPanelEnabled2(props.panelName),
1862 isRemoved: isEditorPanelRemoved2(props.panelName)
1863 };
1864 },
1865 [props.panelName]
1866 );
1867 if (isRemoved) {
1868 return null;
1869 }
1870 return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1871 PreferenceBaseOption2,
1872 {
1873 isChecked,
1874 onChange: () => toggleEditorPanelEnabled2(props.panelName),
1875 ...props
1876 }
1877 );
1878 }
1879
1880 // packages/edit-post/build-module/components/preferences-modal/meta-boxes-section.mjs
1881 var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
1882 var { PreferencesModalSection } = unlock(import_preferences6.privateApis);
1883 function MetaBoxesSection({
1884 areCustomFieldsRegistered,
1885 metaBoxes: metaBoxes2,
1886 ...sectionProps
1887 }) {
1888 const thirdPartyMetaBoxes = metaBoxes2.filter(
1889 ({ id }) => id !== "postcustom"
1890 );
1891 if (!areCustomFieldsRegistered && thirdPartyMetaBoxes.length === 0) {
1892 return null;
1893 }
1894 return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(PreferencesModalSection, { ...sectionProps, children: [
1895 areCustomFieldsRegistered && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(EnableCustomFieldsOption, { label: (0, import_i18n8.__)("Custom fields") }),
1896 thirdPartyMetaBoxes.map(({ id, title }) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1897 EnablePanelOption,
1898 {
1899 label: title,
1900 panelName: `meta-box-${id}`
1901 },
1902 id
1903 ))
1904 ] });
1905 }
1906 var meta_boxes_section_default = (0, import_data17.withSelect)((select3) => {
1907 const { getEditorSettings } = select3(import_editor12.store);
1908 const { getAllMetaBoxes: getAllMetaBoxes2 } = select3(store);
1909 return {
1910 // This setting should not live in the block editor's store.
1911 areCustomFieldsRegistered: getEditorSettings().enableCustomFields !== void 0,
1912 metaBoxes: getAllMetaBoxes2()
1913 };
1914 })(MetaBoxesSection);
1915
1916 // packages/edit-post/build-module/components/preferences-modal/index.mjs
1917 var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
1918 var { PreferenceToggleControl } = unlock(import_preferences7.privateApis);
1919 var { PreferencesModal } = unlock(import_editor13.privateApis);
1920 function EditPostPreferencesModal() {
1921 const extraSections = {
1922 general: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(meta_boxes_section_default, { title: (0, import_i18n9.__)("Advanced") }),
1923 appearance: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1924 PreferenceToggleControl,
1925 {
1926 scope: "core/edit-post",
1927 featureName: "themeStyles",
1928 help: (0, import_i18n9.__)("Make the editor look like your theme."),
1929 label: (0, import_i18n9.__)("Use theme styles")
1930 }
1931 )
1932 };
1933 return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(PreferencesModal, { extraSections });
1934 }
1935
1936 // packages/edit-post/build-module/components/more-menu/index.mjs
1937 var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
1938 var { ToolsMoreMenuGroup, ViewMoreMenuGroup } = unlock(import_editor14.privateApis);
1939 var MoreMenu = () => {
1940 const isLargeViewport = (0, import_compose2.useViewportMatch)("large");
1941 return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
1942 isLargeViewport && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ViewMoreMenuGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1943 import_preferences8.PreferenceToggleMenuItem,
1944 {
1945 scope: "core/edit-post",
1946 name: "fullscreenMode",
1947 label: (0, import_i18n10.__)("Fullscreen mode"),
1948 info: (0, import_i18n10.__)("Show and hide the admin user interface"),
1949 messageActivated: (0, import_i18n10.__)("Fullscreen mode activated."),
1950 messageDeactivated: (0, import_i18n10.__)(
1951 "Fullscreen mode deactivated."
1952 ),
1953 shortcut: import_keycodes.displayShortcut.secondary("f")
1954 }
1955 ) }),
1956 /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ToolsMoreMenuGroup, { children: [
1957 /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(manage_patterns_menu_item_default, {}),
1958 /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(WelcomeGuideMenuItem, {})
1959 ] }),
1960 /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(EditPostPreferencesModal, {})
1961 ] });
1962 };
1963 var more_menu_default = MoreMenu;
1964
1965 // packages/edit-post/build-module/components/welcome-guide/index.mjs
1966 var import_data20 = __toESM(require_data(), 1);
1967
1968 // packages/edit-post/build-module/components/welcome-guide/default.mjs
1969 var import_data18 = __toESM(require_data(), 1);
1970 var import_components7 = __toESM(require_components(), 1);
1971 var import_i18n11 = __toESM(require_i18n(), 1);
1972 var import_element9 = __toESM(require_element(), 1);
1973
1974 // packages/edit-post/build-module/components/welcome-guide/image.mjs
1975 var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
1976 function WelcomeGuideImage({ nonAnimatedSrc, animatedSrc }) {
1977 return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("picture", { className: "edit-post-welcome-guide__image", children: [
1978 /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1979 "source",
1980 {
1981 srcSet: nonAnimatedSrc,
1982 media: "(prefers-reduced-motion: reduce)"
1983 }
1984 ),
1985 /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("img", { src: animatedSrc, width: "312", height: "240", alt: "" })
1986 ] });
1987 }
1988
1989 // packages/edit-post/build-module/components/welcome-guide/default.mjs
1990 var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
1991 function WelcomeGuideDefault() {
1992 const { toggleFeature: toggleFeature2 } = (0, import_data18.useDispatch)(store);
1993 return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1994 import_components7.Guide,
1995 {
1996 className: "edit-post-welcome-guide",
1997 contentLabel: (0, import_i18n11.__)("Welcome to the editor"),
1998 finishButtonText: (0, import_i18n11.__)("Get started"),
1999 onFinish: () => toggleFeature2("welcomeGuide"),
2000 pages: [
2001 {
2002 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2003 WelcomeGuideImage,
2004 {
2005 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-canvas.svg",
2006 animatedSrc: "https://s.w.org/images/block-editor/welcome-canvas.gif"
2007 }
2008 ),
2009 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2010 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Welcome to the editor") }),
2011 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_i18n11.__)(
2012 "In the WordPress editor, each paragraph, image, or video is presented as a distinct \u201Cblock\u201D of content."
2013 ) })
2014 ] })
2015 },
2016 {
2017 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2018 WelcomeGuideImage,
2019 {
2020 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-editor.svg",
2021 animatedSrc: "https://s.w.org/images/block-editor/welcome-editor.gif"
2022 }
2023 ),
2024 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2025 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Customize each block") }),
2026 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_i18n11.__)(
2027 "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."
2028 ) })
2029 ] })
2030 },
2031 {
2032 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2033 WelcomeGuideImage,
2034 {
2035 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-library.svg",
2036 animatedSrc: "https://s.w.org/images/block-editor/welcome-library.gif"
2037 }
2038 ),
2039 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2040 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Explore all blocks") }),
2041 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_element9.createInterpolateElement)(
2042 (0, import_i18n11.__)(
2043 "All of the blocks available to you live in the block library. You\u2019ll find it wherever you see the <InserterIconImage /> icon."
2044 ),
2045 {
2046 InserterIconImage: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2047 "img",
2048 {
2049 alt: (0, import_i18n11.__)("inserter"),
2050 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"
2051 }
2052 )
2053 }
2054 ) })
2055 ] })
2056 },
2057 {
2058 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2059 WelcomeGuideImage,
2060 {
2061 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-documentation.svg",
2062 animatedSrc: "https://s.w.org/images/block-editor/welcome-documentation.gif"
2063 }
2064 ),
2065 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2066 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Learn more") }),
2067 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_element9.createInterpolateElement)(
2068 (0, import_i18n11.__)(
2069 "New to the block editor? Want to learn more about using it? <a>Here's a detailed guide.</a>"
2070 ),
2071 {
2072 a: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2073 import_components7.ExternalLink,
2074 {
2075 href: (0, import_i18n11.__)(
2076 "https://wordpress.org/documentation/article/wordpress-block-editor/"
2077 )
2078 }
2079 )
2080 }
2081 ) })
2082 ] })
2083 }
2084 ]
2085 }
2086 );
2087 }
2088
2089 // packages/edit-post/build-module/components/welcome-guide/template.mjs
2090 var import_data19 = __toESM(require_data(), 1);
2091 var import_components8 = __toESM(require_components(), 1);
2092 var import_i18n12 = __toESM(require_i18n(), 1);
2093 var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
2094 function WelcomeGuideTemplate() {
2095 const { toggleFeature: toggleFeature2 } = (0, import_data19.useDispatch)(store);
2096 return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2097 import_components8.Guide,
2098 {
2099 className: "edit-template-welcome-guide",
2100 contentLabel: (0, import_i18n12.__)("Welcome to the template editor"),
2101 finishButtonText: (0, import_i18n12.__)("Get started"),
2102 onFinish: () => toggleFeature2("welcomeGuideTemplate"),
2103 pages: [
2104 {
2105 image: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2106 WelcomeGuideImage,
2107 {
2108 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-template-editor.svg",
2109 animatedSrc: "https://s.w.org/images/block-editor/welcome-template-editor.gif"
2110 }
2111 ),
2112 content: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
2113 /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n12.__)("Welcome to the template editor") }),
2114 /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_i18n12.__)(
2115 "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."
2116 ) })
2117 ] })
2118 }
2119 ]
2120 }
2121 );
2122 }
2123
2124 // packages/edit-post/build-module/components/welcome-guide/index.mjs
2125 var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
2126 function WelcomeGuide({ postType }) {
2127 const { isActive, isEditingTemplate: isEditingTemplate2 } = (0, import_data20.useSelect)(
2128 (select3) => {
2129 const { isFeatureActive: isFeatureActive2 } = select3(store);
2130 const _isEditingTemplate = postType === "wp_template";
2131 const feature = _isEditingTemplate ? "welcomeGuideTemplate" : "welcomeGuide";
2132 return {
2133 isActive: isFeatureActive2(feature),
2134 isEditingTemplate: _isEditingTemplate
2135 };
2136 },
2137 [postType]
2138 );
2139 if (!isActive) {
2140 return null;
2141 }
2142 return isEditingTemplate2 ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(WelcomeGuideTemplate, {}) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(WelcomeGuideDefault, {});
2143 }
2144
2145 // packages/edit-post/build-module/commands/use-commands.mjs
2146 var import_data21 = __toESM(require_data(), 1);
2147 var import_i18n13 = __toESM(require_i18n(), 1);
2148 var import_commands = __toESM(require_commands(), 1);
2149 var import_preferences9 = __toESM(require_preferences(), 1);
2150 var import_notices2 = __toESM(require_notices(), 1);
2151 function useCommands() {
2152 const { isFullscreen } = (0, import_data21.useSelect)((select3) => {
2153 const { get } = select3(import_preferences9.store);
2154 return {
2155 isFullscreen: get("core/edit-post", "fullscreenMode")
2156 };
2157 }, []);
2158 const { toggle } = (0, import_data21.useDispatch)(import_preferences9.store);
2159 const { createInfoNotice } = (0, import_data21.useDispatch)(import_notices2.store);
2160 (0, import_commands.useCommand)({
2161 name: "core/toggle-fullscreen-mode",
2162 label: isFullscreen ? (0, import_i18n13.__)("Exit fullscreen") : (0, import_i18n13.__)("Enter fullscreen"),
2163 icon: fullscreen_default,
2164 category: "command",
2165 callback: ({ close }) => {
2166 toggle("core/edit-post", "fullscreenMode");
2167 close();
2168 createInfoNotice(
2169 isFullscreen ? (0, import_i18n13.__)("Fullscreen off.") : (0, import_i18n13.__)("Fullscreen on."),
2170 {
2171 id: "core/edit-post/toggle-fullscreen-mode/notice",
2172 type: "snackbar",
2173 actions: [
2174 {
2175 label: (0, import_i18n13.__)("Undo"),
2176 onClick: () => {
2177 toggle("core/edit-post", "fullscreenMode");
2178 }
2179 }
2180 ]
2181 }
2182 );
2183 }
2184 });
2185 }
2186
2187 // packages/edit-post/build-module/components/layout/use-should-iframe.mjs
2188 var import_editor15 = __toESM(require_editor(), 1);
2189 var import_data22 = __toESM(require_data(), 1);
2190 var import_blocks2 = __toESM(require_blocks(), 1);
2191 var import_block_editor = __toESM(require_block_editor(), 1);
2192 var isGutenbergPlugin = true ? true : false;
2193 function useShouldIframe() {
2194 return (0, import_data22.useSelect)((select3) => {
2195 const { getCurrentPostType, getDeviceType } = select3(import_editor15.store);
2196 const { getClientIdsWithDescendants, getBlockName } = select3(import_block_editor.store);
2197 const { getBlockType } = select3(import_blocks2.store);
2198 return (
2199 // If the Gutenberg plugin is active, we ALWAYS use the iframe for
2200 // consistency across the post and site editor. We plan on enforcing
2201 // the iframe in the future, so Gutenberg both serves as way for us
2202 // to warn plugin developers and for plugin developers to test their
2203 // blocks easily. Before GB v22.5, we only enforced it for
2204 // block-based themes (classic themes used the same rules as core).
2205 isGutenbergPlugin || // We also still want to iframe all the special
2206 // editor features and modes such as device previews, zoom out, and
2207 // template/pattern editing.
2208 getDeviceType() !== "Desktop" || ["wp_template", "wp_block"].includes(getCurrentPostType()) || unlock(select3(import_block_editor.store)).isZoomOut() || // Finally, still iframe the editor if all present blocks are v3
2209 // (which means they are marked as iframe-compatible).
2210 [...new Set(getClientIdsWithDescendants().map(getBlockName))].map(getBlockType).filter(Boolean).every((blockType) => blockType.apiVersion >= 3)
2211 );
2212 }, []);
2213 }
2214
2215 // packages/edit-post/build-module/hooks/use-navigate-to-entity-record.mjs
2216 var import_element10 = __toESM(require_element(), 1);
2217 var import_data23 = __toESM(require_data(), 1);
2218 var import_editor16 = __toESM(require_editor(), 1);
2219 var import_core_data6 = __toESM(require_core_data(), 1);
2220 function useNavigateToEntityRecord(initialPostId, initialPostType, defaultRenderingMode) {
2221 const registry = (0, import_data23.useRegistry)();
2222 const [postHistory, dispatch2] = (0, import_element10.useReducer)(
2223 (historyState, { type, post: post2, previousRenderingMode: previousRenderingMode2, selectedBlockClientId }) => {
2224 if (type === "push") {
2225 const updatedHistory = [...historyState];
2226 const currentIndex = updatedHistory.length - 1;
2227 updatedHistory[currentIndex] = {
2228 ...updatedHistory[currentIndex],
2229 selectedBlockClientId
2230 };
2231 return [...updatedHistory, { post: post2, previousRenderingMode: previousRenderingMode2 }];
2232 }
2233 if (type === "pop") {
2234 if (historyState.length > 1) {
2235 return historyState.slice(0, -1);
2236 }
2237 }
2238 return historyState;
2239 },
2240 [
2241 {
2242 post: { postId: initialPostId, postType: initialPostType }
2243 }
2244 ]
2245 );
2246 const { post, previousRenderingMode } = postHistory[postHistory.length - 1];
2247 const { getRenderingMode } = (0, import_data23.useSelect)(import_editor16.store);
2248 const { setRenderingMode } = (0, import_data23.useDispatch)(import_editor16.store);
2249 const { editEntityRecord } = (0, import_data23.useDispatch)(import_core_data6.store);
2250 const onNavigateToEntityRecord = (0, import_element10.useCallback)(
2251 (params) => {
2252 const entityEdits = registry.select(import_core_data6.store).getEntityRecordEdits("postType", post.postType, post.postId);
2253 const externalClientId = entityEdits?.selection?.selectionStart?.clientId ?? null;
2254 dispatch2({
2255 type: "push",
2256 post: { postId: params.postId, postType: params.postType },
2257 // Save the current rendering mode so we can restore it when navigating back.
2258 previousRenderingMode: getRenderingMode(),
2259 selectedBlockClientId: externalClientId
2260 });
2261 setRenderingMode(defaultRenderingMode);
2262 },
2263 [
2264 registry,
2265 post.postType,
2266 post.postId,
2267 getRenderingMode,
2268 setRenderingMode,
2269 defaultRenderingMode
2270 ]
2271 );
2272 const onNavigateToPreviousEntityRecord = (0, import_element10.useCallback)(() => {
2273 if (postHistory.length > 1) {
2274 const previousItem = postHistory[postHistory.length - 2];
2275 if (previousItem.selectedBlockClientId) {
2276 editEntityRecord(
2277 "postType",
2278 previousItem.post.postType,
2279 previousItem.post.postId,
2280 {
2281 selection: {
2282 selectionStart: {
2283 clientId: previousItem.selectedBlockClientId
2284 },
2285 selectionEnd: {
2286 clientId: previousItem.selectedBlockClientId
2287 }
2288 }
2289 },
2290 { undoIgnore: true }
2291 );
2292 }
2293 }
2294 dispatch2({
2295 type: "pop"
2296 });
2297 if (previousRenderingMode) {
2298 setRenderingMode(previousRenderingMode);
2299 }
2300 }, [
2301 setRenderingMode,
2302 previousRenderingMode,
2303 postHistory,
2304 editEntityRecord
2305 ]);
2306 return {
2307 currentPost: post,
2308 onNavigateToEntityRecord,
2309 onNavigateToPreviousEntityRecord: postHistory.length > 1 ? onNavigateToPreviousEntityRecord : void 0
2310 };
2311 }
2312
2313 // packages/edit-post/build-module/components/meta-boxes/use-meta-box-initialization.mjs
2314 var import_data24 = __toESM(require_data(), 1);
2315 var import_editor17 = __toESM(require_editor(), 1);
2316 var import_core_data7 = __toESM(require_core_data(), 1);
2317 var import_element11 = __toESM(require_element(), 1);
2318 var useMetaBoxInitialization = (enabled) => {
2319 const { isEnabledAndEditorReady, isCollaborationEnabled } = (0, import_data24.useSelect)(
2320 (select3) => ({
2321 isEnabledAndEditorReady: enabled && select3(import_editor17.store).__unstableIsEditorReady(),
2322 isCollaborationEnabled: select3(import_editor17.store).isCollaborationEnabledForCurrentPost()
2323 }),
2324 [enabled]
2325 );
2326 const { setCollaborationSupported } = unlock((0, import_data24.useDispatch)(import_core_data7.store));
2327 const { initializeMetaBoxes: initializeMetaBoxes2 } = (0, import_data24.useDispatch)(store);
2328 (0, import_element11.useEffect)(() => {
2329 if (isEnabledAndEditorReady) {
2330 initializeMetaBoxes2();
2331 if (isCollaborationEnabled) {
2332 setCollaborationSupported(false);
2333 }
2334 }
2335 }, [
2336 isEnabledAndEditorReady,
2337 initializeMetaBoxes2,
2338 isCollaborationEnabled,
2339 setCollaborationSupported
2340 ]);
2341 };
2342
2343 // packages/edit-post/build-module/components/layout/index.mjs
2344 var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
2345 var { useCommandContext } = unlock(import_commands2.privateApis);
2346 var { useDrag } = unlock(import_components9.privateApis);
2347 var { Editor, FullscreenMode } = unlock(import_editor18.privateApis);
2348 var { BlockKeyboardShortcuts } = unlock(import_block_library.privateApis);
2349 var DESIGN_POST_TYPES = [
2350 "wp_template",
2351 "wp_template_part",
2352 "wp_block",
2353 "wp_navigation"
2354 ];
2355 function useEditorStyles(settings) {
2356 const { hasThemeStyleSupport } = (0, import_data25.useSelect)((select3) => {
2357 return {
2358 hasThemeStyleSupport: select3(store).isFeatureActive("themeStyles")
2359 };
2360 }, []);
2361 return (0, import_element12.useMemo)(() => {
2362 const presetStyles = settings.styles?.filter(
2363 (style) => style.__unstableType && style.__unstableType !== "theme"
2364 ) ?? [];
2365 const defaultEditorStyles = [
2366 ...settings?.defaultEditorStyles ?? [],
2367 ...presetStyles
2368 ];
2369 const hasThemeStyles = hasThemeStyleSupport && presetStyles.length !== (settings.styles?.length ?? 0);
2370 if (!settings.disableLayoutStyles && !hasThemeStyles) {
2371 defaultEditorStyles.push({
2372 css: getLayoutStyles({
2373 style: {},
2374 selector: "body",
2375 hasBlockGapSupport: false,
2376 hasFallbackGapSupport: true,
2377 fallbackGapValue: "0.5em"
2378 })
2379 });
2380 }
2381 return hasThemeStyles ? settings.styles ?? [] : defaultEditorStyles;
2382 }, [
2383 settings.defaultEditorStyles,
2384 settings.disableLayoutStyles,
2385 settings.styles,
2386 hasThemeStyleSupport
2387 ]);
2388 }
2389 function MetaBoxesMain({ isLegacy }) {
2390 const [isOpen, openHeight, hasAnyVisible] = (0, import_data25.useSelect)((select3) => {
2391 const { get } = select3(import_preferences10.store);
2392 const { isMetaBoxLocationVisible: isMetaBoxLocationVisible2 } = select3(store);
2393 return [
2394 !!get("core/edit-post", "metaBoxesMainIsOpen"),
2395 get("core/edit-post", "metaBoxesMainOpenHeight"),
2396 isMetaBoxLocationVisible2("normal") || isMetaBoxLocationVisible2("advanced") || isMetaBoxLocationVisible2("side")
2397 ];
2398 }, []);
2399 const { set: setPreference } = (0, import_data25.useDispatch)(import_preferences10.store);
2400 const isShort = (0, import_compose3.useMediaQuery)("(max-height: 549px)");
2401 const [{ min = 0, max }, setHeightConstraints] = (0, import_element12.useState)(() => ({}));
2402 const effectSizeConstraints = (0, import_compose3.useRefEffect)((node) => {
2403 const container = node.closest(
2404 ".interface-interface-skeleton__content"
2405 );
2406 if (!container) {
2407 return;
2408 }
2409 const noticeLists = container.querySelectorAll(
2410 ":scope > .components-notice-list"
2411 );
2412 const resizeHandle = container.querySelector(
2413 ".edit-post-meta-boxes-main__presenter"
2414 );
2415 const deriveConstraints = () => {
2416 const fullHeight = container.offsetHeight;
2417 let nextMax = fullHeight;
2418 for (const element of noticeLists) {
2419 nextMax -= element.offsetHeight;
2420 }
2421 const nextMin = resizeHandle.offsetHeight;
2422 setHeightConstraints({ min: nextMin, max: nextMax });
2423 };
2424 const observer = new window.ResizeObserver(deriveConstraints);
2425 observer.observe(container);
2426 for (const element of noticeLists) {
2427 observer.observe(element);
2428 }
2429 return () => observer.disconnect();
2430 }, []);
2431 const metaBoxesMainRef = (0, import_element12.useRef)();
2432 const setMainRefs = (0, import_compose3.useMergeRefs)([
2433 metaBoxesMainRef,
2434 effectSizeConstraints
2435 ]);
2436 const separatorRef = (0, import_element12.useRef)();
2437 const separatorHelpId = (0, import_element12.useId)();
2438 const heightRef = (0, import_element12.useRef)();
2439 const applyHeight = (candidateHeight = "auto", isPersistent) => {
2440 let styleHeight;
2441 if (candidateHeight === "auto") {
2442 isPersistent = false;
2443 styleHeight = candidateHeight;
2444 } else {
2445 candidateHeight = Math.min(max, Math.max(min, candidateHeight));
2446 heightRef.current = candidateHeight;
2447 styleHeight = `${candidateHeight}px`;
2448 }
2449 if (isPersistent) {
2450 setPreference(
2451 "core/edit-post",
2452 "metaBoxesMainOpenHeight",
2453 candidateHeight
2454 );
2455 } else {
2456 metaBoxesMainRef.current.style.height = styleHeight;
2457 if (!isShort) {
2458 separatorRef.current.ariaValueNow = getAriaValueNow(candidateHeight);
2459 }
2460 }
2461 };
2462 const bindDragGesture = useDrag(
2463 ({ movement, first, last, memo, tap, args }) => {
2464 const pane = metaBoxesMainRef.current;
2465 const [, yMovement] = movement;
2466 if (first) {
2467 pane.classList.add("is-resizing");
2468 let fromHeight = heightRef.current ?? pane.offsetHeight;
2469 if (isOpen) {
2470 if (fromHeight > max) {
2471 fromHeight = max;
2472 }
2473 } else {
2474 fromHeight = min;
2475 }
2476 applyHeight(fromHeight - yMovement);
2477 return { fromHeight };
2478 }
2479 if (!first && !last && !tap) {
2480 applyHeight(memo.fromHeight - yMovement);
2481 return memo;
2482 }
2483 pane.classList.remove("is-resizing");
2484 if (tap) {
2485 const [onTap] = args;
2486 onTap?.();
2487 return;
2488 }
2489 const nextIsOpen = heightRef.current > min;
2490 persistIsOpen(nextIsOpen);
2491 applyHeight(heightRef.current, nextIsOpen);
2492 },
2493 { keyboardDisplacement: 20, filterTaps: true }
2494 );
2495 if (!hasAnyVisible) {
2496 return;
2497 }
2498 const contents = /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2499 "div",
2500 {
2501 className: "edit-post-layout__metaboxes edit-post-meta-boxes-main__liner",
2502 hidden: !isLegacy && !isOpen,
2503 children: [
2504 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MetaBoxes, { location: "normal" }),
2505 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MetaBoxes, { location: "advanced" })
2506 ]
2507 }
2508 );
2509 if (isLegacy) {
2510 return contents;
2511 }
2512 const isAutoHeight = openHeight === void 0;
2513 const usedOpenHeight = isShort ? "auto" : openHeight;
2514 const usedHeight = isOpen ? usedOpenHeight : min;
2515 const getAriaValueNow = (height) => Math.round((height - min) / (max - min) * 100);
2516 const usedAriaValueNow = max === void 0 || isAutoHeight ? 50 : getAriaValueNow(usedHeight);
2517 const persistIsOpen = (to = !isOpen) => setPreference("core/edit-post", "metaBoxesMainIsOpen", to);
2518 const paneLabel = (0, import_i18n14.__)("Meta Boxes");
2519 const toggle = /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2520 "button",
2521 {
2522 "aria-expanded": isOpen,
2523 onClick: ({ detail }) => {
2524 if (isShort || !detail) {
2525 persistIsOpen();
2526 }
2527 },
2528 ...!isShort && bindDragGesture(persistIsOpen),
2529 children: [
2530 paneLabel,
2531 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components9.Icon, { icon: isOpen ? chevron_up_default : chevron_down_default })
2532 ]
2533 }
2534 );
2535 const separator = !isShort && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2536 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components9.Tooltip, { text: (0, import_i18n14.__)("Drag to resize"), children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2537 "button",
2538 {
2539 ref: separatorRef,
2540 role: "separator",
2541 "aria-valuenow": usedAriaValueNow,
2542 "aria-label": (0, import_i18n14.__)("Drag to resize"),
2543 "aria-describedby": separatorHelpId,
2544 ...bindDragGesture()
2545 }
2546 ) }),
2547 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components9.VisuallyHidden, { id: separatorHelpId, children: (0, import_i18n14.__)(
2548 "Use up and down arrow keys to resize the meta box pane."
2549 ) })
2550 ] });
2551 return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2552 navigable_region_default,
2553 {
2554 ariaLabel: paneLabel,
2555 ref: setMainRefs,
2556 className: clsx_default(
2557 "edit-post-meta-boxes-main",
2558 !isShort && "is-resizable"
2559 ),
2560 style: { height: usedHeight },
2561 children: [
2562 /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "edit-post-meta-boxes-main__presenter", children: [
2563 toggle,
2564 separator
2565 ] }),
2566 contents
2567 ]
2568 }
2569 );
2570 }
2571 function Layout({
2572 postId: initialPostId,
2573 postType: initialPostType,
2574 settings,
2575 initialEdits
2576 }) {
2577 useCommands();
2578 const shouldIframe = useShouldIframe();
2579 const { createErrorNotice } = (0, import_data25.useDispatch)(import_notices3.store);
2580 const {
2581 currentPost: { postId: currentPostId, postType: currentPostType },
2582 onNavigateToEntityRecord,
2583 onNavigateToPreviousEntityRecord
2584 } = useNavigateToEntityRecord(
2585 initialPostId,
2586 initialPostType,
2587 "post-only"
2588 );
2589 const isEditingTemplate2 = currentPostType === "wp_template";
2590 const {
2591 mode,
2592 isFullscreenActive,
2593 hasResolvedMode,
2594 hasActiveMetaboxes,
2595 hasBlockSelected,
2596 showIconLabels,
2597 isDistractionFree,
2598 showMetaBoxes,
2599 isWelcomeGuideVisible,
2600 templateId,
2601 isDevicePreview
2602 } = (0, import_data25.useSelect)(
2603 (select3) => {
2604 const { get } = select3(import_preferences10.store);
2605 const { isFeatureActive: isFeatureActive2, hasMetaBoxes: hasMetaBoxes2 } = select3(store);
2606 const { canUser, getPostType, getTemplateId } = unlock(
2607 select3(import_core_data8.store)
2608 );
2609 const supportsTemplateMode = settings.supportsTemplateMode;
2610 const isViewable = getPostType(currentPostType)?.viewable ?? false;
2611 const canViewTemplate = canUser("read", {
2612 kind: "postType",
2613 name: "wp_template"
2614 });
2615 const { getBlockSelectionStart, isZoomOut } = unlock(
2616 select3(import_block_editor2.store)
2617 );
2618 const { getEditorMode: getEditorMode2, getDefaultRenderingMode, getDeviceType } = unlock(select3(import_editor18.store));
2619 const isNotDesignPostType = !DESIGN_POST_TYPES.includes(currentPostType);
2620 const isDirectlyEditingPattern = currentPostType === "wp_block" && !onNavigateToPreviousEntityRecord;
2621 const _templateId = getTemplateId(currentPostType, currentPostId);
2622 const defaultMode = getDefaultRenderingMode(currentPostType);
2623 return {
2624 mode: getEditorMode2(),
2625 isFullscreenActive: isFeatureActive2("fullscreenMode"),
2626 hasActiveMetaboxes: hasMetaBoxes2(),
2627 hasResolvedMode: defaultMode === "template-locked" ? !!_templateId : defaultMode !== void 0,
2628 hasBlockSelected: !!getBlockSelectionStart(),
2629 showIconLabels: get("core", "showIconLabels"),
2630 isDistractionFree: get("core", "distractionFree"),
2631 showMetaBoxes: isNotDesignPostType && !isZoomOut() || isDirectlyEditingPattern,
2632 isWelcomeGuideVisible: isFeatureActive2("welcomeGuide"),
2633 templateId: supportsTemplateMode && isViewable && canViewTemplate && !isEditingTemplate2 ? _templateId : null,
2634 isDevicePreview: getDeviceType() !== "Desktop"
2635 };
2636 },
2637 [
2638 currentPostType,
2639 currentPostId,
2640 isEditingTemplate2,
2641 settings.supportsTemplateMode,
2642 onNavigateToPreviousEntityRecord
2643 ]
2644 );
2645 useMetaBoxInitialization(hasActiveMetaboxes && hasResolvedMode);
2646 const commandContext = hasBlockSelected ? "block-selection-edit" : "entity-edit";
2647 useCommandContext(commandContext);
2648 const styles = useEditorStyles(settings);
2649 const editorSettings = (0, import_element12.useMemo)(
2650 () => ({
2651 ...settings,
2652 styles,
2653 onNavigateToEntityRecord,
2654 onNavigateToPreviousEntityRecord,
2655 defaultRenderingMode: "post-only"
2656 }),
2657 [
2658 settings,
2659 styles,
2660 onNavigateToEntityRecord,
2661 onNavigateToPreviousEntityRecord
2662 ]
2663 );
2664 if (showIconLabels) {
2665 document.body.classList.add("show-icon-labels");
2666 } else {
2667 document.body.classList.remove("show-icon-labels");
2668 }
2669 const navigateRegionsProps = (0, import_components9.__unstableUseNavigateRegions)();
2670 const className = clsx_default("edit-post-layout", "is-mode-" + mode, {
2671 "has-metaboxes": hasActiveMetaboxes
2672 });
2673 function onPluginAreaError(name) {
2674 createErrorNotice(
2675 (0, import_i18n14.sprintf)(
2676 /* translators: %s: plugin name */
2677 (0, import_i18n14.__)(
2678 'The "%s" plugin has encountered an error and cannot be rendered.'
2679 ),
2680 name
2681 )
2682 );
2683 }
2684 const { createSuccessNotice } = (0, import_data25.useDispatch)(import_notices3.store);
2685 const onActionPerformed = (0, import_element12.useCallback)(
2686 (actionId, items) => {
2687 switch (actionId) {
2688 case "move-to-trash":
2689 {
2690 document.location.href = (0, import_url5.addQueryArgs)("edit.php", {
2691 trashed: 1,
2692 post_type: items[0].type,
2693 ids: items[0].id
2694 });
2695 }
2696 break;
2697 case "duplicate-post":
2698 {
2699 const newItem = items[0];
2700 const title = typeof newItem.title === "string" ? newItem.title : newItem.title?.rendered;
2701 createSuccessNotice(
2702 (0, import_i18n14.sprintf)(
2703 // translators: %s: Title of the created post or template, e.g: "Hello world".
2704 (0, import_i18n14.__)('"%s" successfully created.'),
2705 (0, import_html_entities.decodeEntities)(title) || (0, import_i18n14.__)("(no title)")
2706 ),
2707 {
2708 type: "snackbar",
2709 id: "duplicate-post-action",
2710 actions: [
2711 {
2712 label: (0, import_i18n14.__)("Edit"),
2713 onClick: () => {
2714 const postId = newItem.id;
2715 document.location.href = (0, import_url5.addQueryArgs)("post.php", {
2716 post: postId,
2717 action: "edit"
2718 });
2719 }
2720 }
2721 ]
2722 }
2723 );
2724 }
2725 break;
2726 }
2727 },
2728 [createSuccessNotice]
2729 );
2730 const initialPost = (0, import_element12.useMemo)(() => {
2731 return {
2732 type: initialPostType,
2733 id: initialPostId
2734 };
2735 }, [initialPostType, initialPostId]);
2736 const backButton = (0, import_compose3.useViewportMatch)("medium") && isFullscreenActive ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(back_button_default, { initialPost }) : null;
2737 return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components9.SlotFillProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_editor18.ErrorBoundary, { canCopyContent: true, children: [
2738 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(WelcomeGuide, { postType: currentPostType }),
2739 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2740 "div",
2741 {
2742 className: navigateRegionsProps.className,
2743 ...navigateRegionsProps,
2744 ref: navigateRegionsProps.ref,
2745 children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2746 Editor,
2747 {
2748 settings: editorSettings,
2749 initialEdits,
2750 postType: currentPostType,
2751 postId: currentPostId,
2752 templateId,
2753 className,
2754 forceIsDirty: hasActiveMetaboxes,
2755 disableIframe: !shouldIframe,
2756 autoFocus: !isWelcomeGuideVisible,
2757 onActionPerformed,
2758 extraSidebarPanels: showMetaBoxes && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MetaBoxes, { location: "side" }),
2759 extraContent: !isDistractionFree && showMetaBoxes && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MetaBoxesMain, { isLegacy: isDevicePreview }),
2760 children: [
2761 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.PostLockedModal, {}),
2762 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(EditorInitialization, {}),
2763 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(FullscreenMode, { isActive: isFullscreenActive }),
2764 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(BrowserURL, {}),
2765 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.UnsavedChangesWarning, {}),
2766 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.AutosaveMonitor, {}),
2767 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.LocalAutosaveMonitor, {}),
2768 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(keyboard_shortcuts_default, {}),
2769 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.EditorKeyboardShortcutsRegister, {}),
2770 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(BlockKeyboardShortcuts, {}),
2771 currentPostType === "wp_block" && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(InitPatternModal, {}),
2772 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_plugins.PluginArea, { onError: onPluginAreaError }),
2773 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(more_menu_default, {}),
2774 backButton,
2775 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_notices3.SnackbarNotices, { className: "edit-post-layout__snackbar" })
2776 ]
2777 }
2778 )
2779 }
2780 )
2781 ] }) });
2782 }
2783 var layout_default = Layout;
2784
2785 // packages/edit-post/build-module/deprecated.mjs
2786 var import_editor19 = __toESM(require_editor(), 1);
2787 var import_url6 = __toESM(require_url(), 1);
2788 var import_deprecated3 = __toESM(require_deprecated(), 1);
2789 var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
2790 var { PluginPostExcerpt } = unlock(import_editor19.privateApis);
2791 var isSiteEditor = (0, import_url6.getPath)(window.location.href)?.includes(
2792 "site-editor.php"
2793 );
2794 var deprecateSlot = (name) => {
2795 (0, import_deprecated3.default)(`wp.editPost.${name}`, {
2796 since: "6.6",
2797 alternative: `wp.editor.${name}`
2798 });
2799 };
2800 function PluginBlockSettingsMenuItem(props) {
2801 if (isSiteEditor) {
2802 return null;
2803 }
2804 deprecateSlot("PluginBlockSettingsMenuItem");
2805 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginBlockSettingsMenuItem, { ...props });
2806 }
2807 function PluginDocumentSettingPanel(props) {
2808 if (isSiteEditor) {
2809 return null;
2810 }
2811 deprecateSlot("PluginDocumentSettingPanel");
2812 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginDocumentSettingPanel, { ...props });
2813 }
2814 function PluginMoreMenuItem(props) {
2815 if (isSiteEditor) {
2816 return null;
2817 }
2818 deprecateSlot("PluginMoreMenuItem");
2819 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginMoreMenuItem, { ...props });
2820 }
2821 function PluginPrePublishPanel(props) {
2822 if (isSiteEditor) {
2823 return null;
2824 }
2825 deprecateSlot("PluginPrePublishPanel");
2826 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginPrePublishPanel, { ...props });
2827 }
2828 function PluginPostPublishPanel(props) {
2829 if (isSiteEditor) {
2830 return null;
2831 }
2832 deprecateSlot("PluginPostPublishPanel");
2833 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginPostPublishPanel, { ...props });
2834 }
2835 function PluginPostStatusInfo(props) {
2836 if (isSiteEditor) {
2837 return null;
2838 }
2839 deprecateSlot("PluginPostStatusInfo");
2840 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginPostStatusInfo, { ...props });
2841 }
2842 function PluginSidebar(props) {
2843 if (isSiteEditor) {
2844 return null;
2845 }
2846 deprecateSlot("PluginSidebar");
2847 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginSidebar, { ...props });
2848 }
2849 function PluginSidebarMoreMenuItem(props) {
2850 if (isSiteEditor) {
2851 return null;
2852 }
2853 deprecateSlot("PluginSidebarMoreMenuItem");
2854 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginSidebarMoreMenuItem, { ...props });
2855 }
2856 function __experimentalPluginPostExcerpt() {
2857 if (isSiteEditor) {
2858 return null;
2859 }
2860 (0, import_deprecated3.default)("wp.editPost.__experimentalPluginPostExcerpt", {
2861 since: "6.6",
2862 hint: "Core and custom panels can be access programmatically using their panel name.",
2863 link: "https://developer.wordpress.org/block-editor/reference-guides/slotfills/plugin-document-setting-panel/#accessing-a-panel-programmatically"
2864 });
2865 return PluginPostExcerpt;
2866 }
2867
2868 // packages/edit-post/build-module/index.mjs
2869 var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
2870 var {
2871 BackButton: __experimentalMainDashboardButton,
2872 registerCoreBlockBindingsSources
2873 } = unlock(import_editor20.privateApis);
2874 function initializeEditor(id, postType, postId, settings, initialEdits) {
2875 const isMediumOrBigger = window.matchMedia("(min-width: 782px)").matches;
2876 const target = document.getElementById(id);
2877 const root = (0, import_element13.createRoot)(target);
2878 (0, import_data26.dispatch)(import_preferences11.store).setDefaults("core/edit-post", {
2879 fullscreenMode: true,
2880 themeStyles: true,
2881 welcomeGuide: true,
2882 welcomeGuideTemplate: true
2883 });
2884 (0, import_data26.dispatch)(import_preferences11.store).setDefaults("core", {
2885 allowRightClickOverrides: true,
2886 editorMode: "visual",
2887 editorTool: "edit",
2888 fixedToolbar: false,
2889 hiddenBlockTypes: [],
2890 inactivePanels: [],
2891 openPanels: ["post-status"],
2892 showBlockBreadcrumbs: true,
2893 showIconLabels: false,
2894 showListViewByDefault: false,
2895 enableChoosePatternModal: true,
2896 isPublishSidebarEnabled: true
2897 });
2898 if (window.__clientSideMediaProcessing) {
2899 (0, import_data26.dispatch)(import_preferences11.store).setDefaults("core/media", {
2900 requireApproval: true,
2901 optimizeOnUpload: true
2902 });
2903 }
2904 (0, import_data26.dispatch)(import_blocks3.store).reapplyBlockTypeFilters();
2905 if (isMediumOrBigger && (0, import_data26.select)(import_preferences11.store).get("core", "showListViewByDefault") && !(0, import_data26.select)(import_preferences11.store).get("core", "distractionFree")) {
2906 (0, import_data26.dispatch)(import_editor20.store).setIsListViewOpened(true);
2907 }
2908 (0, import_block_library2.registerCoreBlocks)();
2909 registerCoreBlockBindingsSources();
2910 (0, import_widgets.registerLegacyWidgetBlock)({ inserter: false });
2911 (0, import_widgets.registerWidgetGroupBlock)({ inserter: false });
2912 if (true) {
2913 (0, import_block_library2.__experimentalRegisterExperimentalCoreBlocks)({
2914 enableFSEBlocks: settings.__unstableEnableFullSiteEditingBlocks
2915 });
2916 }
2917 const documentMode = document.compatMode === "CSS1Compat" ? "Standards" : "Quirks";
2918 if (documentMode !== "Standards") {
2919 console.warn(
2920 "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."
2921 );
2922 }
2923 const isIphone = window.navigator.userAgent.indexOf("iPhone") !== -1;
2924 if (isIphone) {
2925 window.addEventListener("scroll", (event) => {
2926 const editorScrollContainer = document.getElementsByClassName(
2927 "interface-interface-skeleton__body"
2928 )[0];
2929 if (event.target === document) {
2930 if (window.scrollY > 100) {
2931 editorScrollContainer.scrollTop = editorScrollContainer.scrollTop + window.scrollY;
2932 }
2933 if (document.getElementsByClassName("is-mode-visual")[0]) {
2934 window.scrollTo(0, 0);
2935 }
2936 }
2937 });
2938 }
2939 window.addEventListener("dragover", (e) => e.preventDefault(), false);
2940 window.addEventListener("drop", (e) => e.preventDefault(), false);
2941 root.render(
2942 /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_element13.StrictMode, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2943 layout_default,
2944 {
2945 settings,
2946 postId,
2947 postType,
2948 initialEdits
2949 }
2950 ) })
2951 );
2952 return root;
2953 }
2954 function reinitializeEditor() {
2955 (0, import_deprecated4.default)("wp.editPost.reinitializeEditor", {
2956 since: "6.2",
2957 version: "6.3"
2958 });
2959 }
2960 return __toCommonJS(index_exports);
2961 })();
2962 //# sourceMappingURL=index.js.map
2963