@wordpress/edit-site 5.12.7 → 5.12.9

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 (166) hide show
  1. package/build/components/block-editor/editor-canvas.js +1 -1
  2. package/build/components/block-editor/editor-canvas.js.map +1 -1
  3. package/build/components/block-editor/index.js +0 -4
  4. package/build/components/block-editor/index.js.map +1 -1
  5. package/build/components/block-editor/use-site-editor-settings.js +12 -6
  6. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  7. package/build/components/create-pattern-modal/index.js +7 -3
  8. package/build/components/create-pattern-modal/index.js.map +1 -1
  9. package/build/components/page-patterns/duplicate-menu-item.js +163 -0
  10. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -0
  11. package/build/components/page-patterns/grid-item.js +83 -59
  12. package/build/components/page-patterns/grid-item.js.map +1 -1
  13. package/build/components/page-patterns/grid.js +81 -13
  14. package/build/components/page-patterns/grid.js.map +1 -1
  15. package/build/components/page-patterns/header.js +69 -0
  16. package/build/components/page-patterns/header.js.map +1 -0
  17. package/build/components/page-patterns/index.js +3 -1
  18. package/build/components/page-patterns/index.js.map +1 -1
  19. package/build/components/page-patterns/patterns-list.js +66 -27
  20. package/build/components/page-patterns/patterns-list.js.map +1 -1
  21. package/build/components/page-patterns/rename-menu-item.js +109 -0
  22. package/build/components/page-patterns/rename-menu-item.js.map +1 -0
  23. package/build/components/page-patterns/use-patterns.js +99 -118
  24. package/build/components/page-patterns/use-patterns.js.map +1 -1
  25. package/build/components/page-template-parts/add-new-template-part.js +74 -0
  26. package/build/components/page-template-parts/add-new-template-part.js.map +1 -0
  27. package/build/components/page-template-parts/index.js +2 -23
  28. package/build/components/page-template-parts/index.js.map +1 -1
  29. package/build/components/resizable-frame/index.js +75 -32
  30. package/build/components/resizable-frame/index.js.map +1 -1
  31. package/build/components/sidebar-navigation-screen/index.js +14 -8
  32. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  33. package/build/components/sidebar-navigation-screen-main/template-part-hint.js +1 -1
  34. package/build/components/sidebar-navigation-screen-main/template-part-hint.js.map +1 -1
  35. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js +1 -0
  36. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  37. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +3 -3
  38. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  39. package/build/components/sidebar-navigation-screen-page/status-label.js +1 -34
  40. package/build/components/sidebar-navigation-screen-page/status-label.js.map +1 -1
  41. package/build/components/sidebar-navigation-screen-pages/index.js +33 -25
  42. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  43. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +3 -2
  44. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  45. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +3 -2
  46. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
  47. package/build/components/sidebar-navigation-screen-patterns/index.js +5 -6
  48. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  49. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js +9 -5
  50. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +1 -1
  51. package/build/components/site-hub/index.js +4 -2
  52. package/build/components/site-hub/index.js.map +1 -1
  53. package/build/components/sync-state-with-url/use-sync-path-with-url.js +15 -12
  54. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  55. package/build/components/template-actions/index.js +3 -1
  56. package/build/components/template-actions/index.js.map +1 -1
  57. package/build/components/template-actions/rename-menu-item.js +9 -6
  58. package/build/components/template-actions/rename-menu-item.js.map +1 -1
  59. package/build/hooks/push-changes-to-global-styles/index.js +3 -1
  60. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  61. package/build/utils/use-activate-theme.js +1 -1
  62. package/build/utils/use-activate-theme.js.map +1 -1
  63. package/build-module/components/block-editor/editor-canvas.js +1 -1
  64. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  65. package/build-module/components/block-editor/index.js +0 -4
  66. package/build-module/components/block-editor/index.js.map +1 -1
  67. package/build-module/components/block-editor/use-site-editor-settings.js +13 -7
  68. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  69. package/build-module/components/create-pattern-modal/index.js +6 -3
  70. package/build-module/components/create-pattern-modal/index.js.map +1 -1
  71. package/build-module/components/page-patterns/duplicate-menu-item.js +147 -0
  72. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -0
  73. package/build-module/components/page-patterns/grid-item.js +84 -65
  74. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  75. package/build-module/components/page-patterns/grid.js +82 -15
  76. package/build-module/components/page-patterns/grid.js.map +1 -1
  77. package/build-module/components/page-patterns/header.js +54 -0
  78. package/build-module/components/page-patterns/header.js.map +1 -0
  79. package/build-module/components/page-patterns/index.js +3 -1
  80. package/build-module/components/page-patterns/index.js.map +1 -1
  81. package/build-module/components/page-patterns/patterns-list.js +68 -30
  82. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  83. package/build-module/components/page-patterns/rename-menu-item.js +97 -0
  84. package/build-module/components/page-patterns/rename-menu-item.js.map +1 -0
  85. package/build-module/components/page-patterns/use-patterns.js +100 -119
  86. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  87. package/build-module/components/page-template-parts/add-new-template-part.js +58 -0
  88. package/build-module/components/page-template-parts/add-new-template-part.js.map +1 -0
  89. package/build-module/components/page-template-parts/index.js +3 -22
  90. package/build-module/components/page-template-parts/index.js.map +1 -1
  91. package/build-module/components/resizable-frame/index.js +76 -35
  92. package/build-module/components/resizable-frame/index.js.map +1 -1
  93. package/build-module/components/sidebar-navigation-screen/index.js +15 -9
  94. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  95. package/build-module/components/sidebar-navigation-screen-main/template-part-hint.js +1 -1
  96. package/build-module/components/sidebar-navigation-screen-main/template-part-hint.js.map +1 -1
  97. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js +1 -0
  98. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  99. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +3 -3
  100. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  101. package/build-module/components/sidebar-navigation-screen-page/status-label.js +1 -32
  102. package/build-module/components/sidebar-navigation-screen-page/status-label.js.map +1 -1
  103. package/build-module/components/sidebar-navigation-screen-pages/index.js +33 -25
  104. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  105. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +3 -2
  106. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  107. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +3 -2
  108. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
  109. package/build-module/components/sidebar-navigation-screen-patterns/index.js +5 -6
  110. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  111. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js +9 -5
  112. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +1 -1
  113. package/build-module/components/site-hub/index.js +4 -2
  114. package/build-module/components/site-hub/index.js.map +1 -1
  115. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +16 -12
  116. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  117. package/build-module/components/template-actions/index.js +2 -1
  118. package/build-module/components/template-actions/index.js.map +1 -1
  119. package/build-module/components/template-actions/rename-menu-item.js +8 -6
  120. package/build-module/components/template-actions/rename-menu-item.js.map +1 -1
  121. package/build-module/hooks/push-changes-to-global-styles/index.js +4 -2
  122. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  123. package/build-module/utils/use-activate-theme.js +1 -1
  124. package/build-module/utils/use-activate-theme.js.map +1 -1
  125. package/build-style/style-rtl.css +150 -54
  126. package/build-style/style.css +150 -54
  127. package/package.json +14 -14
  128. package/src/components/block-editor/editor-canvas.js +1 -1
  129. package/src/components/block-editor/index.js +0 -4
  130. package/src/components/block-editor/use-site-editor-settings.js +16 -11
  131. package/src/components/create-pattern-modal/index.js +5 -2
  132. package/src/components/header-edit-mode/document-actions/style.scss +4 -0
  133. package/src/components/layout/style.scss +1 -0
  134. package/src/components/page-patterns/duplicate-menu-item.js +196 -0
  135. package/src/components/page-patterns/grid-item.js +187 -137
  136. package/src/components/page-patterns/grid.js +118 -20
  137. package/src/components/page-patterns/header.js +69 -0
  138. package/src/components/page-patterns/index.js +6 -1
  139. package/src/components/page-patterns/patterns-list.js +87 -46
  140. package/src/components/page-patterns/rename-menu-item.js +115 -0
  141. package/src/components/page-patterns/style.scss +106 -26
  142. package/src/components/page-patterns/use-patterns.js +96 -167
  143. package/src/components/page-template-parts/add-new-template-part.js +57 -0
  144. package/src/components/page-template-parts/index.js +3 -22
  145. package/src/components/resizable-frame/index.js +100 -31
  146. package/src/components/resizable-frame/style.scss +26 -9
  147. package/src/components/sidebar-navigation-item/style.scss +10 -1
  148. package/src/components/sidebar-navigation-screen/index.js +14 -7
  149. package/src/components/sidebar-navigation-screen-main/template-part-hint.js +1 -3
  150. package/src/components/sidebar-navigation-screen-navigation-menu/more-menu.js +1 -0
  151. package/src/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +1 -1
  152. package/src/components/sidebar-navigation-screen-page/status-label.js +1 -35
  153. package/src/components/sidebar-navigation-screen-pages/index.js +39 -29
  154. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -1
  155. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +2 -1
  156. package/src/components/sidebar-navigation-screen-patterns/index.js +20 -24
  157. package/src/components/sidebar-navigation-screen-patterns/style.scss +0 -3
  158. package/src/components/sidebar-navigation-screen-patterns/use-my-patterns.js +7 -6
  159. package/src/components/site-hub/index.js +6 -2
  160. package/src/components/site-hub/style.scss +5 -0
  161. package/src/components/sync-state-with-url/use-sync-path-with-url.js +73 -66
  162. package/src/components/template-actions/index.js +2 -1
  163. package/src/components/template-actions/rename-menu-item.js +8 -6
  164. package/src/hooks/push-changes-to-global-styles/index.js +8 -1
  165. package/src/style.scss +10 -12
  166. package/src/utils/use-activate-theme.js +1 -1
