@wordpress/edit-site 6.33.1 → 6.33.3-next.36001005c.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/build/components/dataviews-actions/index.js +1 -1
  2. package/build/components/dataviews-actions/index.js.map +2 -2
  3. package/build/components/global-styles-renderer/index.js +2 -4
  4. package/build/components/global-styles-renderer/index.js.map +3 -3
  5. package/build/components/page-templates/fields.js +13 -2
  6. package/build/components/page-templates/fields.js.map +2 -2
  7. package/build/components/page-templates/index.js +7 -3
  8. package/build/components/page-templates/index.js.map +2 -2
  9. package/build/components/revisions/index.js +2 -2
  10. package/build/components/revisions/index.js.map +2 -2
  11. package/build/components/style-book/index.js +24 -19
  12. package/build/components/style-book/index.js.map +2 -2
  13. package/build/hooks/use-global-styles-output.js +77 -0
  14. package/build/hooks/use-global-styles-output.js.map +7 -0
  15. package/build-module/components/dataviews-actions/index.js +1 -1
  16. package/build-module/components/dataviews-actions/index.js.map +2 -2
  17. package/build-module/components/global-styles-renderer/index.js +1 -3
  18. package/build-module/components/global-styles-renderer/index.js.map +2 -2
  19. package/build-module/components/page-templates/fields.js +14 -3
  20. package/build-module/components/page-templates/fields.js.map +2 -2
  21. package/build-module/components/page-templates/index.js +7 -3
  22. package/build-module/components/page-templates/index.js.map +2 -2
  23. package/build-module/components/revisions/index.js +1 -1
  24. package/build-module/components/revisions/index.js.map +2 -2
  25. package/build-module/components/style-book/index.js +22 -17
  26. package/build-module/components/style-book/index.js.map +2 -2
  27. package/build-module/hooks/use-global-styles-output.js +52 -0
  28. package/build-module/hooks/use-global-styles-output.js.map +7 -0
  29. package/build-style/posts-rtl.css +15 -16
  30. package/build-style/posts.css +15 -16
  31. package/build-style/style-rtl.css +25 -26
  32. package/build-style/style.css +25 -26
  33. package/package.json +45 -44
  34. package/src/components/dataviews-actions/index.js +1 -0
  35. package/src/components/global-styles/font-library-modal/style.scss +3 -3
  36. package/src/components/global-styles/style.scss +1 -1
  37. package/src/components/global-styles-renderer/index.js +1 -4
  38. package/src/components/global-styles-sidebar/style.scss +2 -2
  39. package/src/components/page-templates/fields.js +15 -6
  40. package/src/components/page-templates/index.js +19 -9
  41. package/src/components/revisions/index.js +1 -1
  42. package/src/components/sidebar-navigation-screen/style.scss +1 -1
  43. package/src/components/sidebar-navigation-screen-patterns/style.scss +1 -1
  44. package/src/components/site-hub/style.scss +1 -1
  45. package/src/components/style-book/index.js +26 -19
  46. package/src/hooks/use-global-styles-output.js +80 -0
  47. package/tsconfig.json +1 -0
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var use_global_styles_output_exports = {};
20
+ __export(use_global_styles_output_exports, {
21
+ useGlobalStylesOutput: () => useGlobalStylesOutput,
22
+ useGlobalStylesOutputWithConfig: () => useGlobalStylesOutputWithConfig
23
+ });
24
+ module.exports = __toCommonJS(use_global_styles_output_exports);
25
+ var import_blocks = require("@wordpress/blocks");
26
+ var import_data = require("@wordpress/data");
27
+ var import_element = require("@wordpress/element");
28
+ var import_global_styles_engine = require("@wordpress/global-styles-engine");
29
+ var import_block_editor = require("@wordpress/block-editor");
30
+ var import_store = require("../store");
31
+ var import_lock_unlock = require("../lock-unlock");
32
+ const { GlobalStylesContext, useGlobalSetting } = (0, import_lock_unlock.unlock)(
33
+ import_block_editor.privateApis
34
+ );
35
+ function useGlobalStylesOutputWithConfig(mergedConfig = {}, disableRootPadding = false) {
36
+ const [blockGap] = useGlobalSetting("spacing.blockGap");
37
+ const hasBlockGapSupport = blockGap !== null;
38
+ const hasFallbackGapSupport = !hasBlockGapSupport;
39
+ const { disableLayoutStyles, getBlockStyles } = (0, import_data.useSelect)((select) => {
40
+ const { getSettings } = select(import_store.store);
41
+ const { getBlockStyles: getBlockStylesSelector } = select(import_blocks.store);
42
+ return {
43
+ disableLayoutStyles: !!getSettings()?.disableLayoutStyles,
44
+ getBlockStyles: getBlockStylesSelector
45
+ };
46
+ }, []);
47
+ return (0, import_element.useMemo)(() => {
48
+ if (!mergedConfig?.styles || !mergedConfig?.settings) {
49
+ return [[], {}];
50
+ }
51
+ const blockTypes = (0, import_blocks.getBlockTypes)();
52
+ return (0, import_global_styles_engine.generateGlobalStyles)(mergedConfig, blockTypes, {
53
+ hasBlockGapSupport,
54
+ hasFallbackGapSupport,
55
+ disableLayoutStyles,
56
+ disableRootPadding,
57
+ getBlockStyles
58
+ });
59
+ }, [
60
+ hasBlockGapSupport,
61
+ hasFallbackGapSupport,
62
+ mergedConfig,
63
+ disableLayoutStyles,
64
+ disableRootPadding,
65
+ getBlockStyles
66
+ ]);
67
+ }
68
+ function useGlobalStylesOutput(disableRootPadding = false) {
69
+ const { merged: mergedConfig } = (0, import_element.useContext)(GlobalStylesContext);
70
+ return useGlobalStylesOutputWithConfig(mergedConfig, disableRootPadding);
71
+ }
72
+ // Annotate the CommonJS export names for ESM import in node:
73
+ 0 && (module.exports = {
74
+ useGlobalStylesOutput,
75
+ useGlobalStylesOutputWithConfig
76
+ });
77
+ //# sourceMappingURL=use-global-styles-output.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/hooks/use-global-styles-output.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { getBlockTypes, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useMemo } from '@wordpress/element';\nimport { generateGlobalStyles } from '@wordpress/global-styles-engine';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../store';\nimport { unlock } from '../lock-unlock';\n\nconst { GlobalStylesContext, useGlobalSetting } = unlock(\n\tblockEditorPrivateApis\n);\n\n/**\n * Returns the global styles output based on the provided global styles config.\n *\n * @param {Object} mergedConfig The merged global styles config.\n * @param {boolean} disableRootPadding Disable root padding styles.\n *\n * @return {Array} Array of stylesheets and settings.\n */\nexport function useGlobalStylesOutputWithConfig(\n\tmergedConfig = {},\n\tdisableRootPadding = false\n) {\n\tconst [ blockGap ] = useGlobalSetting( 'spacing.blockGap' );\n\tconst hasBlockGapSupport = blockGap !== null;\n\tconst hasFallbackGapSupport = ! hasBlockGapSupport;\n\n\tconst { disableLayoutStyles, getBlockStyles } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( editSiteStore );\n\t\tconst { getBlockStyles: getBlockStylesSelector } =\n\t\t\tselect( blocksStore );\n\t\treturn {\n\t\t\tdisableLayoutStyles: !! getSettings()?.disableLayoutStyles,\n\t\t\tgetBlockStyles: getBlockStylesSelector,\n\t\t};\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\tif ( ! mergedConfig?.styles || ! mergedConfig?.settings ) {\n\t\t\treturn [ [], {} ];\n\t\t}\n\n\t\tconst blockTypes = getBlockTypes();\n\n\t\treturn generateGlobalStyles( mergedConfig, blockTypes, {\n\t\t\thasBlockGapSupport,\n\t\t\thasFallbackGapSupport,\n\t\t\tdisableLayoutStyles,\n\t\t\tdisableRootPadding,\n\t\t\tgetBlockStyles,\n\t\t} );\n\t}, [\n\t\thasBlockGapSupport,\n\t\thasFallbackGapSupport,\n\t\tmergedConfig,\n\t\tdisableLayoutStyles,\n\t\tdisableRootPadding,\n\t\tgetBlockStyles,\n\t] );\n}\n\n/**\n * Returns the global styles output based on the current state of global styles config loaded in the editor context.\n *\n * @param {boolean} disableRootPadding Disable root padding styles.\n *\n * @return {Array} Array of stylesheets and settings.\n */\nexport function useGlobalStylesOutput( disableRootPadding = false ) {\n\tconst { merged: mergedConfig } = useContext( GlobalStylesContext );\n\treturn useGlobalStylesOutputWithConfig( mergedConfig, disableRootPadding );\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,oBAAoD;AACpD,kBAA0B;AAC1B,qBAAoC;AACpC,kCAAqC;AACrC,0BAAsD;AAKtD,mBAAuC;AACvC,yBAAuB;AAEvB,MAAM,EAAE,qBAAqB,iBAAiB,QAAI;AAAA,EACjD,oBAAAA;AACD;AAUO,SAAS,gCACf,eAAe,CAAC,GAChB,qBAAqB,OACpB;AACD,QAAM,CAAE,QAAS,IAAI,iBAAkB,kBAAmB;AAC1D,QAAM,qBAAqB,aAAa;AACxC,QAAM,wBAAwB,CAAE;AAEhC,QAAM,EAAE,qBAAqB,eAAe,QAAI,uBAAW,CAAE,WAAY;AACxE,UAAM,EAAE,YAAY,IAAI,OAAQ,aAAAC,KAAc;AAC9C,UAAM,EAAE,gBAAgB,uBAAuB,IAC9C,OAAQ,cAAAC,KAAY;AACrB,WAAO;AAAA,MACN,qBAAqB,CAAC,CAAE,YAAY,GAAG;AAAA,MACvC,gBAAgB;AAAA,IACjB;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,aAAO,wBAAS,MAAM;AACrB,QAAK,CAAE,cAAc,UAAU,CAAE,cAAc,UAAW;AACzD,aAAO,CAAE,CAAC,GAAG,CAAC,CAAE;AAAA,IACjB;AAEA,UAAM,iBAAa,6BAAc;AAEjC,eAAO,kDAAsB,cAAc,YAAY;AAAA,MACtD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAE;AAAA,EACH,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AACH;AASO,SAAS,sBAAuB,qBAAqB,OAAQ;AACnE,QAAM,EAAE,QAAQ,aAAa,QAAI,2BAAY,mBAAoB;AACjE,SAAO,gCAAiC,cAAc,kBAAmB;AAC1E;",
6
+ "names": ["blockEditorPrivateApis", "editSiteStore", "blocksStore"]
7
+ }
@@ -22,7 +22,7 @@ const useSetActiveTemplateAction = () => {
22
22
  isPrimary: true,
23
23
  icon: pencil,
24
24
  isEligible(item) {
25
- return !(item.slug === "index" && item.source === "theme") && item.theme === activeTheme.stylesheet;
25
+ return !item._isCustom && !(item.slug === "index" && item.source === "theme") && item.theme === activeTheme.stylesheet;
26
26
  },
27
27
  async callback(items) {
28
28
  const deactivate = items.some((item) => item._isActive);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/dataviews-actions/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { pencil } from '@wordpress/icons';\nimport { useMemo } from '@wordpress/element';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { PATTERN_TYPES } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport const useSetActiveTemplateAction = () => {\n\tconst activeTheme = useSelect( ( select ) =>\n\t\tselect( coreStore ).getCurrentTheme()\n\t);\n\tconst { getEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'set-active-template',\n\t\t\tlabel( items ) {\n\t\t\t\treturn items.some( ( item ) => item._isActive )\n\t\t\t\t\t? __( 'Deactivate' )\n\t\t\t\t\t: __( 'Activate' );\n\t\t\t},\n\t\t\tisPrimary: true,\n\t\t\ticon: pencil,\n\t\t\tisEligible( item ) {\n\t\t\t\treturn (\n\t\t\t\t\t! ( item.slug === 'index' && item.source === 'theme' ) &&\n\t\t\t\t\titem.theme === activeTheme.stylesheet\n\t\t\t\t);\n\t\t\t},\n\t\t\tasync callback( items ) {\n\t\t\t\tconst deactivate = items.some( ( item ) => item._isActive );\n\t\t\t\t// current active templates\n\t\t\t\tconst activeTemplates = {\n\t\t\t\t\t...( ( await getEntityRecord( 'root', 'site' )\n\t\t\t\t\t\t.active_templates ) ?? {} ),\n\t\t\t\t};\n\t\t\t\tfor ( const item of items ) {\n\t\t\t\t\tif ( deactivate ) {\n\t\t\t\t\t\tif ( item.source === 'theme' ) {\n\t\t\t\t\t\t\tactiveTemplates[ item.slug ] = false;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdelete activeTemplates[ item.slug ];\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tactiveTemplates[ item.slug ] = item.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tawait editEntityRecord( 'root', 'site', undefined, {\n\t\t\t\t\tactive_templates: activeTemplates,\n\t\t\t\t} );\n\t\t\t\tawait saveEditedEntityRecord( 'root', 'site' );\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\teditEntityRecord,\n\t\t\tsaveEditedEntityRecord,\n\t\t\tgetEntityRecord,\n\t\t\tactiveTheme,\n\t\t]\n\t);\n};\n\nexport const useEditPostAction = () => {\n\tconst history = useHistory();\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'edit-post',\n\t\t\tlabel: __( 'Edit' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: pencil,\n\t\t\tisEligible( post ) {\n\t\t\t\tif ( post.status === 'trash' ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// It's eligible for all post types except theme patterns.\n\t\t\t\treturn post.type !== PATTERN_TYPES.theme;\n\t\t\t},\n\t\t\tcallback( items ) {\n\t\t\t\tconst post = items[ 0 ];\n\t\t\t\thistory.navigate( `/${ post.type }/${ post.id }?canvas=edit` );\n\t\t\t},\n\t\t} ),\n\t\t[ history ]\n\t);\n};\n"],
5
- "mappings": "AAGA,SAAS,UAAU;AACnB,SAAS,cAAc;AACvB,SAAS,eAAe;AACxB,SAAS,eAAe,yBAAyB;AACjD,SAAS,aAAa,iBAAiB;AACvC,SAAS,SAAS,iBAAiB;AAKnC,SAAS,qBAAqB;AAC9B,SAAS,cAAc;AAEvB,MAAM,EAAE,WAAW,IAAI,OAAQ,iBAAkB;AAE1C,MAAM,6BAA6B,MAAM;AAC/C,QAAM,cAAc;AAAA,IAAW,CAAE,WAChC,OAAQ,SAAU,EAAE,gBAAgB;AAAA,EACrC;AACA,QAAM,EAAE,gBAAgB,IAAI,UAAW,SAAU;AACjD,QAAM,EAAE,kBAAkB,uBAAuB,IAChD,YAAa,SAAU;AACxB,SAAO;AAAA,IACN,OAAQ;AAAA,MACP,IAAI;AAAA,MACJ,MAAO,OAAQ;AACd,eAAO,MAAM,KAAM,CAAE,SAAU,KAAK,SAAU,IAC3C,GAAI,YAAa,IACjB,GAAI,UAAW;AAAA,MACnB;AAAA,MACA,WAAW;AAAA,MACX,MAAM;AAAA,MACN,WAAY,MAAO;AAClB,eACC,EAAI,KAAK,SAAS,WAAW,KAAK,WAAW,YAC7C,KAAK,UAAU,YAAY;AAAA,MAE7B;AAAA,MACA,MAAM,SAAU,OAAQ;AACvB,cAAM,aAAa,MAAM,KAAM,CAAE,SAAU,KAAK,SAAU;AAE1D,cAAM,kBAAkB;AAAA,UACvB,GAAO,MAAM,gBAAiB,QAAQ,MAAO,EAC3C,oBAAsB,CAAC;AAAA,QAC1B;AACA,mBAAY,QAAQ,OAAQ;AAC3B,cAAK,YAAa;AACjB,gBAAK,KAAK,WAAW,SAAU;AAC9B,8BAAiB,KAAK,IAAK,IAAI;AAAA,YAChC,OAAO;AACN,qBAAO,gBAAiB,KAAK,IAAK;AAAA,YACnC;AAAA,UACD,OAAO;AACN,4BAAiB,KAAK,IAAK,IAAI,KAAK;AAAA,UACrC;AAAA,QACD;AACA,cAAM,iBAAkB,QAAQ,QAAQ,QAAW;AAAA,UAClD,kBAAkB;AAAA,QACnB,CAAE;AACF,cAAM,uBAAwB,QAAQ,MAAO;AAAA,MAC9C;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,oBAAoB,MAAM;AACtC,QAAM,UAAU,WAAW;AAC3B,SAAO;AAAA,IACN,OAAQ;AAAA,MACP,IAAI;AAAA,MACJ,OAAO,GAAI,MAAO;AAAA,MAClB,WAAW;AAAA,MACX,MAAM;AAAA,MACN,WAAY,MAAO;AAClB,YAAK,KAAK,WAAW,SAAU;AAC9B,iBAAO;AAAA,QACR;AAEA,eAAO,KAAK,SAAS,cAAc;AAAA,MACpC;AAAA,MACA,SAAU,OAAQ;AACjB,cAAM,OAAO,MAAO,CAAE;AACtB,gBAAQ,SAAU,IAAK,KAAK,IAAK,IAAK,KAAK,EAAG,cAAe;AAAA,MAC9D;AAAA,IACD;AAAA,IACA,CAAE,OAAQ;AAAA,EACX;AACD;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { pencil } from '@wordpress/icons';\nimport { useMemo } from '@wordpress/element';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { PATTERN_TYPES } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport const useSetActiveTemplateAction = () => {\n\tconst activeTheme = useSelect( ( select ) =>\n\t\tselect( coreStore ).getCurrentTheme()\n\t);\n\tconst { getEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'set-active-template',\n\t\t\tlabel( items ) {\n\t\t\t\treturn items.some( ( item ) => item._isActive )\n\t\t\t\t\t? __( 'Deactivate' )\n\t\t\t\t\t: __( 'Activate' );\n\t\t\t},\n\t\t\tisPrimary: true,\n\t\t\ticon: pencil,\n\t\t\tisEligible( item ) {\n\t\t\t\treturn (\n\t\t\t\t\t! item._isCustom &&\n\t\t\t\t\t! ( item.slug === 'index' && item.source === 'theme' ) &&\n\t\t\t\t\titem.theme === activeTheme.stylesheet\n\t\t\t\t);\n\t\t\t},\n\t\t\tasync callback( items ) {\n\t\t\t\tconst deactivate = items.some( ( item ) => item._isActive );\n\t\t\t\t// current active templates\n\t\t\t\tconst activeTemplates = {\n\t\t\t\t\t...( ( await getEntityRecord( 'root', 'site' )\n\t\t\t\t\t\t.active_templates ) ?? {} ),\n\t\t\t\t};\n\t\t\t\tfor ( const item of items ) {\n\t\t\t\t\tif ( deactivate ) {\n\t\t\t\t\t\tif ( item.source === 'theme' ) {\n\t\t\t\t\t\t\tactiveTemplates[ item.slug ] = false;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdelete activeTemplates[ item.slug ];\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tactiveTemplates[ item.slug ] = item.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tawait editEntityRecord( 'root', 'site', undefined, {\n\t\t\t\t\tactive_templates: activeTemplates,\n\t\t\t\t} );\n\t\t\t\tawait saveEditedEntityRecord( 'root', 'site' );\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\teditEntityRecord,\n\t\t\tsaveEditedEntityRecord,\n\t\t\tgetEntityRecord,\n\t\t\tactiveTheme,\n\t\t]\n\t);\n};\n\nexport const useEditPostAction = () => {\n\tconst history = useHistory();\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'edit-post',\n\t\t\tlabel: __( 'Edit' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: pencil,\n\t\t\tisEligible( post ) {\n\t\t\t\tif ( post.status === 'trash' ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// It's eligible for all post types except theme patterns.\n\t\t\t\treturn post.type !== PATTERN_TYPES.theme;\n\t\t\t},\n\t\t\tcallback( items ) {\n\t\t\t\tconst post = items[ 0 ];\n\t\t\t\thistory.navigate( `/${ post.type }/${ post.id }?canvas=edit` );\n\t\t\t},\n\t\t} ),\n\t\t[ history ]\n\t);\n};\n"],
5
+ "mappings": "AAGA,SAAS,UAAU;AACnB,SAAS,cAAc;AACvB,SAAS,eAAe;AACxB,SAAS,eAAe,yBAAyB;AACjD,SAAS,aAAa,iBAAiB;AACvC,SAAS,SAAS,iBAAiB;AAKnC,SAAS,qBAAqB;AAC9B,SAAS,cAAc;AAEvB,MAAM,EAAE,WAAW,IAAI,OAAQ,iBAAkB;AAE1C,MAAM,6BAA6B,MAAM;AAC/C,QAAM,cAAc;AAAA,IAAW,CAAE,WAChC,OAAQ,SAAU,EAAE,gBAAgB;AAAA,EACrC;AACA,QAAM,EAAE,gBAAgB,IAAI,UAAW,SAAU;AACjD,QAAM,EAAE,kBAAkB,uBAAuB,IAChD,YAAa,SAAU;AACxB,SAAO;AAAA,IACN,OAAQ;AAAA,MACP,IAAI;AAAA,MACJ,MAAO,OAAQ;AACd,eAAO,MAAM,KAAM,CAAE,SAAU,KAAK,SAAU,IAC3C,GAAI,YAAa,IACjB,GAAI,UAAW;AAAA,MACnB;AAAA,MACA,WAAW;AAAA,MACX,MAAM;AAAA,MACN,WAAY,MAAO;AAClB,eACC,CAAE,KAAK,aACP,EAAI,KAAK,SAAS,WAAW,KAAK,WAAW,YAC7C,KAAK,UAAU,YAAY;AAAA,MAE7B;AAAA,MACA,MAAM,SAAU,OAAQ;AACvB,cAAM,aAAa,MAAM,KAAM,CAAE,SAAU,KAAK,SAAU;AAE1D,cAAM,kBAAkB;AAAA,UACvB,GAAO,MAAM,gBAAiB,QAAQ,MAAO,EAC3C,oBAAsB,CAAC;AAAA,QAC1B;AACA,mBAAY,QAAQ,OAAQ;AAC3B,cAAK,YAAa;AACjB,gBAAK,KAAK,WAAW,SAAU;AAC9B,8BAAiB,KAAK,IAAK,IAAI;AAAA,YAChC,OAAO;AACN,qBAAO,gBAAiB,KAAK,IAAK;AAAA,YACnC;AAAA,UACD,OAAO;AACN,4BAAiB,KAAK,IAAK,IAAI,KAAK;AAAA,UACrC;AAAA,QACD;AACA,cAAM,iBAAkB,QAAQ,QAAQ,QAAW;AAAA,UAClD,kBAAkB;AAAA,QACnB,CAAE;AACF,cAAM,uBAAwB,QAAQ,MAAO;AAAA,MAC9C;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,oBAAoB,MAAM;AACtC,QAAM,UAAU,WAAW;AAC3B,SAAO;AAAA,IACN,OAAQ;AAAA,MACP,IAAI;AAAA,MACJ,OAAO,GAAI,MAAO;AAAA,MAClB,WAAW;AAAA,MACX,MAAM;AAAA,MACN,WAAY,MAAO;AAClB,YAAK,KAAK,WAAW,SAAU;AAC9B,iBAAO;AAAA,QACR;AAEA,eAAO,KAAK,SAAS,cAAc;AAAA,MACpC;AAAA,MACA,SAAU,OAAQ;AACjB,cAAM,OAAO,MAAO,CAAE;AACtB,gBAAQ,SAAU,IAAK,KAAK,IAAK,IAAK,KAAK,EAAG,cAAe;AAAA,MAC9D;AAAA,IACD;AAAA,IACA,CAAE,OAAQ;AAAA,EACX;AACD;",
6
6
  "names": []
7
7
  }
@@ -1,9 +1,7 @@
1
1
  import { useEffect } from "@wordpress/element";
2
2
  import { useSelect, useDispatch } from "@wordpress/data";
3
- import { privateApis as blockEditorPrivateApis } from "@wordpress/block-editor";
4
3
  import { store as editSiteStore } from "../../store";
5
- import { unlock } from "../../lock-unlock";
6
- const { useGlobalStylesOutput } = unlock(blockEditorPrivateApis);
4
+ import { useGlobalStylesOutput } from "../../hooks/use-global-styles-output";
7
5
  function useGlobalStylesRenderer(disableRootPadding) {
8
6
  const [styles, settings] = useGlobalStylesOutput(disableRootPadding);
9
7
  const { getSettings } = useSelect(editSiteStore);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/global-styles-renderer/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalStylesOutput } = unlock( blockEditorPrivateApis );\n\nfunction useGlobalStylesRenderer( disableRootPadding ) {\n\tconst [ styles, settings ] = useGlobalStylesOutput( disableRootPadding );\n\tconst { getSettings } = useSelect( editSiteStore );\n\tconst { updateSettings } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( ! styles || ! settings ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentStoreSettings = getSettings();\n\t\tconst nonGlobalStyles = Object.values(\n\t\t\tcurrentStoreSettings.styles ?? []\n\t\t).filter( ( style ) => ! style.isGlobalStyles );\n\t\tupdateSettings( {\n\t\t\t...currentStoreSettings,\n\t\t\tstyles: [ ...nonGlobalStyles, ...styles ],\n\t\t\t__experimentalFeatures: settings,\n\t\t} );\n\t}, [ styles, settings, updateSettings, getSettings ] );\n}\n\nexport function GlobalStylesRenderer( { disableRootPadding } ) {\n\tuseGlobalStylesRenderer( disableRootPadding );\n\n\treturn null;\n}\n"],
5
- "mappings": "AAGA,SAAS,iBAAiB;AAC1B,SAAS,WAAW,mBAAmB;AACvC,SAAS,eAAe,8BAA8B;AAKtD,SAAS,SAAS,qBAAqB;AACvC,SAAS,cAAc;AAEvB,MAAM,EAAE,sBAAsB,IAAI,OAAQ,sBAAuB;AAEjE,SAAS,wBAAyB,oBAAqB;AACtD,QAAM,CAAE,QAAQ,QAAS,IAAI,sBAAuB,kBAAmB;AACvE,QAAM,EAAE,YAAY,IAAI,UAAW,aAAc;AACjD,QAAM,EAAE,eAAe,IAAI,YAAa,aAAc;AAEtD,YAAW,MAAM;AAChB,QAAK,CAAE,UAAU,CAAE,UAAW;AAC7B;AAAA,IACD;AAEA,UAAM,uBAAuB,YAAY;AACzC,UAAM,kBAAkB,OAAO;AAAA,MAC9B,qBAAqB,UAAU,CAAC;AAAA,IACjC,EAAE,OAAQ,CAAE,UAAW,CAAE,MAAM,cAAe;AAC9C,mBAAgB;AAAA,MACf,GAAG;AAAA,MACH,QAAQ,CAAE,GAAG,iBAAiB,GAAG,MAAO;AAAA,MACxC,wBAAwB;AAAA,IACzB,CAAE;AAAA,EACH,GAAG,CAAE,QAAQ,UAAU,gBAAgB,WAAY,CAAE;AACtD;AAEO,SAAS,qBAAsB,EAAE,mBAAmB,GAAI;AAC9D,0BAAyB,kBAAmB;AAE5C,SAAO;AACR;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { useGlobalStylesOutput } from '../../hooks/use-global-styles-output';\n\nfunction useGlobalStylesRenderer( disableRootPadding ) {\n\tconst [ styles, settings ] = useGlobalStylesOutput( disableRootPadding );\n\tconst { getSettings } = useSelect( editSiteStore );\n\tconst { updateSettings } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( ! styles || ! settings ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentStoreSettings = getSettings();\n\t\tconst nonGlobalStyles = Object.values(\n\t\t\tcurrentStoreSettings.styles ?? []\n\t\t).filter( ( style ) => ! style.isGlobalStyles );\n\t\tupdateSettings( {\n\t\t\t...currentStoreSettings,\n\t\t\tstyles: [ ...nonGlobalStyles, ...styles ],\n\t\t\t__experimentalFeatures: settings,\n\t\t} );\n\t}, [ styles, settings, updateSettings, getSettings ] );\n}\n\nexport function GlobalStylesRenderer( { disableRootPadding } ) {\n\tuseGlobalStylesRenderer( disableRootPadding );\n\n\treturn null;\n}\n"],
5
+ "mappings": "AAGA,SAAS,iBAAiB;AAC1B,SAAS,WAAW,mBAAmB;AAKvC,SAAS,SAAS,qBAAqB;AACvC,SAAS,6BAA6B;AAEtC,SAAS,wBAAyB,oBAAqB;AACtD,QAAM,CAAE,QAAQ,QAAS,IAAI,sBAAuB,kBAAmB;AACvE,QAAM,EAAE,YAAY,IAAI,UAAW,aAAc;AACjD,QAAM,EAAE,eAAe,IAAI,YAAa,aAAc;AAEtD,YAAW,MAAM;AAChB,QAAK,CAAE,UAAU,CAAE,UAAW;AAC7B;AAAA,IACD;AAEA,UAAM,uBAAuB,YAAY;AACzC,UAAM,kBAAkB,OAAO;AAAA,MAC9B,qBAAqB,UAAU,CAAC;AAAA,IACjC,EAAE,OAAQ,CAAE,UAAW,CAAE,MAAM,cAAe;AAC9C,mBAAgB;AAAA,MACf,GAAG;AAAA,MACH,QAAQ,CAAE,GAAG,iBAAiB,GAAG,MAAO;AAAA,MACxC,wBAAwB;AAAA,IACzB,CAAE;AAAA,EACH,GAAG,CAAE,QAAQ,UAAU,gBAAgB,WAAY,CAAE;AACtD;AAEO,SAAS,qBAAsB,EAAE,mBAAmB,GAAI;AAC9D,0BAAyB,kBAAmB;AAE5C,SAAO;AACR;",
6
6
  "names": []
7
7
  }
