@wordpress/edit-site 6.14.0 → 6.15.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 (126) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE.md +1 -1
  3. package/build/components/add-new-pattern/index.js +6 -10
  4. package/build/components/add-new-pattern/index.js.map +1 -1
  5. package/build/components/editor/index.js +1 -9
  6. package/build/components/editor/index.js.map +1 -1
  7. package/build/components/global-styles/confirm-reset-shadow-dialog.js +39 -0
  8. package/build/components/global-styles/confirm-reset-shadow-dialog.js.map +1 -0
  9. package/build/components/global-styles/font-library-modal/index.js +1 -1
  10. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  11. package/build/components/global-styles/font-sizes/font-size.js +17 -14
  12. package/build/components/global-styles/font-sizes/font-size.js.map +1 -1
  13. package/build/components/global-styles/font-sizes/font-sizes.js +17 -20
  14. package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -1
  15. package/build/components/global-styles/screen-block.js +1 -1
  16. package/build/components/global-styles/screen-block.js.map +1 -1
  17. package/build/components/global-styles/shadows-edit-panel.js +21 -13
  18. package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
  19. package/build/components/global-styles/shadows-panel.js +43 -5
  20. package/build/components/global-styles/shadows-panel.js.map +1 -1
  21. package/build/components/layout/index.js +10 -1
  22. package/build/components/layout/index.js.map +1 -1
  23. package/build/components/page-patterns/fields.js +6 -35
  24. package/build/components/page-patterns/fields.js.map +1 -1
  25. package/build/components/page-templates/fields.js +6 -19
  26. package/build/components/page-templates/fields.js.map +1 -1
  27. package/build/components/post-list/index.js +13 -5
  28. package/build/components/post-list/index.js.map +1 -1
  29. package/build/components/sidebar-dataviews/custom-dataviews-list.js +5 -7
  30. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  31. package/build/components/sidebar-dataviews/default-views.js +3 -2
  32. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  33. package/build/components/sidebar-global-styles-wrapper/index.js +40 -72
  34. package/build/components/sidebar-global-styles-wrapper/index.js.map +1 -1
  35. package/build/components/sidebar-navigation-screen-main/index.js +1 -0
  36. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  37. package/build/components/site-editor-routes/stylebook.js +6 -2
  38. package/build/components/site-editor-routes/stylebook.js.map +1 -1
  39. package/build/components/site-editor-routes/styles.js +7 -1
  40. package/build/components/site-editor-routes/styles.js.map +1 -1
  41. package/build/components/style-book/constants.js +36 -2
  42. package/build/components/style-book/constants.js.map +1 -1
  43. package/build/components/style-book/index.js +106 -61
  44. package/build/components/style-book/index.js.map +1 -1
  45. package/build-module/components/add-new-pattern/index.js +6 -10
  46. package/build-module/components/add-new-pattern/index.js.map +1 -1
  47. package/build-module/components/editor/index.js +1 -9
  48. package/build-module/components/editor/index.js.map +1 -1
  49. package/build-module/components/global-styles/confirm-reset-shadow-dialog.js +32 -0
  50. package/build-module/components/global-styles/confirm-reset-shadow-dialog.js.map +1 -0
  51. package/build-module/components/global-styles/font-library-modal/index.js +1 -1
  52. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  53. package/build-module/components/global-styles/font-sizes/font-size.js +17 -14
  54. package/build-module/components/global-styles/font-sizes/font-size.js.map +1 -1
  55. package/build-module/components/global-styles/font-sizes/font-sizes.js +24 -27
  56. package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -1
  57. package/build-module/components/global-styles/screen-block.js +1 -1
  58. package/build-module/components/global-styles/screen-block.js.map +1 -1
  59. package/build-module/components/global-styles/shadows-edit-panel.js +21 -13
  60. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
  61. package/build-module/components/global-styles/shadows-panel.js +46 -8
  62. package/build-module/components/global-styles/shadows-panel.js.map +1 -1
  63. package/build-module/components/layout/index.js +11 -2
  64. package/build-module/components/layout/index.js.map +1 -1
  65. package/build-module/components/page-patterns/fields.js +7 -36
  66. package/build-module/components/page-patterns/fields.js.map +1 -1
  67. package/build-module/components/page-templates/fields.js +6 -19
  68. package/build-module/components/page-templates/fields.js.map +1 -1
  69. package/build-module/components/post-list/index.js +13 -5
  70. package/build-module/components/post-list/index.js.map +1 -1
  71. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +5 -7
  72. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  73. package/build-module/components/sidebar-dataviews/default-views.js +3 -2
  74. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  75. package/build-module/components/sidebar-global-styles-wrapper/index.js +41 -75
  76. package/build-module/components/sidebar-global-styles-wrapper/index.js.map +1 -1
  77. package/build-module/components/sidebar-navigation-screen-main/index.js +1 -0
  78. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  79. package/build-module/components/site-editor-routes/stylebook.js +6 -2
  80. package/build-module/components/site-editor-routes/stylebook.js.map +1 -1
  81. package/build-module/components/site-editor-routes/styles.js +7 -1
  82. package/build-module/components/site-editor-routes/styles.js.map +1 -1
  83. package/build-module/components/style-book/constants.js +35 -1
  84. package/build-module/components/style-book/constants.js.map +1 -1
  85. package/build-module/components/style-book/index.js +107 -62
  86. package/build-module/components/style-book/index.js.map +1 -1
  87. package/build-style/posts-rtl.css +72 -78
  88. package/build-style/posts.css +72 -78
  89. package/build-style/style-rtl.css +163 -184
  90. package/build-style/style.css +163 -184
  91. package/package.json +42 -41
  92. package/src/components/add-new-pattern/index.js +10 -7
  93. package/src/components/canvas-loader/style.scss +4 -3
  94. package/src/components/editor/index.js +1 -7
  95. package/src/components/editor/style.scss +4 -2
  96. package/src/components/editor-canvas-container/style.scss +7 -1
  97. package/src/components/global-styles/confirm-reset-shadow-dialog.js +37 -0
  98. package/src/components/global-styles/font-library-modal/index.js +1 -1
  99. package/src/components/global-styles/font-library-modal/style.scss +4 -2
  100. package/src/components/global-styles/font-sizes/font-size.js +28 -19
  101. package/src/components/global-styles/font-sizes/font-sizes.js +37 -35
  102. package/src/components/global-styles/screen-block.js +3 -2
  103. package/src/components/global-styles/shadows-edit-panel.js +38 -28
  104. package/src/components/global-styles/shadows-panel.js +64 -5
  105. package/src/components/global-styles/style.scss +9 -1
  106. package/src/components/global-styles/variations/style.scss +4 -3
  107. package/src/components/layout/index.js +12 -1
  108. package/src/components/layout/style.scss +8 -3
  109. package/src/components/page/style.scss +8 -5
  110. package/src/components/page-patterns/fields.js +11 -41
  111. package/src/components/page-patterns/style.scss +4 -25
  112. package/src/components/page-templates/fields.js +6 -16
  113. package/src/components/page-templates/style.scss +4 -20
  114. package/src/components/post-list/index.js +13 -4
  115. package/src/components/sidebar-dataviews/custom-dataviews-list.js +7 -6
  116. package/src/components/sidebar-dataviews/default-views.js +3 -2
  117. package/src/components/sidebar-dataviews/style.scss +4 -1
  118. package/src/components/sidebar-global-styles-wrapper/index.js +37 -83
  119. package/src/components/sidebar-global-styles-wrapper/style.scss +22 -0
  120. package/src/components/sidebar-navigation-item/style.scss +6 -0
  121. package/src/components/sidebar-navigation-screen-main/index.js +1 -1
  122. package/src/components/site-editor-routes/stylebook.js +2 -2
  123. package/src/components/site-editor-routes/styles.js +5 -1
  124. package/src/components/site-hub/style.scss +4 -2
  125. package/src/components/style-book/constants.ts +49 -1
  126. package/src/components/style-book/index.js +151 -77
@@ -16,12 +16,17 @@ var _data = require("@wordpress/data");
16
16
  var _compose = require("@wordpress/compose");
17
17
  var _element = require("@wordpress/element");
18
18
  var _keycodes = require("@wordpress/keycodes");
19
+ var _mediaUtils = require("@wordpress/media-utils");
20
+ var _coreData = require("@wordpress/core-data");
19
21
  var _lockUnlock = require("../../lock-unlock");
20
22
  var _editorCanvasContainer = _interopRequireDefault(require("../editor-canvas-container"));
21
23
  var _constants = require("./constants");
22
24
  var _categories = require("./categories");
23
25
  var _examples = require("./examples");
24
26
  var _store = require("../../store");
27
+ var _sidebarGlobalStylesWrapper = require("../sidebar-global-styles-wrapper");
28
+ var _globalStylesRenderer = require("../global-styles-renderer");
29
+ var _constants2 = require("../style-book/constants");
25
30
  var _jsxRuntime = require("react/jsx-runtime");
26
31
  /**
27
32
  * External dependencies
@@ -70,31 +75,19 @@ const scrollToSection = (anchorId, iframe) => {
70
75
  };
71
76
 
72
77
  /**
73
- * Parses a Block Editor navigation path to extract the block name and
74
- * build a style book navigation path. The object can be extended to include a category,
75
- * representing a style book tab/section.
78
+ * Parses a Block Editor navigation path to build a style book navigation path.
79
+ * The object can be extended to include a category, representing a style book tab/section.
76
80
  *
77
81
  * @param {string} path An internal Block Editor navigation path.
78
82
  * @return {null|{block: string}} An object containing the example to navigate to.
79
83
  */
80
84
  const getStyleBookNavigationFromPath = path => {
81
85
  if (path && typeof path === 'string') {
82
- if (path === '/') {
86
+ if (path === '/' || path.startsWith('/typography') || path.startsWith('/colors') || path.startsWith('/blocks')) {
83
87
  return {
84
88
  top: true
85
89
  };
86
90
  }
87
- if (path.startsWith('/typography')) {
88
- return {
89
- block: 'typography'
90
- };
91
- }
92
- let block = path.includes('/blocks/') ? decodeURIComponent(path.split('/blocks/')[1]) : null;
93
- // Default to theme-colors if the path ends with /colors.
94
- block = path.endsWith('/colors') ? 'theme-colors' : block;
95
- return {
96
- block
97
- };
98
91
  }
99
92
  return null;
100
93
  };
@@ -223,23 +216,31 @@ function StyleBook({
223
216
  children: tab.title
224
217
  }, tab.slug))
225
218
  })
