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

3,542 lines 134.8 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 // vendor-external:react
98 var require_react = __commonJS({
99 "vendor-external:react"(exports, module) {
100 module.exports = window.React;
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/compose
119 var require_compose = __commonJS({
120 "package-external:@wordpress/compose"(exports, module) {
121 module.exports = window.wp.compose;
122 }
123 });
124
125 // package-external:@wordpress/private-apis
126 var require_private_apis = __commonJS({
127 "package-external:@wordpress/private-apis"(exports, module) {
128 module.exports = window.wp.privateApis;
129 }
130 });
131
132 // package-external:@wordpress/components
133 var require_components = __commonJS({
134 "package-external:@wordpress/components"(exports, module) {
135 module.exports = window.wp.components;
136 }
137 });
138
139 // package-external:@wordpress/block-editor
140 var require_block_editor = __commonJS({
141 "package-external:@wordpress/block-editor"(exports, module) {
142 module.exports = window.wp.blockEditor;
143 }
144 });
145
146 // package-external:@wordpress/style-engine
147 var require_style_engine = __commonJS({
148 "package-external:@wordpress/style-engine"(exports, module) {
149 module.exports = window.wp.styleEngine;
150 }
151 });
152
153 // package-external:@wordpress/plugins
154 var require_plugins = __commonJS({
155 "package-external:@wordpress/plugins"(exports, module) {
156 module.exports = window.wp.plugins;
157 }
158 });
159
160 // package-external:@wordpress/notices
161 var require_notices = __commonJS({
162 "package-external:@wordpress/notices"(exports, module) {
163 module.exports = window.wp.notices;
164 }
165 });
166
167 // package-external:@wordpress/commands
168 var require_commands = __commonJS({
169 "package-external:@wordpress/commands"(exports, module) {
170 module.exports = window.wp.commands;
171 }
172 });
173
174 // package-external:@wordpress/url
175 var require_url = __commonJS({
176 "package-external:@wordpress/url"(exports, module) {
177 module.exports = window.wp.url;
178 }
179 });
180
181 // package-external:@wordpress/html-entities
182 var require_html_entities = __commonJS({
183 "package-external:@wordpress/html-entities"(exports, module) {
184 module.exports = window.wp.htmlEntities;
185 }
186 });
187
188 // package-external:@wordpress/core-data
189 var require_core_data = __commonJS({
190 "package-external:@wordpress/core-data"(exports, module) {
191 module.exports = window.wp.coreData;
192 }
193 });
194
195 // package-external:@wordpress/keyboard-shortcuts
196 var require_keyboard_shortcuts = __commonJS({
197 "package-external:@wordpress/keyboard-shortcuts"(exports, module) {
198 module.exports = window.wp.keyboardShortcuts;
199 }
200 });
201
202 // package-external:@wordpress/api-fetch
203 var require_api_fetch = __commonJS({
204 "package-external:@wordpress/api-fetch"(exports, module) {
205 module.exports = window.wp.apiFetch;
206 }
207 });
208
209 // package-external:@wordpress/hooks
210 var require_hooks = __commonJS({
211 "package-external:@wordpress/hooks"(exports, module) {
212 module.exports = window.wp.hooks;
213 }
214 });
215
216 // package-external:@wordpress/keycodes
217 var require_keycodes = __commonJS({
218 "package-external:@wordpress/keycodes"(exports, module) {
219 module.exports = window.wp.keycodes;
220 }
221 });
222
223 // packages/edit-post/build-module/index.mjs
224 var index_exports = {};
225 __export(index_exports, {
226 PluginBlockSettingsMenuItem: () => PluginBlockSettingsMenuItem,
227 PluginDocumentSettingPanel: () => PluginDocumentSettingPanel,
228 PluginMoreMenuItem: () => PluginMoreMenuItem,
229 PluginPostPublishPanel: () => PluginPostPublishPanel,
230 PluginPostStatusInfo: () => PluginPostStatusInfo,
231 PluginPrePublishPanel: () => PluginPrePublishPanel,
232 PluginSidebar: () => PluginSidebar,
233 PluginSidebarMoreMenuItem: () => PluginSidebarMoreMenuItem,
234 __experimentalFullscreenModeClose: () => fullscreen_mode_close_default,
235 __experimentalMainDashboardButton: () => __experimentalMainDashboardButton,
236 __experimentalPluginPostExcerpt: () => __experimentalPluginPostExcerpt,
237 initializeEditor: () => initializeEditor,
238 reinitializeEditor: () => reinitializeEditor,
239 store: () => store
240 });
241 var import_blocks3 = __toESM(require_blocks(), 1);
242 var import_block_library2 = __toESM(require_block_library(), 1);
243 var import_deprecated4 = __toESM(require_deprecated(), 1);
244 var import_element14 = __toESM(require_element(), 1);
245 var import_data26 = __toESM(require_data(), 1);
246 var import_preferences11 = __toESM(require_preferences(), 1);
247 var import_widgets = __toESM(require_widgets(), 1);
248 var import_editor20 = __toESM(require_editor(), 1);
249
250 // node_modules/clsx/dist/clsx.mjs
251 function r(e) {
252 var t, f, n = "";
253 if ("string" == typeof e || "number" == typeof e) n += e;
254 else if ("object" == typeof e) if (Array.isArray(e)) {
255 var o = e.length;
256 for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
257 } else for (f in e) e[f] && (n && (n += " "), n += f);
258 return n;
259 }
260 function clsx() {
261 for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
262 return n;
263 }
264 var clsx_default = clsx;
265
266 // node_modules/@base-ui/utils/esm/useRefWithInit.js
267 var React = __toESM(require_react(), 1);
268 var UNINITIALIZED = {};
269 function useRefWithInit(init, initArg) {
270 const ref = React.useRef(UNINITIALIZED);
271 if (ref.current === UNINITIALIZED) {
272 ref.current = init(initArg);
273 }
274 return ref;
275 }
276
277 // node_modules/@base-ui/utils/esm/warn.js
278 var set;
279 if (true) {
280 set = /* @__PURE__ */ new Set();
281 }
282 function warn(...messages) {
283 if (true) {
284 const messageKey = messages.join(" ");
285 if (!set.has(messageKey)) {
286 set.add(messageKey);
287 console.warn(`Base UI: ${messageKey}`);
288 }
289 }
290 }
291
292 // node_modules/@base-ui/react/esm/internals/useRenderElement.js
293 var React4 = __toESM(require_react(), 1);
294
295 // node_modules/@base-ui/utils/esm/useMergedRefs.js
296 function useMergedRefs(a, b, c, d) {
297 const forkRef = useRefWithInit(createForkRef).current;
298 if (didChange(forkRef, a, b, c, d)) {
299 update(forkRef, [a, b, c, d]);
300 }
301 return forkRef.callback;
302 }
303 function useMergedRefsN(refs) {
304 const forkRef = useRefWithInit(createForkRef).current;
305 if (didChangeN(forkRef, refs)) {
306 update(forkRef, refs);
307 }
308 return forkRef.callback;
309 }
310 function createForkRef() {
311 return {
312 callback: null,
313 cleanup: null,
314 refs: []
315 };
316 }
317 function didChange(forkRef, a, b, c, d) {
318 return forkRef.refs[0] !== a || forkRef.refs[1] !== b || forkRef.refs[2] !== c || forkRef.refs[3] !== d;
319 }
320 function didChangeN(forkRef, newRefs) {
321 return forkRef.refs.length !== newRefs.length || forkRef.refs.some((ref, index) => ref !== newRefs[index]);
322 }
323 function update(forkRef, refs) {
324 forkRef.refs = refs;
325 if (refs.every((ref) => ref == null)) {
326 forkRef.callback = null;
327 return;
328 }
329 forkRef.callback = (instance) => {
330 if (forkRef.cleanup) {
331 forkRef.cleanup();
332 forkRef.cleanup = null;
333 }
334 if (instance != null) {
335 const cleanupCallbacks = Array(refs.length).fill(null);
336 for (let i = 0; i < refs.length; i += 1) {
337 const ref = refs[i];
338 if (ref == null) {
339 continue;
340 }
341 switch (typeof ref) {
342 case "function": {
343 const refCleanup = ref(instance);
344 if (typeof refCleanup === "function") {
345 cleanupCallbacks[i] = refCleanup;
346 }
347 break;
348 }
349 case "object": {
350 ref.current = instance;
351 break;
352 }
353 default:
354 }
355 }
356 forkRef.cleanup = () => {
357 for (let i = 0; i < refs.length; i += 1) {
358 const ref = refs[i];
359 if (ref == null) {
360 continue;
361 }
362 switch (typeof ref) {
363 case "function": {
364 const cleanupCallback = cleanupCallbacks[i];
365 if (typeof cleanupCallback === "function") {
366 cleanupCallback();
367 } else {
368 ref(null);
369 }
370 break;
371 }
372 case "object": {
373 ref.current = null;
374 break;
375 }
376 default:
377 }
378 }
379 };
380 }
381 };
382 }
383
384 // node_modules/@base-ui/utils/esm/getReactElementRef.js
385 var React3 = __toESM(require_react(), 1);
386
387 // node_modules/@base-ui/utils/esm/reactVersion.js
388 var React2 = __toESM(require_react(), 1);
389 var majorVersion = parseInt(React2.version, 10);
390 function isReactVersionAtLeast(reactVersionToCheck) {
391 return majorVersion >= reactVersionToCheck;
392 }
393
394 // node_modules/@base-ui/utils/esm/getReactElementRef.js
395 function getReactElementRef(element) {
396 if (!/* @__PURE__ */ React3.isValidElement(element)) {
397 return null;
398 }
399 const reactElement = element;
400 const propsWithRef = reactElement.props;
401 return (isReactVersionAtLeast(19) ? propsWithRef?.ref : reactElement.ref) ?? null;
402 }
403
404 // node_modules/@base-ui/utils/esm/mergeObjects.js
405 function mergeObjects(a, b) {
406 if (a && !b) {
407 return a;
408 }
409 if (!a && b) {
410 return b;
411 }
412 if (a || b) {
413 return {
414 ...a,
415 ...b
416 };
417 }
418 return void 0;
419 }
420
421 // node_modules/@base-ui/utils/esm/empty.js
422 var EMPTY_ARRAY = Object.freeze([]);
423 var EMPTY_OBJECT = Object.freeze({});
424
425 // node_modules/@base-ui/react/esm/internals/getStateAttributesProps.js
426 function getStateAttributesProps(state, customMapping) {
427 const props = {};
428 for (const key in state) {
429 const value = state[key];
430 if (customMapping?.hasOwnProperty(key)) {
431 const customProps = customMapping[key](value);
432 if (customProps != null) {
433 Object.assign(props, customProps);
434 }
435 continue;
436 }
437 if (value === true) {
438 props[`data-${key.toLowerCase()}`] = "";
439 } else if (value) {
440 props[`data-${key.toLowerCase()}`] = value.toString();
441 }
442 }
443 return props;
444 }
445
446 // node_modules/@base-ui/react/esm/utils/resolveClassName.js
447 function resolveClassName(className, state) {
448 return typeof className === "function" ? className(state) : className;
449 }
450
451 // node_modules/@base-ui/react/esm/utils/resolveStyle.js
452 function resolveStyle(style, state) {
453 return typeof style === "function" ? style(state) : style;
454 }
455
456 // node_modules/@base-ui/react/esm/merge-props/mergeProps.js
457 var EMPTY_PROPS = {};
458 function mergeProps(a, b, c, d, e) {
459 if (!c && !d && !e && !a) {
460 return createInitialMergedProps(b);
461 }
462 let merged = createInitialMergedProps(a);
463 if (b) {
464 merged = mergeInto(merged, b);
465 }
466 if (c) {
467 merged = mergeInto(merged, c);
468 }
469 if (d) {
470 merged = mergeInto(merged, d);
471 }
472 if (e) {
473 merged = mergeInto(merged, e);
474 }
475 return merged;
476 }
477 function mergePropsN(props) {
478 if (props.length === 0) {
479 return EMPTY_PROPS;
480 }
481 if (props.length === 1) {
482 return createInitialMergedProps(props[0]);
483 }
484 let merged = createInitialMergedProps(props[0]);
485 for (let i = 1; i < props.length; i += 1) {
486 merged = mergeInto(merged, props[i]);
487 }
488 return merged;
489 }
490 function createInitialMergedProps(inputProps) {
491 if (isPropsGetter(inputProps)) {
492 return {
493 ...resolvePropsGetter(inputProps, EMPTY_PROPS)
494 };
495 }
496 return copyInitialProps(inputProps);
497 }
498 function mergeInto(merged, inputProps) {
499 if (isPropsGetter(inputProps)) {
500 return resolvePropsGetter(inputProps, merged);
501 }
502 return mutablyMergeInto(merged, inputProps);
503 }
504 function copyInitialProps(inputProps) {
505 const copiedProps = {
506 ...inputProps
507 };
508 for (const propName in copiedProps) {
509 const propValue = copiedProps[propName];
510 if (isEventHandler(propName, propValue)) {
511 copiedProps[propName] = wrapEventHandler(propValue);
512 }
513 }
514 return copiedProps;
515 }
516 function mutablyMergeInto(mergedProps, externalProps) {
517 if (!externalProps) {
518 return mergedProps;
519 }
520 for (const propName in externalProps) {
521 const externalPropValue = externalProps[propName];
522 switch (propName) {
523 case "style": {
524 mergedProps[propName] = mergeObjects(mergedProps.style, externalPropValue);
525 break;
526 }
527 case "className": {
528 mergedProps[propName] = mergeClassNames(mergedProps.className, externalPropValue);
529 break;
530 }
531 default: {
532 if (isEventHandler(propName, externalPropValue)) {
533 mergedProps[propName] = mergeEventHandlers(mergedProps[propName], externalPropValue);
534 } else {
535 mergedProps[propName] = externalPropValue;
536 }
537 }
538 }
539 }
540 return mergedProps;
541 }
542 function isEventHandler(key, value) {
543 const code0 = key.charCodeAt(0);
544 const code1 = key.charCodeAt(1);
545 const code2 = key.charCodeAt(2);
546 return code0 === 111 && code1 === 110 && code2 >= 65 && code2 <= 90 && (typeof value === "function" || typeof value === "undefined");
547 }
548 function isPropsGetter(inputProps) {
549 return typeof inputProps === "function";
550 }
551 function resolvePropsGetter(inputProps, previousProps) {
552 if (isPropsGetter(inputProps)) {
553 return inputProps(previousProps);
554 }
555 return inputProps ?? EMPTY_PROPS;
556 }
557 function mergeEventHandlers(ourHandler, theirHandler) {
558 if (!theirHandler) {
559 return ourHandler;
560 }
561 if (!ourHandler) {
562 return wrapEventHandler(theirHandler);
563 }
564 return (...args) => {
565 const event = args[0];
566 if (isSyntheticEvent(event)) {
567 const baseUIEvent = event;
568 makeEventPreventable(baseUIEvent);
569 const result2 = theirHandler(...args);
570 if (!baseUIEvent.baseUIHandlerPrevented) {
571 ourHandler?.(...args);
572 }
573 return result2;
574 }
575 const result = theirHandler(...args);
576 ourHandler?.(...args);
577 return result;
578 };
579 }
580 function wrapEventHandler(handler) {
581 if (!handler) {
582 return handler;
583 }
584 return (...args) => {
585 const event = args[0];
586 if (isSyntheticEvent(event)) {
587 makeEventPreventable(event);
588 }
589 return handler(...args);
590 };
591 }
592 function makeEventPreventable(event) {
593 event.preventBaseUIHandler = () => {
594 event.baseUIHandlerPrevented = true;
595 };
596 return event;
597 }
598 function mergeClassNames(ourClassName, theirClassName) {
599 if (theirClassName) {
600 if (ourClassName) {
601 return theirClassName + " " + ourClassName;
602 }
603 return theirClassName;
604 }
605 return ourClassName;
606 }
607 function isSyntheticEvent(event) {
608 return event != null && typeof event === "object" && "nativeEvent" in event;
609 }
610
611 // node_modules/@base-ui/react/esm/internals/useRenderElement.js
612 var import_react = __toESM(require_react(), 1);
613 function useRenderElement(element, componentProps, params = {}) {
614 const renderProp = componentProps.render;
615 const outProps = useRenderElementProps(componentProps, params);
616 if (params.enabled === false) {
617 return null;
618 }
619 const state = params.state ?? EMPTY_OBJECT;
620 return evaluateRenderProp(element, renderProp, outProps, state);
621 }
622 function useRenderElementProps(componentProps, params = {}) {
623 const {
624 className: classNameProp,
625 style: styleProp,
626 render: renderProp
627 } = componentProps;
628 const {
629 state = EMPTY_OBJECT,
630 ref,
631 props,
632 stateAttributesMapping,
633 enabled = true
634 } = params;
635 const className = enabled ? resolveClassName(classNameProp, state) : void 0;
636 const style = enabled ? resolveStyle(styleProp, state) : void 0;
637 const stateProps = enabled ? getStateAttributesProps(state, stateAttributesMapping) : EMPTY_OBJECT;
638 const resolvedProps = enabled && props ? resolveRenderFunctionProps(props) : void 0;
639 const outProps = enabled ? mergeObjects(stateProps, resolvedProps) ?? {} : EMPTY_OBJECT;
640 if (typeof document !== "undefined") {
641 if (!enabled) {
642 useMergedRefs(null, null);
643 } else if (Array.isArray(ref)) {
644 outProps.ref = useMergedRefsN([outProps.ref, getReactElementRef(renderProp), ...ref]);
645 } else {
646 outProps.ref = useMergedRefs(outProps.ref, getReactElementRef(renderProp), ref);
647 }
648 }
649 if (!enabled) {
650 return EMPTY_OBJECT;
651 }
652 if (className !== void 0) {
653 outProps.className = mergeClassNames(outProps.className, className);
654 }
655 if (style !== void 0) {
656 outProps.style = mergeObjects(outProps.style, style);
657 }
658 return outProps;
659 }
660 function resolveRenderFunctionProps(props) {
661 if (Array.isArray(props)) {
662 return mergePropsN(props);
663 }
664 return mergeProps(void 0, props);
665 }
666 var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
667 var COMPONENT_IDENTIFIER_PATTERN = /^[A-Z][A-Za-z0-9$]*$/;
668 var LOWERCASE_CHARACTER_PATTERN = /[a-z]/;
669 function evaluateRenderProp(element, render, props, state) {
670 if (render) {
671 if (typeof render === "function") {
672 if (true) {
673 warnIfRenderPropLooksLikeComponent(render);
674 }
675 return render(props, state);
676 }
677 const mergedProps = mergeProps(props, render.props);
678 mergedProps.ref = props.ref;
679 let newElement = render;
680 if (newElement?.$$typeof === REACT_LAZY_TYPE) {
681 const children = React4.Children.toArray(render);
682 newElement = children[0];
683 }
684 if (true) {
685 if (!/* @__PURE__ */ React4.isValidElement(newElement)) {
686 throw new Error(["Base UI: The `render` prop was provided an invalid React element as `React.isValidElement(render)` is `false`.", "A valid React element must be provided to the `render` prop because it is cloned with props to replace the default element.", "https://base-ui.com/r/invalid-render-prop"].join("\n"));
687 }
688 }
689 return /* @__PURE__ */ React4.cloneElement(newElement, mergedProps);
690 }
691 if (element) {
692 if (typeof element === "string") {
693 return renderTag(element, props);
694 }
695 }
696 throw new Error(true ? "Base UI: Render element or function are not defined." : formatErrorMessage_default(8));
697 }
698 function warnIfRenderPropLooksLikeComponent(renderFn) {
699 const functionName = renderFn.name;
700 if (functionName.length === 0) {
701 return;
702 }
703 if (!COMPONENT_IDENTIFIER_PATTERN.test(functionName)) {
704 return;
705 }
706 if (!LOWERCASE_CHARACTER_PATTERN.test(functionName)) {
707 return;
708 }
709 warn(`The \`render\` prop received a function named \`${functionName}\` that starts with an uppercase letter.`, "This usually means a React component was passed directly as `render={Component}`.", "Base UI calls `render` as a plain function, which can break the Rules of Hooks during reconciliation.", "If this is an intentional render callback, rename it to start with a lowercase letter.", "Use `render={<Component />}` or `render={(props) => <Component {...props} />}` instead.", "https://base-ui.com/r/invalid-render-prop");
710 }
711 function renderTag(Tag, props) {
712 if (Tag === "button") {
713 return /* @__PURE__ */ (0, import_react.createElement)("button", {
714 type: "button",
715 ...props,
716 key: props.key
717 });
718 }
719 if (Tag === "img") {
720 return /* @__PURE__ */ (0, import_react.createElement)("img", {
721 alt: "",
722 ...props,
723 key: props.key
724 });
725 }
726 return /* @__PURE__ */ React4.createElement(Tag, props);
727 }
728
729 // node_modules/@base-ui/react/esm/use-render/useRender.js
730 function useRender(params) {
731 return useRenderElement(params.defaultTagName ?? "div", params, params);
732 }
733
734 // packages/icons/build-module/library/arrow-up-left.mjs
735 var import_primitives = __toESM(require_primitives(), 1);
736 var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
737 var arrow_up_left_default = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.Path, { d: "M14 6H6v8h1.5V8.5L17 18l1-1-9.5-9.5H14V6Z" }) });
738
739 // packages/icons/build-module/library/chevron-down.mjs
740 var import_primitives2 = __toESM(require_primitives(), 1);
741 var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
742 var chevron_down_default = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives2.Path, { d: "M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z" }) });
743
744 // packages/icons/build-module/library/chevron-up.mjs
745 var import_primitives3 = __toESM(require_primitives(), 1);
746 var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
747 var chevron_up_default = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives3.Path, { d: "M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z" }) });
748
749 // packages/icons/build-module/library/fullscreen.mjs
750 var import_primitives4 = __toESM(require_primitives(), 1);
751 var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
752 var fullscreen_default = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives4.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime4.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" }) });
753
754 // packages/icons/build-module/library/wordpress.mjs
755 var import_primitives5 = __toESM(require_primitives(), 1);
756 var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
757 var wordpress_default = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives5.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "-2 -2 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime5.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" }) });
758
759 // packages/ui/build-module/visually-hidden/visually-hidden.mjs
760 var import_element = __toESM(require_element(), 1);
761 var STYLE_HASH_ATTRIBUTE = "data-wp-hash";
762 function getRuntime() {
763 const globalScope = globalThis;
764 if (globalScope.__wpStyleRuntime) {
765 return globalScope.__wpStyleRuntime;
766 }
767 globalScope.__wpStyleRuntime = {
768 documents: /* @__PURE__ */ new Map(),
769 styles: /* @__PURE__ */ new Map(),
770 injectedStyles: /* @__PURE__ */ new WeakMap()
771 };
772 if (typeof document !== "undefined") {
773 registerDocument(document);
774 }
775 return globalScope.__wpStyleRuntime;
776 }
777 function documentContainsStyleHash(targetDocument, hash) {
778 if (!targetDocument.head) {
779 return false;
780 }
781 for (const style of targetDocument.head.querySelectorAll(
782 `style[${STYLE_HASH_ATTRIBUTE}]`
783 )) {
784 if (style.getAttribute(STYLE_HASH_ATTRIBUTE) === hash) {
785 return true;
786 }
787 }
788 return false;
789 }
790 function injectStyle(targetDocument, hash, css) {
791 if (!targetDocument.head) {
792 return;
793 }
794 const runtime = getRuntime();
795 let injectedStyles = runtime.injectedStyles.get(targetDocument);
796 if (!injectedStyles) {
797 injectedStyles = /* @__PURE__ */ new Set();
798 runtime.injectedStyles.set(targetDocument, injectedStyles);
799 }
800 if (injectedStyles.has(hash)) {
801 return;
802 }
803 if (documentContainsStyleHash(targetDocument, hash)) {
804 injectedStyles.add(hash);
805 return;
806 }
807 const style = targetDocument.createElement("style");
808 style.setAttribute(STYLE_HASH_ATTRIBUTE, hash);
809 style.appendChild(targetDocument.createTextNode(css));
810 targetDocument.head.appendChild(style);
811 injectedStyles.add(hash);
812 }
813 function registerDocument(targetDocument) {
814 const runtime = getRuntime();
815 runtime.documents.set(
816 targetDocument,
817 (runtime.documents.get(targetDocument) ?? 0) + 1
818 );
819 for (const [hash, css] of runtime.styles) {
820 injectStyle(targetDocument, hash, css);
821 }
822 return () => {
823 const count = runtime.documents.get(targetDocument);
824 if (count === void 0) {
825 return;
826 }
827 if (count <= 1) {
828 runtime.documents.delete(targetDocument);
829 return;
830 }
831 runtime.documents.set(targetDocument, count - 1);
832 };
833 }
834 function registerStyle(hash, css) {
835 const runtime = getRuntime();
836 runtime.styles.set(hash, css);
837 for (const targetDocument of runtime.documents.keys()) {
838 injectStyle(targetDocument, hash, css);
839 }
840 }
841 if (typeof process === "undefined" || true) {
842 registerStyle("c46e8cb841", "@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{.f37b9e2e191ebd66__visually-hidden{word-wrap:normal;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal}}");
843 }
844 var style_default = { "visually-hidden": "f37b9e2e191ebd66__visually-hidden" };
845 var VisuallyHidden = (0, import_element.forwardRef)(
846 function VisuallyHidden2({ render, ...restProps }, ref) {
847 const element = useRender({
848 render,
849 ref,
850 props: mergeProps(
851 { className: style_default["visually-hidden"] },
852 restProps,
853 {
854 // @ts-expect-error Arbitrary data-* attributes aren't indexable on the typed div props. Kept hardcoded so consumers can't change or remove it.
855 "data-visually-hidden": ""
856 }
857 )
858 });
859 return element;
860 }
861 );
862
863 // packages/admin-ui/build-module/navigable-region/index.mjs
864 var import_element2 = __toESM(require_element(), 1);
865 var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
866 var NavigableRegion = (0, import_element2.forwardRef)(
867 ({ children, className, ariaLabel, as: Tag = "div", ...props }, ref) => {
868 return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
869 Tag,
870 {
871 ref,
872 className: clsx_default("admin-ui-navigable-region", className),
873 "aria-label": ariaLabel,
874 role: "region",
875 tabIndex: "-1",
876 ...props,
877 children
878 }
879 );
880 }
881 );
882 NavigableRegion.displayName = "NavigableRegion";
883 var navigable_region_default = NavigableRegion;
884
885 // packages/edit-post/build-module/components/layout/index.mjs
886 var import_editor18 = __toESM(require_editor(), 1);
887 var import_data25 = __toESM(require_data(), 1);
888 var import_block_editor2 = __toESM(require_block_editor(), 1);
889
890 // packages/global-styles-engine/build-module/utils/common.mjs
891 var import_style_engine = __toESM(require_style_engine(), 1);
892 var ROOT_BLOCK_SELECTOR = "body";
893 var ROOT_CSS_PROPERTIES_SELECTOR = ":root";
894
895 // packages/global-styles-engine/build-module/core/render.mjs
896 var import_blocks = __toESM(require_blocks(), 1);
897 var import_style_engine2 = __toESM(require_style_engine(), 1);
898 var import_data = __toESM(require_data(), 1);
899
900 // packages/global-styles-engine/build-module/utils/spacing.mjs
901 function getSpacingPresetCssVar(value) {
902 if (!value) {
903 return;
904 }
905 const slug = value.match(/var:preset\|spacing\|(.+)/);
906 if (!slug) {
907 return value;
908 }
909 return `var(--wp--preset--spacing--${slug[1]})`;
910 }
911
912 // packages/global-styles-engine/build-module/utils/gap.mjs
913 function getGapBoxControlValueFromStyle(blockGapValue) {
914 if (!blockGapValue) {
915 return null;
916 }
917 const isValueString = typeof blockGapValue === "string";
918 return {
919 top: isValueString ? blockGapValue : blockGapValue?.top,
920 left: isValueString ? blockGapValue : blockGapValue?.left
921 };
922 }
923 function getGapCSSValue(blockGapValue, defaultValue = "0") {
924 const blockGapBoxControlValue = getGapBoxControlValueFromStyle(blockGapValue);
925 if (!blockGapBoxControlValue) {
926 return null;
927 }
928 const row = getSpacingPresetCssVar(blockGapBoxControlValue?.top) || defaultValue;
929 const column = getSpacingPresetCssVar(blockGapBoxControlValue?.left) || defaultValue;
930 return row === column ? row : `${row} ${column}`;
931 }
932
933 // packages/global-styles-engine/build-module/utils/layout.mjs
934 var LAYOUT_DEFINITIONS = {
935 default: {
936 name: "default",
937 slug: "flow",
938 className: "is-layout-flow",
939 baseStyles: [
940 {
941 selector: " > .alignleft",
942 rules: {
943 float: "left",
944 "margin-inline-start": "0",
945 "margin-inline-end": "2em"
946 }
947 },
948 {
949 selector: " > .alignright",
950 rules: {
951 float: "right",
952 "margin-inline-start": "2em",
953 "margin-inline-end": "0"
954 }
955 },
956 {
957 selector: " > .aligncenter",
958 rules: {
959 "margin-left": "auto !important",
960 "margin-right": "auto !important"
961 }
962 }
963 ],
964 spacingStyles: [
965 {
966 selector: " > :first-child",
967 rules: {
968 "margin-block-start": "0"
969 }
970 },
971 {
972 selector: " > :last-child",
973 rules: {
974 "margin-block-end": "0"
975 }
976 },
977 {
978 selector: " > *",
979 rules: {
980 "margin-block-start": null,
981 "margin-block-end": "0"
982 }
983 }
984 ]
985 },
986 constrained: {
987 name: "constrained",
988 slug: "constrained",
989 className: "is-layout-constrained",
990 baseStyles: [
991 {
992 selector: " > .alignleft",
993 rules: {
994 float: "left",
995 "margin-inline-start": "0",
996 "margin-inline-end": "2em"
997 }
998 },
999 {
1000 selector: " > .alignright",
1001 rules: {
1002 float: "right",
1003 "margin-inline-start": "2em",
1004 "margin-inline-end": "0"
1005 }
1006 },
1007 {
1008 selector: " > .aligncenter",
1009 rules: {
1010 "margin-left": "auto !important",
1011 "margin-right": "auto !important"
1012 }
1013 },
1014 {
1015 selector: " > :where(:not(.alignleft):not(.alignright):not(.alignfull))",
1016 rules: {
1017 "max-width": "var(--wp--style--global--content-size)",
1018 "margin-left": "auto !important",
1019 "margin-right": "auto !important"
1020 }
1021 },
1022 {
1023 selector: " > .alignwide",
1024 rules: {
1025 "max-width": "var(--wp--style--global--wide-size)"
1026 }
1027 }
1028 ],
1029 spacingStyles: [
1030 {
1031 selector: " > :first-child",
1032 rules: {
1033 "margin-block-start": "0"
1034 }
1035 },
1036 {
1037 selector: " > :last-child",
1038 rules: {
1039 "margin-block-end": "0"
1040 }
1041 },
1042 {
1043 selector: " > *",
1044 rules: {
1045 "margin-block-start": null,
1046 "margin-block-end": "0"
1047 }
1048 }
1049 ]
1050 },
1051 flex: {
1052 name: "flex",
1053 slug: "flex",
1054 className: "is-layout-flex",
1055 displayMode: "flex",
1056 baseStyles: [
1057 {
1058 selector: "",
1059 rules: {
1060 "flex-wrap": "wrap",
1061 "align-items": "center"
1062 }
1063 },
1064 {
1065 selector: " > :is(*, div)",
1066 // :is(*, div) instead of just * increases the specificity by 001.
1067 rules: {
1068 margin: "0"
1069 }
1070 }
1071 ],
1072 spacingStyles: [
1073 {
1074 selector: "",
1075 rules: {
1076 gap: null
1077 }
1078 }
1079 ]
1080 },
1081 grid: {
1082 name: "grid",
1083 slug: "grid",
1084 className: "is-layout-grid",
1085 displayMode: "grid",
1086 baseStyles: [
1087 {
1088 selector: " > :is(*, div)",
1089 // :is(*, div) instead of just * increases the specificity by 001.
1090 rules: {
1091 margin: "0"
1092 }
1093 }
1094 ],
1095 spacingStyles: [
1096 {
1097 selector: "",
1098 rules: {
1099 gap: null
1100 }
1101 }
1102 ]
1103 }
1104 };
1105
1106 // packages/global-styles-engine/build-module/core/render.mjs
1107 function getLayoutStyles({
1108 layoutDefinitions = LAYOUT_DEFINITIONS,
1109 style,
1110 selector,
1111 hasBlockGapSupport,
1112 hasFallbackGapSupport,
1113 fallbackGapValue
1114 }) {
1115 let ruleset = "";
1116 let gapValue = hasBlockGapSupport ? getGapCSSValue(style?.spacing?.blockGap) : "";
1117 if (hasFallbackGapSupport) {
1118 if (selector === ROOT_BLOCK_SELECTOR) {
1119 gapValue = !gapValue ? "0.5em" : gapValue;
1120 } else if (!hasBlockGapSupport && fallbackGapValue) {
1121 gapValue = fallbackGapValue;
1122 }
1123 }
1124 if (gapValue && layoutDefinitions) {
1125 Object.values(layoutDefinitions).forEach(
1126 ({ className, name, spacingStyles }) => {
1127 if (!hasBlockGapSupport && "flex" !== name && "grid" !== name) {
1128 return;
1129 }
1130 if (spacingStyles?.length) {
1131 spacingStyles.forEach((spacingStyle) => {
1132 const declarations = [];
1133 if (spacingStyle.rules) {
1134 Object.entries(spacingStyle.rules).forEach(
1135 ([cssProperty, cssValue]) => {
1136 declarations.push(
1137 `${cssProperty}: ${cssValue ? cssValue : gapValue}`
1138 );
1139 }
1140 );
1141 }
1142 if (declarations.length) {
1143 let combinedSelector = "";
1144 if (!hasBlockGapSupport) {
1145 combinedSelector = selector === ROOT_BLOCK_SELECTOR ? `:where(.${className}${spacingStyle?.selector || ""})` : `:where(${selector}.${className}${spacingStyle?.selector || ""})`;
1146 } else {
1147 combinedSelector = selector === ROOT_BLOCK_SELECTOR ? `:root :where(.${className})${spacingStyle?.selector || ""}` : `:root :where(${selector}-${className})${spacingStyle?.selector || ""}`;
1148 }
1149 ruleset += `${combinedSelector} { ${declarations.join(
1150 "; "
1151 )}; }`;
1152 }
1153 });
1154 }
1155 }
1156 );
1157 if (selector === ROOT_BLOCK_SELECTOR && hasBlockGapSupport) {
1158 ruleset += `${ROOT_CSS_PROPERTIES_SELECTOR} { --wp--style--block-gap: ${gapValue}; }`;
1159 }
1160 }
1161 if (selector === ROOT_BLOCK_SELECTOR && layoutDefinitions) {
1162 const validDisplayModes = ["block", "flex", "grid"];
1163 Object.values(layoutDefinitions).forEach(
1164 ({ className, displayMode, baseStyles }) => {
1165 if (displayMode && validDisplayModes.includes(displayMode)) {
1166 ruleset += `${selector} .${className} { display:${displayMode}; }`;
1167 }
1168 if (baseStyles?.length) {
1169 baseStyles.forEach((baseStyle) => {
1170 const declarations = [];
1171 if (baseStyle.rules) {
1172 Object.entries(baseStyle.rules).forEach(
1173 ([cssProperty, cssValue]) => {
1174 declarations.push(
1175 `${cssProperty}: ${cssValue}`
1176 );
1177 }
1178 );
1179 }
1180 if (declarations.length) {
1181 const combinedSelector = `.${className}${baseStyle?.selector || ""}`;
1182 ruleset += `${combinedSelector} { ${declarations.join(
1183 "; "
1184 )}; }`;
1185 }
1186 });
1187 }
1188 }
1189 );
1190 }
1191 return ruleset;
1192 }
1193
1194 // packages/edit-post/build-module/components/layout/index.mjs
1195 var import_plugins = __toESM(require_plugins(), 1);
1196 var import_i18n14 = __toESM(require_i18n(), 1);
1197 var import_element13 = __toESM(require_element(), 1);
1198 var import_notices3 = __toESM(require_notices(), 1);
1199 var import_preferences10 = __toESM(require_preferences(), 1);
1200 var import_commands2 = __toESM(require_commands(), 1);
1201 var import_block_library = __toESM(require_block_library(), 1);
1202 var import_url5 = __toESM(require_url(), 1);
1203 var import_html_entities = __toESM(require_html_entities(), 1);
1204 var import_core_data8 = __toESM(require_core_data(), 1);
1205 var import_components9 = __toESM(require_components(), 1);
1206 var import_compose3 = __toESM(require_compose(), 1);
1207
1208 // packages/edit-post/build-module/components/back-button/index.mjs
1209 var import_editor2 = __toESM(require_editor(), 1);
1210 var import_components2 = __toESM(require_components(), 1);
1211
1212 // packages/edit-post/build-module/components/back-button/fullscreen-mode-close.mjs
1213 var import_data2 = __toESM(require_data(), 1);
1214 var import_components = __toESM(require_components(), 1);
1215 var import_i18n = __toESM(require_i18n(), 1);
1216 var import_url = __toESM(require_url(), 1);
1217 var import_editor = __toESM(require_editor(), 1);
1218 var import_core_data = __toESM(require_core_data(), 1);
1219 var import_compose = __toESM(require_compose(), 1);
1220 var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1);
1221 var siteIconVariants = {
1222 edit: {
1223 clipPath: "inset(0% round 0px)"
1224 },
1225 hover: {
1226 clipPath: "inset( 22% round 2px )"
1227 },
1228 tap: {
1229 clipPath: "inset(0% round 0px)"
1230 }
1231 };
1232 var toggleHomeIconVariants = {
1233 edit: {
1234 opacity: 0,
1235 scale: 0.2
1236 },
1237 hover: {
1238 opacity: 1,
1239 scale: 1,
1240 clipPath: "inset( 22% round 2px )"
1241 }
1242 };
1243 function FullscreenModeClose({ showTooltip, icon, href, initialPost }) {
1244 const { isRequestingSiteIcon, postType, siteIconUrl } = (0, import_data2.useSelect)(
1245 (select3) => {
1246 const { getCurrentPostType } = select3(import_editor.store);
1247 const { getEntityRecord, getPostType, isResolving } = select3(import_core_data.store);
1248 const siteData = getEntityRecord("root", "__unstableBase", void 0) || {};
1249 const _postType = initialPost?.type || getCurrentPostType();
1250 return {
1251 isRequestingSiteIcon: isResolving("getEntityRecord", [
1252 "root",
1253 "__unstableBase",
1254 void 0
1255 ]),
1256 postType: getPostType(_postType),
1257 siteIconUrl: siteData.site_icon_url
1258 };
1259 },
1260 [initialPost?.type]
1261 );
1262 const disableMotion = (0, import_compose.useReducedMotion)();
1263 const transition = {
1264 duration: disableMotion ? 0 : 0.2
1265 };
1266 if (!postType) {
1267 return null;
1268 }
1269 let siteIconContent;
1270 if (isRequestingSiteIcon && !siteIconUrl) {
1271 siteIconContent = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "edit-post-fullscreen-mode-close-site-icon__image" });
1272 } else if (siteIconUrl) {
1273 siteIconContent = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1274 "img",
1275 {
1276 className: "edit-post-fullscreen-mode-close-site-icon__image",
1277 alt: (0, import_i18n.__)("Site Icon"),
1278 src: siteIconUrl
1279 }
1280 );
1281 } else {
1282 siteIconContent = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1283 import_components.Icon,
1284 {
1285 className: "edit-post-fullscreen-mode-close-site-icon__icon",
1286 icon: wordpress_default,
1287 size: 48
1288 }
1289 );
1290 }
1291 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 });
1292 const classes = clsx_default("edit-post-fullscreen-mode-close", {
1293 "has-icon": siteIconUrl
1294 });
1295 const buttonHref = href ?? (0, import_url.addQueryArgs)("edit.php", {
1296 post_type: postType.slug
1297 });
1298 const buttonLabel = postType?.labels?.view_items ?? (0, import_i18n.__)("Back");
1299 return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1300 import_components.__unstableMotion.div,
1301 {
1302 className: "edit-post-fullscreen-mode-close__view-mode-toggle",
1303 animate: "edit",
1304 initial: "edit",
1305 whileHover: "hover",
1306 whileTap: "tap",
1307 transition,
1308 children: [
1309 /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1310 import_components.Button,
1311 {
1312 __next40pxDefaultSize: true,
1313 className: classes,
1314 href: buttonHref,
1315 label: buttonLabel,
1316 showTooltip,
1317 tooltipPosition: "bottom",
1318 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 }) })
1319 }
1320 ),
1321 /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1322 import_components.__unstableMotion.div,
1323 {
1324 className: clsx_default(
1325 "edit-post-fullscreen-mode-close__back-icon",
1326 {
1327 "has-site-icon": siteIconUrl
1328 }
1329 ),
1330 variants: !disableMotion && toggleHomeIconVariants,
1331 children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_components.Icon, { icon: arrow_up_left_default })
1332 }
1333 )
1334 ]
1335 }
1336 );
1337 }
1338 var fullscreen_mode_close_default = FullscreenModeClose;
1339
1340 // packages/edit-post/build-module/lock-unlock.mjs
1341 var import_private_apis = __toESM(require_private_apis(), 1);
1342 var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
1343 "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
1344 "@wordpress/edit-post"
1345 );
1346
1347 // packages/edit-post/build-module/components/back-button/index.mjs
1348 var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
1349 var { BackButton: BackButtonFill } = unlock(import_editor2.privateApis);
1350 var slideX = {
1351 hidden: { x: "-100%" },
1352 distractionFreeInactive: { x: 0 },
1353 hover: { x: 0, transition: { type: "tween", delay: 0.2 } }
1354 };
1355 function BackButton({ initialPost }) {
1356 return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(BackButtonFill, { children: ({ length }) => length <= 1 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1357 import_components2.__unstableMotion.div,
1358 {
1359 variants: slideX,
1360 transition: { type: "tween", delay: 0.8 },
1361 children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1362 fullscreen_mode_close_default,
1363 {
1364 showTooltip: true,
1365 initialPost
1366 }
1367 )
1368 }
1369 ) });
1370 }
1371 var back_button_default = BackButton;
1372
1373 // packages/edit-post/build-module/components/editor-initialization/listener-hooks.mjs
1374 var import_data3 = __toESM(require_data(), 1);
1375 var import_element3 = __toESM(require_element(), 1);
1376 var import_editor3 = __toESM(require_editor(), 1);
1377 var import_core_data2 = __toESM(require_core_data(), 1);
1378
1379 // packages/edit-post/build-module/store/constants.mjs
1380 var STORE_NAME = "core/edit-post";
1381 var VIEW_AS_LINK_SELECTOR = "#wp-admin-bar-view a";
1382 var VIEW_AS_PREVIEW_LINK_SELECTOR = "#wp-admin-bar-preview a";
1383
1384 // packages/edit-post/build-module/components/editor-initialization/listener-hooks.mjs
1385 var useUpdatePostLinkListener = () => {
1386 const { isViewable, newPermalink } = (0, import_data3.useSelect)((select3) => {
1387 const { getPostType } = select3(import_core_data2.store);
1388 const { getCurrentPost, getEditedPostAttribute } = select3(import_editor3.store);
1389 const postType = getPostType(getEditedPostAttribute("type"));
1390 return {
1391 isViewable: postType?.viewable,
1392 newPermalink: getCurrentPost().link
1393 };
1394 }, []);
1395 const nodeToUpdateRef = (0, import_element3.useRef)();
1396 (0, import_element3.useEffect)(() => {
1397 nodeToUpdateRef.current = document.querySelector(VIEW_AS_PREVIEW_LINK_SELECTOR) || document.querySelector(VIEW_AS_LINK_SELECTOR);
1398 }, []);
1399 (0, import_element3.useEffect)(() => {
1400 if (!newPermalink || !nodeToUpdateRef.current) {
1401 return;
1402 }
1403 if (!isViewable) {
1404 nodeToUpdateRef.current.style.display = "none";
1405 return;
1406 }
1407 nodeToUpdateRef.current.style.display = "";
1408 nodeToUpdateRef.current.setAttribute("href", newPermalink);
1409 }, [newPermalink, isViewable]);
1410 };
1411
1412 // packages/edit-post/build-module/components/editor-initialization/index.mjs
1413 function EditorInitialization() {
1414 useUpdatePostLinkListener();
1415 return null;
1416 }
1417
1418 // packages/edit-post/build-module/components/keyboard-shortcuts/index.mjs
1419 var import_element4 = __toESM(require_element(), 1);
1420 var import_data7 = __toESM(require_data(), 1);
1421 var import_keyboard_shortcuts = __toESM(require_keyboard_shortcuts(), 1);
1422 var import_i18n3 = __toESM(require_i18n(), 1);
1423
1424 // packages/edit-post/build-module/store/index.mjs
1425 var import_data6 = __toESM(require_data(), 1);
1426
1427 // packages/edit-post/build-module/store/reducer.mjs
1428 var import_data4 = __toESM(require_data(), 1);
1429 function isSavingMetaBoxes(state = false, action) {
1430 switch (action.type) {
1431 case "REQUEST_META_BOX_UPDATES":
1432 return true;
1433 case "META_BOX_UPDATES_SUCCESS":
1434 case "META_BOX_UPDATES_FAILURE":
1435 return false;
1436 default:
1437 return state;
1438 }
1439 }
1440 function mergeMetaboxes(metaboxes = [], newMetaboxes) {
1441 const mergedMetaboxes = [...metaboxes];
1442 for (const metabox of newMetaboxes) {
1443 const existing = mergedMetaboxes.findIndex(
1444 (box) => box.id === metabox.id
1445 );
1446 if (existing !== -1) {
1447 mergedMetaboxes[existing] = {
1448 ...mergedMetaboxes[existing],
1449 ...metabox
1450 };
1451 } else {
1452 mergedMetaboxes.push(metabox);
1453 }
1454 }
1455 return mergedMetaboxes;
1456 }
1457 function metaBoxLocations(state = {}, action) {
1458 switch (action.type) {
1459 case "SET_META_BOXES_PER_LOCATIONS": {
1460 const newState = { ...state };
1461 for (const [location, metaboxes] of Object.entries(
1462 action.metaBoxesPerLocation
1463 )) {
1464 newState[location] = mergeMetaboxes(
1465 newState[location],
1466 metaboxes
1467 );
1468 }
1469 return newState;
1470 }
1471 }
1472 return state;
1473 }
1474 function metaBoxesInitialized(state = false, action) {
1475 switch (action.type) {
1476 case "META_BOXES_INITIALIZED":
1477 return true;
1478 }
1479 return state;
1480 }
1481 var metaBoxes = (0, import_data4.combineReducers)({
1482 isSaving: isSavingMetaBoxes,
1483 locations: metaBoxLocations,
1484 initialized: metaBoxesInitialized
1485 });
1486 var reducer_default = (0, import_data4.combineReducers)({
1487 metaBoxes
1488 });
1489
1490 // packages/edit-post/build-module/store/actions.mjs
1491 var actions_exports = {};
1492 __export(actions_exports, {
1493 __experimentalSetPreviewDeviceType: () => __experimentalSetPreviewDeviceType,
1494 __unstableCreateTemplate: () => __unstableCreateTemplate,
1495 closeGeneralSidebar: () => closeGeneralSidebar,
1496 closeModal: () => closeModal,
1497 closePublishSidebar: () => closePublishSidebar,
1498 hideBlockTypes: () => hideBlockTypes,
1499 initializeMetaBoxes: () => initializeMetaBoxes,
1500 metaBoxUpdatesFailure: () => metaBoxUpdatesFailure,
1501 metaBoxUpdatesSuccess: () => metaBoxUpdatesSuccess,
1502 openGeneralSidebar: () => openGeneralSidebar,
1503 openModal: () => openModal,
1504 openPublishSidebar: () => openPublishSidebar,
1505 removeEditorPanel: () => removeEditorPanel,
1506 requestMetaBoxUpdates: () => requestMetaBoxUpdates,
1507 setAvailableMetaBoxesPerLocation: () => setAvailableMetaBoxesPerLocation,
1508 setIsEditingTemplate: () => setIsEditingTemplate,
1509 setIsInserterOpened: () => setIsInserterOpened,
1510 setIsListViewOpened: () => setIsListViewOpened,
1511 showBlockTypes: () => showBlockTypes,
1512 switchEditorMode: () => switchEditorMode,
1513 toggleDistractionFree: () => toggleDistractionFree,
1514 toggleEditorPanelEnabled: () => toggleEditorPanelEnabled,
1515 toggleEditorPanelOpened: () => toggleEditorPanelOpened,
1516 toggleFeature: () => toggleFeature,
1517 toggleFullscreenMode: () => toggleFullscreenMode,
1518 togglePinnedPluginItem: () => togglePinnedPluginItem,
1519 togglePublishSidebar: () => togglePublishSidebar,
1520 updatePreferredStyleVariations: () => updatePreferredStyleVariations
1521 });
1522 var import_api_fetch = __toESM(require_api_fetch(), 1);
1523 var import_preferences = __toESM(require_preferences(), 1);
1524 var import_editor4 = __toESM(require_editor(), 1);
1525 var import_deprecated = __toESM(require_deprecated(), 1);
1526 var import_hooks = __toESM(require_hooks(), 1);
1527 var import_core_data3 = __toESM(require_core_data(), 1);
1528 var import_notices = __toESM(require_notices(), 1);
1529 var import_i18n2 = __toESM(require_i18n(), 1);
1530
1531 // packages/edit-post/build-module/utils/meta-boxes.mjs
1532 var getMetaBoxContainer = (location) => {
1533 const area = document.querySelector(
1534 `.edit-post-meta-boxes-area.is-${location} .metabox-location-${location}`
1535 );
1536 if (area) {
1537 return area;
1538 }
1539 return document.querySelector("#metaboxes .metabox-location-" + location);
1540 };
1541
1542 // packages/edit-post/build-module/store/actions.mjs
1543 var { interfaceStore } = unlock(import_editor4.privateApis);
1544 var openGeneralSidebar = (name) => ({ registry }) => {
1545 registry.dispatch(interfaceStore).enableComplementaryArea("core", name);
1546 };
1547 var closeGeneralSidebar = () => ({ registry }) => registry.dispatch(interfaceStore).disableComplementaryArea("core");
1548 var openModal = (name) => ({ registry }) => {
1549 (0, import_deprecated.default)("select( 'core/edit-post' ).openModal( name )", {
1550 since: "6.3",
1551 alternative: "select( 'core/interface').openModal( name )"
1552 });
1553 return registry.dispatch(interfaceStore).openModal(name);
1554 };
1555 var closeModal = () => ({ registry }) => {
1556 (0, import_deprecated.default)("select( 'core/edit-post' ).closeModal()", {
1557 since: "6.3",
1558 alternative: "select( 'core/interface').closeModal()"
1559 });
1560 return registry.dispatch(interfaceStore).closeModal();
1561 };
1562 var openPublishSidebar = () => ({ registry }) => {
1563 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).openPublishSidebar", {
1564 since: "6.6",
1565 alternative: "dispatch( 'core/editor').openPublishSidebar"
1566 });
1567 registry.dispatch(import_editor4.store).openPublishSidebar();
1568 };
1569 var closePublishSidebar = () => ({ registry }) => {
1570 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).closePublishSidebar", {
1571 since: "6.6",
1572 alternative: "dispatch( 'core/editor').closePublishSidebar"
1573 });
1574 registry.dispatch(import_editor4.store).closePublishSidebar();
1575 };
1576 var togglePublishSidebar = () => ({ registry }) => {
1577 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).togglePublishSidebar", {
1578 since: "6.6",
1579 alternative: "dispatch( 'core/editor').togglePublishSidebar"
1580 });
1581 registry.dispatch(import_editor4.store).togglePublishSidebar();
1582 };
1583 var toggleEditorPanelEnabled = (panelName) => ({ registry }) => {
1584 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).toggleEditorPanelEnabled", {
1585 since: "6.5",
1586 alternative: "dispatch( 'core/editor').toggleEditorPanelEnabled"
1587 });
1588 registry.dispatch(import_editor4.store).toggleEditorPanelEnabled(panelName);
1589 };
1590 var toggleEditorPanelOpened = (panelName) => ({ registry }) => {
1591 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).toggleEditorPanelOpened", {
1592 since: "6.5",
1593 alternative: "dispatch( 'core/editor').toggleEditorPanelOpened"
1594 });
1595 registry.dispatch(import_editor4.store).toggleEditorPanelOpened(panelName);
1596 };
1597 var removeEditorPanel = (panelName) => ({ registry }) => {
1598 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).removeEditorPanel", {
1599 since: "6.5",
1600 alternative: "dispatch( 'core/editor').removeEditorPanel"
1601 });
1602 registry.dispatch(import_editor4.store).removeEditorPanel(panelName);
1603 };
1604 var toggleFeature = (feature) => ({ registry }) => registry.dispatch(import_preferences.store).toggle("core/edit-post", feature);
1605 var switchEditorMode = (mode) => ({ registry }) => {
1606 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).switchEditorMode", {
1607 since: "6.6",
1608 alternative: "dispatch( 'core/editor').switchEditorMode"
1609 });
1610 registry.dispatch(import_editor4.store).switchEditorMode(mode);
1611 };
1612 var togglePinnedPluginItem = (pluginName) => ({ registry }) => {
1613 const isPinned = registry.select(interfaceStore).isItemPinned("core", pluginName);
1614 registry.dispatch(interfaceStore)[isPinned ? "unpinItem" : "pinItem"]("core", pluginName);
1615 };
1616 function updatePreferredStyleVariations() {
1617 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).updatePreferredStyleVariations", {
1618 since: "6.6",
1619 hint: "Preferred Style Variations are not supported anymore."
1620 });
1621 return { type: "NOTHING" };
1622 }
1623 var showBlockTypes = (blockNames) => ({ registry }) => {
1624 unlock(registry.dispatch(import_editor4.store)).showBlockTypes(blockNames);
1625 };
1626 var hideBlockTypes = (blockNames) => ({ registry }) => {
1627 unlock(registry.dispatch(import_editor4.store)).hideBlockTypes(blockNames);
1628 };
1629 function setAvailableMetaBoxesPerLocation(metaBoxesPerLocation) {
1630 return {
1631 type: "SET_META_BOXES_PER_LOCATIONS",
1632 metaBoxesPerLocation
1633 };
1634 }
1635 var requestMetaBoxUpdates = () => async ({ registry, select: select3, dispatch: dispatch2 }) => {
1636 dispatch2({
1637 type: "REQUEST_META_BOX_UPDATES"
1638 });
1639 if (window.tinyMCE) {
1640 window.tinyMCE.triggerSave();
1641 }
1642 const baseFormData = new window.FormData(
1643 document.querySelector(".metabox-base-form")
1644 );
1645 const postId = baseFormData.get("post_ID");
1646 const postType = baseFormData.get("post_type");
1647 const post = registry.select(import_core_data3.store).getEditedEntityRecord("postType", postType, postId);
1648 const additionalData = [
1649 post.comment_status ? ["comment_status", post.comment_status] : false,
1650 post.ping_status ? ["ping_status", post.ping_status] : false,
1651 post.sticky ? ["sticky", post.sticky] : false,
1652 post.author ? ["post_author", post.author] : false
1653 ].filter(Boolean);
1654 const activeMetaBoxLocations = select3.getActiveMetaBoxLocations();
1655 const formDataToMerge = [
1656 baseFormData,
1657 ...activeMetaBoxLocations.map(
1658 (location) => new window.FormData(getMetaBoxContainer(location))
1659 )
1660 ];
1661 const formData = formDataToMerge.reduce((memo, currentFormData) => {
1662 for (const [key, value] of currentFormData) {
1663 memo.append(key, value);
1664 }
1665 return memo;
1666 }, new window.FormData());
1667 additionalData.forEach(
1668 ([key, value]) => formData.append(key, value)
1669 );
1670 try {
1671 await (0, import_api_fetch.default)({
1672 url: window._wpMetaBoxUrl,
1673 method: "POST",
1674 body: formData,
1675 parse: false
1676 });
1677 dispatch2.metaBoxUpdatesSuccess();
1678 } catch {
1679 dispatch2.metaBoxUpdatesFailure();
1680 }
1681 };
1682 function metaBoxUpdatesSuccess() {
1683 return {
1684 type: "META_BOX_UPDATES_SUCCESS"
1685 };
1686 }
1687 function metaBoxUpdatesFailure() {
1688 return {
1689 type: "META_BOX_UPDATES_FAILURE"
1690 };
1691 }
1692 var __experimentalSetPreviewDeviceType = (deviceType) => ({ registry }) => {
1693 (0, import_deprecated.default)(
1694 "dispatch( 'core/edit-post' ).__experimentalSetPreviewDeviceType",
1695 {
1696 since: "6.5",
1697 version: "6.7",
1698 hint: "registry.dispatch( editorStore ).setDeviceType"
1699 }
1700 );
1701 registry.dispatch(import_editor4.store).setDeviceType(deviceType);
1702 };
1703 var setIsInserterOpened = (value) => ({ registry }) => {
1704 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).setIsInserterOpened", {
1705 since: "6.5",
1706 alternative: "dispatch( 'core/editor').setIsInserterOpened"
1707 });
1708 registry.dispatch(import_editor4.store).setIsInserterOpened(value);
1709 };
1710 var setIsListViewOpened = (isOpen) => ({ registry }) => {
1711 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).setIsListViewOpened", {
1712 since: "6.5",
1713 alternative: "dispatch( 'core/editor').setIsListViewOpened"
1714 });
1715 registry.dispatch(import_editor4.store).setIsListViewOpened(isOpen);
1716 };
1717 function setIsEditingTemplate() {
1718 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).setIsEditingTemplate", {
1719 since: "6.5",
1720 alternative: "dispatch( 'core/editor').setRenderingMode"
1721 });
1722 return { type: "NOTHING" };
1723 }
1724 function __unstableCreateTemplate() {
1725 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).__unstableCreateTemplate", {
1726 since: "6.5"
1727 });
1728 return { type: "NOTHING" };
1729 }
1730 var metaBoxesInitialized2 = false;
1731 var initializeMetaBoxes = () => ({ registry, select: select3, dispatch: dispatch2 }) => {
1732 const isEditorReady = registry.select(import_editor4.store).__unstableIsEditorReady();
1733 if (!isEditorReady) {
1734 return;
1735 }
1736 if (metaBoxesInitialized2) {
1737 return;
1738 }
1739 const postType = registry.select(import_editor4.store).getCurrentPostType();
1740 if (window.postboxes.page !== postType) {
1741 window.postboxes.add_postbox_toggles(postType);
1742 }
1743 metaBoxesInitialized2 = true;
1744 (0, import_hooks.addAction)(
1745 "editor.savePost",
1746 "core/edit-post/save-metaboxes",
1747 async (post, options) => {
1748 if (!options.isAutosave && select3.hasMetaBoxes()) {
1749 await dispatch2.requestMetaBoxUpdates();
1750 }
1751 }
1752 );
1753 dispatch2({
1754 type: "META_BOXES_INITIALIZED"
1755 });
1756 };
1757 var toggleDistractionFree = () => ({ registry }) => {
1758 (0, import_deprecated.default)("dispatch( 'core/edit-post' ).toggleDistractionFree", {
1759 since: "6.6",
1760 alternative: "dispatch( 'core/editor').toggleDistractionFree"
1761 });
1762 registry.dispatch(import_editor4.store).toggleDistractionFree();
1763 };
1764 var toggleFullscreenMode = () => ({ registry }) => {
1765 const isFullscreen = registry.select(import_preferences.store).get("core/edit-post", "fullscreenMode");
1766 registry.dispatch(import_preferences.store).toggle("core/edit-post", "fullscreenMode");
1767 registry.dispatch(import_notices.store).createInfoNotice(
1768 isFullscreen ? (0, import_i18n2.__)("Fullscreen mode deactivated.") : (0, import_i18n2.__)("Fullscreen mode activated."),
1769 {
1770 id: "core/edit-post/toggle-fullscreen-mode/notice",
1771 type: "snackbar",
1772 actions: [
1773 {
1774 label: (0, import_i18n2.__)("Undo"),
1775 onClick: () => {
1776 registry.dispatch(import_preferences.store).toggle(
1777 "core/edit-post",
1778 "fullscreenMode"
1779 );
1780 }
1781 }
1782 ]
1783 }
1784 );
1785 };
1786
1787 // packages/edit-post/build-module/store/selectors.mjs
1788 var selectors_exports = {};
1789 __export(selectors_exports, {
1790 __experimentalGetInsertionPoint: () => __experimentalGetInsertionPoint,
1791 __experimentalGetPreviewDeviceType: () => __experimentalGetPreviewDeviceType,
1792 areMetaBoxesInitialized: () => areMetaBoxesInitialized,
1793 getActiveGeneralSidebarName: () => getActiveGeneralSidebarName,
1794 getActiveMetaBoxLocations: () => getActiveMetaBoxLocations,
1795 getAllMetaBoxes: () => getAllMetaBoxes,
1796 getEditedPostTemplate: () => getEditedPostTemplate,
1797 getEditorMode: () => getEditorMode,
1798 getHiddenBlockTypes: () => getHiddenBlockTypes,
1799 getMetaBoxesPerLocation: () => getMetaBoxesPerLocation,
1800 getPreference: () => getPreference,
1801 getPreferences: () => getPreferences,
1802 hasMetaBoxes: () => hasMetaBoxes,
1803 isEditingTemplate: () => isEditingTemplate,
1804 isEditorPanelEnabled: () => isEditorPanelEnabled,
1805 isEditorPanelOpened: () => isEditorPanelOpened,
1806 isEditorPanelRemoved: () => isEditorPanelRemoved,
1807 isEditorSidebarOpened: () => isEditorSidebarOpened,
1808 isFeatureActive: () => isFeatureActive,
1809 isInserterOpened: () => isInserterOpened,
1810 isListViewOpened: () => isListViewOpened,
1811 isMetaBoxLocationActive: () => isMetaBoxLocationActive,
1812 isMetaBoxLocationVisible: () => isMetaBoxLocationVisible,
1813 isModalActive: () => isModalActive,
1814 isPluginItemPinned: () => isPluginItemPinned,
1815 isPluginSidebarOpened: () => isPluginSidebarOpened,
1816 isPublishSidebarOpened: () => isPublishSidebarOpened,
1817 isSavingMetaBoxes: () => isSavingMetaBoxes2
1818 });
1819 var import_data5 = __toESM(require_data(), 1);
1820 var import_preferences2 = __toESM(require_preferences(), 1);
1821 var import_core_data4 = __toESM(require_core_data(), 1);
1822 var import_editor5 = __toESM(require_editor(), 1);
1823 var import_deprecated2 = __toESM(require_deprecated(), 1);
1824 var { interfaceStore: interfaceStore2 } = unlock(import_editor5.privateApis);
1825 var EMPTY_ARRAY2 = [];
1826 var EMPTY_OBJECT2 = {};
1827 var getEditorMode = (0, import_data5.createRegistrySelector)(
1828 (select3) => () => select3(import_preferences2.store).get("core", "editorMode") ?? "visual"
1829 );
1830 var isEditorSidebarOpened = (0, import_data5.createRegistrySelector)(
1831 (select3) => () => {
1832 const activeGeneralSidebar = select3(interfaceStore2).getActiveComplementaryArea("core");
1833 return ["edit-post/document", "edit-post/block"].includes(
1834 activeGeneralSidebar
1835 );
1836 }
1837 );
1838 var isPluginSidebarOpened = (0, import_data5.createRegistrySelector)(
1839 (select3) => () => {
1840 const activeGeneralSidebar = select3(interfaceStore2).getActiveComplementaryArea("core");
1841 return !!activeGeneralSidebar && !["edit-post/document", "edit-post/block"].includes(
1842 activeGeneralSidebar
1843 );
1844 }
1845 );
1846 var getActiveGeneralSidebarName = (0, import_data5.createRegistrySelector)(
1847 (select3) => () => {
1848 return select3(interfaceStore2).getActiveComplementaryArea("core");
1849 }
1850 );
1851 function convertPanelsToOldFormat(inactivePanels, openPanels) {
1852 const panelsWithEnabledState = inactivePanels?.reduce(
1853 (accumulatedPanels, panelName) => ({
1854 ...accumulatedPanels,
1855 [panelName]: {
1856 enabled: false
1857 }
1858 }),
1859 {}
1860 );
1861 const panels = openPanels?.reduce((accumulatedPanels, panelName) => {
1862 const currentPanelState = accumulatedPanels?.[panelName];
1863 return {
1864 ...accumulatedPanels,
1865 [panelName]: {
1866 ...currentPanelState,
1867 opened: true
1868 }
1869 };
1870 }, panelsWithEnabledState ?? {});
1871 return panels ?? panelsWithEnabledState ?? EMPTY_OBJECT2;
1872 }
1873 var getPreferences = (0, import_data5.createRegistrySelector)((select3) => () => {
1874 (0, import_deprecated2.default)(`select( 'core/edit-post' ).getPreferences`, {
1875 since: "6.0",
1876 alternative: `select( 'core/preferences' ).get`
1877 });
1878 const corePreferences = ["editorMode", "hiddenBlockTypes"].reduce(
1879 (accumulatedPrefs, preferenceKey) => {
1880 const value = select3(import_preferences2.store).get(
1881 "core",
1882 preferenceKey
1883 );
1884 return {
1885 ...accumulatedPrefs,
1886 [preferenceKey]: value
1887 };
1888 },
1889 {}
1890 );
1891 const inactivePanels = select3(import_preferences2.store).get(
1892 "core",
1893 "inactivePanels"
1894 );
1895 const openPanels = select3(import_preferences2.store).get("core", "openPanels");
1896 const panels = convertPanelsToOldFormat(inactivePanels, openPanels);
1897 return {
1898 ...corePreferences,
1899 panels
1900 };
1901 });
1902 function getPreference(state, preferenceKey, defaultValue) {
1903 (0, import_deprecated2.default)(`select( 'core/edit-post' ).getPreference`, {
1904 since: "6.0",
1905 alternative: `select( 'core/preferences' ).get`
1906 });
1907 const preferences = getPreferences(state);
1908 const value = preferences[preferenceKey];
1909 return value === void 0 ? defaultValue : value;
1910 }
1911 var getHiddenBlockTypes = (0, import_data5.createRegistrySelector)((select3) => () => {
1912 return select3(import_preferences2.store).get("core", "hiddenBlockTypes") ?? EMPTY_ARRAY2;
1913 });
1914 var isPublishSidebarOpened = (0, import_data5.createRegistrySelector)(
1915 (select3) => () => {
1916 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isPublishSidebarOpened`, {
1917 since: "6.6",
1918 alternative: `select( 'core/editor' ).isPublishSidebarOpened`
1919 });
1920 return select3(import_editor5.store).isPublishSidebarOpened();
1921 }
1922 );
1923 var isEditorPanelRemoved = (0, import_data5.createRegistrySelector)(
1924 (select3) => (state, panelName) => {
1925 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isEditorPanelRemoved`, {
1926 since: "6.5",
1927 alternative: `select( 'core/editor' ).isEditorPanelRemoved`
1928 });
1929 return select3(import_editor5.store).isEditorPanelRemoved(panelName);
1930 }
1931 );
1932 var isEditorPanelEnabled = (0, import_data5.createRegistrySelector)(
1933 (select3) => (state, panelName) => {
1934 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isEditorPanelEnabled`, {
1935 since: "6.5",
1936 alternative: `select( 'core/editor' ).isEditorPanelEnabled`
1937 });
1938 return select3(import_editor5.store).isEditorPanelEnabled(panelName);
1939 }
1940 );
1941 var isEditorPanelOpened = (0, import_data5.createRegistrySelector)(
1942 (select3) => (state, panelName) => {
1943 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isEditorPanelOpened`, {
1944 since: "6.5",
1945 alternative: `select( 'core/editor' ).isEditorPanelOpened`
1946 });
1947 return select3(import_editor5.store).isEditorPanelOpened(panelName);
1948 }
1949 );
1950 var isModalActive = (0, import_data5.createRegistrySelector)(
1951 (select3) => (state, modalName) => {
1952 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isModalActive`, {
1953 since: "6.3",
1954 alternative: `select( 'core/interface' ).isModalActive`
1955 });
1956 return !!select3(interfaceStore2).isModalActive(modalName);
1957 }
1958 );
1959 var isFeatureActive = (0, import_data5.createRegistrySelector)(
1960 (select3) => (state, feature) => {
1961 return !!select3(import_preferences2.store).get("core/edit-post", feature);
1962 }
1963 );
1964 var isPluginItemPinned = (0, import_data5.createRegistrySelector)(
1965 (select3) => (state, pluginName) => {
1966 return select3(interfaceStore2).isItemPinned("core", pluginName);
1967 }
1968 );
1969 var getActiveMetaBoxLocations = (0, import_data5.createSelector)(
1970 (state) => {
1971 return Object.keys(state.metaBoxes.locations).filter(
1972 (location) => isMetaBoxLocationActive(state, location)
1973 );
1974 },
1975 (state) => [state.metaBoxes.locations]
1976 );
1977 var isMetaBoxLocationVisible = (0, import_data5.createRegistrySelector)(
1978 (select3) => (state, location) => {
1979 return isMetaBoxLocationActive(state, location) && getMetaBoxesPerLocation(state, location)?.some(({ id }) => {
1980 return select3(import_editor5.store).isEditorPanelEnabled(
1981 `meta-box-${id}`
1982 );
1983 });
1984 }
1985 );
1986 function isMetaBoxLocationActive(state, location) {
1987 const metaBoxes2 = getMetaBoxesPerLocation(state, location);
1988 return !!metaBoxes2 && metaBoxes2.length !== 0;
1989 }
1990 function getMetaBoxesPerLocation(state, location) {
1991 return state.metaBoxes.locations[location];
1992 }
1993 var getAllMetaBoxes = (0, import_data5.createSelector)(
1994 (state) => {
1995 return Object.values(state.metaBoxes.locations).flat();
1996 },
1997 (state) => [state.metaBoxes.locations]
1998 );
1999 function hasMetaBoxes(state) {
2000 return getActiveMetaBoxLocations(state).length > 0;
2001 }
2002 function isSavingMetaBoxes2(state) {
2003 return state.metaBoxes.isSaving;
2004 }
2005 var __experimentalGetPreviewDeviceType = (0, import_data5.createRegistrySelector)(
2006 (select3) => () => {
2007 (0, import_deprecated2.default)(
2008 `select( 'core/edit-site' ).__experimentalGetPreviewDeviceType`,
2009 {
2010 since: "6.5",
2011 version: "6.7",
2012 alternative: `select( 'core/editor' ).getDeviceType`
2013 }
2014 );
2015 return select3(import_editor5.store).getDeviceType();
2016 }
2017 );
2018 var isInserterOpened = (0, import_data5.createRegistrySelector)((select3) => () => {
2019 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isInserterOpened`, {
2020 since: "6.5",
2021 alternative: `select( 'core/editor' ).isInserterOpened`
2022 });
2023 return select3(import_editor5.store).isInserterOpened();
2024 });
2025 var __experimentalGetInsertionPoint = (0, import_data5.createRegistrySelector)(
2026 (select3) => () => {
2027 (0, import_deprecated2.default)(
2028 `select( 'core/edit-post' ).__experimentalGetInsertionPoint`,
2029 {
2030 since: "6.5",
2031 version: "6.7"
2032 }
2033 );
2034 return unlock(select3(import_editor5.store)).getInserter();
2035 }
2036 );
2037 var isListViewOpened = (0, import_data5.createRegistrySelector)((select3) => () => {
2038 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isListViewOpened`, {
2039 since: "6.5",
2040 alternative: `select( 'core/editor' ).isListViewOpened`
2041 });
2042 return select3(import_editor5.store).isListViewOpened();
2043 });
2044 var isEditingTemplate = (0, import_data5.createRegistrySelector)((select3) => () => {
2045 (0, import_deprecated2.default)(`select( 'core/edit-post' ).isEditingTemplate`, {
2046 since: "6.5",
2047 alternative: `select( 'core/editor' ).getRenderingMode`
2048 });
2049 return select3(import_editor5.store).getCurrentPostType() === "wp_template";
2050 });
2051 function areMetaBoxesInitialized(state) {
2052 return state.metaBoxes.initialized;
2053 }
2054 var getEditedPostTemplate = (0, import_data5.createRegistrySelector)(
2055 (select3) => () => {
2056 const { id: postId, type: postType } = select3(import_editor5.store).getCurrentPost();
2057 const templateId = unlock(select3(import_core_data4.store)).getTemplateId(
2058 postType,
2059 postId
2060 );
2061 if (!templateId) {
2062 return void 0;
2063 }
2064 return select3(import_core_data4.store).getEditedEntityRecord(
2065 "postType",
2066 "wp_template",
2067 templateId
2068 );
2069 }
2070 );
2071
2072 // packages/edit-post/build-module/store/index.mjs
2073 var store = (0, import_data6.createReduxStore)(STORE_NAME, {
2074 reducer: reducer_default,
2075 actions: actions_exports,
2076 selectors: selectors_exports
2077 });
2078 (0, import_data6.register)(store);
2079
2080 // packages/edit-post/build-module/components/keyboard-shortcuts/index.mjs
2081 function KeyboardShortcuts() {
2082 const { toggleFullscreenMode: toggleFullscreenMode2 } = (0, import_data7.useDispatch)(store);
2083 const { registerShortcut } = (0, import_data7.useDispatch)(import_keyboard_shortcuts.store);
2084 (0, import_element4.useEffect)(() => {
2085 registerShortcut({
2086 name: "core/edit-post/toggle-fullscreen",
2087 category: "global",
2088 description: (0, import_i18n3.__)("Enable or disable fullscreen mode."),
2089 keyCombination: {
2090 modifier: "secondary",
2091 character: "f"
2092 }
2093 });
2094 }, []);
2095 (0, import_keyboard_shortcuts.useShortcut)("core/edit-post/toggle-fullscreen", () => {
2096 toggleFullscreenMode2();
2097 });
2098 return null;
2099 }
2100 var keyboard_shortcuts_default = KeyboardShortcuts;
2101
2102 // packages/edit-post/build-module/components/init-pattern-modal/index.mjs
2103 var import_data8 = __toESM(require_data(), 1);
2104 var import_i18n4 = __toESM(require_i18n(), 1);
2105 var import_components3 = __toESM(require_components(), 1);
2106 var import_element5 = __toESM(require_element(), 1);
2107 var import_editor6 = __toESM(require_editor(), 1);
2108 var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
2109 function InitPatternModal() {
2110 const { editPost } = (0, import_data8.useDispatch)(import_editor6.store);
2111 const [syncType, setSyncType] = (0, import_element5.useState)(void 0);
2112 const [title, setTitle] = (0, import_element5.useState)("");
2113 const isNewPost = (0, import_data8.useSelect)(
2114 (select3) => select3(import_editor6.store).isCleanNewPost(),
2115 []
2116 );
2117 const [isModalOpen, setIsModalOpen] = (0, import_element5.useState)(() => isNewPost);
2118 if (!isNewPost) {
2119 return null;
2120 }
2121 return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children: isModalOpen && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2122 import_components3.Modal,
2123 {
2124 title: (0, import_i18n4.__)("Create pattern"),
2125 onRequestClose: () => {
2126 setIsModalOpen(false);
2127 },
2128 overlayClassName: "reusable-blocks-menu-items__convert-modal",
2129 children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2130 "form",
2131 {
2132 onSubmit: (event) => {
2133 event.preventDefault();
2134 setIsModalOpen(false);
2135 editPost({
2136 title,
2137 meta: {
2138 wp_pattern_sync_status: syncType
2139 }
2140 });
2141 },
2142 children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_components3.__experimentalVStack, { spacing: "5", children: [
2143 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2144 import_components3.TextControl,
2145 {
2146 label: (0, import_i18n4.__)("Name"),
2147 value: title,
2148 onChange: setTitle,
2149 placeholder: (0, import_i18n4.__)("My pattern"),
2150 className: "patterns-create-modal__name-input",
2151 __next40pxDefaultSize: true
2152 }
2153 ),
2154 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2155 import_components3.ToggleControl,
2156 {
2157 label: (0, import_i18n4._x)("Synced", "pattern (singular)"),
2158 help: (0, import_i18n4.__)(
2159 "Sync this pattern across multiple locations."
2160 ),
2161 checked: !syncType,
2162 onChange: () => {
2163 setSyncType(
2164 !syncType ? "unsynced" : void 0
2165 );
2166 }
2167 }
2168 ),
2169 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components3.__experimentalHStack, { justify: "right", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2170 import_components3.Button,
2171 {
2172 __next40pxDefaultSize: true,
2173 variant: "primary",
2174 type: "submit",
2175 disabled: !title,
2176 accessibleWhenDisabled: true,
2177 children: (0, import_i18n4.__)("Create")
2178 }
2179 ) })
2180 ] })
2181 }
2182 )
2183 }
2184 ) });
2185 }
2186
2187 // packages/edit-post/build-module/components/browser-url/index.mjs
2188 var import_element6 = __toESM(require_element(), 1);
2189 var import_data9 = __toESM(require_data(), 1);
2190 var import_url2 = __toESM(require_url(), 1);
2191 var import_editor7 = __toESM(require_editor(), 1);
2192 function getPostEditURL(postId) {
2193 return (0, import_url2.addQueryArgs)("post.php", { post: postId, action: "edit" });
2194 }
2195 function BrowserURL() {
2196 const [historyId, setHistoryId] = (0, import_element6.useState)(null);
2197 const { postId, postStatus } = (0, import_data9.useSelect)((select3) => {
2198 const { getCurrentPost } = select3(import_editor7.store);
2199 const post = getCurrentPost();
2200 let { id, status, type } = post;
2201 const isTemplate = ["wp_template", "wp_template_part"].includes(
2202 type
2203 );
2204 if (isTemplate) {
2205 id = post.wp_id;
2206 }
2207 return {
2208 postId: id,
2209 postStatus: status
2210 };
2211 }, []);
2212 (0, import_element6.useEffect)(() => {
2213 if (postId && postId !== historyId && postStatus !== "auto-draft") {
2214 window.history.replaceState(
2215 { id: postId },
2216 "Post " + postId,
2217 getPostEditURL(postId)
2218 );
2219 setHistoryId(postId);
2220 }
2221 }, [postId, postStatus, historyId]);
2222 return null;
2223 }
2224
2225 // packages/edit-post/build-module/components/meta-boxes/index.mjs
2226 var import_data12 = __toESM(require_data(), 1);
2227
2228 // packages/edit-post/build-module/components/meta-boxes/meta-boxes-area/index.mjs
2229 var import_element7 = __toESM(require_element(), 1);
2230 var import_components4 = __toESM(require_components(), 1);
2231 var import_data10 = __toESM(require_data(), 1);
2232 var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1);
2233 function MetaBoxesArea({ location }) {
2234 const container = (0, import_element7.useRef)(null);
2235 const formRef = (0, import_element7.useRef)(null);
2236 (0, import_element7.useEffect)(() => {
2237 formRef.current = document.querySelector(
2238 ".metabox-location-" + location
2239 );
2240 if (formRef.current) {
2241 container.current.appendChild(formRef.current);
2242 }
2243 return () => {
2244 if (formRef.current) {
2245 document.querySelector("#metaboxes").appendChild(formRef.current);
2246 }
2247 };
2248 }, [location]);
2249 const isSaving = (0, import_data10.useSelect)((select3) => {
2250 return select3(store).isSavingMetaBoxes();
2251 }, []);
2252 const classes = clsx_default("edit-post-meta-boxes-area", `is-${location}`, {
2253 "is-loading": isSaving
2254 });
2255 return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: classes, children: [
2256 isSaving && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_components4.Spinner, { className: "edit-post-meta-boxes-area__spinner" }),
2257 /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2258 "div",
2259 {
2260 className: "edit-post-meta-boxes-area__container",
2261 ref: container
2262 }
2263 ),
2264 /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "edit-post-meta-boxes-area__clear" })
2265 ] });
2266 }
2267 var meta_boxes_area_default = MetaBoxesArea;
2268
2269 // packages/edit-post/build-module/components/meta-boxes/meta-box-visibility.mjs
2270 var import_element8 = __toESM(require_element(), 1);
2271 var import_data11 = __toESM(require_data(), 1);
2272 var import_editor8 = __toESM(require_editor(), 1);
2273 function MetaBoxVisibility({ id }) {
2274 const isVisible = (0, import_data11.useSelect)(
2275 (select3) => {
2276 return select3(import_editor8.store).isEditorPanelEnabled(
2277 `meta-box-${id}`
2278 );
2279 },
2280 [id]
2281 );
2282 (0, import_element8.useEffect)(() => {
2283 const element = document.getElementById(id);
2284 if (!element) {
2285 return;
2286 }
2287 if (isVisible) {
2288 element.classList.remove("is-hidden");
2289 } else {
2290 element.classList.add("is-hidden");
2291 }
2292 }, [id, isVisible]);
2293 return null;
2294 }
2295
2296 // packages/edit-post/build-module/components/meta-boxes/index.mjs
2297 var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1);
2298 function MetaBoxes({ location }) {
2299 const metaBoxes2 = (0, import_data12.useSelect)(
2300 (select3) => select3(store).getMetaBoxesPerLocation(location),
2301 [location]
2302 );
2303 return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
2304 (metaBoxes2 ?? []).map(({ id }) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(MetaBoxVisibility, { id }, id)),
2305 /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(meta_boxes_area_default, { location })
2306 ] });
2307 }
2308
2309 // packages/edit-post/build-module/components/more-menu/index.mjs
2310 var import_i18n10 = __toESM(require_i18n(), 1);
2311 var import_compose2 = __toESM(require_compose(), 1);
2312 var import_editor14 = __toESM(require_editor(), 1);
2313 var import_keycodes = __toESM(require_keycodes(), 1);
2314 var import_preferences8 = __toESM(require_preferences(), 1);
2315
2316 // packages/edit-post/build-module/components/more-menu/manage-patterns-menu-item.mjs
2317 var import_components5 = __toESM(require_components(), 1);
2318 var import_core_data5 = __toESM(require_core_data(), 1);
2319 var import_data13 = __toESM(require_data(), 1);
2320 var import_i18n5 = __toESM(require_i18n(), 1);
2321 var import_url3 = __toESM(require_url(), 1);
2322 var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1);
2323 function ManagePatternsMenuItem() {
2324 const url = (0, import_data13.useSelect)((select3) => {
2325 const { canUser } = select3(import_core_data5.store);
2326 const defaultUrl = (0, import_url3.addQueryArgs)("edit.php", {
2327 post_type: "wp_block"
2328 });
2329 const patternsUrl = (0, import_url3.addQueryArgs)("site-editor.php", {
2330 p: "/pattern"
2331 });
2332 return canUser("create", {
2333 kind: "postType",
2334 name: "wp_template"
2335 }) ? patternsUrl : defaultUrl;
2336 }, []);
2337 return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_components5.MenuItem, { role: "menuitem", href: url, children: (0, import_i18n5.__)("Manage patterns") });
2338 }
2339 var manage_patterns_menu_item_default = ManagePatternsMenuItem;
2340
2341 // packages/edit-post/build-module/components/more-menu/welcome-guide-menu-item.mjs
2342 var import_data14 = __toESM(require_data(), 1);
2343 var import_preferences3 = __toESM(require_preferences(), 1);
2344 var import_i18n6 = __toESM(require_i18n(), 1);
2345 var import_editor9 = __toESM(require_editor(), 1);
2346 var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1);
2347 function WelcomeGuideMenuItem() {
2348 const isEditingTemplate2 = (0, import_data14.useSelect)(
2349 (select3) => select3(import_editor9.store).getCurrentPostType() === "wp_template",
2350 []
2351 );
2352 return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2353 import_preferences3.PreferenceToggleMenuItem,
2354 {
2355 scope: "core/edit-post",
2356 name: isEditingTemplate2 ? "welcomeGuideTemplate" : "welcomeGuide",
2357 label: (0, import_i18n6.__)("Welcome Guide")
2358 }
2359 );
2360 }
2361
2362 // packages/edit-post/build-module/components/preferences-modal/index.mjs
2363 var import_i18n9 = __toESM(require_i18n(), 1);
2364 var import_preferences7 = __toESM(require_preferences(), 1);
2365 var import_editor13 = __toESM(require_editor(), 1);
2366
2367 // packages/edit-post/build-module/components/preferences-modal/meta-boxes-section.mjs
2368 var import_i18n8 = __toESM(require_i18n(), 1);
2369 var import_data17 = __toESM(require_data(), 1);
2370 var import_editor12 = __toESM(require_editor(), 1);
2371 var import_preferences6 = __toESM(require_preferences(), 1);
2372
2373 // packages/edit-post/build-module/components/preferences-modal/enable-custom-fields.mjs
2374 var import_element9 = __toESM(require_element(), 1);
2375 var import_i18n7 = __toESM(require_i18n(), 1);
2376 var import_components6 = __toESM(require_components(), 1);
2377 var import_data15 = __toESM(require_data(), 1);
2378 var import_editor10 = __toESM(require_editor(), 1);
2379 var import_preferences4 = __toESM(require_preferences(), 1);
2380 var import_url4 = __toESM(require_url(), 1);
2381 var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
2382 var { PreferenceBaseOption } = unlock(import_preferences4.privateApis);
2383 function submitCustomFieldsForm() {
2384 const customFieldsForm = document.getElementById(
2385 "toggle-custom-fields-form"
2386 );
2387 customFieldsForm.querySelector('[name="_wp_http_referer"]').setAttribute("value", (0, import_url4.getPathAndQueryString)(window.location.href));
2388 customFieldsForm.submit();
2389 }
2390 function CustomFieldsConfirmation({ willEnable }) {
2391 const [isReloading, setIsReloading] = (0, import_element9.useState)(false);
2392 return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
2393 /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { className: "edit-post-preferences-modal__custom-fields-confirmation-message", children: (0, import_i18n7.__)(
2394 "A page reload is required for this change. Make sure your content is saved before reloading."
2395 ) }),
2396 /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2397 import_components6.Button,
2398 {
2399 __next40pxDefaultSize: true,
2400 variant: "secondary",
2401 isBusy: isReloading,
2402 accessibleWhenDisabled: true,
2403 disabled: isReloading,
2404 onClick: () => {
2405 setIsReloading(true);
2406 submitCustomFieldsForm();
2407 },
2408 children: willEnable ? (0, import_i18n7.__)("Show & Reload Page") : (0, import_i18n7.__)("Hide & Reload Page")
2409 }
2410 )
2411 ] });
2412 }
2413 function EnableCustomFieldsOption({ label }) {
2414 const areCustomFieldsEnabled = (0, import_data15.useSelect)((select3) => {
2415 return !!select3(import_editor10.store).getEditorSettings().enableCustomFields;
2416 }, []);
2417 const [isChecked, setIsChecked] = (0, import_element9.useState)(areCustomFieldsEnabled);
2418 return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2419 PreferenceBaseOption,
2420 {
2421 label,
2422 isChecked,
2423 onChange: setIsChecked,
2424 children: isChecked !== areCustomFieldsEnabled && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CustomFieldsConfirmation, { willEnable: isChecked })
2425 }
2426 );
2427 }
2428
2429 // packages/edit-post/build-module/components/preferences-modal/enable-panel.mjs
2430 var import_data16 = __toESM(require_data(), 1);
2431 var import_editor11 = __toESM(require_editor(), 1);
2432 var import_preferences5 = __toESM(require_preferences(), 1);
2433 var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
2434 var { PreferenceBaseOption: PreferenceBaseOption2 } = unlock(import_preferences5.privateApis);
2435 function EnablePanelOption(props) {
2436 const { toggleEditorPanelEnabled: toggleEditorPanelEnabled2 } = (0, import_data16.useDispatch)(import_editor11.store);
2437 const { isChecked, isRemoved } = (0, import_data16.useSelect)(
2438 (select3) => {
2439 const { isEditorPanelEnabled: isEditorPanelEnabled2, isEditorPanelRemoved: isEditorPanelRemoved2 } = select3(import_editor11.store);
2440 return {
2441 isChecked: isEditorPanelEnabled2(props.panelName),
2442 isRemoved: isEditorPanelRemoved2(props.panelName)
2443 };
2444 },
2445 [props.panelName]
2446 );
2447 if (isRemoved) {
2448 return null;
2449 }
2450 return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2451 PreferenceBaseOption2,
2452 {
2453 isChecked,
2454 onChange: () => toggleEditorPanelEnabled2(props.panelName),
2455 ...props
2456 }
2457 );
2458 }
2459
2460 // packages/edit-post/build-module/components/preferences-modal/meta-boxes-section.mjs
2461 var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
2462 var { PreferencesModalSection } = unlock(import_preferences6.privateApis);
2463 function MetaBoxesSection({
2464 areCustomFieldsRegistered,
2465 metaBoxes: metaBoxes2,
2466 ...sectionProps
2467 }) {
2468 const thirdPartyMetaBoxes = metaBoxes2.filter(
2469 ({ id }) => id !== "postcustom"
2470 );
2471 if (!areCustomFieldsRegistered && thirdPartyMetaBoxes.length === 0) {
2472 return null;
2473 }
2474 return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(PreferencesModalSection, { ...sectionProps, children: [
2475 areCustomFieldsRegistered && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(EnableCustomFieldsOption, { label: (0, import_i18n8.__)("Custom fields") }),
2476 thirdPartyMetaBoxes.map(({ id, title }) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2477 EnablePanelOption,
2478 {
2479 label: title,
2480 panelName: `meta-box-${id}`
2481 },
2482 id
2483 ))
2484 ] });
2485 }
2486 var meta_boxes_section_default = (0, import_data17.withSelect)((select3) => {
2487 const { getEditorSettings } = select3(import_editor12.store);
2488 const { getAllMetaBoxes: getAllMetaBoxes2 } = select3(store);
2489 return {
2490 // This setting should not live in the block editor's store.
2491 areCustomFieldsRegistered: getEditorSettings().enableCustomFields !== void 0,
2492 metaBoxes: getAllMetaBoxes2()
2493 };
2494 })(MetaBoxesSection);
2495
2496 // packages/edit-post/build-module/components/preferences-modal/index.mjs
2497 var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
2498 var { PreferenceToggleControl } = unlock(import_preferences7.privateApis);
2499 var { PreferencesModal } = unlock(import_editor13.privateApis);
2500 function EditPostPreferencesModal() {
2501 const extraSections = {
2502 general: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(meta_boxes_section_default, { title: (0, import_i18n9.__)("Advanced") }),
2503 appearance: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2504 PreferenceToggleControl,
2505 {
2506 scope: "core/edit-post",
2507 featureName: "themeStyles",
2508 help: (0, import_i18n9.__)("Make the editor look like your theme."),
2509 label: (0, import_i18n9.__)("Use theme styles")
2510 }
2511 )
2512 };
2513 return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(PreferencesModal, { extraSections });
2514 }
2515
2516 // packages/edit-post/build-module/components/more-menu/index.mjs
2517 var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
2518 var { ToolsMoreMenuGroup, ViewMoreMenuGroup } = unlock(import_editor14.privateApis);
2519 var MoreMenu = () => {
2520 const isLargeViewport = (0, import_compose2.useViewportMatch)("large");
2521 return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
2522 isLargeViewport && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ViewMoreMenuGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2523 import_preferences8.PreferenceToggleMenuItem,
2524 {
2525 scope: "core/edit-post",
2526 name: "fullscreenMode",
2527 label: (0, import_i18n10.__)("Fullscreen mode"),
2528 info: (0, import_i18n10.__)("Show and hide the admin user interface"),
2529 messageActivated: (0, import_i18n10.__)("Fullscreen mode activated."),
2530 messageDeactivated: (0, import_i18n10.__)(
2531 "Fullscreen mode deactivated."
2532 ),
2533 shortcut: import_keycodes.displayShortcut.secondary("f")
2534 }
2535 ) }),
2536 /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ToolsMoreMenuGroup, { children: [
2537 /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(manage_patterns_menu_item_default, {}),
2538 /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(WelcomeGuideMenuItem, {})
2539 ] }),
2540 /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(EditPostPreferencesModal, {})
2541 ] });
2542 };
2543 var more_menu_default = MoreMenu;
2544
2545 // packages/edit-post/build-module/components/welcome-guide/index.mjs
2546 var import_data20 = __toESM(require_data(), 1);
2547
2548 // packages/edit-post/build-module/components/welcome-guide/default.mjs
2549 var import_data18 = __toESM(require_data(), 1);
2550 var import_components7 = __toESM(require_components(), 1);
2551 var import_i18n11 = __toESM(require_i18n(), 1);
2552 var import_element10 = __toESM(require_element(), 1);
2553
2554 // packages/edit-post/build-module/components/welcome-guide/image.mjs
2555 var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
2556 function WelcomeGuideImage({ nonAnimatedSrc, animatedSrc }) {
2557 return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("picture", { className: "edit-post-welcome-guide__image", children: [
2558 /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2559 "source",
2560 {
2561 srcSet: nonAnimatedSrc,
2562 media: "(prefers-reduced-motion: reduce)"
2563 }
2564 ),
2565 /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("img", { src: animatedSrc, width: "312", height: "240", alt: "" })
2566 ] });
2567 }
2568
2569 // packages/edit-post/build-module/components/welcome-guide/default.mjs
2570 var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
2571 function WelcomeGuideDefault() {
2572 const { toggleFeature: toggleFeature2 } = (0, import_data18.useDispatch)(store);
2573 return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2574 import_components7.Guide,
2575 {
2576 className: "edit-post-welcome-guide",
2577 contentLabel: (0, import_i18n11.__)("Welcome to the editor"),
2578 finishButtonText: (0, import_i18n11.__)("Get started"),
2579 onFinish: () => toggleFeature2("welcomeGuide"),
2580 pages: [
2581 {
2582 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2583 WelcomeGuideImage,
2584 {
2585 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-canvas.svg",
2586 animatedSrc: "https://s.w.org/images/block-editor/welcome-canvas.gif"
2587 }
2588 ),
2589 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2590 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Welcome to the editor") }),
2591 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_i18n11.__)(
2592 "In the WordPress editor, each paragraph, image, or video is presented as a distinct \u201Cblock\u201D of content."
2593 ) })
2594 ] })
2595 },
2596 {
2597 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2598 WelcomeGuideImage,
2599 {
2600 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-editor.svg",
2601 animatedSrc: "https://s.w.org/images/block-editor/welcome-editor.gif"
2602 }
2603 ),
2604 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2605 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Customize each block") }),
2606 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_i18n11.__)(
2607 "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."
2608 ) })
2609 ] })
2610 },
2611 {
2612 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2613 WelcomeGuideImage,
2614 {
2615 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-library.svg",
2616 animatedSrc: "https://s.w.org/images/block-editor/welcome-library.gif"
2617 }
2618 ),
2619 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2620 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Explore all blocks") }),
2621 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_element10.createInterpolateElement)(
2622 (0, import_i18n11.__)(
2623 "All of the blocks available to you live in the block library. You\u2019ll find it wherever you see the <InserterIconImage /> icon."
2624 ),
2625 {
2626 InserterIconImage: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2627 "img",
2628 {
2629 alt: (0, import_i18n11.__)("inserter"),
2630 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"
2631 }
2632 )
2633 }
2634 ) })
2635 ] })
2636 },
2637 {
2638 image: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2639 WelcomeGuideImage,
2640 {
2641 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-documentation.svg",
2642 animatedSrc: "https://s.w.org/images/block-editor/welcome-documentation.gif"
2643 }
2644 ),
2645 content: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
2646 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n11.__)("Learn more") }),
2647 /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_element10.createInterpolateElement)(
2648 (0, import_i18n11.__)(
2649 "New to the block editor? Want to learn more about using it? <a>Here's a detailed guide.</a>"
2650 ),
2651 {
2652 a: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2653 import_components7.ExternalLink,
2654 {
2655 href: (0, import_i18n11.__)(
2656 "https://wordpress.org/documentation/article/wordpress-block-editor/"
2657 )
2658 }
2659 )
2660 }
2661 ) })
2662 ] })
2663 }
2664 ]
2665 }
2666 );
2667 }
2668
2669 // packages/edit-post/build-module/components/welcome-guide/template.mjs
2670 var import_data19 = __toESM(require_data(), 1);
2671 var import_components8 = __toESM(require_components(), 1);
2672 var import_i18n12 = __toESM(require_i18n(), 1);
2673 var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
2674 function WelcomeGuideTemplate() {
2675 const { toggleFeature: toggleFeature2 } = (0, import_data19.useDispatch)(store);
2676 return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2677 import_components8.Guide,
2678 {
2679 className: "edit-template-welcome-guide",
2680 contentLabel: (0, import_i18n12.__)("Welcome to the template editor"),
2681 finishButtonText: (0, import_i18n12.__)("Get started"),
2682 onFinish: () => toggleFeature2("welcomeGuideTemplate"),
2683 pages: [
2684 {
2685 image: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2686 WelcomeGuideImage,
2687 {
2688 nonAnimatedSrc: "https://s.w.org/images/block-editor/welcome-template-editor.svg",
2689 animatedSrc: "https://s.w.org/images/block-editor/welcome-template-editor.gif"
2690 }
2691 ),
2692 content: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
2693 /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h1", { className: "edit-post-welcome-guide__heading", children: (0, import_i18n12.__)("Welcome to the template editor") }),
2694 /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "edit-post-welcome-guide__text", children: (0, import_i18n12.__)(
2695 "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."
2696 ) })
2697 ] })
2698 }
2699 ]
2700 }
2701 );
2702 }
2703
2704 // packages/edit-post/build-module/components/welcome-guide/index.mjs
2705 var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
2706 function WelcomeGuide({ postType }) {
2707 const { isActive, isEditingTemplate: isEditingTemplate2 } = (0, import_data20.useSelect)(
2708 (select3) => {
2709 const { isFeatureActive: isFeatureActive2 } = select3(store);
2710 const _isEditingTemplate = postType === "wp_template";
2711 const feature = _isEditingTemplate ? "welcomeGuideTemplate" : "welcomeGuide";
2712 return {
2713 isActive: isFeatureActive2(feature),
2714 isEditingTemplate: _isEditingTemplate
2715 };
2716 },
2717 [postType]
2718 );
2719 if (!isActive) {
2720 return null;
2721 }
2722 return isEditingTemplate2 ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(WelcomeGuideTemplate, {}) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(WelcomeGuideDefault, {});
2723 }
2724
2725 // packages/edit-post/build-module/commands/use-commands.mjs
2726 var import_data21 = __toESM(require_data(), 1);
2727 var import_i18n13 = __toESM(require_i18n(), 1);
2728 var import_commands = __toESM(require_commands(), 1);
2729 var import_preferences9 = __toESM(require_preferences(), 1);
2730 var import_notices2 = __toESM(require_notices(), 1);
2731 function useCommands() {
2732 const { isFullscreen } = (0, import_data21.useSelect)((select3) => {
2733 const { get } = select3(import_preferences9.store);
2734 return {
2735 isFullscreen: get("core/edit-post", "fullscreenMode")
2736 };
2737 }, []);
2738 const { toggle } = (0, import_data21.useDispatch)(import_preferences9.store);
2739 const { createInfoNotice } = (0, import_data21.useDispatch)(import_notices2.store);
2740 (0, import_commands.useCommand)({
2741 name: "core/toggle-fullscreen-mode",
2742 label: isFullscreen ? (0, import_i18n13.__)("Exit fullscreen") : (0, import_i18n13.__)("Enter fullscreen"),
2743 icon: fullscreen_default,
2744 category: "command",
2745 callback: ({ close }) => {
2746 toggle("core/edit-post", "fullscreenMode");
2747 close();
2748 createInfoNotice(
2749 isFullscreen ? (0, import_i18n13.__)("Fullscreen off.") : (0, import_i18n13.__)("Fullscreen on."),
2750 {
2751 id: "core/edit-post/toggle-fullscreen-mode/notice",
2752 type: "snackbar",
2753 actions: [
2754 {
2755 label: (0, import_i18n13.__)("Undo"),
2756 onClick: () => {
2757 toggle("core/edit-post", "fullscreenMode");
2758 }
2759 }
2760 ]
2761 }
2762 );
2763 }
2764 });
2765 }
2766
2767 // packages/edit-post/build-module/components/layout/use-should-iframe.mjs
2768 var import_editor15 = __toESM(require_editor(), 1);
2769 var import_data22 = __toESM(require_data(), 1);
2770 var import_blocks2 = __toESM(require_blocks(), 1);
2771 var import_block_editor = __toESM(require_block_editor(), 1);
2772 var isGutenbergPlugin = true ? true : false;
2773 function useShouldIframe() {
2774 return (0, import_data22.useSelect)((select3) => {
2775 const { getCurrentPostType, getDeviceType } = select3(import_editor15.store);
2776 const { getClientIdsWithDescendants, getBlockName } = select3(import_block_editor.store);
2777 const { getBlockType } = select3(import_blocks2.store);
2778 return (
2779 // If the Gutenberg plugin is active, we ALWAYS use the iframe for
2780 // consistency across the post and site editor. We plan on enforcing
2781 // the iframe in the future, so Gutenberg both serves as way for us
2782 // to warn plugin developers and for plugin developers to test their
2783 // blocks easily. Before GB v22.5, we only enforced it for
2784 // block-based themes (classic themes used the same rules as core).
2785 isGutenbergPlugin || // We also still want to iframe all the special
2786 // editor features and modes such as device previews, zoom out, and
2787 // template/pattern editing.
2788 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
2789 // (which means they are marked as iframe-compatible).
2790 [...new Set(getClientIdsWithDescendants().map(getBlockName))].map(getBlockType).filter(Boolean).every((blockType) => blockType.apiVersion >= 3)
2791 );
2792 }, []);
2793 }
2794
2795 // packages/edit-post/build-module/hooks/use-navigate-to-entity-record.mjs
2796 var import_element11 = __toESM(require_element(), 1);
2797 var import_data23 = __toESM(require_data(), 1);
2798 var import_editor16 = __toESM(require_editor(), 1);
2799 var import_core_data6 = __toESM(require_core_data(), 1);
2800 function useNavigateToEntityRecord(initialPostId, initialPostType, defaultRenderingMode) {
2801 const registry = (0, import_data23.useRegistry)();
2802 const [postHistory, dispatch2] = (0, import_element11.useReducer)(
2803 (historyState, { type, post: post2, previousRenderingMode: previousRenderingMode2, selectedBlockClientId }) => {
2804 if (type === "push") {
2805 const updatedHistory = [...historyState];
2806 const currentIndex = updatedHistory.length - 1;
2807 updatedHistory[currentIndex] = {
2808 ...updatedHistory[currentIndex],
2809 selectedBlockClientId
2810 };
2811 return [...updatedHistory, { post: post2, previousRenderingMode: previousRenderingMode2 }];
2812 }
2813 if (type === "pop") {
2814 if (historyState.length > 1) {
2815 return historyState.slice(0, -1);
2816 }
2817 }
2818 return historyState;
2819 },
2820 [
2821 {
2822 post: { postId: initialPostId, postType: initialPostType }
2823 }
2824 ]
2825 );
2826 const { post, previousRenderingMode } = postHistory[postHistory.length - 1];
2827 const { getRenderingMode } = (0, import_data23.useSelect)(import_editor16.store);
2828 const { setRenderingMode } = (0, import_data23.useDispatch)(import_editor16.store);
2829 const { editEntityRecord } = (0, import_data23.useDispatch)(import_core_data6.store);
2830 const onNavigateToEntityRecord = (0, import_element11.useCallback)(
2831 (params) => {
2832 const entityEdits = registry.select(import_core_data6.store).getEntityRecordEdits("postType", post.postType, post.postId);
2833 const externalClientId = entityEdits?.selection?.selectionStart?.clientId ?? null;
2834 dispatch2({
2835 type: "push",
2836 post: { postId: params.postId, postType: params.postType },
2837 // Save the current rendering mode so we can restore it when navigating back.
2838 previousRenderingMode: getRenderingMode(),
2839 selectedBlockClientId: externalClientId
2840 });
2841 setRenderingMode(defaultRenderingMode);
2842 },
2843 [
2844 registry,
2845 post.postType,
2846 post.postId,
2847 getRenderingMode,
2848 setRenderingMode,
2849 defaultRenderingMode
2850 ]
2851 );
2852 const onNavigateToPreviousEntityRecord = (0, import_element11.useCallback)(() => {
2853 if (postHistory.length > 1) {
2854 const previousItem = postHistory[postHistory.length - 2];
2855 if (previousItem.selectedBlockClientId) {
2856 editEntityRecord(
2857 "postType",
2858 previousItem.post.postType,
2859 previousItem.post.postId,
2860 {
2861 selection: {
2862 selectionStart: {
2863 clientId: previousItem.selectedBlockClientId
2864 },
2865 selectionEnd: {
2866 clientId: previousItem.selectedBlockClientId
2867 }
2868 }
2869 },
2870 { undoIgnore: true }
2871 );
2872 }
2873 }
2874 dispatch2({
2875 type: "pop"
2876 });
2877 if (previousRenderingMode) {
2878 setRenderingMode(previousRenderingMode);
2879 }
2880 }, [
2881 setRenderingMode,
2882 previousRenderingMode,
2883 postHistory,
2884 editEntityRecord
2885 ]);
2886 return {
2887 currentPost: post,
2888 onNavigateToEntityRecord,
2889 onNavigateToPreviousEntityRecord: postHistory.length > 1 ? onNavigateToPreviousEntityRecord : void 0
2890 };
2891 }
2892
2893 // packages/edit-post/build-module/components/meta-boxes/use-meta-box-initialization.mjs
2894 var import_data24 = __toESM(require_data(), 1);
2895 var import_editor17 = __toESM(require_editor(), 1);
2896 var import_core_data7 = __toESM(require_core_data(), 1);
2897 var import_element12 = __toESM(require_element(), 1);
2898 var useMetaBoxInitialization = (enabled) => {
2899 const {
2900 isEnabledAndEditorReady,
2901 isCollaborationEnabled,
2902 hasIncompatibleMetaBoxes
2903 } = (0, import_data24.useSelect)(
2904 (select3) => ({
2905 isEnabledAndEditorReady: enabled && select3(import_editor17.store).__unstableIsEditorReady(),
2906 isCollaborationEnabled: select3(import_editor17.store).isCollaborationEnabledForCurrentPost(),
2907 hasIncompatibleMetaBoxes: enabled ? select3(store).getAllMetaBoxes().some((metaBox) => !metaBox.__rtc_compatible) : false
2908 }),
2909 [enabled]
2910 );
2911 const { setCollaborationSupported } = unlock((0, import_data24.useDispatch)(import_core_data7.store));
2912 const { initializeMetaBoxes: initializeMetaBoxes2 } = (0, import_data24.useDispatch)(store);
2913 (0, import_element12.useEffect)(() => {
2914 if (isEnabledAndEditorReady) {
2915 initializeMetaBoxes2();
2916 if (isCollaborationEnabled && hasIncompatibleMetaBoxes) {
2917 setCollaborationSupported(false);
2918 }
2919 }
2920 }, [
2921 isEnabledAndEditorReady,
2922 initializeMetaBoxes2,
2923 isCollaborationEnabled,
2924 setCollaborationSupported,
2925 hasIncompatibleMetaBoxes
2926 ]);
2927 };
2928
2929 // packages/edit-post/build-module/components/layout/index.mjs
2930 var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
2931 var { useCommandContext } = unlock(import_commands2.privateApis);
2932 var { useDrag } = unlock(import_components9.privateApis);
2933 var { Editor, FullscreenMode } = unlock(import_editor18.privateApis);
2934 var { BlockKeyboardShortcuts } = unlock(import_block_library.privateApis);
2935 var DESIGN_POST_TYPES = [
2936 "wp_template",
2937 "wp_template_part",
2938 "wp_block",
2939 "wp_navigation"
2940 ];
2941 function useEditorStyles(settings) {
2942 const { hasThemeStyleSupport } = (0, import_data25.useSelect)((select3) => {
2943 return {
2944 hasThemeStyleSupport: select3(store).isFeatureActive("themeStyles")
2945 };
2946 }, []);
2947 return (0, import_element13.useMemo)(() => {
2948 const presetStyles = settings.styles?.filter(
2949 (style) => style.__unstableType && style.__unstableType !== "theme"
2950 ) ?? [];
2951 const defaultEditorStyles = [
2952 ...settings?.defaultEditorStyles ?? [],
2953 ...presetStyles
2954 ];
2955 const hasThemeStyles = hasThemeStyleSupport && presetStyles.length !== (settings.styles?.length ?? 0);
2956 if (!settings.disableLayoutStyles && !hasThemeStyles) {
2957 defaultEditorStyles.push({
2958 css: getLayoutStyles({
2959 style: {},
2960 selector: "body",
2961 hasBlockGapSupport: false,
2962 hasFallbackGapSupport: true,
2963 fallbackGapValue: "0.5em"
2964 })
2965 });
2966 }
2967 return hasThemeStyles ? settings.styles ?? [] : defaultEditorStyles;
2968 }, [
2969 settings.defaultEditorStyles,
2970 settings.disableLayoutStyles,
2971 settings.styles,
2972 hasThemeStyleSupport
2973 ]);
2974 }
2975 function MetaBoxesMain({ isLegacy }) {
2976 const [isOpen, openHeight, hasAnyVisible] = (0, import_data25.useSelect)((select3) => {
2977 const { get } = select3(import_preferences10.store);
2978 const { isMetaBoxLocationVisible: isMetaBoxLocationVisible2 } = select3(store);
2979 return [
2980 !!get("core/edit-post", "metaBoxesMainIsOpen"),
2981 get("core/edit-post", "metaBoxesMainOpenHeight"),
2982 isMetaBoxLocationVisible2("normal") || isMetaBoxLocationVisible2("advanced") || isMetaBoxLocationVisible2("side")
2983 ];
2984 }, []);
2985 const { set: setPreference } = (0, import_data25.useDispatch)(import_preferences10.store);
2986 const isShort = (0, import_compose3.useMediaQuery)("(max-height: 549px)");
2987 const [{ min = 0, max }, setHeightConstraints] = (0, import_element13.useState)(() => ({}));
2988 const effectSizeConstraints = (0, import_compose3.useRefEffect)((node) => {
2989 const container = node.closest(
2990 ".interface-interface-skeleton__content"
2991 );
2992 if (!container) {
2993 return;
2994 }
2995 const noticeLists = container.querySelectorAll(
2996 ":scope > .components-notice-list"
2997 );
2998 const resizeHandle = container.querySelector(
2999 ".edit-post-meta-boxes-main__presenter"
3000 );
3001 const deriveConstraints = () => {
3002 const fullHeight = container.offsetHeight;
3003 let nextMax = fullHeight;
3004 for (const element of noticeLists) {
3005 nextMax -= element.offsetHeight;
3006 }
3007 const nextMin = resizeHandle.offsetHeight;
3008 setHeightConstraints({ min: nextMin, max: nextMax });
3009 };
3010 const observer = new window.ResizeObserver(deriveConstraints);
3011 observer.observe(container);
3012 for (const element of noticeLists) {
3013 observer.observe(element);
3014 }
3015 return () => observer.disconnect();
3016 }, []);
3017 const metaBoxesMainRef = (0, import_element13.useRef)();
3018 const setMainRefs = (0, import_compose3.useMergeRefs)([
3019 metaBoxesMainRef,
3020 effectSizeConstraints
3021 ]);
3022 const separatorRef = (0, import_element13.useRef)();
3023 const separatorHelpId = (0, import_element13.useId)();
3024 const heightRef = (0, import_element13.useRef)();
3025 const getAriaValueNow = (height) => Math.round((height - min) / (max - min) * 100);
3026 const persistIsOpen = (to = !isOpen) => setPreference("core/edit-post", "metaBoxesMainIsOpen", to);
3027 const applyHeight = (candidateHeight = "auto", isPersistent) => {
3028 let styleHeight;
3029 if (candidateHeight === "auto") {
3030 isPersistent = false;
3031 styleHeight = candidateHeight;
3032 } else {
3033 candidateHeight = Math.min(max, Math.max(min, candidateHeight));
3034 heightRef.current = candidateHeight;
3035 styleHeight = `${candidateHeight}px`;
3036 }
3037 if (isPersistent) {
3038 setPreference(
3039 "core/edit-post",
3040 "metaBoxesMainOpenHeight",
3041 candidateHeight
3042 );
3043 } else {
3044 metaBoxesMainRef.current.style.height = styleHeight;
3045 if (!isShort) {
3046 separatorRef.current.ariaValueNow = getAriaValueNow(candidateHeight);
3047 }
3048 }
3049 };
3050 const bindDragGesture = useDrag(
3051 ({ movement, first, last, memo, tap, args }) => {
3052 const pane = metaBoxesMainRef.current;
3053 const [, yMovement] = movement;
3054 if (first) {
3055 pane.classList.add("is-resizing");
3056 let fromHeight = heightRef.current ?? pane.offsetHeight;
3057 if (isOpen) {
3058 if (fromHeight > max) {
3059 fromHeight = max;
3060 }
3061 } else {
3062 fromHeight = min;
3063 }
3064 applyHeight(fromHeight - yMovement);
3065 return { fromHeight };
3066 }
3067 if (!first && !last && !tap) {
3068 applyHeight(memo.fromHeight - yMovement);
3069 return memo;
3070 }
3071 pane.classList.remove("is-resizing");
3072 if (tap) {
3073 const [onTap] = args;
3074 onTap?.();
3075 return;
3076 }
3077 const nextIsOpen = heightRef.current > min;
3078 persistIsOpen(nextIsOpen);
3079 applyHeight(heightRef.current, nextIsOpen);
3080 },
3081 { keyboardDisplacement: 20, filterTaps: true }
3082 );
3083 if (!hasAnyVisible) {
3084 return;
3085 }
3086 const contents = /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
3087 "div",
3088 {
3089 className: "edit-post-layout__metaboxes edit-post-meta-boxes-main__liner",
3090 hidden: !isLegacy && !isOpen,
3091 children: [
3092 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MetaBoxes, { location: "normal" }),
3093 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MetaBoxes, { location: "advanced" })
3094 ]
3095 }
3096 );
3097 if (isLegacy) {
3098 return contents;
3099 }
3100 const isAutoHeight = openHeight === void 0;
3101 const usedOpenHeight = isShort ? "auto" : openHeight;
3102 const usedHeight = isOpen ? usedOpenHeight : min;
3103 const usedAriaValueNow = max === void 0 || isAutoHeight ? 50 : getAriaValueNow(usedHeight);
3104 const paneLabel = (0, import_i18n14.__)("Meta Boxes");
3105 const toggle = /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
3106 "button",
3107 {
3108 "aria-expanded": isOpen,
3109 onClick: ({ detail }) => {
3110 if (isShort || !detail) {
3111 persistIsOpen();
3112 }
3113 },
3114 ...!isShort && bindDragGesture(persistIsOpen),
3115 children: [
3116 paneLabel,
3117 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components9.Icon, { icon: isOpen ? chevron_up_default : chevron_down_default })
3118 ]
3119 }
3120 );
3121 const separator = !isShort && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
3122 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components9.Tooltip, { text: (0, import_i18n14.__)("Drag to resize"), children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3123 "button",
3124 {
3125 ref: separatorRef,
3126 role: "separator",
3127 "aria-valuenow": usedAriaValueNow,
3128 "aria-label": (0, import_i18n14.__)("Drag to resize"),
3129 "aria-describedby": separatorHelpId,
3130 ...bindDragGesture()
3131 }
3132 ) }),
3133 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(VisuallyHidden, { id: separatorHelpId, children: (0, import_i18n14.__)(
3134 "Use up and down arrow keys to resize the meta box pane."
3135 ) })
3136 ] });
3137 return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
3138 navigable_region_default,
3139 {
3140 ariaLabel: paneLabel,
3141 ref: setMainRefs,
3142 className: clsx_default(
3143 "edit-post-meta-boxes-main",
3144 !isShort && "is-resizable"
3145 ),
3146 style: { height: usedHeight },
3147 children: [
3148 /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "edit-post-meta-boxes-main__presenter", children: [
3149 toggle,
3150 separator
3151 ] }),
3152 contents
3153 ]
3154 }
3155 );
3156 }
3157 function Layout({
3158 postId: initialPostId,
3159 postType: initialPostType,
3160 settings,
3161 initialEdits
3162 }) {
3163 useCommands();
3164 const shouldIframe = useShouldIframe();
3165 const { createErrorNotice } = (0, import_data25.useDispatch)(import_notices3.store);
3166 const {
3167 currentPost: { postId: currentPostId, postType: currentPostType },
3168 onNavigateToEntityRecord,
3169 onNavigateToPreviousEntityRecord
3170 } = useNavigateToEntityRecord(
3171 initialPostId,
3172 initialPostType,
3173 "post-only"
3174 );
3175 const isEditingTemplate2 = currentPostType === "wp_template";
3176 const {
3177 mode,
3178 isFullscreenActive,
3179 hasResolvedMode,
3180 hasActiveMetaboxes,
3181 hasBlockSelected,
3182 showIconLabels,
3183 isDistractionFree,
3184 showMetaBoxes,
3185 isWelcomeGuideVisible,
3186 templateId,
3187 isDevicePreview
3188 } = (0, import_data25.useSelect)(
3189 (select3) => {
3190 const { get } = select3(import_preferences10.store);
3191 const { isFeatureActive: isFeatureActive2, hasMetaBoxes: hasMetaBoxes2 } = select3(store);
3192 const { canUser, getPostType, getTemplateId } = unlock(
3193 select3(import_core_data8.store)
3194 );
3195 const supportsTemplateMode = settings.supportsTemplateMode;
3196 const isViewable = getPostType(currentPostType)?.viewable ?? false;
3197 const canViewTemplate = canUser("read", {
3198 kind: "postType",
3199 name: "wp_template"
3200 });
3201 const { getBlockSelectionStart, isZoomOut } = unlock(
3202 select3(import_block_editor2.store)
3203 );
3204 const { getEditorMode: getEditorMode2, getDefaultRenderingMode, getDeviceType } = unlock(select3(import_editor18.store));
3205 const isNotDesignPostType = !DESIGN_POST_TYPES.includes(currentPostType);
3206 const isDirectlyEditingPattern = currentPostType === "wp_block" && !onNavigateToPreviousEntityRecord;
3207 const _templateId = getTemplateId(currentPostType, currentPostId);
3208 const defaultMode = getDefaultRenderingMode(currentPostType);
3209 return {
3210 mode: getEditorMode2(),
3211 isFullscreenActive: isFeatureActive2("fullscreenMode"),
3212 hasActiveMetaboxes: hasMetaBoxes2(),
3213 hasResolvedMode: defaultMode === "template-locked" ? !!_templateId : defaultMode !== void 0,
3214 hasBlockSelected: !!getBlockSelectionStart(),
3215 showIconLabels: get("core", "showIconLabels"),
3216 isDistractionFree: get("core", "distractionFree"),
3217 showMetaBoxes: isNotDesignPostType && !isZoomOut() || isDirectlyEditingPattern,
3218 isWelcomeGuideVisible: isFeatureActive2("welcomeGuide"),
3219 templateId: supportsTemplateMode && isViewable && canViewTemplate && !isEditingTemplate2 ? _templateId : null,
3220 isDevicePreview: getDeviceType() !== "Desktop"
3221 };
3222 },
3223 [
3224 currentPostType,
3225 currentPostId,
3226 isEditingTemplate2,
3227 settings.supportsTemplateMode,
3228 onNavigateToPreviousEntityRecord
3229 ]
3230 );
3231 useMetaBoxInitialization(hasActiveMetaboxes && hasResolvedMode);
3232 const commandContext = hasBlockSelected ? "block-selection-edit" : "entity-edit";
3233 useCommandContext(commandContext);
3234 const styles = useEditorStyles(settings);
3235 const editorSettings = (0, import_element13.useMemo)(
3236 () => ({
3237 ...settings,
3238 styles,
3239 onNavigateToEntityRecord,
3240 onNavigateToPreviousEntityRecord
3241 }),
3242 [
3243 settings,
3244 styles,
3245 onNavigateToEntityRecord,
3246 onNavigateToPreviousEntityRecord
3247 ]
3248 );
3249 if (showIconLabels) {
3250 document.body.classList.add("show-icon-labels");
3251 } else {
3252 document.body.classList.remove("show-icon-labels");
3253 }
3254 const navigateRegionsProps = (0, import_components9.__unstableUseNavigateRegions)();
3255 const className = clsx_default("edit-post-layout", "is-mode-" + mode, {
3256 "has-metaboxes": hasActiveMetaboxes
3257 });
3258 function onPluginAreaError(name) {
3259 createErrorNotice(
3260 (0, import_i18n14.sprintf)(
3261 /* translators: %s: plugin name */
3262 (0, import_i18n14.__)(
3263 'The "%s" plugin has encountered an error and cannot be rendered.'
3264 ),
3265 name
3266 )
3267 );
3268 }
3269 const { createSuccessNotice } = (0, import_data25.useDispatch)(import_notices3.store);
3270 const onActionPerformed = (0, import_element13.useCallback)(
3271 (actionId, items) => {
3272 switch (actionId) {
3273 case "move-to-trash":
3274 {
3275 document.location.href = (0, import_url5.addQueryArgs)("edit.php", {
3276 trashed: 1,
3277 post_type: items[0].type,
3278 ids: items[0].id
3279 });
3280 }
3281 break;
3282 case "duplicate-post":
3283 {
3284 const newItem = items[0];
3285 const title = typeof newItem.title === "string" ? newItem.title : newItem.title?.rendered;
3286 createSuccessNotice(
3287 (0, import_i18n14.sprintf)(
3288 // translators: %s: Title of the created post or template, e.g: "Hello world".
3289 (0, import_i18n14.__)('"%s" successfully created.'),
3290 (0, import_html_entities.decodeEntities)(title) || (0, import_i18n14.__)("(no title)")
3291 ),
3292 {
3293 type: "snackbar",
3294 id: "duplicate-post-action",
3295 actions: [
3296 {
3297 label: (0, import_i18n14.__)("Edit"),
3298 onClick: () => {
3299 const postId = newItem.id;
3300 document.location.href = (0, import_url5.addQueryArgs)("post.php", {
3301 post: postId,
3302 action: "edit"
3303 });
3304 }
3305 }
3306 ]
3307 }
3308 );
3309 }
3310 break;
3311 }
3312 },
3313 [createSuccessNotice]
3314 );
3315 const initialPost = (0, import_element13.useMemo)(() => {
3316 return {
3317 type: initialPostType,
3318 id: initialPostId
3319 };
3320 }, [initialPostType, initialPostId]);
3321 const backButton = (0, import_compose3.useViewportMatch)("medium") && isFullscreenActive ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(back_button_default, { initialPost }) : null;
3322 return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components9.SlotFillProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_editor18.ErrorBoundary, { canCopyContent: true, children: [
3323 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(WelcomeGuide, { postType: currentPostType }),
3324 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { ...navigateRegionsProps, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
3325 Editor,
3326 {
3327 settings: editorSettings,
3328 initialEdits,
3329 postType: currentPostType,
3330 postId: currentPostId,
3331 templateId,
3332 className,
3333 forceIsDirty: hasActiveMetaboxes,
3334 disableIframe: !shouldIframe,
3335 autoFocus: !isWelcomeGuideVisible,
3336 onActionPerformed,
3337 extraSidebarPanels: showMetaBoxes && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MetaBoxes, { location: "side" }),
3338 extraContent: !isDistractionFree && showMetaBoxes && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MetaBoxesMain, { isLegacy: isDevicePreview }),
3339 children: [
3340 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.PostLockedModal, {}),
3341 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(EditorInitialization, {}),
3342 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(FullscreenMode, { isActive: isFullscreenActive }),
3343 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(BrowserURL, {}),
3344 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.UnsavedChangesWarning, {}),
3345 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.AutosaveMonitor, {}),
3346 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.LocalAutosaveMonitor, {}),
3347 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(keyboard_shortcuts_default, {}),
3348 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_editor18.EditorKeyboardShortcutsRegister, {}),
3349 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(BlockKeyboardShortcuts, {}),
3350 currentPostType === "wp_block" && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(InitPatternModal, {}),
3351 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_plugins.PluginArea, { onError: onPluginAreaError }),
3352 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(more_menu_default, {}),
3353 backButton,
3354 /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_notices3.SnackbarNotices, { className: "edit-post-layout__snackbar" })
3355 ]
3356 }
3357 ) })
3358 ] }) });
3359 }
3360 var layout_default = Layout;
3361
3362 // packages/edit-post/build-module/deprecated.mjs
3363 var import_editor19 = __toESM(require_editor(), 1);
3364 var import_url6 = __toESM(require_url(), 1);
3365 var import_deprecated3 = __toESM(require_deprecated(), 1);
3366 var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
3367 var { PluginPostExcerpt } = unlock(import_editor19.privateApis);
3368 var isSiteEditor = (0, import_url6.getPath)(window.location.href)?.includes(
3369 "site-editor.php"
3370 );
3371 var deprecateSlot = (name) => {
3372 (0, import_deprecated3.default)(`wp.editPost.${name}`, {
3373 since: "6.6",
3374 alternative: `wp.editor.${name}`
3375 });
3376 };
3377 function PluginBlockSettingsMenuItem(props) {
3378 if (isSiteEditor) {
3379 return null;
3380 }
3381 deprecateSlot("PluginBlockSettingsMenuItem");
3382 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginBlockSettingsMenuItem, { ...props });
3383 }
3384 function PluginDocumentSettingPanel(props) {
3385 if (isSiteEditor) {
3386 return null;
3387 }
3388 deprecateSlot("PluginDocumentSettingPanel");
3389 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginDocumentSettingPanel, { ...props });
3390 }
3391 function PluginMoreMenuItem(props) {
3392 if (isSiteEditor) {
3393 return null;
3394 }
3395 deprecateSlot("PluginMoreMenuItem");
3396 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginMoreMenuItem, { ...props });
3397 }
3398 function PluginPrePublishPanel(props) {
3399 if (isSiteEditor) {
3400 return null;
3401 }
3402 deprecateSlot("PluginPrePublishPanel");
3403 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginPrePublishPanel, { ...props });
3404 }
3405 function PluginPostPublishPanel(props) {
3406 if (isSiteEditor) {
3407 return null;
3408 }
3409 deprecateSlot("PluginPostPublishPanel");
3410 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginPostPublishPanel, { ...props });
3411 }
3412 function PluginPostStatusInfo(props) {
3413 if (isSiteEditor) {
3414 return null;
3415 }
3416 deprecateSlot("PluginPostStatusInfo");
3417 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginPostStatusInfo, { ...props });
3418 }
3419 function PluginSidebar(props) {
3420 if (isSiteEditor) {
3421 return null;
3422 }
3423 deprecateSlot("PluginSidebar");
3424 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginSidebar, { ...props });
3425 }
3426 function PluginSidebarMoreMenuItem(props) {
3427 if (isSiteEditor) {
3428 return null;
3429 }
3430 deprecateSlot("PluginSidebarMoreMenuItem");
3431 return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_editor19.PluginSidebarMoreMenuItem, { ...props });
3432 }
3433 function __experimentalPluginPostExcerpt() {
3434 if (isSiteEditor) {
3435 return null;
3436 }
3437 (0, import_deprecated3.default)("wp.editPost.__experimentalPluginPostExcerpt", {
3438 since: "6.6",
3439 hint: "Core and custom panels can be access programmatically using their panel name.",
3440 link: "https://developer.wordpress.org/block-editor/reference-guides/slotfills/plugin-document-setting-panel/#accessing-a-panel-programmatically"
3441 });
3442 return PluginPostExcerpt;
3443 }
3444
3445 // packages/edit-post/build-module/index.mjs
3446 var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
3447 var {
3448 BackButton: __experimentalMainDashboardButton,
3449 registerCoreBlockBindingsSources
3450 } = unlock(import_editor20.privateApis);
3451 function initializeEditor(id, postType, postId, settings, initialEdits) {
3452 const isMediumOrBigger = window.matchMedia("(min-width: 782px)").matches;
3453 const target = document.getElementById(id);
3454 const root = (0, import_element14.createRoot)(target);
3455 (0, import_data26.dispatch)(import_preferences11.store).setDefaults("core/edit-post", {
3456 fullscreenMode: true,
3457 themeStyles: true,
3458 welcomeGuide: true,
3459 welcomeGuideTemplate: true
3460 });
3461 (0, import_data26.dispatch)(import_preferences11.store).setDefaults("core", {
3462 allowRightClickOverrides: true,
3463 editorMode: "visual",
3464 editorTool: "edit",
3465 fixedToolbar: false,
3466 hiddenBlockTypes: [],
3467 inactivePanels: [],
3468 openPanels: ["post-status"],
3469 showBlockBreadcrumbs: true,
3470 showIconLabels: false,
3471 showListViewByDefault: false,
3472 enableChoosePatternModal: true,
3473 isPublishSidebarEnabled: true,
3474 showCollaborationCursor: false,
3475 showCollaborationNotifications: true
3476 });
3477 if (window.__clientSideMediaProcessing) {
3478 (0, import_data26.dispatch)(import_preferences11.store).setDefaults("core/media", {
3479 requireApproval: true,
3480 optimizeOnUpload: true
3481 });
3482 }
3483 (0, import_data26.dispatch)(import_blocks3.store).reapplyBlockTypeFilters();
3484 if (isMediumOrBigger && (0, import_data26.select)(import_preferences11.store).get("core", "showListViewByDefault") && !(0, import_data26.select)(import_preferences11.store).get("core", "distractionFree")) {
3485 (0, import_data26.dispatch)(import_editor20.store).setIsListViewOpened(true);
3486 }
3487 (0, import_block_library2.registerCoreBlocks)();
3488 registerCoreBlockBindingsSources();
3489 (0, import_widgets.registerLegacyWidgetBlock)({ inserter: false });
3490 (0, import_widgets.registerWidgetGroupBlock)({ inserter: false });
3491 if (true) {
3492 (0, import_block_library2.__experimentalRegisterExperimentalCoreBlocks)({
3493 enableFSEBlocks: settings.__unstableEnableFullSiteEditingBlocks
3494 });
3495 }
3496 const documentMode = document.compatMode === "CSS1Compat" ? "Standards" : "Quirks";
3497 if (documentMode !== "Standards") {
3498 console.warn(
3499 "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."
3500 );
3501 }
3502 const isIphone = window.navigator.userAgent.indexOf("iPhone") !== -1;
3503 if (isIphone) {
3504 window.addEventListener("scroll", (event) => {
3505 const editorScrollContainer = document.getElementsByClassName(
3506 "interface-interface-skeleton__body"
3507 )[0];
3508 if (event.target === document) {
3509 if (window.scrollY > 100) {
3510 editorScrollContainer.scrollTop = editorScrollContainer.scrollTop + window.scrollY;
3511 }
3512 if (document.getElementsByClassName("is-mode-visual")[0]) {
3513 window.scrollTo(0, 0);
3514 }
3515 }
3516 });
3517 }
3518 window.addEventListener("dragover", (e) => e.preventDefault(), false);
3519 window.addEventListener("drop", (e) => e.preventDefault(), false);
3520 root.render(
3521 /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_element14.StrictMode, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3522 layout_default,
3523 {
3524 settings,
3525 postId,
3526 postType,
3527 initialEdits
3528 }
3529 ) })
3530 );
3531 return root;
3532 }
3533 function reinitializeEditor() {
3534 (0, import_deprecated4.default)("wp.editPost.reinitializeEditor", {
3535 since: "6.2",
3536 version: "6.3"
3537 });
3538 }
3539 return __toCommonJS(index_exports);
3540 })();
3541 //# sourceMappingURL=index.js.map
3542