@@ -5,7 +5,7 @@ import {
5
5
  __experimentalHStack as HStack,
6
6
  privateApis as componentsPrivateApis
7
7
  } from "@wordpress/components";
8
- import { __ } from "@wordpress/i18n";
8
+ import { __, _x } from "@wordpress/i18n";
9
9
  import { useState, useMemo } from "@wordpress/element";
10
10
  import { decodeEntities } from "@wordpress/html-entities";
11
11
  import { parse } from "@wordpress/blocks";
@@ -117,6 +117,18 @@ const activeField = {
117
117
  id: "active",
118
118
  getValue: ({ item }) => item._isActive,
119
119
  render: function Render({ item }) {
120
+ if (item._isCustom) {
121
+ return /* @__PURE__ */ jsx(
122
+ Badge,
123
+ {
124
+ intent: "info",
125
+ title: __(
126
+ "Custom templates cannot be active nor inactive."
127
+ ),
128
+ children: __("N/A")
129
+ }
130
+ );
131
+ }
120
132
  const isActive = item._isActive;
121
133
  return /* @__PURE__ */ jsx(Badge, { intent: isActive ? "success" : "default", children: isActive ? __("Active") : __("Inactive") });
122
134
  }
@@ -146,8 +158,7 @@ const slugField = {
146
158
  const defaultTemplateType = defaultTemplateTypes.find(
147
159
  (type) => type.slug === item.slug
148
160
  );
149
- return defaultTemplateType?.title || // translators: %s is the slug of a custom template.
150
- __("Custom");
161
+ return defaultTemplateType?.title || _x("Custom", "template type");
151
162
  }
152
163
  };
