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

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

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