@wordpress/edit-site 6.25.0 → 6.26.1-next.719a03cbe.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-template/add-custom-generic-template-modal-content.js +13 -6
  3. package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  4. package/build/components/add-new-template/add-custom-template-modal-content.js +37 -1
  5. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  6. package/build/components/add-new-template/index.js +16 -3
  7. package/build/components/add-new-template/index.js.map +1 -1
  8. package/build/components/add-new-template/utils.js +1 -1
  9. package/build/components/add-new-template/utils.js.map +1 -1
  10. package/build/components/global-styles/font-sizes/font-sizes.js +1 -2
  11. package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -1
  12. package/build/components/global-styles/shadows-edit-panel.js +3 -7
  13. package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
  14. package/build/components/style-book/index.js +61 -13
  15. package/build/components/style-book/index.js.map +1 -1
  16. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js +14 -7
  17. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  18. package/build-module/components/add-new-template/add-custom-template-modal-content.js +37 -1
  19. package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  20. package/build-module/components/add-new-template/index.js +17 -4
  21. package/build-module/components/add-new-template/index.js.map +1 -1
  22. package/build-module/components/add-new-template/utils.js +1 -1
  23. package/build-module/components/add-new-template/utils.js.map +1 -1
  24. package/build-module/components/global-styles/font-sizes/font-sizes.js +1 -2
  25. package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -1
  26. package/build-module/components/global-styles/shadows-edit-panel.js +3 -7
  27. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
  28. package/build-module/components/style-book/index.js +61 -13
  29. package/build-module/components/style-book/index.js.map +1 -1
  30. package/build-style/posts-rtl.css +313 -19
  31. package/build-style/posts.css +313 -19
  32. package/build-style/style-rtl.css +315 -20
  33. package/build-style/style.css +315 -20
  34. package/package.json +42 -42
  35. package/src/components/add-new-template/add-custom-generic-template-modal-content.js +14 -6
  36. package/src/components/add-new-template/add-custom-template-modal-content.js +45 -1
  37. package/src/components/add-new-template/index.js +25 -3
  38. package/src/components/add-new-template/utils.js +1 -1
  39. package/src/components/global-styles/font-sizes/font-sizes.js +2 -2
  40. package/src/components/global-styles/shadows-edit-panel.js +1 -6
  41. package/src/components/global-styles/style.scss +2 -1
  42. package/src/components/style-book/index.js +76 -13
  43. package/tsconfig.tsbuildinfo +1 -1
@@ -24,6 +24,7 @@ var _examples = require("./examples");
24
24
  var _store = require("../../store");
25
25
  var _sidebarGlobalStylesWrapper = require("../sidebar-global-styles-wrapper");
26
26
  var _globalStylesRenderer = require("../global-styles-renderer");
27
+ var _utils = require("../global-styles/utils");
27
28
  var _constants2 = require("../style-book/constants");
28
29
  var _jsxRuntime = require("react/jsx-runtime");
