PluginProbe
Gutenberg / 23.0.1
Gutenberg v23.0.1
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 23.0.1, at build/scripts/edit-post/index.js

2,972 lines 117.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 var wp;
2 (wp ||= {}).editPost = (() => {
3 var __create = Object.create;
4 var __defProp = Object.defineProperty;
5 var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6 var __getOwnPropNames = Object.getOwnPropertyNames;
7 var __getProtoOf = Object.getPrototypeOf;
8 var __hasOwnProp = Object.prototype.hasOwnProperty;
9 var __commonJS = (cb, mod) => function __require() {
10 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11 };
12 var __export = (target, all) => {
13 for (var name in all)
14 __defProp(target, name, { get: all[name], enumerable: true });
15 };
16 var __copyProps = (to, from, except, desc) => {
17 if (from && typeof from === "object" || typeof from === "function") {
18 for (let key of __getOwnPropNames(from))
19 if (!__hasOwnProp.call(to, key) && key !== except)
20 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21 }
22 return to;
23 };
24 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25 // If the importer is in node compatibility mode or this is not an ESM
26 // file that has been converted to a CommonJS file using a Babel-
27 // compatible transform (i.e. "__esModule" has not been set), then set
28 // "default" to the CommonJS "module.exports" for node compatibility.
29 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
30 mod
31 ));
32 var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
33
34 // package-external:@wordpress/blocks
35 var require_blocks = __commonJS({
36 "package-external:@wordpress/blocks"(exports, module) {
37 module.exports = window.wp.blocks;
38 }
39 });
40
41 // package-external:@wordpress/block-library
42 var require_block_library = __commonJS({
43 "package-external:@wordpress/block-library"(exports, module) {
44 module.exports = window.wp.blockLibrary;
45 }
46 });
47
48 // package-external:@wordpress/deprecated
49 var require_deprecated = __commonJS({
50 "package-external:@wordpress/deprecated"(exports, module) {
51 module.exports = window.wp.deprecated;
52 }
53 });
54
55 // package-external:@wordpress/element
56 var require_element = __commonJS({
57 "package-external:@wordpress/element"(exports, module) {
58 module.exports = window.wp.element;
59 }
60 });
61
62 // package-external:@wordpress/data
63 var require_data = __commonJS({
64 "package-external:@wordpress/data"(exports, module) {
65 module.exports = window.wp.data;
66 }
67 });
68
69 // package-external:@wordpress/preferences
70 var require_preferences = __commonJS({
71 "package-external:@wordpress/preferences"(exports, module) {
72 module.exports = window.wp.preferences;
73 }
74 });
75
76 // package-external:@wordpress/widgets
77 var require_widgets = __commonJS({
78 "package-external:@wordpress/widgets"(exports, module) {
79 module.exports = window.wp.widgets;
80 }
81 });
82
83 // package-external:@wordpress/editor
84 var require_editor = __commonJS({
85 "package-external:@wordpress/editor"(exports, module) {
86 module.exports = window.wp.editor;
87 }
88 });
89
90 // package-external:@wordpress/i18n
91 var require_i18n = __commonJS({
92 "package-external:@wordpress/i18n"(exports, module) {
93 module.exports = window.wp.i18n;
94 }
95 });
96
97 // package-external:@wordpress/components
98 var require_components = __commonJS({
99 "package-external:@wordpress/components"(exports, module) {
100 module.exports = window.wp.components;
101 }
102 });
103
104 // vendor-external:react/jsx-runtime
105 var require_jsx_runtime = __commonJS({
106 "vendor-external:react/jsx-runtime"(exports, module) {
107 module.exports = window.ReactJSXRuntime;
108 }
109 });
110
111 // package-external:@wordpress/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] = {
869 ...mergedMetaboxes[existing],
870 ...metabox
871 };
872 } else {
873 mergedMetaboxes.push(metabox);
874 }
875 }
876 return mergedMetaboxes;
877 }
878 function metaBoxLocations(state = {}, action) {
879 switch (action.type) {
880 case "SET_META_BOXES_PER_LOCATIONS": {
881 const newState = { ...state };
882 for (const [location, metaboxes] of Object.entries(
883 action.metaBoxesPerLocation
884 )) {
885 newState[location] = mergeMetaboxes(
886 newState[location],
887 metaboxes
888 );
889 }
890 return newState;
891 }
892 }
893 return state;
894 }
895 function metaBoxesInitialized(state = false, action) {
896 switch (action.type) {
897 case "META_BOXES_INITIALIZED":
898 return true;
899 }
900 return state;
901 }
902 var metaBoxes = (0, import_data4.combineReducers)({
903 isSaving: isSavingMetaBoxes,
904 locations: metaBoxLocations,
905 initialized: metaBoxesInitialized
906 });
907 var reducer_default = (0, import_data4.combineReducers)({
908 metaBoxes
909 });
910
911 // packages/edit-post/build-module/store/actions.mjs
912 var actions_exports = {};
913 __export(actions_exports, {
914 __experimentalSetPreviewDeviceType: () => __experimentalSetPreviewDeviceType,
915 __unstableCreateTemplate: () => __unstableCreateTemplate,
916 closeGeneralSidebar: () => closeGeneralSidebar,
917 closeModal: () => closeModal,
918 closePublishSidebar: () => closePublishSidebar,
919 hideBlockTypes: () => hideBlockTypes,
920 initializeMetaBoxes: () => initializeMetaBoxes,
921 metaBoxUpdatesFailure: () => metaBoxUpdatesFailure,
922 metaBoxUpdatesSuccess: () => metaBoxUpdatesSuccess,
923 openGeneralSidebar: () => openGeneralSidebar,
924 openModal: () => openModal,
925 openPublishSidebar: () => openPublishSidebar,
926 removeEditorPanel: () => removeEditorPanel,
927 requestMetaBoxUpdates: () => requestMetaBoxUpdates,
928 setAvailableMetaBoxesPerLocation: () => setAvailableMetaBoxesPerLocation,
929 setIsEditingTemplate: () => setIsEditingTemplate,
930 setIsInserterOpened: () => setIsInserterOpened,
931 setIsListViewOpened: () => setIsListViewOpened,
932 showBlockTypes: () => showBlockTypes,
933 switchEditorMode: () => switchEditorMode,
934 toggleDistractionFree: () => toggleDistractionFree,
935 toggleEditorPanelEnabled: () => toggleEditorPanelEnabled,
936 toggleEditorPanelOpened: () => toggleEditorPanelOpened,
937 toggleFeature: () => toggleFeature,
938 toggleFullscreenMode: () => toggleFullscreenMode,
939 togglePinnedPluginItem: () => togglePinnedPluginItem,
940 togglePublishSidebar: () => togglePublishSidebar,
941 updatePreferredStyleVariations: () => updatePreferredStyleVariations
942 });
943 var import_api_fetch = __toESM(require_api_fetch(), 1);
944 var import_preferences = __toESM(require_preferences(), 1);
945 var import_editor4 = __toESM(require_editor(), 1);
946 var import_deprecated = __toESM(require_deprecated(), 1);
947 var import_hooks = __toESM(require_hooks(), 1);
948 var import_core_data3 = __toESM(require_core_data(), 1);
949 var import_notices = __toESM(require_notices(), 1);
950 var import_i18n2 = __toESM(require_i18n(), 1);
951
952 // packages/edit-post/build-module/utils/meta-boxes.mjs
953 var getMetaBoxContainer = (location) => {
954 const area = document.querySelector(
955 `.edit-post-meta-boxes-area.is-${location} .metabox-location-${location}`
956 );
957 if (area) {
958 return area;
959 }
960 return document.querySelector("#metaboxes .metabox-location-" + location);
961 };
962
963 // packages/edit-post/build-module/store/actions.mjs
964 var { interfaceStore } = unlock(import_editor4.privateApis);
965 var openGeneralSidebar = (name) => ({ registry }) => {
966 registry.dispatch(interfaceStore).enableComplementaryArea("core", name);
967 };
968 var closeGeneralSidebar = () => ({ registry }) => registry.dispatch(interfaceStore).disableComplementaryArea("core");
969 var openModal = (name) => ({ registry }) => {
970 (0, import_deprecated.default)("select( 'core/edit-post' ).openModal( name )", {
971 since: "6.3",
972 alternative: "select( 'core/interface').openModal( name )"
973 });
974 return registry.dispatch(interfaceStore).openModal(name);
975 };
976 var closeModal = () => ({ registry }) => {
977 (0, import_deprecated.default)("select( 'core/edit-post' ).closeModal()", {
978 since: "6.3",
979 alternative: "select( 'core/interface').closeModal()"
980 });
981 return registry.dispatch(interfaceStore).closeModal();
982 };
983 var openPublishSidebar = () => ({ registry }) => {
984 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).openPublishSidebar", {
985 since: "6.6",
986 alternative: "dispatch( 'core/editor').openPublishSidebar"
987 });
988 registry.dispatch(import_editor4.store).openPublishSidebar();
989 };
990 var closePublishSidebar = () => ({ registry }) => {
991 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).closePublishSidebar", {
992 since: "6.6",
993 alternative: "dispatch( 'core/editor').closePublishSidebar"
994 });
995 registry.dispatch(import_editor4.store).closePublishSidebar();
996 };
997 var togglePublishSidebar = () => ({ registry }) => {
998 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).togglePublishSidebar", {
999 since: "6.6",
1000 alternative: "dispatch( 'core/editor').togglePublishSidebar"
1001 });
1002 registry.dispatch(import_editor4.store).togglePublishSidebar();
1003 };
1004 var toggleEditorPanelEnabled = (panelName) => ({ registry }) => {
1005 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).toggleEditorPanelEnabled", {
1006 since: "6.5",
1007 alternative: "dispatch( 'core/editor').toggleEditorPanelEnabled"
1008 });
1009 registry.dispatch(import_editor4.store).toggleEditorPanelEnabled(panelName);
1010 };
1011 var toggleEditorPanelOpened = (panelName) => ({ registry }) => {
1012 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).toggleEditorPanelOpened", {
1013 since: "6.5",
1014 alternative: "dispatch( 'core/editor').toggleEditorPanelOpened"
1015 });
1016 registry.dispatch(import_editor4.store).toggleEditorPanelOpened(panelName);
1017 };
1018 var removeEditorPanel = (panelName) => ({ registry }) => {
1019 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).removeEditorPanel", {
1020 since: "6.5",
1021 alternative: "dispatch( 'core/editor').removeEditorPanel"
1022 });
1023 registry.dispatch(import_editor4.store).removeEditorPanel(panelName);
1024 };
1025 var toggleFeature = (feature) => ({ registry }) => registry.dispatch(import_preferences.store).toggle("core/edit-post", feature);
1026 var switchEditorMode = (mode) => ({ registry }) => {
1027 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).switchEditorMode", {
1028 since: "6.6",
1029 alternative: "dispatch( 'core/editor').switchEditorMode"
1030 });
1031 registry.dispatch(import_editor4.store).switchEditorMode(mode);
1032 };
1033 var togglePinnedPluginItem = (pluginName) => ({ registry }) => {
1034 const isPinned = registry.select(interfaceStore).isItemPinned("core", pluginName);
1035 registry.dispatch(interfaceStore)[isPinned ? "unpinItem" : "pinItem"]("core", pluginName);
1036 };
1037 function updatePreferredStyleVariations() {
1038 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).updatePreferredStyleVariations", {
1039 since: "6.6",
1040 hint: "Preferred Style Variations are not supported anymore."
1041 });
1042 return { type: "NOTHING" };
1043 }
1044 var showBlockTypes = (blockNames) => ({ registry }) => {
1045 unlock(registry.dispatch(import_editor4.store)).showBlockTypes(blockNames);
1046 };
1047 var hideBlockTypes = (blockNames) => ({ registry }) => {
1048 unlock(registry.dispatch(import_editor4.store)).hideBlockTypes(blockNames);
1049 };
1050 function setAvailableMetaBoxesPerLocation(metaBoxesPerLocation) {
1051 return {
1052 type: "SET_META_BOXES_PER_LOCATIONS",
1053 metaBoxesPerLocation
1054 };
1055 }
1056 var requestMetaBoxUpdates = () => async ({ registry, select: select3, dispatch: dispatch2 }) => {
1057 dispatch2({
1058 type: "REQUEST_META_BOX_UPDATES"
1059 });
1060 if (window.tinyMCE) {
1061 window.tinyMCE.triggerSave();
1062 }
1063 const baseFormData = new window.FormData(
1064 document.querySelector(".metabox-base-form")
1065 );
1066 const postId = baseFormData.get("post_ID");
1067 const postType = baseFormData.get("post_type");
1068 const post = registry.select(import_core_data3.store).getEditedEntityRecord("postType", postType, postId);
1069 const additionalData = [
1070 post.comment_status ? ["comment_status", post.comment_status] : false,
1071 post.ping_status ? ["ping_status", post.ping_status] : false,
1072 post.sticky ? ["sticky", post.sticky] : false,
1073 post.author ? ["post_author", post.author] : false
1074 ].filter(Boolean);
1075 const activeMetaBoxLocations = select3.getActiveMetaBoxLocations();
1076 const formDataToMerge = [
1077 baseFormData,
1078 ...activeMetaBoxLocations.map(
1079 (location) => new window.FormData(getMetaBoxContainer(location))
1080 )
1081 ];
1082 const formData = formDataToMerge.reduce((memo, currentFormData) => {
1083 for (const [key, value] of currentFormData) {
1084 memo.append(key, value);
1085 }
1086 return memo;
1087 }, new window.FormData());
1088 additionalData.forEach(
1089 ([key, value]) => formData.append(key, value)
1090 );
1091 try {
1092 await (0, import_api_fetch.default)({
1093 url: window._wpMetaBoxUrl,
1094 method: "POST",
1095 body: formData,
1096 parse: false
1097 });
1098 dispatch2.metaBoxUpdatesSuccess();
1099 } catch {
1100 dispatch2.metaBoxUpdatesFailure();
1101 }
1102 };
1103 function metaBoxUpdatesSuccess() {
1104 return {
1105 type: "META_BOX_UPDATES_SUCCESS"
1106 };
1107 }
1108 function metaBoxUpdatesFailure() {
1109 return {
1110 type: "META_BOX_UPDATES_FAILURE"
1111 };
1112 }
1113 var __experimentalSetPreviewDeviceType = (deviceType) => ({ registry }) => {
1114 (0, import_deprecated.default)(
1115 "dispatch( 'core/edit-post' ).__experimentalSetPreviewDeviceType",
1116 {
1117 since: "6.5",
1118 version: "6.7",
1119 hint: "registry.dispatch( editorStore ).setDeviceType"
1120 }
1121 );
1122 registry.dispatch(import_editor4.store).setDeviceType(deviceType);
1123 };
1124 var setIsInserterOpened = (value) => ({ registry }) => {
1125 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).setIsInserterOpened", {
1126 since: "6.5",
1127 alternative: "dispatch( 'core/editor').setIsInserterOpened"
1128 });
1129 registry.dispatch(import_editor4.store).setIsInserterOpened(value);
1130 };
1131 var setIsListViewOpened = (isOpen) => ({ registry }) => {
1132 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).setIsListViewOpened", {
1133 since: "6.5",
1134 alternative: "dispatch( 'core/editor').setIsListViewOpened"
1135 });
1136 registry.dispatch(import_editor4.store).setIsListViewOpened(isOpen);
1137 };
1138 function setIsEditingTemplate() {
1139 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).setIsEditingTemplate", {
1140 since: "6.5",
1141 alternative: "dispatch( 'core/editor').setRenderingMode"
1142 });
1143 return { type: "NOTHING" };
1144 }
1145 function __unstableCreateTemplate() {
1146 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).__unstableCreateTemplate", {
1147 since: "6.5"
1148 });
1149 return { type: "NOTHING" };
1150 }
1151 var metaBoxesInitialized2 = false;
1152 var initializeMetaBoxes = () => ({ registry, select: select3, dispatch: dispatch2 }) => {
1153 const isEditorReady = registry.select(import_editor4.store).__unstableIsEditorReady();
1154 if (!isEditorReady) {
1155 return;
1156 }
1157 if (metaBoxesInitialized2) {
1158 return;
1159 }
1160 const postType = registry.select(import_editor4.store).getCurrentPostType();
1161 if (window.postboxes.page !== postType) {
1162 window.postboxes.add_postbox_toggles(postType);
1163 }
1164 metaBoxesInitialized2 = true;
1165 (0, import_hooks.addAction)(
1166 "editor.savePost",
1167 "core/edit-post/save-metaboxes",
1168 async (post, options) => {
1169 if (!options.isAutosave && select3.hasMetaBoxes()) {
1170 await dispatch2.requestMetaBoxUpdates();
1171 }
1172 }
1173 );
1174 dispatch2({
1175 type: "META_BOXES_INITIALIZED"
1176 });
1177 };
1178 var toggleDistractionFree = () => ({ registry }) => {
1179 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).toggleDistractionFree", {
1180 since: "6.6",
1181 alternative: "dispatch( 'core/editor').toggleDistractionFree"
1182 });
1183 registry.dispatch(import_editor4.store).toggleDistractionFree();
1184 };
1185 var toggleFullscreenMode = () => ({ registry }) => {
1186 const isFullscreen = registry.select(import_preferences.store).get("core/edit-post", "fullscreenMode");
1187 registry.dispatch(import_preferences.store).toggle("core/edit-post", "fullscreenMode");
1188 registry.dispatch(import_notices.store).createInfoNotice(
1189 isFullscreen ? (0, import_i18n2.__)("Fullscreen mode deactivated.") : (0, import_i18n2.__)("Fullscreen mode activated."),
1190 {
1191 id: "core/edit-post/toggle-fullscreen-mode/notice",
1192 type: "snackbar",
1193 actions: [
1194 {
1195 label: (0, import_i18n2.__)("Undo"),
1196 onClick: () => {
1197 registry.dispatch(import_preferences.store).toggle(
1198 "core/edit-post",
1199 "fullscreenMode"
1200 );
1201 }
1202 }
1203 ]
1204 }
1205 );
1206 };
1207
1208 // packages/edit-post/build-module/store/selectors.mjs
1209 var selectors_exports = {};
1210 __export(selectors_exports, {
1211 __experimentalGetInsertionPoint: () => __experimentalGetInsertionPoint,
1212 __experimentalGetPreviewDeviceType: () => __experimentalGetPreviewDeviceType,
1213 areMetaBoxesInitialized: () => areMetaBoxesInitialized,
1214 getActiveGeneralSidebarName: () => getActiveGeneralSidebarName,
1215 getActiveMetaBoxLocations: () => getActiveMetaBoxLocations,
1216 getAllMetaBoxes: () => getAllMetaBoxes,
1217 getEditedPostTemplate: () => getEditedPostTemplate,
1218 getEditorMode: () => getEditorMode,
1219 getHiddenBlockTypes: () => getHiddenBlockTypes,
1220 getMetaBoxesPerLocation: () => getMetaBoxesPerLocation,
1221 getPreference: () => getPreference,
1222 getPreferences: () => getPreferences,
1223 hasMetaBoxes: () => hasMetaBoxes,
1224 isEditingTemplate: () => isEditingTemplate,
1225 isEditorPanelEnabled: () => isEditorPanelEnabled,
1226 isEditorPanelOpened: () => isEditorPanelOpened,
1227 isEditorPanelRemoved: () => isEditorPanelRemoved,
1228 isEditorSidebarOpened: () => isEditorSidebarOpened,
1229 isFeatureActive: () => isFeatureActive,
1230 isInserterOpened: () => isInserterOpened,
1231 isListViewOpened: () => isListViewOpened,
1232 isMetaBoxLocationActive: () => isMetaBoxLocationActive,
1233 isMetaBoxLocationVisible: () => isMetaBoxLocationVisible,
1234 isModalActive: () => isModalActive,
1235 isPluginItemPinned: () => isPluginItemPinned,
1236 isPluginSidebarOpened: () => isPluginSidebarOpened,
1237 isPublishSidebarOpened: () => isPublishSidebarOpened,
1238 isSavingMetaBoxes: () => isSavingMetaBoxes2
1239 });
1240 var import_data5 = __toESM(require_data(), 1);
1241 var import_preferences2 = __toESM(require_preferences(), 1);
1242 var import_core_data4 = __toESM(require_core_data(), 1);
1243 var import_editor5 = __toESM(require_editor(), 1);
1244 var import_deprecated2 = __toESM(require_deprecated(), 1);
1245 var { interfaceStore: interfaceStore2 } = unlock(import_editor5.privateApis);
1246 var EMPTY_ARRAY = [];
1247 var EMPTY_OBJECT = {};
1248 var getEditorMode = (0, import_data5.createRegistrySelector)(
1249 (select3) => () => select3(import_preferences2.store).get("core", "editorMode") ?? "visual"
1250 );
1251 var isEditorSidebarOpened = (0, import_data5.createRegistrySelector)(
1252 (select3) => () => {
1253 const activeGeneralSidebar = select3(interfaceStore2).getActiveComplementaryArea("core");
1254 return ["edit-post/document", "edit-post/block"].includes(
1255 activeGeneralSidebar
1256 );
1257 }
1258 );
1259 var isPluginSidebarOpened = (0, import_data5.createRegistrySelector)(
1260 (select3) => () => {
1261 const activeGeneralSidebar = select3(interfaceStore2).getActiveComplementaryArea("core");
1262 return !!activeGeneralSidebar && !["edit-post/document", "edit-post/block"].includes(
1263 activeGeneralSidebar
1264 );
1265 }
1266 );
1267 var getActiveGeneralSidebarName = (0, import_data5.createRegistrySelector)(
1268 (select3) => () => {
1269 return select3(interfaceStore2).getActiveComplementaryArea("core");
1270 }
1271 );
1272 function convertPanelsToOldFormat(inactivePanels, openPanels) {
1273 const panelsWithEnabledState = inactivePanels?.reduce(
1274 (accumulatedPanels, panelName) => ({
1275 ...accumulatedPanels,
1276 [panelName]: {
1277 enabled: false
1278 }
1279 }),
1280 {}
1281 );
1282 const panels = openPanels?.reduce((accumulatedPanels, panelName) => {
1283 const currentPanelState = accumulatedPanels?.[panelName];
1284 return {
1285 ...accumulatedPanels,
1286 [panelName]: {
1287 ...currentPanelState,
1288 opened: true
1289 }
1290 };
1291 }, panelsWithEnabledState ?? {});
1292 return panels ?? panelsWithEnabledState ?? EMPTY_OBJECT;
1293 }
1294 var getPreferences = (0, import_data5.createRegistrySelector)((select3) => () => {
1295 (0, import_deprecated2.default)(`select( 'core/edit-post' ).getPreferences`, {
1296 since: "6.0",
1297 alternative: `select( 'core/preferences' ).get`
1298 });
1299 const corePreferences = ["editorMode", "hiddenBlockTypes"].reduce(
1300 (accumulatedPrefs, preferenceKey) => {
1301 const value = select3(import_preferences2.store).get(
1302 "core",
1303 preferenceKey
1304 );
1305 return {
1306 ...accumulatedPrefs,
1307 [preferenceKey]: value
1308 };
1309 },
1310 {}
1311 );
1312 const inactivePanels = select3(import_preferences2.store).get(
1313 "core",
1314 "inactivePanels"
1315 );
1316 const openPanels = select3(import_preferences2.store).get("core", "openPanels");
1317 const panels = convertPanelsToOldFormat(inactivePanels, openPanels);
1318 return {
1319 ...corePreferences,
1320 panels
1321 };
1322 });
1323 function getPreference(state, preferenceKey, defaultValue) {
1324 (0, import_deprecated2.default)(`select( 'core/edit-post' ).getPreference`, {
1325 since: "6.0",
1326 alternative: `select( 'core/preferences' ).get`
1327 });
1328 const preferences = getPreferences(state);
1329 const value = preferences[preferenceKey];
1330 return value === void 0 ? defaultValue : value;
1331 }
1332 var getHiddenBlockTypes = (0, import_data5.createRegistrySelector)((select3) => () => {
1333 return select3(import_preferences2.store).get("core", "hiddenBlockTypes") ?? EMPTY_ARRAY;
1334 });
1335 var isPublishSidebarOpened = (0, import_data5.createRegistrySelector)(
1336 (select3) => () => {
1337 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isPublishSidebarOpened`, {
1338 since: "6.6",
1339 alternative: `select( 'core/editor' ).isPublishSidebarOpened`
1340 });
1341 return select3(import_editor5.store).isPublishSidebarOpened();
1342 }
1343 );
1344 var isEditorPanelRemoved = (0, import_data5.createRegistrySelector)(
1345 (select3) => (state, panelName) => {
1346 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isEditorPanelRemoved`, {
1347 since: "6.5",
1348 alternative: `select( 'core/editor' ).isEditorPanelRemoved`
1349 });
1350 return select3(import_editor5.store).isEditorPanelRemoved(panelName);
1351 }
1352 );
1353 var isEditorPanelEnabled = (0, import_data5.createRegistrySelector)(
1354 (select3) => (state, panelName) => {
1355 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isEditorPanelEnabled`, {
1356 since: "6.5",
1357 alternative: `select( 'core/editor' ).isEditorPanelEnabled`
1358 });
1359 return select3(import_editor5.store).isEditorPanelEnabled(panelName);
1360 }
1361 );
1362 var isEditorPanelOpened = (0, import_data5.createRegistrySelector)(
1363 (select3) => (state, panelName) => {
1364 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isEditorPanelOpened`, {
1365 since: "6.5",
1366 alternative: `select( 'core/editor' ).isEditorPanelOpened`
1367 });
1368 return select3(import_editor5.store).isEditorPanelOpened(panelName);
1369 }
1370 );
1371 var isModalActive = (0, import_data5.createRegistrySelector)(
1372 (select3) => (state, modalName) => {
1373 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isModalActive`, {
1374 since: "6.3",
1375 alternative: `select( 'core/interface' ).isModalActive`
1376 });
1377 return !!select3(interfaceStore2).isModalActive(modalName);
1378 }
1379 );
1380 var isFeatureActive = (0, import_data5.createRegistrySelector)(
1381 (select3) => (state, feature) => {
1382 return !!select3(import_preferences2.store).get("core/edit-post", feature);
1383 }
1384 );
1385 var isPluginItemPinned = (0, import_data5.createRegistrySelector)(
1386 (select3) => (state, pluginName) => {
1387 return select3(interfaceStore2).isItemPinned("core", pluginName);
1388 }
1389 );
1390 var getActiveMetaBoxLocations = (0, import_data5.createSelector)(
1391 (state) => {
1392 return Object.keys(state.metaBoxes.locations).filter(
1393 (location) => isMetaBoxLocationActive(state, location)
1394 );
1395 },
1396 (state) => [state.metaBoxes.locations]
1397 );
1398 var isMetaBoxLocationVisible = (0, import_data5.createRegistrySelector)(
1399 (select3) => (state, location) => {
1400 return isMetaBoxLocationActive(state, location) && getMetaBoxesPerLocation(state, location)?.some(({ id }) => {
1401 return select3(import_editor5.store).isEditorPanelEnabled(
1402 `meta-box-${id}`
1403 );
1404 });
1405 }
1406 );
1407 function isMetaBoxLocationActive(state, location) {
1408 const metaBoxes2 = getMetaBoxesPerLocation(state, location);
1409 return !!metaBoxes2 && metaBoxes2.length !== 0;
1410 }
1411 function getMetaBoxesPerLocation(state, location) {
1412 return state.metaBoxes.locations[location];
1413 }
1414 var getAllMetaBoxes = (0, import_data5.createSelector)(
1415 (state) => {
1416 return Object.values(state.metaBoxes.locations).flat();
1417 },
1418 (state) => [state.metaBoxes.locations]
1419 );
1420 function hasMetaBoxes(state) {
1421 return getActiveMetaBoxLocations(state).length > 0;
1422 }
1423 function isSavingMetaBoxes2(state) {
1424 return state.metaBoxes.isSaving;
1425 }
1426 var __experimentalGetPreviewDeviceType = (0, import_data5.createRegistrySelector)(
1427 (select3) => () => {
1428 (0, import_deprecated2.default)(
1429 `select( 'core/edit-site' ).__experimentalGetPreviewDeviceType`,
1430 {
1431 since: "6.5",
1432 version: "6.7",
1433 alternative: `select( 'core/editor' ).getDeviceType`
1434 }
1435 );
1436 return select3(import_editor5.store).getDeviceType();
1437 }
1438 );
1439 var isInserterOpened = (0, import_data5.createRegistrySelector)((select3) => () => {
1440 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isInserterOpened`, {
1441 since: "6.5",
1442 alternative: `select( 'core/editor' ).isInserterOpened`
1443 });
1444 return select3(import_editor5.store).isInserterOpened();
1445 });
1446 var __experimentalGetInsertionPoint = (0, import_data5.createRegistrySelector)(
1447 (select3) => () => {
1448 (0, import_deprecated2.default)(
1449 `select( 'core/edit-post' ).__experimentalGetInsertionPoint`,
1450 {
1451 since: "6.5",
1452 version: "6.7"
1453 }
1454 );
1455 return unlock(select3(import_editor5.store)).getInserter();
1456 }
1457 );
1458 var isListViewOpened = (0, import_data5.createRegistrySelector)((select3) => () => {
1459 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isListViewOpened`, {
1460 since: "6.5",
1461 alternative: `select( 'core/editor' ).isListViewOpened`
1462 });
1463 return select3(import_editor5.store).isListViewOpened();
1464 });
1465 var isEditingTemplate = (0, import_data5.createRegistrySelector)((select3) => () => {
1466 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isEditingTemplate`, {
1467 since: "6.5",
1468 alternative: `select( 'core/editor' ).getRenderingMode`
1469 });
1470 return select3(import_editor5.store).getCurrentPostType() === "wp_template";
1471 });
1472 function areMetaBoxesInitialized(state) {
1473 return state.metaBoxes.initialized;
1474 }
1475 var getEditedPostTemplate = (0, import_data5.createRegistrySelector)(
1476 (select3) => () => {
1477 const { id: postId, type: postType } = select3(import_editor5.store).getCurrentPost();
1478 const templateId = unlock(select3(import_core_data4.store)).getTemplateId(
1479 postType,
1480 postId
1481 );
1482 if (!templateId) {
1483 return void 0;
1484 }
1485 return select3(import_core_data4.store).getEditedEntityRecord(
1486 "postType",
1487 "wp_template",
1488 templateId
1489 );
1490 }
1491 );
1492
1493 // packages/edit-post/build-module/store/index.mjs
1494 var store = (0, import_data6.createReduxStore)(STORE_NAME, {
1495 reducer: reducer_default,
1496 actions: actions_exports,
1497 selectors: selectors_exports
1498 });
1499 (0, import_data6.register)(store);
1500
1501 // packages/edit-post/build-module/components/keyboard-shortcuts/index.mjs
1502 function KeyboardShortcuts() {
1503 const { toggleFullscreenMode: toggleFullscreenMode2 } = (0, import_data7.useDispatch)(store);
1504 const { registerShortcut } = (0, import_data7.useDispatch)(import_keyboard_shortcuts.store);
1505 (0, import_element3.useEffect)(() => {
1506 registerShortcut({
1507 name: "core/edit-post/toggle-fullscreen",
1508 category: "global",
1509 description: (0, import_i18n3.__)("Enable or disable fullscreen mode."),
1510 keyCombination: {
1511 modifier: "secondary",
1512 character: "f"
1513 }
1514 });
1515 }, []);
1516 (0, import_keyboard_shortcuts.useShortcut)("core/edit-post/toggle-fullscreen", () => {
1517 toggleFullscreenMode2();
1518 });
1519 return null;
1520 }
1521 var keyboard_shortcuts_default = KeyboardShortcuts;
1522
1523 // packages/edit-post/build-module/components/init-pattern-modal/index.mjs
1524 var import_data8 = __toESM(require_data(), 1);
1525 var import_i18n4 = __toESM(require_i18n(), 1);
1526 var import_components3 = __toESM(require_components(), 1);
1527 var import_element4 = __toESM(require_element(), 1);
1528 var import_editor6 = __toESM(require_editor(), 1);
1529 var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
1530 function InitPatternModal() {
1531 const { editPost } = (0, import_data8.useDispatch)(import_editor6.store);
1532 const [syncType, setSyncType] = (0, import_element4.useState)(void 0);
1533 const [title, setTitle] = (0, import_element4.useState)("");
1534 const isNewPost = (0, import_data8.useSelect)(
1535 (select3) => select3(import_editor6.store).isCleanNewPost(),
1536 []
1537 );
1538 const [isModalOpen, setIsModalOpen] = (0, import_element4.useState)(() => isNewPost);
1539 if (!isNewPost) {
1540 return null;
1541 }
1542 return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children: isModalOpen && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1543 import_components3.Modal,
1544 {
1545 title: (0, import_i18n4.__)("Create pattern"),
1546 onRequestClose: () => {
1547 setIsModalOpen(false);
1548 },
1549 overlayClassName: "reusable-blocks-menu-items__convert-modal",
1550 children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1551 "form",
1552 {
1553 onSubmit: (event) => {
1554 event.preventDefault();
1555 setIsModalOpen(false);
1556 editPost({
1557 title,
1558 meta: {
1559 wp_pattern_sync_status: syncType
1560 }
1561 });
1562 },
1563 children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_components3.__experimentalVStack, { spacing: "5", children: [
1564 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1565 import_components3.TextControl,
1566 {
1567 label: (0, import_i18n4.__)("Name"),
1568 value: title,
1569 onChange: setTitle,
1570 placeholder: (0, import_i18n4.__)("My pattern"),
1571 className: "patterns-create-modal__name-input",
1572 __next40pxDefaultSize: true
1573 }
1574 ),
1575 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1576 import_components3.ToggleControl,
1577 {
1578 label: (0, import_i18n4._x)("Synced", "pattern (singular)"),
1579 help: (0, import_i18n4.__)(
1580 "Sync this pattern across multiple locations."
1581 ),
1582 checked: !syncType,
1583 onChange: () => {
1584 setSyncType(
1585 !syncType ? "unsynced" : void 0
1586 );
1587 }
1588 }
1589 ),
1590 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components3.__experimentalHStack, { justify: "right", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1591 import_components3.Button,
1592 {
1593 __next40pxDefaultSize: true,
1594 variant: "primary",
1595 type: "submit",
1596 disabled: !title,
1597 accessibleWhenDisabled: true,
1598 children: (0, import_i18n4.__)("Create")
1599 }
1600 ) })
1601 ] })
1602 }
1603 )
1604 }
1605 ) });
1606 }
1607
1608 // packages/edit-post/build-module/components/browser-url/index.mjs
1609 var import_element5 = __toESM(require_element(), 1);
1610 var import_data9 = __toESM(require_data(), 1);
1611 var import_url2 = __toESM(require_url(), 1);
1612 var import_editor7 = __toESM(require_editor(), 1);
1613 function getPostEditURL(postId) {
1614 return (0, import_url2.addQueryArgs)("post.php", { post: postId, action: "edit" });
1615 }
1616 function BrowserURL() {
1617 const [historyId, setHistoryId] = (0, import_element5.useState)(null);
1618 const { postId, postStatus } = (0, import_data9.useSelect)((select3) => {
1619 const { getCurrentPost } = select3(import_editor7.store);
1620 const post = getCurrentPost();
1621 let { id, status, type } = post;
1622 const isTemplate = ["wp_template", "wp_template_part"].includes(
1623 type
1624 );
1625 if (isTemplate) {
1626 id = post.wp_id;
1627 }
1628 return {
1629 postId: id,
1630 postStatus: status
1631 };
1632 }, []);
1633 (0, import_element5.useEffect)(() => {
1634 if (postId && postId !== historyId && postStatus !== "auto-draft") {
1635 window.history.replaceState(
1636 { id: postId },
1637 "Post " + postId,
1638 getPostEditURL(postId)
1639 );
1640 setHistoryId(postId);
1641 }
1642 }, [postId, postStatus, historyId]);
1643 return null;
1644 }
1645
1646 // packages/edit-post/build-module/components/meta-boxes/index.mjs
1647 var import_data12 = __toESM(require_data(), 1);
1648
1649 // packages/edit-post/build-module/components/meta-boxes/meta-boxes-area/index.mjs
1650 var import_element6 = __toESM(require_element(), 1);
1651 var import_components4 = __toESM(require_components(), 1);
1652 var import_data10 = __toESM(require_data(), 1);
1653 var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1);
1654 function MetaBoxesArea({ location }) {
1655 const container = (0, import_element6.useRef)(null);
1656 const formRef = (0, import_element6.useRef)(null);
1657 (0, import_element6.useEffect)(() => {
1658 formRef.current = document.querySelector(
1659 ".metabox-location-" + location
1660 );
1661 if (formRef.current) {
1662 container.current.appendChild(formRef.current);
1663 }
1664 return () => {
1665 if (formRef.current) {
1666 document.querySelector("#metaboxes").appendChild(formRef.current);
1667 }
1668 };
1669 }, [location]);
1670 const isSaving = (0, import_data10.useSelect)((select3) => {
1671 return select3(store).isSavingMetaBoxes();
1672 }, []);
1673 const classes = clsx_default("edit-post-meta-boxes-area", `is-${location}`, {
1674 "is-loading": isSaving
1675 });
1676 return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: classes, children: [
1677 isSaving && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_components4.Spinner, {}),
1678 /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1679 "div",
1680 {
1681 className: "edit-post-meta-boxes-area__container",
1682 ref: container
1683 }
1684 ),
1685 /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "edit-post-meta-boxes-area__clear" })
1686 ] });
1687 }
1688 var meta_boxes_area_default = MetaBoxesArea;
1689
1690 // packages/edit-post/build-module/components/meta-boxes/meta-box-visibility.mjs
1691 var import_element7 = __toESM(require_element(), 1);
1692 var import_data11 = __toESM(require_data(), 1);
1693 var import_editor8 = __toESM(require_editor(), 1);
1694 function MetaBoxVisibility({ id }) {
1695 const isVisible = (0, import_data11.useSelect)(
1696 (select3) => {
1697 return select3(import_editor8.store).isEditorPanelEnabled(
1698 `meta-box-${id}`
1699 );
1700 },
1701 [id]
1702 );
1703 (0, import_element7.useEffect)(() => {
1704 const element = document.getElementById(id);
1705 if (!element) {
1706 return;
1707 }
1708 if (isVisible) {
1709 element.classList.remove("is-hidden");
1710 } else {
1711 element.classList.add("is-hidden");
1712 }
1713 }, [id, isVisible]);
1714 return null;
1715 }
1716
1717 // packages/edit-post/build-module/components/meta-boxes/index.mjs
1718 var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1);
1719 function MetaBoxes({ location }) {
1720 const metaBoxes2 = (0, import_data12.useSelect)(
1721 (select3) => select3(store).getMetaBoxesPerLocation(location),
1722 [location]
1723 );
1724 return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
1725 (metaBoxes2 ?? []).map(({ id }) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(MetaBoxVisibility, { id }, id)),
1726 /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(meta_boxes_area_default, { location })
1727 ] });
1728 }
1729
1730 // packages/edit-post/build-module/components/more-menu/index.mjs
1731 var import_i18n10 = __toESM(require_i18n(), 1);
1732 var import_compose2 = __toESM(require_compose(), 1);
1733 var import_editor14 = __toESM(require_editor(), 1);
1734 var import_keycodes = __toESM(require_keycodes(), 1);
1735 var import_preferences8 = __toESM(require_preferences(), 1);
1736
1737 // packages/edit-post/build-module/components/more-menu/manage-patterns-menu-item.mjs
1738 var import_components5 = __toESM(require_components(), 1);
1739 var import_core_data5 = __toESM(require_core_data(), 1);
1740 var import_data13 = __toESM(require_data(), 1);
1741 var import_i18n5 = __toESM(require_i18n(), 1);
1742 var import_url3 = __toESM(require_url(), 1);
1743 var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1);
1744 function ManagePatternsMenuItem() {
1745 const url = (0, import_data13.useSelect)((select3) => {
1746 const { canUser } = select3(import_core_data5.store);
1747 const defaultUrl = (0, import_url3.addQueryArgs)("edit.php", {
1748 post_type: "wp_block"
1749 });
1750 const patternsUrl = (0, import_url3.addQueryArgs)("site-editor.php", {
1751 p: "/pattern"
1752 });
1753 return canUser("create", {
1754 kind: "postType",
1755 name: "wp_template"
1756 }) ? patternsUrl : defaultUrl;
1757 }, []);
1758 return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_components5.MenuItem, { role: "menuitem", href: url, children: (0, import_i18n5.__)("Manage patterns") });
1759 }
1760 var manage_patterns_menu_item_default = ManagePatternsMenuItem;
1761
1762 // packages/edit-post/build-module/components/more-menu/welcome-guide-menu-item.mjs
1763 var import_data14 = __toESM(require_data(), 1);
1764 var import_preferences3 = __toESM(require_preferences(), 1);
1765 var import_i18n6 = __toESM(require_i18n(), 1);
1766 var import_editor9 = __toESM(require_editor(), 1);
1767 var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1);
1768 function WelcomeGuideMenuItem() {
1769 const isEditingTemplate2 = (0, import_data14.useSelect)(
1770 (select3) => select3(import_editor9.store).getCurrentPostType() === "wp_template",
1771 []
1772 );
1773 return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1774 import_preferences3.PreferenceToggleMenuItem,
1775 {
1776 scope: "core/edit-post",
1777 name: isEditingTemplate2 ? "welcomeGuideTemplate" : "welcomeGuide",
1778 label: (0, import_i18n6.__)("Welcome Guide")
1779 }
1780 );
1781 }
1782
1783 // packages/edit-post/build-module/components/preferences-modal/index.mjs
1784 var import_i18n9 = __toESM(require_i18n(), 1);
1785 var import_preferences7 = __toESM(require_preferences(), 1);
1786 var import_editor13 = __toESM(require_editor(), 1);
1787
1788 // packages/edit-post/build-module/components/preferences-modal/meta-boxes-section.mjs
1789 var import_i18n8 = __toESM(require_i18n(), 1);
1790 var import_data17 = __toESM(require_data(), 1);
1791 var import_editor12 = __toESM(require_editor(), 1);
1792 var import_preferences6 = __toESM(require_preferences(), 1);
1793
1794 // packages/edit-post/build-module/components/preferences-modal/enable-custom-fields.mjs
1795 var import_element8 = __toESM(require_element(), 1);
1796 var import_i18n7 = __toESM(require_i18n(), 1);
1797 var import_components6 = __toESM(require_components(), 1);
1798 var import_data15 = __toESM(require_data(), 1);
1799 var import_editor10 = __toESM(require_editor(), 1);
1800 var import_preferences4 = __toESM(require_preferences(), 1);
1801 var import_url4 = __toESM(require_url(), 1);
1802 var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
1803 var { PreferenceBaseOption } = unlock(import_preferences4.privateApis);
1804 function submitCustomFieldsForm() {
1805 const customFieldsForm = document.getElementById(
1806 "toggle-custom-fields-form"
1807 );
1808 customFieldsForm.querySelector('[name="_wp_http_referer"]').setAttribute("value", (0, import_url4.getPathAndQueryString)(window.location.href));
1809 customFieldsForm.submit();
1810 }
1811 function CustomFieldsConfirmation({ willEnable }) {
1812 const [isReloading, setIsReloading] = (0, import_element8.useState)(false);
1813 return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
1814 /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { className: "edit-post-preferences-modal__custom-fields-confirmation-message", children: (0, import_i18n7.__)(
1815 "A page reload is required for this change. Make sure your content is saved before reloading."
1816 ) }),
1817 /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1818 import_components6.Button,
1819 {
1820 __next40pxDefaultSize: true,
1821 variant: "secondary",
1822 isBusy: isReloading,
1823 accessibleWhenDisabled: true,
1824 disabled: isReloading,
1825 onClick: () => {
1826 setIsReloading(true);
1827 submitCustomFieldsForm();
1828 },
1829 children: willEnable ? (0, import_i18n7.__)("Show & Reload Page") : (0, import_i18n7.__)("Hide & Reload Page")
1830 }
1831 )
1832 ] });
1833 }
1834 function EnableCustomFieldsOption({ label }) {
1835 const areCustomFieldsEnabled = (0, import_data15.useSelect)((select3) => {
1836 return !!select3(import_editor10.store).getEditorSettings().enableCustomFields;
1837 }, []);
1838 const [isChecked, setIsChecked] = (0, import_element8.useState)(areCustomFieldsEnabled);
1839 return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1840 PreferenceBaseOption,
1841 {
1842 label,
1843 isChecked,
1844 onChange: setIsChecked,
1845 children: isChecked !== areCustomFieldsEnabled && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CustomFieldsConfirmation, { willEnable: isChecked })
1846 }
1847 );
1848 }
1849
1850 // packages/edit-post/build-module/components/preferences-modal/enable-panel.mjs
1851 var import_data16 = __toESM(require_data(), 1);
1852 var import_editor11 = __toESM(require_editor(), 1);
1853 var import_preferences5 = __toESM(require_preferences(), 1);
1854 var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
1855 var { PreferenceBaseOption: PreferenceBaseOption2 } = unlock(import_preferences5.privateApis);
1856 function EnablePanelOption(props) {
1857 const { toggleEditorPanelEnabled: toggleEditorPanelEnabled2 } = (0, import_data16.useDispatch)(import_editor11.store);
1858 const { isChecked, isRemoved } = (0, import_data16.useSelect)(
1859 (select3) => {
1860 const { isEditorPanelEnabled: isEditorPanelEnabled2, isEditorPanelRemoved: isEditorPanelRemoved2 } = select3(import_editor11.store);
1861 return {
1862 isChecked: isEditorPanelEnabled2(props.panelName),
1863 isRemoved: isEditorPanelRemoved2(props.panelName)
1864 };
1865 },
1866 [props.panelName]
1867 );
1868 if (isRemoved) {
1869 return null;
1870 }
1871 return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1872 PreferenceBaseOption2,
1873 {
1874 isChecked,
1875 onChange: () => toggleEditorPanelEnabled2(props.panelName),
1876 ...props
1877 }
1878 );
1879 }
1880
1881 // packages/edit-post/build-module/components/preferences-modal/meta-boxes-section.mjs
1882 var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
1883 var { PreferencesModalSection } = unlock(import_preferences6.privateApis);
1884 function MetaBoxesSection({
1885 areCustomFieldsRegistered,
1886 metaBoxes: metaBoxes2,
1887 ...sectionProps
1888 }) {
1889 const thirdPartyMetaBoxes = metaBoxes2.filter(
1890 ({ id }) => id !== "postcustom"
1891 );
1892 if (!areCustomFieldsRegistered && thirdPartyMetaBoxes.length === 0) {
1893 return null;
1894 }
1895 return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(PreferencesModalSection, { ...sectionProps, children: [
1896 areCustomFieldsRegistered && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(EnableCustomFieldsOption, { label: (0, import_i18n8.__)("Custom fields") }),
1897 thirdPartyMetaBoxes.map(({ id, title }) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1898 EnablePanelOption,
1899 {
1900 label: title,
1901 panelName: `meta-box-${id}`
1902 },
1903 id
1904 ))
1905 ] });
1906 }
1907 var meta_boxes_section_default = (0, import_data17.withSelect)((select3) => {
1908 const { getEditorSettings } = select3(import_editor12.store);
1909 const { getAllMetaBoxes: getAllMetaBoxes2 } = select3(store);
1910 return {
1911 // This setting should not live in the block editor's store.
1912 areCustomFieldsRegistered: getEditorSettings().enableCustomFields !== void 0,
1913 metaBoxes: getAllMetaBoxes2()
1914 };
1915 })(MetaBoxesSection);
1916
1917 // packages/edit-post/build-module/components/preferences-modal/index.mjs
1918 var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
1919 var { PreferenceToggleControl } = unlock(import_preferences7.privateApis);
1920 var { PreferencesModal } = unlock(import_editor13.privateApis);
1921 function EditPostPreferencesModal() {
1922 const extraSections = {
1923 general: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(meta_boxes_section_default, { title: (0, import_i18n9.__)("Advanced") }),
1924 appearance: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1925 PreferenceToggleControl,
1926 {
1927 scope: "core/edit-post",
1928 featureName: "themeStyles",
1929 help: (0, import_i18n9.__)("Make the editor look like your theme."),
1930 label: (0, import_i18n9.__)("Use theme styles")
1931 }
1932 )
1933 };
1934 return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(PreferencesModal, { extraSections });
1935 }
1936
1937 // packages/edit-post/build-module/components/more-menu/index.mjs
1938 var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
1939 var { ToolsMoreMenuGroup, ViewMoreMenuGroup } = unlock(import_editor14.privateApis);
1940 var MoreMenu = () => {
1941 const isLargeViewport = (0, import_compose2.useViewportMatch)("large");
1942 return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
1943 isLargeViewport && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ViewMoreMenuGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1944 import_preferences8.PreferenceToggleMenuItem,
1945 {
1946 scope: "core/edit-post",
1947 name: "fullscreenMode",
1948 label: (0, import_i18n10.__)("Fullscreen mode"),
1949 info: (0, import_i18n10.__)("Show and hide the admin user interface"),
1950 messageActivated: (0, import_i18n10.__)("Fullscreen mode activated."),
1951 messageDeactivated: (0, import_i18n10.__)(
1952 "Fullscreen mode deactivated."
1953 ),
1954 shortcut: import_keycodes.displayShortcut.secondary("f")
1955 }
1956 ) }),
1957 /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ToolsMoreMenuGroup, { children: [
1958 /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(manage_patterns_menu_item_default, {}),
1959 /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(WelcomeGuideMenuItem, {})
1960 ] }),
1961 /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(EditPostPreferencesModal, {})
1962 ] });
1963 };
1964 var more_menu_default = MoreMenu;
1965
1966 // packages/edit-post/build-module/components/welcome-guide/index.mjs
1967 var import_data20 = __toESM(require_data(), 1);
1968
1969 // packages/edit-post/build-module/components/welcome-guide/default.mjs
1970 var import_data18 = __toESM(require_data(), 1);
1971 var import_components7 = __toESM(require_components(), 1);
1972 var import_i18n11 = __toESM(require_i18n(), 1);
1973 var import_element9 = __toESM(require_element(), 1);
1974
1975 // packages/edit-post/build-module/components/welcome-guide/image.mjs
1976 var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
1977 function WelcomeGuideImage({ nonAnimatedSrc, animatedSrc }) {
1978 return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("picture", { className: "edit-post-welcome-guide__image", children: [
1979 /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1980 "source",
1981 {
1982 srcSet: nonAnimatedSrc,
1983 media: "(prefers-reduced-motion: reduce)"
1984 }
1985 ),
1986 /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("img", { src: animatedSrc, width: "312", height: "240", alt: "" })
1987 ] });
1988 }
1989
1990 // packages/edit-post/build-module/components/welcome-guide/default.mjs
1991 var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
1992 function WelcomeGuideDefault() {
1993 const { toggleFeature: toggleFeature2 } = (0, import_data18.useDispatch)(store);
1994 return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1995 import_components7.Guide,
1996 {
1997 className: "edit-post-welcome-guide",
1998 contentLabel: (0, import_i18n11.__)("Welcome to the editor"),
1999 finishButtonText: (0, import_i18n11.__)("Get started"),
2000 onFinish: () => toggleFeature2("welcomeGuide"),
2001 pages: [
2002 {
2003 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2004 WelcomeGuideImage,
2005 {
2006 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-canvas.svg",
2007 animatedSrc: "https://s.w.org/images/block-editor/welcome-canvas.gif"
2008 }
2009 ),
2010 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2011 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Welcome to the editor") }),
2012 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_i18n11.__)(
2013 "In the WordPress editor, each paragraph, image, or video is presented as a distinct \u201Cblock\u201D of content."
2014 ) })
2015 ] })
2016 },
2017 {
2018 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2019 WelcomeGuideImage,
2020 {
2021 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-editor.svg",
2022 animatedSrc: "https://s.w.org/images/block-editor/welcome-editor.gif"
2023 }
2024 ),
2025 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2026 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Customize each block") }),
2027 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_i18n11.__)(
2028 "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."
2029 ) })
2030 ] })
2031 },
2032 {
2033 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2034 WelcomeGuideImage,
2035 {
2036 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-library.svg",
2037 animatedSrc: "https://s.w.org/images/block-editor/welcome-library.gif"
2038 }
2039 ),
2040 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2041 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Explore all blocks") }),
2042 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_element9.createInterpolateElement)(
2043 (0, import_i18n11.__)(
2044 "All of the blocks available to you live in the block library. You\u2019ll find it wherever you see the <InserterIconImage /> icon."
2045 ),
2046 {
2047 InserterIconImage: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2048 "img",
2049 {
2050 alt: (0, import_i18n11.__)("inserter"),
2051 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"
2052 }
2053 )
2054 }
2055 ) })
2056 ] })
2057 },
2058 {
2059 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2060 WelcomeGuideImage,
2061 {
2062 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-documentation.svg",
2063 animatedSrc: "https://s.w.org/images/block-editor/welcome-documentation.gif"
2064 }
2065 ),
2066 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2067 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Learn more") }),
2068 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_element9.createInterpolateElement)(
2069 (0, import_i18n11.__)(
2070 "New to the block editor? Want to learn more about using it? <a>Here's a detailed guide.</a>"
2071 ),
2072 {
2073 a: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2074 import_components7.ExternalLink,
2075 {
2076 href: (0, import_i18n11.__)(
2077 "https://wordpress.org/documentation/article/wordpress-block-editor/"
2078 )
2079 }
2080 )
2081 }
2082 ) })
2083 ] })
2084 }
2085 ]
2086 }
2087 );
2088 }
2089
2090 // packages/edit-post/build-module/components/welcome-guide/template.mjs
2091 var import_data19 = __toESM(require_data(), 1);
2092 var import_components8 = __toESM(require_components(), 1);
2093 var import_i18n12 = __toESM(require_i18n(), 1);
2094 var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
2095 function WelcomeGuideTemplate() {
2096 const { toggleFeature: toggleFeature2 } = (0, import_data19.useDispatch)(store);
2097 return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2098 import_components8.Guide,
2099 {
2100 className: "edit-template-welcome-guide",
2101 contentLabel: (0, import_i18n12.__)("Welcome to the template editor"),
2102 finishButtonText: (0, import_i18n12.__)("Get started"),
2103 onFinish: () => toggleFeature2("welcomeGuideTemplate"),
2104 pages: [
2105 {
2106 image: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2107 WelcomeGuideImage,
2108 {
2109 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-template-editor.svg",
2110 animatedSrc: "https://s.w.org/images/block-editor/welcome-template-editor.gif"
2111 }
2112 ),
2113 content: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
2114 /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n12.__)("Welcome to the template editor") }),
2115 /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_i18n12.__)(
2116 "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."
2117 ) })
2118 ] })
2119 }
2120 ]
2121 }
2122 );
2123 }
2124
2125 // packages/edit-post/build-module/components/welcome-guide/index.mjs
2126 var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
2127 function WelcomeGuide({ postType }) {
2128 const { isActive, isEditingTemplate: isEditingTemplate2 } = (0, import_data20.useSelect)(
2129 (select3) => {
2130 const { isFeatureActive: isFeatureActive2 } = select3(store);
2131 const _isEditingTemplate = postType === "wp_template";
2132 const feature = _isEditingTemplate ? "welcomeGuideTemplate" : "welcomeGuide";
2133 return {
2134 isActive: isFeatureActive2(feature),
2135 isEditingTemplate: _isEditingTemplate
2136 };
2137 },
2138 [postType]
2139 );
2140 if (!isActive) {
2141 return null;
2142 }
2143 return isEditingTemplate2 ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(WelcomeGuideTemplate, {}) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(WelcomeGuideDefault, {});
2144 }
2145
2146 // packages/edit-post/build-module/commands/use-commands.mjs
2147 var import_data21 = __toESM(require_data(), 1);
2148 var import_i18n13 = __toESM(require_i18n(), 1);
2149 var import_commands = __toESM(require_commands(), 1);
2150 var import_preferences9 = __toESM(require_preferences(), 1);
2151 var import_notices2 = __toESM(require_notices(), 1);
2152 function useCommands() {
2153 const { isFullscreen } = (0, import_data21.useSelect)((select3) => {
2154 const { get } = select3(import_preferences9.store);
2155 return {
2156 isFullscreen: get("core/edit-post", "fullscreenMode")
2157 };
2158 }, []);
2159 const { toggle } = (0, import_data21.useDispatch)(import_preferences9.store);
2160 const { createInfoNotice } = (0, import_data21.useDispatch)(import_notices2.store);
2161 (0, import_commands.useCommand)({
2162 name: "core/toggle-fullscreen-mode",
2163 label: isFullscreen ? (0, import_i18n13.__)("Exit fullscreen") : (0, import_i18n13.__)("Enter fullscreen"),
2164 icon: fullscreen_default,
2165 category: "command",
2166 callback: ({ close }) => {
2167 toggle("core/edit-post", "fullscreenMode");
2168 close();
2169 createInfoNotice(
2170 isFullscreen ? (0, import_i18n13.__)("Fullscreen off.") : (0, import_i18n13.__)("Fullscreen on."),
2171 {
2172 id: "core/edit-post/toggle-fullscreen-mode/notice",
2173 type: "snackbar",
2174 actions: [
2175 {
2176 label: (0, import_i18n13.__)("Undo"),
2177 onClick: () => {
2178 toggle("core/edit-post", "fullscreenMode");
2179 }
2180 }
2181 ]
2182 }
2183 );
2184 }
2185 });
2186 }
2187
2188 // packages/edit-post/build-module/components/layout/use-should-iframe.mjs
2189 var import_editor15 = __toESM(require_editor(), 1);
2190 var import_data22 = __toESM(require_data(), 1);
2191 var import_blocks2 = __toESM(require_blocks(), 1);
2192 var import_block_editor = __toESM(require_block_editor(), 1);
2193 var isGutenbergPlugin = true ? true : false;
2194 function useShouldIframe() {
2195 return (0, import_data22.useSelect)((select3) => {
2196 const { getCurrentPostType, getDeviceType } = select3(import_editor15.store);
2197 const { getClientIdsWithDescendants, getBlockName } = select3(import_block_editor.store);
2198 const { getBlockType } = select3(import_blocks2.store);
2199 return (
2200 // If the Gutenberg plugin is active, we ALWAYS use the iframe for
2201 // consistency across the post and site editor. We plan on enforcing
2202 // the iframe in the future, so Gutenberg both serves as way for us
2203 // to warn plugin developers and for plugin developers to test their
2204 // blocks easily. Before GB v22.5, we only enforced it for
2205 // block-based themes (classic themes used the same rules as core).
2206 isGutenbergPlugin || // We also still want to iframe all the special
2207 // editor features and modes such as device previews, zoom out, and
2208 // template/pattern editing.
2209 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
2210 // (which means they are marked as iframe-compatible).
2211 [...new Set(getClientIdsWithDescendants().map(getBlockName))].map(getBlockType).filter(Boolean).every((blockType) => blockType.apiVersion >= 3)
2212 );
2213 }, []);
2214 }
2215
2216 // packages/edit-post/build-module/hooks/use-navigate-to-entity-record.mjs
2217 var import_element10 = __toESM(require_element(), 1);
2218 var import_data23 = __toESM(require_data(), 1);
2219 var import_editor16 = __toESM(require_editor(), 1);
2220 var import_core_data6 = __toESM(require_core_data(), 1);
2221 function useNavigateToEntityRecord(initialPostId, initialPostType, defaultRenderingMode) {
2222 const registry = (0, import_data23.useRegistry)();
2223 const [postHistory, dispatch2] = (0, import_element10.useReducer)(
2224 (historyState, { type, post: post2, previousRenderingMode: previousRenderingMode2, selectedBlockClientId }) => {
2225 if (type === "push") {
2226 const updatedHistory = [...historyState];
2227 const currentIndex = updatedHistory.length - 1;
2228 updatedHistory[currentIndex] = {
2229 ...updatedHistory[currentIndex],
2230 selectedBlockClientId
2231 };
2232 return [...updatedHistory, { post: post2, previousRenderingMode: previousRenderingMode2 }];
2233 }
2234 if (type === "pop") {
2235 if (historyState.length > 1) {
2236 return historyState.slice(0, -1);
2237 }
2238 }
2239 return historyState;
2240 },
2241 [
2242 {
2243 post: { postId: initialPostId, postType: initialPostType }
2244 }
2245 ]
2246 );
2247 const { post, previousRenderingMode } = postHistory[postHistory.length - 1];
2248 const { getRenderingMode } = (0, import_data23.useSelect)(import_editor16.store);
2249 const { setRenderingMode } = (0, import_data23.useDispatch)(import_editor16.store);
2250 const { editEntityRecord } = (0, import_data23.useDispatch)(import_core_data6.store);
2251 const onNavigateToEntityRecord = (0, import_element10.useCallback)(
2252 (params) => {
2253 const entityEdits = registry.select(import_core_data6.store).getEntityRecordEdits("postType", post.postType, post.postId);
2254 const externalClientId = entityEdits?.selection?.selectionStart?.clientId ?? null;
2255 dispatch2({
2256 type: "push",
2257 post: { postId: params.postId, postType: params.postType },
2258 // Save the current rendering mode so we can restore it when navigating back.
2259 previousRenderingMode: getRenderingMode(),
2260 selectedBlockClientId: externalClientId
2261 });
2262 setRenderingMode(defaultRenderingMode);
2263 },
2264 [
2265 registry,
2266 post.postType,
2267 post.postId,
2268 getRenderingMode,
2269 setRenderingMode,
2270 defaultRenderingMode
2271 ]
2272 );
2273 const onNavigateToPreviousEntityRecord = (0, import_element10.useCallback)(() => {
2274 if (postHistory.length > 1) {
2275 const previousItem = postHistory[postHistory.length - 2];
2276 if (previousItem.selectedBlockClientId) {
2277 editEntityRecord(
2278 "postType",
2279 previousItem.post.postType,
2280 previousItem.post.postId,
2281 {
2282 selection: {
2283 selectionStart: {
2284 clientId: previousItem.selectedBlockClientId
2285 },
2286 selectionEnd: {
2287 clientId: previousItem.selectedBlockClientId
2288 }
2289 }
2290 },
2291 { undoIgnore: true }
2292 );
2293 }
2294 }
2295 dispatch2({
2296 type: "pop"
2297 });
2298 if (previousRenderingMode) {
2299 setRenderingMode(previousRenderingMode);
2300 }
2301 }, [
2302 setRenderingMode,
2303 previousRenderingMode,
2304 postHistory,
2305 editEntityRecord
2306 ]);
2307 return {
2308 currentPost: post,
2309 onNavigateToEntityRecord,
2310 onNavigateToPreviousEntityRecord: postHistory.length > 1 ? onNavigateToPreviousEntityRecord : void 0
2311 };
2312 }
2313
2314 // packages/edit-post/build-module/components/meta-boxes/use-meta-box-initialization.mjs
2315 var import_data24 = __toESM(require_data(), 1);
2316 var import_editor17 = __toESM(require_editor(), 1);
2317 var import_core_data7 = __toESM(require_core_data(), 1);
2318 var import_element11 = __toESM(require_element(), 1);
2319 var useMetaBoxInitialization = (enabled) => {
2320 const {
2321 isEnabledAndEditorReady,
2322 isCollaborationEnabled,
2323 hasIncompatibleMetaBoxes
2324 } = (0, import_data24.useSelect)(
2325 (select3) => ({
2326 isEnabledAndEditorReady: enabled && select3(import_editor17.store).__unstableIsEditorReady(),
2327 isCollaborationEnabled: select3(import_editor17.store).isCollaborationEnabledForCurrentPost(),
2328 hasIncompatibleMetaBoxes: enabled ? select3(store).getAllMetaBoxes().some((metaBox) => !metaBox.__rtc_compatible) : false
2329 }),
2330 [enabled]
2331 );
2332 const { setCollaborationSupported } = unlock((0, import_data24.useDispatch)(import_core_data7.store));
2333 const { initializeMetaBoxes: initializeMetaBoxes2 } = (0, import_data24.useDispatch)(store);
2334 (0, import_element11.useEffect)(() => {
2335 if (isEnabledAndEditorReady) {
2336 initializeMetaBoxes2();
2337 if (isCollaborationEnabled && hasIncompatibleMetaBoxes) {
2338 setCollaborationSupported(false);
2339 }
2340 }
2341 }, [
2342 isEnabledAndEditorReady,
2343 initializeMetaBoxes2,
2344 isCollaborationEnabled,
2345 setCollaborationSupported,
2346 hasIncompatibleMetaBoxes
2347 ]);
2348 };
2349
2350 // packages/edit-post/build-module/components/layout/index.mjs
2351 var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
2352 var { useCommandContext } = unlock(import_commands2.privateApis);
2353 var { useDrag } = unlock(import_components9.privateApis);
2354 var { Editor, FullscreenMode } = unlock(import_editor18.privateApis);
2355 var { BlockKeyboardShortcuts } = unlock(import_block_library.privateApis);
2356 var DESIGN_POST_TYPES = [
2357 "wp_template",
2358 "wp_template_part",
2359 "wp_block",
2360 "wp_navigation"
2361 ];
2362 function useEditorStyles(settings) {
2363 const { hasThemeStyleSupport } = (0, import_data25.useSelect)((select3) => {
2364 return {
2365 hasThemeStyleSupport: select3(store).isFeatureActive("themeStyles")
2366 };
2367 }, []);
2368 return (0, import_element12.useMemo)(() => {
2369 const presetStyles = settings.styles?.filter(
2370 (style) => style.__unstableType && style.__unstableType !== "theme"
2371 ) ?? [];
2372 const defaultEditorStyles = [
2373 ...settings?.defaultEditorStyles ?? [],
2374 ...presetStyles
2375 ];
2376 const hasThemeStyles = hasThemeStyleSupport && presetStyles.length !== (settings.styles?.length ?? 0);
2377 if (!settings.disableLayoutStyles && !hasThemeStyles) {
2378 defaultEditorStyles.push({
2379 css: getLayoutStyles({
2380 style: {},
2381 selector: "body",
2382 hasBlockGapSupport: false,
2383 hasFallbackGapSupport: true,
2384 fallbackGapValue: "0.5em"
2385 })
2386 });
2387 }
2388 return hasThemeStyles ? settings.styles ?? [] : defaultEditorStyles;
2389 }, [
2390 settings.defaultEditorStyles,
2391 settings.disableLayoutStyles,
2392 settings.styles,
2393 hasThemeStyleSupport
2394 ]);
2395 }
2396 function MetaBoxesMain({ isLegacy }) {
2397 const [isOpen, openHeight, hasAnyVisible] = (0, import_data25.useSelect)((select3) => {
2398 const { get } = select3(import_preferences10.store);
2399 const { isMetaBoxLocationVisible: isMetaBoxLocationVisible2 } = select3(store);
2400 return [
2401 !!get("core/edit-post", "metaBoxesMainIsOpen"),
2402 get("core/edit-post", "metaBoxesMainOpenHeight"),
2403 isMetaBoxLocationVisible2("normal") || isMetaBoxLocationVisible2("advanced") || isMetaBoxLocationVisible2("side")
2404 ];
2405 }, []);
2406 const { set: setPreference } = (0, import_data25.useDispatch)(import_preferences10.store);
2407 const isShort = (0, import_compose3.useMediaQuery)("(max-height: 549px)");
2408 const [{ min = 0, max }, setHeightConstraints] = (0, import_element12.useState)(() => ({}));
2409 const effectSizeConstraints = (0, import_compose3.useRefEffect)((node) => {
2410 const container = node.closest(
2411 ".interface-interface-skeleton__content"
2412 );
2413 if (!container) {
2414 return;
2415 }
2416 const noticeLists = container.querySelectorAll(
2417 ":scope > .components-notice-list"
2418 );
2419 const resizeHandle = container.querySelector(
2420 ".edit-post-meta-boxes-main__presenter"
2421 );
2422 const deriveConstraints = () => {
2423 const fullHeight = container.offsetHeight;
2424 let nextMax = fullHeight;
2425 for (const element of noticeLists) {
2426 nextMax -= element.offsetHeight;
2427 }
2428 const nextMin = resizeHandle.offsetHeight;
2429 setHeightConstraints({ min: nextMin, max: nextMax });
2430 };
2431 const observer = new window.ResizeObserver(deriveConstraints);
2432 observer.observe(container);
2433 for (const element of noticeLists) {
2434 observer.observe(element);
2435 }
2436 return () => observer.disconnect();
2437 }, []);
2438 const metaBoxesMainRef = (0, import_element12.useRef)();
2439 const setMainRefs = (0, import_compose3.useMergeRefs)([
2440 metaBoxesMainRef,
2441 effectSizeConstraints
2442 ]);
2443 const separatorRef = (0, import_element12.useRef)();
2444 const separatorHelpId = (0, import_element12.useId)();
2445 const heightRef = (0, import_element12.useRef)();
2446 const applyHeight = (candidateHeight = "auto", isPersistent) => {
2447 let styleHeight;
2448 if (candidateHeight === "auto") {
2449 isPersistent = false;
2450 styleHeight = candidateHeight;
2451 } else {
2452 candidateHeight = Math.min(max, Math.max(min, candidateHeight));
2453 heightRef.current = candidateHeight;
2454 styleHeight = `${candidateHeight}px`;
2455 }
2456 if (isPersistent) {
2457 setPreference(
2458 "core/edit-post",
2459 "metaBoxesMainOpenHeight",
2460 candidateHeight
2461 );
2462 } else {
2463 metaBoxesMainRef.current.style.height = styleHeight;
2464 if (!isShort) {
2465 separatorRef.current.ariaValueNow = getAriaValueNow(candidateHeight);
2466 }
2467 }
2468 };
2469 const bindDragGesture = useDrag(
2470 ({ movement, first, last, memo, tap, args }) => {
2471 const pane = metaBoxesMainRef.current;
2472 const [, yMovement] = movement;
2473 if (first) {
2474 pane.classList.add("is-resizing");
2475 let fromHeight = heightRef.current ?? pane.offsetHeight;
2476 if (isOpen) {
2477 if (fromHeight > max) {
2478 fromHeight = max;
2479 }
2480 } else {
2481 fromHeight = min;
2482 }
2483 applyHeight(fromHeight - yMovement);
2484 return { fromHeight };
2485 }
2486 if (!first && !last && !tap) {
2487 applyHeight(memo.fromHeight - yMovement);
2488 return memo;
2489 }
2490 pane.classList.remove("is-resizing");
2491 if (tap) {
2492 const [onTap] = args;
2493 onTap?.();
2494 return;
2495 }
2496 const nextIsOpen = heightRef.current > min;
2497 persistIsOpen(nextIsOpen);
2498 applyHeight(heightRef.current, nextIsOpen);
2499 },
2500 { keyboardDisplacement: 20, filterTaps: true }
2501 );
2502 if (!hasAnyVisible) {
2503 return;
2504 }
2505 const contents = /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2506 "div",
2507 {
2508 className: "edit-post-layout__metaboxes edit-post-meta-boxes-main__liner",
2509 hidden: !isLegacy && !isOpen,
2510 children: [
2511 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MetaBoxes, { location: "normal" }),
2512 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MetaBoxes, { location: "advanced" })
2513 ]
2514 }
2515 );
2516 if (isLegacy) {
2517 return contents;
2518 }
2519 const isAutoHeight = openHeight === void 0;
2520 const usedOpenHeight = isShort ? "auto" : openHeight;
2521 const usedHeight = isOpen ? usedOpenHeight : min;
2522 const getAriaValueNow = (height) => Math.round((height - min) / (max - min) * 100);
2523 const usedAriaValueNow = max === void 0 || isAutoHeight ? 50 : getAriaValueNow(usedHeight);
2524 const persistIsOpen = (to = !isOpen) => setPreference("core/edit-post", "metaBoxesMainIsOpen", to);
2525 const paneLabel = (0, import_i18n14.__)("Meta Boxes");
2526 const toggle = /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2527 "button",
2528 {
2529 "aria-expanded": isOpen,
2530 onClick: ({ detail }) => {
2531 if (isShort || !detail) {
2532 persistIsOpen();
2533 }
2534 },
2535 ...!isShort && bindDragGesture(persistIsOpen),
2536 children: [
2537 paneLabel,
2538 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components9.Icon, { icon: isOpen ? chevron_up_default : chevron_down_default })
2539 ]
2540 }
2541 );
2542 const separator = !isShort && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2543 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components9.Tooltip, { text: (0, import_i18n14.__)("Drag to resize"), children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2544 "button",
2545 {
2546 ref: separatorRef,
2547 role: "separator",
2548 "aria-valuenow": usedAriaValueNow,
2549 "aria-label": (0, import_i18n14.__)("Drag to resize"),
2550 "aria-describedby": separatorHelpId,
2551 ...bindDragGesture()
2552 }
2553 ) }),
2554 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components9.VisuallyHidden, { id: separatorHelpId, children: (0, import_i18n14.__)(
2555 "Use up and down arrow keys to resize the meta box pane."
2556 ) })
2557 ] });
2558 return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2559 navigable_region_default,
2560 {
2561 ariaLabel: paneLabel,
2562 ref: setMainRefs,
2563 className: clsx_default(
2564 "edit-post-meta-boxes-main",
2565 !isShort && "is-resizable"
2566 ),
2567 style: { height: usedHeight },
2568 children: [
2569 /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "edit-post-meta-boxes-main__presenter", children: [
2570 toggle,
2571 separator
2572 ] }),
2573 contents
2574 ]
2575 }
2576 );
2577 }
2578 function Layout({
2579 postId: initialPostId,
2580 postType: initialPostType,
2581 settings,
2582 initialEdits
2583 }) {
2584 useCommands();
2585 const shouldIframe = useShouldIframe();
2586 const { createErrorNotice } = (0, import_data25.useDispatch)(import_notices3.store);
2587 const {
2588 currentPost: { postId: currentPostId, postType: currentPostType },
2589 onNavigateToEntityRecord,
2590 onNavigateToPreviousEntityRecord
2591 } = useNavigateToEntityRecord(
2592 initialPostId,
2593 initialPostType,
2594 "post-only"
2595 );
2596 const isEditingTemplate2 = currentPostType === "wp_template";
2597 const {
2598 mode,
2599 isFullscreenActive,
2600 hasResolvedMode,
2601 hasActiveMetaboxes,
2602 hasBlockSelected,
2603 showIconLabels,
2604 isDistractionFree,
2605 showMetaBoxes,
2606 isWelcomeGuideVisible,
2607 templateId,
2608 isDevicePreview
2609 } = (0, import_data25.useSelect)(
2610 (select3) => {
2611 const { get } = select3(import_preferences10.store);
2612 const { isFeatureActive: isFeatureActive2, hasMetaBoxes: hasMetaBoxes2 } = select3(store);
2613 const { canUser, getPostType, getTemplateId } = unlock(
2614 select3(import_core_data8.store)
2615 );
2616 const supportsTemplateMode = settings.supportsTemplateMode;
2617 const isViewable = getPostType(currentPostType)?.viewable ?? false;
2618 const canViewTemplate = canUser("read", {
2619 kind: "postType",
2620 name: "wp_template"
2621 });
2622 const { getBlockSelectionStart, isZoomOut } = unlock(
2623 select3(import_block_editor2.store)
2624 );
2625 const { getEditorMode: getEditorMode2, getDefaultRenderingMode, getDeviceType } = unlock(select3(import_editor18.store));
2626 const isNotDesignPostType = !DESIGN_POST_TYPES.includes(currentPostType);
2627 const isDirectlyEditingPattern = currentPostType === "wp_block" && !onNavigateToPreviousEntityRecord;
2628 const _templateId = getTemplateId(currentPostType, currentPostId);
2629 const defaultMode = getDefaultRenderingMode(currentPostType);
2630 return {
2631 mode: getEditorMode2(),
2632 isFullscreenActive: isFeatureActive2("fullscreenMode"),
2633 hasActiveMetaboxes: hasMetaBoxes2(),
2634 hasResolvedMode: defaultMode === "template-locked" ? !!_templateId : defaultMode !== void 0,
2635 hasBlockSelected: !!getBlockSelectionStart(),
2636 showIconLabels: get("core", "showIconLabels"),
2637 isDistractionFree: get("core", "distractionFree"),
2638 showMetaBoxes: isNotDesignPostType && !isZoomOut() || isDirectlyEditingPattern,
2639 isWelcomeGuideVisible: isFeatureActive2("welcomeGuide"),
2640 templateId: supportsTemplateMode && isViewable && canViewTemplate && !isEditingTemplate2 ? _templateId : null,
2641 isDevicePreview: getDeviceType() !== "Desktop"
2642 };
2643 },
2644 [
2645 currentPostType,
2646 currentPostId,
2647 isEditingTemplate2,
2648 settings.supportsTemplateMode,
2649 onNavigateToPreviousEntityRecord
2650 ]
2651 );
2652 useMetaBoxInitialization(hasActiveMetaboxes && hasResolvedMode);
2653 const commandContext = hasBlockSelected ? "block-selection-edit" : "entity-edit";
2654 useCommandContext(commandContext);
2655 const styles = useEditorStyles(settings);
2656 const editorSettings = (0, import_element12.useMemo)(
2657 () => ({
2658 ...settings,
2659 styles,
2660 onNavigateToEntityRecord,
2661 onNavigateToPreviousEntityRecord,
2662 defaultRenderingMode: "post-only"
2663 }),
2664 [
2665 settings,
2666 styles,
2667 onNavigateToEntityRecord,
2668 onNavigateToPreviousEntityRecord
2669 ]
2670 );
2671 if (showIconLabels) {
2672 document.body.classList.add("show-icon-labels");
2673 } else {
2674 document.body.classList.remove("show-icon-labels");
2675 }
2676 const navigateRegionsProps = (0, import_components9.__unstableUseNavigateRegions)();
2677 const className = clsx_default("edit-post-layout", "is-mode-" + mode, {
2678 "has-metaboxes": hasActiveMetaboxes
2679 });
2680 function onPluginAreaError(name) {
2681 createErrorNotice(
2682 (0, import_i18n14.sprintf)(
2683 /* translators: %s: plugin name */
2684 (0, import_i18n14.__)(
2685 'The "%s" plugin has encountered an error and cannot be rendered.'
2686 ),
2687 name
2688 )
2689 );
2690 }
2691 const { createSuccessNotice } = (0, import_data25.useDispatch)(import_notices3.store);
2692 const onActionPerformed = (0, import_element12.useCallback)(
2693 (actionId, items) => {
2694 switch (actionId) {
2695 case "move-to-trash":
2696 {
2697 document.location.href = (0, import_url5.addQueryArgs)("edit.php", {
2698 trashed: 1,
2699 post_type: items[0].type,
2700 ids: items[0].id
2701 });
2702 }
2703 break;
2704 case "duplicate-post":
2705 {
2706 const newItem = items[0];
2707 const title = typeof newItem.title === "string" ? newItem.title : newItem.title?.rendered;
2708 createSuccessNotice(
2709 (0, import_i18n14.sprintf)(
2710 // translators: %s: Title of the created post or template, e.g: "Hello world".
2711 (0, import_i18n14.__)('"%s" successfully created.'),
2712 (0, import_html_entities.decodeEntities)(title) || (0, import_i18n14.__)("(no title)")
2713 ),
2714 {
2715 type: "snackbar",
2716 id: "duplicate-post-action",
2717 actions: [
2718 {
2719 label: (0, import_i18n14.__)("Edit"),
2720 onClick: () => {
2721 const postId = newItem.id;
2722 document.location.href = (0, import_url5.addQueryArgs)("post.php", {
2723 post: postId,
2724 action: "edit"
2725 });
2726 }
2727 }
2728 ]
2729 }
2730 );
2731 }
2732 break;
2733 }
2734 },
2735 [createSuccessNotice]
2736 );
2737 const initialPost = (0, import_element12.useMemo)(() => {
2738 return {
2739 type: initialPostType,
2740 id: initialPostId
2741 };
2742 }, [initialPostType, initialPostId]);
2743 const backButton = (0, import_compose3.useViewportMatch)("medium") && isFullscreenActive ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(back_button_default, { initialPost }) : null;
2744 return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components9.SlotFillProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_editor18.ErrorBoundary, { canCopyContent: true, children: [
2745 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(WelcomeGuide, { postType: currentPostType }),
2746 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2747 "div",
2748 {
2749 className: navigateRegionsProps.className,
2750 ...navigateRegionsProps,
2751 ref: navigateRegionsProps.ref,
2752 children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2753 Editor,
2754 {
2755 settings: editorSettings,
2756 initialEdits,
2757 postType: currentPostType,
2758 postId: currentPostId,
2759 templateId,
2760 className,
2761 forceIsDirty: hasActiveMetaboxes,
2762 disableIframe: !shouldIframe,
2763 autoFocus: !isWelcomeGuideVisible,
2764 onActionPerformed,
2765 extraSidebarPanels: showMetaBoxes && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MetaBoxes, { location: "side" }),
2766 extraContent: !isDistractionFree && showMetaBoxes && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MetaBoxesMain, { isLegacy: isDevicePreview }),
2767 children: [
2768 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.PostLockedModal, {}),
2769 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(EditorInitialization, {}),
2770 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(FullscreenMode, { isActive: isFullscreenActive }),
2771 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(BrowserURL, {}),
2772 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.UnsavedChangesWarning, {}),
2773 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.AutosaveMonitor, {}),
2774 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.LocalAutosaveMonitor, {}),
2775 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(keyboard_shortcuts_default, {}),
2776 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.EditorKeyboardShortcutsRegister, {}),
2777 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(BlockKeyboardShortcuts, {}),
2778 currentPostType === "wp_block" && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(InitPatternModal, {}),
2779 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_plugins.PluginArea, { onError: onPluginAreaError }),
2780 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(more_menu_default, {}),
2781 backButton,
2782 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_notices3.SnackbarNotices, { className: "edit-post-layout__snackbar" })
2783 ]
2784 }
2785 )
2786 }
2787 )
2788 ] }) });
2789 }
2790 var layout_default = Layout;
2791
2792 // packages/edit-post/build-module/deprecated.mjs
2793 var import_editor19 = __toESM(require_editor(), 1);
2794 var import_url6 = __toESM(require_url(), 1);
2795 var import_deprecated3 = __toESM(require_deprecated(), 1);
2796 var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
2797 var { PluginPostExcerpt } = unlock(import_editor19.privateApis);
2798 var isSiteEditor = (0, import_url6.getPath)(window.location.href)?.includes(
2799 "site-editor.php"
2800 );
2801 var deprecateSlot = (name) => {
2802 (0, import_deprecated3.default)(`wp.editPost.${name}`, {
2803 since: "6.6",
2804 alternative: `wp.editor.${name}`
2805 });
2806 };
2807 function PluginBlockSettingsMenuItem(props) {
2808 if (isSiteEditor) {
2809 return null;
2810 }
2811 deprecateSlot("PluginBlockSettingsMenuItem");
2812 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginBlockSettingsMenuItem, { ...props });
2813 }
2814 function PluginDocumentSettingPanel(props) {
2815 if (isSiteEditor) {
2816 return null;
2817 }
2818 deprecateSlot("PluginDocumentSettingPanel");
2819 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginDocumentSettingPanel, { ...props });
2820 }
2821 function PluginMoreMenuItem(props) {
2822 if (isSiteEditor) {
2823 return null;
2824 }
2825 deprecateSlot("PluginMoreMenuItem");
2826 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginMoreMenuItem, { ...props });
2827 }
2828 function PluginPrePublishPanel(props) {
2829 if (isSiteEditor) {
2830 return null;
2831 }
2832 deprecateSlot("PluginPrePublishPanel");
2833 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginPrePublishPanel, { ...props });
2834 }
2835 function PluginPostPublishPanel(props) {
2836 if (isSiteEditor) {
2837 return null;
2838 }
2839 deprecateSlot("PluginPostPublishPanel");
2840 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginPostPublishPanel, { ...props });
2841 }
2842 function PluginPostStatusInfo(props) {
2843 if (isSiteEditor) {
2844 return null;
2845 }
2846 deprecateSlot("PluginPostStatusInfo");
2847 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginPostStatusInfo, { ...props });
2848 }
2849 function PluginSidebar(props) {
2850 if (isSiteEditor) {
2851 return null;
2852 }
2853 deprecateSlot("PluginSidebar");
2854 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginSidebar, { ...props });
2855 }
2856 function PluginSidebarMoreMenuItem(props) {
2857 if (isSiteEditor) {
2858 return null;
2859 }
2860 deprecateSlot("PluginSidebarMoreMenuItem");
2861 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginSidebarMoreMenuItem, { ...props });
2862 }
2863 function __experimentalPluginPostExcerpt() {
2864 if (isSiteEditor) {
2865 return null;
2866 }
2867 (0, import_deprecated3.default)("wp.editPost.__experimentalPluginPostExcerpt", {
2868 since: "6.6",
2869 hint: "Core and custom panels can be access programmatically using their panel name.",
2870 link: "https://developer.wordpress.org/block-editor/reference-guides/slotfills/plugin-document-setting-panel/#accessing-a-panel-programmatically"
2871 });
2872 return PluginPostExcerpt;
2873 }
2874
2875 // packages/edit-post/build-module/index.mjs
2876 var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
2877 var {
2878 BackButton: __experimentalMainDashboardButton,
2879 registerCoreBlockBindingsSources
2880 } = unlock(import_editor20.privateApis);
2881 function initializeEditor(id, postType, postId, settings, initialEdits) {
2882 const isMediumOrBigger = window.matchMedia("(min-width: 782px)").matches;
2883 const target = document.getElementById(id);
2884 const root = (0, import_element13.createRoot)(target);
2885 (0, import_data26.dispatch)(import_preferences11.store).setDefaults("core/edit-post", {
2886 fullscreenMode: true,
2887 themeStyles: true,
2888 welcomeGuide: true,
2889 welcomeGuideTemplate: true
2890 });
2891 (0, import_data26.dispatch)(import_preferences11.store).setDefaults("core", {
2892 allowRightClickOverrides: true,
2893 editorMode: "visual",
2894 editorTool: "edit",
2895 fixedToolbar: false,
2896 hiddenBlockTypes: [],
2897 inactivePanels: [],
2898 openPanels: ["post-status"],
2899 showBlockBreadcrumbs: true,
2900 showIconLabels: false,
2901 showListViewByDefault: false,
2902 enableChoosePatternModal: true,
2903 isPublishSidebarEnabled: true,
2904 showCollaborationCursor: false,
2905 showCollaborationNotifications: true
2906 });
2907 if (window.__clientSideMediaProcessing) {
2908 (0, import_data26.dispatch)(import_preferences11.store).setDefaults("core/media", {
2909 requireApproval: true,
2910 optimizeOnUpload: true
2911 });
2912 }
2913 (0, import_data26.dispatch)(import_blocks3.store).reapplyBlockTypeFilters();
2914 if (isMediumOrBigger && (0, import_data26.select)(import_preferences11.store).get("core", "showListViewByDefault") && !(0, import_data26.select)(import_preferences11.store).get("core", "distractionFree")) {
2915 (0, import_data26.dispatch)(import_editor20.store).setIsListViewOpened(true);
2916 }
2917 (0, import_block_library2.registerCoreBlocks)();
2918 registerCoreBlockBindingsSources();
2919 (0, import_widgets.registerLegacyWidgetBlock)({ inserter: false });
2920 (0, import_widgets.registerWidgetGroupBlock)({ inserter: false });
2921 if (true) {
2922 (0, import_block_library2.__experimentalRegisterExperimentalCoreBlocks)({
2923 enableFSEBlocks: settings.__unstableEnableFullSiteEditingBlocks
2924 });
2925 }
2926 const documentMode = document.compatMode === "CSS1Compat" ? "Standards" : "Quirks";
2927 if (documentMode !== "Standards") {
2928 console.warn(
2929 "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."
2930 );
2931 }
2932 const isIphone = window.navigator.userAgent.indexOf("iPhone") !== -1;
2933 if (isIphone) {
2934 window.addEventListener("scroll", (event) => {
2935 const editorScrollContainer = document.getElementsByClassName(
2936 "interface-interface-skeleton__body"
2937 )[0];
2938 if (event.target === document) {
2939 if (window.scrollY > 100) {
2940 editorScrollContainer.scrollTop = editorScrollContainer.scrollTop + window.scrollY;
2941 }
2942 if (document.getElementsByClassName("is-mode-visual")[0]) {
2943 window.scrollTo(0, 0);
2944 }
2945 }
2946 });
2947 }
2948 window.addEventListener("dragover", (e) => e.preventDefault(), false);
2949 window.addEventListener("drop", (e) => e.preventDefault(), false);
2950 root.render(
2951 /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_element13.StrictMode, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2952 layout_default,
2953 {
2954 settings,
2955 postId,
2956 postType,
2957 initialEdits
2958 }
2959 ) })
2960 );
2961 return root;
2962 }
2963 function reinitializeEditor() {
2964 (0, import_deprecated4.default)("wp.editPost.reinitializeEditor", {
2965 since: "6.2",
2966 version: "6.3"
2967 });
2968 }
2969 return __toCommonJS(index_exports);
2970 })();
2971 //# sourceMappingURL=index.js.map
2972