153
164
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/page-templates/fields.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\t__experimentalHStack as HStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useMemo } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { parse } from '@wordpress/blocks';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { EditorProvider } from '@wordpress/editor';\nimport {\n\tprivateApis as corePrivateApis,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useAddedBy } from './hooks';\nimport { useDefaultTemplateTypes } from '../add-new-template/utils';\nimport usePatternSettings from '../page-patterns/use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\nconst { Badge } = unlock( componentsPrivateApis );\nconst { useEntityRecordsWithPermissions } = unlock( corePrivateApis );\n\nfunction useAllDefaultTemplateTypes() {\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst { records: staticRecords } = useEntityRecordsWithPermissions(\n\t\t'postType',\n\t\t'wp_registered_template',\n\t\t{ per_page: -1 }\n\t);\n\treturn [\n\t\t...defaultTemplateTypes,\n\t\t...staticRecords\n\t\t\t?.filter( ( record ) => ! record.is_custom )\n\t\t\t.map( ( record ) => {\n\t\t\t\treturn {\n\t\t\t\t\tslug: record.slug,\n\t\t\t\t\ttitle: record.title.rendered,\n\t\t\t\t\tdescription: record.description,\n\t\t\t\t};\n\t\t\t} ),\n\t];\n}\n\nfunction PreviewField( { item } ) {\n\tconst settings = usePatternSettings();\n\tconst [ backgroundColor = 'white' ] = useGlobalStyle( 'color.background' );\n\tconst blocks = useMemo( () => {\n\t\treturn parse( item.content.raw );\n\t}, [ item.content.raw ] );\n\n\tconst isEmpty = ! blocks?.length;\n\t// Wrap everything in a block editor provider to ensure 'styles' that are needed\n\t// for the previews are synced between the site editor store and the block editor store.\n\t// Additionally we need to have the `__experimentalBlockPatterns` setting in order to\n\t// render patterns inside the previews.\n\t// TODO: Same approach is used in the patterns list and it becomes obvious that some of\n\t// the block editor settings are needed in context where we don't have the block editor.\n\t// Explore how we can solve this in a better way.\n\treturn (\n\t\t<EditorProvider post={ item } settings={ settings }>\n\t\t\t<div\n\t\t\t\tclassName=\"page-templates-preview-field\"\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t{ isEmpty && __( 'Empty template' ) }\n\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t<BlockPreview.Async>\n\t\t\t\t\t\t<BlockPreview blocks={ blocks } />\n\t\t\t\t\t</BlockPreview.Async>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorProvider>\n\t);\n}\n\nexport const previewField = {\n\tlabel: __( 'Preview' ),\n\tid: 'preview',\n\trender: PreviewField,\n\tenableSorting: false,\n};\n\nexport const descriptionField = {\n\tlabel: __( 'Description' ),\n\tid: 'description',\n\trender: function RenderDescription( { item } ) {\n\t\tconst defaultTemplateTypes = useAllDefaultTemplateTypes();\n\t\tconst defaultTemplateType = defaultTemplateTypes.find(\n\t\t\t( type ) => type.slug === item.slug\n\t\t);\n\t\treturn item.description\n\t\t\t? decodeEntities( item.description )\n\t\t\t: defaultTemplateType?.description;\n\t},\n\tenableSorting: false,\n\tenableGlobalSearch: true,\n};\n\nfunction AuthorField( { item } ) {\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\tconst { text, icon, imageUrl } = useAddedBy( item.type, item.id );\n\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 0 }>\n\t\t\t{ imageUrl && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( 'page-templates-author-field__avatar', {\n\t\t\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<img\n\t\t\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\tsrc={ imageUrl }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ ! imageUrl && (\n\t\t\t\t<div className=\"page-templates-author-field__icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<span className=\"page-templates-author-field__name\">{ text }</span>\n\t\t</HStack>\n\t);\n}\n\nexport const authorField = {\n\tlabel: __( 'Author' ),\n\tid: 'author',\n\tgetValue: ( { item } ) => item.author_text ?? item.author,\n\trender: AuthorField,\n};\n\nexport const activeField = {\n\tlabel: __( 'Status' ),\n\tid: 'active',\n\tgetValue: ( { item } ) => item._isActive,\n\trender: function Render( { item } ) {\n\t\tconst isActive = item._isActive;\n\t\treturn (\n\t\t\t<Badge intent={ isActive ? 'success' : 'default' }>\n\t\t\t\t{ isActive ? __( 'Active' ) : __( 'Inactive' ) }\n\t\t\t</Badge>\n\t\t);\n\t},\n};\n\nexport const useThemeField = () => {\n\tconst activeTheme = useSelect( ( select ) =>\n\t\tselect( coreStore ).getCurrentTheme()\n\t);\n\treturn {\n\t\tlabel: __( 'Compatible Theme' ),\n\t\tid: 'theme',\n\t\tgetValue: ( { item } ) => item.theme,\n\t\trender: function Render( { item } ) {\n\t\t\tif ( item.theme === activeTheme.stylesheet ) {\n\t\t\t\treturn <Badge intent=\"success\">{ item.theme }</Badge>;\n\t\t\t}\n\t\t\treturn <Badge intent=\"error\">{ item.theme }</Badge>;\n\t\t},\n\t};\n};\n\nexport const slugField = {\n\tlabel: __( 'Template Type' ),\n\tid: 'slug',\n\tgetValue: ( { item } ) => item.slug,\n\trender: function Render( { item } ) {\n\t\tconst defaultTemplateTypes = useAllDefaultTemplateTypes();\n\t\tconst defaultTemplateType = defaultTemplateTypes.find(\n\t\t\t( type ) => type.slug === item.slug\n\t\t);\n\t\treturn (\n\t\t\tdefaultTemplateType?.title ||\n\t\t\t// translators: %s is the slug of a custom template.\n\t\t\t__( 'Custom' )\n\t\t);\n\t},\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\t__experimentalHStack as HStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useState, useMemo } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { parse } from '@wordpress/blocks';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { EditorProvider } from '@wordpress/editor';\nimport {\n\tprivateApis as corePrivateApis,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useAddedBy } from './hooks';\nimport { useDefaultTemplateTypes } from '../add-new-template/utils';\nimport usePatternSettings from '../page-patterns/use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\nconst { Badge } = unlock( componentsPrivateApis );\nconst { useEntityRecordsWithPermissions } = unlock( corePrivateApis );\n\nfunction useAllDefaultTemplateTypes() {\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst { records: staticRecords } = useEntityRecordsWithPermissions(\n\t\t'postType',\n\t\t'wp_registered_template',\n\t\t{ per_page: -1 }\n\t);\n\treturn [\n\t\t...defaultTemplateTypes,\n\t\t...staticRecords\n\t\t\t?.filter( ( record ) => ! record.is_custom )\n\t\t\t.map( ( record ) => {\n\t\t\t\treturn {\n\t\t\t\t\tslug: record.slug,\n\t\t\t\t\ttitle: record.title.rendered,\n\t\t\t\t\tdescription: record.description,\n\t\t\t\t};\n\t\t\t} ),\n\t];\n}\n\nfunction PreviewField( { item } ) {\n\tconst settings = usePatternSettings();\n\tconst [ backgroundColor = 'white' ] = useGlobalStyle( 'color.background' );\n\tconst blocks = useMemo( () => {\n\t\treturn parse( item.content.raw );\n\t}, [ item.content.raw ] );\n\n\tconst isEmpty = ! blocks?.length;\n\t// Wrap everything in a block editor provider to ensure 'styles' that are needed\n\t// for the previews are synced between the site editor store and the block editor store.\n\t// Additionally we need to have the `__experimentalBlockPatterns` setting in order to\n\t// render patterns inside the previews.\n\t// TODO: Same approach is used in the patterns list and it becomes obvious that some of\n\t// the block editor settings are needed in context where we don't have the block editor.\n\t// Explore how we can solve this in a better way.\n\treturn (\n\t\t<EditorProvider post={ item } settings={ settings }>\n\t\t\t<div\n\t\t\t\tclassName=\"page-templates-preview-field\"\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t{ isEmpty && __( 'Empty template' ) }\n\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t<BlockPreview.Async>\n\t\t\t\t\t\t<BlockPreview blocks={ blocks } />\n\t\t\t\t\t</BlockPreview.Async>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorProvider>\n\t);\n}\n\nexport const previewField = {\n\tlabel: __( 'Preview' ),\n\tid: 'preview',\n\trender: PreviewField,\n\tenableSorting: false,\n};\n\nexport const descriptionField = {\n\tlabel: __( 'Description' ),\n\tid: 'description',\n\trender: function RenderDescription( { item } ) {\n\t\tconst defaultTemplateTypes = useAllDefaultTemplateTypes();\n\t\tconst defaultTemplateType = defaultTemplateTypes.find(\n\t\t\t( type ) => type.slug === item.slug\n\t\t);\n\t\treturn item.description\n\t\t\t? decodeEntities( item.description )\n\t\t\t: defaultTemplateType?.description;\n\t},\n\tenableSorting: false,\n\tenableGlobalSearch: true,\n};\n\nfunction AuthorField( { item } ) {\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\tconst { text, icon, imageUrl } = useAddedBy( item.type, item.id );\n\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 0 }>\n\t\t\t{ imageUrl && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( 'page-templates-author-field__avatar', {\n\t\t\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<img\n\t\t\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\tsrc={ imageUrl }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ ! imageUrl && (\n\t\t\t\t<div className=\"page-templates-author-field__icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<span className=\"page-templates-author-field__name\">{ text }</span>\n\t\t</HStack>\n\t);\n}\n\nexport const authorField = {\n\tlabel: __( 'Author' ),\n\tid: 'author',\n\tgetValue: ( { item } ) => item.author_text ?? item.author,\n\trender: AuthorField,\n};\n\nexport const activeField = {\n\tlabel: __( 'Status' ),\n\tid: 'active',\n\tgetValue: ( { item } ) => item._isActive,\n\trender: function Render( { item } ) {\n\t\tif ( item._isCustom ) {\n\t\t\treturn (\n\t\t\t\t<Badge\n\t\t\t\t\tintent=\"info\"\n\t\t\t\t\ttitle={ __(\n\t\t\t\t\t\t'Custom templates cannot be active nor inactive.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'N/A' ) }\n\t\t\t\t</Badge>\n\t\t\t);\n\t\t}\n\n\t\tconst isActive = item._isActive;\n\t\treturn (\n\t\t\t<Badge intent={ isActive ? 'success' : 'default' }>\n\t\t\t\t{ isActive ? __( 'Active' ) : __( 'Inactive' ) }\n\t\t\t</Badge>\n\t\t);\n\t},\n};\n\nexport const useThemeField = () => {\n\tconst activeTheme = useSelect( ( select ) =>\n\t\tselect( coreStore ).getCurrentTheme()\n\t);\n\treturn {\n\t\tlabel: __( 'Compatible Theme' ),\n\t\tid: 'theme',\n\t\tgetValue: ( { item } ) => item.theme,\n\t\trender: function Render( { item } ) {\n\t\t\tif ( item.theme === activeTheme.stylesheet ) {\n\t\t\t\treturn <Badge intent=\"success\">{ item.theme }</Badge>;\n\t\t\t}\n\t\t\treturn <Badge intent=\"error\">{ item.theme }</Badge>;\n\t\t},\n\t};\n};\n\nexport const slugField = {\n\tlabel: __( 'Template Type' ),\n\tid: 'slug',\n\tgetValue: ( { item } ) => item.slug,\n\trender: function Render( { item } ) {\n\t\tconst defaultTemplateTypes = useAllDefaultTemplateTypes();\n\t\tconst defaultTemplateType = defaultTemplateTypes.find(\n\t\t\t( type ) => type.slug === item.slug\n\t\t);\n\t\treturn defaultTemplateType?.title || _x( 'Custom', 'template type' );\n\t},\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["Render"]
7
7
  }
