@wordpress/edit-site 5.25.1-next.79a6196f.0 → 5.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/actions/index.js +139 -36
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/editor-canvas-container/index.js +1 -1
  5. package/build/components/editor-canvas-container/index.js.map +1 -1
  6. package/build/components/global-styles/font-families.js +3 -2
  7. package/build/components/global-styles/font-families.js.map +1 -1
  8. package/build/components/global-styles/font-family-item.js +3 -4
  9. package/build/components/global-styles/font-family-item.js.map +1 -1
  10. package/build/components/global-styles/font-library-modal/context.js +80 -41
  11. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  12. package/build/components/global-styles/font-library-modal/font-collection.js +49 -22
  13. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  14. package/build/components/global-styles/font-library-modal/fonts-grid.js +4 -1
  15. package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
  16. package/build/components/global-styles/font-library-modal/index.js +4 -4
  17. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/installed-fonts.js +16 -8
  19. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/library-font-card.js +1 -1
  21. package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/library-font-variant.js +2 -2
  23. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  24. package/build/components/global-styles/font-library-modal/local-fonts.js +13 -4
  25. package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  26. package/build/components/global-styles/font-library-modal/resolvers.js +49 -20
  27. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  28. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js +17 -2
  29. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
  30. package/build/components/global-styles/font-library-modal/utils/index.js +103 -17
  31. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  32. package/build/components/global-styles/font-library-modal/utils/preview-styles.js +4 -3
  33. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  34. package/build/components/global-styles/screen-typography.js +4 -1
  35. package/build/components/global-styles/screen-typography.js.map +1 -1
  36. package/build/components/layout/hooks.js +6 -5
  37. package/build/components/layout/hooks.js.map +1 -1
  38. package/build/components/layout/index.js +19 -28
  39. package/build/components/layout/index.js.map +1 -1
  40. package/build/components/layout/router.js +135 -0
  41. package/build/components/layout/router.js.map +1 -0
  42. package/build/components/page-pages/index.js +92 -69
  43. package/build/components/page-pages/index.js.map +1 -1
  44. package/build/components/page-patterns/dataviews-pattern-actions.js +11 -6
  45. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  46. package/build/components/page-patterns/index.js +295 -15
  47. package/build/components/page-patterns/index.js.map +1 -1
  48. package/build/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +51 -23
  49. package/build/components/page-templates-template-parts/actions.js.map +1 -0
  50. package/build/components/page-templates-template-parts/add-new-template-part.js.map +1 -0
  51. package/build/components/page-templates-template-parts/index.js +395 -0
  52. package/build/components/page-templates-template-parts/index.js.map +1 -0
  53. package/build/components/preferences-modal/index.js +9 -134
  54. package/build/components/preferences-modal/index.js.map +1 -1
  55. package/build/components/revisions/index.js +1 -1
  56. package/build/components/revisions/index.js.map +1 -1
  57. package/build/components/save-button/index.js +4 -2
  58. package/build/components/save-button/index.js.map +1 -1
  59. package/build/components/save-panel/index.js +6 -5
  60. package/build/components/save-panel/index.js.map +1 -1
  61. package/build/components/sidebar/index.js +3 -1
  62. package/build/components/sidebar/index.js.map +1 -1
  63. package/build/components/sidebar-dataviews/dataview-item.js +3 -1
  64. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
  65. package/build/components/sidebar-dataviews/default-views.js +4 -2
  66. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  67. package/build/components/sidebar-dataviews/index.js +2 -2
  68. package/build/components/sidebar-dataviews/index.js.map +1 -1
  69. package/build/components/sidebar-navigation-screen/index.js +8 -7
  70. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  71. package/build/components/sidebar-navigation-screen-pages/index.js +2 -10
  72. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  73. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js +26 -3
  74. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -1
  75. package/build/components/sidebar-navigation-screen-templates-browse/content.js +76 -0
  76. package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -0
  77. package/build/components/sidebar-navigation-screen-templates-browse/index.js +9 -2
  78. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  79. package/build/components/site-hub/index.js +3 -1
  80. package/build/components/site-hub/index.js.map +1 -1
  81. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +47 -12
  82. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  83. package/build/components/sync-state-with-url/use-sync-path-with-url.js +25 -2
  84. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  85. package/build/hooks/commands/use-edit-mode-commands.js +33 -5
  86. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  87. package/build/hooks/push-changes-to-global-styles/index.js +13 -6
  88. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  89. package/build/hooks/template-part-edit.js +7 -6
  90. package/build/hooks/template-part-edit.js.map +1 -1
  91. package/build/index.js +1 -1
  92. package/build/index.js.map +1 -1
  93. package/build/store/actions.js +11 -29
  94. package/build/store/actions.js.map +1 -1
  95. package/build/store/private-actions.js +85 -1
  96. package/build/store/private-actions.js.map +1 -1
  97. package/build/store/selectors.js +2 -2
  98. package/build/store/selectors.js.map +1 -1
  99. package/build/utils/get-is-list-page.js +1 -1
  100. package/build/utils/get-is-list-page.js.map +1 -1
  101. package/build/utils/use-actual-current-theme.js +32 -0
  102. package/build/utils/use-actual-current-theme.js.map +1 -0
  103. package/build-module/components/actions/index.js +139 -36
  104. package/build-module/components/actions/index.js.map +1 -1
  105. package/build-module/components/editor-canvas-container/index.js +1 -1
  106. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  107. package/build-module/components/global-styles/font-families.js +3 -2
  108. package/build-module/components/global-styles/font-families.js.map +1 -1
  109. package/build-module/components/global-styles/font-family-item.js +4 -5
  110. package/build-module/components/global-styles/font-family-item.js.map +1 -1
  111. package/build-module/components/global-styles/font-library-modal/context.js +82 -42
  112. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  113. package/build-module/components/global-styles/font-library-modal/font-collection.js +49 -22
  114. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  115. package/build-module/components/global-styles/font-library-modal/fonts-grid.js +4 -1
  116. package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
  117. package/build-module/components/global-styles/font-library-modal/index.js +4 -4
  118. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  119. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +16 -8
  120. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  121. package/build-module/components/global-styles/font-library-modal/library-font-card.js +1 -1
  122. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  123. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +2 -2
  124. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  125. package/build-module/components/global-styles/font-library-modal/local-fonts.js +13 -4
  126. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  127. package/build-module/components/global-styles/font-library-modal/resolvers.js +45 -18
  128. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  129. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js +17 -2
  130. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
  131. package/build-module/components/global-styles/font-library-modal/utils/index.js +99 -16
  132. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  133. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +4 -3
  134. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  135. package/build-module/components/global-styles/screen-typography.js +4 -1
  136. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  137. package/build-module/components/layout/hooks.js +6 -5
  138. package/build-module/components/layout/hooks.js.map +1 -1
  139. package/build-module/components/layout/index.js +19 -28
  140. package/build-module/components/layout/index.js.map +1 -1
  141. package/build-module/components/layout/router.js +127 -0
  142. package/build-module/components/layout/router.js.map +1 -0
  143. package/build-module/components/page-pages/index.js +91 -70
  144. package/build-module/components/page-pages/index.js.map +1 -1
  145. package/build-module/components/page-patterns/dataviews-pattern-actions.js +11 -6
  146. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  147. package/build-module/components/page-patterns/index.js +296 -16
  148. package/build-module/components/page-patterns/index.js.map +1 -1
  149. package/build-module/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +52 -24
  150. package/build-module/components/page-templates-template-parts/actions.js.map +1 -0
  151. package/build-module/components/page-templates-template-parts/add-new-template-part.js.map +1 -0
  152. package/build-module/components/page-templates-template-parts/index.js +385 -0
  153. package/build-module/components/page-templates-template-parts/index.js.map +1 -0
  154. package/build-module/components/preferences-modal/index.js +12 -136
  155. package/build-module/components/preferences-modal/index.js.map +1 -1
  156. package/build-module/components/revisions/index.js +1 -1
  157. package/build-module/components/revisions/index.js.map +1 -1
  158. package/build-module/components/save-button/index.js +4 -2
  159. package/build-module/components/save-button/index.js.map +1 -1
  160. package/build-module/components/save-panel/index.js +7 -6
  161. package/build-module/components/save-panel/index.js.map +1 -1
  162. package/build-module/components/sidebar/index.js +3 -1
  163. package/build-module/components/sidebar/index.js.map +1 -1
  164. package/build-module/components/sidebar-dataviews/dataview-item.js +3 -1
  165. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  166. package/build-module/components/sidebar-dataviews/default-views.js +4 -2
  167. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  168. package/build-module/components/sidebar-dataviews/index.js +2 -2
  169. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  170. package/build-module/components/sidebar-navigation-screen/index.js +8 -7
  171. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  172. package/build-module/components/sidebar-navigation-screen-pages/index.js +2 -10
  173. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  174. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js +27 -4
  175. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -1
  176. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +68 -0
  177. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -0
  178. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +9 -2
  179. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  180. package/build-module/components/site-hub/index.js +3 -1
  181. package/build-module/components/site-hub/index.js.map +1 -1
  182. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +47 -11
  183. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  184. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +25 -2
  185. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  186. package/build-module/hooks/commands/use-edit-mode-commands.js +33 -5
  187. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  188. package/build-module/hooks/push-changes-to-global-styles/index.js +13 -6
  189. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  190. package/build-module/hooks/template-part-edit.js +7 -6
  191. package/build-module/hooks/template-part-edit.js.map +1 -1
  192. package/build-module/index.js +1 -1
  193. package/build-module/index.js.map +1 -1
  194. package/build-module/store/actions.js +13 -30
  195. package/build-module/store/actions.js.map +1 -1
  196. package/build-module/store/private-actions.js +83 -0
  197. package/build-module/store/private-actions.js.map +1 -1
  198. package/build-module/store/selectors.js +2 -2
  199. package/build-module/store/selectors.js.map +1 -1
  200. package/build-module/utils/get-is-list-page.js +1 -1
  201. package/build-module/utils/get-is-list-page.js.map +1 -1
  202. package/build-module/utils/use-actual-current-theme.js +24 -0
  203. package/build-module/utils/use-actual-current-theme.js.map +1 -0
  204. package/build-style/style-rtl.css +293 -188
  205. package/build-style/style.css +293 -188
  206. package/package.json +42 -42
  207. package/src/components/actions/index.js +236 -84
  208. package/src/components/editor-canvas-container/index.js +1 -1
  209. package/src/components/global-styles/font-families.js +14 -8
  210. package/src/components/global-styles/font-family-item.js +7 -4
  211. package/src/components/global-styles/font-library-modal/context.js +156 -50
  212. package/src/components/global-styles/font-library-modal/font-collection.js +56 -21
  213. package/src/components/global-styles/font-library-modal/fonts-grid.js +6 -2
  214. package/src/components/global-styles/font-library-modal/index.js +4 -4
  215. package/src/components/global-styles/font-library-modal/installed-fonts.js +18 -8
  216. package/src/components/global-styles/font-library-modal/library-font-card.js +2 -1
  217. package/src/components/global-styles/font-library-modal/library-font-variant.js +10 -9
  218. package/src/components/global-styles/font-library-modal/local-fonts.js +14 -4
  219. package/src/components/global-styles/font-library-modal/resolvers.js +50 -17
  220. package/src/components/global-styles/font-library-modal/style.scss +1 -0
  221. package/src/components/global-styles/font-library-modal/utils/filter-fonts.js +19 -2
  222. package/src/components/global-styles/font-library-modal/utils/index.js +136 -29
  223. package/src/components/global-styles/font-library-modal/utils/preview-styles.js +7 -3
  224. package/src/components/global-styles/font-library-modal/utils/test/filter-fonts.spec.js +40 -10
  225. package/src/components/global-styles/font-library-modal/utils/test/preview-styles.spec.js +5 -5
  226. package/src/components/global-styles/screen-typography.js +9 -3
  227. package/src/components/global-styles/style.scss +4 -0
  228. package/src/components/header-edit-mode/style.scss +15 -5
  229. package/src/components/layout/hooks.js +6 -5
  230. package/src/components/layout/index.js +80 -96
  231. package/src/components/layout/router.js +121 -0
  232. package/src/components/layout/style.scss +13 -16
  233. package/src/components/page/style.scss +1 -8
  234. package/src/components/page-pages/index.js +142 -148
  235. package/src/components/page-pages/style.scss +41 -2
  236. package/src/components/page-patterns/dataviews-pattern-actions.js +11 -6
  237. package/src/components/page-patterns/index.js +392 -14
  238. package/src/components/page-patterns/style.scss +36 -2
  239. package/src/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +90 -37
  240. package/src/components/{page-templates → page-templates-template-parts}/index.js +198 -169
  241. package/src/components/page-templates-template-parts/style.scss +44 -0
  242. package/src/components/preferences-modal/index.js +8 -211
  243. package/src/components/revisions/index.js +1 -1
  244. package/src/components/save-button/index.js +7 -4
  245. package/src/components/save-panel/index.js +13 -12
  246. package/src/components/sidebar/index.js +4 -5
  247. package/src/components/sidebar-dataviews/dataview-item.js +2 -1
  248. package/src/components/sidebar-dataviews/default-views.js +4 -2
  249. package/src/components/sidebar-dataviews/index.js +8 -6
  250. package/src/components/sidebar-navigation-item/style.scss +1 -1
  251. package/src/components/sidebar-navigation-screen/index.js +19 -10
  252. package/src/components/sidebar-navigation-screen-pages/index.js +2 -10
  253. package/src/components/sidebar-navigation-screen-pages-dataviews/index.js +32 -6
  254. package/src/components/sidebar-navigation-screen-templates-browse/content.js +73 -0
  255. package/src/components/sidebar-navigation-screen-templates-browse/index.js +10 -1
  256. package/src/components/site-hub/index.js +4 -1
  257. package/src/components/site-hub/style.scss +1 -12
  258. package/src/components/site-icon/style.scss +1 -1
  259. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +40 -10
  260. package/src/components/sync-state-with-url/use-sync-path-with-url.js +32 -0
  261. package/src/hooks/commands/use-edit-mode-commands.js +50 -3
  262. package/src/hooks/push-changes-to-global-styles/index.js +29 -23
  263. package/src/hooks/template-part-edit.js +12 -12
  264. package/src/index.js +1 -1
  265. package/src/store/actions.js +17 -51
  266. package/src/store/private-actions.js +133 -0
  267. package/src/store/selectors.js +2 -4
  268. package/src/style.scss +1 -1
  269. package/src/utils/get-is-list-page.js +3 -2
  270. package/src/utils/use-actual-current-theme.js +27 -0
  271. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -58
  272. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +0 -1
  273. package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -71
  274. package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +0 -1
  275. package/build/components/page-main/index.js +0 -44
  276. package/build/components/page-main/index.js.map +0 -1
  277. package/build/components/page-patterns/dataviews-patterns.js +0 -307
  278. package/build/components/page-patterns/dataviews-patterns.js.map +0 -1
  279. package/build/components/page-template-parts/add-new-template-part.js.map +0 -1
  280. package/build/components/page-template-parts/index.js +0 -81
  281. package/build/components/page-template-parts/index.js.map +0 -1
  282. package/build/components/page-templates/index.js +0 -352
  283. package/build/components/page-templates/index.js.map +0 -1
  284. package/build/components/page-templates/template-actions.js.map +0 -1
  285. package/build/components/post-preview/index.js +0 -29
  286. package/build/components/post-preview/index.js.map +0 -1
  287. package/build/components/preferences-modal/enable-feature.js +0 -36
  288. package/build/components/preferences-modal/enable-feature.js.map +0 -1
  289. package/build/components/preferences-modal/enable-panel-option.js +0 -33
  290. package/build/components/preferences-modal/enable-panel-option.js.map +0 -1
  291. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -52
  292. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +0 -1
  293. package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -63
  294. package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +0 -1
  295. package/build-module/components/page-main/index.js +0 -36
  296. package/build-module/components/page-main/index.js.map +0 -1
  297. package/build-module/components/page-patterns/dataviews-patterns.js +0 -299
  298. package/build-module/components/page-patterns/dataviews-patterns.js.map +0 -1
  299. package/build-module/components/page-template-parts/add-new-template-part.js.map +0 -1
  300. package/build-module/components/page-template-parts/index.js +0 -73
  301. package/build-module/components/page-template-parts/index.js.map +0 -1
  302. package/build-module/components/page-templates/index.js +0 -344
  303. package/build-module/components/page-templates/index.js.map +0 -1
  304. package/build-module/components/page-templates/template-actions.js.map +0 -1
  305. package/build-module/components/post-preview/index.js +0 -21
  306. package/build-module/components/post-preview/index.js.map +0 -1
  307. package/build-module/components/preferences-modal/enable-feature.js +0 -29
  308. package/build-module/components/preferences-modal/enable-feature.js.map +0 -1
  309. package/build-module/components/preferences-modal/enable-panel-option.js +0 -26
  310. package/build-module/components/preferences-modal/enable-panel-option.js.map +0 -1
  311. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -58
  312. package/src/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -62
  313. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +0 -271
  314. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamily.spec.js +0 -58
  315. package/src/components/page-main/index.js +0 -38
  316. package/src/components/page-patterns/dataviews-patterns.js +0 -380
  317. package/src/components/page-template-parts/index.js +0 -99
  318. package/src/components/page-templates/style.scss +0 -13
  319. package/src/components/post-preview/index.js +0 -16
  320. package/src/components/preferences-modal/enable-feature.js +0 -31
  321. package/src/components/preferences-modal/enable-panel-option.js +0 -23
  322. /package/build/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
  323. /package/build-module/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
  324. /package/src/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