226
- }), tabs.map(tab => /*#__PURE__*/(0, _jsxRuntime.jsx)(Tabs.TabPanel, {
227
- tabId: tab.slug,
228
- focusable: false,
229
- className: "edit-site-style-book__tabpanel",
230
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StyleBookBody, {
231
- category: tab.slug,
232
- examples: examples,
233
- isSelected: isSelected,
234
- onSelect: onSelect,
235
- settings: settings,
236
- sizes: sizes,
237
- title: tab.title,
238
- goTo: goTo
239
- })
240
- }, tab.slug))]
219
+ }), tabs.map(tab => {
220
+ const categoryDefinition = tab.slug ? (0, _categories.getTopLevelStyleBookCategories)().find(_category => _category.slug === tab.slug) : null;
221
+ const filteredExamples = categoryDefinition ? (0, _categories.getExamplesByCategory)(categoryDefinition, examples) : {
222
+ examples
223
+ };
224
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Tabs.TabPanel, {
225
+ tabId: tab.slug,
226
+ focusable: false,
227
+ className: "edit-site-style-book__tabpanel",
228
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StyleBookBody, {
229
+ category: tab.slug,
230
+ examples: filteredExamples,
231
+ isSelected: isSelected,
232
+ onSelect: onSelect,
233
+ settings: settings,
234
+ sizes: sizes,
235
+ title: tab.title,
236
+ goTo: goTo
237
+ })
238
+ }, tab.slug);
239
+ })]
241
240
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(StyleBookBody, {
242
- examples: examplesForSinglePageUse,
241
+ examples: {
242
+ examples: examplesForSinglePageUse
243
+ },
243
244
  isSelected: isSelected,
244
245
  onClick: onClick,
245
246
  onSelect: onSelect,
@@ -254,30 +255,83 @@ function StyleBook({
254
255
  /**
255
256
  * Style Book Preview component renders the stylebook without the Editor dependency.
256
257
  *
257
- * @param {Object} props Component props.
258
- * @param {string} props.path Path to the selected block.
259
- * @param {Object} props.userConfig User configuration.
260
- * @param {Function} props.isSelected Function to check if a block is selected.
261
- * @param {Function} props.onSelect Function to select a block.
258
+ * @param {Object} props Component props.
259
+ * @param {Object} props.userConfig User configuration.
260
+ * @param {boolean} props.isStatic Whether the stylebook is static or clickable.
262
261
  * @return {Object} Style Book Preview component.
263
262
  */
264
263
  const StyleBookPreview = ({
265
- path = '',
266
264
  userConfig = {},
267
- isSelected,
268
- onSelect
265
+ isStatic = false
269
266
  }) => {
270
267
  const siteEditorSettings = (0, _data.useSelect)(select => select(_store.store).getSettings(), []);
268
+ const canUserUploadMedia = (0, _data.useSelect)(select => select(_coreData.store).canUser('create', {
269
+ kind: 'root',
270
+ name: 'media'
271
+ }), []);
272
+
271
273
  // Update block editor settings because useMultipleOriginColorsAndGradients fetch colours from there.
272
- (0, _data.dispatch)(_blockEditor.store).updateSettings(siteEditorSettings);
274
+ (0, _element.useEffect)(() => {
275
+ (0, _data.dispatch)(_blockEditor.store).updateSettings({
276
+ ...siteEditorSettings,
277
+ mediaUpload: canUserUploadMedia ? _mediaUtils.uploadMedia : undefined
278
+ });
279
+ }, [siteEditorSettings, canUserUploadMedia]);
280
+ const [section, onChangeSection] = (0, _sidebarGlobalStylesWrapper.useSection)();
281
+ const isSelected = blockName => {
282
+ // Match '/blocks/core%2Fbutton' and
283
+ // '/blocks/core%2Fbutton/typography', but not
284
+ // '/blocks/core%2Fbuttons'.
285
+ return section === `/blocks/${encodeURIComponent(blockName)}` || section.startsWith(`/blocks/${encodeURIComponent(blockName)}/`);
286
+ };
287
+ const onSelect = blockName => {
288
+ if (_constants2.STYLE_BOOK_COLOR_GROUPS.find(group => group.slug === blockName)) {
289
+ // Go to color palettes Global Styles.
290
+ onChangeSection('/colors/palette');
291
+ return;
292
+ }
293
+ if (blockName === 'typography') {
294
+ // Go to typography Global Styles.
295
+ onChangeSection('/typography');
296
+ return;
297
+ }
298
+
299
+ // Now go to the selected block.
300
+ onChangeSection(`/blocks/${encodeURIComponent(blockName)}`);
301
+ };
273
302
  const [resizeObserver, sizes] = (0, _compose.useResizeObserver)();
274
303
  const colors = useMultiOriginPalettes();
275
304
  const examples = (0, _examples.getExamples)(colors);
276
305
  const examplesForSinglePageUse = getExamplesForSinglePageUse(examples);
306
+ let previewCategory = null;
307
+ if (section.includes('/colors')) {
308
+ previewCategory = 'colors';
309
+ } else if (section.includes('/typography')) {
310
+ previewCategory = 'text';
311
+ } else if (section.includes('/blocks')) {
312
+ previewCategory = 'blocks';
313
+ const blockName = decodeURIComponent(section).split('/blocks/')[1];
314
+ if (blockName && examples.find(example => example.name === blockName)) {
315
+ previewCategory = blockName;
316
+ }
317
+ } else if (!isStatic) {
318
+ previewCategory = 'overview';
319
+ }
320
+ const categoryDefinition = _constants2.STYLE_BOOK_PREVIEW_CATEGORIES.find(category => category.slug === previewCategory);
321
+
322
+ // If there's no category definition there may be a single block.
323
+ const filteredExamples = categoryDefinition ? (0, _categories.getExamplesByCategory)(categoryDefinition, examples) : {
324
+ examples: [examples.find(example => example.name === previewCategory)]
325
+ };
326
+
327
+ // If there's no preview category, show all examples.
328
+ const displayedExamples = previewCategory ? filteredExamples : {
329
+ examples: examplesForSinglePageUse
330
+ };
277
331
  const {
278
332
  base: baseConfig
279
333
  } = (0, _element.useContext)(GlobalStylesContext);
280
- const goTo = getStyleBookNavigationFromPath(path);
334
+ const goTo = getStyleBookNavigationFromPath(section);
281
335
  const mergedConfig = (0, _element.useMemo)(() => {
282
336
  if (!isObjectEmpty(userConfig) && !isObjectEmpty(baseConfig)) {
283
337
  return mergeBaseAndUserConfigs(baseConfig, userConfig);
@@ -292,22 +346,23 @@ const StyleBookPreview = ({
292
346
  }), [globalStyles, siteEditorSettings, userConfig]);
293
347
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
294
348
  className: "edit-site-style-book",
295
- children: [resizeObserver, /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.BlockEditorProvider, {
349
+ children: [resizeObserver, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_blockEditor.BlockEditorProvider, {
296
350
  settings: settings,
297
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StyleBookBody, {
298
- examples: examplesForSinglePageUse,
351
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_globalStylesRenderer.GlobalStylesRenderer, {
352
+ disableRootPadding: true
353
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(StyleBookBody, {
354
+ examples: displayedExamples,
299
355
  settings: settings,
300
356
  goTo: goTo,
301
357
  sizes: sizes,
302
- isSelected: isSelected,
303
- onSelect: onSelect
304
- })
358
+ isSelected: !isStatic ? isSelected : null,
359
+ onSelect: !isStatic ? onSelect : null
360
+ })]
305
361
  })]
306
362
  });
307
363
  };
308
364
  exports.StyleBookPreview = StyleBookPreview;
309
365
  const StyleBookBody = ({
310
- category,
311
366
  examples,
312
367
  isSelected,
313
368
  onClick,
@@ -354,10 +409,6 @@ const StyleBookBody = ({
354
409
  if (hasIframeLoaded && iframeRef?.current) {
355
410
  if (goTo?.top) {
356
411
  scrollToSection('top', iframeRef?.current);
357
- return;
358
- }
359
- if (goTo?.block) {
360
- scrollToSection(`example-${goTo?.block}`, iframeRef?.current);
361
412
  }
362
413
  }
363
414
  }, [iframeRef?.current, goTo, scrollToSection, hasIframeLoaded]);
@@ -379,29 +430,23 @@ const StyleBookBody = ({
379
430
  className: (0, _clsx.default)('edit-site-style-book__examples', {
380
431
  'is-wide': sizes.width > 600
381
432
  }),
382
- examples: examples,
383
- category: category,
433
+ filteredExamples: examples,
384
434
  label: title ? (0, _i18n.sprintf)(
385
435
  // translators: %s: Category of blocks, e.g. Text.
386
436
  (0, _i18n.__)('Examples of blocks in the %s category'), title) : (0, _i18n.__)('Examples of blocks'),
387
437
  isSelected: isSelected,
388
438
  onSelect: onSelect
389
- }, category)]
439
+ }, title)]
390
440
  });
391
441
  };
392
442
  exports.StyleBookBody = StyleBookBody;