29
30
  /**
@@ -154,6 +155,31 @@ function getExamplesForSinglePageUse(examples) {
154
155
  examplesForSinglePageUse.push(...otherExamples);
155
156
  return examplesForSinglePageUse;
156
157
  }
158
+
159
+ /**
160
+ * Applies a block variation to each example by updating its attributes.
161
+ *
162
+ * @param {Array} examples Array of examples
163
+ * @param {string} variation Block variation name.
164
+ * @return {Array} Updated examples with variation applied.
165
+ */
166
+ function applyBlockVariationsToExamples(examples, variation) {
167
+ if (!variation) {
168
+ return examples;
169
+ }
170
+ return examples.map(example => ({
171
+ ...example,
172
+ variation,
173
+ blocks: {
174
+ ...example.blocks,
175
+ attributes: {
176
+ ...example.blocks.attributes,
177
+ style: undefined,
178
+ className: (0, _utils.getVariationClassName)(variation)
179
+ }
180
+ }
181
+ }));
182
+ }
157
183
  function StyleBook({
158
184
  enableResizing = true,
159
185
  isSelected,
@@ -278,7 +304,7 @@ const StyleBookPreview = ({
278
304
  // '/blocks/core%2Fbuttons'.
279
305
  return section === `/blocks/${encodeURIComponent(blockName)}` || section.startsWith(`/blocks/${encodeURIComponent(blockName)}/`);
280
306
  };
281
- const onSelect = blockName => {
307
+ const onSelect = (blockName, isBlockVariation = false) => {
282
308
  if (_constants2.STYLE_BOOK_COLOR_GROUPS.find(group => group.slug === blockName)) {
283
309
  // Go to color palettes Global Styles.
284
310
  onChangeSection('/colors/palette');
@@ -289,6 +315,9 @@ const StyleBookPreview = ({
289
315
  onChangeSection('/typography');
290
316
  return;
291
317
  }
318
+ if (isBlockVariation) {
319
+ return;
320
+ }
292
321
 
293
322
  // Now go to the selected block.
294
323
  onChangeSection(`/blocks/${encodeURIComponent(blockName)}`);
@@ -297,13 +326,19 @@ const StyleBookPreview = ({
297
326
  const examples = (0, _examples.getExamples)(colors);
298
327
  const examplesForSinglePageUse = getExamplesForSinglePageUse(examples);
299
328
  let previewCategory = null;
329
+ let blockVariation = null;
300
330
  if (section.includes('/colors')) {
301
331
  previewCategory = 'colors';
302
332
  } else if (section.includes('/typography')) {
303
333
  previewCategory = 'text';
304
334
  } else if (section.includes('/blocks')) {
305
335
  previewCategory = 'blocks';
306
- const blockName = decodeURIComponent(section).split('/blocks/')[1];
336
+ let blockName = decodeURIComponent(section).split('/blocks/')[1];
337
+
338
+ // The blockName can contain variations, if so, extract the variation.
339
+ if (blockName?.includes('/variations')) {
340
+ [blockName, blockVariation] = blockName.split('/variations/');
341
+ }
307
342
  if (blockName && examples.find(example => example.name === blockName)) {
308
343
  previewCategory = blockName;
309
344
  }
@@ -311,16 +346,29 @@ const StyleBookPreview = ({
311
346
  previewCategory = 'overview';
312
347
  }
313
348
  const categoryDefinition = _constants2.STYLE_BOOK_PREVIEW_CATEGORIES.find(category => category.slug === previewCategory);
314
-
315
- // If there's no category definition there may be a single block.
316
- const filteredExamples = categoryDefinition ? (0, _categories.getExamplesByCategory)(categoryDefinition, examples) : {
317
- examples: [examples.find(example => example.name === previewCategory)]
318
- };
319
-
320
- // If there's no preview category, show all examples.
321
- const displayedExamples = previewCategory ? filteredExamples : {
322
- examples: examplesForSinglePageUse
323
- };
349
+ const filteredExamples = (0, _element.useMemo)(() => {
350
+ // If there's no category definition there may be a single block.
351
+ if (!categoryDefinition) {
352
+ return {
353
+ examples: [examples.find(example => example.name === previewCategory)]
354
+ };
355
+ }
356
+ return (0, _categories.getExamplesByCategory)(categoryDefinition, examples);
357
+ }, [categoryDefinition, examples, previewCategory]);
358
+ const displayedExamples = (0, _element.useMemo)(() => {
359
+ // If there's no preview category, show all examples.
360
+ if (!previewCategory) {
361
+ return {
362
+ examples: examplesForSinglePageUse
363
+ };
364
+ }
365
+ if (blockVariation) {
366
+ return {
367
+ examples: applyBlockVariationsToExamples(filteredExamples.examples, blockVariation)
368
+ };
369
+ }
370
+ return filteredExamples;
371
+ }, [previewCategory, examplesForSinglePageUse, blockVariation, filteredExamples]);
324
372
  const {
325
373
  base: baseConfig
326
374
  } = (0, _element.useContext)(GlobalStylesContext);
@@ -447,7 +495,7 @@ const Examples = (0, _element.memo)(({
447
495
  content: example.content,
448
496
  blocks: example.blocks,
449
497
  isSelected: isSelected?.(example.name),
450
- onClick: !!onSelect ? () => onSelect(example.name) : null
498
+ onClick: !!onSelect ? () => onSelect(example.name, !!example.variation) : null
451
499
  }, example.name)), !!filteredExamples?.subcategories?.length && filteredExamples.subcategories.map(subcategory => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Composite.Group, {
452
500
  className: "edit-site-style-book__subcategory",
453
501
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Composite.GroupLabel, {
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_blockEditor","_editor","_data","_element","_keycodes","_mediaUtils","_coreData","_lockUnlock","_editorCanvasContainer","_constants","_categories","_examples","_store","_sidebarGlobalStylesWrapper","_globalStylesRenderer","_constants2","_jsxRuntime","ExperimentalBlockEditorProvider","useGlobalStyle","GlobalStylesContext","useGlobalStylesOutputWithConfig","unlock","blockEditorPrivateApis","mergeBaseAndUserConfigs","editorPrivateApis","Tabs","componentsPrivateApis","isObjectEmpty","object","Object","keys","length","scrollToSection","anchorId","iframe","contentDocument","element","body","getElementById","scrollIntoView","behavior","getStyleBookNavigationFromPath","path","startsWith","top","useMultiOriginPalettes","colors","gradients","useMultipleOriginColorsAndGradients","shouldDisplayDefaultDuotones","customDuotones","themeDuotones","defaultDuotones","useSettings","palettes","useMemo","result","duotones","push","name","_x","slug","getExamplesForSinglePageUse","examples","examplesForSinglePageUse","overviewCategoryExamples","getExamplesByCategory","otherExamples","filter","example","category","find","overviewExample","StyleBook","enableResizing","isSelected","onClick","onSelect","showCloseButton","onClose","showTabs","userConfig","textColor","backgroundColor","getExamples","tabs","getTopLevelStyleBookCategories","some","base","baseConfig","useContext","goTo","mergedConfig","originalSettings","useSelect","select","blockEditorStore","getSettings","globalStyles","settings","styles","isPreviewMode","jsx","default","closeButtonLabel","__","children","className","clsx","style","color","background","jsxs","TabList","map","tab","Tab","tabId","title","categoryDefinition","_category","filteredExamples","TabPanel","focusable","StyleBookBody","StyleBookPreview","isStatic","siteEditorSettings","siteEditorStore","canUserUploadMedia","coreStore","canUser","kind","useEffect","dispatch","updateSettings","mediaUpload","uploadMedia","undefined","section","onChangeSection","useSection","blockName","encodeURIComponent","STYLE_BOOK_COLOR_GROUPS","group","previewCategory","includes","decodeURIComponent","split","STYLE_BOOK_PREVIEW_CATEGORIES","displayedExamples","BlockEditorProvider","GlobalStylesRenderer","disableRootPadding","exports","isFocused","setIsFocused","useState","hasIframeLoaded","setHasIframeLoaded","iframeRef","useRef","buttonModeProps","role","onFocus","onBlur","onKeyDown","event","defaultPrevented","keyCode","ENTER","SPACE","preventDefault","readonly","handleLoad","useLayoutEffect","current","__unstableIframe","onLoad","ref","tabIndex","__unstableEditorStyles","STYLE_BOOK_IFRAME_STYLES","Examples","label","sprintf","memo","Composite","orientation","Example","id","content","blocks","subcategories","subcategory","Group","GroupLabel","Subcategory","disabledExamples","focusMode","renderedBlocks","Array","isArray","disabledProps","disabled","accessibleWhenDisabled","Item","render","Disabled","value","BlockList","renderAppender","_default"],"sources":["@wordpress/edit-site/src/components/style-book/index.js"],"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 {\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\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: 'root',\n\t\t\t\tname: 'media',\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 ) => {\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\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\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\tconst blockName =\n\t\t\tdecodeURIComponent( section ).split( '/blocks/' )[ 1 ];\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\t// If there's no category definition there may be a single block.\n\tconst filteredExamples = categoryDefinition\n\t\t? getExamplesByCategory( categoryDefinition, examples )\n\t\t: {\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 };\n\n\t// If there's no preview category, show all examples.\n\tconst displayedExamples = previewCategory\n\t\t? filteredExamples\n\t\t: { examples: examplesForSinglePageUse };\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? () => onSelect( example.name )\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_blockEditor","_editor","_data","_element","_keycodes","_mediaUtils","_coreData","_lockUnlock","_editorCanvasContainer","_constants","_categories","_examples","_store","_sidebarGlobalStylesWrapper","_globalStylesRenderer","_utils","_constants2","_jsxRuntime","ExperimentalBlockEditorProvider","useGlobalStyle","GlobalStylesContext","useGlobalStylesOutputWithConfig","unlock","blockEditorPrivateApis","mergeBaseAndUserConfigs","editorPrivateApis","Tabs","componentsPrivateApis","isObjectEmpty","object","Object","keys","length","scrollToSection","anchorId","iframe","contentDocument","element","body","getElementById","scrollIntoView","behavior","getStyleBookNavigationFromPath","path","startsWith","top","useMultiOriginPalettes","colors","gradients","useMultipleOriginColorsAndGradients","shouldDisplayDefaultDuotones","customDuotones","themeDuotones","defaultDuotones","useSettings","palettes","useMemo","result","duotones","push","name","_x","slug","getExamplesForSinglePageUse","examples","examplesForSinglePageUse","overviewCategoryExamples","getExamplesByCategory","otherExamples","filter","example","category","find","overviewExample","applyBlockVariationsToExamples","variation","map","blocks","attributes","style","undefined","className","getVariationClassName","StyleBook","enableResizing","isSelected","onClick","onSelect","showCloseButton","onClose","showTabs","userConfig","textColor","backgroundColor","getExamples","tabs","getTopLevelStyleBookCategories","some","base","baseConfig","useContext","goTo","mergedConfig","originalSettings","useSelect","select","blockEditorStore","getSettings","globalStyles","settings","styles","isPreviewMode","jsx","default","closeButtonLabel","__","children","clsx","color","background","jsxs","TabList","tab","Tab","tabId","title","categoryDefinition","_category","filteredExamples","TabPanel","focusable","StyleBookBody","StyleBookPreview","isStatic","siteEditorSettings","siteEditorStore","canUserUploadMedia","coreStore","canUser","kind","useEffect","dispatch","updateSettings","mediaUpload","uploadMedia","section","onChangeSection","useSection","blockName","encodeURIComponent","isBlockVariation","STYLE_BOOK_COLOR_GROUPS","group","previewCategory","blockVariation","includes","decodeURIComponent","split","STYLE_BOOK_PREVIEW_CATEGORIES","displayedExamples","BlockEditorProvider","GlobalStylesRenderer","disableRootPadding","exports","isFocused","setIsFocused","useState","hasIframeLoaded","setHasIframeLoaded","iframeRef","useRef","buttonModeProps","role","onFocus","onBlur","onKeyDown","event","defaultPrevented","keyCode","ENTER","SPACE","preventDefault","readonly","handleLoad","useLayoutEffect","current","__unstableIframe","onLoad","ref","tabIndex","__unstableEditorStyles","STYLE_BOOK_IFRAME_STYLES","Examples","label","sprintf","memo","Composite","orientation","Example","id","content","subcategories","subcategory","Group","GroupLabel","Subcategory","disabledExamples","focusMode","renderedBlocks","Array","isArray","disabledProps","disabled","accessibleWhenDisabled","Item","render","Disabled","value","BlockList","renderAppender","_default"],"sources":["@wordpress/edit-site/src/components/style-book/index.js"],"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\n\treturn examples.map( ( example ) => ( {\n\t\t...example,\n\t\tvariation,\n\t\tblocks: {\n\t\t\t...example.blocks,\n\t\t\tattributes: {\n\t\t\t\t...example.blocks.attributes,\n\t\t\t\tstyle: undefined,\n\t\t\t\tclassName: getVariationClassName( variation ),\n\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: 'root',\n\t\t\t\tname: 'media',\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"],"mappings":"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","ignoreList":[]}
@@ -6,17 +6,25 @@ import { paramCase as kebabCase } from 'change-case';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { useState } from '@wordpress/element';
9
+ import { useState, useEffect, useRef } from '@wordpress/element';
10
10
  import { __ } from '@wordpress/i18n';
11
11
  import { Button, TextControl, __experimentalHStack as HStack, __experimentalVStack as VStack } from '@wordpress/components';
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  function AddCustomGenericTemplateModalContent({
14
- onClose,
15
- createTemplate
14
+ createTemplate,
15
+ onBack
16
16
  }) {
17
17
  const [title, setTitle] = useState('');
18
18
  const defaultTitle = __('Custom Template');
19
19
  const [isBusy, setIsBusy] = useState(false);
20
+ const inputRef = useRef();
21
+
22
+ // Set focus to the name input when the component mounts
23
+ useEffect(() => {
24
+ if (inputRef.current) {
25
+ inputRef.current.focus();
26
+ }
27
+ }, []);
20
28
  async function onCreateTemplate(event) {
21
29
  event.preventDefault();
22
30
  if (isBusy) {
@@ -44,6 +52,7 @@ function AddCustomGenericTemplateModalContent({
44
52
  onChange: setTitle,
45
53
  placeholder: defaultTitle,
46
54
  disabled: isBusy,
55
+ ref: inputRef,
47
56
  help: __(
48
57
  // eslint-disable-next-line no-restricted-syntax -- 'sidebar' is a common web design term for layouts
49
58
  'Describe the template, e.g. "Post with sidebar". A custom template can be manually applied to any post or page.')
@@ -53,10 +62,8 @@ function AddCustomGenericTemplateModalContent({
53
62
  children: [/*#__PURE__*/_jsx(Button, {
54
63
  __next40pxDefaultSize: true,
55
64
  variant: "tertiary",
56
- onClick: () => {
57
- onClose();
58
- },
59
- children: __('Cancel')
65
+ onClick: onBack,
66
+ children: __('Back')
60
67
  }), /*#__PURE__*/_jsx(Button, {
61
68
  __next40pxDefaultSize: true,
62
69
  variant: "primary",
@@ -1 +1 @@
1
- {"version":3,"names":["paramCase","kebabCase","useState","__","Button","TextControl","__experimentalHStack","HStack","__experimentalVStack","VStack","jsx","_jsx","jsxs","_jsxs","AddCustomGenericTemplateModalContent","onClose","createTemplate","title","setTitle","defaultTitle","isBusy","setIsBusy","onCreateTemplate","event","preventDefault","slug","onSubmit","children","spacing","__next40pxDefaultSize","__nextHasNoMarginBottom","label","value","onChange","placeholder","disabled","help","className","justify","variant","onClick","type"],"sources":["@wordpress/edit-site/src/components/add-new-template/add-custom-generic-template-modal-content.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\nfunction AddCustomGenericTemplateModalContent( { onClose, createTemplate } ) {\n\tconst [ title, setTitle ] = useState( '' );\n\tconst defaultTitle = __( 'Custom Template' );\n\tconst [ isBusy, setIsBusy ] = useState( false );\n\tasync function onCreateTemplate( event ) {\n\t\tevent.preventDefault();\n\t\tif ( isBusy ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsBusy( true );\n\t\ttry {\n\t\t\tawait createTemplate(\n\t\t\t\t{\n\t\t\t\t\tslug:\n\t\t\t\t\t\tkebabCase( title || defaultTitle ) ||\n\t\t\t\t\t\t'wp-custom-template',\n\t\t\t\t\ttitle: title || defaultTitle,\n\t\t\t\t},\n\t\t\t\tfalse\n\t\t\t);\n\t\t} finally {\n\t\t\tsetIsBusy( false );\n\t\t}\n\t}\n\treturn (\n\t\t<form onSubmit={ onCreateTemplate }>\n\t\t\t<VStack spacing={ 6 }>\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\tplaceholder={ defaultTitle }\n\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t// eslint-disable-next-line no-restricted-syntax -- 'sidebar' is a common web design term for layouts\n\t\t\t\t\t\t'Describe the template, e.g. \"Post with sidebar\". A custom template can be manually applied to any post or page.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"edit-site-custom-generic-template__modal-actions\"\n\t\t\t\t\tjustify=\"right\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\taria-disabled={ isBusy }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</form>\n\t);\n}\n\nexport default AddCustomGenericTemplateModalContent;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,IAAIC,SAAS,QAAQ,aAAa;;AAEpD;AACA;AACA;AACA,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SACCC,MAAM,EACNC,WAAW,EACXC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE/B,SAASC,oCAAoCA,CAAE;EAAEC,OAAO;EAAEC;AAAe,CAAC,EAAG;EAC5E,MAAM,CAAEC,KAAK,EAAEC,QAAQ,CAAE,GAAGhB,QAAQ,CAAE,EAAG,CAAC;EAC1C,MAAMiB,YAAY,GAAGhB,EAAE,CAAE,iBAAkB,CAAC;EAC5C,MAAM,CAAEiB,MAAM,EAAEC,SAAS,CAAE,GAAGnB,QAAQ,CAAE,KAAM,CAAC;EAC/C,eAAeoB,gBAAgBA,CAAEC,KAAK,EAAG;IACxCA,KAAK,CAACC,cAAc,CAAC,CAAC;IACtB,IAAKJ,MAAM,EAAG;MACb;IACD;IACAC,SAAS,CAAE,IAAK,CAAC;IACjB,IAAI;MACH,MAAML,cAAc,CACnB;QACCS,IAAI,EACHxB,SAAS,CAAEgB,KAAK,IAAIE,YAAa,CAAC,IAClC,oBAAoB;QACrBF,KAAK,EAAEA,KAAK,IAAIE;MACjB,CAAC,EACD,KACD,CAAC;IACF,CAAC,SAAS;MACTE,SAAS,CAAE,KAAM,CAAC;IACnB;EACD;EACA,oBACCV,IAAA;IAAMe,QAAQ,EAAGJ,gBAAkB;IAAAK,QAAA,eAClCd,KAAA,CAACJ,MAAM;MAACmB,OAAO,EAAG,CAAG;MAAAD,QAAA,gBACpBhB,IAAA,CAACN,WAAW;QACXwB,qBAAqB;QACrBC,uBAAuB;QACvBC,KAAK,EAAG5B,EAAE,CAAE,MAAO,CAAG;QACtB6B,KAAK,EAAGf,KAAO;QACfgB,QAAQ,EAAGf,QAAU;QACrBgB,WAAW,EAAGf,YAAc;QAC5BgB,QAAQ,EAAGf,MAAQ;QACnBgB,IAAI,EAAGjC,EAAE;QACR;QACA,iHACD;MAAG,CACH,CAAC,eACFU,KAAA,CAACN,MAAM;QACN8B,SAAS,EAAC,kDAAkD;QAC5DC,OAAO,EAAC,OAAO;QAAAX,QAAA,gBAEfhB,IAAA,CAACP,MAAM;UACNyB,qBAAqB;UACrBU,OAAO,EAAC,UAAU;UAClBC,OAAO,EAAGA,CAAA,KAAM;YACfzB,OAAO,CAAC,CAAC;UACV,CAAG;UAAAY,QAAA,EAEDxB,EAAE,CAAE,QAAS;QAAC,CACT,CAAC,eACTQ,IAAA,CAACP,MAAM;UACNyB,qBAAqB;UACrBU,OAAO,EAAC,SAAS;UACjBE,IAAI,EAAC,QAAQ;UACbrB,MAAM,EAAGA,MAAQ;UACjB,iBAAgBA,MAAQ;UAAAO,QAAA,EAEtBxB,EAAE,CAAE,QAAS;QAAC,CACT,CAAC;MAAA,CACF,CAAC;IAAA,CACF;EAAC,CACJ,CAAC;AAET;AAEA,eAAeW,oCAAoC","ignoreList":[]}
1
+ {"version":3,"names":["paramCase","kebabCase","useState","useEffect","useRef","__","Button","TextControl","__experimentalHStack","HStack","__experimentalVStack","VStack","jsx","_jsx","jsxs","_jsxs","AddCustomGenericTemplateModalContent","createTemplate","onBack","title","setTitle","defaultTitle","isBusy","setIsBusy","inputRef","current","focus","onCreateTemplate","event","preventDefault","slug","onSubmit","children","spacing","__next40pxDefaultSize","__nextHasNoMarginBottom","label","value","onChange","placeholder","disabled","ref","help","className","justify","variant","onClick","type"],"sources":["@wordpress/edit-site/src/components/add-new-template/add-custom-generic-template-modal-content.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\nfunction AddCustomGenericTemplateModalContent( { createTemplate, onBack } ) {\n\tconst [ title, setTitle ] = useState( '' );\n\tconst defaultTitle = __( 'Custom Template' );\n\tconst [ isBusy, setIsBusy ] = useState( false );\n\tconst inputRef = useRef();\n\n\t// Set focus to the name input when the component mounts\n\tuseEffect( () => {\n\t\tif ( inputRef.current ) {\n\t\t\tinputRef.current.focus();\n\t\t}\n\t}, [] );\n\n\tasync function onCreateTemplate( event ) {\n\t\tevent.preventDefault();\n\t\tif ( isBusy ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsBusy( true );\n\t\ttry {\n\t\t\tawait createTemplate(\n\t\t\t\t{\n\t\t\t\t\tslug:\n\t\t\t\t\t\tkebabCase( title || defaultTitle ) ||\n\t\t\t\t\t\t'wp-custom-template',\n\t\t\t\t\ttitle: title || defaultTitle,\n\t\t\t\t},\n\t\t\t\tfalse\n\t\t\t);\n\t\t} finally {\n\t\t\tsetIsBusy( false );\n\t\t}\n\t}\n\treturn (\n\t\t<form onSubmit={ onCreateTemplate }>\n\t\t\t<VStack spacing={ 6 }>\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\tplaceholder={ defaultTitle }\n\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\tref={ inputRef }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t// eslint-disable-next-line no-restricted-syntax -- 'sidebar' is a common web design term for layouts\n\t\t\t\t\t\t'Describe the template, e.g. \"Post with sidebar\". A custom template can be manually applied to any post or page.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"edit-site-custom-generic-template__modal-actions\"\n\t\t\t\t\tjustify=\"right\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onBack }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\taria-disabled={ isBusy }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</form>\n\t);\n}\n\nexport default AddCustomGenericTemplateModalContent;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,IAAIC,SAAS,QAAQ,aAAa;;AAEpD;AACA;AACA;AACA,SAASC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,QAAQ,oBAAoB;AAChE,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SACCC,MAAM,EACNC,WAAW,EACXC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE/B,SAASC,oCAAoCA,CAAE;EAAEC,cAAc;EAAEC;AAAO,CAAC,EAAG;EAC3E,MAAM,CAAEC,KAAK,EAAEC,QAAQ,CAAE,GAAGlB,QAAQ,CAAE,EAAG,CAAC;EAC1C,MAAMmB,YAAY,GAAGhB,EAAE,CAAE,iBAAkB,CAAC;EAC5C,MAAM,CAAEiB,MAAM,EAAEC,SAAS,CAAE,GAAGrB,QAAQ,CAAE,KAAM,CAAC;EAC/C,MAAMsB,QAAQ,GAAGpB,MAAM,CAAC,CAAC;;EAEzB;EACAD,SAAS,CAAE,MAAM;IAChB,IAAKqB,QAAQ,CAACC,OAAO,EAAG;MACvBD,QAAQ,CAACC,OAAO,CAACC,KAAK,CAAC,CAAC;IACzB;EACD,CAAC,EAAE,EAAG,CAAC;EAEP,eAAeC,gBAAgBA,CAAEC,KAAK,EAAG;IACxCA,KAAK,CAACC,cAAc,CAAC,CAAC;IACtB,IAAKP,MAAM,EAAG;MACb;IACD;IACAC,SAAS,CAAE,IAAK,CAAC;IACjB,IAAI;MACH,MAAMN,cAAc,CACnB;QACCa,IAAI,EACH7B,SAAS,CAAEkB,KAAK,IAAIE,YAAa,CAAC,IAClC,oBAAoB;QACrBF,KAAK,EAAEA,KAAK,IAAIE;MACjB,CAAC,EACD,KACD,CAAC;IACF,CAAC,SAAS;MACTE,SAAS,CAAE,KAAM,CAAC;IACnB;EACD;EACA,oBACCV,IAAA;IAAMkB,QAAQ,EAAGJ,gBAAkB;IAAAK,QAAA,eAClCjB,KAAA,CAACJ,MAAM;MAACsB,OAAO,EAAG,CAAG;MAAAD,QAAA,gBACpBnB,IAAA,CAACN,WAAW;QACX2B,qBAAqB;QACrBC,uBAAuB;QACvBC,KAAK,EAAG/B,EAAE,CAAE,MAAO,CAAG;QACtBgC,KAAK,EAAGlB,KAAO;QACfmB,QAAQ,EAAGlB,QAAU;QACrBmB,WAAW,EAAGlB,YAAc;QAC5BmB,QAAQ,EAAGlB,MAAQ;QACnBmB,GAAG,EAAGjB,QAAU;QAChBkB,IAAI,EAAGrC,EAAE;QACR;QACA,iHACD;MAAG,CACH,CAAC,eACFU,KAAA,CAACN,MAAM;QACNkC,SAAS,EAAC,kDAAkD;QAC5DC,OAAO,EAAC,OAAO;QAAAZ,QAAA,gBAEfnB,IAAA,CAACP,MAAM;UACN4B,qBAAqB;UACrBW,OAAO,EAAC,UAAU;UAClBC,OAAO,EAAG5B,MAAQ;UAAAc,QAAA,EAEhB3B,EAAE,CAAE,MAAO;QAAC,CACP,CAAC,eACTQ,IAAA,CAACP,MAAM;UACN4B,qBAAqB;UACrBW,OAAO,EAAC,SAAS;UACjBE,IAAI,EAAC,QAAQ;UACbzB,MAAM,EAAGA,MAAQ;UACjB,iBAAgBA,MAAQ;UAAAU,QAAA,EAEtB3B,EAAE,CAAE,QAAS;QAAC,CACT,CAAC;MAAA,CACF,CAAC;IAAA,CACF;EAAC,CACJ,CAAC;AAET;AAEA,eAAeW,oCAAoC","ignoreList":[]}
@@ -7,6 +7,7 @@ import { Button, Flex, FlexItem, SearchControl, TextHighlight, Composite, __expe
7
7
  import { useEntityRecords } from '@wordpress/core-data';
8
8
  import { decodeEntities } from '@wordpress/html-entities';
9
9
  import { useDebouncedInput } from '@wordpress/compose';
10
+ import { focus } from '@wordpress/dom';
10
11
 
11
12
  /**
12
13
  * Internal dependencies
@@ -120,9 +121,20 @@ function SuggestionList({
120
121
  }
121
122
  function AddCustomTemplateModalContent({
122
123
  onSelect,
123
- entityForSuggestions
124
+ entityForSuggestions,
125
+ onBack,
126
+ containerRef
124
127
  }) {
125
128
  const [showSearchEntities, setShowSearchEntities] = useState(entityForSuggestions.hasGeneralTemplate);
129
+
130
+ // Focus on the first focusable element when the modal opens.
131
+ // We handle focus management in the parent modal, just need to focus on the first focusable element.
132
+ useEffect(() => {
133
+ if (containerRef.current) {
134
+ const [firstFocusable] = focus.focusable.find(containerRef.current);
135
+ firstFocusable?.focus();
136
+ }
137
+ }, [showSearchEntities]);
126
138
  return /*#__PURE__*/_jsxs(VStack, {
127
139
  spacing: 4,
128
140
  className: "edit-site-custom-template-modal__contents-wrapper",
@@ -187,6 +199,14 @@ function AddCustomTemplateModalContent({
187
199
  __('For a specific item')
188
200
  })]
189
201
  })]
202
+ }), /*#__PURE__*/_jsx(Flex, {
203
+ justify: "right",
204
+ children: /*#__PURE__*/_jsx(Button, {
205
+ __next40pxDefaultSize: true,
206
+ variant: "tertiary",
207
+ onClick: onBack,
208
+ children: __('Back')
209
+ })
190
210
  })]
191
211
  }), showSearchEntities && /*#__PURE__*/_jsxs(_Fragment, {
192
212
  children: [/*#__PURE__*/_jsx(Text, {
@@ -195,6 +215,22 @@ function AddCustomTemplateModalContent({
195
215
  }), /*#__PURE__*/_jsx(SuggestionList, {
196
216
  entityForSuggestions: entityForSuggestions,
197
217
  onSelect: onSelect
218
+ }), /*#__PURE__*/_jsx(Flex, {
219
+ justify: "right",
220
+ children: /*#__PURE__*/_jsx(Button, {
221
+ __next40pxDefaultSize: true,
222
+ variant: "tertiary",
223
+ onClick: () => {
224
+ // If general template exists, go directly back to main screen
225
+ // instead of showing the choice screen
226
+ if (entityForSuggestions.hasGeneralTemplate) {
227
+ onBack();
228
+ } else {
229
+ setShowSearchEntities(false);
230
+ }
231
+ },
232
+ children: __('Back')
233
+ })
198
234
  })]
199
235
  })]
200
236
  });
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useMemo","useEffect","__","Button","Flex","FlexItem","SearchControl","TextHighlight","Composite","__experimentalText","Text","__experimentalVStack","VStack","useEntityRecords","decodeEntities","useDebouncedInput","mapToIHasNameAndId","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","EMPTY_ARRAY","SuggestionListItem","suggestion","search","onSelect","entityForSuggestions","baseCssClass","Item","render","__next40pxDefaultSize","role","className","onClick","config","getSpecificTemplate","children","size","lineHeight","weight","text","name","highlight","link","useSearchSuggestions","query","order","context","per_page","queryArgs","records","searchResults","hasResolved","searchHasResolved","type","slug","suggestions","setSuggestions","newSuggestions","length","recordNamePath","SuggestionList","setSearch","debouncedSearch","labels","showSearchControl","setShowSearchControl","__nextHasNoMarginBottom","onChange","value","label","search_items","placeholder","orientation","map","as","not_found","AddCustomTemplateModalContent","showSearchEntities","setShowSearchEntities","hasGeneralTemplate","spacing","alignment","gap","align","isBlock","title","description","templatePrefix","template","all_items","singular_name"],"sources":["@wordpress/edit-site/src/components/add-new-template/add-custom-template-modal-content.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useMemo, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tFlex,\n\tFlexItem,\n\tSearchControl,\n\tTextHighlight,\n\tComposite,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useDebouncedInput } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { mapToIHasNameAndId } from './utils';\n\nconst EMPTY_ARRAY = [];\n\nfunction SuggestionListItem( {\n\tsuggestion,\n\tsearch,\n\tonSelect,\n\tentityForSuggestions,\n} ) {\n\tconst baseCssClass =\n\t\t'edit-site-custom-template-modal__suggestions_list__list-item';\n\treturn (\n\t\t<Composite.Item\n\t\t\trender={\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\tclassName={ baseCssClass }\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\tentityForSuggestions.config.getSpecificTemplate(\n\t\t\t\t\t\t\t\tsuggestion\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/>\n\t\t\t}\n\t\t>\n\t\t\t<Text\n\t\t\t\tsize=\"body\"\n\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\tweight={ 500 }\n\t\t\t\tclassName={ `${ baseCssClass }__title` }\n\t\t\t>\n\t\t\t\t<TextHighlight\n\t\t\t\t\ttext={ decodeEntities( suggestion.name ) }\n\t\t\t\t\thighlight={ search }\n\t\t\t\t/>\n\t\t\t</Text>\n\t\t\t{ suggestion.link && (\n\t\t\t\t<Text\n\t\t\t\t\tsize=\"body\"\n\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\tclassName={ `${ baseCssClass }__info` }\n\t\t\t\t>\n\t\t\t\t\t{ suggestion.link }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</Composite.Item>\n\t);\n}\n\nfunction useSearchSuggestions( entityForSuggestions, search ) {\n\tconst { config } = entityForSuggestions;\n\tconst query = useMemo(\n\t\t() => ( {\n\t\t\torder: 'asc',\n\t\t\tcontext: 'view',\n\t\t\tsearch,\n\t\t\tper_page: search ? 20 : 10,\n\t\t\t...config.queryArgs( search ),\n\t\t} ),\n\t\t[ search, config ]\n\t);\n\tconst { records: searchResults, hasResolved: searchHasResolved } =\n\t\tuseEntityRecords(\n\t\t\tentityForSuggestions.type,\n\t\t\tentityForSuggestions.slug,\n\t\t\tquery\n\t\t);\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tlet newSuggestions = EMPTY_ARRAY;\n\t\tif ( searchResults?.length ) {\n\t\t\tnewSuggestions = searchResults;\n\t\t\tif ( config.recordNamePath ) {\n\t\t\t\tnewSuggestions = mapToIHasNameAndId(\n\t\t\t\t\tnewSuggestions,\n\t\t\t\t\tconfig.recordNamePath\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t// Update suggestions only when the query has resolved, so as to keep\n\t\t// the previous results in the UI.\n\t\tsetSuggestions( newSuggestions );\n\t}, [ searchResults, searchHasResolved ] );\n\treturn suggestions;\n}\n\nfunction SuggestionList( { entityForSuggestions, onSelect } ) {\n\tconst [ search, setSearch, debouncedSearch ] = useDebouncedInput();\n\tconst suggestions = useSearchSuggestions(\n\t\tentityForSuggestions,\n\t\tdebouncedSearch\n\t);\n\tconst { labels } = entityForSuggestions;\n\tconst [ showSearchControl, setShowSearchControl ] = useState( false );\n\tif ( ! showSearchControl && suggestions?.length > 9 ) {\n\t\tsetShowSearchControl( true );\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ showSearchControl && (\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ setSearch }\n\t\t\t\t\tvalue={ search }\n\t\t\t\t\tlabel={ labels.search_items }\n\t\t\t\t\tplaceholder={ labels.search_items }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! suggestions?.length && (\n\t\t\t\t<Composite\n\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__suggestions_list\"\n\t\t\t\t\taria-label={ __( 'Suggestions list' ) }\n\t\t\t\t>\n\t\t\t\t\t{ suggestions.map( ( suggestion ) => (\n\t\t\t\t\t\t<SuggestionListItem\n\t\t\t\t\t\t\tkey={ suggestion.slug }\n\t\t\t\t\t\t\tsuggestion={ suggestion }\n\t\t\t\t\t\t\tsearch={ debouncedSearch }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</Composite>\n\t\t\t) }\n\t\t\t{ debouncedSearch && ! suggestions?.length && (\n\t\t\t\t<Text\n\t\t\t\t\tas=\"p\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__no-results\"\n\t\t\t\t>\n\t\t\t\t\t{ labels.not_found }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction AddCustomTemplateModalContent( { onSelect, entityForSuggestions } ) {\n\tconst [ showSearchEntities, setShowSearchEntities ] = useState(\n\t\tentityForSuggestions.hasGeneralTemplate\n\t);\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 4 }\n\t\t\tclassName=\"edit-site-custom-template-modal__contents-wrapper\"\n\t\t\talignment=\"left\"\n\t\t>\n\t\t\t{ ! showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select whether to create a single template for all items or a specific one.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"edit-site-custom-template-modal__contents\"\n\t\t\t\t\t\tgap=\"4\"\n\t\t\t\t\t\talign=\"initial\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} = entityForSuggestions.template;\n\t\t\t\t\t\t\t\tonSelect( {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.all_items }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For all items' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetShowSearchEntities( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.singular_name }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For a specific item' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This template will be used only for the specific item chosen.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<SuggestionList\n\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default AddCustomTemplateModalContent;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","useMemo","useEffect","__","Button","Flex","FlexItem","SearchControl","TextHighlight","Composite","__experimentalText","Text","__experimentalVStack","VStack","useEntityRecords","decodeEntities","useDebouncedInput","focus","mapToIHasNameAndId","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","EMPTY_ARRAY","SuggestionListItem","suggestion","search","onSelect","entityForSuggestions","baseCssClass","Item","render","__next40pxDefaultSize","role","className","onClick","config","getSpecificTemplate","children","size","lineHeight","weight","text","name","highlight","link","useSearchSuggestions","query","order","context","per_page","queryArgs","records","searchResults","hasResolved","searchHasResolved","type","slug","suggestions","setSuggestions","newSuggestions","length","recordNamePath","SuggestionList","setSearch","debouncedSearch","labels","showSearchControl","setShowSearchControl","__nextHasNoMarginBottom","onChange","value","label","search_items","placeholder","orientation","map","as","not_found","AddCustomTemplateModalContent","onBack","containerRef","showSearchEntities","setShowSearchEntities","hasGeneralTemplate","current","firstFocusable","focusable","find","spacing","alignment","gap","align","isBlock","title","description","templatePrefix","template","all_items","singular_name","justify","variant"],"sources":["@wordpress/edit-site/src/components/add-new-template/add-custom-template-modal-content.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useMemo, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tFlex,\n\tFlexItem,\n\tSearchControl,\n\tTextHighlight,\n\tComposite,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useDebouncedInput } from '@wordpress/compose';\nimport { focus } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport { mapToIHasNameAndId } from './utils';\n\nconst EMPTY_ARRAY = [];\n\nfunction SuggestionListItem( {\n\tsuggestion,\n\tsearch,\n\tonSelect,\n\tentityForSuggestions,\n} ) {\n\tconst baseCssClass =\n\t\t'edit-site-custom-template-modal__suggestions_list__list-item';\n\treturn (\n\t\t<Composite.Item\n\t\t\trender={\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\tclassName={ baseCssClass }\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\tentityForSuggestions.config.getSpecificTemplate(\n\t\t\t\t\t\t\t\tsuggestion\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/>\n\t\t\t}\n\t\t>\n\t\t\t<Text\n\t\t\t\tsize=\"body\"\n\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\tweight={ 500 }\n\t\t\t\tclassName={ `${ baseCssClass }__title` }\n\t\t\t>\n\t\t\t\t<TextHighlight\n\t\t\t\t\ttext={ decodeEntities( suggestion.name ) }\n\t\t\t\t\thighlight={ search }\n\t\t\t\t/>\n\t\t\t</Text>\n\t\t\t{ suggestion.link && (\n\t\t\t\t<Text\n\t\t\t\t\tsize=\"body\"\n\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\tclassName={ `${ baseCssClass }__info` }\n\t\t\t\t>\n\t\t\t\t\t{ suggestion.link }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</Composite.Item>\n\t);\n}\n\nfunction useSearchSuggestions( entityForSuggestions, search ) {\n\tconst { config } = entityForSuggestions;\n\tconst query = useMemo(\n\t\t() => ( {\n\t\t\torder: 'asc',\n\t\t\tcontext: 'view',\n\t\t\tsearch,\n\t\t\tper_page: search ? 20 : 10,\n\t\t\t...config.queryArgs( search ),\n\t\t} ),\n\t\t[ search, config ]\n\t);\n\tconst { records: searchResults, hasResolved: searchHasResolved } =\n\t\tuseEntityRecords(\n\t\t\tentityForSuggestions.type,\n\t\t\tentityForSuggestions.slug,\n\t\t\tquery\n\t\t);\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tlet newSuggestions = EMPTY_ARRAY;\n\t\tif ( searchResults?.length ) {\n\t\t\tnewSuggestions = searchResults;\n\t\t\tif ( config.recordNamePath ) {\n\t\t\t\tnewSuggestions = mapToIHasNameAndId(\n\t\t\t\t\tnewSuggestions,\n\t\t\t\t\tconfig.recordNamePath\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t// Update suggestions only when the query has resolved, so as to keep\n\t\t// the previous results in the UI.\n\t\tsetSuggestions( newSuggestions );\n\t}, [ searchResults, searchHasResolved ] );\n\treturn suggestions;\n}\n\nfunction SuggestionList( { entityForSuggestions, onSelect } ) {\n\tconst [ search, setSearch, debouncedSearch ] = useDebouncedInput();\n\tconst suggestions = useSearchSuggestions(\n\t\tentityForSuggestions,\n\t\tdebouncedSearch\n\t);\n\tconst { labels } = entityForSuggestions;\n\tconst [ showSearchControl, setShowSearchControl ] = useState( false );\n\tif ( ! showSearchControl && suggestions?.length > 9 ) {\n\t\tsetShowSearchControl( true );\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ showSearchControl && (\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ setSearch }\n\t\t\t\t\tvalue={ search }\n\t\t\t\t\tlabel={ labels.search_items }\n\t\t\t\t\tplaceholder={ labels.search_items }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! suggestions?.length && (\n\t\t\t\t<Composite\n\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__suggestions_list\"\n\t\t\t\t\taria-label={ __( 'Suggestions list' ) }\n\t\t\t\t>\n\t\t\t\t\t{ suggestions.map( ( suggestion ) => (\n\t\t\t\t\t\t<SuggestionListItem\n\t\t\t\t\t\t\tkey={ suggestion.slug }\n\t\t\t\t\t\t\tsuggestion={ suggestion }\n\t\t\t\t\t\t\tsearch={ debouncedSearch }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</Composite>\n\t\t\t) }\n\t\t\t{ debouncedSearch && ! suggestions?.length && (\n\t\t\t\t<Text\n\t\t\t\t\tas=\"p\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__no-results\"\n\t\t\t\t>\n\t\t\t\t\t{ labels.not_found }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction AddCustomTemplateModalContent( {\n\tonSelect,\n\tentityForSuggestions,\n\tonBack,\n\tcontainerRef,\n} ) {\n\tconst [ showSearchEntities, setShowSearchEntities ] = useState(\n\t\tentityForSuggestions.hasGeneralTemplate\n\t);\n\n\t// Focus on the first focusable element when the modal opens.\n\t// We handle focus management in the parent modal, just need to focus on the first focusable element.\n\tuseEffect( () => {\n\t\tif ( containerRef.current ) {\n\t\t\tconst [ firstFocusable ] = focus.focusable.find(\n\t\t\t\tcontainerRef.current\n\t\t\t);\n\t\t\tfirstFocusable?.focus();\n\t\t}\n\t}, [ showSearchEntities ] );\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 4 }\n\t\t\tclassName=\"edit-site-custom-template-modal__contents-wrapper\"\n\t\t\talignment=\"left\"\n\t\t>\n\t\t\t{ ! showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select whether to create a single template for all items or a specific one.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"edit-site-custom-template-modal__contents\"\n\t\t\t\t\t\tgap=\"4\"\n\t\t\t\t\t\talign=\"initial\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} = entityForSuggestions.template;\n\t\t\t\t\t\t\t\tonSelect( {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.all_items }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For all items' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetShowSearchEntities( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.singular_name }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For a specific item' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t<Flex justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onBack }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Flex>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This template will be used only for the specific item chosen.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<SuggestionList\n\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t/>\n\t\t\t\t\t<Flex justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t// If general template exists, go directly back to main screen\n\t\t\t\t\t\t\t\t// instead of showing the choice screen\n\t\t\t\t\t\t\t\tif ( entityForSuggestions.hasGeneralTemplate ) {\n\t\t\t\t\t\t\t\t\tonBack();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsetShowSearchEntities( false );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Flex>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default AddCustomTemplateModalContent;\n"],"mappings":"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","ignoreList":[]}