@wordpress/edit-site 5.28.3 → 5.29.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 (195) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-editor/use-site-editor-settings.js +2 -1
  3. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  4. package/build/components/code-editor/index.js +3 -2
  5. package/build/components/code-editor/index.js.map +1 -1
  6. package/build/components/editor/index.js +4 -4
  7. package/build/components/editor/index.js.map +1 -1
  8. package/build/components/editor-canvas-container/index.js +1 -1
  9. package/build/components/editor-canvas-container/index.js.map +1 -1
  10. package/build/components/header-edit-mode/document-tools/index.js +1 -2
  11. package/build/components/header-edit-mode/document-tools/index.js.map +1 -1
  12. package/build/components/header-edit-mode/index.js +3 -1
  13. package/build/components/header-edit-mode/index.js.map +1 -1
  14. package/build/components/header-edit-mode/more-menu/index.js +7 -4
  15. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  16. package/build/components/keyboard-shortcuts/edit-mode.js +0 -13
  17. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  18. package/build/components/keyboard-shortcuts/register.js +0 -18
  19. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  20. package/build/components/layout/index.js +0 -1
  21. package/build/components/layout/index.js.map +1 -1
  22. package/build/components/page-patterns/dataviews-pattern-actions.js +25 -8
  23. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  24. package/build/components/page-patterns/header.js +2 -1
  25. package/build/components/page-patterns/header.js.map +1 -1
  26. package/build/components/page-patterns/index.js +0 -1
  27. package/build/components/page-patterns/index.js.map +1 -1
  28. package/build/components/save-button/index.js +2 -1
  29. package/build/components/save-button/index.js.map +1 -1
  30. package/build/components/sidebar/index.js +3 -2
  31. package/build/components/sidebar/index.js.map +1 -1
  32. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +5 -5
  33. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  34. package/build/components/sidebar-edit-mode/template-panel/hooks.js +20 -5
  35. package/build/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  36. package/build/components/sidebar-edit-mode/template-panel/index.js +48 -5
  37. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  38. package/build/components/sidebar-edit-mode/template-panel/template-actions.js +2 -9
  39. package/build/components/sidebar-edit-mode/template-panel/template-actions.js.map +1 -1
  40. package/build/components/sidebar-navigation-screen-global-styles/index.js +6 -2
  41. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  42. package/build/components/style-book/index.js +2 -0
  43. package/build/components/style-book/index.js.map +1 -1
  44. package/build/hooks/commands/use-edit-mode-commands.js +3 -171
  45. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  46. package/build/hooks/index.js +0 -1
  47. package/build/hooks/index.js.map +1 -1
  48. package/build/hooks/push-changes-to-global-styles/index.js +4 -5
  49. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  50. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +91 -0
  51. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -0
  52. package/build/store/actions.js +19 -50
  53. package/build/store/actions.js.map +1 -1
  54. package/build/utils/clone-deep.js +15 -0
  55. package/build/utils/clone-deep.js.map +1 -0
  56. package/build-module/components/block-editor/use-site-editor-settings.js +2 -1
  57. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  58. package/build-module/components/code-editor/index.js +3 -2
  59. package/build-module/components/code-editor/index.js.map +1 -1
  60. package/build-module/components/editor/index.js +4 -4
  61. package/build-module/components/editor/index.js.map +1 -1
  62. package/build-module/components/editor-canvas-container/index.js +2 -2
  63. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  64. package/build-module/components/header-edit-mode/document-tools/index.js +1 -2
  65. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -1
  66. package/build-module/components/header-edit-mode/index.js +3 -1
  67. package/build-module/components/header-edit-mode/index.js.map +1 -1
  68. package/build-module/components/header-edit-mode/more-menu/index.js +6 -3
  69. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  70. package/build-module/components/keyboard-shortcuts/edit-mode.js +0 -13
  71. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  72. package/build-module/components/keyboard-shortcuts/register.js +0 -18
  73. package/build-module/components/keyboard-shortcuts/register.js.map +1 -1
  74. package/build-module/components/layout/index.js +1 -2
  75. package/build-module/components/layout/index.js.map +1 -1
  76. package/build-module/components/page-patterns/dataviews-pattern-actions.js +25 -8
  77. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  78. package/build-module/components/page-patterns/header.js +2 -1
  79. package/build-module/components/page-patterns/header.js.map +1 -1
  80. package/build-module/components/page-patterns/index.js +0 -1
  81. package/build-module/components/page-patterns/index.js.map +1 -1
  82. package/build-module/components/save-button/index.js +2 -1
  83. package/build-module/components/save-button/index.js.map +1 -1
  84. package/build-module/components/sidebar/index.js +3 -2
  85. package/build-module/components/sidebar/index.js.map +1 -1
  86. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +5 -5
  87. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  88. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js +20 -5
  89. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  90. package/build-module/components/sidebar-edit-mode/template-panel/index.js +50 -7
  91. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  92. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js +2 -9
  93. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js.map +1 -1
  94. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +6 -2
  95. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  96. package/build-module/components/style-book/index.js +2 -0
  97. package/build-module/components/style-book/index.js.map +1 -1
  98. package/build-module/hooks/commands/use-edit-mode-commands.js +4 -172
  99. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  100. package/build-module/hooks/index.js +0 -1
  101. package/build-module/hooks/index.js.map +1 -1
  102. package/build-module/hooks/push-changes-to-global-styles/index.js +1 -3
  103. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  104. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +82 -0
  105. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -0
  106. package/build-module/store/actions.js +19 -50
  107. package/build-module/store/actions.js.map +1 -1
  108. package/build-module/utils/clone-deep.js +9 -0
  109. package/build-module/utils/clone-deep.js.map +1 -0
  110. package/build-style/style-rtl.css +24 -208
  111. package/build-style/style.css +24 -208
  112. package/package.json +43 -42
  113. package/src/components/block-editor/use-site-editor-settings.js +1 -0
  114. package/src/components/code-editor/index.js +3 -2
  115. package/src/components/editor/index.js +10 -7
  116. package/src/components/editor-canvas-container/index.js +2 -5
  117. package/src/components/{test → error-boundary/test}/error-boundary.js +7 -5
  118. package/src/components/global-styles/screen-revisions/style.scss +2 -2
  119. package/src/components/global-styles/style.scss +1 -1
  120. package/src/components/header-edit-mode/document-tools/index.js +1 -2
  121. package/src/components/header-edit-mode/index.js +1 -1
  122. package/src/components/header-edit-mode/more-menu/index.js +8 -3
  123. package/src/components/keyboard-shortcuts/edit-mode.js +0 -11
  124. package/src/components/keyboard-shortcuts/register.js +0 -19
  125. package/src/components/layout/index.js +0 -2
  126. package/src/components/page-patterns/dataviews-pattern-actions.js +41 -10
  127. package/src/components/page-patterns/header.js +1 -0
  128. package/src/components/page-patterns/index.js +0 -1
  129. package/src/components/page-patterns/style.scss +0 -182
  130. package/src/components/save-button/index.js +2 -1
  131. package/src/components/save-hub/style.scss +1 -1
  132. package/src/components/sidebar/index.js +2 -1
  133. package/src/components/sidebar-button/style.scss +1 -1
  134. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +5 -7
  135. package/src/components/sidebar-edit-mode/style.scss +4 -0
  136. package/src/components/sidebar-edit-mode/template-panel/hooks.js +37 -24
  137. package/src/components/sidebar-edit-mode/template-panel/index.js +76 -18
  138. package/src/components/sidebar-edit-mode/template-panel/style.scss +5 -14
  139. package/src/components/sidebar-edit-mode/template-panel/template-actions.js +1 -12
  140. package/src/components/sidebar-navigation-screen-global-styles/index.js +4 -1
  141. package/src/components/style-book/index.js +5 -1
  142. package/src/hooks/commands/use-edit-mode-commands.js +3 -184
  143. package/src/hooks/index.js +0 -1
  144. package/src/hooks/push-changes-to-global-styles/index.js +1 -4
  145. package/src/hooks/use-theme-style-variations/test/use-theme-style-variations-by-property.js +964 -0
  146. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +92 -0
  147. package/src/store/actions.js +21 -85
  148. package/src/store/test/actions.js +0 -75
  149. package/src/style.scss +1 -6
  150. package/src/utils/clone-deep.js +8 -0
  151. package/build/components/header-edit-mode/mode-switcher/index.js +0 -62
  152. package/build/components/header-edit-mode/mode-switcher/index.js.map +0 -1
  153. package/build/components/page-patterns/duplicate-menu-item.js +0 -93
  154. package/build/components/page-patterns/duplicate-menu-item.js.map +0 -1
  155. package/build/components/page-patterns/grid-item.js +0 -223
  156. package/build/components/page-patterns/grid-item.js.map +0 -1
  157. package/build/components/page-patterns/grid.js +0 -31
  158. package/build/components/page-patterns/grid.js.map +0 -1
  159. package/build/components/page-patterns/no-patterns.js +0 -18
  160. package/build/components/page-patterns/no-patterns.js.map +0 -1
  161. package/build/components/page-patterns/patterns-list.js +0 -168
  162. package/build/components/page-patterns/patterns-list.js.map +0 -1
  163. package/build/components/page-patterns/rename-menu-item.js +0 -105
  164. package/build/components/page-patterns/rename-menu-item.js.map +0 -1
  165. package/build/components/sidebar-edit-mode/template-panel/replace-template-button.js +0 -83
  166. package/build/components/sidebar-edit-mode/template-panel/replace-template-button.js.map +0 -1
  167. package/build/hooks/navigation-menu-edit.js +0 -82
  168. package/build/hooks/navigation-menu-edit.js.map +0 -1
  169. package/build-module/components/header-edit-mode/mode-switcher/index.js +0 -56
  170. package/build-module/components/header-edit-mode/mode-switcher/index.js.map +0 -1
  171. package/build-module/components/page-patterns/duplicate-menu-item.js +0 -85
  172. package/build-module/components/page-patterns/duplicate-menu-item.js.map +0 -1
  173. package/build-module/components/page-patterns/grid-item.js +0 -215
  174. package/build-module/components/page-patterns/grid-item.js.map +0 -1
  175. package/build-module/components/page-patterns/grid.js +0 -23
  176. package/build-module/components/page-patterns/grid.js.map +0 -1
  177. package/build-module/components/page-patterns/no-patterns.js +0 -11
  178. package/build-module/components/page-patterns/no-patterns.js.map +0 -1
  179. package/build-module/components/page-patterns/patterns-list.js +0 -160
  180. package/build-module/components/page-patterns/patterns-list.js.map +0 -1
  181. package/build-module/components/page-patterns/rename-menu-item.js +0 -98
  182. package/build-module/components/page-patterns/rename-menu-item.js.map +0 -1
  183. package/build-module/components/sidebar-edit-mode/template-panel/replace-template-button.js +0 -76
  184. package/build-module/components/sidebar-edit-mode/template-panel/replace-template-button.js.map +0 -1
  185. package/build-module/hooks/navigation-menu-edit.js +0 -75
  186. package/build-module/hooks/navigation-menu-edit.js.map +0 -1
  187. package/src/components/header-edit-mode/mode-switcher/index.js +0 -60
  188. package/src/components/page-patterns/duplicate-menu-item.js +0 -105
  189. package/src/components/page-patterns/grid-item.js +0 -331
  190. package/src/components/page-patterns/grid.js +0 -22
  191. package/src/components/page-patterns/no-patterns.js +0 -12
  192. package/src/components/page-patterns/patterns-list.js +0 -229
  193. package/src/components/page-patterns/rename-menu-item.js +0 -132
  194. package/src/components/sidebar-edit-mode/template-panel/replace-template-button.js +0 -89
  195. package/src/hooks/navigation-menu-edit.js +0 -92