393
443
  const Examples = (0, _element.memo)(({
394
444
  className,
395
- examples,
396
- category,
445
+ filteredExamples,
397
446
  label,
398
447
  isSelected,
399
448
  onSelect
400
449
  }) => {
401
- const categoryDefinition = category ? (0, _categories.getTopLevelStyleBookCategories)().find(_category => _category.slug === category) : null;
402
- const filteredExamples = categoryDefinition ? (0, _categories.getExamplesByCategory)(categoryDefinition, examples) : {
403
- examples
404
- };
405
450
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Composite, {
406
451
  orientation: "vertical",
407
452
  className: className,
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_blockEditor","_editor","_data","_compose","_element","_keycodes","_lockUnlock","_editorCanvasContainer","_constants","_categories","_examples","_store","_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","top","startsWith","block","includes","decodeURIComponent","split","endsWith","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","resizeObserver","sizes","useResizeObserver","textColor","backgroundColor","getExamples","tabs","getTopLevelStyleBookCategories","some","base","baseConfig","useContext","goTo","mergedConfig","originalSettings","useSelect","select","blockEditorStore","getSettings","globalStyles","settings","styles","isPreviewMode","jsx","default","closeButtonLabel","__","children","jsxs","className","clsx","width","style","color","background","TabList","map","tab","Tab","tabId","title","TabPanel","focusable","StyleBookBody","StyleBookPreview","siteEditorSettings","siteEditorStore","dispatch","updateSettings","BlockEditorProvider","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","categoryDefinition","_category","filteredExamples","Composite","orientation","Example","id","content","blocks","subcategories","subcategory","Group","GroupLabel","Subcategory","disabledExamples","focusMode","renderedBlocks","Array","isArray","disabledProps","disabled","accessibleWhenDisabled","Item","undefined","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 { useResizeObserver } from '@wordpress/compose';\nimport {\n\tuseMemo,\n\tuseState,\n\tmemo,\n\tuseContext,\n\tuseRef,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\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';\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 extract the block name and\n * build a style book navigation path. The object can be extended to include a category,\n * 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 ( path === '/' ) {\n\t\t\treturn {\n\t\t\t\ttop: true,\n\t\t\t};\n\t\t}\n\n\t\tif ( path.startsWith( '/typography' ) ) {\n\t\t\treturn {\n\t\t\t\tblock: 'typography',\n\t\t\t};\n\t\t}\n\t\tlet block = path.includes( '/blocks/' )\n\t\t\t? decodeURIComponent( path.split( '/blocks/' )[ 1 ] )\n\t\t\t: null;\n\t\t// Default to theme-colors if the path ends with /colors.\n\t\tblock = path.endsWith( '/colors' ) ? 'theme-colors' : block;\n\n\t\treturn {\n\t\t\tblock,\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 [ resizeObserver, sizes ] = useResizeObserver();\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-wide': sizes.width > 600,\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{ resizeObserver }\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\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\tkey={ tab.slug }\n\t\t\t\t\t\t\t\ttabId={ tab.slug }\n\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\tclassName=\"edit-site-style-book__tabpanel\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\t\tcategory={ tab.slug }\n\t\t\t\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Tabs.TabPanel>\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={ 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\tsizes={ sizes }\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 {string} props.path Path to the selected block.\n * @param {Object} props.userConfig User configuration.\n * @param {Function} props.isSelected Function to check if a block is selected.\n * @param {Function} props.onSelect Function to select a block.\n * @return {Object} Style Book Preview component.\n */\nexport const StyleBookPreview = ( {\n\tpath = '',\n\tuserConfig = {},\n\tisSelected,\n\tonSelect,\n} ) => {\n\tconst siteEditorSettings = useSelect(\n\t\t( select ) => select( siteEditorStore ).getSettings(),\n\t\t[]\n\t);\n\t// Update block editor settings because useMultipleOriginColorsAndGradients fetch colours from there.\n\tdispatch( blockEditorStore ).updateSettings( siteEditorSettings );\n\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = getExamples( colors );\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\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{ resizeObserver }\n\t\t\t<BlockEditorProvider settings={ settings }>\n\t\t\t\t<StyleBookBody\n\t\t\t\t\texamples={ examplesForSinglePageUse }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t/>\n\t\t\t</BlockEditorProvider>\n\t\t</div>\n\t);\n};\n\nexport const StyleBookBody = ( {\n\tcategory,\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\tsizes,\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\treturn;\n\t\t\t}\n\t\t\tif ( goTo?.block ) {\n\t\t\t\tscrollToSection(\n\t\t\t\t\t`example-${ goTo?.block }`,\n\t\t\t\t\tiframeRef?.current\n\t\t\t\t);\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={ clsx( 'edit-site-style-book__examples', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t} ) }\n\t\t\t\texamples={ examples }\n\t\t\t\tcategory={ category }\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={ category }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, examples, category, label, isSelected, onSelect } ) => {\n\t\tconst categoryDefinition = category\n\t\t\t? getTopLevelStyleBookCategories().find(\n\t\t\t\t\t( _category ) => _category.slug === category\n\t\t\t )\n\t\t\t: null;\n\n\t\tconst filteredExamples = categoryDefinition\n\t\t\t? getExamplesByCategory( categoryDefinition, examples )\n\t\t\t: { examples };\n\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":";;;;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AAKA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAUA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AAQA,IAAAQ,SAAA,GAAAR,OAAA;AAKA,IAAAS,WAAA,GAAAT,OAAA;AACA,IAAAU,sBAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,UAAA,GAAAX,OAAA;AACA,IAAAY,WAAA,GAAAZ,OAAA;AAIA,IAAAa,SAAA,GAAAb,OAAA;AACA,IAAAc,MAAA,GAAAd,OAAA;AAAuD,IAAAe,WAAA,GAAAf,OAAA;AAhDvD;AACA;AACA;;AAGA;AACA;AACA;;AA8BA;AACA;AACA;;AAWA,MAAM;EACLgB,+BAA+B;EAC/BC,cAAc;EACdC,mBAAmB;EACnBC;AACD,CAAC,GAAG,IAAAC,kBAAM,EAAEC,wBAAuB,CAAC;AACpC,MAAM;EAAEC;AAAwB,CAAC,GAAG,IAAAF,kBAAM,EAAEG,mBAAkB,CAAC;AAE/D,MAAM;EAAEC;AAAK,CAAC,GAAG,IAAAJ,kBAAM,EAAEK,uBAAsB,CAAC;AAEhD,SAASC,aAAaA,CAAEC,MAAM,EAAG;EAChC,OAAO,CAAEA,MAAM,IAAIC,MAAM,CAACC,IAAI,CAAEF,MAAO,CAAC,CAACG,MAAM,KAAK,CAAC;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,eAAe,GAAGA,CAAEC,QAAQ,EAAEC,MAAM,KAAM;EAC/C,IAAK,CAAED,QAAQ,IAAI,CAAEC,MAAM,IAAI,CAAEA,MAAM,EAAEC,eAAe,EAAG;IAC1D;EACD;EAEA,MAAMC,OAAO,GACZH,QAAQ,KAAK,KAAK,GACfC,MAAM,CAACC,eAAe,CAACE,IAAI,GAC3BH,MAAM,CAACC,eAAe,CAACG,cAAc,CAAEL,QAAS,CAAC;EACrD,IAAKG,OAAO,EAAG;IACdA,OAAO,CAACG,cAAc,CAAE;MACvBC,QAAQ,EAAE;IACX,CAAE,CAAC;EACJ;AACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,8BAA8B,GAAKC,IAAI,IAAM;EAClD,IAAKA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAG;IACvC,IAAKA,IAAI,KAAK,GAAG,EAAG;MACnB,OAAO;QACNC,GAAG,EAAE;MACN,CAAC;IACF;IAEA,IAAKD,IAAI,CAACE,UAAU,CAAE,aAAc,CAAC,EAAG;MACvC,OAAO;QACNC,KAAK,EAAE;MACR,CAAC;IACF;IACA,IAAIA,KAAK,GAAGH,IAAI,CAACI,QAAQ,CAAE,UAAW,CAAC,GACpCC,kBAAkB,CAAEL,IAAI,CAACM,KAAK,CAAE,UAAW,CAAC,CAAE,CAAC,CAAG,CAAC,GACnD,IAAI;IACP;IACAH,KAAK,GAAGH,IAAI,CAACO,QAAQ,CAAE,SAAU,CAAC,GAAG,cAAc,GAAGJ,KAAK;IAE3D,OAAO;MACNA;IACD,CAAC;EACF;EACA,OAAO,IAAI;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASK,sBAAsBA,CAAA,EAAG;EACjC,MAAM;IAAEC,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAC,8DAAmC,EAAC,CAAC;;EAEnE;EACA,MAAM,CACLC,4BAA4B,EAC5BC,cAAc,EACdC,aAAa,EACbC,eAAe,CACf,GAAG,IAAAC,wBAAW,EACd,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,uBACD,CAAC;EAED,MAAMC,QAAQ,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAC/B,MAAMC,MAAM,GAAG;MAAEV,MAAM;MAAEC,SAAS;MAAEU,QAAQ,EAAE;IAAG,CAAC;IAElD,IAAKN,aAAa,IAAIA,aAAa,CAACzB,MAAM,EAAG;MAC5C8B,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAE;QACrBC,IAAI,EAAE,IAAAC,QAAE,EACP,OAAO,EACP,sDACD,CAAC;QACDC,IAAI,EAAE,OAAO;QACbJ,QAAQ,EAAEN;MACX,CAAE,CAAC;IACJ;IAEA,IACCF,4BAA4B,IAC5BG,eAAe,IACfA,eAAe,CAAC1B,MAAM,EACrB;MACD8B,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAE;QACrBC,IAAI,EAAE,IAAAC,QAAE,EACP,SAAS,EACT,sDACD,CAAC;QACDC,IAAI,EAAE,SAAS;QACfJ,QAAQ,EAAEL;MACX,CAAE,CAAC;IACJ;IACA,IAAKF,cAAc,IAAIA,cAAc,CAACxB,MAAM,EAAG;MAC9C8B,MAAM,CAACC,QAAQ,CAACC,IAAI,CAAE;QACrBC,IAAI,EAAE,IAAAC,QAAE,EACP,QAAQ,EACR,0DACD,CAAC;QACDC,IAAI,EAAE,QAAQ;QACdJ,QAAQ,EAAEP;MACX,CAAE,CAAC;IACJ;IAEA,OAAOM,MAAM;EACd,CAAC,EAAE,CACFV,MAAM,EACNC,SAAS,EACTG,cAAc,EACdC,aAAa,EACbC,eAAe,EACfH,4BAA4B,CAC3B,CAAC;EAEH,OAAOK,QAAQ;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASQ,2BAA2BA,CAAEC,QAAQ,EAAG;EACvD,MAAMC,wBAAwB,GAAG,EAAE;EACnC,MAAMC,wBAAwB,GAAG,IAAAC,iCAAqB,EACrD;IAAEL,IAAI,EAAE;EAAW,CAAC,EACpBE,QACD,CAAC;EACDC,wBAAwB,CAACN,IAAI,CAAE,GAAGO,wBAAwB,CAACF,QAAS,CAAC;EACrE,MAAMI,aAAa,GAAGJ,QAAQ,CAACK,MAAM,CAAIC,OAAO,IAAM;IACrD,OACCA,OAAO,CAACC,QAAQ,KAAK,UAAU,IAC/B,CAAEL,wBAAwB,CAACF,QAAQ,CAACQ,IAAI,CACrCC,eAAe,IAAMA,eAAe,CAACb,IAAI,KAAKU,OAAO,CAACV,IACzD,CAAC;EAEH,CAAE,CAAC;EACHK,wBAAwB,CAACN,IAAI,CAAE,GAAGS,aAAc,CAAC;EAEjD,OAAOH,wBAAwB;AAChC;AAEA,SAASS,SAASA,CAAE;EACnBC,cAAc,GAAG,IAAI;EACrBC,UAAU;EACVC,OAAO;EACPC,QAAQ;EACRC,eAAe,GAAG,IAAI;EACtBC,OAAO;EACPC,QAAQ,GAAG,IAAI;EACfC,UAAU,GAAG,CAAC,CAAC;EACf5C,IAAI,GAAG;AACR,CAAC,EAAG;EACH,MAAM,CAAE6C,cAAc,EAAEC,KAAK,CAAE,GAAG,IAAAC,0BAAiB,EAAC,CAAC;EACrD,MAAM,CAAEC,SAAS,CAAE,GAAGxE,cAAc,CAAE,YAAa,CAAC;EACpD,MAAM,CAAEyE,eAAe,CAAE,GAAGzE,cAAc,CAAE,kBAAmB,CAAC;EAChE,MAAMiC,MAAM,GAAGD,sBAAsB,CAAC,CAAC;EACvC,MAAMkB,QAAQ,GAAG,IAAAR,gBAAO,EAAE,MAAM,IAAAgC,qBAAW,EAAEzC,MAAO,CAAC,EAAE,CAAEA,MAAM,CAAG,CAAC;EACnE,MAAM0C,IAAI,GAAG,IAAAjC,gBAAO,EACnB,MACC,IAAAkC,0CAA8B,EAAC,CAAC,CAACrB,MAAM,CAAIE,QAAQ,IAClDP,QAAQ,CAAC2B,IAAI,CACVrB,OAAO,IAAMA,OAAO,CAACC,QAAQ,KAAKA,QAAQ,CAACT,IAC9C,CACD,CAAC,EACF,CAAEE,QAAQ,CACX,CAAC;EAED,MAAMC,wBAAwB,GAAGF,2BAA2B,CAAEC,QAAS,CAAC;EAExE,MAAM;IAAE4B,IAAI,EAAEC;EAAW,CAAC,GAAG,IAAAC,mBAAU,EAAE/E,mBAAoB,CAAC;EAC9D,MAAMgF,IAAI,GAAG1D,8BAA8B,CAAEC,IAAK,CAAC;EAEnD,MAAM0D,YAAY,GAAG,IAAAxC,gBAAO,EAAE,MAAM;IACnC,IAAK,CAAEjC,aAAa,CAAE2D,UAAW,CAAC,IAAI,CAAE3D,aAAa,CAAEsE,UAAW,CAAC,EAAG;MACrE,OAAO1E,uBAAuB,CAAE0E,UAAU,EAAEX,UAAW,CAAC;IACzD;IACA,OAAO,CAAC,CAAC;EACV,CAAC,EAAE,CAAEW,UAAU,EAAEX,UAAU,CAAG,CAAC;;EAE/B;EACA;EACA,MAAMe,gBAAgB,GAAG,IAAAC,eAAS,EAC/BC,MAAM,IAAMA,MAAM,CAAEC,kBAAiB,CAAC,CAACC,WAAW,CAAC,CAAC,EACtD,EACD,CAAC;EACD,MAAM,CAAEC,YAAY,CAAE,GAAGtF,+BAA+B,CAAEgF,YAAa,CAAC;EAExE,MAAMO,QAAQ,GAAG,IAAA/C,gBAAO,EACvB,OAAQ;IACP,GAAGyC,gBAAgB;IACnBO,MAAM,EACL,CAAEjF,aAAa,CAAE+E,YAAa,CAAC,IAAI,CAAE/E,aAAa,CAAE2D,UAAW,CAAC,GAC7DoB,YAAY,GACZL,gBAAgB,CAACO,MAAM;IAC3BC,aAAa,EAAE;EAChB,CAAC,CAAE,EACH,CAAEH,YAAY,EAAEL,gBAAgB,EAAEf,UAAU,CAC7C,CAAC;EAED,oBACC,IAAAtE,WAAA,CAAA8F,GAAA,EAACnG,sBAAA,CAAAoG,OAAqB;IACrB3B,OAAO,EAAGA,OAAS;IACnBL,cAAc,EAAGA,cAAgB;IACjCiC,gBAAgB,EAAG7B,eAAe,GAAG,IAAA8B,QAAE,EAAE,OAAQ,CAAC,GAAG,IAAM;IAAAC,QAAA,eAE3D,IAAAlG,WAAA,CAAAmG,IAAA;MACCC,SAAS,EAAG,IAAAC,aAAI,EAAE,sBAAsB,EAAE;QACzC,SAAS,EAAE7B,KAAK,CAAC8B,KAAK,GAAG,GAAG;QAC5B,WAAW,EAAE,CAAC,CAAErC;MACjB,CAAE,CAAG;MACLsC,KAAK,EAAG;QACPC,KAAK,EAAE9B,SAAS;QAChB+B,UAAU,EAAE9B;MACb,CAAG;MAAAuB,QAAA,GAED3B,cAAc,EACdF,QAAQ,gBACT,IAAArE,WAAA,CAAAmG,IAAA,EAAC1F,IAAI;QAAAyF,QAAA,gBACJ,IAAAlG,WAAA,CAAA8F,GAAA;UAAKM,SAAS,EAAC,yCAAyC;UAAAF,QAAA,eACvD,IAAAlG,WAAA,CAAA8F,GAAA,EAACrF,IAAI,CAACiG,OAAO;YAAAR,QAAA,EACVrB,IAAI,CAAC8B,GAAG,CAAIC,GAAG,iBAChB,IAAA5G,WAAA,CAAA8F,GAAA,EAACrF,IAAI,CAACoG,GAAG;cACRC,KAAK,EAAGF,GAAG,CAAC1D,IAAM;cAAAgD,QAAA,EAGhBU,GAAG,CAACG;YAAK,GAFLH,GAAG,CAAC1D,IAGD,CACT;UAAC,CACU;QAAC,CACX,CAAC,EACJ2B,IAAI,CAAC8B,GAAG,CAAIC,GAAG,iBAChB,IAAA5G,WAAA,CAAA8F,GAAA,EAACrF,IAAI,CAACuG,QAAQ;UAEbF,KAAK,EAAGF,GAAG,CAAC1D,IAAM;UAClB+D,SAAS,EAAG,KAAO;UACnBb,SAAS,EAAC,gCAAgC;UAAAF,QAAA,eAE1C,IAAAlG,WAAA,CAAA8F,GAAA,EAACoB,aAAa;YACbvD,QAAQ,EAAGiD,GAAG,CAAC1D,IAAM;YACrBE,QAAQ,EAAGA,QAAU;YACrBY,UAAU,EAAGA,UAAY;YACzBE,QAAQ,EAAGA,QAAU;YACrByB,QAAQ,EAAGA,QAAU;YACrBnB,KAAK,EAAGA,KAAO;YACfuC,KAAK,EAAGH,GAAG,CAACG,KAAO;YACnB5B,IAAI,EAAGA;UAAM,CACb;QAAC,GAdIyB,GAAG,CAAC1D,IAeI,CACd,CAAC;MAAA,CACE,CAAC,gBAEP,IAAAlD,WAAA,CAAA8F,GAAA,EAACoB,aAAa;QACb9D,QAAQ,EAAGC,wBAA0B;QACrCW,UAAU,EAAGA,UAAY;QACzBC,OAAO,EAAGA,OAAS;QACnBC,QAAQ,EAAGA,QAAU;QACrByB,QAAQ,EAAGA,QAAU;QACrBnB,KAAK,EAAGA,KAAO;QACfW,IAAI,EAAGA;MAAM,CACb,CACD;IAAA,CACG;EAAC,CACgB,CAAC;AAE1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMgC,gBAAgB,GAAGA,CAAE;EACjCzF,IAAI,GAAG,EAAE;EACT4C,UAAU,GAAG,CAAC,CAAC;EACfN,UAAU;EACVE;AACD,CAAC,KAAM;EACN,MAAMkD,kBAAkB,GAAG,IAAA9B,eAAS,EACjCC,MAAM,IAAMA,MAAM,CAAE8B,YAAgB,CAAC,CAAC5B,WAAW,CAAC,CAAC,EACrD,EACD,CAAC;EACD;EACA,IAAA6B,cAAQ,EAAE9B,kBAAiB,CAAC,CAAC+B,cAAc,CAAEH,kBAAmB,CAAC;EAEjE,MAAM,CAAE7C,cAAc,EAAEC,KAAK,CAAE,GAAG,IAAAC,0BAAiB,EAAC,CAAC;EACrD,MAAMtC,MAAM,GAAGD,sBAAsB,CAAC,CAAC;EACvC,MAAMkB,QAAQ,GAAG,IAAAwB,qBAAW,EAAEzC,MAAO,CAAC;EACtC,MAAMkB,wBAAwB,GAAGF,2BAA2B,CAAEC,QAAS,CAAC;EAExE,MAAM;IAAE4B,IAAI,EAAEC;EAAW,CAAC,GAAG,IAAAC,mBAAU,EAAE/E,mBAAoB,CAAC;EAC9D,MAAMgF,IAAI,GAAG1D,8BAA8B,CAAEC,IAAK,CAAC;EAEnD,MAAM0D,YAAY,GAAG,IAAAxC,gBAAO,EAAE,MAAM;IACnC,IAAK,CAAEjC,aAAa,CAAE2D,UAAW,CAAC,IAAI,CAAE3D,aAAa,CAAEsE,UAAW,CAAC,EAAG;MACrE,OAAO1E,uBAAuB,CAAE0E,UAAU,EAAEX,UAAW,CAAC;IACzD;IACA,OAAO,CAAC,CAAC;EACV,CAAC,EAAE,CAAEW,UAAU,EAAEX,UAAU,CAAG,CAAC;EAE/B,MAAM,CAAEoB,YAAY,CAAE,GAAGtF,+BAA+B,CAAEgF,YAAa,CAAC;EAExE,MAAMO,QAAQ,GAAG,IAAA/C,gBAAO,EACvB,OAAQ;IACP,GAAGwE,kBAAkB;IACrBxB,MAAM,EACL,CAAEjF,aAAa,CAAE+E,YAAa,CAAC,IAAI,CAAE/E,aAAa,CAAE2D,UAAW,CAAC,GAC7DoB,YAAY,GACZ0B,kBAAkB,CAACxB,MAAM;IAC7BC,aAAa,EAAE;EAChB,CAAC,CAAE,EACH,CAAEH,YAAY,EAAE0B,kBAAkB,EAAE9C,UAAU,CAC/C,CAAC;EAED,oBACC,IAAAtE,WAAA,CAAAmG,IAAA;IAAKC,SAAS,EAAC,sBAAsB;IAAAF,QAAA,GAClC3B,cAAc,eAChB,IAAAvE,WAAA,CAAA8F,GAAA,EAAC1G,YAAA,CAAAoI,mBAAmB;MAAC7B,QAAQ,EAAGA,QAAU;MAAAO,QAAA,eACzC,IAAAlG,WAAA,CAAA8F,GAAA,EAACoB,aAAa;QACb9D,QAAQ,EAAGC,wBAA0B;QACrCsC,QAAQ,EAAGA,QAAU;QACrBR,IAAI,EAAGA,IAAM;QACbX,KAAK,EAAGA,KAAO;QACfR,UAAU,EAAGA,UAAY;QACzBE,QAAQ,EAAGA;MAAU,CACrB;IAAC,CACkB,CAAC;EAAA,CAClB,CAAC;AAER,CAAC;AAACuD,OAAA,CAAAN,gBAAA,GAAAA,gBAAA;AAEK,MAAMD,aAAa,GAAGA,CAAE;EAC9BvD,QAAQ;EACRP,QAAQ;EACRY,UAAU;EACVC,OAAO;EACPC,QAAQ;EACRyB,QAAQ;EACRnB,KAAK;EACLuC,KAAK;EACL5B;AACD,CAAC,KAAM;EACN,MAAM,CAAEuC,SAAS,EAAEC,YAAY,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EACrD,MAAM,CAAEC,eAAe,EAAEC,kBAAkB,CAAE,GAAG,IAAAF,iBAAQ,EAAE,KAAM,CAAC;EACjE,MAAMG,SAAS,GAAG,IAAAC,eAAM,EAAE,IAAK,CAAC;EAChC;EACA;EACA,MAAMC,eAAe,GAAG;IACvBC,IAAI,EAAE,QAAQ;IACdC,OAAO,EAAEA,CAAA,KAAMR,YAAY,CAAE,IAAK,CAAC;IACnCS,MAAM,EAAEA,CAAA,KAAMT,YAAY,CAAE,KAAM,CAAC;IACnCU,SAAS,EAAIC,KAAK,IAAM;MACvB,IAAKA,KAAK,CAACC,gBAAgB,EAAG;QAC7B;MACD;MACA,MAAM;QAAEC;MAAQ,CAAC,GAAGF,KAAK;MACzB,IAAKrE,OAAO,KAAMuE,OAAO,KAAKC,eAAK,IAAID,OAAO,KAAKE,eAAK,CAAE,EAAG;QAC5DJ,KAAK,CAACK,cAAc,CAAC,CAAC;QACtB1E,OAAO,CAAEqE,KAAM,CAAC;MACjB;IACD,CAAC;IACDrE,OAAO,EAAIqE,KAAK,IAAM;MACrB,IAAKA,KAAK,CAACC,gBAAgB,EAAG;QAC7B;MACD;MACA,IAAKtE,OAAO,EAAG;QACdqE,KAAK,CAACK,cAAc,CAAC,CAAC;QACtB1E,OAAO,CAAEqE,KAAM,CAAC;MACjB;IACD,CAAC;IACDM,QAAQ,EAAE;EACX,CAAC;EAED,MAAMC,UAAU,GAAGA,CAAA,KAAMf,kBAAkB,CAAE,IAAK,CAAC;EACnD,IAAAgB,wBAAe,EAAE,MAAM;IACtB,IAAKjB,eAAe,IAAIE,SAAS,EAAEgB,OAAO,EAAG;MAC5C,IAAK5D,IAAI,EAAExD,GAAG,EAAG;QAChBX,eAAe,CAAE,KAAK,EAAE+G,SAAS,EAAEgB,OAAQ,CAAC;QAC5C;MACD;MACA,IAAK5D,IAAI,EAAEtD,KAAK,EAAG;QAClBb,eAAe,CACd,WAAYmE,IAAI,EAAEtD,KAAK,EAAG,EAC1BkG,SAAS,EAAEgB,OACZ,CAAC;MACF;IACD;EACD,CAAC,EAAE,CAAEhB,SAAS,EAAEgB,OAAO,EAAE5D,IAAI,EAAEnE,eAAe,EAAE6G,eAAe,CAAG,CAAC;EAEnE,oBACC,IAAA7H,WAAA,CAAAmG,IAAA,EAAC/G,YAAA,CAAA4J,gBAAM;IACNC,MAAM,EAAGJ,UAAY;IACrBK,GAAG,EAAGnB,SAAW;IACjB3B,SAAS,EAAG,IAAAC,aAAI,EAAE,8BAA8B,EAAE;MACjD,YAAY,EAAEqB,SAAS,IAAI,CAAC,CAAEzD,OAAO;MACrC,WAAW,EAAE,CAAC,CAAEA;IACjB,CAAE,CAAG;IACLjB,IAAI,EAAC,mBAAmB;IACxBmG,QAAQ,EAAG,CAAG;IAAA,IACPlF,OAAO,GAAGgE,eAAe,GAAG,CAAC,CAAC;IAAA/B,QAAA,gBAErC,IAAAlG,WAAA,CAAA8F,GAAA,EAAC1G,YAAA,CAAAgK,sBAAY;MAACxD,MAAM,EAAGD,QAAQ,CAACC;IAAQ,CAAE,CAAC,eAC3C,IAAA5F,WAAA,CAAAmG,IAAA;MAAAD,QAAA,GACGmD,mCAAwB,EACxB,CAAC,CAAEpF,OAAO,IACX,4DAA4D;IAAA,CACvD,CAAC,eACR,IAAAjE,WAAA,CAAA8F,GAAA,EAACwD,QAAQ;MACRlD,SAAS,EAAG,IAAAC,aAAI,EAAE,gCAAgC,EAAE;QACnD,SAAS,EAAE7B,KAAK,CAAC8B,KAAK,GAAG;MAC1B,CAAE,CAAG;MACLlD,QAAQ,EAAGA,QAAU;MACrBO,QAAQ,EAAGA,QAAU;MACrB4F,KAAK,EACJxC,KAAK,GACF,IAAAyC,aAAO;MACP;MACA,IAAAvD,QAAE,EAAE,uCAAwC,CAAC,EAC7Cc,KACA,CAAC,GACD,IAAAd,QAAE,EAAE,oBAAqB,CAC5B;MACDjC,UAAU,EAAGA,UAAY;MACzBE,QAAQ,EAAGA;IAAU,GACfP,QACN,CAAC;EAAA,CACK,CAAC;AAEX,CAAC;AAAC8D,OAAA,CAAAP,aAAA,GAAAA,aAAA;AAEF,MAAMoC,QAAQ,GAAG,IAAAG,aAAI,EACpB,CAAE;EAAErD,SAAS;EAAEhD,QAAQ;EAAEO,QAAQ;EAAE4F,KAAK;EAAEvF,UAAU;EAAEE;AAAS,CAAC,KAAM;EACrE,MAAMwF,kBAAkB,GAAG/F,QAAQ,GAChC,IAAAmB,0CAA8B,EAAC,CAAC,CAAClB,IAAI,CACnC+F,SAAS,IAAMA,SAAS,CAACzG,IAAI,KAAKS,QACpC,CAAC,GACD,IAAI;EAEP,MAAMiG,gBAAgB,GAAGF,kBAAkB,GACxC,IAAAnG,iCAAqB,EAAEmG,kBAAkB,EAAEtG,QAAS,CAAC,GACrD;IAAEA;EAAS,CAAC;EAEf,oBACC,IAAApD,WAAA,CAAAmG,IAAA,EAACjH,WAAA,CAAA2K,SAAS;IACTC,WAAW,EAAC,UAAU;IACtB1D,SAAS,EAAGA,SAAW;IACvB,cAAamD,KAAO;IACpBrB,IAAI,EAAC,MAAM;IAAAhC,QAAA,GAET,CAAC,CAAE0D,gBAAgB,EAAExG,QAAQ,EAAErC,MAAM,IACtC6I,gBAAgB,CAACxG,QAAQ,CAACuD,GAAG,CAAIjD,OAAO,iBACvC,IAAA1D,WAAA,CAAA8F,GAAA,EAACiE,OAAO;MAEPC,EAAE,EAAG,WAAYtG,OAAO,CAACV,IAAI,EAAK;MAClC+D,KAAK,EAAGrD,OAAO,CAACqD,KAAO;MACvBkD,OAAO,EAAGvG,OAAO,CAACuG,OAAS;MAC3BC,MAAM,EAAGxG,OAAO,CAACwG,MAAQ;MACzBlG,UAAU,EAAGA,UAAU,GAAIN,OAAO,CAACV,IAAK,CAAG;MAC3CiB,OAAO,EACN,CAAC,CAAEC,QAAQ,GACR,MAAMA,QAAQ,CAAER,OAAO,CAACV,IAAK,CAAC,GAC9B;IACH,GAVKU,OAAO,CAACV,IAWd,CACA,CAAC,EACF,CAAC,CAAE4G,gBAAgB,EAAEO,aAAa,EAAEpJ,MAAM,IAC3C6I,gBAAgB,CAACO,aAAa,CAACxD,GAAG,CAAIyD,WAAW,iBAChD,IAAApK,WAAA,CAAAmG,IAAA,EAACjH,WAAA,CAAA2K,SAAS,CAACQ,KAAK;MACfjE,SAAS,EAAC,mCAAmC;MAAAF,QAAA,gBAG7C,IAAAlG,WAAA,CAAA8F,GAAA,EAAC5G,WAAA,CAAA2K,SAAS,CAACS,UAAU;QAAApE,QAAA,eACpB,IAAAlG,WAAA,CAAA8F,GAAA;UAAIM,SAAS,EAAC,yCAAyC;UAAAF,QAAA,EACpDkE,WAAW,CAACrD;QAAK,CAChB;MAAC,CACgB,CAAC,eACvB,IAAA/G,WAAA,CAAA8F,GAAA,EAACyE,WAAW;QACXnH,QAAQ,EAAGgH,WAAW,CAAChH,QAAU;QACjCY,UAAU,EAAGA,UAAY;QACzBE,QAAQ,EAAGA;MAAU,CACrB,CAAC;IAAA,GAXI,eAAgBkG,WAAW,CAAClH,IAAI,EAYtB,CAChB,CAAC;EAAA,CACM,CAAC;AAEd,CACD,CAAC;AAED,MAAMqH,WAAW,GAAGA,CAAE;EAAEnH,QAAQ;EAAEY,UAAU;EAAEE;AAAS,CAAC,KAAM;EAC7D,OACC,CAAC,CAAEd,QAAQ,EAAErC,MAAM,IACnBqC,QAAQ,CAACuD,GAAG,CAAIjD,OAAO,iBACtB,IAAA1D,WAAA,CAAA8F,GAAA,EAACiE,OAAO;IAEPC,EAAE,EAAG,WAAYtG,OAAO,CAACV,IAAI,EAAK;IAClC+D,KAAK,EAAGrD,OAAO,CAACqD,KAAO;IACvBkD,OAAO,EAAGvG,OAAO,CAACuG,OAAS;IAC3BC,MAAM,EAAGxG,OAAO,CAACwG,MAAQ;IACzBlG,UAAU,EAAGA,UAAU,GAAIN,OAAO,CAACV,IAAK,CAAG;IAC3CiB,OAAO,EAAG,CAAC,CAAEC,QAAQ,GAAG,MAAMA,QAAQ,CAAER,OAAO,CAACV,IAAK,CAAC,GAAG;EAAM,GANzDU,OAAO,CAACV,IAOd,CACA,CAAC;AAEL,CAAC;AAED,MAAMwH,gBAAgB,GAAG,CAAE,kBAAkB,CAAE;AAE/C,MAAMT,OAAO,GAAGA,CAAE;EAAEC,EAAE;EAAEjD,KAAK;EAAEmD,MAAM;EAAElG,UAAU;EAAEC,OAAO;EAAEgG;AAAQ,CAAC,KAAM;EAC1E,MAAM5E,gBAAgB,GAAG,IAAAC,eAAS,EAC/BC,MAAM,IAAMA,MAAM,CAAEC,kBAAiB,CAAC,CAACC,WAAW,CAAC,CAAC,EACtD,EACD,CAAC;EACD,MAAME,QAAQ,GAAG,IAAA/C,gBAAO,EACvB,OAAQ;IACP,GAAGyC,gBAAgB;IACnBoF,SAAS,EAAE,KAAK;IAAE;IAClB5E,aAAa,EAAE;EAChB,CAAC,CAAE,EACH,CAAER,gBAAgB,CACnB,CAAC;;EAED;EACA,MAAMqF,cAAc,GAAG,IAAA9H,gBAAO,EAC7B,MAAQ+H,KAAK,CAACC,OAAO,CAAEV,MAAO,CAAC,GAAGA,MAAM,GAAG,CAAEA,MAAM,CAAI,EACvD,CAAEA,MAAM,CACT,CAAC;EAED,MAAMW,aAAa,GAClBL,gBAAgB,CAAC1I,QAAQ,CAAEkI,EAAG,CAAC,IAAI,CAAE/F,OAAO,GACzC;IACA6G,QAAQ,EAAE,IAAI;IACdC,sBAAsB,EAAE,CAAC,CAAE9G;EAC3B,CAAC,GACD,CAAC,CAAC;EAEN,oBACC,IAAAjE,WAAA,CAAA8F,GAAA;IAAKoC,IAAI,EAAC,KAAK;IAAAhC,QAAA,eACd,IAAAlG,WAAA,CAAA8F,GAAA;MAAKoC,IAAI,EAAC,UAAU;MAAAhC,QAAA,eACnB,IAAAlG,WAAA,CAAAmG,IAAA,EAACjH,WAAA,CAAA2K,SAAS,CAACmB,IAAI;QACd5E,SAAS,EAAG,IAAAC,aAAI,EAAE,+BAA+B,EAAE;UAClD,aAAa,EAAErC,UAAU;UACzB,qBAAqB,EAAE,CAAC,CAAE6G,aAAa,EAAEC;QAC1C,CAAE,CAAG;QACLd,EAAE,EAAGA,EAAI;QACT,cACC,CAAC,CAAE/F,OAAO,GACP,IAAAuF,aAAO;QACP;QACA,IAAAvD,QAAE,EAAE,gCAAiC,CAAC,EACtCc,KACA,CAAC,GACDkE,SACH;QACDC,MAAM,eAAG,IAAAlL,WAAA,CAAA8F,GAAA,WAAM,CAAG;QAClBoC,IAAI,EAAG,CAAC,CAAEjE,OAAO,GAAG,QAAQ,GAAG,IAAM;QACrCA,OAAO,EAAGA,OAAS;QAAA,GACd4G,aAAa;QAAA3E,QAAA,gBAElB,IAAAlG,WAAA,CAAA8F,GAAA;UAAMM,SAAS,EAAC,qCAAqC;UAAAF,QAAA,EAClDa;QAAK,CACF,CAAC,eACP,IAAA/G,WAAA,CAAA8F,GAAA;UACCM,SAAS,EAAC,uCAAuC;UACjD,mBAAW;UAAAF,QAAA,eAEX,IAAAlG,WAAA,CAAA8F,GAAA,EAAC5G,WAAA,CAAAiM,QAAQ;YAAC/E,SAAS,EAAC,gDAAgD;YAAAF,QAAA,EACjE+D,OAAO,GACRA,OAAO,gBAEP,IAAAjK,WAAA,CAAAmG,IAAA,EAAClG,+BAA+B;cAC/BmL,KAAK,EAAGV,cAAgB;cACxB/E,QAAQ,EAAGA,QAAU;cAAAO,QAAA,gBAErB,IAAAlG,WAAA,CAAA8F,GAAA,EAAC1G,YAAA,CAAAgK,sBAAY,IAAE,CAAC,eAChB,IAAApJ,WAAA,CAAA8F,GAAA,EAAC1G,YAAA,CAAAiM,SAAS;gBAACC,cAAc,EAAG;cAAO,CAAE,CAAC;YAAA,CACN;UACjC,CACQ;QAAC,CACP,CAAC;MAAA,CACS;IAAC,CACb;EAAC,CACF,CAAC;AAER,CAAC;AAAC,IAAAC,QAAA,GAAA9D,OAAA,CAAA1B,OAAA,GAEajC,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_blockEditor","_editor","_data","_compose","_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","resizeObserver","sizes","useResizeObserver","textColor","backgroundColor","getExamples","tabs","getTopLevelStyleBookCategories","some","base","baseConfig","useContext","goTo","mergedConfig","originalSettings","useSelect","select","blockEditorStore","getSettings","globalStyles","settings","styles","isPreviewMode","jsx","default","closeButtonLabel","__","children","jsxs","className","clsx","width","style","color","background","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 { useResizeObserver } from '@wordpress/compose';\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 [ resizeObserver, sizes ] = useResizeObserver();\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-wide': sizes.width > 600,\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{ resizeObserver }\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\tsizes={ sizes }\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\tsizes={ sizes }\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 [ resizeObserver, sizes ] = useResizeObserver();\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{ resizeObserver }\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\tsizes={ sizes }\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\tsizes,\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={ clsx( 'edit-site-style-book__examples', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t} ) }\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":[]}
@@ -20,7 +20,8 @@ import { unlock } from '../../lock-unlock';
20
20
  import { PATTERN_TYPES, PATTERN_DEFAULT_CATEGORY, TEMPLATE_PART_POST_TYPE } from '../../utils/constants';
21
21
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
22
22
  const {
23
- useHistory
23
+ useHistory,
24
+ useLocation
24
25
  } = unlock(routerPrivateApis);
25
26
  const {
26
27
  CreatePatternModal,
@@ -31,6 +32,7 @@ const {
31
32
  } = unlock(editorPrivateApis);
32
33
  export default function AddNewPattern() {
33
34
  const history = useHistory();
35
+ const location = useLocation();
34
36
  const [showPatternModal, setShowPatternModal] = useState(false);
35
37
  const [showTemplatePartModal, setShowTemplatePartModal] = useState(false);
36
38
  // eslint-disable-next-line @wordpress/no-unused-vars-before-return
@@ -145,22 +147,16 @@ export default function AddNewPattern() {
145
147
  return;
146
148
  }
147
149
  try {
148
- const {
149
- params: {
150
- postType,
151
- categoryId
152
- }
153
- } = history.getLocationWithParams();
154
150
  let currentCategoryId;
155
151
  // When we're not handling template parts, we should
156
152
  // add or create the proper pattern category.
157
- if (postType !== TEMPLATE_PART_POST_TYPE) {
153
+ if (location.query.postType !== TEMPLATE_PART_POST_TYPE) {
158
154
  /*
159
155
  * categoryMap.values() returns an iterator.
160
156
  * Iterator.prototype.find() is not yet widely supported.
161
157
  * Convert to array to use the Array.prototype.find method.
162
158
  */
163
- const currentCategory = Array.from(categoryMap.values()).find(term => term.name === categoryId);
159
+ const currentCategory = Array.from(categoryMap.values()).find(term => term.name === location.query.categoryId);
164
160
  if (currentCategory) {
165
161
  currentCategoryId = currentCategory.id || (await findOrCreateTerm(currentCategory.label));
166
162
  }
@@ -170,7 +166,7 @@ export default function AddNewPattern() {
170
166
  // Navigate to the All patterns category for the newly created pattern
171
167
  // if we're not on that page already and if we're not in the `my-patterns`
172
168
  // category.
173
- if (!currentCategoryId && categoryId !== 'my-patterns') {
169
+ if (!currentCategoryId && location.query.categoryId !== 'my-patterns') {
174
170
  history.navigate(`/pattern?categoryId=${PATTERN_DEFAULT_CATEGORY}`);
175
171
  }
176
172
  createSuccessNotice(sprintf(
@@ -1 +1 @@
1
- {"version":3,"names":["DropdownMenu","useState","useRef","__","sprintf","symbol","symbolFilled","upload","useSelect","useDispatch","privateApis","routerPrivateApis","editPatternsPrivateApis","store","patternsStore","noticesStore","coreStore","editorPrivateApis","unlock","PATTERN_TYPES","PATTERN_DEFAULT_CATEGORY","TEMPLATE_PART_POST_TYPE","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useHistory","CreatePatternModal","useAddPatternCategory","CreateTemplatePartModal","AddNewPattern","history","showPatternModal","setShowPatternModal","showTemplatePartModal","setShowTemplatePartModal","createPatternFromFile","createSuccessNotice","createErrorNotice","patternUploadInputRef","isBlockBasedTheme","addNewPatternLabel","addNewTemplatePartLabel","canCreatePattern","canCreateTemplatePart","select","getCurrentTheme","getPostType","canUser","is_block_theme","user","labels","add_new_item","kind","name","handleCreatePattern","pattern","navigate","id","handleCreateTemplatePart","templatePart","handleError","controls","push","icon","onClick","title","current","click","categoryMap","findOrCreateTerm","length","children","toggleProps","variant","showTooltip","__next40pxDefaultSize","text","label","onClose","onSuccess","onError","closeModal","blocks","onCreate","type","accept","hidden","ref","onChange","event","file","target","files","params","postType","categoryId","getLocationWithParams","currentCategoryId","currentCategory","Array","from","values","find","term","undefined","raw","err","message","value"],"sources":["@wordpress/edit-site/src/components/add-new-pattern/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu } from '@wordpress/components';\nimport { useState, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { symbol, symbolFilled, upload } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tprivateApis as editPatternsPrivateApis,\n\tstore as patternsStore,\n} from '@wordpress/patterns';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\n\nconst { useHistory } = unlock( routerPrivateApis );\nconst { CreatePatternModal, useAddPatternCategory } = unlock(\n\teditPatternsPrivateApis\n);\nconst { CreateTemplatePartModal } = unlock( editorPrivateApis );\n\nexport default function AddNewPattern() {\n\tconst history = useHistory();\n\tconst [ showPatternModal, setShowPatternModal ] = useState( false );\n\tconst [ showTemplatePartModal, setShowTemplatePartModal ] =\n\t\tuseState( false );\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { createPatternFromFile } = unlock( useDispatch( patternsStore ) );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst patternUploadInputRef = useRef();\n\tconst {\n\t\tisBlockBasedTheme,\n\t\taddNewPatternLabel,\n\t\taddNewTemplatePartLabel,\n\t\tcanCreatePattern,\n\t\tcanCreateTemplatePart,\n\t} = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getPostType, canUser } = select( coreStore );\n\t\treturn {\n\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\taddNewPatternLabel: getPostType( PATTERN_TYPES.user )?.labels\n\t\t\t\t?.add_new_item,\n\t\t\taddNewTemplatePartLabel: getPostType( TEMPLATE_PART_POST_TYPE )\n\t\t\t\t?.labels?.add_new_item,\n\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\tcanCreatePattern: canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: PATTERN_TYPES.user,\n\t\t\t} ),\n\t\t\tcanCreateTemplatePart: canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: TEMPLATE_PART_POST_TYPE,\n\t\t\t} ),\n\t\t};\n\t}, [] );\n\n\tfunction handleCreatePattern( { pattern } ) {\n\t\tsetShowPatternModal( false );\n\t\thistory.navigate(\n\t\t\t`/${ PATTERN_TYPES.user }/${ pattern.id }?canvas=edit`\n\t\t);\n\t}\n\n\tfunction handleCreateTemplatePart( templatePart ) {\n\t\tsetShowTemplatePartModal( false );\n\t\thistory.navigate(\n\t\t\t`/${ TEMPLATE_PART_POST_TYPE }/${ templatePart.id }?canvas=edit`\n\t\t);\n\t}\n\n\tfunction handleError() {\n\t\tsetShowPatternModal( false );\n\t\tsetShowTemplatePartModal( false );\n\t}\n\n\tconst controls = [];\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbol,\n\t\t\tonClick: () => setShowPatternModal( true ),\n\t\t\ttitle: addNewPatternLabel,\n\t\t} );\n\t}\n\n\tif ( isBlockBasedTheme && canCreateTemplatePart ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbolFilled,\n\t\t\tonClick: () => setShowTemplatePartModal( true ),\n\t\t\ttitle: addNewTemplatePartLabel,\n\t\t} );\n\t}\n\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: upload,\n\t\t\tonClick: () => {\n\t\t\t\tpatternUploadInputRef.current.click();\n\t\t\t},\n\t\t\ttitle: __( 'Import pattern from JSON' ),\n\t\t} );\n\t}\n\n\tconst { categoryMap, findOrCreateTerm } = useAddPatternCategory();\n\tif ( controls.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ addNewPatternLabel && (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\ticon={ null }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\tshowTooltip: false,\n\t\t\t\t\t\t__next40pxDefaultSize: true,\n\t\t\t\t\t} }\n\t\t\t\t\ttext={ addNewPatternLabel }\n\t\t\t\t\tlabel={ addNewPatternLabel }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showPatternModal && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tonClose={ () => setShowPatternModal( false ) }\n\t\t\t\t\tonSuccess={ handleCreatePattern }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showTemplatePartModal && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setShowTemplatePartModal( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ handleCreateTemplatePart }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<input\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept=\".json\"\n\t\t\t\thidden\n\t\t\t\tref={ patternUploadInputRef }\n\t\t\t\tonChange={ async ( event ) => {\n\t\t\t\t\tconst file = event.target.files?.[ 0 ];\n\t\t\t\t\tif ( ! file ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\tparams: { postType, categoryId },\n\t\t\t\t\t\t} = history.getLocationWithParams();\n\t\t\t\t\t\tlet currentCategoryId;\n\t\t\t\t\t\t// When we're not handling template parts, we should\n\t\t\t\t\t\t// add or create the proper pattern category.\n\t\t\t\t\t\tif ( postType !== TEMPLATE_PART_POST_TYPE ) {\n\t\t\t\t\t\t\t/*\n\t\t\t\t\t\t\t * categoryMap.values() returns an iterator.\n\t\t\t\t\t\t\t * Iterator.prototype.find() is not yet widely supported.\n\t\t\t\t\t\t\t * Convert to array to use the Array.prototype.find method.\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tconst currentCategory = Array.from(\n\t\t\t\t\t\t\t\tcategoryMap.values()\n\t\t\t\t\t\t\t).find( ( term ) => term.name === categoryId );\n\t\t\t\t\t\t\tif ( currentCategory ) {\n\t\t\t\t\t\t\t\tcurrentCategoryId =\n\t\t\t\t\t\t\t\t\tcurrentCategory.id ||\n\t\t\t\t\t\t\t\t\t( await findOrCreateTerm(\n\t\t\t\t\t\t\t\t\t\tcurrentCategory.label\n\t\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\tconst pattern = await createPatternFromFile(\n\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\tcurrentCategoryId\n\t\t\t\t\t\t\t\t? [ currentCategoryId ]\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Navigate to the All patterns category for the newly created pattern\n\t\t\t\t\t\t// if we're not on that page already and if we're not in the `my-patterns`\n\t\t\t\t\t\t// category.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! currentCategoryId &&\n\t\t\t\t\t\t\tcategoryId !== 'my-patterns'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\thistory.navigate(\n\t\t\t\t\t\t\t\t`/pattern?categoryId=${ PATTERN_DEFAULT_CATEGORY }`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The imported pattern's title.\n\t\t\t\t\t\t\t\t__( 'Imported \"%s\" from JSON.' ),\n\t\t\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'import-pattern-success',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\tcreateErrorNotice( err.message, {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'import-pattern-error',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tevent.target.value = '';\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,YAAY,QAAQ,uBAAuB;AACpD,SAASC,QAAQ,EAAEC,MAAM,QAAQ,oBAAoB;AACrD,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,MAAM,EAAEC,YAAY,EAAEC,MAAM,QAAQ,kBAAkB;AAC/D,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;AACpE,SACCD,WAAW,IAAIE,uBAAuB,EACtCC,KAAK,IAAIC,aAAa,QAChB,qBAAqB;AAC5B,SAASD,KAAK,IAAIE,YAAY,QAAQ,oBAAoB;AAC1D,SAASF,KAAK,IAAIG,SAAS,QAAQ,sBAAsB;AACzD,SAASN,WAAW,IAAIO,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SACCC,aAAa,EACbC,wBAAwB,EACxBC,uBAAuB,QACjB,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAE/B,MAAM;EAAEC;AAAW,CAAC,GAAGV,MAAM,CAAEP,iBAAkB,CAAC;AAClD,MAAM;EAAEkB,kBAAkB;EAAEC;AAAsB,CAAC,GAAGZ,MAAM,CAC3DN,uBACD,CAAC;AACD,MAAM;EAAEmB;AAAwB,CAAC,GAAGb,MAAM,CAAED,iBAAkB,CAAC;AAE/D,eAAe,SAASe,aAAaA,CAAA,EAAG;EACvC,MAAMC,OAAO,GAAGL,UAAU,CAAC,CAAC;EAC5B,MAAM,CAAEM,gBAAgB,EAAEC,mBAAmB,CAAE,GAAGlC,QAAQ,CAAE,KAAM,CAAC;EACnE,MAAM,CAAEmC,qBAAqB,EAAEC,wBAAwB,CAAE,GACxDpC,QAAQ,CAAE,KAAM,CAAC;EAClB;EACA,MAAM;IAAEqC;EAAsB,CAAC,GAAGpB,MAAM,CAAET,WAAW,CAAEK,aAAc,CAAE,CAAC;EACxE,MAAM;IAAEyB,mBAAmB;IAAEC;EAAkB,CAAC,GAC/C/B,WAAW,CAAEM,YAAa,CAAC;EAC5B,MAAM0B,qBAAqB,GAAGvC,MAAM,CAAC,CAAC;EACtC,MAAM;IACLwC,iBAAiB;IACjBC,kBAAkB;IAClBC,uBAAuB;IACvBC,gBAAgB;IAChBC;EACD,CAAC,GAAGtC,SAAS,CAAIuC,MAAM,IAAM;IAC5B,MAAM;MAAEC,eAAe;MAAEC,WAAW;MAAEC;IAAQ,CAAC,GAAGH,MAAM,CAAE/B,SAAU,CAAC;IACrE,OAAO;MACN0B,iBAAiB,EAAEM,eAAe,CAAC,CAAC,EAAEG,cAAc;MACpDR,kBAAkB,EAAEM,WAAW,CAAE9B,aAAa,CAACiC,IAAK,CAAC,EAAEC,MAAM,EAC1DC,YAAY;MACfV,uBAAuB,EAAEK,WAAW,CAAE5B,uBAAwB,CAAC,EAC5DgC,MAAM,EAAEC,YAAY;MACvB;MACAT,gBAAgB,EAAEK,OAAO,CAAE,QAAQ,EAAE;QACpCK,IAAI,EAAE,UAAU;QAChBC,IAAI,EAAErC,aAAa,CAACiC;MACrB,CAAE,CAAC;MACHN,qBAAqB,EAAEI,OAAO,CAAE,QAAQ,EAAE;QACzCK,IAAI,EAAE,UAAU;QAChBC,IAAI,EAAEnC;MACP,CAAE;IACH,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,SAASoC,mBAAmBA,CAAE;IAAEC;EAAQ,CAAC,EAAG;IAC3CvB,mBAAmB,CAAE,KAAM,CAAC;IAC5BF,OAAO,CAAC0B,QAAQ,CACf,IAAKxC,aAAa,CAACiC,IAAI,IAAMM,OAAO,CAACE,EAAE,cACxC,CAAC;EACF;EAEA,SAASC,wBAAwBA,CAAEC,YAAY,EAAG;IACjDzB,wBAAwB,CAAE,KAAM,CAAC;IACjCJ,OAAO,CAAC0B,QAAQ,CACf,IAAKtC,uBAAuB,IAAMyC,YAAY,CAACF,EAAE,cAClD,CAAC;EACF;EAEA,SAASG,WAAWA,CAAA,EAAG;IACtB5B,mBAAmB,CAAE,KAAM,CAAC;IAC5BE,wBAAwB,CAAE,KAAM,CAAC;EAClC;EAEA,MAAM2B,QAAQ,GAAG,EAAE;EACnB,IAAKnB,gBAAgB,EAAG;IACvBmB,QAAQ,CAACC,IAAI,CAAE;MACdC,IAAI,EAAE7D,MAAM;MACZ8D,OAAO,EAAEA,CAAA,KAAMhC,mBAAmB,CAAE,IAAK,CAAC;MAC1CiC,KAAK,EAAEzB;IACR,CAAE,CAAC;EACJ;EAEA,IAAKD,iBAAiB,IAAII,qBAAqB,EAAG;IACjDkB,QAAQ,CAACC,IAAI,CAAE;MACdC,IAAI,EAAE5D,YAAY;MAClB6D,OAAO,EAAEA,CAAA,KAAM9B,wBAAwB,CAAE,IAAK,CAAC;MAC/C+B,KAAK,EAAExB;IACR,CAAE,CAAC;EACJ;EAEA,IAAKC,gBAAgB,EAAG;IACvBmB,QAAQ,CAACC,IAAI,CAAE;MACdC,IAAI,EAAE3D,MAAM;MACZ4D,OAAO,EAAEA,CAAA,KAAM;QACd1B,qBAAqB,CAAC4B,OAAO,CAACC,KAAK,CAAC,CAAC;MACtC,CAAC;MACDF,KAAK,EAAEjE,EAAE,CAAE,0BAA2B;IACvC,CAAE,CAAC;EACJ;EAEA,MAAM;IAAEoE,WAAW;IAAEC;EAAiB,CAAC,GAAG1C,qBAAqB,CAAC,CAAC;EACjE,IAAKkC,QAAQ,CAACS,MAAM,KAAK,CAAC,EAAG;IAC5B,OAAO,IAAI;EACZ;EACA,oBACC9C,KAAA,CAAAF,SAAA;IAAAiD,QAAA,GACG/B,kBAAkB,iBACnBpB,IAAA,CAACvB,YAAY;MACZgE,QAAQ,EAAGA,QAAU;MACrBE,IAAI,EAAG,IAAM;MACbS,WAAW,EAAG;QACbC,OAAO,EAAE,SAAS;QAClBC,WAAW,EAAE,KAAK;QAClBC,qBAAqB,EAAE;MACxB,CAAG;MACHC,IAAI,EAAGpC,kBAAoB;MAC3BqC,KAAK,EAAGrC;IAAoB,CAC5B,CACD,EACCT,gBAAgB,iBACjBX,IAAA,CAACM,kBAAkB;MAClBoD,OAAO,EAAGA,CAAA,KAAM9C,mBAAmB,CAAE,KAAM,CAAG;MAC9C+C,SAAS,EAAGzB,mBAAqB;MACjC0B,OAAO,EAAGpB;IAAa,CACvB,CACD,EACC3B,qBAAqB,iBACtBb,IAAA,CAACQ,uBAAuB;MACvBqD,UAAU,EAAGA,CAAA,KAAM/C,wBAAwB,CAAE,KAAM,CAAG;MACtDgD,MAAM,EAAG,EAAI;MACbC,QAAQ,EAAGzB,wBAA0B;MACrCsB,OAAO,EAAGpB;IAAa,CACvB,CACD,eAEDxC,IAAA;MACCgE,IAAI,EAAC,MAAM;MACXC,MAAM,EAAC,OAAO;MACdC,MAAM;MACNC,GAAG,EAAGjD,qBAAuB;MAC7BkD,QAAQ,EAAG,MAAQC,KAAK,IAAM;QAC7B,MAAMC,IAAI,GAAGD,KAAK,CAACE,MAAM,CAACC,KAAK,GAAI,CAAC,CAAE;QACtC,IAAK,CAAEF,IAAI,EAAG;UACb;QACD;QACA,IAAI;UACH,MAAM;YACLG,MAAM,EAAE;cAAEC,QAAQ;cAAEC;YAAW;UAChC,CAAC,GAAGjE,OAAO,CAACkE,qBAAqB,CAAC,CAAC;UACnC,IAAIC,iBAAiB;UACrB;UACA;UACA,IAAKH,QAAQ,KAAK5E,uBAAuB,EAAG;YAC3C;AACP;AACA;AACA;AACA;YACO,MAAMgF,eAAe,GAAGC,KAAK,CAACC,IAAI,CACjChC,WAAW,CAACiC,MAAM,CAAC,CACpB,CAAC,CAACC,IAAI,CAAIC,IAAI,IAAMA,IAAI,CAAClD,IAAI,KAAK0C,UAAW,CAAC;YAC9C,IAAKG,eAAe,EAAG;cACtBD,iBAAiB,GAChBC,eAAe,CAACzC,EAAE,KAChB,MAAMY,gBAAgB,CACvB6B,eAAe,CAACrB,KACjB,CAAC,CAAE;YACL;UACD;UACA,MAAMtB,OAAO,GAAG,MAAMpB,qBAAqB,CAC1CuD,IAAI,EACJO,iBAAiB,GACd,CAAEA,iBAAiB,CAAE,GACrBO,SACJ,CAAC;;UAED;UACA;UACA;UACA,IACC,CAAEP,iBAAiB,IACnBF,UAAU,KAAK,aAAa,EAC3B;YACDjE,OAAO,CAAC0B,QAAQ,CACf,uBAAwBvC,wBAAwB,EACjD,CAAC;UACF;UAEAmB,mBAAmB,CAClBnC,OAAO;UACN;UACAD,EAAE,CAAE,0BAA2B,CAAC,EAChCuD,OAAO,CAACU,KAAK,CAACwC,GACf,CAAC,EACD;YACCrB,IAAI,EAAE,UAAU;YAChB3B,EAAE,EAAE;UACL,CACD,CAAC;QACF,CAAC,CAAC,OAAQiD,GAAG,EAAG;UACfrE,iBAAiB,CAAEqE,GAAG,CAACC,OAAO,EAAE;YAC/BvB,IAAI,EAAE,UAAU;YAChB3B,EAAE,EAAE;UACL,CAAE,CAAC;QACJ,CAAC,SAAS;UACTgC,KAAK,CAACE,MAAM,CAACiB,KAAK,GAAG,EAAE;QACxB;MACD;IAAG,CACH,CAAC;EAAA,CACD,CAAC;AAEL","ignoreList":[]}
1
+ {"version":3,"names":["DropdownMenu","useState","useRef","__","sprintf","symbol","symbolFilled","upload","useSelect","useDispatch","privateApis","routerPrivateApis","editPatternsPrivateApis","store","patternsStore","noticesStore","coreStore","editorPrivateApis","unlock","PATTERN_TYPES","PATTERN_DEFAULT_CATEGORY","TEMPLATE_PART_POST_TYPE","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useHistory","useLocation","CreatePatternModal","useAddPatternCategory","CreateTemplatePartModal","AddNewPattern","history","location","showPatternModal","setShowPatternModal","showTemplatePartModal","setShowTemplatePartModal","createPatternFromFile","createSuccessNotice","createErrorNotice","patternUploadInputRef","isBlockBasedTheme","addNewPatternLabel","addNewTemplatePartLabel","canCreatePattern","canCreateTemplatePart","select","getCurrentTheme","getPostType","canUser","is_block_theme","user","labels","add_new_item","kind","name","handleCreatePattern","pattern","navigate","id","handleCreateTemplatePart","templatePart","handleError","controls","push","icon","onClick","title","current","click","categoryMap","findOrCreateTerm","length","children","toggleProps","variant","showTooltip","__next40pxDefaultSize","text","label","onClose","onSuccess","onError","closeModal","blocks","onCreate","type","accept","hidden","ref","onChange","event","file","target","files","currentCategoryId","query","postType","currentCategory","Array","from","values","find","term","categoryId","undefined","raw","err","message","value"],"sources":["@wordpress/edit-site/src/components/add-new-pattern/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu } from '@wordpress/components';\nimport { useState, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { symbol, symbolFilled, upload } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tprivateApis as editPatternsPrivateApis,\n\tstore as patternsStore,\n} from '@wordpress/patterns';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\nconst { CreatePatternModal, useAddPatternCategory } = unlock(\n\teditPatternsPrivateApis\n);\nconst { CreateTemplatePartModal } = unlock( editorPrivateApis );\n\nexport default function AddNewPattern() {\n\tconst history = useHistory();\n\tconst location = useLocation();\n\tconst [ showPatternModal, setShowPatternModal ] = useState( false );\n\tconst [ showTemplatePartModal, setShowTemplatePartModal ] =\n\t\tuseState( false );\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { createPatternFromFile } = unlock( useDispatch( patternsStore ) );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst patternUploadInputRef = useRef();\n\tconst {\n\t\tisBlockBasedTheme,\n\t\taddNewPatternLabel,\n\t\taddNewTemplatePartLabel,\n\t\tcanCreatePattern,\n\t\tcanCreateTemplatePart,\n\t} = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getPostType, canUser } = select( coreStore );\n\t\treturn {\n\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\taddNewPatternLabel: getPostType( PATTERN_TYPES.user )?.labels\n\t\t\t\t?.add_new_item,\n\t\t\taddNewTemplatePartLabel: getPostType( TEMPLATE_PART_POST_TYPE )\n\t\t\t\t?.labels?.add_new_item,\n\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\tcanCreatePattern: canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: PATTERN_TYPES.user,\n\t\t\t} ),\n\t\t\tcanCreateTemplatePart: canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: TEMPLATE_PART_POST_TYPE,\n\t\t\t} ),\n\t\t};\n\t}, [] );\n\n\tfunction handleCreatePattern( { pattern } ) {\n\t\tsetShowPatternModal( false );\n\t\thistory.navigate(\n\t\t\t`/${ PATTERN_TYPES.user }/${ pattern.id }?canvas=edit`\n\t\t);\n\t}\n\n\tfunction handleCreateTemplatePart( templatePart ) {\n\t\tsetShowTemplatePartModal( false );\n\t\thistory.navigate(\n\t\t\t`/${ TEMPLATE_PART_POST_TYPE }/${ templatePart.id }?canvas=edit`\n\t\t);\n\t}\n\n\tfunction handleError() {\n\t\tsetShowPatternModal( false );\n\t\tsetShowTemplatePartModal( false );\n\t}\n\n\tconst controls = [];\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbol,\n\t\t\tonClick: () => setShowPatternModal( true ),\n\t\t\ttitle: addNewPatternLabel,\n\t\t} );\n\t}\n\n\tif ( isBlockBasedTheme && canCreateTemplatePart ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbolFilled,\n\t\t\tonClick: () => setShowTemplatePartModal( true ),\n\t\t\ttitle: addNewTemplatePartLabel,\n\t\t} );\n\t}\n\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: upload,\n\t\t\tonClick: () => {\n\t\t\t\tpatternUploadInputRef.current.click();\n\t\t\t},\n\t\t\ttitle: __( 'Import pattern from JSON' ),\n\t\t} );\n\t}\n\n\tconst { categoryMap, findOrCreateTerm } = useAddPatternCategory();\n\tif ( controls.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ addNewPatternLabel && (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\ticon={ null }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\tshowTooltip: false,\n\t\t\t\t\t\t__next40pxDefaultSize: true,\n\t\t\t\t\t} }\n\t\t\t\t\ttext={ addNewPatternLabel }\n\t\t\t\t\tlabel={ addNewPatternLabel }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showPatternModal && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tonClose={ () => setShowPatternModal( false ) }\n\t\t\t\t\tonSuccess={ handleCreatePattern }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showTemplatePartModal && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setShowTemplatePartModal( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ handleCreateTemplatePart }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<input\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept=\".json\"\n\t\t\t\thidden\n\t\t\t\tref={ patternUploadInputRef }\n\t\t\t\tonChange={ async ( event ) => {\n\t\t\t\t\tconst file = event.target.files?.[ 0 ];\n\t\t\t\t\tif ( ! file ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet currentCategoryId;\n\t\t\t\t\t\t// When we're not handling template parts, we should\n\t\t\t\t\t\t// add or create the proper pattern category.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tlocation.query.postType !== TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t/*\n\t\t\t\t\t\t\t * categoryMap.values() returns an iterator.\n\t\t\t\t\t\t\t * Iterator.prototype.find() is not yet widely supported.\n\t\t\t\t\t\t\t * Convert to array to use the Array.prototype.find method.\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tconst currentCategory = Array.from(\n\t\t\t\t\t\t\t\tcategoryMap.values()\n\t\t\t\t\t\t\t).find(\n\t\t\t\t\t\t\t\t( term ) =>\n\t\t\t\t\t\t\t\t\tterm.name === location.query.categoryId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( currentCategory ) {\n\t\t\t\t\t\t\t\tcurrentCategoryId =\n\t\t\t\t\t\t\t\t\tcurrentCategory.id ||\n\t\t\t\t\t\t\t\t\t( await findOrCreateTerm(\n\t\t\t\t\t\t\t\t\t\tcurrentCategory.label\n\t\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\tconst pattern = await createPatternFromFile(\n\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\tcurrentCategoryId\n\t\t\t\t\t\t\t\t? [ currentCategoryId ]\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Navigate to the All patterns category for the newly created pattern\n\t\t\t\t\t\t// if we're not on that page already and if we're not in the `my-patterns`\n\t\t\t\t\t\t// category.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! currentCategoryId &&\n\t\t\t\t\t\t\tlocation.query.categoryId !== 'my-patterns'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\thistory.navigate(\n\t\t\t\t\t\t\t\t`/pattern?categoryId=${ PATTERN_DEFAULT_CATEGORY }`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The imported pattern's title.\n\t\t\t\t\t\t\t\t__( 'Imported \"%s\" from JSON.' ),\n\t\t\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'import-pattern-success',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\tcreateErrorNotice( err.message, {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'import-pattern-error',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tevent.target.value = '';\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}