package/src/style.scss CHANGED
@@ -12,7 +12,7 @@
12
12
  @import "./components/page/style.scss";
13
13
  @import "./components/page-pages/style.scss";
14
14
  @import "./components/page-patterns/style.scss";
15
- @import "./components/page-templates/style.scss";
15
+ @import "./components/page-templates-template-parts/style.scss";
16
16
  @import "./components/table/style.scss";
17
17
  @import "./components/sidebar-edit-mode/style.scss";
18
18
  @import "./components/sidebar-edit-mode/page-panels/style.scss";
@@ -14,8 +14,9 @@ export default function getIsListPage(
14
14
  isMobileViewport
15
15
  ) {
16
16
  return (
17
- [ '/wp_template/all', '/wp_template_part/all' ].includes( path ) ||
18
- ( path === '/page' && window?.__experimentalAdminViews ) ||
17
+ [ '/wp_template/all', '/wp_template_part/all', '/pages' ].includes(
18
+ path
19
+ ) ||
19
20
  ( path === '/patterns' &&
20
21
  // Don't treat "/patterns" without categoryType and categoryId as a
21
22
  // list page in mobile because the sidebar covers the whole page.
@@ -0,0 +1,27 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import apiFetch from '@wordpress/api-fetch';
5
+ import { useState, useEffect } from '@wordpress/element';
6
+ import { addQueryArgs } from '@wordpress/url';
7
+
8
+ const ACTIVE_THEMES_URL = '/wp/v2/themes?status=active';
9
+
10
+ export function useActualCurrentTheme() {
11
+ const [ currentTheme, setCurrentTheme ] = useState();
12
+
13
+ useEffect( () => {
14
+ // Set the `wp_theme_preview` to empty string to bypass the createThemePreviewMiddleware.
15
+ const path = addQueryArgs( ACTIVE_THEMES_URL, {
16
+ context: 'edit',
17
+ wp_theme_preview: '',
18
+ } );
19
+
20
+ apiFetch( { path } )
21
+ .then( ( activeThemes ) => setCurrentTheme( activeThemes[ 0 ] ) )
22
+ // Do nothing
23
+ .catch( () => {} );
24
+ }, [] );
25
+
26
+ return currentTheme;
27
+ }
@@ -1,58 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = getIntersectingFontFaces;
7
- /**
8
- * Retrieves intersecting font faces between two sets of fonts.
9
- *
10
- * For each font in the `incoming` list, the function checks for a corresponding match
11
- * in the `existing` list based on the `slug` property. If a match is found and both
12
- * have `fontFace` properties, it further narrows down to matching font faces based on
13
- * the `fontWeight` and `fontStyle`. The result includes the properties of the matched
14
- * existing font but only with intersecting font faces.
15
- *
16
- * @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} incoming - The list of fonts to compare.
17
- * @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} existing - The reference list of fonts.
18
- *
19
- * @return {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} An array of fonts from the `existing` list with intersecting font faces.
20
- *
21
- * @example
22
- * const incomingFonts = [
23
- * { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] },
24
- * { slug: 'times-new', fontFace: [{ fontWeight: '700', fontStyle: 'italic' }] }
25
- * ];
26
- *
27
- * const existingFonts = [
28
- * { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }, { fontWeight: '700', fontStyle: 'italic' }] },
29
- * { slug: 'helvetica', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }
30
- * ];
31
- *
32
- * getIntersectingFontFaces(incomingFonts, existingFonts);
33
- * // Returns:
34
- * // [{ slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }]
35
- */
36
- function getIntersectingFontFaces(incoming, existing) {
37
- const matches = [];
38
- for (const incomingFont of incoming) {
39
- const existingFont = existing.find(f => f.slug === incomingFont.slug);
40
- if (existingFont) {
41
- if (incomingFont?.fontFace) {
42
- const matchingFaces = incomingFont.fontFace.filter(face => {
43
- return (existingFont?.fontFace || []).find(f => {
44
- return f.fontWeight === face.fontWeight && f.fontStyle === face.fontStyle;
45
- });
46
- });
47
- matches.push({
48
- ...incomingFont,
49
- fontFace: matchingFaces
50
- });
51
- } else {
52
- matches.push(incomingFont);
53
- }
54
- }
55
- }
56
- return matches;
57
- }
58
- //# sourceMappingURL=get-intersecting-font-faces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getIntersectingFontFaces","incoming","existing","matches","incomingFont","existingFont","find","f","slug","fontFace","matchingFaces","filter","face","fontWeight","fontStyle","push"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js"],"sourcesContent":["/**\n * Retrieves intersecting font faces between two sets of fonts.\n *\n * For each font in the `incoming` list, the function checks for a corresponding match\n * in the `existing` list based on the `slug` property. If a match is found and both\n * have `fontFace` properties, it further narrows down to matching font faces based on\n * the `fontWeight` and `fontStyle`. The result includes the properties of the matched\n * existing font but only with intersecting font faces.\n *\n * @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} incoming - The list of fonts to compare.\n * @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} existing - The reference list of fonts.\n *\n * @return {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} An array of fonts from the `existing` list with intersecting font faces.\n *\n * @example\n * const incomingFonts = [\n * { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] },\n * { slug: 'times-new', fontFace: [{ fontWeight: '700', fontStyle: 'italic' }] }\n * ];\n *\n * const existingFonts = [\n * { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }, { fontWeight: '700', fontStyle: 'italic' }] },\n * { slug: 'helvetica', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }\n * ];\n *\n * getIntersectingFontFaces(incomingFonts, existingFonts);\n * // Returns:\n * // [{ slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }]\n */\nexport default function getIntersectingFontFaces( incoming, existing ) {\n\tconst matches = [];\n\n\tfor ( const incomingFont of incoming ) {\n\t\tconst existingFont = existing.find(\n\t\t\t( f ) => f.slug === incomingFont.slug\n\t\t);\n\n\t\tif ( existingFont ) {\n\t\t\tif ( incomingFont?.fontFace ) {\n\t\t\t\tconst matchingFaces = incomingFont.fontFace.filter(\n\t\t\t\t\t( face ) => {\n\t\t\t\t\t\treturn ( existingFont?.fontFace || [] ).find( ( f ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tf.fontWeight === face.fontWeight &&\n\t\t\t\t\t\t\t\tf.fontStyle === face.fontStyle\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\tmatches.push( { ...incomingFont, fontFace: matchingFaces } );\n\t\t\t} else {\n\t\t\t\tmatches.push( incomingFont );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn matches;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,wBAAwBA,CAAEC,QAAQ,EAAEC,QAAQ,EAAG;EACtE,MAAMC,OAAO,GAAG,EAAE;EAElB,KAAM,MAAMC,YAAY,IAAIH,QAAQ,EAAG;IACtC,MAAMI,YAAY,GAAGH,QAAQ,CAACI,IAAI,CAC/BC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAKJ,YAAY,CAACI,IAClC,CAAC;IAED,IAAKH,YAAY,EAAG;MACnB,IAAKD,YAAY,EAAEK,QAAQ,EAAG;QAC7B,MAAMC,aAAa,GAAGN,YAAY,CAACK,QAAQ,CAACE,MAAM,CAC/CC,IAAI,IAAM;UACX,OAAO,CAAEP,YAAY,EAAEI,QAAQ,IAAI,EAAE,EAAGH,IAAI,CAAIC,CAAC,IAAM;YACtD,OACCA,CAAC,CAACM,UAAU,KAAKD,IAAI,CAACC,UAAU,IAChCN,CAAC,CAACO,SAAS,KAAKF,IAAI,CAACE,SAAS;UAEhC,CAAE,CAAC;QACJ,CACD,CAAC;QACDX,OAAO,CAACY,IAAI,CAAE;UAAE,GAAGX,YAAY;UAAEK,QAAQ,EAAEC;QAAc,CAAE,CAAC;MAC7D,CAAC,MAAM;QACNP,OAAO,CAACY,IAAI,CAAEX,YAAa,CAAC;MAC7B;IACD;EACD;EAEA,OAAOD,OAAO;AACf"}
@@ -1,71 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getNoticeFromInstallResponse = getNoticeFromInstallResponse;
7
- exports.getNoticeFromUninstallResponse = getNoticeFromUninstallResponse;
8
- var _i18n = require("@wordpress/i18n");
9
- /**
10
- * WordPress dependencies
11
- */
12
-
13
- function getNoticeFromInstallResponse(response) {
14
- const {
15
- errors = [],
16
- successes = []
17
- } = response;
18
- // Everything failed.
19
- if (errors.length && !successes.length) {
20
- return {
21
- type: 'error',
22
- message: (0, _i18n.__)('Error installing the fonts.')
23
- };
24
- }
25
-
26
- // Eveerything succeeded.
27
- if (!errors.length && successes.length) {
28
- return {
29
- type: 'success',
30
- message: (0, _i18n.__)('Fonts were installed successfully.')
31
- };
32
- }
33
-
34
- // Some succeeded, some failed.
35
- if (errors.length && successes.length) {
36
- return {
37
- type: 'warning',
38
- message: (0, _i18n.__)('Some fonts were installed successfully and some failed.')
39
- };
40
- }
41
- }
42
- function getNoticeFromUninstallResponse(response) {
43
- const {
44
- errors = [],
45
- successes = []
46
- } = response;
47
- // Everything failed.
48
- if (errors.length && !successes.length) {
49
- return {
50
- type: 'error',
51
- message: (0, _i18n.__)('Error uninstalling the fonts.')
52
- };
53
- }
54
-
55
- // Everything succeeded.
56
- if (!errors.length && successes.length) {
57
- return {
58
- type: 'success',
59
- message: (0, _i18n.__)('Fonts were uninstalled successfully.')
60
- };
61
- }
62
-
63
- // Some succeeded, some failed.
64
- if (errors.length && successes.length) {
65
- return {
66
- type: 'warning',
67
- message: (0, _i18n.__)('Some fonts were uninstalled successfully and some failed.')
68
- };
69
- }
70
- }
71
- //# sourceMappingURL=get-notice-from-response.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_i18n","require","getNoticeFromInstallResponse","response","errors","successes","length","type","message","__","getNoticeFromUninstallResponse"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/get-notice-from-response.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport function getNoticeFromInstallResponse( response ) {\n\tconst { errors = [], successes = [] } = response;\n\t// Everything failed.\n\tif ( errors.length && ! successes.length ) {\n\t\treturn {\n\t\t\ttype: 'error',\n\t\t\tmessage: __( 'Error installing the fonts.' ),\n\t\t};\n\t}\n\n\t// Eveerything succeeded.\n\tif ( ! errors.length && successes.length ) {\n\t\treturn {\n\t\t\ttype: 'success',\n\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t};\n\t}\n\n\t// Some succeeded, some failed.\n\tif ( errors.length && successes.length ) {\n\t\treturn {\n\t\t\ttype: 'warning',\n\t\t\tmessage: __(\n\t\t\t\t'Some fonts were installed successfully and some failed.'\n\t\t\t),\n\t\t};\n\t}\n}\n\nexport function getNoticeFromUninstallResponse( response ) {\n\tconst { errors = [], successes = [] } = response;\n\t// Everything failed.\n\tif ( errors.length && ! successes.length ) {\n\t\treturn {\n\t\t\ttype: 'error',\n\t\t\tmessage: __( 'Error uninstalling the fonts.' ),\n\t\t};\n\t}\n\n\t// Everything succeeded.\n\tif ( ! errors.length && successes.length ) {\n\t\treturn {\n\t\t\ttype: 'success',\n\t\t\tmessage: __( 'Fonts were uninstalled successfully.' ),\n\t\t};\n\t}\n\n\t// Some succeeded, some failed.\n\tif ( errors.length && successes.length ) {\n\t\treturn {\n\t\t\ttype: 'warning',\n\t\t\tmessage: __(\n\t\t\t\t'Some fonts were uninstalled successfully and some failed.'\n\t\t\t),\n\t\t};\n\t}\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGO,SAASC,4BAA4BA,CAAEC,QAAQ,EAAG;EACxD,MAAM;IAAEC,MAAM,GAAG,EAAE;IAAEC,SAAS,GAAG;EAAG,CAAC,GAAGF,QAAQ;EAChD;EACA,IAAKC,MAAM,CAACE,MAAM,IAAI,CAAED,SAAS,CAACC,MAAM,EAAG;IAC1C,OAAO;MACNC,IAAI,EAAE,OAAO;MACbC,OAAO,EAAE,IAAAC,QAAE,EAAE,6BAA8B;IAC5C,CAAC;EACF;;EAEA;EACA,IAAK,CAAEL,MAAM,CAACE,MAAM,IAAID,SAAS,CAACC,MAAM,EAAG;IAC1C,OAAO;MACNC,IAAI,EAAE,SAAS;MACfC,OAAO,EAAE,IAAAC,QAAE,EAAE,oCAAqC;IACnD,CAAC;EACF;;EAEA;EACA,IAAKL,MAAM,CAACE,MAAM,IAAID,SAAS,CAACC,MAAM,EAAG;IACxC,OAAO;MACNC,IAAI,EAAE,SAAS;MACfC,OAAO,EAAE,IAAAC,QAAE,EACV,yDACD;IACD,CAAC;EACF;AACD;AAEO,SAASC,8BAA8BA,CAAEP,QAAQ,EAAG;EAC1D,MAAM;IAAEC,MAAM,GAAG,EAAE;IAAEC,SAAS,GAAG;EAAG,CAAC,GAAGF,QAAQ;EAChD;EACA,IAAKC,MAAM,CAACE,MAAM,IAAI,CAAED,SAAS,CAACC,MAAM,EAAG;IAC1C,OAAO;MACNC,IAAI,EAAE,OAAO;MACbC,OAAO,EAAE,IAAAC,QAAE,EAAE,+BAAgC;IAC9C,CAAC;EACF;;EAEA;EACA,IAAK,CAAEL,MAAM,CAACE,MAAM,IAAID,SAAS,CAACC,MAAM,EAAG;IAC1C,OAAO;MACNC,IAAI,EAAE,SAAS;MACfC,OAAO,EAAE,IAAAC,QAAE,EAAE,sCAAuC;IACrD,CAAC;EACF;;EAEA;EACA,IAAKL,MAAM,CAACE,MAAM,IAAID,SAAS,CAACC,MAAM,EAAG;IACxC,OAAO;MACNC,IAAI,EAAE,SAAS;MACfC,OAAO,EAAE,IAAAC,QAAE,EACV,2DACD;IACD,CAAC;EACF;AACD"}
@@ -1,44 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = PageMain;
8
- var _react = require("react");
9
- var _router = require("@wordpress/router");
10
- var _pagePatterns = _interopRequireDefault(require("../page-patterns"));
11
- var _dataviewsPatterns = _interopRequireDefault(require("../page-patterns/dataviews-patterns"));
12
- var _pageTemplateParts = _interopRequireDefault(require("../page-template-parts"));
13
- var _pageTemplates = _interopRequireDefault(require("../page-templates"));
14
- var _pagePages = _interopRequireDefault(require("../page-pages"));
15
- var _lockUnlock = require("../../lock-unlock");
16
- /**
17
- * WordPress dependencies
18
- */
19
-
20
- /**
21
- * Internal dependencies
22
- */
23
-
24
- const {
25
- useLocation
26
- } = (0, _lockUnlock.unlock)(_router.privateApis);
27
- function PageMain() {
28
- const {
29
- params: {
30
- path
31
- }
32
- } = useLocation();
33
- if (path === '/wp_template/all') {
34
- return (0, _react.createElement)(_pageTemplates.default, null);
35
- } else if (path === '/wp_template_part/all') {
36
- return (0, _react.createElement)(_pageTemplateParts.default, null);
37
- } else if (path === '/patterns') {
38
- return window?.__experimentalAdminViews ? (0, _react.createElement)(_dataviewsPatterns.default, null) : (0, _react.createElement)(_pagePatterns.default, null);
39
- } else if (window?.__experimentalAdminViews && path === '/page') {
40
- return (0, _react.createElement)(_pagePages.default, null);
41
- }
42
- return null;
43
- }
44
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_router","require","_pagePatterns","_interopRequireDefault","_dataviewsPatterns","_pageTemplateParts","_pageTemplates","_pagePages","_lockUnlock","useLocation","unlock","routerPrivateApis","PageMain","params","path","_react","createElement","default","window","__experimentalAdminViews"],"sources":["@wordpress/edit-site/src/components/page-main/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport PagePatterns from '../page-patterns';\nimport DataviewsPatterns from '../page-patterns/dataviews-patterns';\nimport PageTemplateParts from '../page-template-parts';\nimport PageTemplates from '../page-templates';\nimport PagePages from '../page-pages';\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 window?.__experimentalAdminViews ? (\n\t\t\t<DataviewsPatterns />\n\t\t) : (\n\t\t\t<PagePatterns />\n\t\t);\n\t} else if ( window?.__experimentalAdminViews && path === '/page' ) {\n\t\treturn <PagePages />;\n\t}\n\n\treturn null;\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,aAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,kBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,cAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,UAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AAbA;AACA;AACA;;AAGA;AACA;AACA;;AAQA,MAAM;EAAEQ;AAAY,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAEpC,SAASC,QAAQA,CAAA,EAAG;EAClC,MAAM;IACLC,MAAM,EAAE;MAAEC;IAAK;EAChB,CAAC,GAAGL,WAAW,CAAC,CAAC;EAEjB,IAAKK,IAAI,KAAK,kBAAkB,EAAG;IAClC,OAAO,IAAAC,MAAA,CAAAC,aAAA,EAACV,cAAA,CAAAW,OAAa,MAAE,CAAC;EACzB,CAAC,MAAM,IAAKH,IAAI,KAAK,uBAAuB,EAAG;IAC9C,OAAO,IAAAC,MAAA,CAAAC,aAAA,EAACX,kBAAA,CAAAY,OAAiB,MAAE,CAAC;EAC7B,CAAC,MAAM,IAAKH,IAAI,KAAK,WAAW,EAAG;IAClC,OAAOI,MAAM,EAAEC,wBAAwB,GACtC,IAAAJ,MAAA,CAAAC,aAAA,EAACZ,kBAAA,CAAAa,OAAiB,MAAE,CAAC,GAErB,IAAAF,MAAA,CAAAC,aAAA,EAACd,aAAA,CAAAe,OAAY,MAAE,CACf;EACF,CAAC,MAAM,IAAKC,MAAM,EAAEC,wBAAwB,IAAIL,IAAI,KAAK,OAAO,EAAG;IAClE,OAAO,IAAAC,MAAA,CAAAC,aAAA,EAACT,UAAA,CAAAU,OAAS,MAAE,CAAC;EACrB;EAEA,OAAO,IAAI;AACZ"}
@@ -1,307 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = DataviewsPatterns;
8
- var _react = require("react");
9
- var _components = require("@wordpress/components");
10
- var _url = require("@wordpress/url");
11
- var _i18n = require("@wordpress/i18n");
12
- var _element = require("@wordpress/element");
13
- var _blockEditor = require("@wordpress/block-editor");
14
- var _dataviews = require("@wordpress/dataviews");
15
- var _icons = require("@wordpress/icons");
16
- var _compose = require("@wordpress/compose");
17
- var _page = _interopRequireDefault(require("../page"));
18
- var _constants = require("../../utils/constants");
19
- var _dataviewsPatternActions = require("./dataviews-pattern-actions");
20
- var _usePatternSettings = _interopRequireDefault(require("./use-pattern-settings"));
21
- var _lockUnlock = require("../../lock-unlock");
22
- var _usePatterns = _interopRequireDefault(require("./use-patterns"));
23
- var _header = _interopRequireDefault(require("./header"));
24
- var _link = require("../routes/link");
25
- /**
26
- * WordPress dependencies
27
- */
28
-
29
- /**
30
- * Internal dependencies
31
- */
32
-
33
- const {
34
- ExperimentalBlockEditorProvider,
35
- useGlobalStyle
36
- } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
37
- const templatePartIcons = {
38
- header: _icons.header,
39
- footer: _icons.footer,
40
- uncategorized: _icons.symbolFilled
41
- };
42
- const EMPTY_ARRAY = [];
43
- const defaultConfigPerViewType = {
44
- [_constants.LAYOUT_GRID]: {
45
- mediaField: 'preview',
46
- primaryField: 'title'
47
- }
48
- };
49
- const DEFAULT_VIEW = {
50
- type: _constants.LAYOUT_GRID,
51
- search: '',
52
- page: 1,
53
- perPage: 20,
54
- hiddenFields: ['sync-status'],
55
- layout: {
56
- ...defaultConfigPerViewType[_constants.LAYOUT_GRID]
57
- },
58
- filters: []
59
- };
60
- const SYNC_FILTERS = [{
61
- value: _constants.PATTERN_SYNC_TYPES.full,
62
- label: (0, _i18n._x)('Synced', 'Option that shows all synchronized patterns'),
63
- description: (0, _i18n.__)('Patterns that are kept in sync across the site.')
64
- }, {
65
- value: _constants.PATTERN_SYNC_TYPES.unsynced,
66
- label: (0, _i18n._x)('Not synced', 'Option that shows all patterns that are not synchronized'),
67
- description: (0, _i18n.__)('Patterns that can be changed freely without affecting the site.')
68
- }];
69
- function Preview({
70
- item,
71
- viewType
72
- }) {
73
- const descriptionId = (0, _element.useId)();
74
- const isUserPattern = item.type === _constants.PATTERN_TYPES.user;
75
- const isNonUserPattern = item.type === _constants.PATTERN_TYPES.theme;
76
- const isTemplatePart = item.type === _constants.TEMPLATE_PART_POST_TYPE;
77
- const isEmpty = !item.blocks?.length;
78
- // Only custom patterns or custom template parts can be renamed or deleted.
79
- const isCustomPattern = isUserPattern || isTemplatePart && item.isCustom;
80
- const ariaDescriptions = [];
81
- if (isCustomPattern) {
82
- // User patterns don't have descriptions, but can be edited and deleted, so include some help text.
83
- ariaDescriptions.push((0, _i18n.__)('Press Enter to edit, or Delete to delete the pattern.'));
84
- } else if (item.description) {
85
- ariaDescriptions.push(item.description);
86
- }
87
- if (isNonUserPattern) {
88
- ariaDescriptions.push((0, _i18n.__)('Theme & plugin patterns cannot be edited.'));
89
- }
90
- const [backgroundColor] = useGlobalStyle('color.background');
91
- return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)("div", {
92
- className: `page-patterns-preview-field is-viewtype-${viewType}`,
93
- style: {
94
- backgroundColor
95
- }
96
- }, isEmpty && isTemplatePart && (0, _i18n.__)('Empty template part'), isEmpty && !isTemplatePart && (0, _i18n.__)('Empty pattern'), !isEmpty && (0, _react.createElement)(_blockEditor.BlockPreview, {
97
- blocks: item.blocks
98
- })), ariaDescriptions.map((ariaDescription, index) => (0, _react.createElement)("div", {
99
- key: index,
100
- hidden: true,
101
- id: `${descriptionId}-${index}`
102
- }, ariaDescription)));
103
- }
104
- function Title({
105
- item,
106
- categoryId
107
- }) {
108
- const isUserPattern = item.type === _constants.PATTERN_TYPES.user;
109
- const isNonUserPattern = item.type === _constants.PATTERN_TYPES.theme;
110
- const isTemplatePart = item.type === _constants.TEMPLATE_PART_POST_TYPE;
111
- let itemIcon;
112
- const {
113
- onClick
114
- } = (0, _link.useLink)({
115
- postType: item.type,
116
- postId: isUserPattern ? item.id : item.name,
117
- categoryId,
118
- categoryType: isTemplatePart ? item.type : _constants.PATTERN_TYPES.theme
119
- });
120
- if (!isUserPattern && templatePartIcons[categoryId]) {
121
- itemIcon = templatePartIcons[categoryId];
122
- } else {
123
- itemIcon = item.syncStatus === _constants.PATTERN_SYNC_TYPES.full ? _icons.symbol : undefined;
124
- }
125
- return (0, _react.createElement)(_components.__experimentalHStack, {
126
- alignment: "center",
127
- justify: "flex-start",
128
- spacing: 2
129
- }, itemIcon && !isNonUserPattern && (0, _react.createElement)(_components.Tooltip, {
130
- placement: "top",
131
- text: (0, _i18n.__)('Editing this pattern will also update anywhere it is used')
132
- }, (0, _react.createElement)(_icons.Icon, {
133
- className: "edit-site-patterns__pattern-icon",
134
- icon: itemIcon
135
- })), item.type === _constants.PATTERN_TYPES.theme && (0, _react.createElement)(_components.Tooltip, {
136
- placement: "top",
137
- text: (0, _i18n.__)('This pattern cannot be edited.')
138
- }, (0, _react.createElement)(_icons.Icon, {
139
- className: "edit-site-patterns__pattern-lock-icon",
140
- icon: _icons.lockSmall,
141
- size: 24
142
- })), (0, _react.createElement)(_components.Flex, {
143
- as: "span",
144
- gap: 0,
145
- justify: "left"
146
- }, item.type === _constants.PATTERN_TYPES.theme ? (0, _react.createElement)("span", {
147
- className: "dataviews-view-grid__title-field"
148
- }, item.title) : (0, _react.createElement)(_components.__experimentalHeading, {
149
- level: 5
150
- }, (0, _react.createElement)(_components.Button, {
151
- variant: "link",
152
- onClick: onClick
153
- // Required for the grid's roving tab index system.
154
- // See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.
155
- ,
156
- tabIndex: "-1",
157
- className: "dataviews-view-grid__title-field"
158
- }, item.title || item.name))));
159
- }
160
- function DataviewsPatterns() {
161
- const {
162
- categoryType,
163
- categoryId = _constants.PATTERN_DEFAULT_CATEGORY
164
- } = (0, _url.getQueryArgs)(window.location.href);
165
- const type = categoryType || _constants.PATTERN_TYPES.theme;
166
- const [view, setView] = (0, _element.useState)(DEFAULT_VIEW);
167
- const isUncategorizedThemePatterns = type === _constants.PATTERN_TYPES.theme && categoryId === 'uncategorized';
168
- const previousCategoryId = (0, _compose.usePrevious)(categoryId);
169
- const viewSyncStatus = view.filters?.find(({
170
- field
171
- }) => field === 'sync-status')?.value;
172
- const {
173
- patterns,
174
- isResolving
175
- } = (0, _usePatterns.default)(type, isUncategorizedThemePatterns ? '' : categoryId, {
176
- search: view.search,
177
- syncStatus: viewSyncStatus
178
- });
179
- const fields = (0, _element.useMemo)(() => {
180
- const _fields = [{
181
- header: (0, _i18n.__)('Preview'),
182
- id: 'preview',
183
- render: ({
184
- item
185
- }) => (0, _react.createElement)(Preview, {
186
- item: item,
187
- viewType: view.type
188
- }),
189
- enableSorting: false,
190
- enableHiding: false
191
- }, {
192
- header: (0, _i18n.__)('Title'),
193
- id: 'title',
194
- getValue: ({
195
- item
196
- }) => item.title,
197
- render: ({
198
- item
199
- }) => (0, _react.createElement)(Title, {
200
- item: item,
201
- categoryId: categoryId
202
- }),
203
- enableHiding: false
204
- }];
205
- if (type === _constants.PATTERN_TYPES.theme) {
206
- _fields.push({
207
- header: (0, _i18n.__)('Sync Status'),
208
- id: 'sync-status',
209
- render: ({
210
- item
211
- }) => {
212
- // User patterns can have their sync statuses checked directly.
213
- // Non-user patterns are all unsynced for the time being.
214
- return SYNC_FILTERS.find(({
215
- value
216
- }) => value === item.syncStatus)?.label || SYNC_FILTERS.find(({
217
- value
218
- }) => value === _constants.PATTERN_SYNC_TYPES.unsynced).label;
219
- },
220
- type: _constants.ENUMERATION_TYPE,
221
- elements: SYNC_FILTERS,
222
- filterBy: {
223
- operators: [_constants.OPERATOR_IN]
224
- },
225
- enableSorting: false
226
- });
227
- }
228
- return _fields;
229
- }, [view.type, categoryId, type]);
230
- // Reset the page number when the category changes.
231
- (0, _element.useEffect)(() => {
232
- if (previousCategoryId !== categoryId) {
233
- setView(DEFAULT_VIEW);
234
- }
235
- }, [categoryId, previousCategoryId]);
236
- const {
237
- data,
238
- paginationInfo
239
- } = (0, _element.useMemo)(() => {
240
- if (!patterns) {
241
- return {
242
- data: EMPTY_ARRAY,
243
- paginationInfo: {
244
- totalItems: 0,
245
- totalPages: 0
246
- }
247
- };
248
- }
249
- let filteredData = [...patterns];
250
- // Handle sorting.
251
- if (view.sort) {
252
- filteredData = (0, _dataviews.sortByTextFields)({
253
- data: filteredData,
254
- view,
255
- fields,
256
- textFields: ['title', 'author']
257
- });
258
- }
259
- // Handle pagination.
260
- return (0, _dataviews.getPaginationResults)({
261
- data: filteredData,
262
- view
263
- });
264
- }, [patterns, view, fields]);
265
- const actions = (0, _element.useMemo)(() => [_dataviewsPatternActions.renameAction, _dataviewsPatternActions.duplicatePatternAction, _dataviewsPatternActions.duplicateTemplatePartAction, _dataviewsPatternActions.exportJSONaction, _dataviewsPatternActions.resetAction, _dataviewsPatternActions.deleteAction], []);
266
- const onChangeView = (0, _element.useCallback)(newView => {
267
- if (newView.type !== view.type) {
268
- newView = {
269
- ...newView,
270
- layout: {
271
- ...defaultConfigPerViewType[newView.type]
272
- }
273
- };
274
- }
275
- setView(newView);
276
- }, [view.type, setView]);
277
- const id = (0, _element.useId)();
278
- const settings = (0, _usePatternSettings.default)();
279
- // Wrap everything in a block editor provider.
280
- // This ensures 'styles' that are needed for the previews are synced
281
- // from the site editor store to the block editor store.
282
- // TODO: check if I add the provider in every preview like in templates...
283
- return (0, _react.createElement)(ExperimentalBlockEditorProvider, {
284
- settings: settings
285
- }, (0, _react.createElement)(_page.default, {
286
- title: (0, _i18n.__)('Patterns content'),
287
- className: "edit-site-page-patterns-dataviews",
288
- hideTitleFromUI: true
289
- }, (0, _react.createElement)(_header.default, {
290
- categoryId: categoryId,
291
- type: type,
292
- titleId: `${id}-title`,
293
- descriptionId: `${id}-description`
294
- }), (0, _react.createElement)(_dataviews.DataViews, {
295
- paginationInfo: paginationInfo,
296
- fields: fields,
297
- actions: actions,
298
- data: data || EMPTY_ARRAY,
299
- getItemId: item => item.name,
300
- isLoading: isResolving,
301
- view: view,
302
- onChangeView: onChangeView,
303
- deferredRendering: true,
304
- supportedLayouts: [_constants.LAYOUT_GRID]
305
- })));
306
- }
307
- //# sourceMappingURL=dataviews-patterns.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_components","require","_url","_i18n","_element","_blockEditor","_dataviews","_icons","_compose","_page","_interopRequireDefault","_constants","_dataviewsPatternActions","_usePatternSettings","_lockUnlock","_usePatterns","_header","_link","ExperimentalBlockEditorProvider","useGlobalStyle","unlock","blockEditorPrivateApis","templatePartIcons","header","footer","uncategorized","EMPTY_ARRAY","defaultConfigPerViewType","LAYOUT_GRID","mediaField","primaryField","DEFAULT_VIEW","type","search","page","perPage","hiddenFields","layout","filters","SYNC_FILTERS","value","PATTERN_SYNC_TYPES","full","label","_x","description","__","unsynced","Preview","item","viewType","descriptionId","useId","isUserPattern","PATTERN_TYPES","user","isNonUserPattern","theme","isTemplatePart","TEMPLATE_PART_POST_TYPE","isEmpty","blocks","length","isCustomPattern","isCustom","ariaDescriptions","push","backgroundColor","_react","createElement","Fragment","className","style","BlockPreview","map","ariaDescription","index","key","hidden","id","Title","categoryId","itemIcon","onClick","useLink","postType","postId","name","categoryType","syncStatus","symbol","undefined","__experimentalHStack","alignment","justify","spacing","Tooltip","placement","text","Icon","icon","lockSmall","size","Flex","as","gap","title","__experimentalHeading","level","Button","variant","tabIndex","DataviewsPatterns","PATTERN_DEFAULT_CATEGORY","getQueryArgs","window","location","href","view","setView","useState","isUncategorizedThemePatterns","previousCategoryId","usePrevious","viewSyncStatus","find","field","patterns","isResolving","usePatterns","fields","useMemo","_fields","render","enableSorting","enableHiding","getValue","ENUMERATION_TYPE","elements","filterBy","operators","OPERATOR_IN","useEffect","data","paginationInfo","totalItems","totalPages","filteredData","sort","sortByTextFields","textFields","getPaginationResults","actions","renameAction","duplicatePatternAction","duplicateTemplatePartAction","exportJSONaction","resetAction","deleteAction","onChangeView","useCallback","newView","settings","usePatternSettings","default","hideTitleFromUI","titleId","DataViews","getItemId","isLoading","deferredRendering","supportedLayouts"],"sources":["@wordpress/edit-site/src/components/page-patterns/dataviews-patterns.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\tButton,\n\t__experimentalHeading as Heading,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { getQueryArgs } from '@wordpress/url';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tuseState,\n\tuseMemo,\n\tuseCallback,\n\tuseId,\n\tuseEffect,\n} from '@wordpress/element';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tDataViews,\n\tsortByTextFields,\n\tgetPaginationResults,\n} from '@wordpress/dataviews';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport {\n\tLAYOUT_GRID,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tENUMERATION_TYPE,\n\tOPERATOR_IN,\n} from '../../utils/constants';\nimport {\n\texportJSONaction,\n\trenameAction,\n\tresetAction,\n\tdeleteAction,\n\tduplicatePatternAction,\n\tduplicateTemplatePartAction,\n} from './dataviews-pattern-actions';\nimport usePatternSettings from './use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport usePatterns from './use-patterns';\nimport PatternsHeader from './header';\nimport { useLink } from '../routes/link';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst templatePartIcons = { header, footer, uncategorized };\nconst EMPTY_ARRAY = [];\nconst defaultConfigPerViewType = {\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'preview',\n\t\tprimaryField: 'title',\n\t},\n};\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_GRID,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\thiddenFields: [ 'sync-status' ],\n\tlayout: {\n\t\t...defaultConfigPerViewType[ LAYOUT_GRID ],\n\t},\n\tfilters: [],\n};\n\nconst SYNC_FILTERS = [\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.full,\n\t\tlabel: _x( 'Synced', 'Option that shows all synchronized patterns' ),\n\t\tdescription: __( 'Patterns that are kept in sync across the site.' ),\n\t},\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.unsynced,\n\t\tlabel: _x(\n\t\t\t'Not synced',\n\t\t\t'Option that shows all patterns that are not synchronized'\n\t\t),\n\t\tdescription: __(\n\t\t\t'Patterns that can be changed freely without affecting the site.'\n\t\t),\n\t},\n];\n\nfunction Preview( { item, viewType } ) {\n\tconst descriptionId = useId();\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isEmpty = ! item.blocks?.length;\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst ariaDescriptions = [];\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={ `page-patterns-preview-field is-viewtype-${ viewType }` }\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ item.blocks } /> }\n\t\t\t</div>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nfunction Title( { item, categoryId } ) {\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tlet itemIcon;\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t} );\n\tif ( ! isUserPattern && templatePartIcons[ categoryId ] ) {\n\t\titemIcon = templatePartIcons[ categoryId ];\n\t} else {\n\t\titemIcon =\n\t\t\titem.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;\n\t}\n\treturn (\n\t\t<HStack alignment=\"center\" justify=\"flex-start\" spacing={ 2 }>\n\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t<Tooltip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t<Tooltip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t\t<Flex as=\"span\" gap={ 0 } justify=\"left\">\n\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\t<span className=\"dataviews-view-grid__title-field\">\n\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\t<Heading level={ 5 }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__title-field\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ item.title || item.name }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Heading>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</HStack>\n\t);\n}\n\nexport default function DataviewsPatterns() {\n\tconst { categoryType, categoryId = PATTERN_DEFAULT_CATEGORY } =\n\t\tgetQueryArgs( window.location.href );\n\tconst type = categoryType || PATTERN_TYPES.theme;\n\tconst [ view, setView ] = useState( DEFAULT_VIEW );\n\tconst isUncategorizedThemePatterns =\n\t\ttype === PATTERN_TYPES.theme && categoryId === 'uncategorized';\n\tconst previousCategoryId = usePrevious( categoryId );\n\tconst viewSyncStatus = view.filters?.find(\n\t\t( { field } ) => field === 'sync-status'\n\t)?.value;\n\tconst { patterns, isResolving } = usePatterns(\n\t\ttype,\n\t\tisUncategorizedThemePatterns ? '' : categoryId,\n\t\t{\n\t\t\tsearch: view.search,\n\t\t\tsyncStatus: viewSyncStatus,\n\t\t}\n\t);\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\t{\n\t\t\t\theader: __( 'Preview' ),\n\t\t\t\tid: 'preview',\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Preview item={ item } viewType={ view.type } />\n\t\t\t\t),\n\t\t\t\tenableSorting: false,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Title' ),\n\t\t\t\tid: 'title',\n\t\t\t\tgetValue: ( { item } ) => item.title,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Title item={ item } categoryId={ categoryId } />\n\t\t\t\t),\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t];\n\t\tif ( type === PATTERN_TYPES.theme ) {\n\t\t\t_fields.push( {\n\t\t\t\theader: __( 'Sync Status' ),\n\t\t\t\tid: 'sync-status',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\t// User patterns can have their sync statuses checked directly.\n\t\t\t\t\t// Non-user patterns are all unsynced for the time being.\n\t\t\t\t\treturn (\n\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t( { value } ) => value === item.syncStatus\n\t\t\t\t\t\t)?.label ||\n\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t( { value } ) =>\n\t\t\t\t\t\t\t\tvalue === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t\t\t).label\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\ttype: ENUMERATION_TYPE,\n\t\t\t\telements: SYNC_FILTERS,\n\t\t\t\tfilterBy: {\n\t\t\t\t\toperators: [ OPERATOR_IN ],\n\t\t\t\t},\n\t\t\t\tenableSorting: false,\n\t\t\t} );\n\t\t}\n\t\treturn _fields;\n\t}, [ view.type, categoryId, type ] );\n\t// Reset the page number when the category changes.\n\tuseEffect( () => {\n\t\tif ( previousCategoryId !== categoryId ) {\n\t\t\tsetView( DEFAULT_VIEW );\n\t\t}\n\t}, [ categoryId, previousCategoryId ] );\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\tif ( ! patterns ) {\n\t\t\treturn {\n\t\t\t\tdata: EMPTY_ARRAY,\n\t\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t\t};\n\t\t}\n\t\tlet filteredData = [ ...patterns ];\n\t\t// Handle sorting.\n\t\tif ( view.sort ) {\n\t\t\tfilteredData = sortByTextFields( {\n\t\t\t\tdata: filteredData,\n\t\t\t\tview,\n\t\t\t\tfields,\n\t\t\t\ttextFields: [ 'title', 'author' ],\n\t\t\t} );\n\t\t}\n\t\t// Handle pagination.\n\t\treturn getPaginationResults( {\n\t\t\tdata: filteredData,\n\t\t\tview,\n\t\t} );\n\t}, [ patterns, view, fields ] );\n\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\trenameAction,\n\t\t\tduplicatePatternAction,\n\t\t\tduplicateTemplatePartAction,\n\t\t\texportJSONaction,\n\t\t\tresetAction,\n\t\t\tdeleteAction,\n\t\t],\n\t\t[]\n\t);\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\n\t\t\t\tnewView = {\n\t\t\t\t\t...newView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView ]\n\t);\n\tconst id = useId();\n\tconst settings = usePatternSettings();\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\t// TODO: check if I add the provider in every preview like in templates...\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<Page\n\t\t\t\ttitle={ __( 'Patterns content' ) }\n\t\t\t\tclassName=\"edit-site-page-patterns-dataviews\"\n\t\t\t\thideTitleFromUI\n\t\t\t>\n\t\t\t\t<PatternsHeader\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\ttitleId={ `${ id }-title` }\n\t\t\t\t\tdescriptionId={ `${ id }-description` }\n\t\t\t\t/>\n\t\t\t\t<DataViews\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t\tdata={ data || EMPTY_ARRAY }\n\t\t\t\t\tgetItemId={ ( item ) => item.name }\n\t\t\t\t\tisLoading={ isResolving }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tdeferredRendering={ true }\n\t\t\t\t\tsupportedLayouts={ [ LAYOUT_GRID ] }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["_router","require","_data","_coreData","_element","_components","_lockUnlock","_store","_createTemplatePartModal","_interopRequireDefault","_constants","useHistory","unlock","routerPrivateApis","AddNewTemplatePart","canCreate","postType","useSelect","select","supportsTemplatePartsMode","editSiteStore","getSettings","coreStore","getPostType","TEMPLATE_PART_POST_TYPE","isModalOpen","setIsModalOpen","useState","history","_react","createElement","Fragment","Button","variant","onClick","labels","add_new_item","default","closeModal","blocks","onCreate","templatePart","push","postId","id","canvas","onError"],"sources":["@wordpress/edit-site/src/components/page-template-parts/add-new-template-part.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport CreateTemplatePartModal from '../create-template-part-modal';\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport default function AddNewTemplatePart() {\n\tconst { canCreate, postType } = useSelect( ( select ) => {\n\t\tconst { supportsTemplatePartsMode } =\n\t\t\tselect( editSiteStore ).getSettings();\n\t\treturn {\n\t\t\tcanCreate: ! supportsTemplatePartsMode,\n\t\t\tpostType: select( coreStore ).getPostType(\n\t\t\t\tTEMPLATE_PART_POST_TYPE\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst history = useHistory();\n\n\tif ( ! canCreate || ! postType ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button variant=\"primary\" onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ postType.labels.add_new_item }\n\t\t\t</Button>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ ( templatePart ) => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\tpostId: templatePart.id,\n\t\t\t\t\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tonError={ () => setIsModalOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAKA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,wBAAA,GAAAC,sBAAA,CAAAR,OAAA;AACA,IAAAS,UAAA,GAAAT,OAAA;AAfA;AACA;AACA;;AAOA;AACA;AACA;;AAMA,MAAM;EAAEU;AAAW,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAEnC,SAASC,kBAAkBA,CAAA,EAAG;EAC5C,MAAM;IAAEC,SAAS;IAAEC;EAAS,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACxD,MAAM;MAAEC;IAA0B,CAAC,GAClCD,MAAM,CAAEE,YAAc,CAAC,CAACC,WAAW,CAAC,CAAC;IACtC,OAAO;MACNN,SAAS,EAAE,CAAEI,yBAAyB;MACtCH,QAAQ,EAAEE,MAAM,CAAEI,eAAU,CAAC,CAACC,WAAW,CACxCC,kCACD;IACD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EACzD,MAAMC,OAAO,GAAGjB,UAAU,CAAC,CAAC;EAE5B,IAAK,CAAEI,SAAS,IAAI,CAAEC,QAAQ,EAAG;IAChC,OAAO,IAAI;EACZ;EAEA,OACC,IAAAa,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACzB,WAAA,CAAA2B,MAAM;IAACC,OAAO,EAAC,SAAS;IAACC,OAAO,EAAGA,CAAA,KAAMR,cAAc,CAAE,IAAK;EAAG,GAC/DV,QAAQ,CAACmB,MAAM,CAACC,YACX,CAAC,EACPX,WAAW,IACZ,IAAAI,MAAA,CAAAC,aAAA,EAACtB,wBAAA,CAAA6B,OAAuB;IACvBC,UAAU,EAAGA,CAAA,KAAMZ,cAAc,CAAE,KAAM,CAAG;IAC5Ca,MAAM,EAAG,EAAI;IACbC,QAAQ,EAAKC,YAAY,IAAM;MAC9Bf,cAAc,CAAE,KAAM,CAAC;MACvBE,OAAO,CAACc,IAAI,CAAE;QACbC,MAAM,EAAEF,YAAY,CAACG,EAAE;QACvB5B,QAAQ,EAAEQ,kCAAuB;QACjCqB,MAAM,EAAE;MACT,CAAE,CAAC;IACJ,CAAG;IACHC,OAAO,EAAGA,CAAA,KAAMpB,cAAc,CAAE,KAAM;EAAG,CACzC,CAED,CAAC;AAEL"}