@@ -0,0 +1,54 @@
1
+ import { createElement } from "@wordpress/element";
2
+
3
+ /**
4
+ * WordPress dependencies
5
+ */
6
+ import { __experimentalVStack as VStack, __experimentalHeading as Heading, __experimentalText as Text } from '@wordpress/components';
7
+ import { __ } from '@wordpress/i18n';
8
+ import { store as editorStore } from '@wordpress/editor';
9
+ import { useSelect } from '@wordpress/data';
10
+ /**
11
+ * Internal dependencies
12
+ */
13
+
14
+ import usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';
15
+ import { USER_PATTERN_CATEGORY, USER_PATTERNS, TEMPLATE_PARTS, PATTERNS } from './utils';
16
+ export default function PatternsHeader({
17
+ categoryId,
18
+ type,
19
+ titleId,
20
+ descriptionId
21
+ }) {
22
+ const {
23
+ patternCategories
24
+ } = usePatternCategories();
25
+ const templatePartAreas = useSelect(select => select(editorStore).__experimentalGetDefaultTemplatePartAreas(), []);
26
+ let title, description;
27
+
28
+ if (categoryId === USER_PATTERN_CATEGORY && type === USER_PATTERNS) {
29
+ title = __('My Patterns');
30
+ description = '';
31
+ } else if (type === TEMPLATE_PARTS) {
32
+ const templatePartArea = templatePartAreas.find(area => area.area === categoryId);
33
+ title = templatePartArea?.label;
34
+ description = templatePartArea?.description;
35
+ } else if (type === PATTERNS) {
36
+ const patternCategory = patternCategories.find(category => category.name === categoryId);
37
+ title = patternCategory?.label;
38
+ description = patternCategory?.description;
39
+ }
40
+
41
+ if (!title) return null;
42
+ return createElement(VStack, {
43
+ className: "edit-site-patterns__section-header"
44
+ }, createElement(Heading, {
45
+ as: "h2",
46
+ level: 4,
47
+ id: titleId
48
+ }, title), description ? createElement(Text, {
49
+ variant: "muted",
50
+ as: "p",
51
+ id: descriptionId
52
+ }, description) : null);
53
+ }
54
+ //# sourceMappingURL=header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/header.js"],"names":["__experimentalVStack","VStack","__experimentalHeading","Heading","__experimentalText","Text","__","store","editorStore","useSelect","usePatternCategories","USER_PATTERN_CATEGORY","USER_PATTERNS","TEMPLATE_PARTS","PATTERNS","PatternsHeader","categoryId","type","titleId","descriptionId","patternCategories","templatePartAreas","select","__experimentalGetDefaultTemplatePartAreas","title","description","templatePartArea","find","area","label","patternCategory","category","name"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MADzB,EAECC,qBAAqB,IAAIC,OAF1B,EAGCC,kBAAkB,IAAIC,IAHvB,QAIO,uBAJP;AAKA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,KAAK,IAAIC,WAAlB,QAAqC,mBAArC;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,8DAAjC;AACA,SACCC,qBADD,EAECC,aAFD,EAGCC,cAHD,EAICC,QAJD,QAKO,SALP;AAOA,eAAe,SAASC,cAAT,CAAyB;AACvCC,EAAAA,UADuC;AAEvCC,EAAAA,IAFuC;AAGvCC,EAAAA,OAHuC;AAIvCC,EAAAA;AAJuC,CAAzB,EAKX;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAwBV,oBAAoB,EAAlD;AACA,QAAMW,iBAAiB,GAAGZ,SAAS,CAChCa,MAAF,IACCA,MAAM,CAAEd,WAAF,CAAN,CAAsBe,yCAAtB,EAFiC,EAGlC,EAHkC,CAAnC;AAMA,MAAIC,KAAJ,EAAWC,WAAX;;AACA,MAAKT,UAAU,KAAKL,qBAAf,IAAwCM,IAAI,KAAKL,aAAtD,EAAsE;AACrEY,IAAAA,KAAK,GAAGlB,EAAE,CAAE,aAAF,CAAV;AACAmB,IAAAA,WAAW,GAAG,EAAd;AACA,GAHD,MAGO,IAAKR,IAAI,KAAKJ,cAAd,EAA+B;AACrC,UAAMa,gBAAgB,GAAGL,iBAAiB,CAACM,IAAlB,CACtBC,IAAF,IAAYA,IAAI,CAACA,IAAL,KAAcZ,UADF,CAAzB;AAGAQ,IAAAA,KAAK,GAAGE,gBAAgB,EAAEG,KAA1B;AACAJ,IAAAA,WAAW,GAAGC,gBAAgB,EAAED,WAAhC;AACA,GANM,MAMA,IAAKR,IAAI,KAAKH,QAAd,EAAyB;AAC/B,UAAMgB,eAAe,GAAGV,iBAAiB,CAACO,IAAlB,CACrBI,QAAF,IAAgBA,QAAQ,CAACC,IAAT,KAAkBhB,UADX,CAAxB;AAGAQ,IAAAA,KAAK,GAAGM,eAAe,EAAED,KAAzB;AACAJ,IAAAA,WAAW,GAAGK,eAAe,EAAEL,WAA/B;AACA;;AAED,MAAK,CAAED,KAAP,EAAe,OAAO,IAAP;AAEf,SACC,cAAC,MAAD;AAAQ,IAAA,SAAS,EAAC;AAAlB,KACC,cAAC,OAAD;AAAS,IAAA,EAAE,EAAC,IAAZ;AAAiB,IAAA,KAAK,EAAG,CAAzB;AAA6B,IAAA,EAAE,EAAGN;AAAlC,KACGM,KADH,CADD,EAIGC,WAAW,GACZ,cAAC,IAAD;AAAM,IAAA,OAAO,EAAC,OAAd;AAAsB,IAAA,EAAE,EAAC,GAAzB;AAA6B,IAAA,EAAE,EAAGN;AAAlC,KACGM,WADH,CADY,GAIT,IARL,CADD;AAYA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as editorStore } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\nimport {\n\tUSER_PATTERN_CATEGORY,\n\tUSER_PATTERNS,\n\tTEMPLATE_PARTS,\n\tPATTERNS,\n} from './utils';\n\nexport default function PatternsHeader( {\n\tcategoryId,\n\ttype,\n\ttitleId,\n\tdescriptionId,\n} ) {\n\tconst { patternCategories } = usePatternCategories();\n\tconst templatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t\t[]\n\t);\n\n\tlet title, description;\n\tif ( categoryId === USER_PATTERN_CATEGORY && type === USER_PATTERNS ) {\n\t\ttitle = __( 'My Patterns' );\n\t\tdescription = '';\n\t} else if ( type === TEMPLATE_PARTS ) {\n\t\tconst templatePartArea = templatePartAreas.find(\n\t\t\t( area ) => area.area === categoryId\n\t\t);\n\t\ttitle = templatePartArea?.label;\n\t\tdescription = templatePartArea?.description;\n\t} else if ( type === PATTERNS ) {\n\t\tconst patternCategory = patternCategories.find(\n\t\t\t( category ) => category.name === categoryId\n\t\t);\n\t\ttitle = patternCategory?.label;\n\t\tdescription = patternCategory?.description;\n\t}\n\n\tif ( ! title ) return null;\n\n\treturn (\n\t\t<VStack className=\"edit-site-patterns__section-header\">\n\t\t\t<Heading as=\"h2\" level={ 4 } id={ titleId }>\n\t\t\t\t{ title }\n\t\t\t</Heading>\n\t\t\t{ description ? (\n\t\t\t\t<Text variant=\"muted\" as=\"p\" id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</Text>\n\t\t\t) : null }\n\t\t</VStack>\n\t);\n}\n"]}
@@ -35,7 +35,9 @@ export default function PagePatterns() {
35
35
  className: "edit-site-patterns",
36
36
  title: __('Patterns content'),
37
37
  hideTitleFromUI: true
38
- }, createElement(PatternsList, {
38
+ }, createElement(PatternsList // Reset the states when switching between categories and types.
39
+ , {
40
+ key: `${type}-${category}`,
39
41
  type: type,
40
42
  categoryId: category
41
43
  })));
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/index.js"],"names":["__","privateApis","blockEditorPrivateApis","getQueryArgs","DEFAULT_CATEGORY","DEFAULT_TYPE","Page","PatternsList","usePatternSettings","unlock","ExperimentalBlockEditorProvider","PagePatterns","categoryType","categoryId","window","location","href","type","category","settings"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,WAAW,IAAIC,sBAAxB,QAAsD,yBAAtD;AACA,SAASC,YAAT,QAA6B,gBAA7B;AAEA;AACA;AACA;;AACA,SAASC,gBAAT,EAA2BC,YAA3B,QAA+C,SAA/C;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,OAAOC,YAAP,MAAyB,iBAAzB;AACA,OAAOC,kBAAP,MAA+B,wBAA/B;AACA,SAASC,MAAT,QAAuB,mBAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAsCD,MAAM,CAAEP,sBAAF,CAAlD;AAEA,eAAe,SAASS,YAAT,GAAwB;AACtC,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAA+BV,YAAY,CAAEW,MAAM,CAACC,QAAP,CAAgBC,IAAlB,CAAjD;AACA,QAAMC,IAAI,GAAGL,YAAY,IAAIP,YAA7B;AACA,QAAMa,QAAQ,GAAGL,UAAU,IAAIT,gBAA/B;AACA,QAAMe,QAAQ,GAAGX,kBAAkB,EAAnC,CAJsC,CAMtC;AACA;AACA;;AACA,SACC,cAAC,+BAAD;AAAiC,IAAA,QAAQ,EAAGW;AAA5C,KACC,cAAC,IAAD;AACC,IAAA,SAAS,EAAC,oBADX;AAEC,IAAA,KAAK,EAAGnB,EAAE,CAAE,kBAAF,CAFX;AAGC,IAAA,eAAe;AAHhB,KAKC,cAAC,YAAD;AAAc,IAAA,IAAI,EAAGiB,IAArB;AAA4B,IAAA,UAAU,EAAGC;AAAzC,IALD,CADD,CADD;AAWA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { getQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { DEFAULT_CATEGORY, DEFAULT_TYPE } from './utils';\nimport Page from '../page';\nimport PatternsList from './patterns-list';\nimport usePatternSettings from './use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\n\nexport default function PagePatterns() {\n\tconst { categoryType, categoryId } = getQueryArgs( window.location.href );\n\tconst type = categoryType || DEFAULT_TYPE;\n\tconst category = categoryId || DEFAULT_CATEGORY;\n\tconst settings = usePatternSettings();\n\n\t// Wrap everything in a block editor provider.\n\t// This ensures 'styles' that are needed for the previews are synced\n\t// from the site editor store to the block editor store.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<Page\n\t\t\t\tclassName=\"edit-site-patterns\"\n\t\t\t\ttitle={ __( 'Patterns content' ) }\n\t\t\t\thideTitleFromUI\n\t\t\t>\n\t\t\t\t<PatternsList type={ type } categoryId={ category } />\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/index.js"],"names":["__","privateApis","blockEditorPrivateApis","getQueryArgs","DEFAULT_CATEGORY","DEFAULT_TYPE","Page","PatternsList","usePatternSettings","unlock","ExperimentalBlockEditorProvider","PagePatterns","categoryType","categoryId","window","location","href","type","category","settings"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,WAAW,IAAIC,sBAAxB,QAAsD,yBAAtD;AACA,SAASC,YAAT,QAA6B,gBAA7B;AAEA;AACA;AACA;;AACA,SAASC,gBAAT,EAA2BC,YAA3B,QAA+C,SAA/C;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,OAAOC,YAAP,MAAyB,iBAAzB;AACA,OAAOC,kBAAP,MAA+B,wBAA/B;AACA,SAASC,MAAT,QAAuB,mBAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAsCD,MAAM,CAAEP,sBAAF,CAAlD;AAEA,eAAe,SAASS,YAAT,GAAwB;AACtC,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAA+BV,YAAY,CAAEW,MAAM,CAACC,QAAP,CAAgBC,IAAlB,CAAjD;AACA,QAAMC,IAAI,GAAGL,YAAY,IAAIP,YAA7B;AACA,QAAMa,QAAQ,GAAGL,UAAU,IAAIT,gBAA/B;AACA,QAAMe,QAAQ,GAAGX,kBAAkB,EAAnC,CAJsC,CAMtC;AACA;AACA;;AACA,SACC,cAAC,+BAAD;AAAiC,IAAA,QAAQ,EAAGW;AAA5C,KACC,cAAC,IAAD;AACC,IAAA,SAAS,EAAC,oBADX;AAEC,IAAA,KAAK,EAAGnB,EAAE,CAAE,kBAAF,CAFX;AAGC,IAAA,eAAe;AAHhB,KAKC,cAAC,YAAD,CACC;AADD;AAEC,IAAA,GAAG,EAAI,GAAGiB,IAAM,IAAIC,QAAU,EAF/B;AAGC,IAAA,IAAI,EAAGD,IAHR;AAIC,IAAA,UAAU,EAAGC;AAJd,IALD,CADD,CADD;AAgBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { getQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { DEFAULT_CATEGORY, DEFAULT_TYPE } from './utils';\nimport Page from '../page';\nimport PatternsList from './patterns-list';\nimport usePatternSettings from './use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\n\nexport default function PagePatterns() {\n\tconst { categoryType, categoryId } = getQueryArgs( window.location.href );\n\tconst type = categoryType || DEFAULT_TYPE;\n\tconst category = categoryId || DEFAULT_CATEGORY;\n\tconst settings = usePatternSettings();\n\n\t// Wrap everything in a block editor provider.\n\t// This ensures 'styles' that are needed for the previews are synced\n\t// from the site editor store to the block editor store.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<Page\n\t\t\t\tclassName=\"edit-site-patterns\"\n\t\t\t\ttitle={ __( 'Patterns content' ) }\n\t\t\t\thideTitleFromUI\n\t\t\t>\n\t\t\t\t<PatternsList\n\t\t\t\t\t// Reset the states when switching between categories and types.\n\t\t\t\t\tkey={ `${ type }-${ category }` }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\tcategoryId={ category }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"]}
@@ -1,27 +1,40 @@
1
- import { createElement, Fragment } from "@wordpress/element";
1
+ import { createElement } from "@wordpress/element";
2
2
 
3
3
  /**
4
4
  * WordPress dependencies
5
5
  */
6
- import { SearchControl, __experimentalHeading as Heading, __experimentalText as Text, __experimentalVStack as VStack, Flex, FlexBlock } from '@wordpress/components';
6
+ import { useState, useDeferredValue, useId } from '@wordpress/element';
7
+ import { SearchControl, __experimentalVStack as VStack, Flex, FlexBlock, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalHeading as Heading, __experimentalText as Text } from '@wordpress/components';
7
8
  import { __, isRTL } from '@wordpress/i18n';
8
- import { symbol, chevronLeft, chevronRight } from '@wordpress/icons';
9
+ import { chevronLeft, chevronRight } from '@wordpress/icons';
9
10
  import { privateApis as routerPrivateApis } from '@wordpress/router';
10
11
  import { useViewportMatch } from '@wordpress/compose';
11
12
  /**
12
13
  * Internal dependencies
13
14
  */
14
15
 
16
+ import PatternsHeader from './header';
15
17
  import Grid from './grid';
16
18
  import NoPatterns from './no-patterns';
17
19
  import usePatterns from './use-patterns';
18
20
  import SidebarButton from '../sidebar-button';
19
21
  import useDebouncedInput from '../../utils/use-debounced-input';
20
22
  import { unlock } from '../../lock-unlock';
23
+ import { SYNC_TYPES, USER_PATTERN_CATEGORY } from './utils';
21
24
  const {
22
25
  useLocation,
23
26
  useHistory
24
27
  } = unlock(routerPrivateApis);
28
+ const SYNC_FILTERS = {
29
+ all: __('All'),
30
+ [SYNC_TYPES.full]: __('Synced'),
31
+ [SYNC_TYPES.unsynced]: __('Standard')
32
+ };
33
+ const SYNC_DESCRIPTIONS = {
34
+ all: '',
35
+ [SYNC_TYPES.full]: __('Patterns that are kept in sync across the site.'),
36
+ [SYNC_TYPES.unsynced]: __('Patterns that can be changed freely without affecting the site.')
37
+ };
25
38
  export default function PatternsList({
26
39
  categoryId,
27
40
  type
@@ -30,15 +43,33 @@ export default function PatternsList({
30
43
  const history = useHistory();
31
44
  const isMobileViewport = useViewportMatch('medium', '<');
32
45
  const [filterValue, setFilterValue, delayedFilterValue] = useDebouncedInput('');
33
- const [patterns, isResolving] = usePatterns(type, categoryId, delayedFilterValue);
46
+ const deferredFilterValue = useDeferredValue(delayedFilterValue);
47
+ const [syncFilter, setSyncFilter] = useState('all');
48
+ const deferredSyncedFilter = useDeferredValue(syncFilter);
34
49
  const {
35
- syncedPatterns,
36
- unsyncedPatterns
37
- } = patterns;
38
- const hasPatterns = !!syncedPatterns.length || !!unsyncedPatterns.length;
50
+ patterns,
51
+ isResolving
52
+ } = usePatterns(type, categoryId, {
53
+ search: deferredFilterValue,
54
+ syncStatus: deferredSyncedFilter === 'all' ? undefined : deferredSyncedFilter
55
+ });
56
+ const id = useId();
57
+ const titleId = `${id}-title`;
58
+ const descriptionId = `${id}-description`;
59
+ const hasPatterns = patterns.length;
60
+ const title = SYNC_FILTERS[syncFilter];
61
+ const description = SYNC_DESCRIPTIONS[syncFilter];
39
62
  return createElement(VStack, {
40
63
  spacing: 6
41
- }, createElement(Flex, null, isMobileViewport && createElement(SidebarButton, {
64
+ }, createElement(PatternsHeader, {
65
+ categoryId: categoryId,
66
+ type: type,
67
+ titleId: titleId,
68
+ descriptionId: descriptionId
69
+ }), createElement(Flex, {
70
+ alignment: "stretch",
71
+ wrap: true
72
+ }, isMobileViewport && createElement(SidebarButton, {
42
73
  icon: isRTL() ? chevronRight : chevronLeft,
43
74
  label: __('Back'),
44
75
  onClick: () => {
@@ -52,36 +83,43 @@ export default function PatternsList({
52
83
  });
53
84
  }
54
85
  }
55
- }), createElement(FlexBlock, null, createElement(SearchControl, {
86
+ }), createElement(FlexBlock, {
87
+ className: "edit-site-patterns__search-block"
88
+ }, createElement(SearchControl, {
56
89
  className: "edit-site-patterns__search",
57
90
  onChange: value => setFilterValue(value),
58
91
  placeholder: __('Search patterns'),
59
92
  label: __('Search patterns'),
60
93
  value: filterValue,
61
94
  __nextHasNoMarginBottom: true
62
- }))), isResolving && __('Loading'), !isResolving && !!syncedPatterns.length && createElement(Fragment, null, createElement(VStack, {
63
- className: "edit-site-patterns__section-header"
64
- }, createElement(Heading, {
65
- level: 4
66
- }, __('Synced')), createElement(Text, {
67
- variant: "muted",
68
- as: "p"
69
- }, __('Patterns that are kept in sync across the site'))), createElement(Grid, {
70
- icon: symbol,
71
- categoryId: categoryId,
72
- label: __('Synced'),
73
- items: syncedPatterns
74
- })), !isResolving && !!unsyncedPatterns.length && createElement(Fragment, null, createElement(VStack, {
95
+ })), categoryId === USER_PATTERN_CATEGORY && createElement(ToggleGroupControl, {
96
+ className: "edit-site-patterns__sync-status-filter",
97
+ hideLabelFromVision: true,
98
+ label: __('Filter by sync status'),
99
+ value: syncFilter,
100
+ isBlock: true,
101
+ onChange: value => setSyncFilter(value),
102
+ __nextHasNoMarginBottom: true
103
+ }, Object.entries(SYNC_FILTERS).map(([key, label]) => createElement(ToggleGroupControlOption, {
104
+ className: "edit-site-patterns__sync-status-filter-option",
105
+ key: key,
106
+ value: key,
107
+ label: label
108
+ })))), syncFilter !== 'all' && createElement(VStack, {
75
109
  className: "edit-site-patterns__section-header"
76
110
  }, createElement(Heading, {
77
- level: 4
78
- }, __('Standard')), createElement(Text, {
111
+ as: "h3",
112
+ level: 5,
113
+ id: titleId
114
+ }, title), description ? createElement(Text, {
79
115
  variant: "muted",
80
- as: "p"
81
- }, __('Patterns that can be changed freely without affecting the site'))), createElement(Grid, {
116
+ as: "p",
117
+ id: descriptionId
118
+ }, description) : null), hasPatterns && createElement(Grid, {
82
119
  categoryId: categoryId,
83
- label: __('Standard patterns'),
84
- items: unsyncedPatterns
85
- })), !isResolving && !hasPatterns && createElement(NoPatterns, null));
120
+ items: patterns,
121
+ "aria-labelledby": titleId,
122
+ "aria-describedby": descriptionId
123
+ }), !isResolving && !hasPatterns && createElement(NoPatterns, null));
86
124
  }
