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

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 (58) hide show
  1. package/build/components/dataviews-actions/index.js +8 -6
  2. package/build/components/dataviews-actions/index.js.map +2 -2
  3. package/build/components/global-styles-renderer/index.js +4 -2
  4. package/build/components/global-styles-renderer/index.js.map +3 -3
  5. package/build/components/page-templates/fields.js +19 -26
  6. package/build/components/page-templates/fields.js.map +2 -2
  7. package/build/components/page-templates/index.js +52 -39
  8. package/build/components/page-templates/index.js.map +2 -2
  9. package/build/components/page-templates/view-utils.js +4 -0
  10. package/build/components/page-templates/view-utils.js.map +2 -2
  11. package/build/components/revisions/index.js +2 -2
  12. package/build/components/revisions/index.js.map +2 -2
  13. package/build/components/sidebar-navigation-screen-templates-browse/content.js +8 -9
  14. package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +2 -2
  15. package/build/components/style-book/index.js +8 -4
  16. package/build/components/style-book/index.js.map +2 -2
  17. package/build-module/components/dataviews-actions/index.js +8 -6
  18. package/build-module/components/dataviews-actions/index.js.map +2 -2
  19. package/build-module/components/global-styles-renderer/index.js +3 -1
  20. package/build-module/components/global-styles-renderer/index.js.map +2 -2
  21. package/build-module/components/page-templates/fields.js +19 -26
  22. package/build-module/components/page-templates/fields.js.map +2 -2
  23. package/build-module/components/page-templates/index.js +52 -39
  24. package/build-module/components/page-templates/index.js.map +2 -2
  25. package/build-module/components/page-templates/view-utils.js +4 -0
  26. package/build-module/components/page-templates/view-utils.js.map +2 -2
  27. package/build-module/components/revisions/index.js +1 -1
  28. package/build-module/components/revisions/index.js.map +2 -2
  29. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +9 -10
  30. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +2 -2
  31. package/build-module/components/style-book/index.js +6 -2
  32. package/build-module/components/style-book/index.js.map +2 -2
  33. package/build-style/posts-rtl.css +13 -13
  34. package/build-style/posts.css +13 -13
  35. package/build-style/style-rtl.css +23 -23
  36. package/build-style/style.css +23 -23
  37. package/package.json +44 -45
  38. package/src/components/dataviews-actions/index.js +12 -10
  39. package/src/components/global-styles/font-library-modal/style.scss +3 -3
  40. package/src/components/global-styles/style.scss +1 -1
  41. package/src/components/global-styles-renderer/index.js +4 -1
  42. package/src/components/global-styles-sidebar/style.scss +2 -2
  43. package/src/components/page-templates/fields.js +23 -29
  44. package/src/components/page-templates/index.js +62 -45
  45. package/src/components/page-templates/view-utils.js +7 -0
  46. package/src/components/revisions/index.js +1 -1
  47. package/src/components/sidebar-navigation-screen/style.scss +1 -1
  48. package/src/components/sidebar-navigation-screen-patterns/style.scss +1 -1
  49. package/src/components/sidebar-navigation-screen-templates-browse/content.js +9 -10
  50. package/src/components/site-hub/style.scss +1 -1
  51. package/src/components/style-book/index.js +6 -3
  52. package/tsconfig.json +0 -1
  53. package/tsconfig.tsbuildinfo +1 -1
  54. package/build/hooks/use-global-styles-output.js +0 -77
  55. package/build/hooks/use-global-styles-output.js.map +0 -7
  56. package/build-module/hooks/use-global-styles-output.js +0 -52
  57. package/build-module/hooks/use-global-styles-output.js.map +0 -7
  58. package/src/hooks/use-global-styles-output.js +0 -80
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/sidebar-navigation-screen-templates-browse/content.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport { useAddedBy } from '../page-templates/hooks';\nimport { layout } from '@wordpress/icons';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nfunction TemplateDataviewItem( { template, isActive } ) {\n\tconst { text, icon } = useAddedBy( template.type, template.id );\n\n\treturn (\n\t\t<SidebarNavigationItem\n\t\t\tto={ addQueryArgs( '/template', { activeView: text } ) }\n\t\t\ticon={ icon }\n\t\t\taria-current={ isActive }\n\t\t>\n\t\t\t{ text }\n\t\t</SidebarNavigationItem>\n\t);\n}\n\nexport default function DataviewsTemplatesSidebarContent() {\n\tconst {\n\t\tquery: { activeView = 'active' },\n\t} = useLocation();\n\tconst { records } = useEntityRecords(\n\t\t'postType',\n\t\t'wp_registered_template',\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\tconst firstItemPerAuthorText = useMemo( () => {\n\t\tconst firstItemPerAuthor = records?.reduce( ( acc, template ) => {\n\t\t\tconst author = template.author_text;\n\t\t\tif ( author && ! acc[ author ] ) {\n\t\t\t\tacc[ author ] = template;\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, {} );\n\t\treturn (\n\t\t\t( firstItemPerAuthor && Object.values( firstItemPerAuthor ) ) ??\n\t\t\tEMPTY_ARRAY\n\t\t);\n\t}, [ records ] );\n\n\treturn (\n\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-templates-browse\">\n\t\t\t<SidebarNavigationItem\n\t\t\t\tto=\"/template\"\n\t\t\t\ticon={ layout }\n\t\t\t\taria-current={ activeView === 'active' }\n\t\t\t>\n\t\t\t\t{ __( 'Active templates' ) }\n\t\t\t</SidebarNavigationItem>\n\t\t\t<SidebarNavigationItem\n\t\t\t\tto={ addQueryArgs( '/template', { activeView: 'user' } ) }\n\t\t\t\ticon={ layout }\n\t\t\t\taria-current={ activeView === 'user' }\n\t\t\t>\n\t\t\t\t{\n\t\t\t\t\t// Let's avoid calling them \"custom templates\" to avoid\n\t\t\t\t\t// confusion. \"Created\" is closest to meaning database\n\t\t\t\t\t// templates, created by users.\n\t\t\t\t\t// https://developer.wordpress.org/themes/classic-themes/templates/page-template-files/#creating-custom-page-templates-for-global-use\n\t\t\t\t\t__( 'Created templates' )\n\t\t\t\t}\n\t\t\t</SidebarNavigationItem>\n\t\t\t{ firstItemPerAuthorText.map( ( template ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<TemplateDataviewItem\n\t\t\t\t\t\tkey={ template.author_text }\n\t\t\t\t\t\ttemplate={ template }\n\t\t\t\t\t\tisActive={ activeView === template.author_text }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ItemGroup>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA0BE;AAvBF,uBAAiC;AACjC,qBAAwB;AACxB,wBAAqD;AACrD,kBAAmB;AACnB,oBAAiD;AACjD,iBAA6B;AAK7B,qCAAkC;AAClC,mBAA2B;AAC3B,mBAAuB;AACvB,yBAAuB;AAEvB,MAAM,EAAE,YAAY,QAAI,2BAAQ,cAAAA,WAAkB;AAElD,MAAM,cAAc,CAAC;AAErB,SAAS,qBAAsB,EAAE,UAAU,SAAS,GAAI;AACvD,QAAM,EAAE,MAAM,KAAK,QAAI,yBAAY,SAAS,MAAM,SAAS,EAAG;AAE9D,SACC;AAAA,IAAC,+BAAAC;AAAA,IAAA;AAAA,MACA,QAAK,yBAAc,aAAa,EAAE,YAAY,KAAK,CAAE;AAAA,MACrD;AAAA,MACA,gBAAe;AAAA,MAEb;AAAA;AAAA,EACH;AAEF;AAEe,SAAR,mCAAoD;AAC1D,QAAM;AAAA,IACL,OAAO,EAAE,aAAa,SAAS;AAAA,EAChC,IAAI,YAAY;AAChB,QAAM,EAAE,QAAQ,QAAI;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,MACC,UAAU;AAAA,IACX;AAAA,EACD;AACA,QAAM,6BAAyB,wBAAS,MAAM;AAC7C,UAAM,qBAAqB,SAAS,OAAQ,CAAE,KAAK,aAAc;AAChE,YAAM,SAAS,SAAS;AACxB,UAAK,UAAU,CAAE,IAAK,MAAO,GAAI;AAChC,YAAK,MAAO,IAAI;AAAA,MACjB;AACA,aAAO;AAAA,IACR,GAAG,CAAC,CAAE;AACN,YACG,sBAAsB,OAAO,OAAQ,kBAAmB,MAC1D;AAAA,EAEF,GAAG,CAAE,OAAQ,CAAE;AAEf,SACC,6CAAC,kBAAAC,yBAAA,EAAU,WAAU,wDACpB;AAAA;AAAA,MAAC,+BAAAD;AAAA,MAAA;AAAA,QACA,IAAG;AAAA,QACH,MAAO;AAAA,QACP,gBAAe,eAAe;AAAA,QAE5B,8BAAI,kBAAmB;AAAA;AAAA,IAC1B;AAAA,IACA;AAAA,MAAC,+BAAAA;AAAA,MAAA;AAAA,QACA,QAAK,yBAAc,aAAa,EAAE,YAAY,OAAO,CAAE;AAAA,QACvD,MAAO;AAAA,QACP,gBAAe,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,QAO7B,8BAAI,mBAAoB;AAAA;AAAA,IAE1B;AAAA,IACE,uBAAuB,IAAK,CAAE,aAAc;AAC7C,aACC;AAAA,QAAC;AAAA;AAAA,UAEA;AAAA,UACA,UAAW,eAAe,SAAS;AAAA;AAAA,QAF7B,SAAS;AAAA,MAGhB;AAAA,IAEF,CAAE;AAAA,KACH;AAEF;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport { useAddedBy } from '../page-templates/hooks';\nimport { commentAuthorAvatar, published } from '@wordpress/icons';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nfunction TemplateDataviewItem( { template, isActive } ) {\n\tconst { text, icon } = useAddedBy( template.type, template.id );\n\n\treturn (\n\t\t<SidebarNavigationItem\n\t\t\tto={ addQueryArgs( '/template', { activeView: text } ) }\n\t\t\ticon={ icon }\n\t\t\taria-current={ isActive }\n\t\t>\n\t\t\t{ text }\n\t\t</SidebarNavigationItem>\n\t);\n}\n\nexport default function DataviewsTemplatesSidebarContent() {\n\tconst {\n\t\tquery: { activeView = 'active' },\n\t} = useLocation();\n\tconst { records } = useEntityRecords( 'root', 'registeredTemplate', {\n\t\t// This should not be needed, the endpoint returns all registered\n\t\t// templates, but it's not possible right now to turn off pagination for\n\t\t// entity configs.\n\t\tper_page: -1,\n\t} );\n\tconst firstItemPerAuthorText = useMemo( () => {\n\t\tconst firstItemPerAuthor = records?.reduce( ( acc, template ) => {\n\t\t\tconst author = template.author_text;\n\t\t\tif ( author && ! acc[ author ] ) {\n\t\t\t\tacc[ author ] = template;\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, {} );\n\t\treturn (\n\t\t\t( firstItemPerAuthor && Object.values( firstItemPerAuthor ) ) ??\n\t\t\tEMPTY_ARRAY\n\t\t);\n\t}, [ records ] );\n\n\treturn (\n\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-templates-browse\">\n\t\t\t<SidebarNavigationItem\n\t\t\t\tto=\"/template\"\n\t\t\t\ticon={ published }\n\t\t\t\taria-current={ activeView === 'active' }\n\t\t\t>\n\t\t\t\t{ __( 'Active templates' ) }\n\t\t\t</SidebarNavigationItem>\n\t\t\t<SidebarNavigationItem\n\t\t\t\tto={ addQueryArgs( '/template', { activeView: 'user' } ) }\n\t\t\t\ticon={ commentAuthorAvatar }\n\t\t\t\taria-current={ activeView === 'user' }\n\t\t\t>\n\t\t\t\t{\n\t\t\t\t\t// Let's avoid calling them \"custom templates\" to avoid\n\t\t\t\t\t// confusion. \"Created\" is closest to meaning database\n\t\t\t\t\t// templates, created by users.\n\t\t\t\t\t// https://developer.wordpress.org/themes/classic-themes/templates/page-template-files/#creating-custom-page-templates-for-global-use\n\t\t\t\t\t__( 'Created templates' )\n\t\t\t\t}\n\t\t\t</SidebarNavigationItem>\n\t\t\t{ firstItemPerAuthorText.map( ( template ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<TemplateDataviewItem\n\t\t\t\t\t\tkey={ template.author_text }\n\t\t\t\t\t\ttemplate={ template }\n\t\t\t\t\t\tisActive={ activeView === template.author_text }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ItemGroup>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA0BE;AAvBF,uBAAiC;AACjC,qBAAwB;AACxB,wBAAqD;AACrD,kBAAmB;AACnB,oBAAiD;AACjD,iBAA6B;AAK7B,qCAAkC;AAClC,mBAA2B;AAC3B,mBAA+C;AAC/C,yBAAuB;AAEvB,MAAM,EAAE,YAAY,QAAI,2BAAQ,cAAAA,WAAkB;AAElD,MAAM,cAAc,CAAC;AAErB,SAAS,qBAAsB,EAAE,UAAU,SAAS,GAAI;AACvD,QAAM,EAAE,MAAM,KAAK,QAAI,yBAAY,SAAS,MAAM,SAAS,EAAG;AAE9D,SACC;AAAA,IAAC,+BAAAC;AAAA,IAAA;AAAA,MACA,QAAK,yBAAc,aAAa,EAAE,YAAY,KAAK,CAAE;AAAA,MACrD;AAAA,MACA,gBAAe;AAAA,MAEb;AAAA;AAAA,EACH;AAEF;AAEe,SAAR,mCAAoD;AAC1D,QAAM;AAAA,IACL,OAAO,EAAE,aAAa,SAAS;AAAA,EAChC,IAAI,YAAY;AAChB,QAAM,EAAE,QAAQ,QAAI,mCAAkB,QAAQ,sBAAsB;AAAA;AAAA;AAAA;AAAA,IAInE,UAAU;AAAA,EACX,CAAE;AACF,QAAM,6BAAyB,wBAAS,MAAM;AAC7C,UAAM,qBAAqB,SAAS,OAAQ,CAAE,KAAK,aAAc;AAChE,YAAM,SAAS,SAAS;AACxB,UAAK,UAAU,CAAE,IAAK,MAAO,GAAI;AAChC,YAAK,MAAO,IAAI;AAAA,MACjB;AACA,aAAO;AAAA,IACR,GAAG,CAAC,CAAE;AACN,YACG,sBAAsB,OAAO,OAAQ,kBAAmB,MAC1D;AAAA,EAEF,GAAG,CAAE,OAAQ,CAAE;AAEf,SACC,6CAAC,kBAAAC,yBAAA,EAAU,WAAU,wDACpB;AAAA;AAAA,MAAC,+BAAAD;AAAA,MAAA;AAAA,QACA,IAAG;AAAA,QACH,MAAO;AAAA,QACP,gBAAe,eAAe;AAAA,QAE5B,8BAAI,kBAAmB;AAAA;AAAA,IAC1B;AAAA,IACA;AAAA,MAAC,+BAAAA;AAAA,MAAA;AAAA,QACA,QAAK,yBAAc,aAAa,EAAE,YAAY,OAAO,CAAE;AAAA,QACvD,MAAO;AAAA,QACP,gBAAe,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,QAO7B,8BAAI,mBAAoB;AAAA;AAAA,IAE1B;AAAA,IACE,uBAAuB,IAAK,CAAE,aAAc;AAC7C,aACC;AAAA,QAAC;AAAA;AAAA,UAEA;AAAA,UACA,UAAW,eAAe,SAAS;AAAA;AAAA,QAF7B,SAAS;AAAA,MAGhB;AAAA,IAEF,CAAE;AAAA,KACH;AAEF;",
6
6
  "names": ["routerPrivateApis", "SidebarNavigationItem", "ItemGroup"]
7
7
  }
@@ -55,8 +55,12 @@ var import_sidebar_global_styles_wrapper = require("../sidebar-global-styles-wra
55
55
  var import_global_styles_renderer = require("../global-styles-renderer");
56
56
  var import_utils = require("../global-styles/utils");
57
57
  var import_constants2 = require("../style-book/constants");
58
- var import_use_global_styles_output = require("../../hooks/use-global-styles-output");
59
- const { ExperimentalBlockEditorProvider, useGlobalStyle, GlobalStylesContext } = (0, import_lock_unlock.unlock)(import_block_editor.privateApis);
58
+ const {
59
+ ExperimentalBlockEditorProvider,
60
+ useGlobalStyle,
61
+ GlobalStylesContext,
62
+ useGlobalStylesOutputWithConfig
63
+ } = (0, import_lock_unlock.unlock)(import_block_editor.privateApis);
60
64
  const { mergeBaseAndUserConfigs } = (0, import_lock_unlock.unlock)(import_editor.privateApis);
61
65
  const { Tabs } = (0, import_lock_unlock.unlock)(import_components.privateApis);
62
66
  function isObjectEmpty(object) {
@@ -216,7 +220,7 @@ function StyleBook({
216
220
  (select) => select(import_block_editor.store).getSettings(),
217
221
  []
218
222
  );
219
- const [globalStyles] = (0, import_use_global_styles_output.useGlobalStylesOutputWithConfig)(mergedConfig);
223
+ const [globalStyles] = useGlobalStylesOutputWithConfig(mergedConfig);
220
224
  const settings = (0, import_element.useMemo)(
221
225
  () => ({
222
226
  ...originalSettings,
@@ -399,7 +403,7 @@ const StyleBookPreview = ({ userConfig = {}, isStatic = false }) => {
399
403
  }
400
404
  return {};
401
405
  }, [baseConfig, userConfig]);
402
- const [globalStyles] = (0, import_use_global_styles_output.useGlobalStylesOutputWithConfig)(mergedConfig);
406
+ const [globalStyles] = useGlobalStylesOutputWithConfig(mergedConfig);
403
407
  const settings = (0, import_element.useMemo)(
404
408
  () => ({
405
409
  ...siteEditorSettings,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/style-book/index.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDisabled,\n\tComposite,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tuseSettings,\n\tBlockEditorProvider,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { useSelect, dispatch } from '@wordpress/data';\nimport {\n\tuseMemo,\n\tuseState,\n\tmemo,\n\tuseContext,\n\tuseRef,\n\tuseLayoutEffect,\n\tuseEffect,\n} from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport EditorCanvasContainer from '../editor-canvas-container';\nimport { STYLE_BOOK_IFRAME_STYLES } from './constants';\nimport {\n\tgetExamplesByCategory,\n\tgetTopLevelStyleBookCategories,\n} from './categories';\nimport { getExamples } from './examples';\nimport { store as siteEditorStore } from '../../store';\nimport { useSection } from '../sidebar-global-styles-wrapper';\nimport { GlobalStylesRenderer } from '../global-styles-renderer';\nimport { getVariationClassName } from '../global-styles/utils';\nimport {\n\tSTYLE_BOOK_COLOR_GROUPS,\n\tSTYLE_BOOK_PREVIEW_CATEGORIES,\n} from '../style-book/constants';\nimport { useGlobalStylesOutputWithConfig } from '../../hooks/use-global-styles-output';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle, GlobalStylesContext } =\n\tunlock( blockEditorPrivateApis );\nconst { mergeBaseAndUserConfigs } = unlock( editorPrivateApis );\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\n/**\n * Scrolls to a section within an iframe.\n *\n * @param {string} anchorId The id of the element to scroll to.\n * @param {HTMLIFrameElement} iframe The target iframe.\n */\nconst scrollToSection = ( anchorId, iframe ) => {\n\tif ( ! anchorId || ! iframe || ! iframe?.contentDocument ) {\n\t\treturn;\n\t}\n\n\tconst element =\n\t\tanchorId === 'top'\n\t\t\t? iframe.contentDocument.body\n\t\t\t: iframe.contentDocument.getElementById( anchorId );\n\tif ( element ) {\n\t\telement.scrollIntoView( {\n\t\t\tbehavior: 'smooth',\n\t\t} );\n\t}\n};\n\n/**\n * Parses a Block Editor navigation path to build a style book navigation path.\n * The object can be extended to include a category, representing a style book tab/section.\n *\n * @param {string} path An internal Block Editor navigation path.\n * @return {null|{block: string}} An object containing the example to navigate to.\n */\nconst getStyleBookNavigationFromPath = ( path ) => {\n\tif ( path && typeof path === 'string' ) {\n\t\tif (\n\t\t\tpath === '/' ||\n\t\t\tpath.startsWith( '/typography' ) ||\n\t\t\tpath.startsWith( '/colors' ) ||\n\t\t\tpath.startsWith( '/blocks' )\n\t\t) {\n\t\t\treturn {\n\t\t\t\ttop: true,\n\t\t\t};\n\t\t}\n\t}\n\treturn null;\n};\n\n/**\n * Retrieves colors, gradients, and duotone filters from Global Styles.\n * The inclusion of default (Core) palettes is controlled by the relevant\n * theme.json property e.g. defaultPalette, defaultGradients, defaultDuotone.\n *\n * @return {Object} Object containing properties for each type of palette.\n */\nfunction useMultiOriginPalettes() {\n\tconst { colors, gradients } = useMultipleOriginColorsAndGradients();\n\n\t// Add duotone filters to the palettes data.\n\tconst [\n\t\tshouldDisplayDefaultDuotones,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t] = useSettings(\n\t\t'color.defaultDuotone',\n\t\t'color.duotone.custom',\n\t\t'color.duotone.theme',\n\t\t'color.duotone.default'\n\t);\n\n\tconst palettes = useMemo( () => {\n\t\tconst result = { colors, gradients, duotones: [] };\n\n\t\tif ( themeDuotones && themeDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates these duotone filters come from the theme.'\n\t\t\t\t),\n\t\t\t\tslug: 'theme',\n\t\t\t\tduotones: themeDuotones,\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tshouldDisplayDefaultDuotones &&\n\t\t\tdefaultDuotones &&\n\t\t\tdefaultDuotones.length\n\t\t) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates these duotone filters come from WordPress.'\n\t\t\t\t),\n\t\t\t\tslug: 'default',\n\t\t\t\tduotones: defaultDuotones,\n\t\t\t} );\n\t\t}\n\t\tif ( customDuotones && customDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates these doutone filters are created by the user.'\n\t\t\t\t),\n\t\t\t\tslug: 'custom',\n\t\t\t\tduotones: customDuotones,\n\t\t\t} );\n\t\t}\n\n\t\treturn result;\n\t}, [\n\t\tcolors,\n\t\tgradients,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t\tshouldDisplayDefaultDuotones,\n\t] );\n\n\treturn palettes;\n}\n\n/**\n * Get deduped examples for single page stylebook.\n * @param {Array} examples Array of examples.\n * @return {Array} Deduped examples.\n */\nexport function getExamplesForSinglePageUse( examples ) {\n\tconst examplesForSinglePageUse = [];\n\tconst overviewCategoryExamples = getExamplesByCategory(\n\t\t{ slug: 'overview' },\n\t\texamples\n\t);\n\texamplesForSinglePageUse.push( ...overviewCategoryExamples.examples );\n\tconst otherExamples = examples.filter( ( example ) => {\n\t\treturn (\n\t\t\texample.category !== 'overview' &&\n\t\t\t! overviewCategoryExamples.examples.find(\n\t\t\t\t( overviewExample ) => overviewExample.name === example.name\n\t\t\t)\n\t\t);\n\t} );\n\texamplesForSinglePageUse.push( ...otherExamples );\n\n\treturn examplesForSinglePageUse;\n}\n\n/**\n * Applies a block variation to each example by updating its attributes.\n *\n * @param {Array} examples Array of examples\n * @param {string} variation Block variation name.\n * @return {Array} Updated examples with variation applied.\n */\nfunction applyBlockVariationsToExamples( examples, variation ) {\n\tif ( ! variation ) {\n\t\treturn examples;\n\t}\n\treturn examples.map( ( example ) => {\n\t\treturn {\n\t\t\t...example,\n\t\t\tvariation,\n\t\t\tblocks: Array.isArray( example.blocks )\n\t\t\t\t? example.blocks.map( ( block ) => ( {\n\t\t\t\t\t\t...block,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...block.attributes,\n\t\t\t\t\t\t\tstyle: undefined,\n\t\t\t\t\t\t\tclassName: getVariationClassName( variation ),\n\t\t\t\t\t\t},\n\t\t\t\t } ) )\n\t\t\t\t: {\n\t\t\t\t\t\t...example.blocks,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...example.blocks.attributes,\n\t\t\t\t\t\t\tstyle: undefined,\n\t\t\t\t\t\t\tclassName: getVariationClassName( variation ),\n\t\t\t\t\t\t},\n\t\t\t\t },\n\t\t};\n\t} );\n}\n\nfunction StyleBook( {\n\tenableResizing = true,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tshowCloseButton = true,\n\tonClose,\n\tshowTabs = true,\n\tuserConfig = {},\n\tpath = '',\n} ) {\n\tconst [ textColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = useMemo( () => getExamples( colors ), [ colors ] );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetTopLevelStyleBookCategories().filter( ( category ) =>\n\t\t\t\texamples.some(\n\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t)\n\t\t\t),\n\t\t[ examples ]\n\t);\n\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\tconst goTo = getStyleBookNavigationFromPath( path );\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\t// Copied from packages/edit-site/src/components/revisions/index.js\n\t// could we create a shared hook?\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: originalSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, originalSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\tonClose={ onClose }\n\t\t\tenableResizing={ enableResizing }\n\t\t\tcloseButtonLabel={ showCloseButton ? __( 'Close' ) : null }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'edit-site-style-book', {\n\t\t\t\t\t'is-button': !! onClick,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tbackground: backgroundColor,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<Tabs>\n\t\t\t\t\t\t<div className=\"edit-site-style-book__tablist-container\">\n\t\t\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\t\t\t\ttabId={ tab.slug }\n\t\t\t\t\t\t\t\t\t\tkey={ tab.slug }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{ tabs.map( ( tab ) => {\n\t\t\t\t\t\t\tconst categoryDefinition = tab.slug\n\t\t\t\t\t\t\t\t? getTopLevelStyleBookCategories().find(\n\t\t\t\t\t\t\t\t\t\t( _category ) =>\n\t\t\t\t\t\t\t\t\t\t\t_category.slug === tab.slug\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\t\tconst filteredExamples = categoryDefinition\n\t\t\t\t\t\t\t\t? getExamplesByCategory(\n\t\t\t\t\t\t\t\t\t\tcategoryDefinition,\n\t\t\t\t\t\t\t\t\t\texamples\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: { examples };\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\tkey={ tab.slug }\n\t\t\t\t\t\t\t\t\ttabId={ tab.slug }\n\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-style-book__tabpanel\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\t\t\tcategory={ tab.slug }\n\t\t\t\t\t\t\t\t\t\texamples={ filteredExamples }\n\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</Tabs>\n\t\t\t\t) : (\n\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\texamples={ { examples: examplesForSinglePageUse } }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\n/**\n * Style Book Preview component renders the stylebook without the Editor dependency.\n *\n * @param {Object} props Component props.\n * @param {Object} props.userConfig User configuration.\n * @param {boolean} props.isStatic Whether the stylebook is static or clickable.\n * @return {Object} Style Book Preview component.\n */\nexport const StyleBookPreview = ( { userConfig = {}, isStatic = false } ) => {\n\tconst siteEditorSettings = useSelect(\n\t\t( select ) => select( siteEditorStore ).getSettings(),\n\t\t[]\n\t);\n\n\tconst canUserUploadMedia = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'attachment',\n\t\t\t} ),\n\t\t[]\n\t);\n\n\t// Update block editor settings because useMultipleOriginColorsAndGradients fetch colours from there.\n\tuseEffect( () => {\n\t\tdispatch( blockEditorStore ).updateSettings( {\n\t\t\t...siteEditorSettings,\n\t\t\tmediaUpload: canUserUploadMedia ? uploadMedia : undefined,\n\t\t} );\n\t}, [ siteEditorSettings, canUserUploadMedia ] );\n\n\tconst [ section, onChangeSection ] = useSection();\n\n\tconst isSelected = ( blockName ) => {\n\t\t// Match '/blocks/core%2Fbutton' and\n\t\t// '/blocks/core%2Fbutton/typography', but not\n\t\t// '/blocks/core%2Fbuttons'.\n\t\treturn (\n\t\t\tsection === `/blocks/${ encodeURIComponent( blockName ) }` ||\n\t\t\tsection.startsWith(\n\t\t\t\t`/blocks/${ encodeURIComponent( blockName ) }/`\n\t\t\t)\n\t\t);\n\t};\n\n\tconst onSelect = ( blockName, isBlockVariation = false ) => {\n\t\tif (\n\t\t\tSTYLE_BOOK_COLOR_GROUPS.find(\n\t\t\t\t( group ) => group.slug === blockName\n\t\t\t)\n\t\t) {\n\t\t\t// Go to color palettes Global Styles.\n\t\t\tonChangeSection( '/colors/palette' );\n\t\t\treturn;\n\t\t}\n\t\tif ( blockName === 'typography' ) {\n\t\t\t// Go to typography Global Styles.\n\t\t\tonChangeSection( '/typography' );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlockVariation ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Now go to the selected block.\n\t\tonChangeSection( `/blocks/${ encodeURIComponent( blockName ) }` );\n\t};\n\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = getExamples( colors );\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tlet previewCategory = null;\n\tlet blockVariation = null;\n\tif ( section.includes( '/colors' ) ) {\n\t\tpreviewCategory = 'colors';\n\t} else if ( section.includes( '/typography' ) ) {\n\t\tpreviewCategory = 'text';\n\t} else if ( section.includes( '/blocks' ) ) {\n\t\tpreviewCategory = 'blocks';\n\t\tlet blockName = decodeURIComponent( section ).split( '/blocks/' )[ 1 ];\n\n\t\t// The blockName can contain variations, if so, extract the variation.\n\t\tif ( blockName?.includes( '/variations' ) ) {\n\t\t\t[ blockName, blockVariation ] = blockName.split( '/variations/' );\n\t\t}\n\n\t\tif (\n\t\t\tblockName &&\n\t\t\texamples.find( ( example ) => example.name === blockName )\n\t\t) {\n\t\t\tpreviewCategory = blockName;\n\t\t}\n\t} else if ( ! isStatic ) {\n\t\tpreviewCategory = 'overview';\n\t}\n\tconst categoryDefinition = STYLE_BOOK_PREVIEW_CATEGORIES.find(\n\t\t( category ) => category.slug === previewCategory\n\t);\n\n\tconst filteredExamples = useMemo( () => {\n\t\t// If there's no category definition there may be a single block.\n\t\tif ( ! categoryDefinition ) {\n\t\t\treturn {\n\t\t\t\texamples: [\n\t\t\t\t\texamples.find(\n\t\t\t\t\t\t( example ) => example.name === previewCategory\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t};\n\t\t}\n\n\t\treturn getExamplesByCategory( categoryDefinition, examples );\n\t}, [ categoryDefinition, examples, previewCategory ] );\n\n\tconst displayedExamples = useMemo( () => {\n\t\t// If there's no preview category, show all examples.\n\t\tif ( ! previewCategory ) {\n\t\t\treturn { examples: examplesForSinglePageUse };\n\t\t}\n\n\t\tif ( blockVariation ) {\n\t\t\treturn {\n\t\t\t\texamples: applyBlockVariationsToExamples(\n\t\t\t\t\tfilteredExamples.examples,\n\t\t\t\t\tblockVariation\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn filteredExamples;\n\t}, [\n\t\tpreviewCategory,\n\t\texamplesForSinglePageUse,\n\t\tblockVariation,\n\t\tfilteredExamples,\n\t] );\n\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\tconst goTo = getStyleBookNavigationFromPath( section );\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 [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...siteEditorSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: siteEditorSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, siteEditorSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<div className=\"edit-site-style-book\">\n\t\t\t<BlockEditorProvider settings={ settings }>\n\t\t\t\t<GlobalStylesRenderer disableRootPadding />\n\t\t\t\t<StyleBookBody\n\t\t\t\t\texamples={ displayedExamples }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\tisSelected={ ! isStatic ? isSelected : null }\n\t\t\t\t\tonSelect={ ! isStatic ? onSelect : null }\n\t\t\t\t/>\n\t\t\t</BlockEditorProvider>\n\t\t</div>\n\t);\n};\n\nexport const StyleBookBody = ( {\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\ttitle,\n\tgoTo,\n} ) => {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\tconst [ hasIframeLoaded, setHasIframeLoaded ] = useState( false );\n\tconst iframeRef = useRef( null );\n\t// The presence of an `onClick` prop indicates that the Style Book is being used as a button.\n\t// In this case, add additional props to the iframe to make it behave like a button.\n\tconst buttonModeProps = {\n\t\trole: 'button',\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( onClick && ( keyCode === ENTER || keyCode === SPACE ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\tonClick: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( onClick ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\n\tconst handleLoad = () => setHasIframeLoaded( true );\n\tuseLayoutEffect( () => {\n\t\tif ( hasIframeLoaded && iframeRef?.current ) {\n\t\t\tif ( goTo?.top ) {\n\t\t\t\tscrollToSection( 'top', iframeRef?.current );\n\t\t\t}\n\t\t}\n\t}, [ iframeRef?.current, goTo, scrollToSection, hasIframeLoaded ] );\n\n\treturn (\n\t\t<Iframe\n\t\t\tonLoad={ handleLoad }\n\t\t\tref={ iframeRef }\n\t\t\tclassName={ clsx( 'edit-site-style-book__iframe', {\n\t\t\t\t'is-focused': isFocused && !! onClick,\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tname=\"style-book-canvas\"\n\t\t\ttabIndex={ 0 }\n\t\t\t{ ...( onClick ? buttonModeProps : {} ) }\n\t\t>\n\t\t\t<EditorStyles styles={ settings.styles } />\n\t\t\t<style>\n\t\t\t\t{ STYLE_BOOK_IFRAME_STYLES }\n\t\t\t\t{ !! onClick &&\n\t\t\t\t\t'body { cursor: pointer; } body * { pointer-events: none; }' }\n\t\t\t</style>\n\t\t\t<Examples\n\t\t\t\tclassName=\"edit-site-style-book__examples\"\n\t\t\t\tfilteredExamples={ examples }\n\t\t\t\tlabel={\n\t\t\t\t\ttitle\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Category of blocks, e.g. Text.\n\t\t\t\t\t\t\t\t__( 'Examples of blocks in the %s category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Examples of blocks' )\n\t\t\t\t}\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tkey={ title }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, filteredExamples, label, isSelected, onSelect } ) => {\n\t\treturn (\n\t\t\t<Composite\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ label }\n\t\t\t\trole=\"grid\"\n\t\t\t>\n\t\t\t\t{ !! filteredExamples?.examples?.length &&\n\t\t\t\t\tfilteredExamples.examples.map( ( example ) => (\n\t\t\t\t\t\t<Example\n\t\t\t\t\t\t\tkey={ example.name }\n\t\t\t\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\t\t\tcontent={ example.content }\n\t\t\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t!! onSelect\n\t\t\t\t\t\t\t\t\t? () =>\n\t\t\t\t\t\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\t\t\t\t\t\texample.name,\n\t\t\t\t\t\t\t\t\t\t\t\t!! example.variation\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: null\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{ !! filteredExamples?.subcategories?.length &&\n\t\t\t\t\tfilteredExamples.subcategories.map( ( subcategory ) => (\n\t\t\t\t\t\t<Composite.Group\n\t\t\t\t\t\t\tclassName=\"edit-site-style-book__subcategory\"\n\t\t\t\t\t\t\tkey={ `subcategory-${ subcategory.slug }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Composite.GroupLabel>\n\t\t\t\t\t\t\t\t<h2 className=\"edit-site-style-book__subcategory-title\">\n\t\t\t\t\t\t\t\t\t{ subcategory.title }\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t</Composite.GroupLabel>\n\t\t\t\t\t\t\t<Subcategory\n\t\t\t\t\t\t\t\texamples={ subcategory.examples }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Composite.Group>\n\t\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t);\n\t}\n);\n\nconst Subcategory = ( { examples, isSelected, onSelect } ) => {\n\treturn (\n\t\t!! examples?.length &&\n\t\texamples.map( ( example ) => (\n\t\t\t<Example\n\t\t\t\tkey={ example.name }\n\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\ttitle={ example.title }\n\t\t\t\tcontent={ example.content }\n\t\t\t\tblocks={ example.blocks }\n\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\tonClick={ !! onSelect ? () => onSelect( example.name ) : null }\n\t\t\t/>\n\t\t) )\n\t);\n};\n\nconst disabledExamples = [ 'example-duotones' ];\n\nconst Example = ( { id, title, blocks, isSelected, onClick, content } ) => {\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\tfocusMode: false, // Disable \"Spotlight mode\".\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\n\t// Cache the list of blocks to avoid additional processing when the component is re-rendered.\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst disabledProps =\n\t\tdisabledExamples.includes( id ) || ! onClick\n\t\t\t? {\n\t\t\t\t\tdisabled: true,\n\t\t\t\t\taccessibleWhenDisabled: !! onClick,\n\t\t\t }\n\t\t\t: {};\n\n\treturn (\n\t\t<div role=\"row\">\n\t\t\t<div role=\"gridcell\">\n\t\t\t\t<Composite.Item\n\t\t\t\t\tclassName={ clsx( 'edit-site-style-book__example', {\n\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t'is-disabled-example': !! disabledProps?.disabled,\n\t\t\t\t\t} ) }\n\t\t\t\t\tid={ id }\n\t\t\t\t\taria-label={\n\t\t\t\t\t\t!! onClick\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t\t\t\t\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\trender={ <div /> }\n\t\t\t\t\trole={ !! onClick ? 'button' : null }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t{ ...disabledProps }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"edit-site-style-book__example-title\">\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</span>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-site-style-book__example-preview\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<Disabled className=\"edit-site-style-book__example-preview__content\">\n\t\t\t\t\t\t\t{ content ? (\n\t\t\t\t\t\t\t\tcontent\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\t\t\t\tvalue={ renderedBlocks }\n\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<EditorStyles />\n\t\t\t\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Disabled>\n\t\t\t\t\t</div>\n\t\t\t\t</Composite.Item>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default StyleBook;\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\tDisabled,\n\tComposite,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tuseSettings,\n\tBlockEditorProvider,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { useSelect, dispatch } from '@wordpress/data';\nimport {\n\tuseMemo,\n\tuseState,\n\tmemo,\n\tuseContext,\n\tuseRef,\n\tuseLayoutEffect,\n\tuseEffect,\n} from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport EditorCanvasContainer from '../editor-canvas-container';\nimport { STYLE_BOOK_IFRAME_STYLES } from './constants';\nimport {\n\tgetExamplesByCategory,\n\tgetTopLevelStyleBookCategories,\n} from './categories';\nimport { getExamples } from './examples';\nimport { store as siteEditorStore } from '../../store';\nimport { useSection } from '../sidebar-global-styles-wrapper';\nimport { GlobalStylesRenderer } from '../global-styles-renderer';\nimport { getVariationClassName } from '../global-styles/utils';\nimport {\n\tSTYLE_BOOK_COLOR_GROUPS,\n\tSTYLE_BOOK_PREVIEW_CATEGORIES,\n} from '../style-book/constants';\n\nconst {\n\tExperimentalBlockEditorProvider,\n\tuseGlobalStyle,\n\tGlobalStylesContext,\n\tuseGlobalStylesOutputWithConfig,\n} = unlock( blockEditorPrivateApis );\nconst { mergeBaseAndUserConfigs } = unlock( editorPrivateApis );\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\n/**\n * Scrolls to a section within an iframe.\n *\n * @param {string} anchorId The id of the element to scroll to.\n * @param {HTMLIFrameElement} iframe The target iframe.\n */\nconst scrollToSection = ( anchorId, iframe ) => {\n\tif ( ! anchorId || ! iframe || ! iframe?.contentDocument ) {\n\t\treturn;\n\t}\n\n\tconst element =\n\t\tanchorId === 'top'\n\t\t\t? iframe.contentDocument.body\n\t\t\t: iframe.contentDocument.getElementById( anchorId );\n\tif ( element ) {\n\t\telement.scrollIntoView( {\n\t\t\tbehavior: 'smooth',\n\t\t} );\n\t}\n};\n\n/**\n * Parses a Block Editor navigation path to build a style book navigation path.\n * The object can be extended to include a category, representing a style book tab/section.\n *\n * @param {string} path An internal Block Editor navigation path.\n * @return {null|{block: string}} An object containing the example to navigate to.\n */\nconst getStyleBookNavigationFromPath = ( path ) => {\n\tif ( path && typeof path === 'string' ) {\n\t\tif (\n\t\t\tpath === '/' ||\n\t\t\tpath.startsWith( '/typography' ) ||\n\t\t\tpath.startsWith( '/colors' ) ||\n\t\t\tpath.startsWith( '/blocks' )\n\t\t) {\n\t\t\treturn {\n\t\t\t\ttop: true,\n\t\t\t};\n\t\t}\n\t}\n\treturn null;\n};\n\n/**\n * Retrieves colors, gradients, and duotone filters from Global Styles.\n * The inclusion of default (Core) palettes is controlled by the relevant\n * theme.json property e.g. defaultPalette, defaultGradients, defaultDuotone.\n *\n * @return {Object} Object containing properties for each type of palette.\n */\nfunction useMultiOriginPalettes() {\n\tconst { colors, gradients } = useMultipleOriginColorsAndGradients();\n\n\t// Add duotone filters to the palettes data.\n\tconst [\n\t\tshouldDisplayDefaultDuotones,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t] = useSettings(\n\t\t'color.defaultDuotone',\n\t\t'color.duotone.custom',\n\t\t'color.duotone.theme',\n\t\t'color.duotone.default'\n\t);\n\n\tconst palettes = useMemo( () => {\n\t\tconst result = { colors, gradients, duotones: [] };\n\n\t\tif ( themeDuotones && themeDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates these duotone filters come from the theme.'\n\t\t\t\t),\n\t\t\t\tslug: 'theme',\n\t\t\t\tduotones: themeDuotones,\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tshouldDisplayDefaultDuotones &&\n\t\t\tdefaultDuotones &&\n\t\t\tdefaultDuotones.length\n\t\t) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates these duotone filters come from WordPress.'\n\t\t\t\t),\n\t\t\t\tslug: 'default',\n\t\t\t\tduotones: defaultDuotones,\n\t\t\t} );\n\t\t}\n\t\tif ( customDuotones && customDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates these doutone filters are created by the user.'\n\t\t\t\t),\n\t\t\t\tslug: 'custom',\n\t\t\t\tduotones: customDuotones,\n\t\t\t} );\n\t\t}\n\n\t\treturn result;\n\t}, [\n\t\tcolors,\n\t\tgradients,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t\tshouldDisplayDefaultDuotones,\n\t] );\n\n\treturn palettes;\n}\n\n/**\n * Get deduped examples for single page stylebook.\n * @param {Array} examples Array of examples.\n * @return {Array} Deduped examples.\n */\nexport function getExamplesForSinglePageUse( examples ) {\n\tconst examplesForSinglePageUse = [];\n\tconst overviewCategoryExamples = getExamplesByCategory(\n\t\t{ slug: 'overview' },\n\t\texamples\n\t);\n\texamplesForSinglePageUse.push( ...overviewCategoryExamples.examples );\n\tconst otherExamples = examples.filter( ( example ) => {\n\t\treturn (\n\t\t\texample.category !== 'overview' &&\n\t\t\t! overviewCategoryExamples.examples.find(\n\t\t\t\t( overviewExample ) => overviewExample.name === example.name\n\t\t\t)\n\t\t);\n\t} );\n\texamplesForSinglePageUse.push( ...otherExamples );\n\n\treturn examplesForSinglePageUse;\n}\n\n/**\n * Applies a block variation to each example by updating its attributes.\n *\n * @param {Array} examples Array of examples\n * @param {string} variation Block variation name.\n * @return {Array} Updated examples with variation applied.\n */\nfunction applyBlockVariationsToExamples( examples, variation ) {\n\tif ( ! variation ) {\n\t\treturn examples;\n\t}\n\treturn examples.map( ( example ) => {\n\t\treturn {\n\t\t\t...example,\n\t\t\tvariation,\n\t\t\tblocks: Array.isArray( example.blocks )\n\t\t\t\t? example.blocks.map( ( block ) => ( {\n\t\t\t\t\t\t...block,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...block.attributes,\n\t\t\t\t\t\t\tstyle: undefined,\n\t\t\t\t\t\t\tclassName: getVariationClassName( variation ),\n\t\t\t\t\t\t},\n\t\t\t\t } ) )\n\t\t\t\t: {\n\t\t\t\t\t\t...example.blocks,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...example.blocks.attributes,\n\t\t\t\t\t\t\tstyle: undefined,\n\t\t\t\t\t\t\tclassName: getVariationClassName( variation ),\n\t\t\t\t\t\t},\n\t\t\t\t },\n\t\t};\n\t} );\n}\n\nfunction StyleBook( {\n\tenableResizing = true,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tshowCloseButton = true,\n\tonClose,\n\tshowTabs = true,\n\tuserConfig = {},\n\tpath = '',\n} ) {\n\tconst [ textColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = useMemo( () => getExamples( colors ), [ colors ] );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetTopLevelStyleBookCategories().filter( ( category ) =>\n\t\t\t\texamples.some(\n\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t)\n\t\t\t),\n\t\t[ examples ]\n\t);\n\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\tconst goTo = getStyleBookNavigationFromPath( path );\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\t// Copied from packages/edit-site/src/components/revisions/index.js\n\t// could we create a shared hook?\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: originalSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, originalSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\tonClose={ onClose }\n\t\t\tenableResizing={ enableResizing }\n\t\t\tcloseButtonLabel={ showCloseButton ? __( 'Close' ) : null }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'edit-site-style-book', {\n\t\t\t\t\t'is-button': !! onClick,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tbackground: backgroundColor,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<Tabs>\n\t\t\t\t\t\t<div className=\"edit-site-style-book__tablist-container\">\n\t\t\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\t\t\t\ttabId={ tab.slug }\n\t\t\t\t\t\t\t\t\t\tkey={ tab.slug }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{ tabs.map( ( tab ) => {\n\t\t\t\t\t\t\tconst categoryDefinition = tab.slug\n\t\t\t\t\t\t\t\t? getTopLevelStyleBookCategories().find(\n\t\t\t\t\t\t\t\t\t\t( _category ) =>\n\t\t\t\t\t\t\t\t\t\t\t_category.slug === tab.slug\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\t\tconst filteredExamples = categoryDefinition\n\t\t\t\t\t\t\t\t? getExamplesByCategory(\n\t\t\t\t\t\t\t\t\t\tcategoryDefinition,\n\t\t\t\t\t\t\t\t\t\texamples\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: { examples };\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\tkey={ tab.slug }\n\t\t\t\t\t\t\t\t\ttabId={ tab.slug }\n\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-style-book__tabpanel\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\t\t\tcategory={ tab.slug }\n\t\t\t\t\t\t\t\t\t\texamples={ filteredExamples }\n\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</Tabs>\n\t\t\t\t) : (\n\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\texamples={ { examples: examplesForSinglePageUse } }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\n/**\n * Style Book Preview component renders the stylebook without the Editor dependency.\n *\n * @param {Object} props Component props.\n * @param {Object} props.userConfig User configuration.\n * @param {boolean} props.isStatic Whether the stylebook is static or clickable.\n * @return {Object} Style Book Preview component.\n */\nexport const StyleBookPreview = ( { userConfig = {}, isStatic = false } ) => {\n\tconst siteEditorSettings = useSelect(\n\t\t( select ) => select( siteEditorStore ).getSettings(),\n\t\t[]\n\t);\n\n\tconst canUserUploadMedia = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'attachment',\n\t\t\t} ),\n\t\t[]\n\t);\n\n\t// Update block editor settings because useMultipleOriginColorsAndGradients fetch colours from there.\n\tuseEffect( () => {\n\t\tdispatch( blockEditorStore ).updateSettings( {\n\t\t\t...siteEditorSettings,\n\t\t\tmediaUpload: canUserUploadMedia ? uploadMedia : undefined,\n\t\t} );\n\t}, [ siteEditorSettings, canUserUploadMedia ] );\n\n\tconst [ section, onChangeSection ] = useSection();\n\n\tconst isSelected = ( blockName ) => {\n\t\t// Match '/blocks/core%2Fbutton' and\n\t\t// '/blocks/core%2Fbutton/typography', but not\n\t\t// '/blocks/core%2Fbuttons'.\n\t\treturn (\n\t\t\tsection === `/blocks/${ encodeURIComponent( blockName ) }` ||\n\t\t\tsection.startsWith(\n\t\t\t\t`/blocks/${ encodeURIComponent( blockName ) }/`\n\t\t\t)\n\t\t);\n\t};\n\n\tconst onSelect = ( blockName, isBlockVariation = false ) => {\n\t\tif (\n\t\t\tSTYLE_BOOK_COLOR_GROUPS.find(\n\t\t\t\t( group ) => group.slug === blockName\n\t\t\t)\n\t\t) {\n\t\t\t// Go to color palettes Global Styles.\n\t\t\tonChangeSection( '/colors/palette' );\n\t\t\treturn;\n\t\t}\n\t\tif ( blockName === 'typography' ) {\n\t\t\t// Go to typography Global Styles.\n\t\t\tonChangeSection( '/typography' );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlockVariation ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Now go to the selected block.\n\t\tonChangeSection( `/blocks/${ encodeURIComponent( blockName ) }` );\n\t};\n\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = getExamples( colors );\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tlet previewCategory = null;\n\tlet blockVariation = null;\n\tif ( section.includes( '/colors' ) ) {\n\t\tpreviewCategory = 'colors';\n\t} else if ( section.includes( '/typography' ) ) {\n\t\tpreviewCategory = 'text';\n\t} else if ( section.includes( '/blocks' ) ) {\n\t\tpreviewCategory = 'blocks';\n\t\tlet blockName = decodeURIComponent( section ).split( '/blocks/' )[ 1 ];\n\n\t\t// The blockName can contain variations, if so, extract the variation.\n\t\tif ( blockName?.includes( '/variations' ) ) {\n\t\t\t[ blockName, blockVariation ] = blockName.split( '/variations/' );\n\t\t}\n\n\t\tif (\n\t\t\tblockName &&\n\t\t\texamples.find( ( example ) => example.name === blockName )\n\t\t) {\n\t\t\tpreviewCategory = blockName;\n\t\t}\n\t} else if ( ! isStatic ) {\n\t\tpreviewCategory = 'overview';\n\t}\n\tconst categoryDefinition = STYLE_BOOK_PREVIEW_CATEGORIES.find(\n\t\t( category ) => category.slug === previewCategory\n\t);\n\n\tconst filteredExamples = useMemo( () => {\n\t\t// If there's no category definition there may be a single block.\n\t\tif ( ! categoryDefinition ) {\n\t\t\treturn {\n\t\t\t\texamples: [\n\t\t\t\t\texamples.find(\n\t\t\t\t\t\t( example ) => example.name === previewCategory\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t};\n\t\t}\n\n\t\treturn getExamplesByCategory( categoryDefinition, examples );\n\t}, [ categoryDefinition, examples, previewCategory ] );\n\n\tconst displayedExamples = useMemo( () => {\n\t\t// If there's no preview category, show all examples.\n\t\tif ( ! previewCategory ) {\n\t\t\treturn { examples: examplesForSinglePageUse };\n\t\t}\n\n\t\tif ( blockVariation ) {\n\t\t\treturn {\n\t\t\t\texamples: applyBlockVariationsToExamples(\n\t\t\t\t\tfilteredExamples.examples,\n\t\t\t\t\tblockVariation\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn filteredExamples;\n\t}, [\n\t\tpreviewCategory,\n\t\texamplesForSinglePageUse,\n\t\tblockVariation,\n\t\tfilteredExamples,\n\t] );\n\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\tconst goTo = getStyleBookNavigationFromPath( section );\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 [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...siteEditorSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: siteEditorSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, siteEditorSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<div className=\"edit-site-style-book\">\n\t\t\t<BlockEditorProvider settings={ settings }>\n\t\t\t\t<GlobalStylesRenderer disableRootPadding />\n\t\t\t\t<StyleBookBody\n\t\t\t\t\texamples={ displayedExamples }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\tisSelected={ ! isStatic ? isSelected : null }\n\t\t\t\t\tonSelect={ ! isStatic ? onSelect : null }\n\t\t\t\t/>\n\t\t\t</BlockEditorProvider>\n\t\t</div>\n\t);\n};\n\nexport const StyleBookBody = ( {\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\ttitle,\n\tgoTo,\n} ) => {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\tconst [ hasIframeLoaded, setHasIframeLoaded ] = useState( false );\n\tconst iframeRef = useRef( null );\n\t// The presence of an `onClick` prop indicates that the Style Book is being used as a button.\n\t// In this case, add additional props to the iframe to make it behave like a button.\n\tconst buttonModeProps = {\n\t\trole: 'button',\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( onClick && ( keyCode === ENTER || keyCode === SPACE ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\tonClick: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( onClick ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\n\tconst handleLoad = () => setHasIframeLoaded( true );\n\tuseLayoutEffect( () => {\n\t\tif ( hasIframeLoaded && iframeRef?.current ) {\n\t\t\tif ( goTo?.top ) {\n\t\t\t\tscrollToSection( 'top', iframeRef?.current );\n\t\t\t}\n\t\t}\n\t}, [ iframeRef?.current, goTo, scrollToSection, hasIframeLoaded ] );\n\n\treturn (\n\t\t<Iframe\n\t\t\tonLoad={ handleLoad }\n\t\t\tref={ iframeRef }\n\t\t\tclassName={ clsx( 'edit-site-style-book__iframe', {\n\t\t\t\t'is-focused': isFocused && !! onClick,\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tname=\"style-book-canvas\"\n\t\t\ttabIndex={ 0 }\n\t\t\t{ ...( onClick ? buttonModeProps : {} ) }\n\t\t>\n\t\t\t<EditorStyles styles={ settings.styles } />\n\t\t\t<style>\n\t\t\t\t{ STYLE_BOOK_IFRAME_STYLES }\n\t\t\t\t{ !! onClick &&\n\t\t\t\t\t'body { cursor: pointer; } body * { pointer-events: none; }' }\n\t\t\t</style>\n\t\t\t<Examples\n\t\t\t\tclassName=\"edit-site-style-book__examples\"\n\t\t\t\tfilteredExamples={ examples }\n\t\t\t\tlabel={\n\t\t\t\t\ttitle\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Category of blocks, e.g. Text.\n\t\t\t\t\t\t\t\t__( 'Examples of blocks in the %s category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Examples of blocks' )\n\t\t\t\t}\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tkey={ title }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, filteredExamples, label, isSelected, onSelect } ) => {\n\t\treturn (\n\t\t\t<Composite\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ label }\n\t\t\t\trole=\"grid\"\n\t\t\t>\n\t\t\t\t{ !! filteredExamples?.examples?.length &&\n\t\t\t\t\tfilteredExamples.examples.map( ( example ) => (\n\t\t\t\t\t\t<Example\n\t\t\t\t\t\t\tkey={ example.name }\n\t\t\t\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\t\t\tcontent={ example.content }\n\t\t\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t!! onSelect\n\t\t\t\t\t\t\t\t\t? () =>\n\t\t\t\t\t\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\t\t\t\t\t\texample.name,\n\t\t\t\t\t\t\t\t\t\t\t\t!! example.variation\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: null\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{ !! filteredExamples?.subcategories?.length &&\n\t\t\t\t\tfilteredExamples.subcategories.map( ( subcategory ) => (\n\t\t\t\t\t\t<Composite.Group\n\t\t\t\t\t\t\tclassName=\"edit-site-style-book__subcategory\"\n\t\t\t\t\t\t\tkey={ `subcategory-${ subcategory.slug }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Composite.GroupLabel>\n\t\t\t\t\t\t\t\t<h2 className=\"edit-site-style-book__subcategory-title\">\n\t\t\t\t\t\t\t\t\t{ subcategory.title }\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t</Composite.GroupLabel>\n\t\t\t\t\t\t\t<Subcategory\n\t\t\t\t\t\t\t\texamples={ subcategory.examples }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Composite.Group>\n\t\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t);\n\t}\n);\n\nconst Subcategory = ( { examples, isSelected, onSelect } ) => {\n\treturn (\n\t\t!! examples?.length &&\n\t\texamples.map( ( example ) => (\n\t\t\t<Example\n\t\t\t\tkey={ example.name }\n\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\ttitle={ example.title }\n\t\t\t\tcontent={ example.content }\n\t\t\t\tblocks={ example.blocks }\n\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\tonClick={ !! onSelect ? () => onSelect( example.name ) : null }\n\t\t\t/>\n\t\t) )\n\t);\n};\n\nconst disabledExamples = [ 'example-duotones' ];\n\nconst Example = ( { id, title, blocks, isSelected, onClick, content } ) => {\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\tfocusMode: false, // Disable \"Spotlight mode\".\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\n\t// Cache the list of blocks to avoid additional processing when the component is re-rendered.\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst disabledProps =\n\t\tdisabledExamples.includes( id ) || ! onClick\n\t\t\t? {\n\t\t\t\t\tdisabled: true,\n\t\t\t\t\taccessibleWhenDisabled: !! onClick,\n\t\t\t }\n\t\t\t: {};\n\n\treturn (\n\t\t<div role=\"row\">\n\t\t\t<div role=\"gridcell\">\n\t\t\t\t<Composite.Item\n\t\t\t\t\tclassName={ clsx( 'edit-site-style-book__example', {\n\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t'is-disabled-example': !! disabledProps?.disabled,\n\t\t\t\t\t} ) }\n\t\t\t\t\tid={ id }\n\t\t\t\t\taria-label={\n\t\t\t\t\t\t!! onClick\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t\t\t\t\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\trender={ <div /> }\n\t\t\t\t\trole={ !! onClick ? 'button' : null }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t{ ...disabledProps }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"edit-site-style-book__example-title\">\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</span>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-site-style-book__example-preview\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<Disabled className=\"edit-site-style-book__example-preview__content\">\n\t\t\t\t\t\t\t{ content ? (\n\t\t\t\t\t\t\t\tcontent\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\t\t\t\tvalue={ renderedBlocks }\n\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<EditorStyles />\n\t\t\t\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Disabled>\n\t\t\t\t\t</div>\n\t\t\t\t</Composite.Item>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default StyleBook;\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_constants", "blockEditorPrivateApis", "editorPrivateApis", "componentsPrivateApis", "useMultipleOriginColorsAndGradients", "blockEditorStore", "EditorCanvasContainer", "clsx", "siteEditorStore", "coreStore", "Iframe", "EditorStyles"]
7
7
  }
@@ -22,7 +22,13 @@ const useSetActiveTemplateAction = () => {
22
22
  isPrimary: true,
23
23
  icon: pencil,
24
24
  isEligible(item) {
25
- return !item._isCustom && !(item.slug === "index" && item.source === "theme") && item.theme === activeTheme.stylesheet;
25
+ if (item.theme !== activeTheme.stylesheet) {
26
+ return false;
27
+ }
28
+ if (typeof item.id !== "number") {
29
+ return item._isActive === false;
30
+ }
31
+ return true;
26
32
  },
27
33
  async callback(items) {
28
34
  const deactivate = items.some((item) => item._isActive);
@@ -31,11 +37,7 @@ const useSetActiveTemplateAction = () => {
31
37
  };
32
38
  for (const item of items) {
33
39
  if (deactivate) {
34
- if (item.source === "theme") {
35
- activeTemplates[item.slug] = false;
36
- } else {
37
- delete activeTemplates[item.slug];
38
- }
40
+ delete activeTemplates[item.slug];
39
41
  } else {
40
42
  activeTemplates[item.slug] = item.id;
41
43
  }
@@ -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._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;",
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\tif ( item.theme !== activeTheme.stylesheet ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// If it's not a created template but a registered template,\n\t\t\t\t// only allow activating (so when it's inactive).\n\t\t\t\tif ( typeof item.id !== 'number' ) {\n\t\t\t\t\treturn item._isActive === false;\n\t\t\t\t}\n\n\t\t\t\treturn true;\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\tdelete activeTemplates[ item.slug ];\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,YAAK,KAAK,UAAU,YAAY,YAAa;AAC5C,iBAAO;AAAA,QACR;AAIA,YAAK,OAAO,KAAK,OAAO,UAAW;AAClC,iBAAO,KAAK,cAAc;AAAA,QAC3B;AAEA,eAAO;AAAA,MACR;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,mBAAO,gBAAiB,KAAK,IAAK;AAAA,UACnC,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,7 +1,9 @@
1
1
  import { useEffect } from "@wordpress/element";
2
2
  import { useSelect, useDispatch } from "@wordpress/data";
3
+ import { privateApis as blockEditorPrivateApis } from "@wordpress/block-editor";
3
4
  import { store as editSiteStore } from "../../store";
4
- import { useGlobalStylesOutput } from "../../hooks/use-global-styles-output";
5
+ import { unlock } from "../../lock-unlock";
6
+ const { useGlobalStylesOutput } = unlock(blockEditorPrivateApis);
5
7
  function useGlobalStylesRenderer(disableRootPadding) {
6
8
  const [styles, settings] = useGlobalStylesOutput(disableRootPadding);
7
9
  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';\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;",
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;",
6
6
  "names": []
7
7
  }
@@ -29,9 +29,8 @@ const { useEntityRecordsWithPermissions } = unlock(corePrivateApis);
29
29
  function useAllDefaultTemplateTypes() {
30
30
  const defaultTemplateTypes = useDefaultTemplateTypes();
31
31
  const { records: staticRecords } = useEntityRecordsWithPermissions(
32
- "postType",
33
- "wp_registered_template",
34
- { per_page: -1 }
32
+ "root",
33
+ "registeredTemplate"
35
34
  );
36
35
  return [
37
36
  ...defaultTemplateTypes,
@@ -115,39 +114,33 @@ const authorField = {
115
114
  const activeField = {
116
115
  label: __("Status"),
117
116
  id: "active",
117
+ type: "boolean",
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
+ const activeLabel = item._isCustom ? __("Active when used") : __("Active");
121
+ const activeIntent = item._isCustom ? "info" : "success";
132
122
  const isActive = item._isActive;
133
- return /* @__PURE__ */ jsx(Badge, { intent: isActive ? "success" : "default", children: isActive ? __("Active") : __("Inactive") });
123
+ return /* @__PURE__ */ jsx(Badge, { intent: isActive ? activeIntent : "default", children: isActive ? activeLabel : __("Inactive") });
134
124
  }
135
125
  };
136
126
  const useThemeField = () => {
137
127
  const activeTheme = useSelect(
138
128
  (select) => select(coreStore).getCurrentTheme()
139
129
  );
140
- return {
141
- label: __("Compatible Theme"),
142
- id: "theme",
143
- getValue: ({ item }) => item.theme,
144
- render: function Render3({ item }) {
145
- if (item.theme === activeTheme.stylesheet) {
146
- return /* @__PURE__ */ jsx(Badge, { intent: "success", children: item.theme });
130
+ return useMemo(
131
+ () => ({
132
+ label: __("Compatible Theme"),
133
+ id: "theme",
134
+ getValue: ({ item }) => item.theme,
135
+ render: function Render3({ item }) {
136
+ if (item.theme === activeTheme.stylesheet) {
137
+ return /* @__PURE__ */ jsx(Badge, { intent: "success", children: item.theme });
138
+ }
139
+ return /* @__PURE__ */ jsx(Badge, { intent: "error", children: item.theme });
147
140
  }
148
- return /* @__PURE__ */ jsx(Badge, { intent: "error", children: item.theme });
149
- }
150
- };
141
+ }),
142
+ [activeTheme]
143
+ );
151
144
  };
152
145
  const slugField = {
153
146
  label: __("Template Type"),
@@ -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 { __, _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": "AA8EG,SAOG,KAPH;AA3EH,OAAO,UAAU;AAKjB;AAAA,EACC;AAAA,EACA,wBAAwB;AAAA,EACxB,eAAe;AAAA,OACT;AACP,SAAS,IAAI,UAAU;AACvB,SAAS,UAAU,eAAe;AAClC,SAAS,sBAAsB;AAC/B,SAAS,aAAa;AACtB;AAAA,EACC;AAAA,EACA,eAAe;AAAA,OACT;AACP,SAAS,sBAAsB;AAC/B;AAAA,EACC,eAAe;AAAA,EACf,SAAS;AAAA,OACH;AACP,SAAS,iBAAiB;AAK1B,SAAS,kBAAkB;AAC3B,SAAS,+BAA+B;AACxC,OAAO,wBAAwB;AAC/B,SAAS,cAAc;AAEvB,MAAM,EAAE,eAAe,IAAI,OAAQ,sBAAuB;AAC1D,MAAM,EAAE,MAAM,IAAI,OAAQ,qBAAsB;AAChD,MAAM,EAAE,gCAAgC,IAAI,OAAQ,eAAgB;AAEpE,SAAS,6BAA6B;AACrC,QAAM,uBAAuB,wBAAwB;AACrD,QAAM,EAAE,SAAS,cAAc,IAAI;AAAA,IAClC;AAAA,IACA;AAAA,IACA,EAAE,UAAU,GAAG;AAAA,EAChB;AACA,SAAO;AAAA,IACN,GAAG;AAAA,IACH,GAAG,eACA,OAAQ,CAAE,WAAY,CAAE,OAAO,SAAU,EAC1C,IAAK,CAAE,WAAY;AACnB,aAAO;AAAA,QACN,MAAM,OAAO;AAAA,QACb,OAAO,OAAO,MAAM;AAAA,QACpB,aAAa,OAAO;AAAA,MACrB;AAAA,IACD,CAAE;AAAA,EACJ;AACD;AAEA,SAAS,aAAc,EAAE,KAAK,GAAI;AACjC,QAAM,WAAW,mBAAmB;AACpC,QAAM,CAAE,kBAAkB,OAAQ,IAAI,eAAgB,kBAAmB;AACzE,QAAM,SAAS,QAAS,MAAM;AAC7B,WAAO,MAAO,KAAK,QAAQ,GAAI;AAAA,EAChC,GAAG,CAAE,KAAK,QAAQ,GAAI,CAAE;AAExB,QAAM,UAAU,CAAE,QAAQ;AAQ1B,SACC,oBAAC,kBAAe,MAAO,MAAO,UAC7B;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,OAAQ,EAAE,gBAAgB;AAAA,MAExB;AAAA,mBAAW,GAAI,gBAAiB;AAAA,QAChC,CAAE,WACH,oBAAC,aAAa,OAAb,EACA,8BAAC,gBAAa,QAAkB,GACjC;AAAA;AAAA;AAAA,EAEF,GACD;AAEF;AAEO,MAAM,eAAe;AAAA,EAC3B,OAAO,GAAI,SAAU;AAAA,EACrB,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,eAAe;AAChB;AAEO,MAAM,mBAAmB;AAAA,EAC/B,OAAO,GAAI,aAAc;AAAA,EACzB,IAAI;AAAA,EACJ,QAAQ,SAAS,kBAAmB,EAAE,KAAK,GAAI;AAC9C,UAAM,uBAAuB,2BAA2B;AACxD,UAAM,sBAAsB,qBAAqB;AAAA,MAChD,CAAE,SAAU,KAAK,SAAS,KAAK;AAAA,IAChC;AACA,WAAO,KAAK,cACT,eAAgB,KAAK,WAAY,IACjC,qBAAqB;AAAA,EACzB;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AACrB;AAEA,SAAS,YAAa,EAAE,KAAK,GAAI;AAChC,QAAM,CAAE,eAAe,gBAAiB,IAAI,SAAU,KAAM;AAC5D,QAAM,EAAE,MAAM,MAAM,SAAS,IAAI,WAAY,KAAK,MAAM,KAAK,EAAG;AAEhE,SACC,qBAAC,UAAO,WAAU,QAAO,SAAU,GAChC;AAAA,gBACD;AAAA,MAAC;AAAA;AAAA,QACA,WAAY,KAAM,uCAAuC;AAAA,UACxD,aAAa;AAAA,QACd,CAAE;AAAA,QAEF;AAAA,UAAC;AAAA;AAAA,YACA,QAAS,MAAM,iBAAkB,IAAK;AAAA,YACtC,KAAI;AAAA,YACJ,KAAM;AAAA;AAAA,QACP;AAAA;AAAA,IACD;AAAA,IAEC,CAAE,YACH,oBAAC,SAAI,WAAU,qCACd,8BAAC,QAAK,MAAc,GACrB;AAAA,IAED,oBAAC,UAAK,WAAU,qCAAsC,gBAAM;AAAA,KAC7D;AAEF;AAEO,MAAM,cAAc;AAAA,EAC1B,OAAO,GAAI,QAAS;AAAA,EACpB,IAAI;AAAA,EACJ,UAAU,CAAE,EAAE,KAAK,MAAO,KAAK,eAAe,KAAK;AAAA,EACnD,QAAQ;AACT;AAEO,MAAM,cAAc;AAAA,EAC1B,OAAO,GAAI,QAAS;AAAA,EACpB,IAAI;AAAA,EACJ,UAAU,CAAE,EAAE,KAAK,MAAO,KAAK;AAAA,EAC/B,QAAQ,SAAS,OAAQ,EAAE,KAAK,GAAI;AACnC,QAAK,KAAK,WAAY;AACrB,aACC;AAAA,QAAC;AAAA;AAAA,UACA,QAAO;AAAA,UACP,OAAQ;AAAA,YACP;AAAA,UACD;AAAA,UAEE,aAAI,KAAM;AAAA;AAAA,MACb;AAAA,IAEF;AAEA,UAAM,WAAW,KAAK;AACtB,WACC,oBAAC,SAAM,QAAS,WAAW,YAAY,WACpC,qBAAW,GAAI,QAAS,IAAI,GAAI,UAAW,GAC9C;AAAA,EAEF;AACD;AAEO,MAAM,gBAAgB,MAAM;AAClC,QAAM,cAAc;AAAA,IAAW,CAAE,WAChC,OAAQ,SAAU,EAAE,gBAAgB;AAAA,EACrC;AACA,SAAO;AAAA,IACN,OAAO,GAAI,kBAAmB;AAAA,IAC9B,IAAI;AAAA,IACJ,UAAU,CAAE,EAAE,KAAK,MAAO,KAAK;AAAA,IAC/B,QAAQ,SAASA,QAAQ,EAAE,KAAK,GAAI;AACnC,UAAK,KAAK,UAAU,YAAY,YAAa;AAC5C,eAAO,oBAAC,SAAM,QAAO,WAAY,eAAK,OAAO;AAAA,MAC9C;AACA,aAAO,oBAAC,SAAM,QAAO,SAAU,eAAK,OAAO;AAAA,IAC5C;AAAA,EACD;AACD;AAEO,MAAM,YAAY;AAAA,EACxB,OAAO,GAAI,eAAgB;AAAA,EAC3B,IAAI;AAAA,EACJ,UAAU,CAAE,EAAE,KAAK,MAAO,KAAK;AAAA,EAC/B,QAAQ,SAASA,QAAQ,EAAE,KAAK,GAAI;AACnC,UAAM,uBAAuB,2BAA2B;AACxD,UAAM,sBAAsB,qBAAqB;AAAA,MAChD,CAAE,SAAU,KAAK,SAAS,KAAK;AAAA,IAChC;AACA,WAAO,qBAAqB,SAAS,GAAI,UAAU,eAAgB;AAAA,EACpE;AACD;",
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'root',\n\t\t'registeredTemplate'\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\ttype: 'boolean',\n\tgetValue: ( { item } ) => item._isActive,\n\trender: function Render( { item } ) {\n\t\tconst activeLabel = item._isCustom\n\t\t\t? __( 'Active when used' )\n\t\t\t: __( 'Active' );\n\t\tconst activeIntent = item._isCustom ? 'info' : 'success';\n\t\tconst isActive = item._isActive;\n\t\treturn (\n\t\t\t<Badge intent={ isActive ? activeIntent : 'default' }>\n\t\t\t\t{ isActive ? activeLabel : __( '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 useMemo(\n\t\t() => ( {\n\t\t\tlabel: __( 'Compatible Theme' ),\n\t\t\tid: 'theme',\n\t\t\tgetValue: ( { item } ) => item.theme,\n\t\t\trender: function Render( { item } ) {\n\t\t\t\tif ( item.theme === activeTheme.stylesheet ) {\n\t\t\t\t\treturn <Badge intent=\"success\">{ item.theme }</Badge>;\n\t\t\t\t}\n\t\t\t\treturn <Badge intent=\"error\">{ item.theme }</Badge>;\n\t\t\t},\n\t\t} ),\n\t\t[ activeTheme ]\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
  }