@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,23 +0,0 @@
1
- import { createElement } from "react";
2
- /**
3
- * Internal dependencies
4
- */
5
- import GridItem from './grid-item';
6
- export default function Grid({
7
- categoryId,
8
- items,
9
- ...props
10
- }) {
11
- if (!items?.length) {
12
- return null;
13
- }
14
- return createElement("ul", {
15
- className: "edit-site-patterns__grid",
16
- ...props
17
- }, items.map(item => createElement(GridItem, {
18
- key: item.name,
19
- item: item,
20
- categoryId: categoryId
21
- })));
22
- }
23
- //# sourceMappingURL=grid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["GridItem","Grid","categoryId","items","props","length","createElement","className","map","item","key","name"],"sources":["@wordpress/edit-site/src/components/page-patterns/grid.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport GridItem from './grid-item';\n\nexport default function Grid( { categoryId, items, ...props } ) {\n\tif ( ! items?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ul className=\"edit-site-patterns__grid\" { ...props }>\n\t\t\t{ items.map( ( item ) => (\n\t\t\t\t<GridItem\n\t\t\t\t\tkey={ item.name }\n\t\t\t\t\titem={ item }\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</ul>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,QAAQ,MAAM,aAAa;AAElC,eAAe,SAASC,IAAIA,CAAE;EAAEC,UAAU;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAG;EAC/D,IAAK,CAAED,KAAK,EAAEE,MAAM,EAAG;IACtB,OAAO,IAAI;EACZ;EAEA,OACCC,aAAA;IAAIC,SAAS,EAAC,0BAA0B;IAAA,GAAMH;EAAK,GAChDD,KAAK,CAACK,GAAG,CAAIC,IAAI,IAClBH,aAAA,CAACN,QAAQ;IACRU,GAAG,EAAGD,IAAI,CAACE,IAAM;IACjBF,IAAI,EAAGA,IAAM;IACbP,UAAU,EAAGA;EAAY,CACzB,CACA,CACC,CAAC;AAEP"}
@@ -1,11 +0,0 @@
1
- import { createElement } from "react";
2
- /**
3
- * WordPress dependencies
4
- */
5
- import { __ } from '@wordpress/i18n';
6
- export default function NoPatterns() {
7
- return createElement("div", {
8
- className: "edit-site-patterns__no-results"
9
- }, __('No patterns found.'));
10
- }
11
- //# sourceMappingURL=no-patterns.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["__","NoPatterns","createElement","className"],"sources":["@wordpress/edit-site/src/components/page-patterns/no-patterns.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport default function NoPatterns() {\n\treturn (\n\t\t<div className=\"edit-site-patterns__no-results\">\n\t\t\t{ __( 'No patterns found.' ) }\n\t\t</div>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AAEpC,eAAe,SAASC,UAAUA,CAAA,EAAG;EACpC,OACCC,aAAA;IAAKC,SAAS,EAAC;EAAgC,GAC5CH,EAAE,CAAE,oBAAqB,CACvB,CAAC;AAER"}
@@ -1,160 +0,0 @@
1
- import { createElement, Fragment } from "react";
2
- /**
3
- * WordPress dependencies
4
- */
5
- import { useState, useDeferredValue, useId, useMemo } from '@wordpress/element';
6
- import { SearchControl, __experimentalVStack as VStack, Flex, FlexBlock, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalHeading as Heading, __experimentalText as Text } from '@wordpress/components';
7
- import { __, _x, isRTL } from '@wordpress/i18n';
8
- import { chevronLeft, chevronRight } from '@wordpress/icons';
9
- import { privateApis as routerPrivateApis } from '@wordpress/router';
10
- import { useAsyncList, useViewportMatch, useDebouncedInput } from '@wordpress/compose';
11
-
12
- /**
13
- * Internal dependencies
14
- */
15
- import PatternsHeader from './header';
16
- import Grid from './grid';
17
- import NoPatterns from './no-patterns';
18
- import usePatterns from './use-patterns';
19
- import SidebarButton from '../sidebar-button';
20
- import { unlock } from '../../lock-unlock';
21
- import { PATTERN_SYNC_TYPES, PATTERN_TYPES } from '../../utils/constants';
22
- import Pagination from '../pagination';
23
- const {
24
- useLocation,
25
- useHistory
26
- } = unlock(routerPrivateApis);
27
- const SYNC_FILTERS = {
28
- all: _x('All', 'Option that shows all patterns'),
29
- [PATTERN_SYNC_TYPES.full]: _x('Synced', 'Option that shows all synchronized patterns'),
30
- [PATTERN_SYNC_TYPES.unsynced]: _x('Not synced', 'Option that shows all patterns that are not synchronized')
31
- };
32
- const SYNC_DESCRIPTIONS = {
33
- all: '',
34
- [PATTERN_SYNC_TYPES.full]: __('Patterns that are kept in sync across the site.'),
35
- [PATTERN_SYNC_TYPES.unsynced]: __('Patterns that can be changed freely without affecting the site.')
36
- };
37
- const PAGE_SIZE = 20;
38
- export default function PatternsList({
39
- categoryId,
40
- type
41
- }) {
42
- const location = useLocation();
43
- const history = useHistory();
44
- const isMobileViewport = useViewportMatch('medium', '<');
45
- const [filterValue, setFilterValue, delayedFilterValue] = useDebouncedInput('');
46
- const deferredFilterValue = useDeferredValue(delayedFilterValue);
47
- const [syncFilter, setSyncFilter] = useState('all');
48
- const [currentPage, setCurrentPage] = useState(1);
49
- const deferredSyncedFilter = useDeferredValue(syncFilter);
50
- const isUncategorizedThemePatterns = type === PATTERN_TYPES.theme && categoryId === 'uncategorized';
51
- const {
52
- patterns,
53
- isResolving
54
- } = usePatterns(type, isUncategorizedThemePatterns ? '' : categoryId, {
55
- search: deferredFilterValue,
56
- syncStatus: deferredSyncedFilter === 'all' ? undefined : deferredSyncedFilter
57
- });
58
- const updateSearchFilter = value => {
59
- setCurrentPage(1);
60
- setFilterValue(value);
61
- };
62
- const updateSyncFilter = value => {
63
- setCurrentPage(1);
64
- setSyncFilter(value);
65
- };
66
- const id = useId();
67
- const titleId = `${id}-title`;
68
- const descriptionId = `${id}-description`;
69
- const hasPatterns = patterns.length;
70
- const title = SYNC_FILTERS[syncFilter];
71
- const description = SYNC_DESCRIPTIONS[syncFilter];
72
- const totalItems = patterns.length;
73
- const pageIndex = currentPage - 1;
74
- const numPages = Math.ceil(patterns.length / PAGE_SIZE);
75
- const list = useMemo(() => {
76
- return patterns.slice(pageIndex * PAGE_SIZE, pageIndex * PAGE_SIZE + PAGE_SIZE);
77
- }, [pageIndex, patterns]);
78
- const asyncList = useAsyncList(list, {
79
- step: 10
80
- });
81
- const changePage = page => {
82
- const scrollContainer = document.querySelector('.edit-site-patterns');
83
- scrollContainer?.scrollTo(0, 0);
84
- setCurrentPage(page);
85
- };
86
- return createElement(Fragment, null, createElement(VStack, {
87
- className: "edit-site-patterns__header",
88
- spacing: 6
89
- }, createElement(PatternsHeader, {
90
- categoryId: categoryId,
91
- type: type,
92
- titleId: titleId,
93
- descriptionId: descriptionId
94
- }), createElement(Flex, {
95
- alignment: "stretch",
96
- wrap: true
97
- }, isMobileViewport && createElement(SidebarButton, {
98
- icon: isRTL() ? chevronRight : chevronLeft,
99
- label: __('Back'),
100
- onClick: () => {
101
- // Go back in history if we came from the Patterns page.
102
- // Otherwise push a stack onto the history.
103
- if (location.state?.backPath === '/patterns') {
104
- history.back();
105
- } else {
106
- history.push({
107
- path: '/patterns'
108
- });
109
- }
110
- }
111
- }), createElement(FlexBlock, {
112
- className: "edit-site-patterns__search-block"
113
- }, createElement(SearchControl, {
114
- className: "edit-site-patterns__search",
115
- onChange: value => updateSearchFilter(value),
116
- placeholder: __('Search patterns'),
117
- label: __('Search patterns'),
118
- value: filterValue,
119
- __nextHasNoMarginBottom: true
120
- })), type === PATTERN_TYPES.theme && createElement(ToggleGroupControl, {
121
- className: "edit-site-patterns__sync-status-filter",
122
- hideLabelFromVision: true,
123
- label: __('Filter by sync status'),
124
- value: syncFilter,
125
- isBlock: true,
126
- onChange: value => updateSyncFilter(value),
127
- __nextHasNoMarginBottom: true
128
- }, Object.entries(SYNC_FILTERS).map(([key, label]) => createElement(ToggleGroupControlOption, {
129
- className: "edit-site-patterns__sync-status-filter-option",
130
- key: key,
131
- value: key,
132
- label: label
133
- }))))), createElement(VStack, {
134
- className: "edit-site-patterns__section",
135
- justify: "flex-start",
136
- spacing: 6
137
- }, syncFilter !== 'all' && createElement(VStack, {
138
- className: "edit-site-patterns__section-header"
139
- }, createElement(Heading, {
140
- as: "h3",
141
- level: 5,
142
- id: titleId
143
- }, title), description ? createElement(Text, {
144
- variant: "muted",
145
- as: "p",
146
- id: descriptionId
147
- }, description) : null), hasPatterns && createElement(Grid, {
148
- categoryId: categoryId,
149
- items: asyncList,
150
- "aria-labelledby": titleId,
151
- "aria-describedby": descriptionId
152
- }), !isResolving && !hasPatterns && createElement(NoPatterns, null)), numPages > 1 && createElement(Pagination, {
153
- className: "edit-site-patterns__pagination",
154
- currentPage: currentPage,
155
- numPages: numPages,
156
- changePage: changePage,
157
- totalItems: totalItems
158
- }));
159
- }
160
- //# sourceMappingURL=patterns-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useState","useDeferredValue","useId","useMemo","SearchControl","__experimentalVStack","VStack","Flex","FlexBlock","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalHeading","Heading","__experimentalText","Text","__","_x","isRTL","chevronLeft","chevronRight","privateApis","routerPrivateApis","useAsyncList","useViewportMatch","useDebouncedInput","PatternsHeader","Grid","NoPatterns","usePatterns","SidebarButton","unlock","PATTERN_SYNC_TYPES","PATTERN_TYPES","Pagination","useLocation","useHistory","SYNC_FILTERS","all","full","unsynced","SYNC_DESCRIPTIONS","PAGE_SIZE","PatternsList","categoryId","type","location","history","isMobileViewport","filterValue","setFilterValue","delayedFilterValue","deferredFilterValue","syncFilter","setSyncFilter","currentPage","setCurrentPage","deferredSyncedFilter","isUncategorizedThemePatterns","theme","patterns","isResolving","search","syncStatus","undefined","updateSearchFilter","value","updateSyncFilter","id","titleId","descriptionId","hasPatterns","length","title","description","totalItems","pageIndex","numPages","Math","ceil","list","slice","asyncList","step","changePage","page","scrollContainer","document","querySelector","scrollTo","createElement","Fragment","className","spacing","alignment","wrap","icon","label","onClick","state","backPath","back","push","path","onChange","placeholder","__nextHasNoMarginBottom","hideLabelFromVision","isBlock","Object","entries","map","key","justify","as","level","variant","items"],"sources":["@wordpress/edit-site/src/components/page-patterns/patterns-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useDeferredValue, useId, useMemo } from '@wordpress/element';\nimport {\n\tSearchControl,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tFlexBlock,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport { chevronLeft, chevronRight } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tuseAsyncList,\n\tuseViewportMatch,\n\tuseDebouncedInput,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PatternsHeader from './header';\nimport Grid from './grid';\nimport NoPatterns from './no-patterns';\nimport usePatterns from './use-patterns';\nimport SidebarButton from '../sidebar-button';\nimport { unlock } from '../../lock-unlock';\nimport { PATTERN_SYNC_TYPES, PATTERN_TYPES } from '../../utils/constants';\nimport Pagination from '../pagination';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nconst SYNC_FILTERS = {\n\tall: _x( 'All', 'Option that shows all patterns' ),\n\t[ PATTERN_SYNC_TYPES.full ]: _x(\n\t\t'Synced',\n\t\t'Option that shows all synchronized patterns'\n\t),\n\t[ PATTERN_SYNC_TYPES.unsynced ]: _x(\n\t\t'Not synced',\n\t\t'Option that shows all patterns that are not synchronized'\n\t),\n};\n\nconst SYNC_DESCRIPTIONS = {\n\tall: '',\n\t[ PATTERN_SYNC_TYPES.full ]: __(\n\t\t'Patterns that are kept in sync across the site.'\n\t),\n\t[ PATTERN_SYNC_TYPES.unsynced ]: __(\n\t\t'Patterns that can be changed freely without affecting the site.'\n\t),\n};\n\nconst PAGE_SIZE = 20;\n\nexport default function PatternsList( { categoryId, type } ) {\n\tconst location = useLocation();\n\tconst history = useHistory();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( '' );\n\tconst deferredFilterValue = useDeferredValue( delayedFilterValue );\n\n\tconst [ syncFilter, setSyncFilter ] = useState( 'all' );\n\tconst [ currentPage, setCurrentPage ] = useState( 1 );\n\n\tconst deferredSyncedFilter = useDeferredValue( syncFilter );\n\n\tconst isUncategorizedThemePatterns =\n\t\ttype === PATTERN_TYPES.theme && categoryId === 'uncategorized';\n\n\tconst { patterns, isResolving } = usePatterns(\n\t\ttype,\n\t\tisUncategorizedThemePatterns ? '' : categoryId,\n\t\t{\n\t\t\tsearch: deferredFilterValue,\n\t\t\tsyncStatus:\n\t\t\t\tdeferredSyncedFilter === 'all'\n\t\t\t\t\t? undefined\n\t\t\t\t\t: deferredSyncedFilter,\n\t\t}\n\t);\n\n\tconst updateSearchFilter = ( value ) => {\n\t\tsetCurrentPage( 1 );\n\t\tsetFilterValue( value );\n\t};\n\n\tconst updateSyncFilter = ( value ) => {\n\t\tsetCurrentPage( 1 );\n\t\tsetSyncFilter( value );\n\t};\n\n\tconst id = useId();\n\tconst titleId = `${ id }-title`;\n\tconst descriptionId = `${ id }-description`;\n\n\tconst hasPatterns = patterns.length;\n\tconst title = SYNC_FILTERS[ syncFilter ];\n\tconst description = SYNC_DESCRIPTIONS[ syncFilter ];\n\n\tconst totalItems = patterns.length;\n\tconst pageIndex = currentPage - 1;\n\tconst numPages = Math.ceil( patterns.length / PAGE_SIZE );\n\n\tconst list = useMemo( () => {\n\t\treturn patterns.slice(\n\t\t\tpageIndex * PAGE_SIZE,\n\t\t\tpageIndex * PAGE_SIZE + PAGE_SIZE\n\t\t);\n\t}, [ pageIndex, patterns ] );\n\n\tconst asyncList = useAsyncList( list, { step: 10 } );\n\n\tconst changePage = ( page ) => {\n\t\tconst scrollContainer = document.querySelector( '.edit-site-patterns' );\n\t\tscrollContainer?.scrollTo( 0, 0 );\n\n\t\tsetCurrentPage( page );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<VStack className=\"edit-site-patterns__header\" spacing={ 6 }>\n\t\t\t\t<PatternsHeader\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\ttitleId={ titleId }\n\t\t\t\t\tdescriptionId={ descriptionId }\n\t\t\t\t/>\n\t\t\t\t<Flex alignment=\"stretch\" wrap>\n\t\t\t\t\t{ isMobileViewport && (\n\t\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t// Go back in history if we came from the Patterns page.\n\t\t\t\t\t\t\t\t// Otherwise push a stack onto the history.\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tlocation.state?.backPath === '/patterns'\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\thistory.back();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\thistory.push( { path: '/patterns' } );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<FlexBlock className=\"edit-site-patterns__search-block\">\n\t\t\t\t\t\t<SearchControl\n\t\t\t\t\t\t\tclassName=\"edit-site-patterns__search\"\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateSearchFilter( value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplaceholder={ __( 'Search patterns' ) }\n\t\t\t\t\t\t\tlabel={ __( 'Search patterns' ) }\n\t\t\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t{ type === PATTERN_TYPES.theme && (\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\tclassName=\"edit-site-patterns__sync-status-filter\"\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tlabel={ __( 'Filter by sync status' ) }\n\t\t\t\t\t\t\tvalue={ syncFilter }\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tonChange={ ( value ) => updateSyncFilter( value ) }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ Object.entries( SYNC_FILTERS ).map(\n\t\t\t\t\t\t\t\t( [ key, label ] ) => (\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__sync-status-filter-option\"\n\t\t\t\t\t\t\t\t\t\tkey={ key }\n\t\t\t\t\t\t\t\t\t\tvalue={ key }\n\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t) }\n\t\t\t\t</Flex>\n\t\t\t</VStack>\n\t\t\t<VStack\n\t\t\t\tclassName=\"edit-site-patterns__section\"\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tspacing={ 6 }\n\t\t\t>\n\t\t\t\t{ syncFilter !== 'all' && (\n\t\t\t\t\t<VStack className=\"edit-site-patterns__section-header\">\n\t\t\t\t\t\t<Heading as=\"h3\" level={ 5 } id={ titleId }>\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{ description ? (\n\t\t\t\t\t\t\t<Text variant=\"muted\" as=\"p\" id={ descriptionId }>\n\t\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t\t{ hasPatterns && (\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\titems={ asyncList }\n\t\t\t\t\t\taria-labelledby={ titleId }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isResolving && ! hasPatterns && <NoPatterns /> }\n\t\t\t</VStack>\n\t\t\t{ numPages > 1 && (\n\t\t\t\t<Pagination\n\t\t\t\t\tclassName=\"edit-site-patterns__pagination\"\n\t\t\t\t\tcurrentPage={ currentPage }\n\t\t\t\t\tnumPages={ numPages }\n\t\t\t\t\tchangePage={ changePage }\n\t\t\t\t\ttotalItems={ totalItems }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -1,98 +0,0 @@
1
- import { createElement, Fragment } from "react";
2
- /**
3
- * WordPress dependencies
4
- */
5
- import { Button, MenuItem, Modal, TextControl, __experimentalHStack as HStack, __experimentalVStack as VStack } from '@wordpress/components';
6
- import { store as coreStore } from '@wordpress/core-data';
7
- import { useDispatch } from '@wordpress/data';
8
- import { useState } from '@wordpress/element';
9
- import { __ } from '@wordpress/i18n';
10
- import { store as noticesStore } from '@wordpress/notices';
11
-
12
- /**
13
- * Internal dependencies
14
- */
15
- import { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';
16
- export default function RenameMenuItem({
17
- item,
18
- onClose
19
- }) {
20
- const [title, setTitle] = useState(() => item.title);
21
- const [isModalOpen, setIsModalOpen] = useState(false);
22
- const {
23
- editEntityRecord,
24
- saveEditedEntityRecord
25
- } = useDispatch(coreStore);
26
- const {
27
- createSuccessNotice,
28
- createErrorNotice
29
- } = useDispatch(noticesStore);
30
- if (item.type === TEMPLATE_PART_POST_TYPE && !item.isCustom) {
31
- return null;
32
- }
33
- async function onRename(event) {
34
- event.preventDefault();
35
- try {
36
- await editEntityRecord('postType', item.type, item.id, {
37
- title
38
- });
39
-
40
- // Update state before saving rerenders the list.
41
- setTitle('');
42
- setIsModalOpen(false);
43
- onClose();
44
-
45
- // Persist edited entity.
46
- await saveEditedEntityRecord('postType', item.type, item.id, {
47
- throwOnError: true
48
- });
49
- createSuccessNotice(item.type === TEMPLATE_PART_POST_TYPE ? __('Template part renamed.') : __('Pattern renamed.'), {
50
- type: 'snackbar'
51
- });
52
- } catch (error) {
53
- const fallbackErrorMessage = item.type === TEMPLATE_PART_POST_TYPE ? __('An error occurred while renaming the template part.') : __('An error occurred while renaming the pattern.');
54
- const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : fallbackErrorMessage;
55
- createErrorNotice(errorMessage, {
56
- type: 'snackbar'
57
- });
58
- }
59
- }
60
- return createElement(Fragment, null, createElement(MenuItem, {
61
- onClick: () => {
62
- setIsModalOpen(true);
63
- setTitle(item.title);
64
- }
65
- }, __('Rename')), isModalOpen && createElement(Modal, {
66
- title: __('Rename'),
67
- onRequestClose: () => {
68
- setIsModalOpen(false);
69
- onClose();
70
- },
71
- overlayClassName: "edit-site-list__rename-modal"
72
- }, createElement("form", {
73
- onSubmit: onRename
74
- }, createElement(VStack, {
75
- spacing: "5"
76
- }, createElement(TextControl, {
77
- __nextHasNoMarginBottom: true,
78
- __next40pxDefaultSize: true,
79
- label: __('Name'),
80
- value: title,
81
- onChange: setTitle,
82
- required: true
83
- }), createElement(HStack, {
84
- justify: "right"
85
- }, createElement(Button, {
86
- __next40pxDefaultSize: true,
87
- variant: "tertiary",
88
- onClick: () => {
89
- setIsModalOpen(false);
90
- onClose();
91
- }
92
- }, __('Cancel')), createElement(Button, {
93
- __next40pxDefaultSize: true,
94
- variant: "primary",
95
- type: "submit"
96
- }, __('Save')))))));
97
- }
98
- //# sourceMappingURL=rename-menu-item.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Button","MenuItem","Modal","TextControl","__experimentalHStack","HStack","__experimentalVStack","VStack","store","coreStore","useDispatch","useState","__","noticesStore","TEMPLATE_PART_POST_TYPE","RenameMenuItem","item","onClose","title","setTitle","isModalOpen","setIsModalOpen","editEntityRecord","saveEditedEntityRecord","createSuccessNotice","createErrorNotice","type","isCustom","onRename","event","preventDefault","id","throwOnError","error","fallbackErrorMessage","errorMessage","message","code","createElement","Fragment","onClick","onRequestClose","overlayClassName","onSubmit","spacing","__nextHasNoMarginBottom","__next40pxDefaultSize","label","value","onChange","required","justify","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,76 +0,0 @@
1
- import { createElement, Fragment } from "react";
2
- /**
3
- * WordPress dependencies
4
- */
5
- import { useSelect, useDispatch } from '@wordpress/data';
6
- import { useState } from '@wordpress/element';
7
- import { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';
8
- import { MenuItem, Modal } from '@wordpress/components';
9
- import { __ } from '@wordpress/i18n';
10
- import { store as coreStore } from '@wordpress/core-data';
11
- import { useAsyncList } from '@wordpress/compose';
12
- import { serialize } from '@wordpress/blocks';
13
-
14
- /**
15
- * Internal dependencies
16
- */
17
- import { store as editSiteStore } from '../../../store';
18
- export default function ReplaceTemplateButton({
19
- onClick,
20
- availableTemplates
21
- }) {
22
- const {
23
- editEntityRecord
24
- } = useDispatch(coreStore);
25
- const [showModal, setShowModal] = useState(false);
26
- const onClose = () => {
27
- setShowModal(false);
28
- };
29
- const {
30
- postId,
31
- postType
32
- } = useSelect(select => {
33
- return {
34
- postId: select(editSiteStore).getEditedPostId(),
35
- postType: select(editSiteStore).getEditedPostType()
36
- };
37
- }, []);
38
- const onTemplateSelect = async selectedTemplate => {
39
- onClose(); // Close the template suggestions modal first.
40
- onClick();
41
- await editEntityRecord('postType', postType, postId, {
42
- blocks: selectedTemplate.blocks,
43
- content: serialize(selectedTemplate.blocks)
44
- });
45
- };
46
- if (!availableTemplates.length || availableTemplates.length < 1) {
47
- return null;
48
- }
49
- return createElement(Fragment, null, createElement(MenuItem, {
50
- info: __('Replace the contents of this template with another.'),
51
- onClick: () => setShowModal(true)
52
- }, __('Replace template')), showModal && createElement(Modal, {
53
- title: __('Choose a template'),
54
- onRequestClose: onClose,
55
- overlayClassName: "edit-site-template-panel__replace-template-modal",
56
- isFullScreen: true
57
- }, createElement("div", {
58
- className: "edit-site-template-panel__replace-template-modal__content"
59
- }, createElement(TemplatesList, {
60
- availableTemplates: availableTemplates,
61
- onSelect: onTemplateSelect
62
- }))));
63
- }
64
- function TemplatesList({
65
- availableTemplates,
66
- onSelect
67
- }) {
68
- const shownTemplates = useAsyncList(availableTemplates);
69
- return createElement(BlockPatternsList, {
70
- label: __('Templates'),
71
- blockPatterns: availableTemplates,
72
- shownPatterns: shownTemplates,
73
- onClickPattern: onSelect
74
- });
75
- }
76
- //# sourceMappingURL=replace-template-button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useSelect","useDispatch","useState","__experimentalBlockPatternsList","BlockPatternsList","MenuItem","Modal","__","store","coreStore","useAsyncList","serialize","editSiteStore","ReplaceTemplateButton","onClick","availableTemplates","editEntityRecord","showModal","setShowModal","onClose","postId","postType","select","getEditedPostId","getEditedPostType","onTemplateSelect","selectedTemplate","blocks","content","length","createElement","Fragment","info","title","onRequestClose","overlayClassName","isFullScreen","className","TemplatesList","onSelect","shownTemplates","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":";AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,+BAA+B,IAAIC,iBAAiB,QAAQ,yBAAyB;AAC9F,SAASC,QAAQ,EAAEC,KAAK,QAAQ,uBAAuB;AACvD,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,YAAY,QAAQ,oBAAoB;AACjD,SAASC,SAAS,QAAQ,mBAAmB;;AAE7C;AACA;AACA;AACA,SAASH,KAAK,IAAII,aAAa,QAAQ,gBAAgB;AAEvD,eAAe,SAASC,qBAAqBA,CAAE;EAC9CC,OAAO;EACPC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC;EAAiB,CAAC,GAAGf,WAAW,CAAEQ,SAAU,CAAC;EACrD,MAAM,CAAEQ,SAAS,EAAEC,YAAY,CAAE,GAAGhB,QAAQ,CAAE,KAAM,CAAC;EACrD,MAAMiB,OAAO,GAAGA,CAAA,KAAM;IACrBD,YAAY,CAAE,KAAM,CAAC;EACtB,CAAC;EAED,MAAM;IAAEE,MAAM;IAAEC;EAAS,CAAC,GAAGrB,SAAS,CAAIsB,MAAM,IAAM;IACrD,OAAO;MACNF,MAAM,EAAEE,MAAM,CAAEV,aAAc,CAAC,CAACW,eAAe,CAAC,CAAC;MACjDF,QAAQ,EAAEC,MAAM,CAAEV,aAAc,CAAC,CAACY,iBAAiB,CAAC;IACrD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,gBAAgB,GAAG,MAAQC,gBAAgB,IAAM;IACtDP,OAAO,CAAC,CAAC,CAAC,CAAC;IACXL,OAAO,CAAC,CAAC;IACT,MAAME,gBAAgB,CAAE,UAAU,EAAEK,QAAQ,EAAED,MAAM,EAAE;MACrDO,MAAM,EAAED,gBAAgB,CAACC,MAAM;MAC/BC,OAAO,EAAEjB,SAAS,CAAEe,gBAAgB,CAACC,MAAO;IAC7C,CAAE,CAAC;EACJ,CAAC;EAED,IAAK,CAAEZ,kBAAkB,CAACc,MAAM,IAAId,kBAAkB,CAACc,MAAM,GAAG,CAAC,EAAG;IACnE,OAAO,IAAI;EACZ;EAEA,OACCC,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACzB,QAAQ;IACR2B,IAAI,EAAGzB,EAAE,CACR,qDACD,CAAG;IACHO,OAAO,EAAGA,CAAA,KAAMI,YAAY,CAAE,IAAK;EAAG,GAEpCX,EAAE,CAAE,kBAAmB,CAChB,CAAC,EAETU,SAAS,IACVa,aAAA,CAACxB,KAAK;IACL2B,KAAK,EAAG1B,EAAE,CAAE,mBAAoB,CAAG;IACnC2B,cAAc,EAAGf,OAAS;IAC1BgB,gBAAgB,EAAC,kDAAkD;IACnEC,YAAY;EAAA,GAEZN,aAAA;IAAKO,SAAS,EAAC;EAA2D,GACzEP,aAAA,CAACQ,aAAa;IACbvB,kBAAkB,EAAGA,kBAAoB;IACzCwB,QAAQ,EAAGd;EAAkB,CAC7B,CACG,CACC,CAEP,CAAC;AAEL;AAEA,SAASa,aAAaA,CAAE;EAAEvB,kBAAkB;EAAEwB;AAAS,CAAC,EAAG;EAC1D,MAAMC,cAAc,GAAG9B,YAAY,CAAEK,kBAAmB,CAAC;EAEzD,OACCe,aAAA,CAAC1B,iBAAiB;IACjBqC,KAAK,EAAGlC,EAAE,CAAE,WAAY,CAAG;IAC3BmC,aAAa,EAAG3B,kBAAoB;IACpC4B,aAAa,EAAGH,cAAgB;IAChCI,cAAc,EAAGL;EAAU,CAC3B,CAAC;AAEJ"}
@@ -1,75 +0,0 @@
1
- import { createElement, Fragment } from "react";
2
- /**
3
- * WordPress dependencies
4
- */
5
- import { __ } from '@wordpress/i18n';
6
- import { useSelect } from '@wordpress/data';
7
- import { BlockControls, useBlockEditingMode } from '@wordpress/block-editor';
8
- import { store as coreStore } from '@wordpress/core-data';
9
- import { ToolbarButton } from '@wordpress/components';
10
- import { addFilter } from '@wordpress/hooks';
11
- import { createHigherOrderComponent } from '@wordpress/compose';
12
- import { privateApis as routerPrivateApis } from '@wordpress/router';
13
-
14
- /**
15
- * Internal dependencies
16
- */
17
- import { useLink } from '../components/routes/link';
18
- import { unlock } from '../lock-unlock';
19
- import { NAVIGATION_POST_TYPE } from '../utils/constants';
20
- const {
21
- useLocation
22
- } = unlock(routerPrivateApis);
23
- function NavigationMenuEdit({
24
- attributes
25
- }) {
26
- const {
27
- ref
28
- } = attributes;
29
- const {
30
- params
31
- } = useLocation();
32
- const blockEditingMode = useBlockEditingMode();
33
- const navigationMenu = useSelect(select => {
34
- return select(coreStore).getEntityRecord('postType', NAVIGATION_POST_TYPE,
35
- // Ideally this should be an official public API.
36
- ref);
37
- }, [ref]);
38
- const linkProps = useLink({
39
- postId: navigationMenu?.id,
40
- postType: navigationMenu?.type,
41
- canvas: 'edit'
42
- }, {
43
- // this applies to Navigation Menus as well.
44
- fromTemplateId: params.postId || navigationMenu?.id
45
- });
46
-
47
- // A non-default setting for block editing mode indicates that the
48
- // editor should restrict "editing" actions. Therefore the `Edit` button
49
- // should not be displayed.
50
- if (!navigationMenu || blockEditingMode !== 'default') {
51
- return null;
52
- }
53
- return createElement(BlockControls, {
54
- group: "other"
55
- }, createElement(ToolbarButton, {
56
- ...linkProps,
57
- onClick: event => {
58
- linkProps.onClick(event);
59
- }
60
- }, __('Edit')));
61
- }
62
- export const withEditBlockControls = createHigherOrderComponent(BlockEdit => props => {
63
- const {
64
- attributes,
65
- name
66
- } = props;
67
- const isDisplayed = name === 'core/navigation' && attributes.ref;
68
- return createElement(Fragment, null, createElement(BlockEdit, {
69
- ...props
70
- }), isDisplayed && createElement(NavigationMenuEdit, {
71
- attributes: attributes
72
- }));
73
- }, 'withEditBlockControls');
74
- addFilter('editor.BlockEdit', 'core/edit-site/navigation-edit-button', withEditBlockControls);
75
- //# sourceMappingURL=navigation-menu-edit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["__","useSelect","BlockControls","useBlockEditingMode","store","coreStore","ToolbarButton","addFilter","createHigherOrderComponent","privateApis","routerPrivateApis","useLink","unlock","NAVIGATION_POST_TYPE","useLocation","NavigationMenuEdit","attributes","ref","params","blockEditingMode","navigationMenu","select","getEntityRecord","linkProps","postId","id","postType","type","canvas","fromTemplateId","createElement","group","onClick","event","withEditBlockControls","BlockEdit","props","name","isDisplayed","Fragment"],"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":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,aAAa,EAAEC,mBAAmB,QAAQ,yBAAyB;AAC5E,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,0BAA0B,QAAQ,oBAAoB;AAC/D,SAASC,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,SAASC,OAAO,QAAQ,2BAA2B;AACnD,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SAASC,oBAAoB,QAAQ,oBAAoB;AAEzD,MAAM;EAAEC;AAAY,CAAC,GAAGF,MAAM,CAAEF,iBAAkB,CAAC;AAEnD,SAASK,kBAAkBA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC7C,MAAM;IAAEC;EAAI,CAAC,GAAGD,UAAU;EAC1B,MAAM;IAAEE;EAAO,CAAC,GAAGJ,WAAW,CAAC,CAAC;EAChC,MAAMK,gBAAgB,GAAGhB,mBAAmB,CAAC,CAAC;EAC9C,MAAMiB,cAAc,GAAGnB,SAAS,CAC7BoB,MAAM,IAAM;IACb,OAAOA,MAAM,CAAEhB,SAAU,CAAC,CAACiB,eAAe,CACzC,UAAU,EACVT,oBAAoB;IACpB;IACAI,GACD,CAAC;EACF,CAAC,EACD,CAAEA,GAAG,CACN,CAAC;EAED,MAAMM,SAAS,GAAGZ,OAAO,CACxB;IACCa,MAAM,EAAEJ,cAAc,EAAEK,EAAE;IAC1BC,QAAQ,EAAEN,cAAc,EAAEO,IAAI;IAC9BC,MAAM,EAAE;EACT,CAAC,EACD;IACC;IACAC,cAAc,EAAEX,MAAM,CAACM,MAAM,IAAIJ,cAAc,EAAEK;EAClD,CACD,CAAC;;EAED;EACA;EACA;EACA,IAAK,CAAEL,cAAc,IAAID,gBAAgB,KAAK,SAAS,EAAG;IACzD,OAAO,IAAI;EACZ;EAEA,OACCW,aAAA,CAAC5B,aAAa;IAAC6B,KAAK,EAAC;EAAO,GAC3BD,aAAA,CAACxB,aAAa;IAAA,GACRiB,SAAS;IACdS,OAAO,EAAKC,KAAK,IAAM;MACtBV,SAAS,CAACS,OAAO,CAAEC,KAAM,CAAC;IAC3B;EAAG,GAEDjC,EAAE,CAAE,MAAO,CACC,CACD,CAAC;AAElB;AAEA,OAAO,MAAMkC,qBAAqB,GAAG1B,0BAA0B,CAC5D2B,SAAS,IAAQC,KAAK,IAAM;EAC7B,MAAM;IAAEpB,UAAU;IAAEqB;EAAK,CAAC,GAAGD,KAAK;EAClC,MAAME,WAAW,GAAGD,IAAI,KAAK,iBAAiB,IAAIrB,UAAU,CAACC,GAAG;EAEhE,OACCa,aAAA,CAAAS,QAAA,QACCT,aAAA,CAACK,SAAS;IAAA,GAAMC;EAAK,CAAI,CAAC,EACxBE,WAAW,IACZR,aAAA,CAACf,kBAAkB;IAACC,UAAU,EAAGA;EAAY,CAAE,CAE/C,CAAC;AAEL,CAAC,EACD,uBACD,CAAC;AAEDT,SAAS,CACR,kBAAkB,EAClB,uCAAuC,EACvC2B,qBACD,CAAC"}
@@ -1,60 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { __ } from '@wordpress/i18n';
5
- import { MenuItemsChoice, MenuGroup } from '@wordpress/components';
6
- import { useSelect, useDispatch } from '@wordpress/data';
7
- import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
8
-
9
- /**
10
- * Internal dependencies
11
- */
12
- import { store as editSiteStore } from '../../../store';
13
-
14
- /**
15
- * Set of available mode options.
16
- *
17
- * @type {Array}
18
- */
19
- const MODES = [
20
- {
21
- value: 'visual',
22
- label: __( 'Visual editor' ),
23
- },
24
- {
25
- value: 'text',
26
- label: __( 'Code editor' ),
27
- },
28
- ];
29
-
30
- function ModeSwitcher() {
31
- const { shortcut, mode } = useSelect(
32
- ( select ) => ( {
33
- shortcut: select(
34
- keyboardShortcutsStore
35
- ).getShortcutRepresentation( 'core/edit-site/toggle-mode' ),
36
- mode: select( editSiteStore ).getEditorMode(),
37
- } ),
38
- []
39
- );
40
- const { switchEditorMode } = useDispatch( editSiteStore );
41
-
42
- const choices = MODES.map( ( choice ) => {
43
- if ( choice.value !== mode ) {
44
- return { ...choice, shortcut };
45
- }
46
- return choice;
47
- } );
48
-
49
- return (
50
- <MenuGroup label={ __( 'Editor' ) }>
51
- <MenuItemsChoice
52
- choices={ choices }
53
- value={ mode }
54
- onSelect={ switchEditorMode }
55
- />
56
- </MenuGroup>
57
- );
58
- }
59
-
60
- export default ModeSwitcher;