@@ -62,11 +62,12 @@ function PageTemplates() {
62
62
  );
63
63
  }
64
64
  });
65
- const { activeTemplatesOption, activeTheme } = useSelect((select) => {
65
+ const { activeTemplatesOption, activeTheme, defaultTemplateTypes } = useSelect((select) => {
66
66
  const { getEntityRecord, getCurrentTheme } = select(coreStore);
67
67
  return {
68
68
  activeTemplatesOption: getEntityRecord("root", "site")?.active_templates,
69
- activeTheme: getCurrentTheme()
69
+ activeTheme: getCurrentTheme(),
70
+ defaultTemplateTypes: select(coreStore).getCurrentTheme()?.default_template_types
70
71
  };
71
72
  });
72
73
  const { records: userRecords, isResolving: isLoadingUserRecords } = useEntityRecordsWithPermissions("postType", TEMPLATE_POST_TYPE, {
@@ -126,9 +127,12 @@ function PageTemplates() {
126
127
  ...record,
127
128
  _isActive: activeTemplates.find(
128
129
  (template) => template.id === record.id
130
+ ),
131
+ _isCustom: record.is_custom || !record.meta?.is_wp_suggestion && !defaultTemplateTypes.find(
132
+ (type) => type.slug === record.slug
129
133
  )
130
134
  }));
131
- }, [_records, activeTemplates]);
135
+ }, [_records, activeTemplates, defaultTemplateTypes]);
132
136
  const users = useSelect(
133
137
  (select) => {
134
138
  const { getUser } = select(coreStore);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/page-templates/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Page } from '@wordpress/admin-ui';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, useMemo, useCallback } from '@wordpress/element';\nimport {\n\tprivateApis as corePrivateApis,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEvent } from '@wordpress/compose';\nimport { useView } from '@wordpress/views';\nimport { Button, Modal } from '@wordpress/components';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport AddNewTemplate from '../add-new-template';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tuseEditPostAction,\n\tuseSetActiveTemplateAction,\n} from '../dataviews-actions';\nimport {\n\tauthorField,\n\tdescriptionField,\n\tpreviewField,\n\tactiveField,\n\tslugField,\n\tuseThemeField,\n} from './fields';\nimport { defaultLayouts, getDefaultView } from './view-utils';\n\nconst { usePostActions, templateTitleField } = unlock( editorPrivateApis );\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\nconst { useEntityRecordsWithPermissions } = unlock( corePrivateApis );\n\nexport default function PageTemplates() {\n\tconst { path, query } = useLocation();\n\tconst { activeView = 'active', postId } = query;\n\tconst [ selection, setSelection ] = useState( [ postId ] );\n\tconst [ selectedRegisteredTemplate, setSelectedRegisteredTemplate ] =\n\t\tuseState( false );\n\tconst defaultView = useMemo( () => {\n\t\treturn getDefaultView( activeView );\n\t}, [ activeView ] );\n\tconst { view, updateView, isModified, resetToDefault } = useView( {\n\t\tkind: 'postType',\n\t\tname: TEMPLATE_POST_TYPE,\n\t\tslug: activeView,\n\t\tdefaultView,\n\t\tqueryParams: {\n\t\t\tpage: query.pageNumber,\n\t\t\tsearch: query.search,\n\t\t},\n\t\tonChangeQueryParams: ( newQueryParams ) => {\n\t\t\thistory.navigate(\n\t\t\t\taddQueryArgs( path, {\n\t\t\t\t\t...query,\n\t\t\t\t\tpageNumber: newQueryParams.page,\n\t\t\t\t\tsearch: newQueryParams.search || undefined,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t} );\n\n\tconst { activeTemplatesOption, activeTheme } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord, getCurrentTheme } = select( coreStore );\n\t\treturn {\n\t\t\tactiveTemplatesOption: getEntityRecord( 'root', 'site' )\n\t\t\t\t?.active_templates,\n\t\t\tactiveTheme: getCurrentTheme(),\n\t\t};\n\t} );\n\t// Todo: this will have to be better so that we're not fetching all the\n\t// records all the time. Active templates query will need to move server\n\t// side.\n\tconst { records: userRecords, isResolving: isLoadingUserRecords } =\n\t\tuseEntityRecordsWithPermissions( 'postType', TEMPLATE_POST_TYPE, {\n\t\t\tper_page: -1,\n\t\t\tcombinedTemplates: false,\n\t\t} );\n\tconst { records: staticRecords, isResolving: isLoadingStaticData } =\n\t\tuseEntityRecordsWithPermissions( 'postType', 'wp_registered_template', {\n\t\t\tper_page: -1,\n\t\t} );\n\n\tconst activeTemplates = useMemo( () => {\n\t\tconst _active = [ ...staticRecords ].filter(\n\t\t\t( record ) => ! record.is_custom\n\t\t);\n\t\tif ( activeTemplatesOption ) {\n\t\t\tfor ( const activeSlug in activeTemplatesOption ) {\n\t\t\t\tconst activeId = activeTemplatesOption[ activeSlug ];\n\t\t\t\tif ( activeId === false ) {\n\t\t\t\t\t// Remove the template from the array.\n\t\t\t\t\tconst index = _active.findIndex(\n\t\t\t\t\t\t( template ) => template.slug === activeSlug\n\t\t\t\t\t);\n\t\t\t\t\tif ( index !== -1 ) {\n\t\t\t\t\t\t_active.splice( index, 1 );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Replace the template in the array.\n\t\t\t\t\tconst template = userRecords.find(\n\t\t\t\t\t\t( userRecord ) =>\n\t\t\t\t\t\t\tuserRecord.id === activeId &&\n\t\t\t\t\t\t\tuserRecord.theme === activeTheme.stylesheet\n\t\t\t\t\t);\n\t\t\t\t\tif ( template ) {\n\t\t\t\t\t\tconst index = _active.findIndex(\n\t\t\t\t\t\t\t( { slug } ) => slug === template.slug\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( index !== -1 ) {\n\t\t\t\t\t\t\t_active[ index ] = template;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t_active.push( template );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn _active;\n\t}, [ userRecords, staticRecords, activeTemplatesOption, activeTheme ] );\n\n\tlet _records;\n\tlet isLoadingData;\n\tif ( activeView === 'active' ) {\n\t\t_records = activeTemplates;\n\t\tisLoadingData = isLoadingUserRecords || isLoadingStaticData;\n\t} else if ( activeView === 'user' ) {\n\t\t_records = userRecords;\n\t\tisLoadingData = isLoadingUserRecords;\n\t} else {\n\t\t_records = staticRecords;\n\t\tisLoadingData = isLoadingStaticData;\n\t}\n\n\tconst records = useMemo( () => {\n\t\treturn _records.map( ( record ) => ( {\n\t\t\t...record,\n\t\t\t_isActive: activeTemplates.find(\n\t\t\t\t( template ) => template.id === record.id\n\t\t\t),\n\t\t} ) );\n\t}, [ _records, activeTemplates ] );\n\n\tconst users = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUser } = select( coreStore );\n\t\t\treturn records.reduce( ( acc, record ) => {\n\t\t\t\tif ( record.author_text ) {\n\t\t\t\t\tif ( ! acc[ record.author_text ] ) {\n\t\t\t\t\t\tacc[ record.author_text ] = record.author_text;\n\t\t\t\t\t}\n\t\t\t\t} else if ( record.author ) {\n\t\t\t\t\tif ( ! acc[ record.author ] ) {\n\t\t\t\t\t\tacc[ record.author ] = getUser( record.author );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t}, {} );\n\t\t},\n\t\t[ records ]\n\t);\n\n\tconst history = useHistory();\n\tconst onChangeSelection = useCallback(\n\t\t( items ) => {\n\t\t\tsetSelection( items );\n\t\t\tif ( view?.type === 'list' ) {\n\t\t\t\thistory.navigate(\n\t\t\t\t\taddQueryArgs( path, {\n\t\t\t\t\t\tpostId: items.length === 1 ? items[ 0 ] : undefined,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ history, path, view?.type ]\n\t);\n\n\tconst themeField = useThemeField();\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\tpreviewField,\n\t\t\ttemplateTitleField,\n\t\t\tdescriptionField,\n\t\t\tactiveField,\n\t\t\tslugField,\n\t\t];\n\t\tif ( activeView === 'user' ) {\n\t\t\t_fields.push( themeField );\n\t\t}\n\t\tconst elements = [];\n\t\tfor ( const author in users ) {\n\t\t\telements.push( {\n\t\t\t\tvalue: users[ author ]?.id ?? author,\n\t\t\t\tlabel: users[ author ]?.name ?? author,\n\t\t\t} );\n\t\t}\n\t\t_fields.push( {\n\t\t\t...authorField,\n\t\t\telements,\n\t\t} );\n\t\treturn _fields;\n\t}, [ users, activeView, themeField ] );\n\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\treturn filterSortAndPaginate( records, view, fields );\n\t}, [ records, view, fields ] );\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst onActionPerformed = useCallback(\n\t\t( actionId, items ) => {\n\t\t\tswitch ( actionId ) {\n\t\t\t\tcase 'duplicate-post':\n\t\t\t\t\t{\n\t\t\t\t\t\tconst newItem = items[ 0 ];\n\t\t\t\t\t\tconst _title =\n\t\t\t\t\t\t\ttypeof newItem.title === 'string'\n\t\t\t\t\t\t\t\t? newItem.title\n\t\t\t\t\t\t\t\t: newItem.title?.rendered;\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Title of the created post or template, e.g: \"Hello world\".\n\t\t\t\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\t\t\t\tdecodeEntities( _title ) || __( '(no title)' )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'duplicate-post-action',\n\t\t\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tlabel: __( 'Edit' ),\n\t\t\t\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\t\t\t\thistory.navigate(\n\t\t\t\t\t\t\t\t\t\t\t\t`/${ newItem.type }/${ newItem.id }?canvas=edit`\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\t[ history, createSuccessNotice ]\n\t);\n\tconst postTypeActions = usePostActions( {\n\t\tpostType: TEMPLATE_POST_TYPE,\n\t\tcontext: 'list',\n\t\tonActionPerformed,\n\t} );\n\tconst editAction = useEditPostAction();\n\tconst setActiveTemplateAction = useSetActiveTemplateAction();\n\tconst actions = useMemo(\n\t\t() =>\n\t\t\tactiveView === 'user'\n\t\t\t\t? [ setActiveTemplateAction, editAction, ...postTypeActions ]\n\t\t\t\t: [ setActiveTemplateAction, ...postTypeActions ],\n\t\t[ postTypeActions, setActiveTemplateAction, editAction, activeView ]\n\t);\n\n\tconst onChangeView = useEvent( ( newView ) => {\n\t\tif ( newView.type !== view.type ) {\n\t\t\t// Retrigger the routing areas resolution.\n\t\t\thistory.invalidate();\n\t\t}\n\t\tupdateView( newView );\n\t} );\n\n\tconst duplicateAction = actions.find(\n\t\t( action ) => action.id === 'duplicate-post'\n\t);\n\n\treturn (\n\t\t<Page\n\t\t\tclassName=\"edit-site-page-templates\"\n\t\t\ttitle={ __( 'Templates' ) }\n\t\t\tactions={\n\t\t\t\t<>\n\t\t\t\t\t{ isModified && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tresetToDefault();\n\t\t\t\t\t\t\t\thistory.invalidate();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset view' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\t<AddNewTemplate />\n\t\t\t\t</>\n\t\t\t}\n\t\t>\n\t\t\t<DataViews\n\t\t\t\tkey={ activeView }\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\tfields={ fields }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tisLoading={ isLoadingData }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\tisItemClickable={ () => true }\n\t\t\t\tonClickItem={ ( item ) => {\n\t\t\t\t\tif ( item.type === 'wp_registered_template' ) {\n\t\t\t\t\t\tsetSelectedRegisteredTemplate( item );\n\t\t\t\t\t} else {\n\t\t\t\t\t\thistory.navigate(\n\t\t\t\t\t\t\t`/${ item.type }/${ item.id }?canvas=edit`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tselection={ selection }\n\t\t\t\tdefaultLayouts={ defaultLayouts }\n\t\t\t/>\n\t\t\t{ selectedRegisteredTemplate && duplicateAction && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Duplicate' ) }\n\t\t\t\t\tonRequestClose={ () => setSelectedRegisteredTemplate() }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t>\n\t\t\t\t\t<duplicateAction.RenderModal\n\t\t\t\t\t\titems={ [ selectedRegisteredTemplate ] }\n\t\t\t\t\t\tcloseModal={ () => setSelectedRegisteredTemplate() }\n\t\t\t\t\t\tonActionPerformed={ ( [ item ] ) => {\n\t\t\t\t\t\t\thistory.navigate(\n\t\t\t\t\t\t\t\t`/${ item.type }/${ item.id }?canvas=edit`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</Page>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Page } from '@wordpress/admin-ui';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, useMemo, useCallback } from '@wordpress/element';\nimport {\n\tprivateApis as corePrivateApis,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEvent } from '@wordpress/compose';\nimport { useView } from '@wordpress/views';\nimport { Button, Modal } from '@wordpress/components';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport AddNewTemplate from '../add-new-template';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tuseEditPostAction,\n\tuseSetActiveTemplateAction,\n} from '../dataviews-actions';\nimport {\n\tauthorField,\n\tdescriptionField,\n\tpreviewField,\n\tactiveField,\n\tslugField,\n\tuseThemeField,\n} from './fields';\nimport { defaultLayouts, getDefaultView } from './view-utils';\n\nconst { usePostActions, templateTitleField } = unlock( editorPrivateApis );\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\nconst { useEntityRecordsWithPermissions } = unlock( corePrivateApis );\n\nexport default function PageTemplates() {\n\tconst { path, query } = useLocation();\n\tconst { activeView = 'active', postId } = query;\n\tconst [ selection, setSelection ] = useState( [ postId ] );\n\tconst [ selectedRegisteredTemplate, setSelectedRegisteredTemplate ] =\n\t\tuseState( false );\n\tconst defaultView = useMemo( () => {\n\t\treturn getDefaultView( activeView );\n\t}, [ activeView ] );\n\tconst { view, updateView, isModified, resetToDefault } = useView( {\n\t\tkind: 'postType',\n\t\tname: TEMPLATE_POST_TYPE,\n\t\tslug: activeView,\n\t\tdefaultView,\n\t\tqueryParams: {\n\t\t\tpage: query.pageNumber,\n\t\t\tsearch: query.search,\n\t\t},\n\t\tonChangeQueryParams: ( newQueryParams ) => {\n\t\t\thistory.navigate(\n\t\t\t\taddQueryArgs( path, {\n\t\t\t\t\t...query,\n\t\t\t\t\tpageNumber: newQueryParams.page,\n\t\t\t\t\tsearch: newQueryParams.search || undefined,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t} );\n\n\tconst { activeTemplatesOption, activeTheme, defaultTemplateTypes } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getEntityRecord, getCurrentTheme } = select( coreStore );\n\t\t\treturn {\n\t\t\t\tactiveTemplatesOption: getEntityRecord( 'root', 'site' )\n\t\t\t\t\t?.active_templates,\n\t\t\t\tactiveTheme: getCurrentTheme(),\n\t\t\t\tdefaultTemplateTypes:\n\t\t\t\t\tselect( coreStore ).getCurrentTheme()\n\t\t\t\t\t\t?.default_template_types,\n\t\t\t};\n\t\t} );\n\t// Todo: this will have to be better so that we're not fetching all the\n\t// records all the time. Active templates query will need to move server\n\t// side.\n\tconst { records: userRecords, isResolving: isLoadingUserRecords } =\n\t\tuseEntityRecordsWithPermissions( 'postType', TEMPLATE_POST_TYPE, {\n\t\t\tper_page: -1,\n\t\t\tcombinedTemplates: false,\n\t\t} );\n\tconst { records: staticRecords, isResolving: isLoadingStaticData } =\n\t\tuseEntityRecordsWithPermissions( 'postType', 'wp_registered_template', {\n\t\t\tper_page: -1,\n\t\t} );\n\n\tconst activeTemplates = useMemo( () => {\n\t\tconst _active = [ ...staticRecords ].filter(\n\t\t\t( record ) => ! record.is_custom\n\t\t);\n\t\tif ( activeTemplatesOption ) {\n\t\t\tfor ( const activeSlug in activeTemplatesOption ) {\n\t\t\t\tconst activeId = activeTemplatesOption[ activeSlug ];\n\t\t\t\tif ( activeId === false ) {\n\t\t\t\t\t// Remove the template from the array.\n\t\t\t\t\tconst index = _active.findIndex(\n\t\t\t\t\t\t( template ) => template.slug === activeSlug\n\t\t\t\t\t);\n\t\t\t\t\tif ( index !== -1 ) {\n\t\t\t\t\t\t_active.splice( index, 1 );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Replace the template in the array.\n\t\t\t\t\tconst template = userRecords.find(\n\t\t\t\t\t\t( userRecord ) =>\n\t\t\t\t\t\t\tuserRecord.id === activeId &&\n\t\t\t\t\t\t\tuserRecord.theme === activeTheme.stylesheet\n\t\t\t\t\t);\n\t\t\t\t\tif ( template ) {\n\t\t\t\t\t\tconst index = _active.findIndex(\n\t\t\t\t\t\t\t( { slug } ) => slug === template.slug\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( index !== -1 ) {\n\t\t\t\t\t\t\t_active[ index ] = template;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t_active.push( template );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn _active;\n\t}, [ userRecords, staticRecords, activeTemplatesOption, activeTheme ] );\n\n\tlet _records;\n\tlet isLoadingData;\n\tif ( activeView === 'active' ) {\n\t\t_records = activeTemplates;\n\t\tisLoadingData = isLoadingUserRecords || isLoadingStaticData;\n\t} else if ( activeView === 'user' ) {\n\t\t_records = userRecords;\n\t\tisLoadingData = isLoadingUserRecords;\n\t} else {\n\t\t_records = staticRecords;\n\t\tisLoadingData = isLoadingStaticData;\n\t}\n\n\tconst records = useMemo( () => {\n\t\treturn _records.map( ( record ) => ( {\n\t\t\t...record,\n\t\t\t_isActive: activeTemplates.find(\n\t\t\t\t( template ) => template.id === record.id\n\t\t\t),\n\t\t\t_isCustom:\n\t\t\t\trecord.is_custom ||\n\t\t\t\t( ! record.meta?.is_wp_suggestion &&\n\t\t\t\t\t! defaultTemplateTypes.find(\n\t\t\t\t\t\t( type ) => type.slug === record.slug\n\t\t\t\t\t) ),\n\t\t} ) );\n\t}, [ _records, activeTemplates, defaultTemplateTypes ] );\n\n\tconst users = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUser } = select( coreStore );\n\t\t\treturn records.reduce( ( acc, record ) => {\n\t\t\t\tif ( record.author_text ) {\n\t\t\t\t\tif ( ! acc[ record.author_text ] ) {\n\t\t\t\t\t\tacc[ record.author_text ] = record.author_text;\n\t\t\t\t\t}\n\t\t\t\t} else if ( record.author ) {\n\t\t\t\t\tif ( ! acc[ record.author ] ) {\n\t\t\t\t\t\tacc[ record.author ] = getUser( record.author );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t}, {} );\n\t\t},\n\t\t[ records ]\n\t);\n\n\tconst history = useHistory();\n\tconst onChangeSelection = useCallback(\n\t\t( items ) => {\n\t\t\tsetSelection( items );\n\t\t\tif ( view?.type === 'list' ) {\n\t\t\t\thistory.navigate(\n\t\t\t\t\taddQueryArgs( path, {\n\t\t\t\t\t\tpostId: items.length === 1 ? items[ 0 ] : undefined,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ history, path, view?.type ]\n\t);\n\n\tconst themeField = useThemeField();\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\tpreviewField,\n\t\t\ttemplateTitleField,\n\t\t\tdescriptionField,\n\t\t\tactiveField,\n\t\t\tslugField,\n\t\t];\n\t\tif ( activeView === 'user' ) {\n\t\t\t_fields.push( themeField );\n\t\t}\n\t\tconst elements = [];\n\t\tfor ( const author in users ) {\n\t\t\telements.push( {\n\t\t\t\tvalue: users[ author ]?.id ?? author,\n\t\t\t\tlabel: users[ author ]?.name ?? author,\n\t\t\t} );\n\t\t}\n\t\t_fields.push( {\n\t\t\t...authorField,\n\t\t\telements,\n\t\t} );\n\t\treturn _fields;\n\t}, [ users, activeView, themeField ] );\n\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\treturn filterSortAndPaginate( records, view, fields );\n\t}, [ records, view, fields ] );\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst onActionPerformed = useCallback(\n\t\t( actionId, items ) => {\n\t\t\tswitch ( actionId ) {\n\t\t\t\tcase 'duplicate-post':\n\t\t\t\t\t{\n\t\t\t\t\t\tconst newItem = items[ 0 ];\n\t\t\t\t\t\tconst _title =\n\t\t\t\t\t\t\ttypeof newItem.title === 'string'\n\t\t\t\t\t\t\t\t? newItem.title\n\t\t\t\t\t\t\t\t: newItem.title?.rendered;\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Title of the created post or template, e.g: \"Hello world\".\n\t\t\t\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\t\t\t\tdecodeEntities( _title ) || __( '(no title)' )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'duplicate-post-action',\n\t\t\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tlabel: __( 'Edit' ),\n\t\t\t\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\t\t\t\thistory.navigate(\n\t\t\t\t\t\t\t\t\t\t\t\t`/${ newItem.type }/${ newItem.id }?canvas=edit`\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\t[ history, createSuccessNotice ]\n\t);\n\tconst postTypeActions = usePostActions( {\n\t\tpostType: TEMPLATE_POST_TYPE,\n\t\tcontext: 'list',\n\t\tonActionPerformed,\n\t} );\n\tconst editAction = useEditPostAction();\n\tconst setActiveTemplateAction = useSetActiveTemplateAction();\n\tconst actions = useMemo(\n\t\t() =>\n\t\t\tactiveView === 'user'\n\t\t\t\t? [ setActiveTemplateAction, editAction, ...postTypeActions ]\n\t\t\t\t: [ setActiveTemplateAction, ...postTypeActions ],\n\t\t[ postTypeActions, setActiveTemplateAction, editAction, activeView ]\n\t);\n\n\tconst onChangeView = useEvent( ( newView ) => {\n\t\tif ( newView.type !== view.type ) {\n\t\t\t// Retrigger the routing areas resolution.\n\t\t\thistory.invalidate();\n\t\t}\n\t\tupdateView( newView );\n\t} );\n\n\tconst duplicateAction = actions.find(\n\t\t( action ) => action.id === 'duplicate-post'\n\t);\n\n\treturn (\n\t\t<Page\n\t\t\tclassName=\"edit-site-page-templates\"\n\t\t\ttitle={ __( 'Templates' ) }\n\t\t\tactions={\n\t\t\t\t<>\n\t\t\t\t\t{ isModified && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tresetToDefault();\n\t\t\t\t\t\t\t\thistory.invalidate();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset view' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\t<AddNewTemplate />\n\t\t\t\t</>\n\t\t\t}\n\t\t>\n\t\t\t<DataViews\n\t\t\t\tkey={ activeView }\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\tfields={ fields }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tisLoading={ isLoadingData }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\tisItemClickable={ () => true }\n\t\t\t\tonClickItem={ ( item ) => {\n\t\t\t\t\tif ( item.type === 'wp_registered_template' ) {\n\t\t\t\t\t\tsetSelectedRegisteredTemplate( item );\n\t\t\t\t\t} else {\n\t\t\t\t\t\thistory.navigate(\n\t\t\t\t\t\t\t`/${ item.type }/${ item.id }?canvas=edit`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tselection={ selection }\n\t\t\t\tdefaultLayouts={ defaultLayouts }\n\t\t\t/>\n\t\t\t{ selectedRegisteredTemplate && duplicateAction && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Duplicate' ) }\n\t\t\t\t\tonRequestClose={ () => setSelectedRegisteredTemplate() }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t>\n\t\t\t\t\t<duplicateAction.RenderModal\n\t\t\t\t\t\titems={ [ selectedRegisteredTemplate ] }\n\t\t\t\t\t\tcloseModal={ () => setSelectedRegisteredTemplate() }\n\t\t\t\t\t\tonActionPerformed={ ( [ item ] ) => {\n\t\t\t\t\t\t\thistory.navigate(\n\t\t\t\t\t\t\t\t`/${ item.type }/${ item.id }?canvas=edit`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</Page>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -13,10 +13,10 @@ import { useSelect } from "@wordpress/data";
13
13
  import { useContext, useMemo } from "@wordpress/element";
14
14
  import { unlock } from "../../lock-unlock";
15
15
  import EditorCanvasContainer from "../editor-canvas-container";
16
+ import { useGlobalStylesOutputWithConfig } from "../../hooks/use-global-styles-output";
16
17
  const {
17
18
  ExperimentalBlockEditorProvider,
18
19
  GlobalStylesContext,
19
- useGlobalStylesOutputWithConfig,
20
20
  __unstableBlockStyleVariationOverridesWithConfig
21
21
  } = unlock(blockEditorPrivateApis);
22
22
  const { mergeBaseAndUserConfigs } = unlock(editorPrivateApis);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/revisions/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Disabled } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n} from '@wordpress/block-editor';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport { unlock } from '../../lock-unlock';\nimport EditorCanvasContainer from '../editor-canvas-container';\n\nconst {\n\tExperimentalBlockEditorProvider,\n\tGlobalStylesContext,\n\tuseGlobalStylesOutputWithConfig,\n\t__unstableBlockStyleVariationOverridesWithConfig,\n} = unlock( blockEditorPrivateApis );\nconst { mergeBaseAndUserConfigs } = unlock( editorPrivateApis );\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\nfunction Revisions( { userConfig, blocks } ) {\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\tconst renderedBlocksArray = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst editorStyles =\n\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t? globalStyles\n\t\t\t: settings.styles;\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\ttitle={ __( 'Revisions' ) }\n\t\t\tcloseButtonLabel={ __( 'Close revisions' ) }\n\t\t\tenableResizing\n\t\t>\n\t\t\t<Iframe\n\t\t\t\tclassName=\"edit-site-revisions__iframe\"\n\t\t\t\tname=\"revisions\"\n\t\t\t\ttabIndex={ 0 }\n\t\t\t>\n\t\t\t\t<style>\n\t\t\t\t\t{\n\t\t\t\t\t\t// Forming a \"block formatting context\" to prevent margin collapsing.\n\t\t\t\t\t\t// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context\n\t\t\t\t\t\t`.is-root-container { display: flow-root; }`\n\t\t\t\t\t}\n\t\t\t\t</style>\n\t\t\t\t<Disabled className=\"edit-site-revisions__example-preview__content\">\n\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\tvalue={ renderedBlocksArray }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t * Styles are printed inside the block editor provider,\n\t\t\t\t\t\t * so they can access any registered style overrides.\n\t\t\t\t\t\t */ }\n\t\t\t\t\t\t<EditorStyles styles={ editorStyles } />\n\t\t\t\t\t\t<__unstableBlockStyleVariationOverridesWithConfig\n\t\t\t\t\t\t\tconfig={ mergedConfig }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t</Disabled>\n\t\t\t</Iframe>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\nexport default Revisions;\n"],
