@wordpress/edit-site 5.12.4 → 5.12.6

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 (264) hide show
  1. package/build/components/add-new-template/new-template.js +1 -1
  2. package/build/components/add-new-template/new-template.js.map +1 -1
  3. package/build/components/block-editor/editor-canvas.js +1 -1
  4. package/build/components/block-editor/editor-canvas.js.map +1 -1
  5. package/build/components/create-pattern-modal/index.js +7 -7
  6. package/build/components/create-pattern-modal/index.js.map +1 -1
  7. package/build/components/header-edit-mode/document-actions/index.js +9 -1
  8. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  9. package/build/components/page/index.js +3 -1
  10. package/build/components/page/index.js.map +1 -1
  11. package/build/components/page-main/index.js +8 -4
  12. package/build/components/page-main/index.js.map +1 -1
  13. package/build/components/{page-library → page-patterns}/grid-item.js +52 -27
  14. package/build/components/page-patterns/grid-item.js.map +1 -0
  15. package/build/components/{page-library → page-patterns}/grid.js +1 -1
  16. package/build/components/page-patterns/grid.js.map +1 -0
  17. package/build/components/{page-library → page-patterns}/index.js +6 -6
  18. package/build/components/page-patterns/index.js.map +1 -0
  19. package/build/components/{page-library → page-patterns}/no-patterns.js +1 -1
  20. package/build/components/page-patterns/no-patterns.js.map +1 -0
  21. package/build/components/{page-library → page-patterns}/patterns-list.js +6 -6
  22. package/build/components/page-patterns/patterns-list.js.map +1 -0
  23. package/build/components/page-patterns/search-items.js.map +1 -0
  24. package/build/components/{page-library/use-library-settings.js → page-patterns/use-pattern-settings.js} +3 -3
  25. package/build/components/page-patterns/use-pattern-settings.js.map +1 -0
  26. package/build/components/{page-library → page-patterns}/use-patterns.js +12 -2
  27. package/build/components/page-patterns/use-patterns.js.map +1 -0
  28. package/build/components/{page-library → page-patterns}/utils.js +3 -3
  29. package/build/components/page-patterns/utils.js.map +1 -0
  30. package/build/components/page-template-parts/index.js +102 -0
  31. package/build/components/page-template-parts/index.js.map +1 -0
  32. package/build/components/sidebar/index.js +6 -6
  33. package/build/components/sidebar/index.js.map +1 -1
  34. package/build/components/sidebar-edit-mode/settings-header/index.js +7 -1
  35. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  36. package/build/components/sidebar-navigation-screen-global-styles/index.js +20 -8
  37. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  38. package/build/components/sidebar-navigation-screen-main/index.js +2 -2
  39. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  40. package/build/components/sidebar-navigation-screen-navigation-menu/index.js +2 -4
  41. package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  42. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +16 -4
  43. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  44. package/build/components/sidebar-navigation-screen-pages/index.js +1 -1
  45. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  46. package/build/components/sidebar-navigation-screen-pattern/index.js +13 -8
  47. package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  48. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +23 -0
  49. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  50. package/build/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/category-item.js +3 -3
  51. package/build/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -0
  52. package/build/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/index.js +55 -15
  53. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -0
  54. package/build/components/sidebar-navigation-screen-patterns/use-default-pattern-categories.js.map +1 -0
  55. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js +30 -0
  56. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +1 -0
  57. package/build/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-pattern-categories.js +2 -20
  58. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -0
  59. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -0
  60. package/build/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-theme-patterns.js +1 -1
  61. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -0
  62. package/build/components/sidebar-navigation-screen-templates/index.js +11 -63
  63. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  64. package/build/components/sidebar-navigation-screen-templates-browse/index.js +4 -2
  65. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  66. package/build/components/sync-state-with-url/use-sync-path-with-url.js +1 -1
  67. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  68. package/build/components/welcome-guide/editor.js +1 -1
  69. package/build/components/welcome-guide/editor.js.map +1 -1
  70. package/build/components/welcome-guide/index.js +5 -1
  71. package/build/components/welcome-guide/index.js.map +1 -1
  72. package/build/components/welcome-guide/page.js +70 -0
  73. package/build/components/welcome-guide/page.js.map +1 -0
  74. package/build/components/welcome-guide/styles.js +1 -1
  75. package/build/components/welcome-guide/styles.js.map +1 -1
  76. package/build/components/welcome-guide/template.js +71 -0
  77. package/build/components/welcome-guide/template.js.map +1 -0
  78. package/build/hooks/commands/use-common-commands.js +17 -2
  79. package/build/hooks/commands/use-common-commands.js.map +1 -1
  80. package/build/hooks/commands/use-edit-mode-commands.js +2 -1
  81. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  82. package/build/index.js +2 -0
  83. package/build/index.js.map +1 -1
  84. package/build/store/actions.js +5 -2
  85. package/build/store/actions.js.map +1 -1
  86. package/build/utils/get-is-list-page.js +2 -2
  87. package/build/utils/get-is-list-page.js.map +1 -1
  88. package/build-module/components/add-new-template/new-template.js +2 -2
  89. package/build-module/components/add-new-template/new-template.js.map +1 -1
  90. package/build-module/components/block-editor/editor-canvas.js +1 -1
  91. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  92. package/build-module/components/create-pattern-modal/index.js +7 -7
  93. package/build-module/components/create-pattern-modal/index.js.map +1 -1
  94. package/build-module/components/header-edit-mode/document-actions/index.js +10 -2
  95. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  96. package/build-module/components/page/index.js +2 -1
  97. package/build-module/components/page/index.js.map +1 -1
  98. package/build-module/components/page-main/index.js +6 -3
  99. package/build-module/components/page-main/index.js.map +1 -1
  100. package/build-module/components/{page-library → page-patterns}/grid-item.js +56 -29
  101. package/build-module/components/page-patterns/grid-item.js.map +1 -0
  102. package/build-module/components/{page-library → page-patterns}/grid.js +1 -1
  103. package/build-module/components/page-patterns/grid.js.map +1 -0
  104. package/build-module/components/{page-library → page-patterns}/index.js +5 -5
  105. package/build-module/components/page-patterns/index.js.map +1 -0
  106. package/build-module/components/{page-library → page-patterns}/no-patterns.js +1 -1
  107. package/build-module/components/page-patterns/no-patterns.js.map +1 -0
  108. package/build-module/components/{page-library → page-patterns}/patterns-list.js +6 -6
  109. package/build-module/components/page-patterns/patterns-list.js.map +1 -0
  110. package/build-module/components/page-patterns/search-items.js.map +1 -0
  111. package/build-module/components/{page-library/use-library-settings.js → page-patterns/use-pattern-settings.js} +2 -2
  112. package/build-module/components/page-patterns/use-pattern-settings.js.map +1 -0
  113. package/build-module/components/{page-library → page-patterns}/use-patterns.js +12 -2
  114. package/build-module/components/page-patterns/use-patterns.js.map +1 -0
  115. package/build-module/components/{page-library → page-patterns}/utils.js +3 -3
  116. package/build-module/components/page-patterns/utils.js.map +1 -0
  117. package/build-module/components/page-template-parts/index.js +81 -0
  118. package/build-module/components/page-template-parts/index.js.map +1 -0
  119. package/build-module/components/sidebar/index.js +5 -5
  120. package/build-module/components/sidebar/index.js.map +1 -1
  121. package/build-module/components/sidebar-edit-mode/settings-header/index.js +6 -1
  122. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  123. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +19 -8
  124. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  125. package/build-module/components/sidebar-navigation-screen-main/index.js +2 -2
  126. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  127. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js +2 -4
  128. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  129. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +15 -5
  130. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  131. package/build-module/components/sidebar-navigation-screen-pages/index.js +2 -2
  132. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  133. package/build-module/components/sidebar-navigation-screen-pattern/index.js +12 -7
  134. package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  135. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +21 -0
  136. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  137. package/build-module/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/category-item.js +3 -3
  138. package/build-module/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -0
  139. package/build-module/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/index.js +54 -16
  140. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -0
  141. package/build-module/components/sidebar-navigation-screen-patterns/use-default-pattern-categories.js.map +1 -0
  142. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js +20 -0
  143. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +1 -0
  144. package/build-module/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-pattern-categories.js +2 -17
  145. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -0
  146. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -0
  147. package/build-module/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-theme-patterns.js +1 -1
  148. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -0
  149. package/build-module/components/sidebar-navigation-screen-templates/index.js +12 -62
  150. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  151. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +4 -2
  152. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  153. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +1 -1
  154. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  155. package/build-module/components/welcome-guide/editor.js +1 -1
  156. package/build-module/components/welcome-guide/editor.js.map +1 -1
  157. package/build-module/components/welcome-guide/index.js +3 -1
  158. package/build-module/components/welcome-guide/index.js.map +1 -1
  159. package/build-module/components/welcome-guide/page.js +59 -0
  160. package/build-module/components/welcome-guide/page.js.map +1 -0
  161. package/build-module/components/welcome-guide/styles.js +1 -1
  162. package/build-module/components/welcome-guide/styles.js.map +1 -1
  163. package/build-module/components/welcome-guide/template.js +60 -0
  164. package/build-module/components/welcome-guide/template.js.map +1 -0
  165. package/build-module/hooks/commands/use-common-commands.js +16 -2
  166. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  167. package/build-module/hooks/commands/use-edit-mode-commands.js +2 -1
  168. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  169. package/build-module/index.js +2 -0
  170. package/build-module/index.js.map +1 -1
  171. package/build-module/store/actions.js +5 -2
  172. package/build-module/store/actions.js.map +1 -1
  173. package/build-module/utils/get-is-list-page.js +2 -2
  174. package/build-module/utils/get-is-list-page.js.map +1 -1
  175. package/build-style/style-rtl.css +43 -26
  176. package/build-style/style.css +43 -26
  177. package/package.json +19 -19
  178. package/src/components/add-new-template/new-template.js +2 -2
  179. package/src/components/block-editor/editor-canvas.js +3 -1
  180. package/src/components/create-pattern-modal/index.js +10 -11
  181. package/src/components/header-edit-mode/document-actions/index.js +9 -1
  182. package/src/components/page/index.js +5 -1
  183. package/src/components/page-main/index.js +6 -3
  184. package/src/components/{page-library → page-patterns}/grid-item.js +74 -24
  185. package/src/components/{page-library → page-patterns}/grid.js +1 -1
  186. package/src/components/{page-library → page-patterns}/index.js +5 -5
  187. package/src/components/{page-library → page-patterns}/no-patterns.js +1 -1
  188. package/src/components/{page-library → page-patterns}/patterns-list.js +6 -6
  189. package/src/components/{page-library → page-patterns}/style.scss +16 -12
  190. package/src/components/{page-library/use-library-settings.js → page-patterns/use-pattern-settings.js} +1 -1
  191. package/src/components/{page-library → page-patterns}/use-patterns.js +11 -2
  192. package/src/components/{page-library → page-patterns}/utils.js +3 -3
  193. package/src/components/page-template-parts/index.js +105 -0
  194. package/src/components/sidebar/index.js +6 -6
  195. package/src/components/sidebar-edit-mode/settings-header/index.js +7 -2
  196. package/src/components/sidebar-navigation-screen-global-styles/index.js +26 -15
  197. package/src/components/sidebar-navigation-screen-main/index.js +2 -2
  198. package/src/components/sidebar-navigation-screen-navigation-menu/index.js +2 -6
  199. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +12 -4
  200. package/src/components/sidebar-navigation-screen-pages/index.js +2 -2
  201. package/src/components/sidebar-navigation-screen-pattern/index.js +13 -6
  202. package/src/components/sidebar-navigation-screen-pattern/style.scss +4 -0
  203. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +43 -1
  204. package/src/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/category-item.js +3 -3
  205. package/src/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/index.js +75 -22
  206. package/src/components/sidebar-navigation-screen-patterns/style.scss +3 -0
  207. package/src/components/sidebar-navigation-screen-patterns/use-my-patterns.js +23 -0
  208. package/src/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-pattern-categories.js +1 -18
  209. package/src/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-theme-patterns.js +1 -1
  210. package/src/components/sidebar-navigation-screen-templates/index.js +15 -82
  211. package/src/components/sidebar-navigation-screen-templates-browse/index.js +2 -0
  212. package/src/components/sync-state-with-url/use-sync-path-with-url.js +1 -1
  213. package/src/components/welcome-guide/editor.js +1 -1
  214. package/src/components/welcome-guide/index.js +4 -0
  215. package/src/components/welcome-guide/page.js +75 -0
  216. package/src/components/welcome-guide/style.scss +15 -1
  217. package/src/components/welcome-guide/styles.js +1 -1
  218. package/src/components/welcome-guide/template.js +82 -0
  219. package/src/hooks/commands/use-common-commands.js +13 -1
  220. package/src/hooks/commands/use-edit-mode-commands.js +5 -1
  221. package/src/index.js +2 -0
  222. package/src/store/actions.js +8 -1
  223. package/src/style.scss +2 -2
  224. package/src/utils/get-is-list-page.js +4 -3
  225. package/build/components/page-library/grid-item.js.map +0 -1
  226. package/build/components/page-library/grid.js.map +0 -1
  227. package/build/components/page-library/index.js.map +0 -1
  228. package/build/components/page-library/no-patterns.js.map +0 -1
  229. package/build/components/page-library/patterns-list.js.map +0 -1
  230. package/build/components/page-library/search-items.js.map +0 -1
  231. package/build/components/page-library/use-library-settings.js.map +0 -1
  232. package/build/components/page-library/use-patterns.js.map +0 -1
  233. package/build/components/page-library/utils.js.map +0 -1
  234. package/build/components/sidebar-navigation-screen-library/category-item.js.map +0 -1
  235. package/build/components/sidebar-navigation-screen-library/index.js.map +0 -1
  236. package/build/components/sidebar-navigation-screen-library/use-default-pattern-categories.js.map +0 -1
  237. package/build/components/sidebar-navigation-screen-library/use-pattern-categories.js.map +0 -1
  238. package/build/components/sidebar-navigation-screen-library/use-template-part-areas.js.map +0 -1
  239. package/build/components/sidebar-navigation-screen-library/use-theme-patterns.js.map +0 -1
  240. package/build-module/components/page-library/grid-item.js.map +0 -1
  241. package/build-module/components/page-library/grid.js.map +0 -1
  242. package/build-module/components/page-library/index.js.map +0 -1
  243. package/build-module/components/page-library/no-patterns.js.map +0 -1
  244. package/build-module/components/page-library/patterns-list.js.map +0 -1
  245. package/build-module/components/page-library/search-items.js.map +0 -1
  246. package/build-module/components/page-library/use-library-settings.js.map +0 -1
  247. package/build-module/components/page-library/use-patterns.js.map +0 -1
  248. package/build-module/components/page-library/utils.js.map +0 -1
  249. package/build-module/components/sidebar-navigation-screen-library/category-item.js.map +0 -1
  250. package/build-module/components/sidebar-navigation-screen-library/index.js.map +0 -1
  251. package/build-module/components/sidebar-navigation-screen-library/use-default-pattern-categories.js.map +0 -1
  252. package/build-module/components/sidebar-navigation-screen-library/use-pattern-categories.js.map +0 -1
  253. package/build-module/components/sidebar-navigation-screen-library/use-template-part-areas.js.map +0 -1
  254. package/build-module/components/sidebar-navigation-screen-library/use-theme-patterns.js.map +0 -1
  255. package/src/components/sidebar-navigation-screen-library/style.scss +0 -3
  256. /package/build/components/{page-library → page-patterns}/search-items.js +0 -0
  257. /package/build/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-default-pattern-categories.js +0 -0
  258. /package/build/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-template-part-areas.js +0 -0
  259. /package/build-module/components/{page-library → page-patterns}/search-items.js +0 -0
  260. /package/build-module/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-default-pattern-categories.js +0 -0
  261. /package/build-module/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-template-part-areas.js +0 -0
  262. /package/src/components/{page-library → page-patterns}/search-items.js +0 -0
  263. /package/src/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-default-pattern-categories.js +0 -0
  264. /package/src/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-template-part-areas.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/page-main/index.js"],"names":["privateApis","routerPrivateApis","PageTemplates","PageLibrary","unlock","useLocation","PageMain","params","path"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,iBAAxB,QAAiD,mBAAjD;AAEA;AACA;AACA;;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,WAAP,MAAwB,iBAAxB;AACA,SAASC,MAAT,QAAuB,mBAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAkBD,MAAM,CAAEH,iBAAF,CAA9B;AAEA,eAAe,SAASK,QAAT,GAAoB;AAClC,QAAM;AACLC,IAAAA,MAAM,EAAE;AAAEC,MAAAA;AAAF;AADH,MAEFH,WAAW,EAFf;;AAIA,MAAKG,IAAI,KAAK,kBAAd,EAAmC;AAClC,WAAO,cAAC,aAAD,OAAP;AACA,GAFD,MAEO,IAAKA,IAAI,KAAK,UAAd,EAA2B;AACjC,WAAO,cAAC,WAAD,OAAP;AACA;;AAED,SAAO,IAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport PageTemplates from '../page-templates';\nimport PageLibrary from '../page-library';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function PageMain() {\n\tconst {\n\t\tparams: { path },\n\t} = useLocation();\n\n\tif ( path === '/wp_template/all' ) {\n\t\treturn <PageTemplates />;\n\t} else if ( path === '/library' ) {\n\t\treturn <PageLibrary />;\n\t}\n\n\treturn null;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/page-main/index.js"],"names":["privateApis","routerPrivateApis","PagePatterns","PageTemplateParts","PageTemplates","unlock","useLocation","PageMain","params","path"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,iBAAxB,QAAiD,mBAAjD;AAEA;AACA;AACA;;AACA,OAAOC,YAAP,MAAyB,kBAAzB;AACA,OAAOC,iBAAP,MAA8B,wBAA9B;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,SAASC,MAAT,QAAuB,mBAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAkBD,MAAM,CAAEJ,iBAAF,CAA9B;AAEA,eAAe,SAASM,QAAT,GAAoB;AAClC,QAAM;AACLC,IAAAA,MAAM,EAAE;AAAEC,MAAAA;AAAF;AADH,MAEFH,WAAW,EAFf;;AAIA,MAAKG,IAAI,KAAK,kBAAd,EAAmC;AAClC,WAAO,cAAC,aAAD,OAAP;AACA,GAFD,MAEO,IAAKA,IAAI,KAAK,uBAAd,EAAwC;AAC9C,WAAO,cAAC,iBAAD,OAAP;AACA,GAFM,MAEA,IAAKA,IAAI,KAAK,WAAd,EAA4B;AAClC,WAAO,cAAC,YAAD,OAAP;AACA;;AAED,SAAO,IAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport PagePatterns from '../page-patterns';\nimport PageTemplateParts from '../page-template-parts';\nimport PageTemplates from '../page-templates';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function PageMain() {\n\tconst {\n\t\tparams: { path },\n\t} = useLocation();\n\n\tif ( path === '/wp_template/all' ) {\n\t\treturn <PageTemplates />;\n\t} else if ( path === '/wp_template_part/all' ) {\n\t\treturn <PageTemplateParts />;\n\t} else if ( path === '/patterns' ) {\n\t\treturn <PagePatterns />;\n\t}\n\n\treturn null;\n}\n"]}
@@ -9,12 +9,11 @@ import classnames from 'classnames';
9
9
  */
10
10
 
11
11
  import { BlockPreview } from '@wordpress/block-editor';
12
- import { __experimentalConfirmDialog as ConfirmDialog, DropdownMenu, MenuGroup, MenuItem, __experimentalHeading as Heading, __experimentalHStack as HStack, __unstableCompositeItem as CompositeItem } from '@wordpress/components';
13
- import { useInstanceId } from '@wordpress/compose';
12
+ import { __experimentalConfirmDialog as ConfirmDialog, DropdownMenu, MenuGroup, MenuItem, __experimentalHeading as Heading, __experimentalHStack as HStack, __unstableCompositeItem as CompositeItem, Tooltip, Flex } from '@wordpress/components';
14
13
  import { useDispatch } from '@wordpress/data';
15
- import { useState } from '@wordpress/element';
14
+ import { useState, useId } from '@wordpress/element';
16
15
  import { __, sprintf } from '@wordpress/i18n';
17
- import { Icon, moreHorizontal } from '@wordpress/icons';
16
+ import { Icon, header, footer, symbolFilled, moreHorizontal, lockSmall } from '@wordpress/icons';
18
17
  import { store as noticesStore } from '@wordpress/notices';
19
18
  import { store as reusableBlocksStore } from '@wordpress/reusable-blocks';
20
19
  import { DELETE, BACKSPACE } from '@wordpress/keycodes';
@@ -24,14 +23,16 @@ import { DELETE, BACKSPACE } from '@wordpress/keycodes';
24
23
 
25
24
  import { PATTERNS, USER_PATTERNS } from './utils';
26
25
  import { useLink } from '../routes/link';
26
+
27
+ const THEME_PATTERN_TOOLTIP = __('Theme patterns cannot be edited.');
28
+
27
29
  export default function GridItem({
28
30
  categoryId,
29
31
  composite,
30
32
  icon,
31
33
  item
32
34
  }) {
33
- const instanceId = useInstanceId(GridItem);
34
- const descriptionId = `edit-site-library__pattern-description-${instanceId}`;
35
+ const descriptionId = useId();
35
36
  const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState(false);
36
37
  const {
37
38
  __experimentalDeleteReusableBlock
@@ -46,8 +47,7 @@ export default function GridItem({
46
47
  postType: item.type,
47
48
  postId: item.type === USER_PATTERNS ? item.id : item.name,
48
49
  categoryId,
49
- categoryType: item.type,
50
- canvas: 'view'
50
+ categoryType: item.type
51
51
  });
52
52
 
53
53
  const onKeyDown = event => {
@@ -57,10 +57,10 @@ export default function GridItem({
57
57
  };
58
58
 
59
59
  const isEmpty = !item.blocks?.length;
60
- const patternClassNames = classnames('edit-site-library__pattern', {
60
+ const patternClassNames = classnames('edit-site-patterns__pattern', {
61
61
  'is-placeholder': isEmpty
62
62
  });
63
- const previewClassNames = classnames('edit-site-library__preview', {
63
+ const previewClassNames = classnames('edit-site-patterns__preview', {
64
64
  'is-inactive': item.type === PATTERNS
65
65
  });
66
66
 
@@ -79,13 +79,27 @@ export default function GridItem({
79
79
  };
80
80
 
81
81
  const isUserPattern = item.type === USER_PATTERNS;
82
- let ariaDescription;
82
+ const ariaDescriptions = [];
83
83
 
84
84
  if (isUserPattern) {
85
85
  // User patterns don't have descriptions, but can be edited and deleted, so include some help text.
86
- ariaDescription = __('Press Enter to edit, or Delete to delete the pattern.');
86
+ ariaDescriptions.push(__('Press Enter to edit, or Delete to delete the pattern.'));
87
87
  } else if (item.description) {
88
- ariaDescription = item.description;
88
+ ariaDescriptions.push(item.description);
89
+ }
90
+
91
+ if (item.type === PATTERNS) {
92
+ ariaDescriptions.push(THEME_PATTERN_TOOLTIP);
93
+ }
94
+
95
+ let itemIcon = icon;
96
+
97
+ if (categoryId === 'header') {
98
+ itemIcon = header;
99
+ } else if (categoryId === 'footer') {
100
+ itemIcon = footer;
101
+ } else if (categoryId === 'uncategorized') {
102
+ itemIcon = symbolFilled;
89
103
  }
90
104
 
91
105
  return createElement(Fragment, null, createElement("div", {
@@ -98,37 +112,50 @@ export default function GridItem({
98
112
  onClick: item.type !== PATTERNS ? onClick : undefined,
99
113
  onKeyDown: isUserPattern ? onKeyDown : undefined,
100
114
  "aria-label": item.title,
101
- "aria-describedby": ariaDescription ? descriptionId : undefined
115
+ "aria-describedby": ariaDescriptions.length ? ariaDescriptions.join(' ') : undefined
102
116
  }, isEmpty && __('Empty pattern'), !isEmpty && createElement(BlockPreview, {
103
117
  blocks: item.blocks
104
- })), ariaDescription && createElement("div", {
105
- "aria-hidden": "true",
106
- style: {
107
- display: 'none'
108
- },
109
- id: descriptionId
110
- }, ariaDescription), createElement(HStack, {
118
+ })), ariaDescriptions.map((ariaDescription, index) => createElement("div", {
119
+ key: index,
120
+ hidden: true,
121
+ id: `${descriptionId}-${index}`
122
+ }, ariaDescription)), createElement(HStack, {
111
123
  "aria-hidden": "true",
112
- className: "edit-site-library__footer",
124
+ className: "edit-site-patterns__footer",
113
125
  justify: "space-between"
114
126
  }, createElement(HStack, {
115
127
  alignment: "center",
116
128
  justify: "left",
117
129
  spacing: 3,
118
- className: "edit-site-library__pattern-title"
130
+ className: "edit-site-patterns__pattern-title"
119
131
  }, icon && createElement(Icon, {
120
- icon: icon
121
- }), createElement(Heading, {
122
- level: 5
123
- }, item.title)), item.type === USER_PATTERNS && createElement(DropdownMenu, {
132
+ className: "edit-site-patterns__pattern-icon",
133
+ icon: itemIcon
134
+ }), createElement(Flex, {
135
+ as: Heading,
136
+ level: 5,
137
+ gap: 0,
138
+ justify: "left"
139
+ }, item.title, item.type === PATTERNS && createElement(Tooltip, {
140
+ position: "top center",
141
+ text: __('Theme patterns cannot be edited.')
142
+ }, createElement("span", {
143
+ className: "edit-site-patterns__pattern-lock-icon"
144
+ }, createElement(Icon, {
145
+ style: {
146
+ fill: 'currentcolor'
147
+ },
148
+ icon: lockSmall,
149
+ size: 24
150
+ }))))), item.type === USER_PATTERNS && createElement(DropdownMenu, {
124
151
  icon: moreHorizontal,
125
152
  label: __('Actions'),
126
- className: "edit-site-library__dropdown",
153
+ className: "edit-site-patterns__dropdown",
127
154
  popoverProps: {
128
155
  placement: 'bottom-end'
129
156
  },
130
157
  toggleProps: {
131
- className: 'edit-site-library__button',
158
+ className: 'edit-site-patterns__button',
132
159
  isSmall: true,
133
160
  describedBy: sprintf(
134
161
  /* translators: %s: pattern name */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/grid-item.js"],"names":["classnames","BlockPreview","__experimentalConfirmDialog","ConfirmDialog","DropdownMenu","MenuGroup","MenuItem","__experimentalHeading","Heading","__experimentalHStack","HStack","__unstableCompositeItem","CompositeItem","Tooltip","Flex","useDispatch","useState","useId","__","sprintf","Icon","header","footer","symbolFilled","moreHorizontal","lockSmall","store","noticesStore","reusableBlocksStore","DELETE","BACKSPACE","PATTERNS","USER_PATTERNS","useLink","THEME_PATTERN_TOOLTIP","GridItem","categoryId","composite","icon","item","descriptionId","isDeleteDialogOpen","setIsDeleteDialogOpen","__experimentalDeleteReusableBlock","createErrorNotice","createSuccessNotice","onClick","postType","type","postId","id","name","categoryType","onKeyDown","event","keyCode","isEmpty","blocks","length","patternClassNames","previewClassNames","deletePattern","error","errorMessage","message","code","isUserPattern","ariaDescriptions","push","description","itemIcon","undefined","title","join","map","ariaDescription","index","fill","placement","className","isSmall","describedBy","tabIndex"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { BlockPreview } from '@wordpress/block-editor';\nimport {\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\t__unstableCompositeItem as CompositeItem,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useId } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled,\n\tmoreHorizontal,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { DELETE, BACKSPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { PATTERNS, USER_PATTERNS } from './utils';\nimport { useLink } from '../routes/link';\n\nconst THEME_PATTERN_TOOLTIP = __( 'Theme patterns cannot be edited.' );\n\nexport default function GridItem( { categoryId, composite, icon, item } ) {\n\tconst descriptionId = useId();\n\tconst [ isDeleteDialogOpen, setIsDeleteDialogOpen ] = useState( false );\n\n\tconst { __experimentalDeleteReusableBlock } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: item.type === USER_PATTERNS ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: item.type,\n\t} );\n\n\tconst onKeyDown = ( event ) => {\n\t\tif ( DELETE === event.keyCode || BACKSPACE === event.keyCode ) {\n\t\t\tsetIsDeleteDialogOpen( true );\n\t\t}\n\t};\n\n\tconst isEmpty = ! item.blocks?.length;\n\tconst patternClassNames = classnames( 'edit-site-patterns__pattern', {\n\t\t'is-placeholder': isEmpty,\n\t} );\n\tconst previewClassNames = classnames( 'edit-site-patterns__preview', {\n\t\t'is-inactive': item.type === PATTERNS,\n\t} );\n\n\tconst deletePattern = async () => {\n\t\ttry {\n\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\tcreateSuccessNotice( __( 'Pattern successfully deleted.' ), {\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 deleting the pattern.' );\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t};\n\n\tconst isUserPattern = item.type === USER_PATTERNS;\n\tconst ariaDescriptions = [];\n\tif ( isUserPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\tif ( item.type === PATTERNS ) {\n\t\tariaDescriptions.push( THEME_PATTERN_TOOLTIP );\n\t}\n\n\tlet itemIcon = icon;\n\tif ( categoryId === 'header' ) {\n\t\titemIcon = header;\n\t} else if ( categoryId === 'footer' ) {\n\t\titemIcon = footer;\n\t} else if ( categoryId === 'uncategorized' ) {\n\t\titemIcon = symbolFilled;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<div className={ patternClassNames }>\n\t\t\t\t<CompositeItem\n\t\t\t\t\tclassName={ previewClassNames }\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\tas=\"div\"\n\t\t\t\t\t{ ...composite }\n\t\t\t\t\tonClick={ item.type !== PATTERNS ? onClick : undefined }\n\t\t\t\t\tonKeyDown={ isUserPattern ? onKeyDown : undefined }\n\t\t\t\t\taria-label={ item.title }\n\t\t\t\t\taria-describedby={\n\t\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t\t? ariaDescriptions.join( ' ' )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isEmpty && __( 'Empty pattern' ) }\n\t\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ item.blocks } /> }\n\t\t\t\t</CompositeItem>\n\t\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\thidden\n\t\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ariaDescription }\n\t\t\t\t\t</div>\n\t\t\t\t) ) }\n\t\t\t\t<HStack\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName=\"edit-site-patterns__footer\"\n\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\talignment=\"center\"\n\t\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tas={ Heading }\n\t\t\t\t\t\t\tlevel={ 5 }\n\t\t\t\t\t\t\tgap={ 0 }\n\t\t\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t\t{ item.type === PATTERNS && (\n\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\tposition=\"top center\"\n\t\t\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t\t\t'Theme patterns cannot be edited.'\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<span className=\"edit-site-patterns__pattern-lock-icon\">\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tstyle={ { fill: 'currentcolor' } }\n\t\t\t\t\t\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t{ item.type === USER_PATTERNS && (\n\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\ticon={ moreHorizontal }\n\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\tclassName=\"edit-site-patterns__dropdown\"\n\t\t\t\t\t\t\tpopoverProps={ { placement: 'bottom-end' } }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\t\t\tisSmall: true,\n\t\t\t\t\t\t\t\tdescribedBy: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: pattern name */\n\t\t\t\t\t\t\t\t\t__( 'Action menu for %s pattern' ),\n\t\t\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t// The dropdown menu is not focusable using the\n\t\t\t\t\t\t\t\t// keyboard as this would interfere with the grid's\n\t\t\t\t\t\t\t\t// roving tab index system. Instead, keyboard users\n\t\t\t\t\t\t\t\t// use keyboard shortcuts to trigger actions.\n\t\t\t\t\t\t\t\ttabIndex: -1,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetIsDeleteDialogOpen( true )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</div>\n\t\t\t{ isDeleteDialogOpen && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tonConfirm={ deletePattern }\n\t\t\t\t\tonCancel={ () => setIsDeleteDialogOpen( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Are you sure you want to delete this pattern?' ) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
@@ -25,7 +25,7 @@ export default function Grid({
25
25
 
26
26
  return createElement(Composite, { ...composite,
27
27
  role: "listbox",
28
- className: "edit-site-library__grid",
28
+ className: "edit-site-patterns__grid",
29
29
  "aria-label": label
30
30
  }, items.map(item => createElement(GridItem, {
31
31
  key: item.name,
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/grid.js"],"names":["__unstableComposite","Composite","__unstableUseCompositeState","useCompositeState","GridItem","Grid","categoryId","label","icon","items","composite","orientation","length","map","item","name"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,mBAAmB,IAAIC,SADxB,EAECC,2BAA2B,IAAIC,iBAFhC,QAGO,uBAHP;AAKA;AACA;AACA;;AACA,OAAOC,QAAP,MAAqB,aAArB;AAEA,eAAe,SAASC,IAAT,CAAe;AAAEC,EAAAA,UAAF;AAAcC,EAAAA,KAAd;AAAqBC,EAAAA,IAArB;AAA2BC,EAAAA;AAA3B,CAAf,EAAoD;AAClE,QAAMC,SAAS,GAAGP,iBAAiB,CAAE;AAAEQ,IAAAA,WAAW,EAAE;AAAf,GAAF,CAAnC;;AAEA,MAAK,CAAEF,KAAK,EAAEG,MAAd,EAAuB;AACtB,WAAO,IAAP;AACA;;AAED,SACC,cAAC,SAAD,OACMF,SADN;AAEC,IAAA,IAAI,EAAC,SAFN;AAGC,IAAA,SAAS,EAAC,0BAHX;AAIC,kBAAaH;AAJd,KAMGE,KAAK,CAACI,GAAN,CAAaC,IAAF,IACZ,cAAC,QAAD;AACC,IAAA,GAAG,EAAGA,IAAI,CAACC,IADZ;AAEC,IAAA,IAAI,EAAGP,IAFR;AAGC,IAAA,IAAI,EAAGM,IAHR;AAIC,IAAA,UAAU,EAAGR,UAJd;AAKC,IAAA,SAAS,EAAGI;AALb,IADC,CANH,CADD;AAkBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport GridItem from './grid-item';\n\nexport default function Grid( { categoryId, label, icon, items } ) {\n\tconst composite = useCompositeState( { orientation: 'vertical' } );\n\n\tif ( ! items?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Composite\n\t\t\t{ ...composite }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"edit-site-patterns__grid\"\n\t\t\taria-label={ label }\n\t\t>\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\ticon={ icon }\n\t\t\t\t\titem={ item }\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\tcomposite={ composite }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n"]}
@@ -13,27 +13,27 @@ import { getQueryArgs } from '@wordpress/url';
13
13
  import { DEFAULT_CATEGORY, DEFAULT_TYPE } from './utils';
14
14
  import Page from '../page';
15
15
  import PatternsList from './patterns-list';
16
- import useLibrarySettings from './use-library-settings';
16
+ import usePatternSettings from './use-pattern-settings';
17
17
  import { unlock } from '../../lock-unlock';
18
18
  const {
19
19
  ExperimentalBlockEditorProvider
20
20
  } = unlock(blockEditorPrivateApis);
21
- export default function PageLibrary() {
21
+ export default function PagePatterns() {
22
22
  const {
23
23
  categoryType,
24
24
  categoryId
25
25
  } = getQueryArgs(window.location.href);
26
26
  const type = categoryType || DEFAULT_TYPE;
27
27
  const category = categoryId || DEFAULT_CATEGORY;
28
- const settings = useLibrarySettings(); // Wrap everything in a block editor provider.
28
+ const settings = usePatternSettings(); // Wrap everything in a block editor provider.
29
29
  // This ensures 'styles' that are needed for the previews are synced
30
30
  // from the site editor store to the block editor store.
31
31
 
32
32
  return createElement(ExperimentalBlockEditorProvider, {
33
33
  settings: settings
34
34
  }, createElement(Page, {
35
- className: "edit-site-library",
36
- title: __('Library content'),
35
+ className: "edit-site-patterns",
36
+ title: __('Patterns content'),
37
37
  hideTitleFromUI: true
38
38
  }, createElement(PatternsList, {
39
39
  type: type,
@@ -0,0 +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"]}
@@ -6,7 +6,7 @@ import { createElement } from "@wordpress/element";
6
6
  import { __ } from '@wordpress/i18n';
7
7
  export default function NoPatterns() {
8
8
  return createElement("div", {
9
- className: "edit-site-library__no-results"
9
+ className: "edit-site-patterns__no-results"
10
10
  }, __('No patterns found.'));
11
11
  }
12
12
  //# sourceMappingURL=no-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/no-patterns.js"],"names":["__","NoPatterns"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AAEA,eAAe,SAASC,UAAT,GAAsB;AACpC,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGD,EAAE,CAAE,oBAAF,CADL,CADD;AAKA","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"]}
@@ -42,25 +42,25 @@ export default function PatternsList({
42
42
  icon: isRTL() ? chevronRight : chevronLeft,
43
43
  label: __('Back'),
44
44
  onClick: () => {
45
- // Go back in history if we came from the library page.
45
+ // Go back in history if we came from the Patterns page.
46
46
  // Otherwise push a stack onto the history.
47
- if (location.state?.backPath === '/library') {
47
+ if (location.state?.backPath === '/patterns') {
48
48
  history.back();
49
49
  } else {
50
50
  history.push({
51
- path: '/library'
51
+ path: '/patterns'
52
52
  });
53
53
  }
54
54
  }
55
55
  }), createElement(FlexBlock, null, createElement(SearchControl, {
56
- className: "edit-site-library__search",
56
+ className: "edit-site-patterns__search",
57
57
  onChange: value => setFilterValue(value),
58
58
  placeholder: __('Search patterns'),
59
59
  label: __('Search patterns'),
60
60
  value: filterValue,
61
61
  __nextHasNoMarginBottom: true
62
62
  }))), isResolving && __('Loading'), !isResolving && !!syncedPatterns.length && createElement(Fragment, null, createElement(VStack, {
63
- className: "edit-site-library__section-header"
63
+ className: "edit-site-patterns__section-header"
64
64
  }, createElement(Heading, {
65
65
  level: 4
66
66
  }, __('Synced')), createElement(Text, {
@@ -72,7 +72,7 @@ export default function PatternsList({
72
72
  label: __('Synced patterns'),
73
73
  items: syncedPatterns
74
74
  })), !isResolving && !!unsyncedPatterns.length && createElement(Fragment, null, createElement(VStack, {
75
- className: "edit-site-library__section-header"
75
+ className: "edit-site-patterns__section-header"
76
76
  }, createElement(Heading, {
77
77
  level: 4
78
78
  }, __('Standard')), createElement(Text, {
@@ -0,0 +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 your 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 patterns' ) }\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 your 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"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/search-items.js"],"names":["removeAccents","noCase","defaultGetName","item","name","defaultGetTitle","title","defaultGetDescription","description","defaultGetKeywords","keywords","defaultHasCategory","extractWords","input","splitRegexp","stripRegexp","split","filter","Boolean","normalizeSearchInput","replace","toLowerCase","getNormalizedSearchTerms","removeMatchingTerms","unmatchedTerms","unprocessedTerms","term","some","unprocessedTerm","includes","searchItems","items","searchInput","config","normalizedSearchTerms","onlyFilterByCategory","length","searchRankConfig","threshold","rankedItems","map","getItemSearchRank","rank","sort","rank1","rank2","searchTerm","categoryId","getName","getTitle","getDescription","getKeywords","hasCategory","normalizedSearchInput","normalizedTitle","startsWith","terms","join"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\nimport { noCase } from 'change-case';\n\n// Default search helpers.\nconst defaultGetName = ( item ) => item.name || '';\nconst defaultGetTitle = ( item ) => item.title;\nconst defaultGetDescription = ( item ) => item.description || '';\nconst defaultGetKeywords = ( item ) => item.keywords || [];\nconst defaultHasCategory = () => false;\n\n/**\n * Extracts words from an input string.\n *\n * @param {string} input The input string.\n *\n * @return {Array} Words, extracted from the input string.\n */\nfunction extractWords( input = '' ) {\n\treturn noCase( input, {\n\t\tsplitRegexp: [\n\t\t\t/([\\p{Ll}\\p{Lo}\\p{N}])([\\p{Lu}\\p{Lt}])/gu, // One lowercase or digit, followed by one uppercase.\n\t\t\t/([\\p{Lu}\\p{Lt}])([\\p{Lu}\\p{Lt}][\\p{Ll}\\p{Lo}])/gu, // One uppercase followed by one uppercase and one lowercase.\n\t\t],\n\t\tstripRegexp: /(\\p{C}|\\p{P}|\\p{S})+/giu, // Anything that's not a punctuation, symbol or control/format character.\n\t} )\n\t\t.split( ' ' )\n\t\t.filter( Boolean );\n}\n\n/**\n * Sanitizes the search input string.\n *\n * @param {string} input The search input to normalize.\n *\n * @return {string} The normalized search input.\n */\nfunction normalizeSearchInput( input = '' ) {\n\t// Disregard diacritics.\n\t// Input: \"média\"\n\tinput = removeAccents( input );\n\n\t// Accommodate leading slash, matching autocomplete expectations.\n\t// Input: \"/media\"\n\tinput = input.replace( /^\\//, '' );\n\n\t// Lowercase.\n\t// Input: \"MEDIA\"\n\tinput = input.toLowerCase();\n\n\treturn input;\n}\n\n/**\n * Converts the search term into a list of normalized terms.\n *\n * @param {string} input The search term to normalize.\n *\n * @return {string[]} The normalized list of search terms.\n */\nexport const getNormalizedSearchTerms = ( input = '' ) => {\n\treturn extractWords( normalizeSearchInput( input ) );\n};\n\nconst removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {\n\treturn unmatchedTerms.filter(\n\t\t( term ) =>\n\t\t\t! getNormalizedSearchTerms( unprocessedTerms ).some(\n\t\t\t\t( unprocessedTerm ) => unprocessedTerm.includes( term )\n\t\t\t)\n\t);\n};\n\n/**\n * Filters an item list given a search term.\n *\n * @param {Array} items Item list\n * @param {string} searchInput Search input.\n * @param {Object} config Search Config.\n *\n * @return {Array} Filtered item list.\n */\nexport const searchItems = ( items = [], searchInput = '', config = {} ) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\tconst onlyFilterByCategory = ! normalizedSearchTerms.length;\n\tconst searchRankConfig = { ...config, onlyFilterByCategory };\n\n\t// If we aren't filtering on search terms, matching on category is satisfactory.\n\t// If we are, then we need more than a category match.\n\tconst threshold = onlyFilterByCategory ? 0 : 1;\n\n\tconst rankedItems = items\n\t\t.map( ( item ) => {\n\t\t\treturn [\n\t\t\t\titem,\n\t\t\t\tgetItemSearchRank( item, searchInput, searchRankConfig ),\n\t\t\t];\n\t\t} )\n\t\t.filter( ( [ , rank ] ) => rank > threshold );\n\n\t// If we didn't have terms to search on, there's no point sorting.\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn rankedItems.map( ( [ item ] ) => item );\n\t}\n\n\trankedItems.sort( ( [ , rank1 ], [ , rank2 ] ) => rank2 - rank1 );\n\treturn rankedItems.map( ( [ item ] ) => item );\n};\n\n/**\n * Get the search rank for a given item and a specific search term.\n * The better the match, the higher the rank.\n * If the rank equals 0, it should be excluded from the results.\n *\n * @param {Object} item Item to filter.\n * @param {string} searchTerm Search term.\n * @param {Object} config Search Config.\n *\n * @return {number} Search Rank.\n */\nfunction getItemSearchRank( item, searchTerm, config ) {\n\tconst {\n\t\tcategoryId,\n\t\tgetName = defaultGetName,\n\t\tgetTitle = defaultGetTitle,\n\t\tgetDescription = defaultGetDescription,\n\t\tgetKeywords = defaultGetKeywords,\n\t\thasCategory = defaultHasCategory,\n\t\tonlyFilterByCategory,\n\t} = config;\n\n\tlet rank = hasCategory( item, categoryId ) ? 1 : 0;\n\n\t// If an item doesn't belong to the current category or we don't have\n\t// search terms to filter by, return the initial rank value.\n\tif ( ! rank || onlyFilterByCategory ) {\n\t\treturn rank;\n\t}\n\n\tconst name = getName( item );\n\tconst title = getTitle( item );\n\tconst description = getDescription( item );\n\tconst keywords = getKeywords( item );\n\n\tconst normalizedSearchInput = normalizeSearchInput( searchTerm );\n\tconst normalizedTitle = normalizeSearchInput( title );\n\n\t// Prefers exact matches\n\t// Then prefers if the beginning of the title matches the search term\n\t// name, keywords, description matches come later.\n\tif ( normalizedSearchInput === normalizedTitle ) {\n\t\trank += 30;\n\t} else if ( normalizedTitle.startsWith( normalizedSearchInput ) ) {\n\t\trank += 20;\n\t} else {\n\t\tconst terms = [ name, title, description, ...keywords ].join( ' ' );\n\t\tconst normalizedSearchTerms = extractWords( normalizedSearchInput );\n\t\tconst unmatchedTerms = removeMatchingTerms(\n\t\t\tnormalizedSearchTerms,\n\t\t\tterms\n\t\t);\n\n\t\tif ( unmatchedTerms.length === 0 ) {\n\t\t\trank += 10;\n\t\t}\n\t}\n\n\treturn rank;\n}\n"]}
@@ -11,7 +11,7 @@ import { useMemo } from '@wordpress/element';
11
11
  import { unlock } from '../../lock-unlock';
12
12
  import { store as editSiteStore } from '../../store';
13
13
  import { filterOutDuplicatesByName } from './utils';
14
- export default function useLibrarySettings() {
14
+ export default function usePatternSettings() {
15
15
  var _storedSettings$__exp;
16
16
 
17
17
  const storedSettings = useSelect(select => {
@@ -37,4 +37,4 @@ export default function useLibrarySettings() {
37
37
  }, [storedSettings, blockPatterns]);
38
38
  return settings;
39
39
  }
40
- //# sourceMappingURL=use-library-settings.js.map
40
+ //# sourceMappingURL=use-pattern-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/use-pattern-settings.js"],"names":["store","coreStore","useSelect","useMemo","unlock","editSiteStore","filterOutDuplicatesByName","usePatternSettings","storedSettings","select","getSettings","settingsBlockPatterns","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","restBlockPatterns","getBlockPatterns","blockPatterns","filter","settings","restStoredSettings","__unstableIsPreviewMode"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,SAASC,MAAT,QAAuB,mBAAvB;AACA,SAASJ,KAAK,IAAIK,aAAlB,QAAuC,aAAvC;AACA,SAASC,yBAAT,QAA0C,SAA1C;AAEA,eAAe,SAASC,kBAAT,GAA8B;AAAA;;AAC5C,QAAMC,cAAc,GAAGN,SAAS,CAAIO,MAAF,IAAc;AAC/C,UAAM;AAAEC,MAAAA;AAAF,QAAkBN,MAAM,CAAEK,MAAM,CAAEJ,aAAF,CAAR,CAA9B;AACA,WAAOK,WAAW,EAAlB;AACA,GAH+B,EAG7B,EAH6B,CAAhC;AAKA,QAAMC,qBAAqB,4BAC1BH,cAAc,CAACI,qCADW,yEAC8B;AACxDJ,EAAAA,cAAc,CAACK,2BAFhB,CAN4C,CAQC;;AAE7C,QAAMC,iBAAiB,GAAGZ,SAAS,CAChCO,MAAF,IAAcA,MAAM,CAAER,SAAF,CAAN,CAAoBc,gBAApB,EADoB,EAElC,EAFkC,CAAnC;AAKA,QAAMC,aAAa,GAAGb,OAAO,CAC5B,MACC,CACC,IAAKQ,qBAAqB,IAAI,EAA9B,CADD,EAEC,IAAKG,iBAAiB,IAAI,EAA1B,CAFD,EAGEG,MAHF,CAGUX,yBAHV,CAF2B,EAM5B,CAAEK,qBAAF,EAAyBG,iBAAzB,CAN4B,CAA7B;AASA,QAAMI,QAAQ,GAAGf,OAAO,CAAE,MAAM;AAC/B,UAAM;AAAES,MAAAA,qCAAF;AAAyC,SAAGO;AAA5C,QACLX,cADD;AAGA,WAAO,EACN,GAAGW,kBADG;AAENN,MAAAA,2BAA2B,EAAEG,aAFvB;AAGNI,MAAAA,uBAAuB,EAAE;AAHnB,KAAP;AAKA,GATuB,EASrB,CAAEZ,cAAF,EAAkBQ,aAAlB,CATqB,CAAxB;AAWA,SAAOE,QAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport { filterOutDuplicatesByName } from './utils';\n\nexport default function usePatternSettings() {\n\tconst storedSettings = useSelect( ( select ) => {\n\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\treturn getSettings();\n\t}, [] );\n\n\tconst settingsBlockPatterns =\n\t\tstoredSettings.__experimentalAdditionalBlockPatterns ?? // WP 6.0\n\t\tstoredSettings.__experimentalBlockPatterns; // WP 5.9\n\n\tconst restBlockPatterns = useSelect(\n\t\t( select ) => select( coreStore ).getBlockPatterns(),\n\t\t[]\n\t);\n\n\tconst blockPatterns = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t...( settingsBlockPatterns || [] ),\n\t\t\t\t...( restBlockPatterns || [] ),\n\t\t\t].filter( filterOutDuplicatesByName ),\n\t\t[ settingsBlockPatterns, restBlockPatterns ]\n\t);\n\n\tconst settings = useMemo( () => {\n\t\tconst { __experimentalAdditionalBlockPatterns, ...restStoredSettings } =\n\t\t\tstoredSettings;\n\n\t\treturn {\n\t\t\t...restStoredSettings,\n\t\t\t__experimentalBlockPatterns: blockPatterns,\n\t\t\t__unstableIsPreviewMode: true,\n\t\t};\n\t}, [ storedSettings, blockPatterns ] );\n\n\treturn settings;\n}\n"]}
@@ -28,6 +28,16 @@ const templatePartToPattern = templatePart => ({
28
28
  templatePart
29
29
  });
30
30
 
31
+ const templatePartCategories = ['header', 'footer', 'sidebar'];
32
+
33
+ const templatePartHasCategory = (item, category) => {
34
+ if (category === 'uncategorized') {
35
+ return !templatePartCategories.includes(item.templatePart.area);
36
+ }
37
+
38
+ return item.templatePart.area === category;
39
+ };
40
+
31
41
  const useTemplatePartsAsPatterns = (categoryId, postType = TEMPLATE_PARTS, filterValue = '') => {
32
42
  const {
33
43
  templateParts,
@@ -61,7 +71,7 @@ const useTemplatePartsAsPatterns = (categoryId, postType = TEMPLATE_PARTS, filte
61
71
 
62
72
  return searchItems(templateParts, filterValue, {
63
73
  categoryId,
64
- hasCategory: (item, area) => item.templatePart.area === area
74
+ hasCategory: templatePartHasCategory
65
75
  });
66
76
  }, [templateParts, filterValue, categoryId]);
67
77
  return {
@@ -104,7 +114,7 @@ const reusableBlockToPattern = reusableBlock => ({
104
114
  categories: reusableBlock.wp_pattern,
105
115
  id: reusableBlock.id,
106
116
  name: reusableBlock.slug,
107
- syncStatus: reusableBlock.meta?.sync_status,
117
+ syncStatus: reusableBlock.meta?.sync_status || SYNC_TYPES.full,
108
118
  title: reusableBlock.title.raw,
109
119
  type: reusableBlock.type,
110
120
  reusableBlock
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/use-patterns.js"],"names":["parse","useSelect","store","coreStore","useMemo","CORE_PATTERN_SOURCES","PATTERNS","SYNC_TYPES","TEMPLATE_PARTS","USER_PATTERNS","USER_PATTERN_CATEGORY","filterOutDuplicatesByName","unlock","searchItems","editSiteStore","EMPTY_PATTERN_LIST","createTemplatePartId","theme","slug","templatePartToPattern","templatePart","blocks","content","raw","categories","area","description","keywords","name","title","rendered","type","templatePartCategories","templatePartHasCategory","item","category","includes","useTemplatePartsAsPatterns","categoryId","postType","filterValue","templateParts","isResolving","select","getEntityRecords","_isResolving","query","per_page","rawTemplateParts","partsAsPatterns","map","filteredTemplateParts","hasCategory","useThemePatterns","blockPatterns","getSettings","settings","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","restBlockPatterns","getBlockPatterns","patterns","filter","pattern","source","filteredPatterns","currentCategory","reusableBlockToPattern","reusableBlock","wp_pattern","id","syncStatus","meta","sync_status","full","useUserPatterns","categoryType","unfilteredPatterns","records","record","length","syncedPatterns","unsyncedPatterns","forEach","push","usePatterns"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tCORE_PATTERN_SOURCES,\n\tPATTERNS,\n\tSYNC_TYPES,\n\tTEMPLATE_PARTS,\n\tUSER_PATTERNS,\n\tUSER_PATTERN_CATEGORY,\n\tfilterOutDuplicatesByName,\n} from './utils';\nimport { unlock } from '../../lock-unlock';\nimport { searchItems } from './search-items';\nimport { store as editSiteStore } from '../../store';\n\nconst EMPTY_PATTERN_LIST = [];\n\nconst createTemplatePartId = ( theme, slug ) =>\n\ttheme && slug ? theme + '//' + slug : null;\n\nconst templatePartToPattern = ( templatePart ) => ( {\n\tblocks: parse( templatePart.content.raw ),\n\tcategories: [ templatePart.area ],\n\tdescription: templatePart.description || '',\n\tkeywords: templatePart.keywords || [],\n\tname: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\ttitle: templatePart.title.rendered,\n\ttype: templatePart.type,\n\ttemplatePart,\n} );\n\nconst templatePartCategories = [ 'header', 'footer', 'sidebar' ];\nconst templatePartHasCategory = ( item, category ) => {\n\tif ( category === 'uncategorized' ) {\n\t\treturn ! templatePartCategories.includes( item.templatePart.area );\n\t}\n\n\treturn item.templatePart.area === category;\n};\n\nconst useTemplatePartsAsPatterns = (\n\tcategoryId,\n\tpostType = TEMPLATE_PARTS,\n\tfilterValue = ''\n) => {\n\tconst { templateParts, isResolving } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( postType !== TEMPLATE_PARTS ) {\n\t\t\t\treturn {\n\t\t\t\t\ttemplateParts: EMPTY_PATTERN_LIST,\n\t\t\t\t\tisResolving: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst { getEntityRecords, isResolving: _isResolving } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst query = { per_page: -1 };\n\t\t\tconst rawTemplateParts = getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tquery\n\t\t\t);\n\t\t\tconst partsAsPatterns = rawTemplateParts?.map( ( templatePart ) =>\n\t\t\t\ttemplatePartToPattern( templatePart )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\ttemplateParts: partsAsPatterns,\n\t\t\t\tisResolving: _isResolving( 'getEntityRecords', [\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template_part',\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ postType ]\n\t);\n\n\tconst filteredTemplateParts = useMemo( () => {\n\t\tif ( ! templateParts ) {\n\t\t\treturn EMPTY_PATTERN_LIST;\n\t\t}\n\n\t\treturn searchItems( templateParts, filterValue, {\n\t\t\tcategoryId,\n\t\t\thasCategory: templatePartHasCategory,\n\t\t} );\n\t}, [ templateParts, filterValue, categoryId ] );\n\n\treturn { templateParts: filteredTemplateParts, isResolving };\n};\n\nconst useThemePatterns = (\n\tcategoryId,\n\tpostType = PATTERNS,\n\tfilterValue = ''\n) => {\n\tconst blockPatterns = useSelect( ( select ) => {\n\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\tconst settings = getSettings();\n\t\treturn (\n\t\t\tsettings.__experimentalAdditionalBlockPatterns ??\n\t\t\tsettings.__experimentalBlockPatterns\n\t\t);\n\t} );\n\n\tconst restBlockPatterns = useSelect( ( select ) =>\n\t\tselect( coreStore ).getBlockPatterns()\n\t);\n\n\tconst patterns = useMemo(\n\t\t() =>\n\t\t\t[ ...( blockPatterns || [] ), ...( restBlockPatterns || [] ) ]\n\t\t\t\t.filter(\n\t\t\t\t\t( pattern ) =>\n\t\t\t\t\t\t! CORE_PATTERN_SOURCES.includes( pattern.source )\n\t\t\t\t)\n\t\t\t\t.filter( filterOutDuplicatesByName )\n\t\t\t\t.map( ( pattern ) => ( {\n\t\t\t\t\t...pattern,\n\t\t\t\t\tkeywords: pattern.keywords || [],\n\t\t\t\t\ttype: 'pattern',\n\t\t\t\t\tblocks: parse( pattern.content ),\n\t\t\t\t} ) ),\n\t\t[ blockPatterns, restBlockPatterns ]\n\t);\n\n\tconst filteredPatterns = useMemo( () => {\n\t\tif ( postType !== PATTERNS ) {\n\t\t\treturn EMPTY_PATTERN_LIST;\n\t\t}\n\n\t\treturn searchItems( patterns, filterValue, {\n\t\t\tcategoryId,\n\t\t\thasCategory: ( item, currentCategory ) =>\n\t\t\t\titem.categories?.includes( currentCategory ),\n\t\t} );\n\t}, [ patterns, filterValue, categoryId, postType ] );\n\n\treturn filteredPatterns;\n};\n\nconst reusableBlockToPattern = ( reusableBlock ) => ( {\n\tblocks: parse( reusableBlock.content.raw ),\n\tcategories: reusableBlock.wp_pattern,\n\tid: reusableBlock.id,\n\tname: reusableBlock.slug,\n\tsyncStatus: reusableBlock.meta?.sync_status || SYNC_TYPES.full,\n\ttitle: reusableBlock.title.raw,\n\ttype: reusableBlock.type,\n\treusableBlock,\n} );\n\nconst useUserPatterns = (\n\tcategoryId,\n\tcategoryType = PATTERNS,\n\tfilterValue = ''\n) => {\n\tconst postType = categoryType === PATTERNS ? USER_PATTERNS : categoryType;\n\tconst unfilteredPatterns = useSelect(\n\t\t( select ) => {\n\t\t\tif (\n\t\t\t\tpostType !== USER_PATTERNS ||\n\t\t\t\tcategoryId !== USER_PATTERN_CATEGORY\n\t\t\t) {\n\t\t\t\treturn EMPTY_PATTERN_LIST;\n\t\t\t}\n\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\tconst records = getEntityRecords( 'postType', postType, {\n\t\t\t\tper_page: -1,\n\t\t\t} );\n\n\t\t\tif ( ! records ) {\n\t\t\t\treturn EMPTY_PATTERN_LIST;\n\t\t\t}\n\n\t\t\treturn records.map( ( record ) =>\n\t\t\t\treusableBlockToPattern( record )\n\t\t\t);\n\t\t},\n\t\t[ postType, categoryId ]\n\t);\n\n\tconst filteredPatterns = useMemo( () => {\n\t\tif ( ! unfilteredPatterns.length ) {\n\t\t\treturn EMPTY_PATTERN_LIST;\n\t\t}\n\n\t\treturn searchItems( unfilteredPatterns, filterValue, {\n\t\t\t// We exit user pattern retrieval early if we aren't in the\n\t\t\t// catch-all category for user created patterns, so it has\n\t\t\t// to be in the category.\n\t\t\thasCategory: () => true,\n\t\t} );\n\t}, [ unfilteredPatterns, filterValue ] );\n\n\tconst patterns = { syncedPatterns: [], unsyncedPatterns: [] };\n\n\tfilteredPatterns.forEach( ( pattern ) => {\n\t\tif ( pattern.syncStatus === SYNC_TYPES.full ) {\n\t\t\tpatterns.syncedPatterns.push( pattern );\n\t\t} else {\n\t\t\tpatterns.unsyncedPatterns.push( pattern );\n\t\t}\n\t} );\n\n\treturn patterns;\n};\n\nexport const usePatterns = ( categoryType, categoryId, filterValue ) => {\n\tconst blockPatterns = useThemePatterns(\n\t\tcategoryId,\n\t\tcategoryType,\n\t\tfilterValue\n\t);\n\n\tconst { syncedPatterns = [], unsyncedPatterns = [] } = useUserPatterns(\n\t\tcategoryId,\n\t\tcategoryType,\n\t\tfilterValue\n\t);\n\n\tconst { templateParts, isResolving } = useTemplatePartsAsPatterns(\n\t\tcategoryId,\n\t\tcategoryType,\n\t\tfilterValue\n\t);\n\n\tconst patterns = {\n\t\tsyncedPatterns: [ ...templateParts, ...syncedPatterns ],\n\t\tunsyncedPatterns: [ ...blockPatterns, ...unsyncedPatterns ],\n\t};\n\n\treturn [ patterns, isResolving ];\n};\n\nexport default usePatterns;\n"]}
@@ -1,9 +1,9 @@
1
- export const DEFAULT_CATEGORY = 'header';
2
- export const DEFAULT_TYPE = 'wp_template_part';
1
+ export const DEFAULT_CATEGORY = 'my-patterns';
2
+ export const DEFAULT_TYPE = 'wp_block';
3
3
  export const PATTERNS = 'pattern';
4
4
  export const TEMPLATE_PARTS = 'wp_template_part';
5
5
  export const USER_PATTERNS = 'wp_block';
6
- export const USER_PATTERN_CATEGORY = 'custom-patterns';
6
+ export const USER_PATTERN_CATEGORY = 'my-patterns';
7
7
  export const CORE_PATTERN_SOURCES = ['core', 'pattern-directory/core', 'pattern-directory/featured', 'pattern-directory/theme'];
8
8
  export const SYNC_TYPES = {
9
9
  full: 'fully',
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/utils.js"],"names":["DEFAULT_CATEGORY","DEFAULT_TYPE","PATTERNS","TEMPLATE_PARTS","USER_PATTERNS","USER_PATTERN_CATEGORY","CORE_PATTERN_SOURCES","SYNC_TYPES","full","unsynced","filterOutDuplicatesByName","currentItem","index","items","findIndex","item","name"],"mappings":"AAAA,OAAO,MAAMA,gBAAgB,GAAG,aAAzB;AACP,OAAO,MAAMC,YAAY,GAAG,UAArB;AACP,OAAO,MAAMC,QAAQ,GAAG,SAAjB;AACP,OAAO,MAAMC,cAAc,GAAG,kBAAvB;AACP,OAAO,MAAMC,aAAa,GAAG,UAAtB;AACP,OAAO,MAAMC,qBAAqB,GAAG,aAA9B;AAEP,OAAO,MAAMC,oBAAoB,GAAG,CACnC,MADmC,EAEnC,wBAFmC,EAGnC,4BAHmC,EAInC,yBAJmC,CAA7B;AAOP,OAAO,MAAMC,UAAU,GAAG;AACzBC,EAAAA,IAAI,EAAE,OADmB;AAEzBC,EAAAA,QAAQ,EAAE;AAFe,CAAnB;AAKP,OAAO,MAAMC,yBAAyB,GAAG,CAAEC,WAAF,EAAeC,KAAf,EAAsBC,KAAtB,KACxCD,KAAK,KAAKC,KAAK,CAACC,SAAN,CAAmBC,IAAF,IAAYJ,WAAW,CAACK,IAAZ,KAAqBD,IAAI,CAACC,IAAvD,CADJ","sourcesContent":["export const DEFAULT_CATEGORY = 'my-patterns';\nexport const DEFAULT_TYPE = 'wp_block';\nexport const PATTERNS = 'pattern';\nexport const TEMPLATE_PARTS = 'wp_template_part';\nexport const USER_PATTERNS = 'wp_block';\nexport const USER_PATTERN_CATEGORY = 'my-patterns';\n\nexport const CORE_PATTERN_SOURCES = [\n\t'core',\n\t'pattern-directory/core',\n\t'pattern-directory/featured',\n\t'pattern-directory/theme',\n];\n\nexport const SYNC_TYPES = {\n\tfull: 'fully',\n\tunsynced: 'unsynced',\n};\n\nexport const filterOutDuplicatesByName = ( currentItem, index, items ) =>\n\tindex === items.findIndex( ( item ) => currentItem.name === item.name );\n"]}
@@ -0,0 +1,81 @@
1
+ import { createElement } from "@wordpress/element";
2
+
3
+ /**
4
+ * WordPress dependencies
5
+ */
6
+ import { VisuallyHidden, __experimentalHeading as Heading, __experimentalVStack as VStack } from '@wordpress/components';
7
+ import { __ } from '@wordpress/i18n';
8
+ import { useSelect } from '@wordpress/data';
9
+ import { store as coreStore, useEntityRecords } from '@wordpress/core-data';
10
+ import { decodeEntities } from '@wordpress/html-entities';
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+
15
+ import Page from '../page';
16
+ import Table from '../table';
17
+ import Link from '../routes/link';
18
+ import AddedBy from '../list/added-by';
19
+ import TemplateActions from '../template-actions';
20
+ import AddNewTemplate from '../add-new-template';
21
+ import { store as editSiteStore } from '../../store';
22
+ export default function PageTemplateParts() {
23
+ const {
24
+ records: templateParts
25
+ } = useEntityRecords('postType', 'wp_template_part', {
26
+ per_page: -1
27
+ });
28
+ const {
29
+ canCreate
30
+ } = useSelect(select => {
31
+ const {
32
+ supportsTemplatePartsMode
33
+ } = select(editSiteStore).getSettings();
34
+ return {
35
+ postType: select(coreStore).getPostType('wp_template_part'),
36
+ canCreate: !supportsTemplatePartsMode
37
+ };
38
+ });
39
+ const columns = [{
40
+ header: __('Template Part'),
41
+ cell: templatePart => createElement(VStack, null, createElement(Heading, {
42
+ level: 5
43
+ }, createElement(Link, {
44
+ params: {
45
+ postId: templatePart.id,
46
+ postType: templatePart.type,
47
+ canvas: 'view'
48
+ },
49
+ state: {
50
+ backPath: '/wp_template_part/all'
51
+ }
52
+ }, decodeEntities(templatePart.title?.rendered || templatePart.slug)))),
53
+ maxWidth: 400
54
+ }, {
55
+ header: __('Added by'),
56
+ cell: templatePart => createElement(AddedBy, {
57
+ postType: templatePart.type,
58
+ postId: templatePart.id
59
+ })
60
+ }, {
61
+ header: createElement(VisuallyHidden, null, __('Actions')),
62
+ cell: templatePart => createElement(TemplateActions, {
63
+ postType: templatePart.type,
64
+ postId: templatePart.id
65
+ })
66
+ }];
67
+ return createElement(Page, {
68
+ title: __('Template Parts'),
69
+ actions: canCreate && createElement(AddNewTemplate, {
70
+ templateType: 'wp_template_part',
71
+ showIcon: false,
72
+ toggleProps: {
73
+ variant: 'primary'
74
+ }
75
+ })
76
+ }, templateParts && createElement(Table, {
77
+ data: templateParts,
78
+ columns: columns
79
+ }));
80
+ }
81
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/page-template-parts/index.js"],"names":["VisuallyHidden","__experimentalHeading","Heading","__experimentalVStack","VStack","__","useSelect","store","coreStore","useEntityRecords","decodeEntities","Page","Table","Link","AddedBy","TemplateActions","AddNewTemplate","editSiteStore","PageTemplateParts","records","templateParts","per_page","canCreate","select","supportsTemplatePartsMode","getSettings","postType","getPostType","columns","header","cell","templatePart","postId","id","type","canvas","backPath","title","rendered","slug","maxWidth","variant"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tVisuallyHidden,\n\t__experimentalHeading as Heading,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore, useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport Table from '../table';\nimport Link from '../routes/link';\nimport AddedBy from '../list/added-by';\nimport TemplateActions from '../template-actions';\nimport AddNewTemplate from '../add-new-template';\nimport { store as editSiteStore } from '../../store';\n\nexport default function PageTemplateParts() {\n\tconst { records: templateParts } = useEntityRecords(\n\t\t'postType',\n\t\t'wp_template_part',\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\n\tconst { canCreate } = useSelect( ( select ) => {\n\t\tconst { supportsTemplatePartsMode } =\n\t\t\tselect( editSiteStore ).getSettings();\n\t\treturn {\n\t\t\tpostType: select( coreStore ).getPostType( 'wp_template_part' ),\n\t\t\tcanCreate: ! supportsTemplatePartsMode,\n\t\t};\n\t} );\n\n\tconst columns = [\n\t\t{\n\t\t\theader: __( 'Template Part' ),\n\t\t\tcell: ( templatePart ) => (\n\t\t\t\t<VStack>\n\t\t\t\t\t<Heading level={ 5 }>\n\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\tparams={ {\n\t\t\t\t\t\t\t\tpostId: templatePart.id,\n\t\t\t\t\t\t\t\tpostType: templatePart.type,\n\t\t\t\t\t\t\t\tcanvas: 'view',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tstate={ { backPath: '/wp_template_part/all' } }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\ttemplatePart.title?.rendered ||\n\t\t\t\t\t\t\t\t\ttemplatePart.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t</Heading>\n\t\t\t\t</VStack>\n\t\t\t),\n\t\t\tmaxWidth: 400,\n\t\t},\n\t\t{\n\t\t\theader: __( 'Added by' ),\n\t\t\tcell: ( templatePart ) => (\n\t\t\t\t<AddedBy\n\t\t\t\t\tpostType={ templatePart.type }\n\t\t\t\t\tpostId={ templatePart.id }\n\t\t\t\t/>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\theader: <VisuallyHidden>{ __( 'Actions' ) }</VisuallyHidden>,\n\t\t\tcell: ( templatePart ) => (\n\t\t\t\t<TemplateActions\n\t\t\t\t\tpostType={ templatePart.type }\n\t\t\t\t\tpostId={ templatePart.id }\n\t\t\t\t/>\n\t\t\t),\n\t\t},\n\t];\n\n\treturn (\n\t\t<Page\n\t\t\ttitle={ __( 'Template Parts' ) }\n\t\t\tactions={\n\t\t\t\tcanCreate && (\n\t\t\t\t\t<AddNewTemplate\n\t\t\t\t\t\ttemplateType={ 'wp_template_part' }\n\t\t\t\t\t\tshowIcon={ false }\n\t\t\t\t\t\ttoggleProps={ { variant: 'primary' } }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t{ templateParts && (\n\t\t\t\t<Table data={ templateParts } columns={ columns } />\n\t\t\t) }\n\t\t</Page>\n\t);\n}\n"]}
@@ -11,9 +11,9 @@ import { privateApis as routerPrivateApis } from '@wordpress/router';
11
11
  */
12
12
 
13
13
  import SidebarNavigationScreenMain from '../sidebar-navigation-screen-main';
14
- import SidebarNavigationScreenLibrary from '../sidebar-navigation-screen-library';
15
14
  import SidebarNavigationScreenTemplates from '../sidebar-navigation-screen-templates';
16
15
  import SidebarNavigationScreenTemplate from '../sidebar-navigation-screen-template';
16
+ import SidebarNavigationScreenPatterns from '../sidebar-navigation-screen-patterns';
17
17
  import SidebarNavigationScreenPattern from '../sidebar-navigation-screen-pattern';
18
18
  import useSyncPathWithURL, { getPathFromURL } from '../sync-state-with-url/use-sync-path-with-url';
19
19
  import SidebarNavigationScreenNavigationMenus from '../sidebar-navigation-screen-navigation-menus';
@@ -45,12 +45,12 @@ function SidebarScreens() {
45
45
  }, createElement(SidebarNavigationScreenPage, null)), createElement(NavigatorScreen, {
46
46
  path: "/:postType(wp_template)"
47
47
  }, createElement(SidebarNavigationScreenTemplates, null)), createElement(NavigatorScreen, {
48
- path: "/library"
49
- }, createElement(SidebarNavigationScreenLibrary, null)), createElement(NavigatorScreen, {
48
+ path: "/patterns"
49
+ }, createElement(SidebarNavigationScreenPatterns, null)), createElement(NavigatorScreen, {
50
+ path: "/:postType(wp_template|wp_template_part)/all"
51
+ }, createElement(SidebarNavigationScreenTemplatesBrowse, null)), createElement(NavigatorScreen, {
50
52
  path: "/:postType(wp_template_part|wp_block)/:postId"
51
53
  }, createElement(SidebarNavigationScreenPattern, null)), createElement(NavigatorScreen, {
52
- path: "/:postType(wp_template)/all"
53
- }, createElement(SidebarNavigationScreenTemplatesBrowse, null)), createElement(NavigatorScreen, {
54
54
  path: "/:postType(wp_template)/:postId"
55
55
  }, createElement(SidebarNavigationScreenTemplate, null)));
56
56
  }