PluginProbe
Gutenberg / 23.1.1
Gutenberg v23.1.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 / core-commands / index.js

index.js in Gutenberg 23.1.1, at build/scripts/core-commands/index.js

742 lines 28.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 var wp;
2 (wp ||= {}).coreCommands = (() => {
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/element
35 var require_element = __commonJS({
36 "package-external:@wordpress/element"(exports, module) {
37 module.exports = window.wp.element;
38 }
39 });
40
41 // package-external:@wordpress/router
42 var require_router = __commonJS({
43 "package-external:@wordpress/router"(exports, module) {
44 module.exports = window.wp.router;
45 }
46 });
47
48 // package-external:@wordpress/commands
49 var require_commands = __commonJS({
50 "package-external:@wordpress/commands"(exports, module) {
51 module.exports = window.wp.commands;
52 }
53 });
54
55 // package-external:@wordpress/i18n
56 var require_i18n = __commonJS({
57 "package-external:@wordpress/i18n"(exports, module) {
58 module.exports = window.wp.i18n;
59 }
60 });
61
62 // package-external:@wordpress/primitives
63 var require_primitives = __commonJS({
64 "package-external:@wordpress/primitives"(exports, module) {
65 module.exports = window.wp.primitives;
66 }
67 });
68
69 // vendor-external:react/jsx-runtime
70 var require_jsx_runtime = __commonJS({
71 "vendor-external:react/jsx-runtime"(exports, module) {
72 module.exports = window.ReactJSXRuntime;
73 }
74 });
75
76 // package-external:@wordpress/core-data
77 var require_core_data = __commonJS({
78 "package-external:@wordpress/core-data"(exports, module) {
79 module.exports = window.wp.coreData;
80 }
81 });
82
83 // package-external:@wordpress/data
84 var require_data = __commonJS({
85 "package-external:@wordpress/data"(exports, module) {
86 module.exports = window.wp.data;
87 }
88 });
89
90 // package-external:@wordpress/url
91 var require_url = __commonJS({
92 "package-external:@wordpress/url"(exports, module) {
93 module.exports = window.wp.url;
94 }
95 });
96
97 // package-external:@wordpress/compose
98 var require_compose = __commonJS({
99 "package-external:@wordpress/compose"(exports, module) {
100 module.exports = window.wp.compose;
101 }
102 });
103
104 // package-external:@wordpress/html-entities
105 var require_html_entities = __commonJS({
106 "package-external:@wordpress/html-entities"(exports, module) {
107 module.exports = window.wp.htmlEntities;
108 }
109 });
110
111 // package-external:@wordpress/private-apis
112 var require_private_apis = __commonJS({
113 "package-external:@wordpress/private-apis"(exports, module) {
114 module.exports = window.wp.privateApis;
115 }
116 });
117
118 // packages/core-commands/build-module/index.mjs
119 var index_exports = {};
120 __export(index_exports, {
121 initializeCommandPalette: () => initializeCommandPalette,
122 privateApis: () => privateApis
123 });
124 var import_element3 = __toESM(require_element(), 1);
125 var import_router2 = __toESM(require_router(), 1);
126 var import_commands3 = __toESM(require_commands(), 1);
127
128 // packages/core-commands/build-module/admin-navigation-commands.mjs
129 var import_commands = __toESM(require_commands(), 1);
130 var import_i18n = __toESM(require_i18n(), 1);
131
132 // packages/icons/build-module/library/brush.mjs
133 var import_primitives = __toESM(require_primitives(), 1);
134 var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
135 var brush_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: "M4 20h8v-1.5H4V20zM18.9 3.5c-.6-.6-1.5-.6-2.1 0l-7.2 7.2c-.4-.1-.7 0-1.1.1-.5.2-1.5.7-1.9 2.2-.4 1.7-.8 2.2-1.1 2.7-.1.1-.2.3-.3.4l-.6 1.1H6c2 0 3.4-.4 4.7-1.4.8-.6 1.2-1.4 1.3-2.3 0-.3 0-.5-.1-.7L19 5.7c.5-.6.5-1.6-.1-2.2zM9.7 14.7c-.7.5-1.5.8-2.4 1 .2-.5.5-1.2.8-2.3.2-.6.4-1 .8-1.1.5-.1 1 .1 1.3.3.2.2.3.5.2.8 0 .3-.1.9-.7 1.3z" }) });
136
137 // packages/icons/build-module/library/external.mjs
138 var import_primitives2 = __toESM(require_primitives(), 1);
139 var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
140 var external_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: "M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z" }) });
141
142 // packages/icons/build-module/library/layout.mjs
143 var import_primitives3 = __toESM(require_primitives(), 1);
144 var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
145 var layout_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: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z" }) });
146
147 // packages/icons/build-module/library/navigation.mjs
148 var import_primitives4 = __toESM(require_primitives(), 1);
149 var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
150 var navigation_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: "M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14.5c-3.6 0-6.5-2.9-6.5-6.5S8.4 5.5 12 5.5s6.5 2.9 6.5 6.5-2.9 6.5-6.5 6.5zM9 16l4.5-3L15 8.4l-4.5 3L9 16z" }) });
151
152 // packages/icons/build-module/library/page.mjs
153 var import_primitives5 = __toESM(require_primitives(), 1);
154 var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
155 var page_default = /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_primitives5.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: [
156 /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives5.Path, { d: "M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z" }),
157 /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives5.Path, { d: "M17 4H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2ZM7 5.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H7a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5Z" })
158 ] });
159
160 // packages/icons/build-module/library/post.mjs
161 var import_primitives6 = __toESM(require_primitives(), 1);
162 var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
163 var post_default = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives6.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives6.Path, { d: "m7.3 9.7 1.4 1.4c.2-.2.3-.3.4-.5 0 0 0-.1.1-.1.3-.5.4-1.1.3-1.6L12 7 9 4 7.2 6.5c-.6-.1-1.1 0-1.6.3 0 0-.1 0-.1.1-.3.1-.4.2-.6.4l1.4 1.4L4 11v1h1l2.3-2.3zM4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4z" }) });
164
165 // packages/icons/build-module/library/styles.mjs
166 var import_primitives7 = __toESM(require_primitives(), 1);
167 var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1);
168 var styles_default = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives7.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives7.Path, { fillRule: "evenodd", clipRule: "evenodd", d: "M20 12a8 8 0 1 1-16 0 8 8 0 0 1 16 0Zm-1.5 0a6.5 6.5 0 0 1-6.5 6.5v-13a6.5 6.5 0 0 1 6.5 6.5Z" }) });
169
170 // packages/icons/build-module/library/symbol-filled.mjs
171 var import_primitives8 = __toESM(require_primitives(), 1);
172 var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
173 var symbol_filled_default = /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_primitives8.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_primitives8.Path, { d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-17.6 1L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z" }) });
174
175 // packages/icons/build-module/library/symbol.mjs
176 var import_primitives9 = __toESM(require_primitives(), 1);
177 var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
178 var symbol_default = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_primitives9.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_primitives9.Path, { d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-1 1.4l-5.6 5.6c-.1.1-.3.1-.4 0l-5.6-5.6c-.1-.1-.1-.3 0-.4l5.6-5.6s.1-.1.2-.1.1 0 .2.1l5.6 5.6c.1.1.1.3 0 .4zm-16.6-.4L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z" }) });
179
180 // packages/core-commands/build-module/admin-navigation-commands.mjs
181 var import_element = __toESM(require_element(), 1);
182 var import_core_data = __toESM(require_core_data(), 1);
183 var import_data = __toESM(require_data(), 1);
184 var getViewSiteCommand = () => function useViewSiteCommand() {
185 const homeUrl = (0, import_data.useSelect)((select) => {
186 return select(import_core_data.store).getEntityRecord(
187 "root",
188 "__unstableBase"
189 )?.home;
190 }, []);
191 const commands = (0, import_element.useMemo)(() => {
192 if (!homeUrl) {
193 return [];
194 }
195 return [
196 {
197 name: "core/view-site",
198 label: (0, import_i18n.__)("View site"),
199 icon: external_default,
200 category: "view",
201 callback: ({ close }) => {
202 close();
203 window.open(homeUrl, "_blank");
204 }
205 }
206 ];
207 }, [homeUrl]);
208 return {
209 isLoading: false,
210 commands
211 };
212 };
213 function useAdminNavigationCommands(menuCommands) {
214 const commands = (0, import_element.useMemo)(() => {
215 return (menuCommands ?? []).map((menuCommand) => {
216 const label = (0, import_i18n.sprintf)(
217 /* translators: %s: menu label */
218 (0, import_i18n.__)("Go to: %s"),
219 menuCommand.label
220 );
221 return {
222 name: menuCommand.name,
223 label,
224 searchLabel: label,
225 category: "view",
226 callback: ({ close }) => {
227 document.location = menuCommand.url;
228 close();
229 }
230 };
231 });
232 }, [menuCommands]);
233 (0, import_commands.useCommands)(commands);
234 (0, import_commands.useCommandLoader)({
235 name: "core/view-site",
236 hook: getViewSiteCommand()
237 });
238 }
239
240 // packages/core-commands/build-module/site-editor-navigation-commands.mjs
241 var import_commands2 = __toESM(require_commands(), 1);
242 var import_i18n2 = __toESM(require_i18n(), 1);
243 var import_element2 = __toESM(require_element(), 1);
244 var import_data2 = __toESM(require_data(), 1);
245 var import_core_data2 = __toESM(require_core_data(), 1);
246 var import_router = __toESM(require_router(), 1);
247 var import_url = __toESM(require_url(), 1);
248 var import_compose = __toESM(require_compose(), 1);
249 var import_html_entities = __toESM(require_html_entities(), 1);
250
251 // packages/core-commands/build-module/lock-unlock.mjs
252 var import_private_apis = __toESM(require_private_apis(), 1);
253 var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
254 "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
255 "@wordpress/core-commands"
256 );
257
258 // packages/core-commands/build-module/utils/order-entity-records-by-search.mjs
259 function orderEntityRecordsBySearch(records = [], search = "") {
260 if (!Array.isArray(records) || !records.length) {
261 return [];
262 }
263 if (!search) {
264 return records;
265 }
266 const priority = [];
267 const nonPriority = [];
268 for (let i = 0; i < records.length; i++) {
269 const record = records[i];
270 if (record?.title?.raw?.toLowerCase()?.includes(search?.toLowerCase())) {
271 priority.push(record);
272 } else {
273 nonPriority.push(record);
274 }
275 }
276 return priority.concat(nonPriority);
277 }
278
279 // packages/core-commands/build-module/site-editor-navigation-commands.mjs
280 var { useHistory } = unlock(import_router.privateApis);
281 var icons = {
282 post: post_default,
283 page: page_default,
284 wp_template: layout_default,
285 wp_template_part: symbol_filled_default
286 };
287 function useDebouncedValue(value) {
288 const [debouncedValue, setDebouncedValue] = (0, import_element2.useState)("");
289 const debounced = (0, import_compose.useDebounce)(setDebouncedValue, 250);
290 (0, import_element2.useEffect)(() => {
291 debounced(value);
292 return () => debounced.cancel();
293 }, [debounced, value]);
294 return debouncedValue;
295 }
296 var ROUTE_MAPPING = {
297 "/template": "/templates",
298 "/pattern": "/patterns"
299 };
300 function getSiteEditorPage() {
301 return window.__experimentalExtensibleSiteEditor ? "admin.php?page=site-editor-v2" : "site-editor.php";
302 }
303 function mapRoute(path) {
304 if (!window.__experimentalExtensibleSiteEditor) {
305 return path;
306 }
307 for (const [oldPath, newPath] of Object.entries(ROUTE_MAPPING)) {
308 if (path === oldPath || path.startsWith(oldPath + "?")) {
309 if (path.includes("postType=wp_template_part")) {
310 return "/template-parts";
311 }
312 return path.replace(oldPath, newPath);
313 }
314 }
315 return path;
316 }
317 function isInSiteEditor() {
318 const path = (0, import_url.getPath)(window.location.href);
319 return path?.includes("site-editor.php") || path?.includes("page=site-editor-v2");
320 }
321 var getNavigationCommandLoaderPerPostType = (postType) => function useNavigationCommandLoader({ search }) {
322 const history = useHistory();
323 const { isBlockBasedTheme, canCreateTemplate } = (0, import_data2.useSelect)(
324 (select) => {
325 return {
326 isBlockBasedTheme: select(import_core_data2.store).getCurrentTheme()?.is_block_theme,
327 canCreateTemplate: select(import_core_data2.store).canUser("create", {
328 kind: "postType",
329 name: "wp_template"
330 })
331 };
332 },
333 []
334 );
335 const delayedSearch = useDebouncedValue(search);
336 const { records, isLoading } = (0, import_data2.useSelect)(
337 (select) => {
338 if (!delayedSearch) {
339 return {
340 isLoading: false
341 };
342 }
343 const query = {
344 search: delayedSearch,
345 per_page: 10,
346 orderby: "relevance",
347 status: [
348 "publish",
349 "future",
350 "draft",
351 "pending",
352 "private"
353 ]
354 };
355 return {
356 records: select(import_core_data2.store).getEntityRecords(
357 "postType",
358 postType,
359 query
360 ),
361 isLoading: !select(import_core_data2.store).hasFinishedResolution(
362 "getEntityRecords",
363 ["postType", postType, query]
364 )
365 };
366 },
367 [delayedSearch]
368 );
369 const commands = (0, import_element2.useMemo)(() => {
370 return (records ?? []).map((record) => {
371 const command = {
372 name: postType + "-" + record.id,
373 searchLabel: record.title?.rendered + " " + record.id,
374 label: record.title?.rendered ? (0, import_html_entities.decodeEntities)(record.title?.rendered) : (0, import_i18n2.__)("(no title)"),
375 icon: icons[postType],
376 category: "edit"
377 };
378 if (!canCreateTemplate || postType === "post" || postType === "page" && !isBlockBasedTheme) {
379 return {
380 ...command,
381 callback: ({ close }) => {
382 const args = {
383 post: record.id,
384 action: "edit"
385 };
386 const targetUrl = (0, import_url.addQueryArgs)("post.php", args);
387 document.location = targetUrl;
388 close();
389 }
390 };
391 }
392 const isSiteEditor = isInSiteEditor();
393 return {
394 ...command,
395 callback: ({ close }) => {
396 if (isSiteEditor) {
397 history.navigate(
398 `/${postType}/${record.id}?canvas=edit`
399 );
400 } else {
401 document.location = (0, import_url.addQueryArgs)(
402 getSiteEditorPage(),
403 {
404 p: `/${postType}/${record.id}`,
405 canvas: "edit"
406 }
407 );
408 }
409 close();
410 }
411 };
412 });
413 }, [canCreateTemplate, records, isBlockBasedTheme, history]);
414 return {
415 commands,
416 isLoading
417 };
418 };
419 var getNavigationCommandLoaderPerTemplate = (templateType) => function useNavigationCommandLoader({ search }) {
420 const history = useHistory();
421 const { isBlockBasedTheme, canCreateTemplate } = (0, import_data2.useSelect)(
422 (select) => {
423 return {
424 isBlockBasedTheme: select(import_core_data2.store).getCurrentTheme()?.is_block_theme,
425 canCreateTemplate: select(import_core_data2.store).canUser("create", {
426 kind: "postType",
427 name: templateType
428 })
429 };
430 },
431 []
432 );
433 const { records, isLoading } = (0, import_data2.useSelect)((select) => {
434 const { getEntityRecords } = select(import_core_data2.store);
435 const query = { per_page: -1 };
436 return {
437 records: getEntityRecords("postType", templateType, query),
438 isLoading: !select(import_core_data2.store).hasFinishedResolution(
439 "getEntityRecords",
440 ["postType", templateType, query]
441 )
442 };
443 }, []);
444 const orderedRecords = (0, import_element2.useMemo)(() => {
445 return orderEntityRecordsBySearch(records, search).slice(0, 10);
446 }, [records, search]);
447 const commands = (0, import_element2.useMemo)(() => {
448 if (!canCreateTemplate || !isBlockBasedTheme && !templateType === "wp_template_part") {
449 return [];
450 }
451 const isSiteEditor = (0, import_url.getPath)(window.location.href)?.includes(
452 "site-editor.php"
453 );
454 const result = [];
455 result.push(
456 ...orderedRecords.map((record) => {
457 return {
458 name: templateType + "-" + record.id,
459 searchLabel: record.title?.rendered + " " + record.id,
460 label: record.title?.rendered ? record.title?.rendered : (0, import_i18n2.__)("(no title)"),
461 icon: icons[templateType],
462 category: "edit",
463 callback: ({ close }) => {
464 if (isSiteEditor) {
465 history.navigate(
466 `/${templateType}/${record.id}?canvas=edit`
467 );
468 } else {
469 document.location = (0, import_url.addQueryArgs)(
470 getSiteEditorPage(),
471 {
472 p: `/${templateType}/${record.id}`,
473 canvas: "edit"
474 }
475 );
476 }
477 close();
478 }
479 };
480 })
481 );
482 if (orderedRecords?.length > 0 && templateType === "wp_template_part") {
483 result.push({
484 name: "core/edit-site/open-template-parts",
485 label: (0, import_i18n2.__)("Go to: Template parts"),
486 icon: symbol_filled_default,
487 category: "view",
488 callback: ({ close }) => {
489 if (isSiteEditor) {
490 history.navigate(
491 mapRoute(
492 "/pattern?postType=wp_template_part&categoryId=all-parts"
493 )
494 );
495 } else {
496 document.location = (0, import_url.addQueryArgs)(
497 getSiteEditorPage(),
498 {
499 p: mapRoute("/pattern"),
500 postType: "wp_template_part",
501 categoryId: "all-parts"
502 }
503 );
504 }
505 close();
506 }
507 });
508 }
509 return result;
510 }, [canCreateTemplate, isBlockBasedTheme, orderedRecords, history]);
511 return {
512 commands,
513 isLoading
514 };
515 };
516 var getSiteEditorBasicNavigationCommands = () => function useSiteEditorBasicNavigationCommands() {
517 const history = useHistory();
518 const isSiteEditor = isInSiteEditor();
519 const { isBlockBasedTheme, canCreateTemplate, canCreatePatterns } = (0, import_data2.useSelect)((select) => {
520 return {
521 isBlockBasedTheme: select(import_core_data2.store).getCurrentTheme()?.is_block_theme,
522 canCreateTemplate: select(import_core_data2.store).canUser("create", {
523 kind: "postType",
524 name: "wp_template"
525 }),
526 canCreatePatterns: select(import_core_data2.store).canUser("create", {
527 kind: "postType",
528 name: "wp_block"
529 })
530 };
531 }, []);
532 const commands = (0, import_element2.useMemo)(() => {
533 const result = [];
534 if (canCreateTemplate && isBlockBasedTheme) {
535 result.push({
536 name: "core/edit-site/open-styles",
537 label: (0, import_i18n2.__)("Go to: Styles"),
538 icon: styles_default,
539 category: "view",
540 callback: ({ close }) => {
541 if (isSiteEditor) {
542 history.navigate("/styles");
543 } else {
544 document.location = (0, import_url.addQueryArgs)(
545 getSiteEditorPage(),
546 {
547 p: "/styles"
548 }
549 );
550 }
551 close();
552 }
553 });
554 result.push({
555 name: "core/edit-site/open-navigation",
556 label: (0, import_i18n2.__)("Go to: Navigation"),
557 icon: navigation_default,
558 category: "view",
559 callback: ({ close }) => {
560 if (isSiteEditor) {
561 history.navigate("/navigation");
562 } else {
563 document.location = (0, import_url.addQueryArgs)(
564 getSiteEditorPage(),
565 {
566 p: "/navigation"
567 }
568 );
569 }
570 close();
571 }
572 });
573 result.push({
574 name: "core/edit-site/open-templates",
575 label: (0, import_i18n2.__)("Go to: Templates"),
576 icon: layout_default,
577 category: "view",
578 callback: ({ close }) => {
579 if (isSiteEditor) {
580 history.navigate(mapRoute("/template"));
581 } else {
582 document.location = (0, import_url.addQueryArgs)(
583 getSiteEditorPage(),
584 {
585 p: mapRoute("/template")
586 }
587 );
588 }
589 close();
590 }
591 });
592 }
593 if (canCreatePatterns) {
594 result.push({
595 name: "core/edit-site/open-patterns",
596 label: (0, import_i18n2.__)("Go to: Patterns"),
597 icon: symbol_default,
598 category: "view",
599 callback: ({ close }) => {
600 if (canCreateTemplate) {
601 if (isSiteEditor) {
602 history.navigate(mapRoute("/pattern"));
603 } else {
604 document.location = (0, import_url.addQueryArgs)(
605 getSiteEditorPage(),
606 {
607 p: mapRoute("/pattern")
608 }
609 );
610 }
611 close();
612 } else {
613 document.location.href = "edit.php?post_type=wp_block";
614 }
615 }
616 });
617 }
618 return result;
619 }, [
620 history,
621 isSiteEditor,
622 canCreateTemplate,
623 canCreatePatterns,
624 isBlockBasedTheme
625 ]);
626 return {
627 commands,
628 isLoading: false
629 };
630 };
631 var getGlobalStylesOpenCssCommands = () => function useGlobalStylesOpenCssCommands() {
632 const history = useHistory();
633 const isSiteEditor = isInSiteEditor();
634 const { canEditCSS, isBlockBasedTheme } = (0, import_data2.useSelect)((select) => {
635 const {
636 getEntityRecord,
637 __experimentalGetCurrentGlobalStylesId,
638 getCurrentTheme
639 } = select(import_core_data2.store);
640 const globalStylesId = __experimentalGetCurrentGlobalStylesId();
641 const globalStyles = globalStylesId ? getEntityRecord("root", "globalStyles", globalStylesId) : void 0;
642 return {
643 canEditCSS: !!globalStyles?._links?.["wp:action-edit-css"],
644 isBlockBasedTheme: getCurrentTheme()?.is_block_theme
645 };
646 }, []);
647 const commands = (0, import_element2.useMemo)(() => {
648 if (!canEditCSS || !isBlockBasedTheme) {
649 return [];
650 }
651 return [
652 {
653 name: "core/open-styles-css",
654 label: (0, import_i18n2.__)("Open custom CSS"),
655 icon: brush_default,
656 category: "view",
657 callback: ({ close }) => {
658 close();
659 if (isSiteEditor) {
660 history.navigate("/styles?section=/css");
661 } else {
662 document.location = (0, import_url.addQueryArgs)(
663 getSiteEditorPage(),
664 {
665 p: "/styles",
666 section: "/css"
667 }
668 );
669 }
670 }
671 }
672 ];
673 }, [history, canEditCSS, isSiteEditor, isBlockBasedTheme]);
674 return {
675 isLoading: false,
676 commands
677 };
678 };
679 function useSiteEditorNavigationCommands(isNetworkAdmin) {
680 (0, import_commands2.useCommandLoader)({
681 name: "core/edit-site/navigate-pages",
682 hook: getNavigationCommandLoaderPerPostType("page"),
683 disabled: isNetworkAdmin
684 });
685 (0, import_commands2.useCommandLoader)({
686 name: "core/edit-site/navigate-posts",
687 hook: getNavigationCommandLoaderPerPostType("post"),
688 disabled: isNetworkAdmin
689 });
690 (0, import_commands2.useCommandLoader)({
691 name: "core/edit-site/navigate-templates",
692 hook: getNavigationCommandLoaderPerTemplate("wp_template"),
693 disabled: isNetworkAdmin
694 });
695 (0, import_commands2.useCommandLoader)({
696 name: "core/edit-site/navigate-template-parts",
697 hook: getNavigationCommandLoaderPerTemplate("wp_template_part"),
698 disabled: isNetworkAdmin
699 });
700 (0, import_commands2.useCommandLoader)({
701 name: "core/edit-site/basic-navigation",
702 hook: getSiteEditorBasicNavigationCommands(),
703 context: "site-editor",
704 disabled: isNetworkAdmin
705 });
706 (0, import_commands2.useCommandLoader)({
707 name: "core/edit-site/global-styles-css",
708 hook: getGlobalStylesOpenCssCommands(),
709 disabled: isNetworkAdmin
710 });
711 }
712
713 // packages/core-commands/build-module/private-apis.mjs
714 function useCommands2() {
715 useAdminNavigationCommands();
716 useSiteEditorNavigationCommands();
717 }
718 var privateApis = {};
719 lock(privateApis, {
720 useCommands: useCommands2
721 });
722
723 // packages/core-commands/build-module/index.mjs
724 var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1);
725 var { RouterProvider } = unlock(import_router2.privateApis);
726 function CommandPalette({ settings }) {
727 const { menu_commands: menuCommands, is_network_admin: isNetworkAdmin } = settings;
728 useAdminNavigationCommands(menuCommands);
729 useSiteEditorNavigationCommands(isNetworkAdmin);
730 return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(RouterProvider, { pathArg: "p", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_commands3.CommandMenu, {}) });
731 }
732 function initializeCommandPalette(settings) {
733 const root = document.createElement("div");
734 document.body.appendChild(root);
735 (0, import_element3.createRoot)(root).render(
736 /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_element3.StrictMode, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(CommandPalette, { settings }) })
737 );
738 }
739 return __toCommonJS(index_exports);
740 })();
741 //# sourceMappingURL=index.js.map
742