5
- "mappings": "AAgFI,cAQC,YARD;AA7EJ,SAAS,gBAAgB;AACzB,SAAS,UAAU;AACnB;AAAA,EACC;AAAA,EACA,eAAe;AAAA,EACf,SAAS;AAAA,EACT,0BAA0B;AAAA,EAC1B,oBAAoB;AAAA,OACd;AACP,SAAS,eAAe,yBAAyB;AACjD,SAAS,iBAAiB;AAC1B,SAAS,YAAY,eAAe;AAMpC,SAAS,cAAc;AACvB,OAAO,2BAA2B;AAElC,MAAM;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,IAAI,OAAQ,sBAAuB;AACnC,MAAM,EAAE,wBAAwB,IAAI,OAAQ,iBAAkB;AAE9D,SAAS,cAAe,QAAS;AAChC,SAAO,CAAE,UAAU,OAAO,KAAM,MAAO,EAAE,WAAW;AACrD;AAEA,SAAS,UAAW,EAAE,YAAY,OAAO,GAAI;AAC5C,QAAM,EAAE,MAAM,WAAW,IAAI,WAAY,mBAAoB;AAE7D,QAAM,eAAe,QAAS,MAAM;AACnC,QAAK,CAAE,cAAe,UAAW,KAAK,CAAE,cAAe,UAAW,GAAI;AACrE,aAAO,wBAAyB,YAAY,UAAW;AAAA,IACxD;AACA,WAAO,CAAC;AAAA,EACT,GAAG,CAAE,YAAY,UAAW,CAAE;AAE9B,QAAM,sBAAsB;AAAA,IAC3B,MAAQ,MAAM,QAAS,MAAO,IAAI,SAAS,CAAE,MAAO;AAAA,IACpD,CAAE,MAAO;AAAA,EACV;AAEA,QAAM,mBAAmB;AAAA,IACxB,CAAE,WAAY,OAAQ,gBAAiB,EAAE,YAAY;AAAA,IACrD,CAAC;AAAA,EACF;AACA,QAAM,WAAW;AAAA,IAChB,OAAQ;AAAA,MACP,GAAG;AAAA,MACH,eAAe;AAAA,IAChB;AAAA,IACA,CAAE,gBAAiB;AAAA,EACpB;AAEA,QAAM,CAAE,YAAa,IAAI,gCAAiC,YAAa;AAEvE,QAAM,eACL,CAAE,cAAe,YAAa,KAAK,CAAE,cAAe,UAAW,IAC5D,eACA,SAAS;AAEb,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAQ,GAAI,WAAY;AAAA,MACxB,kBAAmB,GAAI,iBAAkB;AAAA,MACzC,gBAAc;AAAA,MAEd;AAAA,QAAC;AAAA;AAAA,UACA,WAAU;AAAA,UACV,MAAK;AAAA,UACL,UAAW;AAAA,UAEX;AAAA,gCAAC;AAAA;AAAA;AAAA,cAIC;AAAA,aAEF;AAAA,YACA,oBAAC,YAAS,WAAU,iDACnB;AAAA,cAAC;AAAA;AAAA,gBACA,OAAQ;AAAA,gBACR;AAAA,gBAEA;AAAA,sCAAC,aAAU,gBAAiB,OAAQ;AAAA,kBAKpC,oBAAC,gBAAa,QAAS,cAAe;AAAA,kBACtC;AAAA,oBAAC;AAAA;AAAA,sBACA,QAAS;AAAA;AAAA,kBACV;AAAA;AAAA;AAAA,YACD,GACD;AAAA;AAAA;AAAA,MACD;AAAA;AAAA,EACD;AAEF;AAEA,IAAO,oBAAQ;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Disabled } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n} from '@wordpress/block-editor';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport { unlock } from '../../lock-unlock';\nimport EditorCanvasContainer from '../editor-canvas-container';\nimport { useGlobalStylesOutputWithConfig } from '../../hooks/use-global-styles-output';\n\nconst {\n\tExperimentalBlockEditorProvider,\n\tGlobalStylesContext,\n\t__unstableBlockStyleVariationOverridesWithConfig,\n} = unlock( blockEditorPrivateApis );\nconst { mergeBaseAndUserConfigs } = unlock( editorPrivateApis );\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\nfunction Revisions( { userConfig, blocks } ) {\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\tconst renderedBlocksArray = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst editorStyles =\n\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t? globalStyles\n\t\t\t: settings.styles;\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\ttitle={ __( 'Revisions' ) }\n\t\t\tcloseButtonLabel={ __( 'Close revisions' ) }\n\t\t\tenableResizing\n\t\t>\n\t\t\t<Iframe\n\t\t\t\tclassName=\"edit-site-revisions__iframe\"\n\t\t\t\tname=\"revisions\"\n\t\t\t\ttabIndex={ 0 }\n\t\t\t>\n\t\t\t\t<style>\n\t\t\t\t\t{\n\t\t\t\t\t\t// Forming a \"block formatting context\" to prevent margin collapsing.\n\t\t\t\t\t\t// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context\n\t\t\t\t\t\t`.is-root-container { display: flow-root; }`\n\t\t\t\t\t}\n\t\t\t\t</style>\n\t\t\t\t<Disabled className=\"edit-site-revisions__example-preview__content\">\n\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\tvalue={ renderedBlocksArray }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t * Styles are printed inside the block editor provider,\n\t\t\t\t\t\t * so they can access any registered style overrides.\n\t\t\t\t\t\t */ }\n\t\t\t\t\t\t<EditorStyles styles={ editorStyles } />\n\t\t\t\t\t\t<__unstableBlockStyleVariationOverridesWithConfig\n\t\t\t\t\t\t\tconfig={ mergedConfig }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t</Disabled>\n\t\t\t</Iframe>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\nexport default Revisions;\n"],
5
+ "mappings": "AAgFI,cAQC,YARD;AA7EJ,SAAS,gBAAgB;AACzB,SAAS,UAAU;AACnB;AAAA,EACC;AAAA,EACA,eAAe;AAAA,EACf,SAAS;AAAA,EACT,0BAA0B;AAAA,EAC1B,oBAAoB;AAAA,OACd;AACP,SAAS,eAAe,yBAAyB;AACjD,SAAS,iBAAiB;AAC1B,SAAS,YAAY,eAAe;AAMpC,SAAS,cAAc;AACvB,OAAO,2BAA2B;AAClC,SAAS,uCAAuC;AAEhD,MAAM;AAAA,EACL;AAAA,EACA;AAAA,EACA;AACD,IAAI,OAAQ,sBAAuB;AACnC,MAAM,EAAE,wBAAwB,IAAI,OAAQ,iBAAkB;AAE9D,SAAS,cAAe,QAAS;AAChC,SAAO,CAAE,UAAU,OAAO,KAAM,MAAO,EAAE,WAAW;AACrD;AAEA,SAAS,UAAW,EAAE,YAAY,OAAO,GAAI;AAC5C,QAAM,EAAE,MAAM,WAAW,IAAI,WAAY,mBAAoB;AAE7D,QAAM,eAAe,QAAS,MAAM;AACnC,QAAK,CAAE,cAAe,UAAW,KAAK,CAAE,cAAe,UAAW,GAAI;AACrE,aAAO,wBAAyB,YAAY,UAAW;AAAA,IACxD;AACA,WAAO,CAAC;AAAA,EACT,GAAG,CAAE,YAAY,UAAW,CAAE;AAE9B,QAAM,sBAAsB;AAAA,IAC3B,MAAQ,MAAM,QAAS,MAAO,IAAI,SAAS,CAAE,MAAO;AAAA,IACpD,CAAE,MAAO;AAAA,EACV;AAEA,QAAM,mBAAmB;AAAA,IACxB,CAAE,WAAY,OAAQ,gBAAiB,EAAE,YAAY;AAAA,IACrD,CAAC;AAAA,EACF;AACA,QAAM,WAAW;AAAA,IAChB,OAAQ;AAAA,MACP,GAAG;AAAA,MACH,eAAe;AAAA,IAChB;AAAA,IACA,CAAE,gBAAiB;AAAA,EACpB;AAEA,QAAM,CAAE,YAAa,IAAI,gCAAiC,YAAa;AAEvE,QAAM,eACL,CAAE,cAAe,YAAa,KAAK,CAAE,cAAe,UAAW,IAC5D,eACA,SAAS;AAEb,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAQ,GAAI,WAAY;AAAA,MACxB,kBAAmB,GAAI,iBAAkB;AAAA,MACzC,gBAAc;AAAA,MAEd;AAAA,QAAC;AAAA;AAAA,UACA,WAAU;AAAA,UACV,MAAK;AAAA,UACL,UAAW;AAAA,UAEX;AAAA,gCAAC;AAAA;AAAA;AAAA,cAIC;AAAA,aAEF;AAAA,YACA,oBAAC,YAAS,WAAU,iDACnB;AAAA,cAAC;AAAA;AAAA,gBACA,OAAQ;AAAA,gBACR;AAAA,gBAEA;AAAA,sCAAC,aAAU,gBAAiB,OAAQ;AAAA,kBAKpC,oBAAC,gBAAa,QAAS,cAAe;AAAA,kBACtC;AAAA,oBAAC;AAAA;AAAA,sBACA,QAAS;AAAA;AAAA,kBACV;AAAA;AAAA;AAAA,YACD,GACD;AAAA;AAAA;AAAA,MACD;AAAA;AAAA,EACD;AAEF;AAEA,IAAO,oBAAQ;",
6
6
  "names": []