87
125
  //# sourceMappingURL=patterns-list.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/patterns-list.js"],"names":["SearchControl","__experimentalHeading","Heading","__experimentalText","Text","__experimentalVStack","VStack","Flex","FlexBlock","__","isRTL","symbol","chevronLeft","chevronRight","privateApis","routerPrivateApis","useViewportMatch","Grid","NoPatterns","usePatterns","SidebarButton","useDebouncedInput","unlock","useLocation","useHistory","PatternsList","categoryId","type","location","history","isMobileViewport","filterValue","setFilterValue","delayedFilterValue","patterns","isResolving","syncedPatterns","unsyncedPatterns","hasPatterns","length","state","backPath","back","push","path","value"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\n\nimport {\n\tSearchControl,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tFlexBlock,\n} from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { symbol, chevronLeft, chevronRight } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Grid from './grid';\nimport NoPatterns from './no-patterns';\nimport usePatterns from './use-patterns';\nimport SidebarButton from '../sidebar-button';\nimport useDebouncedInput from '../../utils/use-debounced-input';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\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\n\tconst [ patterns, isResolving ] = usePatterns(\n\t\ttype,\n\t\tcategoryId,\n\t\tdelayedFilterValue\n\t);\n\n\tconst { syncedPatterns, unsyncedPatterns } = patterns;\n\tconst hasPatterns = !! syncedPatterns.length || !! unsyncedPatterns.length;\n\n\treturn (\n\t\t<VStack spacing={ 6 }>\n\t\t\t<Flex>\n\t\t\t\t{ isMobileViewport && (\n\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\tonClick={ () => {\n\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// Otherwise push a stack onto the history.\n\t\t\t\t\t\t\tif ( location.state?.backPath === '/patterns' ) {\n\t\t\t\t\t\t\t\thistory.back();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\thistory.push( { path: '/patterns' } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<FlexBlock>\n\t\t\t\t\t<SearchControl\n\t\t\t\t\t\tclassName=\"edit-site-patterns__search\"\n\t\t\t\t\t\tonChange={ ( value ) => setFilterValue( value ) }\n\t\t\t\t\t\tplaceholder={ __( 'Search patterns' ) }\n\t\t\t\t\t\tlabel={ __( 'Search patterns' ) }\n\t\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</FlexBlock>\n\t\t\t</Flex>\n\t\t\t{ isResolving && __( 'Loading' ) }\n\t\t\t{ ! isResolving && !! syncedPatterns.length && (\n\t\t\t\t<>\n\t\t\t\t\t<VStack className=\"edit-site-patterns__section-header\">\n\t\t\t\t\t\t<Heading level={ 4 }>{ __( 'Synced' ) }</Heading>\n\t\t\t\t\t\t<Text variant=\"muted\" as=\"p\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Patterns that are kept in sync across the site'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</VStack>\n\t\t\t\t\t<Grid\n\t\t\t\t\t\ticon={ symbol }\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\tlabel={ __( 'Synced' ) }\n\t\t\t\t\t\titems={ syncedPatterns }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! isResolving && !! unsyncedPatterns.length && (\n\t\t\t\t<>\n\t\t\t\t\t<VStack className=\"edit-site-patterns__section-header\">\n\t\t\t\t\t\t<Heading level={ 4 }>{ __( 'Standard' ) }</Heading>\n\t\t\t\t\t\t<Text variant=\"muted\" as=\"p\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Patterns that can be changed freely without affecting the site'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</VStack>\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\tlabel={ __( 'Standard patterns' ) }\n\t\t\t\t\t\titems={ unsyncedPatterns }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! isResolving && ! hasPatterns && <NoPatterns /> }\n\t\t</VStack>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/patterns-list.js"],"names":["useState","useDeferredValue","useId","SearchControl","__experimentalVStack","VStack","Flex","FlexBlock","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalHeading","Heading","__experimentalText","Text","__","isRTL","chevronLeft","chevronRight","privateApis","routerPrivateApis","useViewportMatch","PatternsHeader","Grid","NoPatterns","usePatterns","SidebarButton","useDebouncedInput","unlock","SYNC_TYPES","USER_PATTERN_CATEGORY","useLocation","useHistory","SYNC_FILTERS","all","full","unsynced","SYNC_DESCRIPTIONS","PatternsList","categoryId","type","location","history","isMobileViewport","filterValue","setFilterValue","delayedFilterValue","deferredFilterValue","syncFilter","setSyncFilter","deferredSyncedFilter","patterns","isResolving","search","syncStatus","undefined","id","titleId","descriptionId","hasPatterns","length","title","description","state","backPath","back","push","path","value","Object","entries","map","key","label"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useDeferredValue, useId } 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 { __, isRTL } from '@wordpress/i18n';\nimport { chevronLeft, chevronRight } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useViewportMatch } 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 useDebouncedInput from '../../utils/use-debounced-input';\nimport { unlock } from '../../lock-unlock';\nimport { SYNC_TYPES, USER_PATTERN_CATEGORY } from './utils';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nconst SYNC_FILTERS = {\n\tall: __( 'All' ),\n\t[ SYNC_TYPES.full ]: __( 'Synced' ),\n\t[ SYNC_TYPES.unsynced ]: __( 'Standard' ),\n};\n\nconst SYNC_DESCRIPTIONS = {\n\tall: '',\n\t[ SYNC_TYPES.full ]: __(\n\t\t'Patterns that are kept in sync across the site.'\n\t),\n\t[ SYNC_TYPES.unsynced ]: __(\n\t\t'Patterns that can be changed freely without affecting the site.'\n\t),\n};\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 deferredSyncedFilter = useDeferredValue( syncFilter );\n\tconst { patterns, isResolving } = usePatterns( type, categoryId, {\n\t\tsearch: deferredFilterValue,\n\t\tsyncStatus:\n\t\t\tdeferredSyncedFilter === 'all' ? undefined : deferredSyncedFilter,\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\treturn (\n\t\t<VStack spacing={ 6 }>\n\t\t\t<PatternsHeader\n\t\t\t\tcategoryId={ categoryId }\n\t\t\t\ttype={ type }\n\t\t\t\ttitleId={ titleId }\n\t\t\t\tdescriptionId={ descriptionId }\n\t\t\t/>\n\n\t\t\t<Flex alignment=\"stretch\" wrap>\n\t\t\t\t{ isMobileViewport && (\n\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\tonClick={ () => {\n\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// Otherwise push a stack onto the history.\n\t\t\t\t\t\t\tif ( location.state?.backPath === '/patterns' ) {\n\t\t\t\t\t\t\t\thistory.back();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\thistory.push( { path: '/patterns' } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<FlexBlock className=\"edit-site-patterns__search-block\">\n\t\t\t\t\t<SearchControl\n\t\t\t\t\t\tclassName=\"edit-site-patterns__search\"\n\t\t\t\t\t\tonChange={ ( value ) => setFilterValue( value ) }\n\t\t\t\t\t\tplaceholder={ __( 'Search patterns' ) }\n\t\t\t\t\t\tlabel={ __( 'Search patterns' ) }\n\t\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</FlexBlock>\n\t\t\t\t{ categoryId === USER_PATTERN_CATEGORY && (\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\tclassName=\"edit-site-patterns__sync-status-filter\"\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tlabel={ __( 'Filter by sync status' ) }\n\t\t\t\t\t\tvalue={ syncFilter }\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\tonChange={ ( value ) => setSyncFilter( value ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t>\n\t\t\t\t\t\t{ Object.entries( SYNC_FILTERS ).map(\n\t\t\t\t\t\t\t( [ key, label ] ) => (\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\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\tkey={ key }\n\t\t\t\t\t\t\t\t\tvalue={ key }\n\t\t\t\t\t\t\t\t\tlabel={ label }\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</ToggleGroupControl>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t\t{ syncFilter !== 'all' && (\n\t\t\t\t<VStack className=\"edit-site-patterns__section-header\">\n\t\t\t\t\t<Heading as=\"h3\" level={ 5 } id={ titleId }>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{ description ? (\n\t\t\t\t\t\t<Text variant=\"muted\" as=\"p\" id={ descriptionId }>\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : null }\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t\t{ hasPatterns && (\n\t\t\t\t<Grid\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\titems={ patterns }\n\t\t\t\t\taria-labelledby={ titleId }\n\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! isResolving && ! hasPatterns && <NoPatterns /> }\n\t\t</VStack>\n\t);\n}\n"]}