@@ -1 +0,0 @@
1
- {"version":3,"names":["_components","require","_coreData","_data","_element","_i18n","_notices","_constants","RenameMenuItem","item","onClose","title","setTitle","useState","isModalOpen","setIsModalOpen","editEntityRecord","saveEditedEntityRecord","useDispatch","coreStore","createSuccessNotice","createErrorNotice","noticesStore","type","TEMPLATE_PART_POST_TYPE","isCustom","onRename","event","preventDefault","id","throwOnError","__","error","fallbackErrorMessage","errorMessage","message","code","_react","createElement","Fragment","MenuItem","onClick","Modal","onRequestClose","overlayClassName","onSubmit","__experimentalVStack","spacing","TextControl","__nextHasNoMarginBottom","__next40pxDefaultSize","label","value","onChange","required","__experimentalHStack","justify","Button","variant"],"sources":["@wordpress/edit-site/src/components/page-patterns/rename-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tMenuItem,\n\tModal,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\n\nexport default function RenameMenuItem( { item, onClose } ) {\n\tconst [ title, setTitle ] = useState( () => item.title );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tif ( item.type === TEMPLATE_PART_POST_TYPE && ! item.isCustom ) {\n\t\treturn null;\n\t}\n\n\tasync function onRename( event ) {\n\t\tevent.preventDefault();\n\n\t\ttry {\n\t\t\tawait editEntityRecord( 'postType', item.type, item.id, { title } );\n\n\t\t\t// Update state before saving rerenders the list.\n\t\t\tsetTitle( '' );\n\t\t\tsetIsModalOpen( false );\n\t\t\tonClose();\n\n\t\t\t// Persist edited entity.\n\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t? __( 'Template part renamed.' )\n\t\t\t\t\t: __( 'Pattern renamed.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst fallbackErrorMessage =\n\t\t\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t? __(\n\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'An error occurred while renaming the pattern.' );\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t\tsetTitle( item.title );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Rename' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"edit-site-list__rename-modal\"\n\t\t\t\t>\n\t\t\t\t\t<form onSubmit={ onRename }>\n\t\t\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -1,83 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = ReplaceTemplateButton;
7
- var _react = require("react");
8
- var _data = require("@wordpress/data");
9
- var _element = require("@wordpress/element");
10
- var _blockEditor = require("@wordpress/block-editor");
11
- var _components = require("@wordpress/components");
12
- var _i18n = require("@wordpress/i18n");
13
- var _coreData = require("@wordpress/core-data");
14
- var _compose = require("@wordpress/compose");
15
- var _blocks = require("@wordpress/blocks");
16
- var _store = require("../../../store");
17
- /**
18
- * WordPress dependencies
19
- */
20
-
21
- /**
22
- * Internal dependencies
23
- */
24
-
25
- function ReplaceTemplateButton({
26
- onClick,
27
- availableTemplates
28
- }) {
29
- const {
30
- editEntityRecord
31
- } = (0, _data.useDispatch)(_coreData.store);
32
- const [showModal, setShowModal] = (0, _element.useState)(false);
33
- const onClose = () => {
34
- setShowModal(false);
35
- };
36
- const {
37
- postId,
38
- postType
39
- } = (0, _data.useSelect)(select => {
40
- return {
41
- postId: select(_store.store).getEditedPostId(),
42
- postType: select(_store.store).getEditedPostType()
43
- };
44
- }, []);
45
- const onTemplateSelect = async selectedTemplate => {
46
- onClose(); // Close the template suggestions modal first.
47
- onClick();
48
- await editEntityRecord('postType', postType, postId, {
49
- blocks: selectedTemplate.blocks,
50
- content: (0, _blocks.serialize)(selectedTemplate.blocks)
51
- });
52
- };
53
- if (!availableTemplates.length || availableTemplates.length < 1) {
54
- return null;
55
- }
56
- return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.MenuItem, {
57
- info: (0, _i18n.__)('Replace the contents of this template with another.'),
58
- onClick: () => setShowModal(true)
59
- }, (0, _i18n.__)('Replace template')), showModal && (0, _react.createElement)(_components.Modal, {
60
- title: (0, _i18n.__)('Choose a template'),
61
- onRequestClose: onClose,
62
- overlayClassName: "edit-site-template-panel__replace-template-modal",
63
- isFullScreen: true
64
- }, (0, _react.createElement)("div", {
65
- className: "edit-site-template-panel__replace-template-modal__content"
66
- }, (0, _react.createElement)(TemplatesList, {
67
- availableTemplates: availableTemplates,
68
- onSelect: onTemplateSelect
69
- }))));
70
- }
71
- function TemplatesList({
72
- availableTemplates,
73
- onSelect
74
- }) {
75
- const shownTemplates = (0, _compose.useAsyncList)(availableTemplates);
76
- return (0, _react.createElement)(_blockEditor.__experimentalBlockPatternsList, {
77
- label: (0, _i18n.__)('Templates'),
78
- blockPatterns: availableTemplates,
79
- shownPatterns: shownTemplates,
80
- onClickPattern: onSelect
81
- });
82
- }
83
- //# sourceMappingURL=replace-template-button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_data","require","_element","_blockEditor","_components","_i18n","_coreData","_compose","_blocks","_store","ReplaceTemplateButton","onClick","availableTemplates","editEntityRecord","useDispatch","coreStore","showModal","setShowModal","useState","onClose","postId","postType","useSelect","select","editSiteStore","getEditedPostId","getEditedPostType","onTemplateSelect","selectedTemplate","blocks","content","serialize","length","_react","createElement","Fragment","MenuItem","info","__","Modal","title","onRequestClose","overlayClassName","isFullScreen","className","TemplatesList","onSelect","shownTemplates","useAsyncList","__experimentalBlockPatternsList","label","blockPatterns","shownPatterns","onClickPattern"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/template-panel/replace-template-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';\nimport { MenuItem, Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useAsyncList } from '@wordpress/compose';\nimport { serialize } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\n\nexport default function ReplaceTemplateButton( {\n\tonClick,\n\tavailableTemplates,\n} ) {\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst [ showModal, setShowModal ] = useState( false );\n\tconst onClose = () => {\n\t\tsetShowModal( false );\n\t};\n\n\tconst { postId, postType } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostId: select( editSiteStore ).getEditedPostId(),\n\t\t\tpostType: select( editSiteStore ).getEditedPostType(),\n\t\t};\n\t}, [] );\n\n\tconst onTemplateSelect = async ( selectedTemplate ) => {\n\t\tonClose(); // Close the template suggestions modal first.\n\t\tonClick();\n\t\tawait editEntityRecord( 'postType', postType, postId, {\n\t\t\tblocks: selectedTemplate.blocks,\n\t\t\tcontent: serialize( selectedTemplate.blocks ),\n\t\t} );\n\t};\n\n\tif ( ! availableTemplates.length || availableTemplates.length < 1 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tinfo={ __(\n\t\t\t\t\t'Replace the contents of this template with another.'\n\t\t\t\t) }\n\t\t\t\tonClick={ () => setShowModal( true ) }\n\t\t\t>\n\t\t\t\t{ __( 'Replace template' ) }\n\t\t\t</MenuItem>\n\n\t\t\t{ showModal && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Choose a template' ) }\n\t\t\t\t\tonRequestClose={ onClose }\n\t\t\t\t\toverlayClassName=\"edit-site-template-panel__replace-template-modal\"\n\t\t\t\t\tisFullScreen\n\t\t\t\t>\n\t\t\t\t\t<div className=\"edit-site-template-panel__replace-template-modal__content\">\n\t\t\t\t\t\t<TemplatesList\n\t\t\t\t\t\t\tavailableTemplates={ availableTemplates }\n\t\t\t\t\t\t\tonSelect={ onTemplateSelect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction TemplatesList( { availableTemplates, onSelect } ) {\n\tconst shownTemplates = useAsyncList( availableTemplates );\n\n\treturn (\n\t\t<BlockPatternsList\n\t\t\tlabel={ __( 'Templates' ) }\n\t\t\tblockPatterns={ availableTemplates }\n\t\t\tshownPatterns={ shownTemplates }\n\t\t\tonClickPattern={ onSelect }\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
@@ -1,82 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.withEditBlockControls = void 0;
7
- var _react = require("react");
8
- var _i18n = require("@wordpress/i18n");
9
- var _data = require("@wordpress/data");
10
- var _blockEditor = require("@wordpress/block-editor");
11
- var _coreData = require("@wordpress/core-data");
12
- var _components = require("@wordpress/components");
13
- var _hooks = require("@wordpress/hooks");
14
- var _compose = require("@wordpress/compose");
15
- var _router = require("@wordpress/router");
16
- var _link = require("../components/routes/link");
17
- var _lockUnlock = require("../lock-unlock");
18
- var _constants = require("../utils/constants");
19
- /**
20
- * WordPress dependencies
21
- */
22
-
23
- /**
24
- * Internal dependencies
25
- */
26
-
27
- const {
28
- useLocation
29
- } = (0, _lockUnlock.unlock)(_router.privateApis);
30
- function NavigationMenuEdit({
31
- attributes
32
- }) {
33
- const {
34
- ref
35
- } = attributes;
36
- const {
37
- params
38
- } = useLocation();
39
- const blockEditingMode = (0, _blockEditor.useBlockEditingMode)();
40
- const navigationMenu = (0, _data.useSelect)(select => {
41
- return select(_coreData.store).getEntityRecord('postType', _constants.NAVIGATION_POST_TYPE,
42
- // Ideally this should be an official public API.
43
- ref);
44
- }, [ref]);
45
- const linkProps = (0, _link.useLink)({
46
- postId: navigationMenu?.id,
47
- postType: navigationMenu?.type,
48
- canvas: 'edit'
49
- }, {
50
- // this applies to Navigation Menus as well.
51
- fromTemplateId: params.postId || navigationMenu?.id
52
- });
53
-
54
- // A non-default setting for block editing mode indicates that the
55
- // editor should restrict "editing" actions. Therefore the `Edit` button
56
- // should not be displayed.
57
- if (!navigationMenu || blockEditingMode !== 'default') {
58
- return null;
59
- }
60
- return (0, _react.createElement)(_blockEditor.BlockControls, {
61
- group: "other"
62
- }, (0, _react.createElement)(_components.ToolbarButton, {
63
- ...linkProps,
64
- onClick: event => {
65
- linkProps.onClick(event);
66
- }
67
- }, (0, _i18n.__)('Edit')));
68
- }
69
- const withEditBlockControls = exports.withEditBlockControls = (0, _compose.createHigherOrderComponent)(BlockEdit => props => {
70
- const {
71
- attributes,
72
- name
73
- } = props;
74
- const isDisplayed = name === 'core/navigation' && attributes.ref;
75
- return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(BlockEdit, {
76
- ...props
77
- }), isDisplayed && (0, _react.createElement)(NavigationMenuEdit, {
78
- attributes: attributes
79
- }));
80
- }, 'withEditBlockControls');
81
- (0, _hooks.addFilter)('editor.BlockEdit', 'core/edit-site/navigation-edit-button', withEditBlockControls);
82
- //# sourceMappingURL=navigation-menu-edit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_i18n","require","_data","_blockEditor","_coreData","_components","_hooks","_compose","_router","_link","_lockUnlock","_constants","useLocation","unlock","routerPrivateApis","NavigationMenuEdit","attributes","ref","params","blockEditingMode","useBlockEditingMode","navigationMenu","useSelect","select","coreStore","getEntityRecord","NAVIGATION_POST_TYPE","linkProps","useLink","postId","id","postType","type","canvas","fromTemplateId","_react","createElement","BlockControls","group","ToolbarButton","onClick","event","__","withEditBlockControls","exports","createHigherOrderComponent","BlockEdit","props","name","isDisplayed","Fragment","addFilter"],"sources":["@wordpress/edit-site/src/hooks/navigation-menu-edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { BlockControls, useBlockEditingMode } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { ToolbarButton } from '@wordpress/components';\nimport { addFilter } from '@wordpress/hooks';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { useLink } from '../components/routes/link';\nimport { unlock } from '../lock-unlock';\nimport { NAVIGATION_POST_TYPE } from '../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nfunction NavigationMenuEdit( { attributes } ) {\n\tconst { ref } = attributes;\n\tconst { params } = useLocation();\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst navigationMenu = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tNAVIGATION_POST_TYPE,\n\t\t\t\t// Ideally this should be an official public API.\n\t\t\t\tref\n\t\t\t);\n\t\t},\n\t\t[ ref ]\n\t);\n\n\tconst linkProps = useLink(\n\t\t{\n\t\t\tpostId: navigationMenu?.id,\n\t\t\tpostType: navigationMenu?.type,\n\t\t\tcanvas: 'edit',\n\t\t},\n\t\t{\n\t\t\t// this applies to Navigation Menus as well.\n\t\t\tfromTemplateId: params.postId || navigationMenu?.id,\n\t\t}\n\t);\n\n\t// A non-default setting for block editing mode indicates that the\n\t// editor should restrict \"editing\" actions. Therefore the `Edit` button\n\t// should not be displayed.\n\tif ( ! navigationMenu || blockEditingMode !== 'default' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockControls group=\"other\">\n\t\t\t<ToolbarButton\n\t\t\t\t{ ...linkProps }\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\tlinkProps.onClick( event );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Edit' ) }\n\t\t\t</ToolbarButton>\n\t\t</BlockControls>\n\t);\n}\n\nexport const withEditBlockControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { attributes, name } = props;\n\t\tconst isDisplayed = name === 'core/navigation' && attributes.ref;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit { ...props } />\n\t\t\t\t{ isDisplayed && (\n\t\t\t\t\t<NavigationMenuEdit attributes={ attributes } />\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\t'withEditBlockControls'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/edit-site/navigation-edit-button',\n\twithEditBlockControls\n);\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AAKA,IAAAQ,KAAA,GAAAR,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AACA,IAAAU,UAAA,GAAAV,OAAA;AAjBA;AACA;AACA;;AAUA;AACA;AACA;;AAKA,MAAM;EAAEW;AAAY,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAEnD,SAASC,kBAAkBA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC7C,MAAM;IAAEC;EAAI,CAAC,GAAGD,UAAU;EAC1B,MAAM;IAAEE;EAAO,CAAC,GAAGN,WAAW,CAAC,CAAC;EAChC,MAAMO,gBAAgB,GAAG,IAAAC,gCAAmB,EAAC,CAAC;EAC9C,MAAMC,cAAc,GAAG,IAAAC,eAAS,EAC7BC,MAAM,IAAM;IACb,OAAOA,MAAM,CAAEC,eAAU,CAAC,CAACC,eAAe,CACzC,UAAU,EACVC,+BAAoB;IACpB;IACAT,GACD,CAAC;EACF,CAAC,EACD,CAAEA,GAAG,CACN,CAAC;EAED,MAAMU,SAAS,GAAG,IAAAC,aAAO,EACxB;IACCC,MAAM,EAAER,cAAc,EAAES,EAAE;IAC1BC,QAAQ,EAAEV,cAAc,EAAEW,IAAI;IAC9BC,MAAM,EAAE;EACT,CAAC,EACD;IACC;IACAC,cAAc,EAAEhB,MAAM,CAACW,MAAM,IAAIR,cAAc,EAAES;EAClD,CACD,CAAC;;EAED;EACA;EACA;EACA,IAAK,CAAET,cAAc,IAAIF,gBAAgB,KAAK,SAAS,EAAG;IACzD,OAAO,IAAI;EACZ;EAEA,OACC,IAAAgB,MAAA,CAAAC,aAAA,EAACjC,YAAA,CAAAkC,aAAa;IAACC,KAAK,EAAC;EAAO,GAC3B,IAAAH,MAAA,CAAAC,aAAA,EAAC/B,WAAA,CAAAkC,aAAa;IAAA,GACRZ,SAAS;IACda,OAAO,EAAKC,KAAK,IAAM;MACtBd,SAAS,CAACa,OAAO,CAAEC,KAAM,CAAC;IAC3B;EAAG,GAED,IAAAC,QAAE,EAAE,MAAO,CACC,CACD,CAAC;AAElB;AAEO,MAAMC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,IAAAE,mCAA0B,EAC5DC,SAAS,IAAQC,KAAK,IAAM;EAC7B,MAAM;IAAE/B,UAAU;IAAEgC;EAAK,CAAC,GAAGD,KAAK;EAClC,MAAME,WAAW,GAAGD,IAAI,KAAK,iBAAiB,IAAIhC,UAAU,CAACC,GAAG;EAEhE,OACC,IAAAkB,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAe,QAAA,QACC,IAAAf,MAAA,CAAAC,aAAA,EAACU,SAAS;IAAA,GAAMC;EAAK,CAAI,CAAC,EACxBE,WAAW,IACZ,IAAAd,MAAA,CAAAC,aAAA,EAACrB,kBAAkB;IAACC,UAAU,EAAGA;EAAY,CAAE,CAE/C,CAAC;AAEL,CAAC,EACD,uBACD,CAAC;AAED,IAAAmC,gBAAS,EACR,kBAAkB,EAClB,uCAAuC,EACvCR,qBACD,CAAC"}
@@ -1,56 +0,0 @@
1
- import { createElement } from "react";
2
- /**
3
- * WordPress dependencies
4
- */
5
- import { __ } from '@wordpress/i18n';
6
- import { MenuItemsChoice, MenuGroup } from '@wordpress/components';
7
- import { useSelect, useDispatch } from '@wordpress/data';
8
- import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
9
-
10
- /**
11
- * Internal dependencies
12
- */
13
- import { store as editSiteStore } from '../../../store';
14
-
15
- /**
16
- * Set of available mode options.
17
- *
18
- * @type {Array}
19
- */
20
- const MODES = [{
21
- value: 'visual',
22
- label: __('Visual editor')
23
- }, {
24
- value: 'text',
25
- label: __('Code editor')
26
- }];
27
- function ModeSwitcher() {
28
- const {
29
- shortcut,
30
- mode
31
- } = useSelect(select => ({
32
- shortcut: select(keyboardShortcutsStore).getShortcutRepresentation('core/edit-site/toggle-mode'),
33
- mode: select(editSiteStore).getEditorMode()
34
- }), []);
35
- const {
36
- switchEditorMode
37
- } = useDispatch(editSiteStore);
38
- const choices = MODES.map(choice => {
39
- if (choice.value !== mode) {
40
- return {
41
- ...choice,
42
- shortcut
43
- };
44
- }
45
- return choice;
46
- });
47
- return createElement(MenuGroup, {
48
- label: __('Editor')
49
- }, createElement(MenuItemsChoice, {
50
- choices: choices,
51
- value: mode,
52
- onSelect: switchEditorMode
53
- }));
54
- }
55
- export default ModeSwitcher;
56
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["__","MenuItemsChoice","MenuGroup","useSelect","useDispatch","store","keyboardShortcutsStore","editSiteStore","MODES","value","label","ModeSwitcher","shortcut","mode","select","getShortcutRepresentation","getEditorMode","switchEditorMode","choices","map","choice","createElement","onSelect"],"sources":["@wordpress/edit-site/src/components/header-edit-mode/mode-switcher/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItemsChoice, MenuGroup } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\n\n/**\n * Set of available mode options.\n *\n * @type {Array}\n */\nconst MODES = [\n\t{\n\t\tvalue: 'visual',\n\t\tlabel: __( 'Visual editor' ),\n\t},\n\t{\n\t\tvalue: 'text',\n\t\tlabel: __( 'Code editor' ),\n\t},\n];\n\nfunction ModeSwitcher() {\n\tconst { shortcut, mode } = useSelect(\n\t\t( select ) => ( {\n\t\t\tshortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getShortcutRepresentation( 'core/edit-site/toggle-mode' ),\n\t\t\tmode: select( editSiteStore ).getEditorMode(),\n\t\t} ),\n\t\t[]\n\t);\n\tconst { switchEditorMode } = useDispatch( editSiteStore );\n\n\tconst choices = MODES.map( ( choice ) => {\n\t\tif ( choice.value !== mode ) {\n\t\t\treturn { ...choice, shortcut };\n\t\t}\n\t\treturn choice;\n\t} );\n\n\treturn (\n\t\t<MenuGroup label={ __( 'Editor' ) }>\n\t\t\t<MenuItemsChoice\n\t\t\t\tchoices={ choices }\n\t\t\t\tvalue={ mode }\n\t\t\t\tonSelect={ switchEditorMode }\n\t\t\t/>\n\t\t</MenuGroup>\n\t);\n}\n\nexport default ModeSwitcher;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,eAAe,EAAEC,SAAS,QAAQ,uBAAuB;AAClE,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,sBAAsB,QAAQ,+BAA+B;;AAE/E;AACA;AACA;AACA,SAASD,KAAK,IAAIE,aAAa,QAAQ,gBAAgB;;AAEvD;AACA;AACA;AACA;AACA;AACA,MAAMC,KAAK,GAAG,CACb;EACCC,KAAK,EAAE,QAAQ;EACfC,KAAK,EAAEV,EAAE,CAAE,eAAgB;AAC5B,CAAC,EACD;EACCS,KAAK,EAAE,MAAM;EACbC,KAAK,EAAEV,EAAE,CAAE,aAAc;AAC1B,CAAC,CACD;AAED,SAASW,YAAYA,CAAA,EAAG;EACvB,MAAM;IAAEC,QAAQ;IAAEC;EAAK,CAAC,GAAGV,SAAS,CACjCW,MAAM,KAAQ;IACfF,QAAQ,EAAEE,MAAM,CACfR,sBACD,CAAC,CAACS,yBAAyB,CAAE,4BAA6B,CAAC;IAC3DF,IAAI,EAAEC,MAAM,CAAEP,aAAc,CAAC,CAACS,aAAa,CAAC;EAC7C,CAAC,CAAE,EACH,EACD,CAAC;EACD,MAAM;IAAEC;EAAiB,CAAC,GAAGb,WAAW,CAAEG,aAAc,CAAC;EAEzD,MAAMW,OAAO,GAAGV,KAAK,CAACW,GAAG,CAAIC,MAAM,IAAM;IACxC,IAAKA,MAAM,CAACX,KAAK,KAAKI,IAAI,EAAG;MAC5B,OAAO;QAAE,GAAGO,MAAM;QAAER;MAAS,CAAC;IAC/B;IACA,OAAOQ,MAAM;EACd,CAAE,CAAC;EAEH,OACCC,aAAA,CAACnB,SAAS;IAACQ,KAAK,EAAGV,EAAE,CAAE,QAAS;EAAG,GAClCqB,aAAA,CAACpB,eAAe;IACfiB,OAAO,EAAGA,OAAS;IACnBT,KAAK,EAAGI,IAAM;IACdS,QAAQ,EAAGL;EAAkB,CAC7B,CACS,CAAC;AAEd;AAEA,eAAeN,YAAY"}
@@ -1,85 +0,0 @@
1
- import { createElement, Fragment } from "react";
2
- /**
3
- * WordPress dependencies
4
- */
5
- import { MenuItem } from '@wordpress/components';
6
- import { useDispatch } from '@wordpress/data';
7
- import { useState } from '@wordpress/element';
8
- import { __, sprintf } from '@wordpress/i18n';
9
- import { store as noticesStore } from '@wordpress/notices';
10
- import { privateApis as patternsPrivateApis } from '@wordpress/patterns';
11
- import { privateApis as routerPrivateApis } from '@wordpress/router';
12
-
13
- /**
14
- * Internal dependencies
15
- */
16
- import { TEMPLATE_PART_POST_TYPE, PATTERN_TYPES } from '../../utils/constants';
17
- import { unlock } from '../../lock-unlock';
18
- import CreateTemplatePartModal from '../create-template-part-modal';
19
- const {
20
- DuplicatePatternModal
21
- } = unlock(patternsPrivateApis);
22
- const {
23
- useHistory
24
- } = unlock(routerPrivateApis);
25
- export default function DuplicateMenuItem({
26
- categoryId,
27
- item,
28
- label = __('Duplicate'),
29
- onClose
30
- }) {
31
- const {
32
- createSuccessNotice
33
- } = useDispatch(noticesStore);
34
- const [isModalOpen, setIsModalOpen] = useState(false);
35
- const history = useHistory();
36
- const closeModal = () => setIsModalOpen(false);
37
- const isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;
38
- const isThemePattern = item.type === PATTERN_TYPES.theme;
39
- async function onTemplatePartSuccess(templatePart) {
40
- createSuccessNotice(sprintf(
41
- // translators: %s: The new template part's title e.g. 'Call to action (copy)'.
42
- __('"%s" duplicated.'), item.title), {
43
- type: 'snackbar',
44
- id: 'edit-site-patterns-success'
45
- });
46
- history.push({
47
- postType: TEMPLATE_PART_POST_TYPE,
48
- postId: templatePart?.id,
49
- categoryType: TEMPLATE_PART_POST_TYPE,
50
- categoryId
51
- });
52
- onClose();
53
- }
54
- function onPatternSuccess({
55
- pattern
56
- }) {
57
- history.push({
58
- categoryType: PATTERN_TYPES.theme,
59
- categoryId,
60
- postType: PATTERN_TYPES.user,
61
- postId: pattern.id
62
- });
63
- onClose();
64
- }
65
- return createElement(Fragment, null, createElement(MenuItem, {
66
- onClick: () => setIsModalOpen(true),
67
- "aria-expanded": isModalOpen,
68
- "aria-haspopup": "dialog"
69
- }, label), isModalOpen && !isTemplatePart && createElement(DuplicatePatternModal, {
70
- onClose: closeModal,
71
- onSuccess: onPatternSuccess,
72
- pattern: isThemePattern ? item : item.patternPost
73
- }), isModalOpen && isTemplatePart && createElement(CreateTemplatePartModal, {
74
- blocks: item.blocks,
75
- closeModal: closeModal,
76
- confirmLabel: __('Duplicate'),
77
- defaultArea: item.templatePart.area,
78
- defaultTitle: sprintf( /* translators: %s: Existing template part title */
79
- __('%s (Copy)'), item.title),
80
- modalTitle: __('Duplicate template part'),
81
- onCreate: onTemplatePartSuccess,
82
- onError: closeModal
83
- }));
84
- }
85
- //# sourceMappingURL=duplicate-menu-item.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["MenuItem","useDispatch","useState","__","sprintf","store","noticesStore","privateApis","patternsPrivateApis","routerPrivateApis","TEMPLATE_PART_POST_TYPE","PATTERN_TYPES","unlock","CreateTemplatePartModal","DuplicatePatternModal","useHistory","DuplicateMenuItem","categoryId","item","label","onClose","createSuccessNotice","isModalOpen","setIsModalOpen","history","closeModal","isTemplatePart","type","isThemePattern","theme","onTemplatePartSuccess","templatePart","title","id","push","postType","postId","categoryType","onPatternSuccess","pattern","user","createElement","Fragment","onClick","onSuccess","patternPost","blocks","confirmLabel","defaultArea","area","defaultTitle","modalTitle","onCreate","onError"],"sources":["@wordpress/edit-site/src/components/page-patterns/duplicate-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_PART_POST_TYPE, PATTERN_TYPES } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport CreateTemplatePartModal from '../create-template-part-modal';\n\nconst { DuplicatePatternModal } = unlock( patternsPrivateApis );\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport default function DuplicateMenuItem( {\n\tcategoryId,\n\titem,\n\tlabel = __( 'Duplicate' ),\n\tonClose,\n} ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst history = useHistory();\n\n\tconst closeModal = () => setIsModalOpen( false );\n\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\n\tasync function onTemplatePartSuccess( templatePart ) {\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\titem.title\n\t\t\t),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-success',\n\t\t\t}\n\t\t);\n\n\t\thistory.push( {\n\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\tpostId: templatePart?.id,\n\t\t\tcategoryType: TEMPLATE_PART_POST_TYPE,\n\t\t\tcategoryId,\n\t\t} );\n\n\t\tonClose();\n\t}\n\n\tfunction onPatternSuccess( { pattern } ) {\n\t\thistory.push( {\n\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\tcategoryId,\n\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\tpostId: pattern.id,\n\t\t} );\n\n\t\tonClose();\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ label }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && ! isTemplatePart && (\n\t\t\t\t<DuplicatePatternModal\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\tonSuccess={ onPatternSuccess }\n\t\t\t\t\tpattern={ isThemePattern ? item : item.patternPost }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isModalOpen && isTemplatePart && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tblocks={ item.blocks }\n\t\t\t\t\tcloseModal={ closeModal }\n\t\t\t\t\tconfirmLabel={ __( 'Duplicate' ) }\n\t\t\t\t\tdefaultArea={ item.templatePart.area }\n\t\t\t\t\tdefaultTitle={ sprintf(\n\t\t\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\t\t\titem.title\n\t\t\t\t\t) }\n\t\t\t\t\tmodalTitle={ __( 'Duplicate template part' ) }\n\t\t\t\t\tonCreate={ onTemplatePartSuccess }\n\t\t\t\t\tonError={ closeModal }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -1,215 +0,0 @@
1
- import { createElement } from "react";
2
- /**
3
- * External dependencies
4
- */
5
- import classnames from 'classnames';
6
- import { paramCase as kebabCase } from 'change-case';
7
-
8
- /**
9
- * WordPress dependencies
10
- */
11
- import { BlockPreview, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
12
- import { Button, __experimentalConfirmDialog as ConfirmDialog, DropdownMenu, MenuGroup, MenuItem, __experimentalHeading as Heading, __experimentalHStack as HStack, Tooltip, Flex } from '@wordpress/components';
13
- import { useDispatch } from '@wordpress/data';
14
- import { useState, useId, memo } from '@wordpress/element';
15
- import { __, sprintf } from '@wordpress/i18n';
16
- import { Icon, header, footer, symbolFilled as uncategorized, symbol, moreVertical, lockSmall } from '@wordpress/icons';
17
- import { store as noticesStore } from '@wordpress/notices';
18
- import { store as reusableBlocksStore } from '@wordpress/reusable-blocks';
19
- import { downloadBlob } from '@wordpress/blob';
20
-
21
- /**
22
- * Internal dependencies
23
- */
24
- import RenameMenuItem from './rename-menu-item';
25
- import DuplicateMenuItem from './duplicate-menu-item';
26
- import { PATTERN_TYPES, TEMPLATE_PART_POST_TYPE, PATTERN_SYNC_TYPES } from '../../utils/constants';
27
- import { store as editSiteStore } from '../../store';
28
- import { useLink } from '../routes/link';
29
- import { unlock } from '../../lock-unlock';
30
- const {
31
- useGlobalStyle
32
- } = unlock(blockEditorPrivateApis);
33
- const templatePartIcons = {
34
- header,
35
- footer,
36
- uncategorized
37
- };
38
- function GridItem({
39
- categoryId,
40
- item,
41
- ...props
42
- }) {
43
- const descriptionId = useId();
44
- const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState(false);
45
- const [backgroundColor] = useGlobalStyle('color.background');
46
- const {
47
- removeTemplate
48
- } = useDispatch(editSiteStore);
49
- const {
50
- __experimentalDeleteReusableBlock
51
- } = useDispatch(reusableBlocksStore);
52
- const {
53
- createErrorNotice,
54
- createSuccessNotice
55
- } = useDispatch(noticesStore);
56
- const isUserPattern = item.type === PATTERN_TYPES.user;
57
- const isNonUserPattern = item.type === PATTERN_TYPES.theme;
58
- const isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;
59
- const {
60
- onClick
61
- } = useLink({
62
- postType: item.type,
63
- postId: isUserPattern ? item.id : item.name,
64
- categoryId,
65
- categoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme
66
- });
67
- const isEmpty = !item.blocks?.length;
68
- const patternClassNames = classnames('edit-site-patterns__pattern', {
69
- 'is-placeholder': isEmpty
70
- });
71
- const previewClassNames = classnames('edit-site-patterns__preview', {
72
- 'is-inactive': isNonUserPattern
73
- });
74
- const deletePattern = async () => {
75
- try {
76
- await __experimentalDeleteReusableBlock(item.id);
77
- createSuccessNotice(sprintf(
78
- // translators: %s: The pattern's title e.g. 'Call to action'.
79
- __('"%s" deleted.'), item.title), {
80
- type: 'snackbar',
81
- id: 'edit-site-patterns-success'
82
- });
83
- } catch (error) {
84
- const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : __('An error occurred while deleting the pattern.');
85
- createErrorNotice(errorMessage, {
86
- type: 'snackbar',
87
- id: 'edit-site-patterns-error'
88
- });
89
- }
90
- };
91
- const deleteItem = () => isTemplatePart ? removeTemplate(item) : deletePattern();
92
- const exportAsJSON = () => {
93
- const json = {
94
- __file: item.type,
95
- title: item.title || item.name,
96
- content: item.patternPost.content.raw,
97
- syncStatus: item.patternPost.wp_pattern_sync_status
98
- };
99
- return downloadBlob(`${kebabCase(item.title || item.name)}.json`, JSON.stringify(json, null, 2), 'application/json');
100
- };
101
-
102
- // Only custom patterns or custom template parts can be renamed or deleted.
103
- const isCustomPattern = isUserPattern || isTemplatePart && item.isCustom;
104
- const hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;
105
- const ariaDescriptions = [];
106
- if (isCustomPattern) {
107
- // User patterns don't have descriptions, but can be edited and deleted, so include some help text.
108
- ariaDescriptions.push(__('Press Enter to edit, or Delete to delete the pattern.'));
109
- } else if (item.description) {
110
- ariaDescriptions.push(item.description);
111
- }
112
- if (isNonUserPattern) {
113
- ariaDescriptions.push(__('Theme & plugin patterns cannot be edited.'));
114
- }
115
- let itemIcon;
116
- if (!isUserPattern && templatePartIcons[categoryId]) {
117
- itemIcon = templatePartIcons[categoryId];
118
- } else {
119
- itemIcon = item.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;
120
- }
121
- const confirmButtonText = hasThemeFile ? __('Clear') : __('Delete');
122
- const confirmPrompt = hasThemeFile ? __('Are you sure you want to clear these customizations?') : sprintf(
123
- // translators: %s: The pattern or template part's title e.g. 'Call to action'.
124
- __('Are you sure you want to delete "%s"?'), item.title || item.name);
125
- const additionalStyles = !backgroundColor ? [{
126
- css: 'body { background: #fff; }'
127
- }] : undefined;
128
- return createElement("li", {
129
- className: patternClassNames
130
- }, createElement("button", {
131
- className: previewClassNames,
132
- id: `edit-site-patterns-${item.name}`,
133
- type: "button",
134
- ...props,
135
- onClick: item.type !== PATTERN_TYPES.theme ? onClick : undefined,
136
- "aria-disabled": item.type !== PATTERN_TYPES.theme ? 'false' : 'true',
137
- "aria-label": item.title,
138
- "aria-describedby": ariaDescriptions.length ? ariaDescriptions.map((_, index) => `${descriptionId}-${index}`).join(' ') : undefined
139
- }, isEmpty && isTemplatePart && __('Empty template part'), isEmpty && !isTemplatePart && __('Empty pattern'), !isEmpty && createElement(BlockPreview, {
140
- blocks: item.blocks,
141
- additionalStyles: additionalStyles,
142
- viewportWidth: item.viewportWidth
143
- })), ariaDescriptions.map((ariaDescription, index) => createElement("div", {
144
- key: index,
145
- hidden: true,
146
- id: `${descriptionId}-${index}`
147
- }, ariaDescription)), createElement(HStack, {
148
- className: "edit-site-patterns__footer",
149
- justify: "space-between"
150
- }, createElement(HStack, {
151
- alignment: "center",
152
- justify: "left",
153
- spacing: 3,
154
- className: "edit-site-patterns__pattern-title"
155
- }, itemIcon && !isNonUserPattern && createElement(Tooltip, {
156
- placement: "top",
157
- text: __('Editing this pattern will also update anywhere it is used')
158
- }, createElement(Icon, {
159
- className: "edit-site-patterns__pattern-icon",
160
- icon: itemIcon
161
- })), createElement(Flex, {
162
- as: "span",
163
- gap: 0,
164
- justify: "left"
165
- }, item.type === PATTERN_TYPES.theme ? item.title : createElement(Heading, {
166
- level: 5
167
- }, createElement(Button, {
168
- variant: "link",
169
- onClick: onClick
170
- // Required for the grid's roving tab index system.
171
- // See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.
172
- ,
173
- tabIndex: "-1"
174
- }, item.title || item.name)), item.type === PATTERN_TYPES.theme && createElement(Tooltip, {
175
- placement: "top",
176
- text: __('This pattern cannot be edited.')
177
- }, createElement(Icon, {
178
- className: "edit-site-patterns__pattern-lock-icon",
179
- icon: lockSmall,
180
- size: 24
181
- })))), createElement(DropdownMenu, {
182
- icon: moreVertical,
183
- label: __('Actions'),
184
- className: "edit-site-patterns__dropdown",
185
- popoverProps: {
186
- placement: 'bottom-end'
187
- },
188
- toggleProps: {
189
- className: 'edit-site-patterns__button',
190
- describedBy: sprintf( /* translators: %s: pattern name */
191
- __('Action menu for %s pattern'), item.title)
192
- }
193
- }, ({
194
- onClose
195
- }) => createElement(MenuGroup, null, isCustomPattern && !hasThemeFile && createElement(RenameMenuItem, {
196
- item: item,
197
- onClose: onClose
198
- }), createElement(DuplicateMenuItem, {
199
- categoryId: categoryId,
200
- item: item,
201
- onClose: onClose,
202
- label: __('Duplicate')
203
- }), item.type === PATTERN_TYPES.user && createElement(MenuItem, {
204
- onClick: () => exportAsJSON()
205
- }, __('Export as JSON')), isCustomPattern && createElement(MenuItem, {
206
- isDestructive: !hasThemeFile,
207
- onClick: () => setIsDeleteDialogOpen(true)
208
- }, hasThemeFile ? __('Clear customizations') : __('Delete'))))), isDeleteDialogOpen && createElement(ConfirmDialog, {
209
- confirmButtonText: confirmButtonText,
210
- onConfirm: deleteItem,
211
- onCancel: () => setIsDeleteDialogOpen(false)
212
- }, confirmPrompt));
213
- }
214
- export default memo(GridItem);
215
- //# sourceMappingURL=grid-item.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["classnames","paramCase","kebabCase","BlockPreview","privateApis","blockEditorPrivateApis","Button","__experimentalConfirmDialog","ConfirmDialog","DropdownMenu","MenuGroup","MenuItem","__experimentalHeading","Heading","__experimentalHStack","HStack","Tooltip","Flex","useDispatch","useState","useId","memo","__","sprintf","Icon","header","footer","symbolFilled","uncategorized","symbol","moreVertical","lockSmall","store","noticesStore","reusableBlocksStore","downloadBlob","RenameMenuItem","DuplicateMenuItem","PATTERN_TYPES","TEMPLATE_PART_POST_TYPE","PATTERN_SYNC_TYPES","editSiteStore","useLink","unlock","useGlobalStyle","templatePartIcons","GridItem","categoryId","item","props","descriptionId","isDeleteDialogOpen","setIsDeleteDialogOpen","backgroundColor","removeTemplate","__experimentalDeleteReusableBlock","createErrorNotice","createSuccessNotice","isUserPattern","type","user","isNonUserPattern","theme","isTemplatePart","onClick","postType","postId","id","name","categoryType","isEmpty","blocks","length","patternClassNames","previewClassNames","deletePattern","title","error","errorMessage","message","code","deleteItem","exportAsJSON","json","__file","content","patternPost","raw","syncStatus","wp_pattern_sync_status","JSON","stringify","isCustomPattern","isCustom","hasThemeFile","templatePart","has_theme_file","ariaDescriptions","push","description","itemIcon","full","undefined","confirmButtonText","confirmPrompt","additionalStyles","css","createElement","className","map","_","index","join","viewportWidth","ariaDescription","key","hidden","justify","alignment","spacing","placement","text","icon","as","gap","level","variant","tabIndex","size","label","popoverProps","toggleProps","describedBy","onClose","isDestructive","onConfirm","onCancel"],"sources":["@wordpress/edit-site/src/components/page-patterns/grid-item.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useId, memo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tmoreVertical,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { downloadBlob } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport RenameMenuItem from './rename-menu-item';\nimport DuplicateMenuItem from './duplicate-menu-item';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n} from '../../utils/constants';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nconst templatePartIcons = { header, footer, uncategorized };\n\nfunction GridItem( { categoryId, item, ...props } ) {\n\tconst descriptionId = useId();\n\tconst [ isDeleteDialogOpen, setIsDeleteDialogOpen ] = useState( false );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\n\tconst { removeTemplate } = useDispatch( editSiteStore );\n\tconst { __experimentalDeleteReusableBlock } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t} );\n\n\tconst isEmpty = ! item.blocks?.length;\n\tconst patternClassNames = classnames( 'edit-site-patterns__pattern', {\n\t\t'is-placeholder': isEmpty,\n\t} );\n\tconst previewClassNames = classnames( 'edit-site-patterns__preview', {\n\t\t'is-inactive': isNonUserPattern,\n\t} );\n\n\tconst deletePattern = async () => {\n\t\ttry {\n\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The pattern's title e.g. 'Call to action'.\n\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while deleting the pattern.' );\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t}\n\t};\n\tconst deleteItem = () =>\n\t\tisTemplatePart ? removeTemplate( item ) : deletePattern();\n\tconst exportAsJSON = () => {\n\t\tconst json = {\n\t\t\t__file: item.type,\n\t\t\ttitle: item.title || item.name,\n\t\t\tcontent: item.patternPost.content.raw,\n\t\t\tsyncStatus: item.patternPost.wp_pattern_sync_status,\n\t\t};\n\n\t\treturn downloadBlob(\n\t\t\t`${ kebabCase( item.title || item.name ) }.json`,\n\t\t\tJSON.stringify( json, null, 2 ),\n\t\t\t'application/json'\n\t\t);\n\t};\n\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\tconst ariaDescriptions = [];\n\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\n\tlet itemIcon;\n\tif ( ! isUserPattern && templatePartIcons[ categoryId ] ) {\n\t\titemIcon = templatePartIcons[ categoryId ];\n\t} else {\n\t\titemIcon =\n\t\t\titem.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;\n\t}\n\n\tconst confirmButtonText = hasThemeFile ? __( 'Clear' ) : __( 'Delete' );\n\tconst confirmPrompt = hasThemeFile\n\t\t? __( 'Are you sure you want to clear these customizations?' )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: The pattern or template part's title e.g. 'Call to action'.\n\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\titem.title || item.name\n\t\t );\n\n\tconst additionalStyles = ! backgroundColor\n\t\t? [ { css: 'body { background: #fff; }' } ]\n\t\t: undefined;\n\n\treturn (\n\t\t<li className={ patternClassNames }>\n\t\t\t<button\n\t\t\t\tclassName={ previewClassNames }\n\t\t\t\tid={ `edit-site-patterns-${ item.name }` }\n\t\t\t\ttype=\"button\"\n\t\t\t\t{ ...props }\n\t\t\t\tonClick={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? onClick : undefined\n\t\t\t\t}\n\t\t\t\taria-disabled={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? 'false' : 'true'\n\t\t\t\t}\n\t\t\t\taria-label={ item.title }\n\t\t\t\taria-describedby={\n\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\tblocks={ item.blocks }\n\t\t\t\t\t\tadditionalStyles={ additionalStyles }\n\t\t\t\t\t\tviewportWidth={ item.viewportWidth }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</button>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t\t<HStack\n\t\t\t\tclassName=\"edit-site-patterns__footer\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t\t>\n\t\t\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\t<Flex as=\"span\" gap={ 0 } justify=\"left\">\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Heading level={ 5 }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ item.title || item.name }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t</HStack>\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\tclassName=\"edit-site-patterns__dropdown\"\n\t\t\t\t\tpopoverProps={ { placement: 'bottom-end' } }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\tdescribedBy: sprintf(\n\t\t\t\t\t\t\t/* translators: %s: pattern name */\n\t\t\t\t\t\t\t__( 'Action menu for %s pattern' ),\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ isCustomPattern && ! hasThemeFile && (\n\t\t\t\t\t\t\t\t<RenameMenuItem\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<DuplicateMenuItem\n\t\t\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tlabel={ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ item.type === PATTERN_TYPES.user && (\n\t\t\t\t\t\t\t\t<MenuItem onClick={ () => exportAsJSON() }>\n\t\t\t\t\t\t\t\t\t{ __( 'Export as JSON' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t{ isCustomPattern && (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tisDestructive={ ! hasThemeFile }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsDeleteDialogOpen( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasThemeFile\n\t\t\t\t\t\t\t\t\t\t? __( 'Clear customizations' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Delete' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t</HStack>\n\n\t\t\t{ isDeleteDialogOpen && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tconfirmButtonText={ confirmButtonText }\n\t\t\t\t\tonConfirm={ deleteItem }\n\t\t\t\t\tonCancel={ () => setIsDeleteDialogOpen( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ confirmPrompt }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nexport default memo( GridItem );\n"],"mappings":"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"}