7
7
  }
@@ -46,12 +46,8 @@ import {
46
46
  STYLE_BOOK_COLOR_GROUPS,
47
47
  STYLE_BOOK_PREVIEW_CATEGORIES
48
48
  } from "../style-book/constants";
49
- const {
50
- ExperimentalBlockEditorProvider,
51
- useGlobalStyle,
52
- GlobalStylesContext,
53
- useGlobalStylesOutputWithConfig
54
- } = unlock(blockEditorPrivateApis);
49
+ import { useGlobalStylesOutputWithConfig } from "../../hooks/use-global-styles-output";
50
+ const { ExperimentalBlockEditorProvider, useGlobalStyle, GlobalStylesContext } = unlock(blockEditorPrivateApis);
55
51
  const { mergeBaseAndUserConfigs } = unlock(editorPrivateApis);
56
52
  const { Tabs } = unlock(componentsPrivateApis);
57
53
  function isObjectEmpty(object) {
@@ -153,18 +149,27 @@ function applyBlockVariationsToExamples(examples, variation) {
153
149
  if (!variation) {
154
150
  return examples;
155
151
  }
156
- return examples.map((example) => ({
157
- ...example,
158
- variation,
159
- blocks: {
160
- ...example.blocks,
161
- attributes: {
162
- ...example.blocks.attributes,
163
- style: void 0,
164
- className: getVariationClassName(variation)
152
+ return examples.map((example) => {
153
+ return {
154
+ ...example,
155
+ variation,
156
+ blocks: Array.isArray(example.blocks) ? example.blocks.map((block) => ({
157
+ ...block,
158
+ attributes: {
159
+ ...block.attributes,
160
+ style: void 0,
161
+ className: getVariationClassName(variation)
162
+ }
163
+ })) : {
164
+ ...example.blocks,
165
+ attributes: {
166
+ ...example.blocks.attributes,
167
+ style: void 0,
168
+ className: getVariationClassName(variation)
169
+ }
165
170
  }
166
- }
167
- }));
171
+ };
172
+ });
168
173
  }
169
174
  function StyleBook({
170
175
  enableResizing = true,