@@ -0,0 +1,97 @@
1
+ import { createElement, Fragment } from "@wordpress/element";
2
+
3
+ /**
4
+ * WordPress dependencies
5
+ */
6
+ import { Button, MenuItem, Modal, TextControl, __experimentalHStack as HStack, __experimentalVStack as VStack } from '@wordpress/components';
7
+ import { store as coreStore } from '@wordpress/core-data';
8
+ import { useDispatch } from '@wordpress/data';
9
+ import { useState } from '@wordpress/element';
10
+ import { __ } from '@wordpress/i18n';
11
+ import { store as noticesStore } from '@wordpress/notices';
12
+ /**
13
+ * Internal dependencies
14
+ */
15
+
16
+ import { TEMPLATE_PARTS } from './utils';
17
+ export default function RenameMenuItem({
18
+ item,
19
+ onClose
20
+ }) {
21
+ const [title, setTitle] = useState(() => item.title);
22
+ const [isModalOpen, setIsModalOpen] = useState(false);
23
+ const {
24
+ editEntityRecord,
25
+ saveEditedEntityRecord
26
+ } = useDispatch(coreStore);
27
+ const {
28
+ createSuccessNotice,
29
+ createErrorNotice
30
+ } = useDispatch(noticesStore);
31
+
32
+ if (item.type === TEMPLATE_PARTS && !item.isCustom) {
33
+ return null;
34
+ }
35
+
36
+ async function onRename(event) {
37
+ event.preventDefault();
38
+
39
+ try {
40
+ await editEntityRecord('postType', item.type, item.id, {
41
+ title
42
+ }); // Update state before saving rerenders the list.
43
+
44
+ setTitle('');
45
+ setIsModalOpen(false);
46
+ onClose(); // Persist edited entity.
47
+
48
+ await saveEditedEntityRecord('postType', item.type, item.id, {
49
+ throwOnError: true
50
+ });
51
+ createSuccessNotice(__('Entity renamed.'), {
52
+ type: 'snackbar'
53
+ });
54
+ } catch (error) {
55
+ const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : __('An error occurred while renaming the entity.');
56
+ createErrorNotice(errorMessage, {
57
+ type: 'snackbar'
58
+ });
59
+ }
60
+ }
61
+
62
+ return createElement(Fragment, null, createElement(MenuItem, {
63
+ onClick: () => {
64
+ setIsModalOpen(true);
65
+ setTitle(item.title);
66
+ }
67
+ }, __('Rename')), isModalOpen && createElement(Modal, {
68
+ title: __('Rename'),
69
+ onRequestClose: () => {
70
+ setIsModalOpen(false);
71
+ onClose();
72
+ },
73
+ overlayClassName: "edit-site-list__rename_modal"
74
+ }, createElement("form", {
75
+ onSubmit: onRename
76
+ }, createElement(VStack, {
77
+ spacing: "5"
78
+ }, createElement(TextControl, {
79
+ __nextHasNoMarginBottom: true,
80
+ label: __('Name'),
81
+ value: title,
82
+ onChange: setTitle,
83
+ required: true
84
+ }), createElement(HStack, {
85
+ justify: "right"
86
+ }, createElement(Button, {
87
+ variant: "tertiary",
88
+ onClick: () => {
89
+ setIsModalOpen(false);
90
+ onClose();
91
+ }
92
+ }, __('Cancel')), createElement(Button, {
93
+ variant: "primary",
94
+ type: "submit"
95
+ }, __('Save')))))));
96
+ }
97
+ //# sourceMappingURL=rename-menu-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/rename-menu-item.js"],"names":["Button","MenuItem","Modal","TextControl","__experimentalHStack","HStack","__experimentalVStack","VStack","store","coreStore","useDispatch","useState","__","noticesStore","TEMPLATE_PARTS","RenameMenuItem","item","onClose","title","setTitle","isModalOpen","setIsModalOpen","editEntityRecord","saveEditedEntityRecord","createSuccessNotice","createErrorNotice","type","isCustom","onRename","event","preventDefault","id","throwOnError","error","errorMessage","message","code"],"mappings":"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","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_PARTS } from './utils';\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_PARTS && ! 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( __( 'Entity renamed.' ), {\n\t\t\t\ttype: 'snackbar',\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 renaming the entity.' );\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\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\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 variant=\"primary\" type=\"submit\">\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"]}