@wordpress/edit-site 5.19.0 → 5.19.2

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 (448) hide show
  1. package/build/components/add-new-pattern/index.js +3 -3
  2. package/build/components/add-new-pattern/index.js.map +1 -1
  3. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js +73 -0
  4. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +1 -0
  5. package/build/components/block-editor/block-editor-provider/index.js +31 -0
  6. package/build/components/block-editor/block-editor-provider/index.js.map +1 -0
  7. package/build/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
  8. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +1 -0
  9. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js +76 -0
  10. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +1 -0
  11. package/build/components/block-editor/index.js +2 -9
  12. package/build/components/block-editor/index.js.map +1 -1
  13. package/build/components/block-editor/site-editor-canvas.js +1 -1
  14. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  15. package/build/components/create-template-part-modal/index.js +8 -12
  16. package/build/components/create-template-part-modal/index.js.map +1 -1
  17. package/build/components/editor/index.js +4 -1
  18. package/build/components/editor/index.js.map +1 -1
  19. package/build/components/global-styles/font-families.js +2 -1
  20. package/build/components/global-styles/font-families.js.map +1 -1
  21. package/build/components/global-styles/font-family-item.js +2 -2
  22. package/build/components/global-styles/font-family-item.js.map +1 -1
  23. package/build/components/global-styles/font-library-modal/collection-font-details.js +49 -0
  24. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -0
  25. package/build/components/global-styles/font-library-modal/collection-font-variant.js +55 -0
  26. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -0
  27. package/build/components/global-styles/font-library-modal/context.js +26 -2
  28. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  29. package/build/components/global-styles/font-library-modal/font-card.js +7 -4
  30. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
  31. package/build/components/global-styles/font-library-modal/font-collection.js +172 -0
  32. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -0
  33. package/build/components/global-styles/font-library-modal/font-demo.js +30 -13
  34. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  35. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +41 -0
  36. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -0
  37. package/build/components/global-styles/font-library-modal/index.js +25 -7
  38. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  39. package/build/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  40. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  41. package/build/components/global-styles/font-library-modal/library-font-card.js +0 -5
  42. package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  43. package/build/components/global-styles/font-library-modal/library-font-details.js +2 -1
  44. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  45. package/build/components/global-styles/font-library-modal/resolvers.js +16 -0
  46. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  47. package/build/components/global-styles/font-library-modal/tab-layout.js +2 -2
  48. package/build/components/global-styles/font-library-modal/tab-layout.js.map +1 -1
  49. package/build/components/global-styles/font-library-modal/utils/constants.js +1 -7
  50. package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
  51. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js +21 -0
  52. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -0
  53. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js +20 -0
  54. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -0
  55. package/build/components/global-styles/font-library-modal/utils/index.js +2 -52
  56. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  57. package/build/components/global-styles/font-library-modal/utils/preview-styles.js +76 -0
  58. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -0
  59. package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js +36 -0
  60. package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -0
  61. package/build/components/global-styles/screen-typography.js +1 -1
  62. package/build/components/global-styles/screen-typography.js.map +1 -1
  63. package/build/components/header-edit-mode/document-actions/index.js +9 -8
  64. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  65. package/build/components/header-edit-mode/index.js +4 -1
  66. package/build/components/header-edit-mode/index.js.map +1 -1
  67. package/build/components/layout/index.js +5 -1
  68. package/build/components/layout/index.js.map +1 -1
  69. package/build/components/list/added-by.js +13 -8
  70. package/build/components/list/added-by.js.map +1 -1
  71. package/build/components/list/index.js +2 -1
  72. package/build/components/list/index.js.map +1 -1
  73. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -3
  74. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  75. package/build/components/page-patterns/duplicate-menu-item.js +5 -5
  76. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
  77. package/build/components/page-patterns/grid-item.js +5 -5
  78. package/build/components/page-patterns/grid-item.js.map +1 -1
  79. package/build/components/page-patterns/index.js +1 -1
  80. package/build/components/page-patterns/index.js.map +1 -1
  81. package/build/components/page-patterns/search-items.js +1 -1
  82. package/build/components/page-patterns/search-items.js.map +1 -1
  83. package/build/components/page-patterns/use-patterns.js +28 -34
  84. package/build/components/page-patterns/use-patterns.js.map +1 -1
  85. package/build/components/page-template-parts/add-new-template-part.js +3 -2
  86. package/build/components/page-template-parts/add-new-template-part.js.map +1 -1
  87. package/build/components/page-template-parts/index.js +2 -1
  88. package/build/components/page-template-parts/index.js.map +1 -1
  89. package/build/components/page-templates/index.js +3 -2
  90. package/build/components/page-templates/index.js.map +1 -1
  91. package/build/components/save-hub/index.js +2 -1
  92. package/build/components/save-hub/index.js.map +1 -1
  93. package/build/components/secondary-sidebar/list-view-sidebar.js +24 -17
  94. package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  95. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +21 -3
  96. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  97. package/build/components/sidebar-edit-mode/page-panels/hooks.js +2 -1
  98. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  99. package/build/components/sidebar-edit-mode/settings-header/index.js +2 -6
  100. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  101. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +9 -2
  102. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
  103. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
  104. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
  105. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +2 -1
  106. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  107. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
  108. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  109. package/build/components/sidebar-navigation-screen-page/page-details.js +2 -1
  110. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  111. package/build/components/sidebar-navigation-screen-pages/index.js +5 -4
  112. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  113. package/build/components/sidebar-navigation-screen-pattern/index.js +2 -1
  114. package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  115. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +3 -2
  116. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  117. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -1
  118. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  119. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
  120. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  121. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +8 -7
  122. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  123. package/build/components/sidebar-navigation-screen-patterns/index.js +3 -3
  124. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  125. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +7 -2
  126. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  127. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +7 -2
  128. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  129. package/build/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
  130. package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  131. package/build/components/sidebar-navigation-screen-templates/index.js +4 -3
  132. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  133. package/build/components/sidebar-navigation-screen-templates-browse/index.js +3 -2
  134. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  135. package/build/components/start-template-options/index.js +20 -2
  136. package/build/components/start-template-options/index.js.map +1 -1
  137. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -4
  138. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  139. package/build/components/sync-state-with-url/use-sync-path-with-url.js +4 -3
  140. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  141. package/build/components/template-actions/index.js +2 -1
  142. package/build/components/template-actions/index.js.map +1 -1
  143. package/build/components/template-actions/rename-menu-item.js +8 -3
  144. package/build/components/template-actions/rename-menu-item.js.map +1 -1
  145. package/build/hooks/commands/use-edit-mode-commands.js +4 -3
  146. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  147. package/build/hooks/navigation-menu-edit.js +2 -1
  148. package/build/hooks/navigation-menu-edit.js.map +1 -1
  149. package/build/hooks/template-part-edit.js +2 -1
  150. package/build/hooks/template-part-edit.js.map +1 -1
  151. package/build/store/actions.js +10 -9
  152. package/build/store/actions.js.map +1 -1
  153. package/build/store/constants.js +1 -9
  154. package/build/store/constants.js.map +1 -1
  155. package/build/store/private-actions.js +21 -1
  156. package/build/store/private-actions.js.map +1 -1
  157. package/build/store/private-selectors.js +23 -0
  158. package/build/store/private-selectors.js.map +1 -1
  159. package/build/store/reducer.js +19 -1
  160. package/build/store/reducer.js.map +1 -1
  161. package/build/store/selectors.js +3 -2
  162. package/build/store/selectors.js.map +1 -1
  163. package/build/utils/constants.js +22 -3
  164. package/build/utils/constants.js.map +1 -1
  165. package/build/utils/is-template-removable.js +1 -1
  166. package/build/utils/is-template-removable.js.map +1 -1
  167. package/build/utils/is-template-revertable.js +1 -1
  168. package/build/utils/is-template-revertable.js.map +1 -1
  169. package/build/utils/template-part-create.js +6 -1
  170. package/build/utils/template-part-create.js.map +1 -1
  171. package/build-module/components/add-new-pattern/index.js +3 -3
  172. package/build-module/components/add-new-pattern/index.js.map +1 -1
  173. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js +65 -0
  174. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +1 -0
  175. package/build-module/components/block-editor/block-editor-provider/index.js +23 -0
  176. package/build-module/components/block-editor/block-editor-provider/index.js.map +1 -0
  177. package/build-module/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
  178. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +1 -0
  179. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js +70 -0
  180. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +1 -0
  181. package/build-module/components/block-editor/index.js +1 -8
  182. package/build-module/components/block-editor/index.js.map +1 -1
  183. package/build-module/components/block-editor/site-editor-canvas.js +2 -2
  184. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  185. package/build-module/components/create-template-part-modal/index.js +8 -12
  186. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  187. package/build-module/components/editor/index.js +4 -1
  188. package/build-module/components/editor/index.js.map +1 -1
  189. package/build-module/components/global-styles/font-families.js +3 -2
  190. package/build-module/components/global-styles/font-families.js.map +1 -1
  191. package/build-module/components/global-styles/font-family-item.js +2 -2
  192. package/build-module/components/global-styles/font-family-item.js.map +1 -1
  193. package/build-module/components/global-styles/font-library-modal/collection-font-details.js +40 -0
  194. package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +1 -0
  195. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +45 -0
  196. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -0
  197. package/build-module/components/global-styles/font-library-modal/context.js +27 -3
  198. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  199. package/build-module/components/global-styles/font-library-modal/font-card.js +8 -5
  200. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
  201. package/build-module/components/global-styles/font-library-modal/font-collection.js +164 -0
  202. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -0
  203. package/build-module/components/global-styles/font-library-modal/font-demo.js +30 -13
  204. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  205. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +33 -0
  206. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -0
  207. package/build-module/components/global-styles/font-library-modal/index.js +26 -7
  208. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  209. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  210. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  211. package/build-module/components/global-styles/font-library-modal/library-font-card.js +0 -5
  212. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  213. package/build-module/components/global-styles/font-library-modal/library-font-details.js +2 -1
  214. package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  215. package/build-module/components/global-styles/font-library-modal/resolvers.js +14 -0
  216. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  217. package/build-module/components/global-styles/font-library-modal/tab-layout.js +2 -2
  218. package/build-module/components/global-styles/font-library-modal/tab-layout.js.map +1 -1
  219. package/build-module/components/global-styles/font-library-modal/utils/constants.js +1 -6
  220. package/build-module/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
  221. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js +15 -0
  222. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -0
  223. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js +13 -0
  224. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -0
  225. package/build-module/components/global-styles/font-library-modal/utils/index.js +2 -51
  226. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  227. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +68 -0
  228. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -0
  229. package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js +30 -0
  230. package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -0
  231. package/build-module/components/global-styles/screen-typography.js +1 -1
  232. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  233. package/build-module/components/header-edit-mode/document-actions/index.js +9 -8
  234. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  235. package/build-module/components/header-edit-mode/index.js +4 -1
  236. package/build-module/components/header-edit-mode/index.js.map +1 -1
  237. package/build-module/components/layout/index.js +5 -1
  238. package/build-module/components/layout/index.js.map +1 -1
  239. package/build-module/components/list/added-by.js +13 -8
  240. package/build-module/components/list/added-by.js.map +1 -1
  241. package/build-module/components/list/index.js +2 -1
  242. package/build-module/components/list/index.js.map +1 -1
  243. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -3
  244. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  245. package/build-module/components/page-patterns/duplicate-menu-item.js +5 -5
  246. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
  247. package/build-module/components/page-patterns/grid-item.js +5 -5
  248. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  249. package/build-module/components/page-patterns/index.js +1 -1
  250. package/build-module/components/page-patterns/index.js.map +1 -1
  251. package/build-module/components/page-patterns/search-items.js +2 -2
  252. package/build-module/components/page-patterns/search-items.js.map +1 -1
  253. package/build-module/components/page-patterns/use-patterns.js +28 -35
  254. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  255. package/build-module/components/page-template-parts/add-new-template-part.js +3 -2
  256. package/build-module/components/page-template-parts/add-new-template-part.js.map +1 -1
  257. package/build-module/components/page-template-parts/index.js +2 -1
  258. package/build-module/components/page-template-parts/index.js.map +1 -1
  259. package/build-module/components/page-templates/index.js +3 -2
  260. package/build-module/components/page-templates/index.js.map +1 -1
  261. package/build-module/components/save-hub/index.js +2 -1
  262. package/build-module/components/save-hub/index.js.map +1 -1
  263. package/build-module/components/secondary-sidebar/list-view-sidebar.js +26 -19
  264. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  265. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +21 -3
  266. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  267. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +2 -1
  268. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  269. package/build-module/components/sidebar-edit-mode/settings-header/index.js +2 -6
  270. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  271. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +9 -2
  272. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
  273. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
  274. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
  275. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +3 -1
  276. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  277. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
  278. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  279. package/build-module/components/sidebar-navigation-screen-page/page-details.js +2 -1
  280. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  281. package/build-module/components/sidebar-navigation-screen-pages/index.js +5 -4
  282. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  283. package/build-module/components/sidebar-navigation-screen-pattern/index.js +2 -1
  284. package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  285. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +3 -2
  286. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  287. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -1
  288. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  289. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
  290. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  291. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +8 -7
  292. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  293. package/build-module/components/sidebar-navigation-screen-patterns/index.js +4 -4
  294. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  295. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +8 -3
  296. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  297. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +7 -2
  298. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  299. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
  300. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  301. package/build-module/components/sidebar-navigation-screen-templates/index.js +4 -3
  302. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  303. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +3 -2
  304. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  305. package/build-module/components/start-template-options/index.js +20 -2
  306. package/build-module/components/start-template-options/index.js.map +1 -1
  307. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -4
  308. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  309. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +4 -3
  310. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  311. package/build-module/components/template-actions/index.js +2 -1
  312. package/build-module/components/template-actions/index.js.map +1 -1
  313. package/build-module/components/template-actions/rename-menu-item.js +8 -3
  314. package/build-module/components/template-actions/rename-menu-item.js.map +1 -1
  315. package/build-module/hooks/commands/use-edit-mode-commands.js +4 -3
  316. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  317. package/build-module/hooks/navigation-menu-edit.js +2 -1
  318. package/build-module/hooks/navigation-menu-edit.js.map +1 -1
  319. package/build-module/hooks/template-part-edit.js +2 -1
  320. package/build-module/hooks/template-part-edit.js.map +1 -1
  321. package/build-module/store/actions.js +10 -10
  322. package/build-module/store/actions.js.map +1 -1
  323. package/build-module/store/constants.js +0 -4
  324. package/build-module/store/constants.js.map +1 -1
  325. package/build-module/store/private-actions.js +19 -0
  326. package/build-module/store/private-actions.js.map +1 -1
  327. package/build-module/store/private-selectors.js +22 -0
  328. package/build-module/store/private-selectors.js.map +1 -1
  329. package/build-module/store/reducer.js +18 -1
  330. package/build-module/store/reducer.js.map +1 -1
  331. package/build-module/store/selectors.js +3 -3
  332. package/build-module/store/selectors.js.map +1 -1
  333. package/build-module/utils/constants.js +17 -1
  334. package/build-module/utils/constants.js.map +1 -1
  335. package/build-module/utils/is-template-removable.js +2 -2
  336. package/build-module/utils/is-template-removable.js.map +1 -1
  337. package/build-module/utils/is-template-revertable.js +2 -2
  338. package/build-module/utils/is-template-revertable.js.map +1 -1
  339. package/build-module/utils/template-part-create.js +6 -1
  340. package/build-module/utils/template-part-create.js.map +1 -1
  341. package/build-style/style-rtl.css +23 -0
  342. package/build-style/style.css +23 -0
  343. package/package.json +40 -40
  344. package/src/components/add-new-pattern/index.js +3 -3
  345. package/src/components/block-editor/block-editor-provider/default-block-editor-provider.js +70 -0
  346. package/src/components/block-editor/block-editor-provider/index.js +29 -0
  347. package/src/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
  348. package/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js +87 -0
  349. package/src/components/block-editor/block-editor-provider/use-page-content-blocks.js +77 -0
  350. package/src/components/block-editor/index.js +1 -14
  351. package/src/components/block-editor/site-editor-canvas.js +5 -2
  352. package/src/components/create-template-part-modal/index.js +11 -12
  353. package/src/components/editor/index.js +6 -2
  354. package/src/components/global-styles/font-families.js +5 -1
  355. package/src/components/global-styles/font-family-item.js +2 -2
  356. package/src/components/global-styles/font-library-modal/collection-font-details.js +56 -0
  357. package/src/components/global-styles/font-library-modal/collection-font-variant.js +45 -0
  358. package/src/components/global-styles/font-library-modal/context.js +33 -2
  359. package/src/components/global-styles/font-library-modal/font-card.js +9 -4
  360. package/src/components/global-styles/font-library-modal/font-collection.js +257 -0
  361. package/src/components/global-styles/font-library-modal/font-demo.js +36 -10
  362. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +50 -0
  363. package/src/components/global-styles/font-library-modal/index.js +30 -5
  364. package/src/components/global-styles/font-library-modal/installed-fonts.js +1 -1
  365. package/src/components/global-styles/font-library-modal/library-font-card.js +1 -8
  366. package/src/components/global-styles/font-library-modal/library-font-details.js +2 -3
  367. package/src/components/global-styles/font-library-modal/resolvers.js +16 -0
  368. package/src/components/global-styles/font-library-modal/style.scss +26 -0
  369. package/src/components/global-styles/font-library-modal/tab-layout.js +2 -2
  370. package/src/components/global-styles/font-library-modal/utils/constants.js +1 -9
  371. package/src/components/global-styles/font-library-modal/utils/filter-fonts.js +18 -0
  372. package/src/components/global-styles/font-library-modal/utils/fonts-outline.js +21 -0
  373. package/src/components/global-styles/font-library-modal/utils/index.js +9 -69
  374. package/src/components/global-styles/font-library-modal/utils/preview-styles.js +86 -0
  375. package/src/components/global-styles/font-library-modal/utils/sort-font-faces.js +33 -0
  376. package/src/components/global-styles/font-library-modal/utils/test/filter-fonts.spec.js +69 -0
  377. package/src/components/global-styles/font-library-modal/utils/test/fonts-outline.spec.js +109 -0
  378. package/src/components/global-styles/font-library-modal/utils/test/{getPreviewStyle.spec.js → preview-styles.spec.js} +49 -9
  379. package/src/components/global-styles/font-library-modal/utils/test/sort-font-faces.js +74 -0
  380. package/src/components/global-styles/screen-typography.js +4 -1
  381. package/src/components/header-edit-mode/document-actions/index.js +17 -8
  382. package/src/components/header-edit-mode/index.js +2 -1
  383. package/src/components/layout/index.js +10 -1
  384. package/src/components/list/added-by.js +29 -11
  385. package/src/components/list/index.js +7 -1
  386. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -8
  387. package/src/components/page-patterns/duplicate-menu-item.js +5 -5
  388. package/src/components/page-patterns/grid-item.js +5 -5
  389. package/src/components/page-patterns/index.js +1 -1
  390. package/src/components/page-patterns/search-items.js +7 -1
  391. package/src/components/page-patterns/use-patterns.js +190 -134
  392. package/src/components/page-template-parts/add-new-template-part.js +5 -2
  393. package/src/components/page-template-parts/index.js +2 -1
  394. package/src/components/page-templates/index.js +3 -2
  395. package/src/components/save-hub/index.js +2 -1
  396. package/src/components/secondary-sidebar/list-view-sidebar.js +31 -26
  397. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +48 -20
  398. package/src/components/sidebar-edit-mode/page-panels/hooks.js +9 -4
  399. package/src/components/sidebar-edit-mode/page-panels/style.scss +6 -0
  400. package/src/components/sidebar-edit-mode/settings-header/index.js +4 -7
  401. package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +9 -2
  402. package/src/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
  403. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +3 -1
  404. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
  405. package/src/components/sidebar-navigation-screen-page/page-details.js +2 -1
  406. package/src/components/sidebar-navigation-screen-pages/index.js +5 -4
  407. package/src/components/sidebar-navigation-screen-pattern/index.js +2 -1
  408. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +8 -2
  409. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +7 -1
  410. package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
  411. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +18 -8
  412. package/src/components/sidebar-navigation-screen-patterns/index.js +8 -4
  413. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +16 -3
  414. package/src/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +12 -2
  415. package/src/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
  416. package/src/components/sidebar-navigation-screen-templates/index.js +4 -3
  417. package/src/components/sidebar-navigation-screen-templates-browse/index.js +6 -2
  418. package/src/components/start-template-options/index.js +39 -2
  419. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +10 -4
  420. package/src/components/sync-state-with-url/use-sync-path-with-url.js +8 -3
  421. package/src/components/template-actions/index.js +2 -1
  422. package/src/components/template-actions/rename-menu-item.js +8 -3
  423. package/src/hooks/commands/use-edit-mode-commands.js +4 -3
  424. package/src/hooks/navigation-menu-edit.js +2 -1
  425. package/src/hooks/template-part-edit.js +2 -1
  426. package/src/store/actions.js +18 -10
  427. package/src/store/constants.js +0 -5
  428. package/src/store/private-actions.js +19 -0
  429. package/src/store/private-selectors.js +22 -0
  430. package/src/store/reducer.js +18 -0
  431. package/src/store/selectors.js +6 -3
  432. package/src/store/test/reducer.js +18 -0
  433. package/src/utils/constants.js +17 -1
  434. package/src/utils/is-template-removable.js +2 -2
  435. package/src/utils/is-template-revertable.js +2 -2
  436. package/src/utils/template-part-create.js +6 -1
  437. package/build/components/block-editor/get-block-editor-provider.js +0 -35
  438. package/build/components/block-editor/get-block-editor-provider.js.map +0 -1
  439. package/build/components/block-editor/providers/default-block-editor-provider.js +0 -49
  440. package/build/components/block-editor/providers/default-block-editor-provider.js.map +0 -1
  441. package/build/components/block-editor/providers/navigation-block-editor-provider.js.map +0 -1
  442. package/build-module/components/block-editor/get-block-editor-provider.js +0 -28
  443. package/build-module/components/block-editor/get-block-editor-provider.js.map +0 -1
  444. package/build-module/components/block-editor/providers/default-block-editor-provider.js +0 -41
  445. package/build-module/components/block-editor/providers/default-block-editor-provider.js.map +0 -1
  446. package/build-module/components/block-editor/providers/navigation-block-editor-provider.js.map +0 -1
  447. package/src/components/block-editor/get-block-editor-provider.js +0 -29
  448. package/src/components/block-editor/providers/default-block-editor-provider.js +0 -44
@@ -104,6 +104,7 @@ export default function Layout() {
104
104
  const [isResizing] = useState(false);
105
105
  const isEditorLoading = useIsSiteEditorLoading();
106
106
  const [isResizableFrameOversized, setIsResizableFrameOversized] = useState(false);
107
+ const [listViewToggleElement, setListViewToggleElement] = useState(null);
107
108
 
108
109
  // This determines which animation variant should apply to the header.
109
110
  // There is also a `isDistractionFreeHovering` state that gets priority
@@ -231,7 +232,9 @@ export default function Layout() {
231
232
  duration: disableMotion ? 0 : 0.2,
232
233
  ease: 'easeOut'
233
234
  }
234
- }, createElement(Header, null)))), createElement("div", {
235
+ }, createElement(Header, {
236
+ setListViewToggleElement: setListViewToggleElement
237
+ })))), createElement("div", {
235
238
  className: "edit-site-layout__content"
236
239
  }, createElement(NavigableRegion, {
237
240
  ariaLabel: __('Navigation'),
@@ -288,6 +291,7 @@ export default function Layout() {
288
291
  background: gradientValue !== null && gradientValue !== void 0 ? gradientValue : backgroundColor
289
292
  }
290
293
  }, createElement(Editor, {
294
+ listViewToggleElement: listViewToggleElement,
291
295
  isLoading: isEditorLoading
292
296
  })))))))));
293
297
  }
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useSelect","__unstableMotion","motion","__unstableAnimatePresence","AnimatePresence","__unstableUseNavigateRegions","useNavigateRegions","useReducedMotion","useViewportMatch","useResizeObserver","__","useState","useRef","NavigableRegion","store","keyboardShortcutsStore","CommandMenu","privateApis","commandsPrivateApis","preferencesStore","blockEditorPrivateApis","useBlockCommands","routerPrivateApis","coreCommandsPrivateApis","Sidebar","Editor","ErrorBoundary","editSiteStore","getIsListPage","Header","useInitEditedEntityFromURL","SiteHub","ResizableFrame","useSyncCanvasModeWithURL","unlock","SavePanel","KeyboardShortcutsRegister","KeyboardShortcutsGlobal","useCommonCommands","useEditModeCommands","PageMain","useIsSiteEditorLoading","useCommands","useCommandContext","useLocation","useGlobalStyle","ANIMATION_DURATION","Layout","hubRef","params","isMobileViewport","isListPage","isEditorPage","isDistractionFree","hasFixedToolbar","canvasMode","previousShortcut","nextShortcut","select","getAllShortcutKeyCombinations","getCanvasMode","get","isEditing","navigateRegionsProps","previous","next","disableMotion","showSidebar","showCanvas","isFullCanvas","canvasResizer","canvasSize","fullResizer","isResizing","isEditorLoading","isResizableFrameOversized","setIsResizableFrameOversized","headerAnimationState","commandContext","backgroundColor","gradientValue","createElement","Fragment","ref","className","div","variants","opacity","transition","type","delay","delayChildren","isDistractionFreeHovering","view","edit","whileHover","undefined","animate","x","isTransparent","initial","key","ariaLabel","as","y","exit","duration","ease","inert","width","scale","layout","isReady","isFullWidth","defaultSize","height","isOversized","setIsOversized","innerContentStyle","background","isLoading"],"sources":["@wordpress/edit-site/src/components/layout/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n\t__unstableUseNavigateRegions as useNavigateRegions,\n} from '@wordpress/components';\nimport {\n\tuseReducedMotion,\n\tuseViewportMatch,\n\tuseResizeObserver,\n} from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useRef } from '@wordpress/element';\nimport { NavigableRegion } from '@wordpress/interface';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport {\n\tCommandMenu,\n\tprivateApis as commandsPrivateApis,\n} from '@wordpress/commands';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tuseBlockCommands,\n} from '@wordpress/block-editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { privateApis as coreCommandsPrivateApis } from '@wordpress/core-commands';\n\n/**\n * Internal dependencies\n */\nimport Sidebar from '../sidebar';\nimport Editor from '../editor';\nimport ErrorBoundary from '../error-boundary';\nimport { store as editSiteStore } from '../../store';\nimport getIsListPage from '../../utils/get-is-list-page';\nimport Header from '../header-edit-mode';\nimport useInitEditedEntityFromURL from '../sync-state-with-url/use-init-edited-entity-from-url';\nimport SiteHub from '../site-hub';\nimport ResizableFrame from '../resizable-frame';\nimport useSyncCanvasModeWithURL from '../sync-state-with-url/use-sync-canvas-mode-with-url';\nimport { unlock } from '../../lock-unlock';\nimport SavePanel from '../save-panel';\nimport KeyboardShortcutsRegister from '../keyboard-shortcuts/register';\nimport KeyboardShortcutsGlobal from '../keyboard-shortcuts/global';\nimport { useCommonCommands } from '../../hooks/commands/use-common-commands';\nimport { useEditModeCommands } from '../../hooks/commands/use-edit-mode-commands';\nimport PageMain from '../page-main';\nimport { useIsSiteEditorLoading } from './hooks';\n\nconst { useCommands } = unlock( coreCommandsPrivateApis );\nconst { useCommandContext } = unlock( commandsPrivateApis );\nconst { useLocation } = unlock( routerPrivateApis );\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nconst ANIMATION_DURATION = 0.5;\n\nexport default function Layout() {\n\t// This ensures the edited entity id and type are initialized properly.\n\tuseInitEditedEntityFromURL();\n\tuseSyncCanvasModeWithURL();\n\tuseCommands();\n\tuseEditModeCommands();\n\tuseCommonCommands();\n\tuseBlockCommands();\n\n\tconst hubRef = useRef();\n\tconst { params } = useLocation();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isListPage = getIsListPage( params, isMobileViewport );\n\tconst isEditorPage = ! isListPage;\n\n\tconst {\n\t\tisDistractionFree,\n\t\thasFixedToolbar,\n\t\tcanvasMode,\n\t\tpreviousShortcut,\n\t\tnextShortcut,\n\t} = useSelect( ( select ) => {\n\t\tconst { getAllShortcutKeyCombinations } = select(\n\t\t\tkeyboardShortcutsStore\n\t\t);\n\t\tconst { getCanvasMode } = unlock( select( editSiteStore ) );\n\t\treturn {\n\t\t\tcanvasMode: getCanvasMode(),\n\t\t\tpreviousShortcut: getAllShortcutKeyCombinations(\n\t\t\t\t'core/edit-site/previous-region'\n\t\t\t),\n\t\t\tnextShortcut: getAllShortcutKeyCombinations(\n\t\t\t\t'core/edit-site/next-region'\n\t\t\t),\n\t\t\thasFixedToolbar: select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tisDistractionFree: select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'distractionFree'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst isEditing = canvasMode === 'edit';\n\tconst navigateRegionsProps = useNavigateRegions( {\n\t\tprevious: previousShortcut,\n\t\tnext: nextShortcut,\n\t} );\n\tconst disableMotion = useReducedMotion();\n\tconst showSidebar =\n\t\t( isMobileViewport && ! isListPage ) ||\n\t\t( ! isMobileViewport && ( canvasMode === 'view' || ! isEditorPage ) );\n\tconst showCanvas =\n\t\t( isMobileViewport && isEditorPage && isEditing ) ||\n\t\t! isMobileViewport ||\n\t\t! isEditorPage;\n\tconst isFullCanvas =\n\t\t( isMobileViewport && isListPage ) || ( isEditorPage && isEditing );\n\tconst [ canvasResizer, canvasSize ] = useResizeObserver();\n\tconst [ fullResizer ] = useResizeObserver();\n\tconst [ isResizing ] = useState( false );\n\tconst isEditorLoading = useIsSiteEditorLoading();\n\tconst [ isResizableFrameOversized, setIsResizableFrameOversized ] =\n\t\tuseState( false );\n\n\t// This determines which animation variant should apply to the header.\n\t// There is also a `isDistractionFreeHovering` state that gets priority\n\t// when hovering the `edit-site-layout__header-container` in distraction\n\t// free mode. It's set via framer and trickles down to all the children\n\t// so they can use this variant state too.\n\t//\n\t// TODO: The issue with this is we want to have the hover state stick when hovering\n\t// a popover opened via the header. We'll probably need to lift this state to\n\t// handle it ourselves. Also, focusWithin the header needs to be handled.\n\tlet headerAnimationState;\n\n\tif ( canvasMode === 'view' ) {\n\t\t// We need 'view' to always take priority so 'isDistractionFree'\n\t\t// doesn't bleed over into the view (sidebar) state\n\t\theaderAnimationState = 'view';\n\t} else if ( isDistractionFree ) {\n\t\theaderAnimationState = 'isDistractionFree';\n\t} else {\n\t\theaderAnimationState = canvasMode; // edit, view, init\n\t}\n\n\t// Sets the right context for the command palette\n\tconst commandContext =\n\t\tcanvasMode === 'edit' && isEditorPage\n\t\t\t? 'site-editor-edit'\n\t\t\t: 'site-editor';\n\tuseCommandContext( commandContext );\n\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst [ gradientValue ] = useGlobalStyle( 'color.gradient' );\n\n\t// Synchronizing the URL with the store value of canvasMode happens in an effect\n\t// This condition ensures the component is only rendered after the synchronization happens\n\t// which prevents any animations due to potential canvasMode value change.\n\tif ( canvasMode === 'init' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<CommandMenu />\n\t\t\t<KeyboardShortcutsRegister />\n\t\t\t<KeyboardShortcutsGlobal />\n\t\t\t{ fullResizer }\n\t\t\t<div\n\t\t\t\t{ ...navigateRegionsProps }\n\t\t\t\tref={ navigateRegionsProps.ref }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'edit-site-layout',\n\t\t\t\t\tnavigateRegionsProps.className,\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-distraction-free': isDistractionFree && isEditing,\n\t\t\t\t\t\t'is-full-canvas': isFullCanvas,\n\t\t\t\t\t\t'is-edit-mode': isEditing,\n\t\t\t\t\t\t'has-fixed-toolbar': hasFixedToolbar,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<motion.div\n\t\t\t\t\tclassName=\"edit-site-layout__header-container\"\n\t\t\t\t\tvariants={ {\n\t\t\t\t\t\tisDistractionFree: {\n\t\t\t\t\t\t\topacity: 0,\n\t\t\t\t\t\t\ttransition: {\n\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\tdelay: 0.8,\n\t\t\t\t\t\t\t\tdelayChildren: 0.8,\n\t\t\t\t\t\t\t}, // How long to wait before the header exits\n\t\t\t\t\t\t},\n\t\t\t\t\t\tisDistractionFreeHovering: {\n\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\ttransition: {\n\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\tdelay: 0.2,\n\t\t\t\t\t\t\t\tdelayChildren: 0.2,\n\t\t\t\t\t\t\t}, // How long to wait before the header shows\n\t\t\t\t\t\t},\n\t\t\t\t\t\tview: { opacity: 1 },\n\t\t\t\t\t\tedit: { opacity: 1 },\n\t\t\t\t\t} }\n\t\t\t\t\twhileHover={\n\t\t\t\t\t\tisDistractionFree\n\t\t\t\t\t\t\t? 'isDistractionFreeHovering'\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tanimate={ headerAnimationState }\n\t\t\t\t>\n\t\t\t\t\t<SiteHub\n\t\t\t\t\t\tvariants={ {\n\t\t\t\t\t\t\tisDistractionFree: { x: '-100%' },\n\t\t\t\t\t\t\tisDistractionFreeHovering: { x: 0 },\n\t\t\t\t\t\t\tview: { x: 0 },\n\t\t\t\t\t\t\tedit: { x: 0 },\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tref={ hubRef }\n\t\t\t\t\t\tisTransparent={ isResizableFrameOversized }\n\t\t\t\t\t\tclassName=\"edit-site-layout__hub\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<AnimatePresence initial={ false }>\n\t\t\t\t\t\t{ isEditorPage && isEditing && (\n\t\t\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\t\t\tkey=\"header\"\n\t\t\t\t\t\t\t\tclassName=\"edit-site-layout__header\"\n\t\t\t\t\t\t\t\tariaLabel={ __( 'Editor top bar' ) }\n\t\t\t\t\t\t\t\tas={ motion.div }\n\t\t\t\t\t\t\t\tvariants={ {\n\t\t\t\t\t\t\t\t\tisDistractionFree: { opacity: 0, y: 0 },\n\t\t\t\t\t\t\t\t\tisDistractionFreeHovering: {\n\t\t\t\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tview: { opacity: 1, y: '-100%' },\n\t\t\t\t\t\t\t\t\tedit: { opacity: 1, y: 0 },\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\texit={ {\n\t\t\t\t\t\t\t\t\ty: '-100%',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tinitial={ {\n\t\t\t\t\t\t\t\t\topacity: isDistractionFree ? 1 : 0,\n\t\t\t\t\t\t\t\t\ty: isDistractionFree ? 0 : '-100%',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\t\tduration: disableMotion ? 0 : 0.2,\n\t\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Header />\n\t\t\t\t\t\t\t</NavigableRegion>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</AnimatePresence>\n\t\t\t\t</motion.div>\n\n\t\t\t\t<div className=\"edit-site-layout__content\">\n\t\t\t\t\t{ /*\n\t\t\t\t\t\tThe NavigableRegion must always be rendered and not use\n\t\t\t\t\t\t`inert` otherwise `useNavigateRegions` will fail.\n\t\t\t\t\t*/ }\n\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\tariaLabel={ __( 'Navigation' ) }\n\t\t\t\t\t\tclassName=\"edit-site-layout__sidebar-region\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t// The sidebar is needed for routing on mobile\n\t\t\t\t\t\t\t// (https://github.com/WordPress/gutenberg/pull/51558/files#r1231763003),\n\t\t\t\t\t\t\t// so we can't remove the element entirely. Using `inert` will make\n\t\t\t\t\t\t\t// it inaccessible to screen readers and keyboard navigation.\n\t\t\t\t\t\t\tinert={ showSidebar ? undefined : 'inert' }\n\t\t\t\t\t\t\tanimate={ { opacity: showSidebar ? 1 : 0 } }\n\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\tduration:\n\t\t\t\t\t\t\t\t\t// Disable transition in mobile to emulate a full page transition.\n\t\t\t\t\t\t\t\t\tdisableMotion || isMobileViewport\n\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t: ANIMATION_DURATION,\n\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tclassName=\"edit-site-layout__sidebar\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Sidebar />\n\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t</NavigableRegion>\n\n\t\t\t\t\t<SavePanel />\n\n\t\t\t\t\t{ showCanvas && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ isListPage && <PageMain /> }\n\t\t\t\t\t\t\t{ isEditorPage && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t'edit-site-layout__canvas-container',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'is-resizing': isResizing,\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>\n\t\t\t\t\t\t\t\t\t{ canvasResizer }\n\t\t\t\t\t\t\t\t\t{ !! canvasSize.width && (\n\t\t\t\t\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t\t\t\t\twhileHover={\n\t\t\t\t\t\t\t\t\t\t\t\tisEditorPage &&\n\t\t\t\t\t\t\t\t\t\t\t\tcanvasMode === 'view'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tscale: 1.005,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tduration:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisableMotion ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisResizing\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0.5,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tinitial={ false }\n\t\t\t\t\t\t\t\t\t\t\tlayout=\"position\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t\t\t'edit-site-layout__canvas',\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t'is-right-aligned':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisResizableFrameOversized,\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\t\t\t\t\tduration:\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisableMotion || isResizing\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: ANIMATION_DURATION,\n\t\t\t\t\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t\t<ResizableFrame\n\t\t\t\t\t\t\t\t\t\t\t\t\tisReady={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t! isEditorLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tisFullWidth={ isEditing }\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultSize={ {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcanvasSize.width -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t24 /* $canvas-padding */,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: canvasSize.height,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tisOversized={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisResizableFrameOversized\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsOversized={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsResizableFrameOversized\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tinnerContentStyle={ {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgradientValue ??\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Editor\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisEditorLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</ResizableFrame>\n\t\t\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\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</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","useSelect","__unstableMotion","motion","__unstableAnimatePresence","AnimatePresence","__unstableUseNavigateRegions","useNavigateRegions","useReducedMotion","useViewportMatch","useResizeObserver","__","useState","useRef","NavigableRegion","store","keyboardShortcutsStore","CommandMenu","privateApis","commandsPrivateApis","preferencesStore","blockEditorPrivateApis","useBlockCommands","routerPrivateApis","coreCommandsPrivateApis","Sidebar","Editor","ErrorBoundary","editSiteStore","getIsListPage","Header","useInitEditedEntityFromURL","SiteHub","ResizableFrame","useSyncCanvasModeWithURL","unlock","SavePanel","KeyboardShortcutsRegister","KeyboardShortcutsGlobal","useCommonCommands","useEditModeCommands","PageMain","useIsSiteEditorLoading","useCommands","useCommandContext","useLocation","useGlobalStyle","ANIMATION_DURATION","Layout","hubRef","params","isMobileViewport","isListPage","isEditorPage","isDistractionFree","hasFixedToolbar","canvasMode","previousShortcut","nextShortcut","select","getAllShortcutKeyCombinations","getCanvasMode","get","isEditing","navigateRegionsProps","previous","next","disableMotion","showSidebar","showCanvas","isFullCanvas","canvasResizer","canvasSize","fullResizer","isResizing","isEditorLoading","isResizableFrameOversized","setIsResizableFrameOversized","listViewToggleElement","setListViewToggleElement","headerAnimationState","commandContext","backgroundColor","gradientValue","createElement","Fragment","ref","className","div","variants","opacity","transition","type","delay","delayChildren","isDistractionFreeHovering","view","edit","whileHover","undefined","animate","x","isTransparent","initial","key","ariaLabel","as","y","exit","duration","ease","inert","width","scale","layout","isReady","isFullWidth","defaultSize","height","isOversized","setIsOversized","innerContentStyle","background","isLoading"],"sources":["@wordpress/edit-site/src/components/layout/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n\t__unstableUseNavigateRegions as useNavigateRegions,\n} from '@wordpress/components';\nimport {\n\tuseReducedMotion,\n\tuseViewportMatch,\n\tuseResizeObserver,\n} from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useRef } from '@wordpress/element';\nimport { NavigableRegion } from '@wordpress/interface';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport {\n\tCommandMenu,\n\tprivateApis as commandsPrivateApis,\n} from '@wordpress/commands';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tuseBlockCommands,\n} from '@wordpress/block-editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { privateApis as coreCommandsPrivateApis } from '@wordpress/core-commands';\n\n/**\n * Internal dependencies\n */\nimport Sidebar from '../sidebar';\nimport Editor from '../editor';\nimport ErrorBoundary from '../error-boundary';\nimport { store as editSiteStore } from '../../store';\nimport getIsListPage from '../../utils/get-is-list-page';\nimport Header from '../header-edit-mode';\nimport useInitEditedEntityFromURL from '../sync-state-with-url/use-init-edited-entity-from-url';\nimport SiteHub from '../site-hub';\nimport ResizableFrame from '../resizable-frame';\nimport useSyncCanvasModeWithURL from '../sync-state-with-url/use-sync-canvas-mode-with-url';\nimport { unlock } from '../../lock-unlock';\nimport SavePanel from '../save-panel';\nimport KeyboardShortcutsRegister from '../keyboard-shortcuts/register';\nimport KeyboardShortcutsGlobal from '../keyboard-shortcuts/global';\nimport { useCommonCommands } from '../../hooks/commands/use-common-commands';\nimport { useEditModeCommands } from '../../hooks/commands/use-edit-mode-commands';\nimport PageMain from '../page-main';\nimport { useIsSiteEditorLoading } from './hooks';\n\nconst { useCommands } = unlock( coreCommandsPrivateApis );\nconst { useCommandContext } = unlock( commandsPrivateApis );\nconst { useLocation } = unlock( routerPrivateApis );\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nconst ANIMATION_DURATION = 0.5;\n\nexport default function Layout() {\n\t// This ensures the edited entity id and type are initialized properly.\n\tuseInitEditedEntityFromURL();\n\tuseSyncCanvasModeWithURL();\n\tuseCommands();\n\tuseEditModeCommands();\n\tuseCommonCommands();\n\tuseBlockCommands();\n\n\tconst hubRef = useRef();\n\tconst { params } = useLocation();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isListPage = getIsListPage( params, isMobileViewport );\n\tconst isEditorPage = ! isListPage;\n\n\tconst {\n\t\tisDistractionFree,\n\t\thasFixedToolbar,\n\t\tcanvasMode,\n\t\tpreviousShortcut,\n\t\tnextShortcut,\n\t} = useSelect( ( select ) => {\n\t\tconst { getAllShortcutKeyCombinations } = select(\n\t\t\tkeyboardShortcutsStore\n\t\t);\n\t\tconst { getCanvasMode } = unlock( select( editSiteStore ) );\n\t\treturn {\n\t\t\tcanvasMode: getCanvasMode(),\n\t\t\tpreviousShortcut: getAllShortcutKeyCombinations(\n\t\t\t\t'core/edit-site/previous-region'\n\t\t\t),\n\t\t\tnextShortcut: getAllShortcutKeyCombinations(\n\t\t\t\t'core/edit-site/next-region'\n\t\t\t),\n\t\t\thasFixedToolbar: select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tisDistractionFree: select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'distractionFree'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst isEditing = canvasMode === 'edit';\n\tconst navigateRegionsProps = useNavigateRegions( {\n\t\tprevious: previousShortcut,\n\t\tnext: nextShortcut,\n\t} );\n\tconst disableMotion = useReducedMotion();\n\tconst showSidebar =\n\t\t( isMobileViewport && ! isListPage ) ||\n\t\t( ! isMobileViewport && ( canvasMode === 'view' || ! isEditorPage ) );\n\tconst showCanvas =\n\t\t( isMobileViewport && isEditorPage && isEditing ) ||\n\t\t! isMobileViewport ||\n\t\t! isEditorPage;\n\tconst isFullCanvas =\n\t\t( isMobileViewport && isListPage ) || ( isEditorPage && isEditing );\n\tconst [ canvasResizer, canvasSize ] = useResizeObserver();\n\tconst [ fullResizer ] = useResizeObserver();\n\tconst [ isResizing ] = useState( false );\n\tconst isEditorLoading = useIsSiteEditorLoading();\n\tconst [ isResizableFrameOversized, setIsResizableFrameOversized ] =\n\t\tuseState( false );\n\tconst [ listViewToggleElement, setListViewToggleElement ] =\n\t\tuseState( null );\n\n\t// This determines which animation variant should apply to the header.\n\t// There is also a `isDistractionFreeHovering` state that gets priority\n\t// when hovering the `edit-site-layout__header-container` in distraction\n\t// free mode. It's set via framer and trickles down to all the children\n\t// so they can use this variant state too.\n\t//\n\t// TODO: The issue with this is we want to have the hover state stick when hovering\n\t// a popover opened via the header. We'll probably need to lift this state to\n\t// handle it ourselves. Also, focusWithin the header needs to be handled.\n\tlet headerAnimationState;\n\n\tif ( canvasMode === 'view' ) {\n\t\t// We need 'view' to always take priority so 'isDistractionFree'\n\t\t// doesn't bleed over into the view (sidebar) state\n\t\theaderAnimationState = 'view';\n\t} else if ( isDistractionFree ) {\n\t\theaderAnimationState = 'isDistractionFree';\n\t} else {\n\t\theaderAnimationState = canvasMode; // edit, view, init\n\t}\n\n\t// Sets the right context for the command palette\n\tconst commandContext =\n\t\tcanvasMode === 'edit' && isEditorPage\n\t\t\t? 'site-editor-edit'\n\t\t\t: 'site-editor';\n\tuseCommandContext( commandContext );\n\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst [ gradientValue ] = useGlobalStyle( 'color.gradient' );\n\n\t// Synchronizing the URL with the store value of canvasMode happens in an effect\n\t// This condition ensures the component is only rendered after the synchronization happens\n\t// which prevents any animations due to potential canvasMode value change.\n\tif ( canvasMode === 'init' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<CommandMenu />\n\t\t\t<KeyboardShortcutsRegister />\n\t\t\t<KeyboardShortcutsGlobal />\n\t\t\t{ fullResizer }\n\t\t\t<div\n\t\t\t\t{ ...navigateRegionsProps }\n\t\t\t\tref={ navigateRegionsProps.ref }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'edit-site-layout',\n\t\t\t\t\tnavigateRegionsProps.className,\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-distraction-free': isDistractionFree && isEditing,\n\t\t\t\t\t\t'is-full-canvas': isFullCanvas,\n\t\t\t\t\t\t'is-edit-mode': isEditing,\n\t\t\t\t\t\t'has-fixed-toolbar': hasFixedToolbar,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<motion.div\n\t\t\t\t\tclassName=\"edit-site-layout__header-container\"\n\t\t\t\t\tvariants={ {\n\t\t\t\t\t\tisDistractionFree: {\n\t\t\t\t\t\t\topacity: 0,\n\t\t\t\t\t\t\ttransition: {\n\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\tdelay: 0.8,\n\t\t\t\t\t\t\t\tdelayChildren: 0.8,\n\t\t\t\t\t\t\t}, // How long to wait before the header exits\n\t\t\t\t\t\t},\n\t\t\t\t\t\tisDistractionFreeHovering: {\n\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\ttransition: {\n\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\tdelay: 0.2,\n\t\t\t\t\t\t\t\tdelayChildren: 0.2,\n\t\t\t\t\t\t\t}, // How long to wait before the header shows\n\t\t\t\t\t\t},\n\t\t\t\t\t\tview: { opacity: 1 },\n\t\t\t\t\t\tedit: { opacity: 1 },\n\t\t\t\t\t} }\n\t\t\t\t\twhileHover={\n\t\t\t\t\t\tisDistractionFree\n\t\t\t\t\t\t\t? 'isDistractionFreeHovering'\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tanimate={ headerAnimationState }\n\t\t\t\t>\n\t\t\t\t\t<SiteHub\n\t\t\t\t\t\tvariants={ {\n\t\t\t\t\t\t\tisDistractionFree: { x: '-100%' },\n\t\t\t\t\t\t\tisDistractionFreeHovering: { x: 0 },\n\t\t\t\t\t\t\tview: { x: 0 },\n\t\t\t\t\t\t\tedit: { x: 0 },\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tref={ hubRef }\n\t\t\t\t\t\tisTransparent={ isResizableFrameOversized }\n\t\t\t\t\t\tclassName=\"edit-site-layout__hub\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<AnimatePresence initial={ false }>\n\t\t\t\t\t\t{ isEditorPage && isEditing && (\n\t\t\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\t\t\tkey=\"header\"\n\t\t\t\t\t\t\t\tclassName=\"edit-site-layout__header\"\n\t\t\t\t\t\t\t\tariaLabel={ __( 'Editor top bar' ) }\n\t\t\t\t\t\t\t\tas={ motion.div }\n\t\t\t\t\t\t\t\tvariants={ {\n\t\t\t\t\t\t\t\t\tisDistractionFree: { opacity: 0, y: 0 },\n\t\t\t\t\t\t\t\t\tisDistractionFreeHovering: {\n\t\t\t\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tview: { opacity: 1, y: '-100%' },\n\t\t\t\t\t\t\t\t\tedit: { opacity: 1, y: 0 },\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\texit={ {\n\t\t\t\t\t\t\t\t\ty: '-100%',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tinitial={ {\n\t\t\t\t\t\t\t\t\topacity: isDistractionFree ? 1 : 0,\n\t\t\t\t\t\t\t\t\ty: isDistractionFree ? 0 : '-100%',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\t\tduration: disableMotion ? 0 : 0.2,\n\t\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Header\n\t\t\t\t\t\t\t\t\tsetListViewToggleElement={\n\t\t\t\t\t\t\t\t\t\tsetListViewToggleElement\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</NavigableRegion>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</AnimatePresence>\n\t\t\t\t</motion.div>\n\n\t\t\t\t<div className=\"edit-site-layout__content\">\n\t\t\t\t\t{ /*\n\t\t\t\t\t\tThe NavigableRegion must always be rendered and not use\n\t\t\t\t\t\t`inert` otherwise `useNavigateRegions` will fail.\n\t\t\t\t\t*/ }\n\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\tariaLabel={ __( 'Navigation' ) }\n\t\t\t\t\t\tclassName=\"edit-site-layout__sidebar-region\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t// The sidebar is needed for routing on mobile\n\t\t\t\t\t\t\t// (https://github.com/WordPress/gutenberg/pull/51558/files#r1231763003),\n\t\t\t\t\t\t\t// so we can't remove the element entirely. Using `inert` will make\n\t\t\t\t\t\t\t// it inaccessible to screen readers and keyboard navigation.\n\t\t\t\t\t\t\tinert={ showSidebar ? undefined : 'inert' }\n\t\t\t\t\t\t\tanimate={ { opacity: showSidebar ? 1 : 0 } }\n\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\tduration:\n\t\t\t\t\t\t\t\t\t// Disable transition in mobile to emulate a full page transition.\n\t\t\t\t\t\t\t\t\tdisableMotion || isMobileViewport\n\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t: ANIMATION_DURATION,\n\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tclassName=\"edit-site-layout__sidebar\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Sidebar />\n\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t</NavigableRegion>\n\n\t\t\t\t\t<SavePanel />\n\n\t\t\t\t\t{ showCanvas && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ isListPage && <PageMain /> }\n\t\t\t\t\t\t\t{ isEditorPage && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t'edit-site-layout__canvas-container',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'is-resizing': isResizing,\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>\n\t\t\t\t\t\t\t\t\t{ canvasResizer }\n\t\t\t\t\t\t\t\t\t{ !! canvasSize.width && (\n\t\t\t\t\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t\t\t\t\twhileHover={\n\t\t\t\t\t\t\t\t\t\t\t\tisEditorPage &&\n\t\t\t\t\t\t\t\t\t\t\t\tcanvasMode === 'view'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tscale: 1.005,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tduration:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisableMotion ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisResizing\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0.5,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tinitial={ false }\n\t\t\t\t\t\t\t\t\t\t\tlayout=\"position\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t\t\t'edit-site-layout__canvas',\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t'is-right-aligned':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisResizableFrameOversized,\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\t\t\t\t\tduration:\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisableMotion || isResizing\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: ANIMATION_DURATION,\n\t\t\t\t\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t\t<ResizableFrame\n\t\t\t\t\t\t\t\t\t\t\t\t\tisReady={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t! isEditorLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tisFullWidth={ isEditing }\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultSize={ {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcanvasSize.width -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t24 /* $canvas-padding */,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: canvasSize.height,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tisOversized={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisResizableFrameOversized\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsOversized={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsResizableFrameOversized\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tinnerContentStyle={ {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgradientValue ??\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Editor\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlistViewToggleElement={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlistViewToggleElement\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisEditorLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</ResizableFrame>\n\t\t\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\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</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -15,10 +15,15 @@ import { useState } from '@wordpress/element';
15
15
  import { commentAuthorAvatar as authorIcon, layout as themeIcon, plugins as pluginIcon, globe as globeIcon } from '@wordpress/icons';
16
16
  import { _x } from '@wordpress/i18n';
17
17
 
18
+ /**
19
+ * Internal dependencies
20
+ */
21
+ import { TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE, TEMPLATE_ORIGINS } from '../../utils/constants';
22
+
18
23
  /** @typedef {'wp_template'|'wp_template_part'} TemplateType */
19
24
 
20
25
  /** @type {TemplateType} */
21
- const TEMPLATE_POST_TYPE_NAMES = ['wp_template', 'wp_template_part'];
26
+ const TEMPLATE_POST_TYPE_NAMES = [TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE];
22
27
 
23
28
  /**
24
29
  * @typedef {'theme'|'plugin'|'site'|'user'} AddedByType
@@ -52,22 +57,22 @@ export function useAddedBy(postType, postId) {
52
57
  // Templates originally didn't have the 'origin' field so identify
53
58
  // older customized templates by checking for no origin and a 'theme'
54
59
  // or 'custom' source.
55
- if (template.has_theme_file && (template.origin === 'theme' || !template.origin && ['theme', 'custom'].includes(template.source))) {
60
+ if (template.has_theme_file && (template.origin === TEMPLATE_ORIGINS.theme || !template.origin && [TEMPLATE_ORIGINS.theme, TEMPLATE_ORIGINS.custom].includes(template.source))) {
56
61
  return {
57
62
  type: 'theme',
58
63
  icon: themeIcon,
59
64
  text: getTheme(template.theme)?.name?.rendered || template.theme,
60
- isCustomized: template.source === 'custom'
65
+ isCustomized: template.source === TEMPLATE_ORIGINS.custom
61
66
  };
62
67
  }
63
68
 
64
69
  // Added by plugin.
65
- if (template.has_theme_file && template.origin === 'plugin') {
70
+ if (template.has_theme_file && template.origin === TEMPLATE_ORIGINS.plugin) {
66
71
  return {
67
- type: 'plugin',
72
+ type: TEMPLATE_ORIGINS.plugin,
68
73
  icon: pluginIcon,
69
74
  text: getPlugin(template.theme)?.name || template.theme,
70
- isCustomized: template.source === 'custom'
75
+ isCustomized: template.source === TEMPLATE_ORIGINS.custom
71
76
  };
72
77
  }
73
78
 
@@ -75,7 +80,7 @@ export function useAddedBy(postType, postId) {
75
80
  // Template was created from scratch, but has no author. Author support
76
81
  // was only added to templates in WordPress 5.9. Fallback to showing the
77
82
  // site logo and title.
78
- if (!template.has_theme_file && template.source === 'custom' && !template.author) {
83
+ if (!template.has_theme_file && template.source === TEMPLATE_ORIGINS.custom && !template.author) {
79
84
  const siteData = getEntityRecord('root', '__unstableBase');
80
85
  return {
81
86
  type: 'site',
@@ -143,6 +148,6 @@ export default function AddedBy({
143
148
  icon: icon
144
149
  })), createElement("span", null, text, isCustomized && createElement("span", {
145
150
  className: "edit-site-list-added-by__customized-info"
146
- }, postType === 'wp_template' ? _x('Customized', 'template') : _x('Customized', 'template part'))));
151
+ }, postType === TEMPLATE_POST_TYPE ? _x('Customized', 'template') : _x('Customized', 'template part'))));
147
152
  }
148
153
  //# sourceMappingURL=added-by.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","Icon","__experimentalHStack","HStack","store","coreStore","useSelect","useState","commentAuthorAvatar","authorIcon","layout","themeIcon","plugins","pluginIcon","globe","globeIcon","_x","TEMPLATE_POST_TYPE_NAMES","useAddedBy","postType","postId","select","getTheme","getPlugin","getEntityRecord","getMedia","getUser","getEditedEntityRecord","template","includes","type","has_theme_file","origin","source","icon","text","theme","name","rendered","isCustomized","author","siteData","imageUrl","site_logo","source_url","undefined","user","avatar_urls","nickname","AvatarImage","isImageLoaded","setIsImageLoaded","createElement","className","onLoad","alt","src","AddedBy","alignment"],"sources":["@wordpress/edit-site/src/components/list/added-by.js"],"sourcesContent":["// @ts-check\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Icon, __experimentalHStack as HStack } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport {\n\tcommentAuthorAvatar as authorIcon,\n\tlayout as themeIcon,\n\tplugins as pluginIcon,\n\tglobe as globeIcon,\n} from '@wordpress/icons';\nimport { _x } from '@wordpress/i18n';\n\n/** @typedef {'wp_template'|'wp_template_part'} TemplateType */\n\n/** @type {TemplateType} */\nconst TEMPLATE_POST_TYPE_NAMES = [ 'wp_template', 'wp_template_part' ];\n\n/**\n * @typedef {'theme'|'plugin'|'site'|'user'} AddedByType\n *\n * @typedef AddedByData\n * @type {Object}\n * @property {AddedByType} type The type of the data.\n * @property {JSX.Element} icon The icon to display.\n * @property {string} [imageUrl] The optional image URL to display.\n * @property {string} [text] The text to display.\n * @property {boolean} isCustomized Whether the template has been customized.\n *\n * @param {TemplateType} postType The template post type.\n * @param {number} postId The template post id.\n * @return {AddedByData} The added by object or null.\n */\nexport function useAddedBy( postType, postId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetTheme,\n\t\t\t\tgetPlugin,\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetMedia,\n\t\t\t\tgetUser,\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t} = select( coreStore );\n\t\t\tconst template = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\n\t\t\tif ( TEMPLATE_POST_TYPE_NAMES.includes( template.type ) ) {\n\t\t\t\t// Added by theme.\n\t\t\t\t// Template originally provided by a theme, but customized by a user.\n\t\t\t\t// Templates originally didn't have the 'origin' field so identify\n\t\t\t\t// older customized templates by checking for no origin and a 'theme'\n\t\t\t\t// or 'custom' source.\n\t\t\t\tif (\n\t\t\t\t\ttemplate.has_theme_file &&\n\t\t\t\t\t( template.origin === 'theme' ||\n\t\t\t\t\t\t( ! template.origin &&\n\t\t\t\t\t\t\t[ 'theme', 'custom' ].includes(\n\t\t\t\t\t\t\t\ttemplate.source\n\t\t\t\t\t\t\t) ) )\n\t\t\t\t) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'theme',\n\t\t\t\t\t\ticon: themeIcon,\n\t\t\t\t\t\ttext:\n\t\t\t\t\t\t\tgetTheme( template.theme )?.name?.rendered ||\n\t\t\t\t\t\t\ttemplate.theme,\n\t\t\t\t\t\tisCustomized: template.source === 'custom',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Added by plugin.\n\t\t\t\tif ( template.has_theme_file && template.origin === 'plugin' ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'plugin',\n\t\t\t\t\t\ticon: pluginIcon,\n\t\t\t\t\t\ttext:\n\t\t\t\t\t\t\tgetPlugin( template.theme )?.name || template.theme,\n\t\t\t\t\t\tisCustomized: template.source === 'custom',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Added by site.\n\t\t\t\t// Template was created from scratch, but has no author. Author support\n\t\t\t\t// was only added to templates in WordPress 5.9. Fallback to showing the\n\t\t\t\t// site logo and title.\n\t\t\t\tif (\n\t\t\t\t\t! template.has_theme_file &&\n\t\t\t\t\ttemplate.source === 'custom' &&\n\t\t\t\t\t! template.author\n\t\t\t\t) {\n\t\t\t\t\tconst siteData = getEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'__unstableBase'\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'site',\n\t\t\t\t\t\ticon: globeIcon,\n\t\t\t\t\t\timageUrl: siteData?.site_logo\n\t\t\t\t\t\t\t? getMedia( siteData.site_logo )?.source_url\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\ttext: siteData?.name,\n\t\t\t\t\t\tisCustomized: false,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Added by user.\n\t\t\tconst user = getUser( template.author );\n\t\t\treturn {\n\t\t\t\ttype: 'user',\n\t\t\t\ticon: authorIcon,\n\t\t\t\timageUrl: user?.avatar_urls?.[ 48 ],\n\t\t\t\ttext: user?.nickname,\n\t\t\t\tisCustomized: false,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n}\n\n/**\n * @param {Object} props\n * @param {string} props.imageUrl\n */\nfunction AvatarImage( { imageUrl } ) {\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'edit-site-list-added-by__avatar', {\n\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t} ) }\n\t\t>\n\t\t\t<img\n\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\talt=\"\"\n\t\t\t\tsrc={ imageUrl }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\n/**\n * @param {Object} props\n * @param {TemplateType} props.postType The template post type.\n * @param {number} props.postId The template post id.\n */\nexport default function AddedBy( { postType, postId } ) {\n\tconst { text, icon, imageUrl, isCustomized } = useAddedBy(\n\t\tpostType,\n\t\tpostId\n\t);\n\n\treturn (\n\t\t<HStack alignment=\"left\">\n\t\t\t{ imageUrl ? (\n\t\t\t\t<AvatarImage imageUrl={ imageUrl } />\n\t\t\t) : (\n\t\t\t\t<div className=\"edit-site-list-added-by__icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<span>\n\t\t\t\t{ text }\n\t\t\t\t{ isCustomized && (\n\t\t\t\t\t<span className=\"edit-site-list-added-by__customized-info\">\n\t\t\t\t\t\t{ postType === 'wp_template'\n\t\t\t\t\t\t\t? _x( 'Customized', 'template' )\n\t\t\t\t\t\t\t: _x( 'Customized', 'template part' ) }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</span>\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","Icon","__experimentalHStack","HStack","store","coreStore","useSelect","useState","commentAuthorAvatar","authorIcon","layout","themeIcon","plugins","pluginIcon","globe","globeIcon","_x","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","TEMPLATE_ORIGINS","TEMPLATE_POST_TYPE_NAMES","useAddedBy","postType","postId","select","getTheme","getPlugin","getEntityRecord","getMedia","getUser","getEditedEntityRecord","template","includes","type","has_theme_file","origin","theme","custom","source","icon","text","name","rendered","isCustomized","plugin","author","siteData","imageUrl","site_logo","source_url","undefined","user","avatar_urls","nickname","AvatarImage","isImageLoaded","setIsImageLoaded","createElement","className","onLoad","alt","src","AddedBy","alignment"],"sources":["@wordpress/edit-site/src/components/list/added-by.js"],"sourcesContent":["// @ts-check\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Icon, __experimentalHStack as HStack } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport {\n\tcommentAuthorAvatar as authorIcon,\n\tlayout as themeIcon,\n\tplugins as pluginIcon,\n\tglobe as globeIcon,\n} from '@wordpress/icons';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_ORIGINS,\n} from '../../utils/constants';\n\n/** @typedef {'wp_template'|'wp_template_part'} TemplateType */\n\n/** @type {TemplateType} */\nconst TEMPLATE_POST_TYPE_NAMES = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n];\n\n/**\n * @typedef {'theme'|'plugin'|'site'|'user'} AddedByType\n *\n * @typedef AddedByData\n * @type {Object}\n * @property {AddedByType} type The type of the data.\n * @property {JSX.Element} icon The icon to display.\n * @property {string} [imageUrl] The optional image URL to display.\n * @property {string} [text] The text to display.\n * @property {boolean} isCustomized Whether the template has been customized.\n *\n * @param {TemplateType} postType The template post type.\n * @param {number} postId The template post id.\n * @return {AddedByData} The added by object or null.\n */\nexport function useAddedBy( postType, postId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetTheme,\n\t\t\t\tgetPlugin,\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetMedia,\n\t\t\t\tgetUser,\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t} = select( coreStore );\n\t\t\tconst template = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\n\t\t\tif ( TEMPLATE_POST_TYPE_NAMES.includes( template.type ) ) {\n\t\t\t\t// Added by theme.\n\t\t\t\t// Template originally provided by a theme, but customized by a user.\n\t\t\t\t// Templates originally didn't have the 'origin' field so identify\n\t\t\t\t// older customized templates by checking for no origin and a 'theme'\n\t\t\t\t// or 'custom' source.\n\t\t\t\tif (\n\t\t\t\t\ttemplate.has_theme_file &&\n\t\t\t\t\t( template.origin === TEMPLATE_ORIGINS.theme ||\n\t\t\t\t\t\t( ! template.origin &&\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tTEMPLATE_ORIGINS.theme,\n\t\t\t\t\t\t\t\tTEMPLATE_ORIGINS.custom,\n\t\t\t\t\t\t\t].includes( template.source ) ) )\n\t\t\t\t) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'theme',\n\t\t\t\t\t\ticon: themeIcon,\n\t\t\t\t\t\ttext:\n\t\t\t\t\t\t\tgetTheme( template.theme )?.name?.rendered ||\n\t\t\t\t\t\t\ttemplate.theme,\n\t\t\t\t\t\tisCustomized:\n\t\t\t\t\t\t\ttemplate.source === TEMPLATE_ORIGINS.custom,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Added by plugin.\n\t\t\t\tif (\n\t\t\t\t\ttemplate.has_theme_file &&\n\t\t\t\t\ttemplate.origin === TEMPLATE_ORIGINS.plugin\n\t\t\t\t) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: TEMPLATE_ORIGINS.plugin,\n\t\t\t\t\t\ticon: pluginIcon,\n\t\t\t\t\t\ttext:\n\t\t\t\t\t\t\tgetPlugin( template.theme )?.name || template.theme,\n\t\t\t\t\t\tisCustomized:\n\t\t\t\t\t\t\ttemplate.source === TEMPLATE_ORIGINS.custom,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Added by site.\n\t\t\t\t// Template was created from scratch, but has no author. Author support\n\t\t\t\t// was only added to templates in WordPress 5.9. Fallback to showing the\n\t\t\t\t// site logo and title.\n\t\t\t\tif (\n\t\t\t\t\t! template.has_theme_file &&\n\t\t\t\t\ttemplate.source === TEMPLATE_ORIGINS.custom &&\n\t\t\t\t\t! template.author\n\t\t\t\t) {\n\t\t\t\t\tconst siteData = getEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'__unstableBase'\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'site',\n\t\t\t\t\t\ticon: globeIcon,\n\t\t\t\t\t\timageUrl: siteData?.site_logo\n\t\t\t\t\t\t\t? getMedia( siteData.site_logo )?.source_url\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\ttext: siteData?.name,\n\t\t\t\t\t\tisCustomized: false,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Added by user.\n\t\t\tconst user = getUser( template.author );\n\t\t\treturn {\n\t\t\t\ttype: 'user',\n\t\t\t\ticon: authorIcon,\n\t\t\t\timageUrl: user?.avatar_urls?.[ 48 ],\n\t\t\t\ttext: user?.nickname,\n\t\t\t\tisCustomized: false,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n}\n\n/**\n * @param {Object} props\n * @param {string} props.imageUrl\n */\nfunction AvatarImage( { imageUrl } ) {\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'edit-site-list-added-by__avatar', {\n\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t} ) }\n\t\t>\n\t\t\t<img\n\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\talt=\"\"\n\t\t\t\tsrc={ imageUrl }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\n/**\n * @param {Object} props\n * @param {TemplateType} props.postType The template post type.\n * @param {number} props.postId The template post id.\n */\nexport default function AddedBy( { postType, postId } ) {\n\tconst { text, icon, imageUrl, isCustomized } = useAddedBy(\n\t\tpostType,\n\t\tpostId\n\t);\n\n\treturn (\n\t\t<HStack alignment=\"left\">\n\t\t\t{ imageUrl ? (\n\t\t\t\t<AvatarImage imageUrl={ imageUrl } />\n\t\t\t) : (\n\t\t\t\t<div className=\"edit-site-list-added-by__icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<span>\n\t\t\t\t{ text }\n\t\t\t\t{ isCustomized && (\n\t\t\t\t\t<span className=\"edit-site-list-added-by__customized-info\">\n\t\t\t\t\t\t{ postType === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t\t? _x( 'Customized', 'template' )\n\t\t\t\t\t\t\t: _x( 'Customized', 'template part' ) }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</span>\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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"}
@@ -18,6 +18,7 @@ import Header from './header';
18
18
  import Table from './table';
19
19
  import useTitle from '../routes/use-title';
20
20
  import { unlock } from '../../lock-unlock';
21
+ import { TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE } from '../../utils/constants';
21
22
  const {
22
23
  useLocation
23
24
  } = unlock(routerPrivateApis);
@@ -27,7 +28,7 @@ export default function List() {
27
28
  path
28
29
  }
29
30
  } = useLocation();
30
- const templateType = path === '/wp_template/all' ? 'wp_template' : 'wp_template_part';
31
+ const templateType = path === '/wp_template/all' ? TEMPLATE_POST_TYPE : TEMPLATE_PART_POST_TYPE;
31
32
  useRegisterShortcuts();
32
33
  const {
33
34
  previousShortcut,
@@ -1 +1 @@
1
- {"version":3,"names":["store","coreStore","useSelect","InterfaceSkeleton","__","sprintf","keyboardShortcutsStore","EditorSnackbars","privateApis","routerPrivateApis","useRegisterShortcuts","Header","Table","useTitle","unlock","useLocation","List","params","path","templateType","previousShortcut","nextShortcut","select","getAllShortcutKeyCombinations","postType","getPostType","labels","name","itemsListLabel","items_list","detailedRegionLabels","header","body","undefined","createElement","className","notices","content","shortcuts","previous","next"],"sources":["@wordpress/edit-site/src/components/list/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { InterfaceSkeleton } from '@wordpress/interface';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { EditorSnackbars } from '@wordpress/editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport useRegisterShortcuts from './use-register-shortcuts';\nimport Header from './header';\nimport Table from './table';\nimport useTitle from '../routes/use-title';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function List() {\n\tconst {\n\t\tparams: { path },\n\t} = useLocation();\n\tconst templateType =\n\t\tpath === '/wp_template/all' ? 'wp_template' : 'wp_template_part';\n\n\tuseRegisterShortcuts();\n\n\tconst { previousShortcut, nextShortcut } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpreviousShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/edit-site/previous-region' ),\n\t\t\tnextShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/edit-site/next-region' ),\n\t\t};\n\t}, [] );\n\n\tconst postType = useSelect(\n\t\t( select ) => select( coreStore ).getPostType( templateType ),\n\t\t[ templateType ]\n\t);\n\n\tuseTitle( postType?.labels?.name );\n\n\t// `postType` could load in asynchronously. Only provide the detailed region labels if\n\t// the postType has loaded, otherwise `InterfaceSkeleton` will fallback to the defaults.\n\tconst itemsListLabel = postType?.labels?.items_list;\n\tconst detailedRegionLabels = postType\n\t\t? {\n\t\t\t\theader: sprintf(\n\t\t\t\t\t// translators: %s - the name of the page, 'Header' as in the header area of that page.\n\t\t\t\t\t__( '%s - Header' ),\n\t\t\t\t\titemsListLabel\n\t\t\t\t),\n\t\t\t\tbody: sprintf(\n\t\t\t\t\t// translators: %s - the name of the page, 'Content' as in the content area of that page.\n\t\t\t\t\t__( '%s - Content' ),\n\t\t\t\t\titemsListLabel\n\t\t\t\t),\n\t\t }\n\t\t: undefined;\n\n\treturn (\n\t\t<InterfaceSkeleton\n\t\t\tclassName=\"edit-site-list\"\n\t\t\tlabels={ detailedRegionLabels }\n\t\t\theader={ <Header templateType={ templateType } /> }\n\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\tcontent={ <Table templateType={ templateType } /> }\n\t\t\tshortcuts={ {\n\t\t\t\tprevious: previousShortcut,\n\t\t\t\tnext: nextShortcut,\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,iBAAiB,QAAQ,sBAAsB;AACxD,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASL,KAAK,IAAIM,sBAAsB,QAAQ,+BAA+B;AAC/E,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,0BAA0B;AAC3D,OAAOC,MAAM,MAAM,UAAU;AAC7B,OAAOC,KAAK,MAAM,SAAS;AAC3B,OAAOC,QAAQ,MAAM,qBAAqB;AAC1C,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC;AAAY,CAAC,GAAGD,MAAM,CAAEL,iBAAkB,CAAC;AAEnD,eAAe,SAASO,IAAIA,CAAA,EAAG;EAC9B,MAAM;IACLC,MAAM,EAAE;MAAEC;IAAK;EAChB,CAAC,GAAGH,WAAW,CAAC,CAAC;EACjB,MAAMI,YAAY,GACjBD,IAAI,KAAK,kBAAkB,GAAG,aAAa,GAAG,kBAAkB;EAEjER,oBAAoB,CAAC,CAAC;EAEtB,MAAM;IAAEU,gBAAgB;IAAEC;EAAa,CAAC,GAAGnB,SAAS,CAAIoB,MAAM,IAAM;IACnE,OAAO;MACNF,gBAAgB,EAAEE,MAAM,CACvBhB,sBACD,CAAC,CAACiB,6BAA6B,CAAE,gCAAiC,CAAC;MACnEF,YAAY,EAAEC,MAAM,CACnBhB,sBACD,CAAC,CAACiB,6BAA6B,CAAE,4BAA6B;IAC/D,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,QAAQ,GAAGtB,SAAS,CACvBoB,MAAM,IAAMA,MAAM,CAAErB,SAAU,CAAC,CAACwB,WAAW,CAAEN,YAAa,CAAC,EAC7D,CAAEA,YAAY,CACf,CAAC;EAEDN,QAAQ,CAAEW,QAAQ,EAAEE,MAAM,EAAEC,IAAK,CAAC;;EAElC;EACA;EACA,MAAMC,cAAc,GAAGJ,QAAQ,EAAEE,MAAM,EAAEG,UAAU;EACnD,MAAMC,oBAAoB,GAAGN,QAAQ,GAClC;IACAO,MAAM,EAAE1B,OAAO;IACd;IACAD,EAAE,CAAE,aAAc,CAAC,EACnBwB,cACD,CAAC;IACDI,IAAI,EAAE3B,OAAO;IACZ;IACAD,EAAE,CAAE,cAAe,CAAC,EACpBwB,cACD;EACA,CAAC,GACDK,SAAS;EAEZ,OACCC,aAAA,CAAC/B,iBAAiB;IACjBgC,SAAS,EAAC,gBAAgB;IAC1BT,MAAM,EAAGI,oBAAsB;IAC/BC,MAAM,EAAGG,aAAA,CAACvB,MAAM;MAACQ,YAAY,EAAGA;IAAc,CAAE,CAAG;IACnDiB,OAAO,EAAGF,aAAA,CAAC3B,eAAe,MAAE,CAAG;IAC/B8B,OAAO,EAAGH,aAAA,CAACtB,KAAK;MAACO,YAAY,EAAGA;IAAc,CAAE,CAAG;IACnDmB,SAAS,EAAG;MACXC,QAAQ,EAAEnB,gBAAgB;MAC1BoB,IAAI,EAAEnB;IACP;EAAG,CACH,CAAC;AAEJ"}
1
+ {"version":3,"names":["store","coreStore","useSelect","InterfaceSkeleton","__","sprintf","keyboardShortcutsStore","EditorSnackbars","privateApis","routerPrivateApis","useRegisterShortcuts","Header","Table","useTitle","unlock","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","useLocation","List","params","path","templateType","previousShortcut","nextShortcut","select","getAllShortcutKeyCombinations","postType","getPostType","labels","name","itemsListLabel","items_list","detailedRegionLabels","header","body","undefined","createElement","className","notices","content","shortcuts","previous","next"],"sources":["@wordpress/edit-site/src/components/list/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { InterfaceSkeleton } from '@wordpress/interface';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { EditorSnackbars } from '@wordpress/editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport useRegisterShortcuts from './use-register-shortcuts';\nimport Header from './header';\nimport Table from './table';\nimport useTitle from '../routes/use-title';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function List() {\n\tconst {\n\t\tparams: { path },\n\t} = useLocation();\n\tconst templateType =\n\t\tpath === '/wp_template/all'\n\t\t\t? TEMPLATE_POST_TYPE\n\t\t\t: TEMPLATE_PART_POST_TYPE;\n\n\tuseRegisterShortcuts();\n\n\tconst { previousShortcut, nextShortcut } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpreviousShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/edit-site/previous-region' ),\n\t\t\tnextShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/edit-site/next-region' ),\n\t\t};\n\t}, [] );\n\n\tconst postType = useSelect(\n\t\t( select ) => select( coreStore ).getPostType( templateType ),\n\t\t[ templateType ]\n\t);\n\n\tuseTitle( postType?.labels?.name );\n\n\t// `postType` could load in asynchronously. Only provide the detailed region labels if\n\t// the postType has loaded, otherwise `InterfaceSkeleton` will fallback to the defaults.\n\tconst itemsListLabel = postType?.labels?.items_list;\n\tconst detailedRegionLabels = postType\n\t\t? {\n\t\t\t\theader: sprintf(\n\t\t\t\t\t// translators: %s - the name of the page, 'Header' as in the header area of that page.\n\t\t\t\t\t__( '%s - Header' ),\n\t\t\t\t\titemsListLabel\n\t\t\t\t),\n\t\t\t\tbody: sprintf(\n\t\t\t\t\t// translators: %s - the name of the page, 'Content' as in the content area of that page.\n\t\t\t\t\t__( '%s - Content' ),\n\t\t\t\t\titemsListLabel\n\t\t\t\t),\n\t\t }\n\t\t: undefined;\n\n\treturn (\n\t\t<InterfaceSkeleton\n\t\t\tclassName=\"edit-site-list\"\n\t\t\tlabels={ detailedRegionLabels }\n\t\t\theader={ <Header templateType={ templateType } /> }\n\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\tcontent={ <Table templateType={ templateType } /> }\n\t\t\tshortcuts={ {\n\t\t\t\tprevious: previousShortcut,\n\t\t\t\tnext: nextShortcut,\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,iBAAiB,QAAQ,sBAAsB;AACxD,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASL,KAAK,IAAIM,sBAAsB,QAAQ,+BAA+B;AAC/E,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,0BAA0B;AAC3D,OAAOC,MAAM,MAAM,UAAU;AAC7B,OAAOC,KAAK,MAAM,SAAS;AAC3B,OAAOC,QAAQ,MAAM,qBAAqB;AAC1C,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SACCC,kBAAkB,EAClBC,uBAAuB,QACjB,uBAAuB;AAE9B,MAAM;EAAEC;AAAY,CAAC,GAAGH,MAAM,CAAEL,iBAAkB,CAAC;AAEnD,eAAe,SAASS,IAAIA,CAAA,EAAG;EAC9B,MAAM;IACLC,MAAM,EAAE;MAAEC;IAAK;EAChB,CAAC,GAAGH,WAAW,CAAC,CAAC;EACjB,MAAMI,YAAY,GACjBD,IAAI,KAAK,kBAAkB,GACxBL,kBAAkB,GAClBC,uBAAuB;EAE3BN,oBAAoB,CAAC,CAAC;EAEtB,MAAM;IAAEY,gBAAgB;IAAEC;EAAa,CAAC,GAAGrB,SAAS,CAAIsB,MAAM,IAAM;IACnE,OAAO;MACNF,gBAAgB,EAAEE,MAAM,CACvBlB,sBACD,CAAC,CAACmB,6BAA6B,CAAE,gCAAiC,CAAC;MACnEF,YAAY,EAAEC,MAAM,CACnBlB,sBACD,CAAC,CAACmB,6BAA6B,CAAE,4BAA6B;IAC/D,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,QAAQ,GAAGxB,SAAS,CACvBsB,MAAM,IAAMA,MAAM,CAAEvB,SAAU,CAAC,CAAC0B,WAAW,CAAEN,YAAa,CAAC,EAC7D,CAAEA,YAAY,CACf,CAAC;EAEDR,QAAQ,CAAEa,QAAQ,EAAEE,MAAM,EAAEC,IAAK,CAAC;;EAElC;EACA;EACA,MAAMC,cAAc,GAAGJ,QAAQ,EAAEE,MAAM,EAAEG,UAAU;EACnD,MAAMC,oBAAoB,GAAGN,QAAQ,GAClC;IACAO,MAAM,EAAE5B,OAAO;IACd;IACAD,EAAE,CAAE,aAAc,CAAC,EACnB0B,cACD,CAAC;IACDI,IAAI,EAAE7B,OAAO;IACZ;IACAD,EAAE,CAAE,cAAe,CAAC,EACpB0B,cACD;EACA,CAAC,GACDK,SAAS;EAEZ,OACCC,aAAA,CAACjC,iBAAiB;IACjBkC,SAAS,EAAC,gBAAgB;IAC1BT,MAAM,EAAGI,oBAAsB;IAC/BC,MAAM,EAAGG,aAAA,CAACzB,MAAM;MAACU,YAAY,EAAGA;IAAc,CAAE,CAAG;IACnDiB,OAAO,EAAGF,aAAA,CAAC7B,eAAe,MAAE,CAAG;IAC/BgC,OAAO,EAAGH,aAAA,CAACxB,KAAK;MAACS,YAAY,EAAGA;IAAc,CAAE,CAAG;IACnDmB,SAAS,EAAG;MACXC,QAAQ,EAAEnB,gBAAgB;MAC1BoB,IAAI,EAAEnB;IACP;EAAG,CACH,CAAC;AAEJ"}
@@ -10,8 +10,7 @@ import { useEffect } from '@wordpress/element';
10
10
  /**
11
11
  * Internal dependencies
12
12
  */
13
-
14
- const PAGE_CONTENT_BLOCK_TYPES = ['core/post-title', 'core/post-featured-image', 'core/post-content'];
13
+ import { PAGE_CONTENT_BLOCK_TYPES } from '../../utils/constants';
15
14
 
16
15
  /**
17
16
  * Component that when rendered, makes it so that the site editor allows only
@@ -34,7 +33,7 @@ export function useDisableNonPageContentBlocks() {
34
33
  }
35
34
  const withDisableNonPageContentBlocks = createHigherOrderComponent(BlockEdit => props => {
36
35
  const isDescendentOfQueryLoop = props.context.queryId !== undefined;
37
- const isPageContent = PAGE_CONTENT_BLOCK_TYPES.includes(props.name) && !isDescendentOfQueryLoop;
36
+ const isPageContent = PAGE_CONTENT_BLOCK_TYPES[props.name] && !isDescendentOfQueryLoop;
38
37
  const mode = isPageContent ? 'contentOnly' : undefined;
39
38
  useBlockEditingMode(mode);
40
39
  return createElement(BlockEdit, {
@@ -1 +1 @@
1
- {"version":3,"names":["createHigherOrderComponent","addFilter","removeFilter","useBlockEditingMode","useEffect","PAGE_CONTENT_BLOCK_TYPES","DisableNonPageContentBlocks","useDisableNonPageContentBlocks","withDisableNonPageContentBlocks","BlockEdit","props","isDescendentOfQueryLoop","context","queryId","undefined","isPageContent","includes","name","mode","createElement"],"sources":["@wordpress/edit-site/src/components/page-content-focus-manager/disable-non-page-content-blocks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter, removeFilter } from '@wordpress/hooks';\nimport { useBlockEditingMode } from '@wordpress/block-editor';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nconst PAGE_CONTENT_BLOCK_TYPES = [\n\t'core/post-title',\n\t'core/post-featured-image',\n\t'core/post-content',\n];\n\n/**\n * Component that when rendered, makes it so that the site editor allows only\n * page content to be edited.\n */\nexport default function DisableNonPageContentBlocks() {\n\tuseDisableNonPageContentBlocks();\n\treturn null;\n}\n\n/**\n * Disables non-content blocks using the `useBlockEditingMode` hook.\n */\nexport function useDisableNonPageContentBlocks() {\n\tuseBlockEditingMode( 'disabled' );\n\tuseEffect( () => {\n\t\taddFilter(\n\t\t\t'editor.BlockEdit',\n\t\t\t'core/edit-site/disable-non-content-blocks',\n\t\t\twithDisableNonPageContentBlocks\n\t\t);\n\t\treturn () =>\n\t\t\tremoveFilter(\n\t\t\t\t'editor.BlockEdit',\n\t\t\t\t'core/edit-site/disable-non-content-blocks'\n\t\t\t);\n\t}, [] );\n}\n\nconst withDisableNonPageContentBlocks = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst isDescendentOfQueryLoop = props.context.queryId !== undefined;\n\t\tconst isPageContent =\n\t\t\tPAGE_CONTENT_BLOCK_TYPES.includes( props.name ) &&\n\t\t\t! isDescendentOfQueryLoop;\n\t\tconst mode = isPageContent ? 'contentOnly' : undefined;\n\t\tuseBlockEditingMode( mode );\n\t\treturn <BlockEdit { ...props } />;\n\t},\n\t'withDisableNonPageContentBlocks'\n);\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,0BAA0B,QAAQ,oBAAoB;AAC/D,SAASC,SAAS,EAAEC,YAAY,QAAQ,kBAAkB;AAC1D,SAASC,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,SAAS,QAAQ,oBAAoB;;AAE9C;AACA;AACA;;AAEA,MAAMC,wBAAwB,GAAG,CAChC,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,CACnB;;AAED;AACA;AACA;AACA;AACA,eAAe,SAASC,2BAA2BA,CAAA,EAAG;EACrDC,8BAA8B,CAAC,CAAC;EAChC,OAAO,IAAI;AACZ;;AAEA;AACA;AACA;AACA,OAAO,SAASA,8BAA8BA,CAAA,EAAG;EAChDJ,mBAAmB,CAAE,UAAW,CAAC;EACjCC,SAAS,CAAE,MAAM;IAChBH,SAAS,CACR,kBAAkB,EAClB,2CAA2C,EAC3CO,+BACD,CAAC;IACD,OAAO,MACNN,YAAY,CACX,kBAAkB,EAClB,2CACD,CAAC;EACH,CAAC,EAAE,EAAG,CAAC;AACR;AAEA,MAAMM,+BAA+B,GAAGR,0BAA0B,CAC/DS,SAAS,IAAQC,KAAK,IAAM;EAC7B,MAAMC,uBAAuB,GAAGD,KAAK,CAACE,OAAO,CAACC,OAAO,KAAKC,SAAS;EACnE,MAAMC,aAAa,GAClBV,wBAAwB,CAACW,QAAQ,CAAEN,KAAK,CAACO,IAAK,CAAC,IAC/C,CAAEN,uBAAuB;EAC1B,MAAMO,IAAI,GAAGH,aAAa,GAAG,aAAa,GAAGD,SAAS;EACtDX,mBAAmB,CAAEe,IAAK,CAAC;EAC3B,OAAOC,aAAA,CAACV,SAAS;IAAA,GAAMC;EAAK,CAAI,CAAC;AAClC,CAAC,EACD,iCACD,CAAC"}
1
+ {"version":3,"names":["createHigherOrderComponent","addFilter","removeFilter","useBlockEditingMode","useEffect","PAGE_CONTENT_BLOCK_TYPES","DisableNonPageContentBlocks","useDisableNonPageContentBlocks","withDisableNonPageContentBlocks","BlockEdit","props","isDescendentOfQueryLoop","context","queryId","undefined","isPageContent","name","mode","createElement"],"sources":["@wordpress/edit-site/src/components/page-content-focus-manager/disable-non-page-content-blocks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter, removeFilter } from '@wordpress/hooks';\nimport { useBlockEditingMode } from '@wordpress/block-editor';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { PAGE_CONTENT_BLOCK_TYPES } from '../../utils/constants';\n\n/**\n * Component that when rendered, makes it so that the site editor allows only\n * page content to be edited.\n */\nexport default function DisableNonPageContentBlocks() {\n\tuseDisableNonPageContentBlocks();\n\treturn null;\n}\n\n/**\n * Disables non-content blocks using the `useBlockEditingMode` hook.\n */\nexport function useDisableNonPageContentBlocks() {\n\tuseBlockEditingMode( 'disabled' );\n\tuseEffect( () => {\n\t\taddFilter(\n\t\t\t'editor.BlockEdit',\n\t\t\t'core/edit-site/disable-non-content-blocks',\n\t\t\twithDisableNonPageContentBlocks\n\t\t);\n\t\treturn () =>\n\t\t\tremoveFilter(\n\t\t\t\t'editor.BlockEdit',\n\t\t\t\t'core/edit-site/disable-non-content-blocks'\n\t\t\t);\n\t}, [] );\n}\n\nconst withDisableNonPageContentBlocks = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst isDescendentOfQueryLoop = props.context.queryId !== undefined;\n\t\tconst isPageContent =\n\t\t\tPAGE_CONTENT_BLOCK_TYPES[ props.name ] && ! isDescendentOfQueryLoop;\n\t\tconst mode = isPageContent ? 'contentOnly' : undefined;\n\t\tuseBlockEditingMode( mode );\n\t\treturn <BlockEdit { ...props } />;\n\t},\n\t'withDisableNonPageContentBlocks'\n);\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,0BAA0B,QAAQ,oBAAoB;AAC/D,SAASC,SAAS,EAAEC,YAAY,QAAQ,kBAAkB;AAC1D,SAASC,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,SAAS,QAAQ,oBAAoB;;AAE9C;AACA;AACA;AACA,SAASC,wBAAwB,QAAQ,uBAAuB;;AAEhE;AACA;AACA;AACA;AACA,eAAe,SAASC,2BAA2BA,CAAA,EAAG;EACrDC,8BAA8B,CAAC,CAAC;EAChC,OAAO,IAAI;AACZ;;AAEA;AACA;AACA;AACA,OAAO,SAASA,8BAA8BA,CAAA,EAAG;EAChDJ,mBAAmB,CAAE,UAAW,CAAC;EACjCC,SAAS,CAAE,MAAM;IAChBH,SAAS,CACR,kBAAkB,EAClB,2CAA2C,EAC3CO,+BACD,CAAC;IACD,OAAO,MACNN,YAAY,CACX,kBAAkB,EAClB,2CACD,CAAC;EACH,CAAC,EAAE,EAAG,CAAC;AACR;AAEA,MAAMM,+BAA+B,GAAGR,0BAA0B,CAC/DS,SAAS,IAAQC,KAAK,IAAM;EAC7B,MAAMC,uBAAuB,GAAGD,KAAK,CAACE,OAAO,CAACC,OAAO,KAAKC,SAAS;EACnE,MAAMC,aAAa,GAClBV,wBAAwB,CAAEK,KAAK,CAACM,IAAI,CAAE,IAAI,CAAEL,uBAAuB;EACpE,MAAMM,IAAI,GAAGF,aAAa,GAAG,aAAa,GAAGD,SAAS;EACtDX,mBAAmB,CAAEc,IAAK,CAAC;EAC3B,OAAOC,aAAA,CAACT,SAAS;IAAA,GAAMC;EAAK,CAAI,CAAC;AAClC,CAAC,EACD,iCACD,CAAC"}
@@ -61,7 +61,7 @@ export default function DuplicateMenuItem({
61
61
  area,
62
62
  content
63
63
  } = item.templatePart;
64
- const result = await saveEntityRecord('postType', 'wp_template_part', {
64
+ const result = await saveEntityRecord('postType', TEMPLATE_PART_POST_TYPE, {
65
65
  slug,
66
66
  title,
67
67
  content,
@@ -123,9 +123,9 @@ export default function DuplicateMenuItem({
123
123
  try {
124
124
  const isThemePattern = item.type === PATTERN_TYPES.theme;
125
125
  const title = sprintf( /* translators: %s: Existing pattern title */
126
- __('%s (Copy)'), item.title);
127
- const categories = await getCategories(item.categories);
128
- const result = await saveEntityRecord('postType', 'wp_block', {
126
+ __('%s (Copy)'), item.title || item.name);
127
+ const categories = await getCategories(item.categories || []);
128
+ const result = await saveEntityRecord('postType', PATTERN_TYPES.user, {
129
129
  content: isThemePattern ? item.content : item.patternBlock.content,
130
130
  meta: getPatternMeta(item),
131
131
  status: 'publish',
@@ -136,7 +136,7 @@ export default function DuplicateMenuItem({
136
136
  });
137
137
  createSuccessNotice(sprintf(
138
138
  // translators: %s: The new pattern's title e.g. 'Call to action (copy)'.
139
- __('"%s" duplicated.'), item.title), {
139
+ __('"%s" duplicated.'), item.title || item.name), {
140
140
  type: 'snackbar',
141
141
  id: 'edit-site-patterns-success'
142
142
  });
@@ -1 +1 @@
1
- {"version":3,"names":["MenuItem","store","coreStore","useDispatch","__","sprintf","noticesStore","privateApis","routerPrivateApis","TEMPLATE_PART_POST_TYPE","PATTERN_TYPES","PATTERN_SYNC_TYPES","useExistingTemplateParts","getUniqueTemplatePartTitle","getCleanTemplatePartSlug","unlock","usePatternCategories","useHistory","getPatternMeta","item","type","theme","wp_pattern_sync_status","unsynced","syncStatus","patternBlock","isUnsynced","meta","undefined","DuplicateMenuItem","categoryId","label","onClose","saveEntityRecord","invalidateResolution","createErrorNotice","createSuccessNotice","history","existingTemplateParts","patternCategories","createTemplatePart","copiedTitle","title","slug","area","content","templatePart","result","throwOnError","id","push","postType","postId","categoryType","error","errorMessage","message","code","findOrCreateTerm","term","newTerm","name","description","data","term_id","getCategories","categories","terms","map","category","fullCategory","find","cat","Promise","all","createPattern","isThemePattern","status","wp_pattern_category","user","createItem","createElement","onClick"],"sources":["@wordpress/edit-site/src/components/page-patterns/duplicate-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_TYPES,\n\tPATTERN_SYNC_TYPES,\n} from '../../utils/constants';\nimport {\n\tuseExistingTemplateParts,\n\tgetUniqueTemplatePartTitle,\n\tgetCleanTemplatePartSlug,\n} from '../../utils/template-part-create';\nimport { unlock } from '../../lock-unlock';\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nfunction getPatternMeta( item ) {\n\tif ( item.type === PATTERN_TYPES.theme ) {\n\t\treturn { wp_pattern_sync_status: PATTERN_SYNC_TYPES.unsynced };\n\t}\n\n\tconst syncStatus = item.patternBlock.wp_pattern_sync_status;\n\tconst isUnsynced = syncStatus === PATTERN_SYNC_TYPES.unsynced;\n\n\treturn {\n\t\t...item.patternBlock.meta,\n\t\twp_pattern_sync_status: isUnsynced ? syncStatus : undefined,\n\t};\n}\n\nexport default function DuplicateMenuItem( {\n\tcategoryId,\n\titem,\n\tlabel = __( 'Duplicate' ),\n\tonClose,\n} ) {\n\tconst { saveEntityRecord, invalidateResolution } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst history = useHistory();\n\tconst existingTemplateParts = useExistingTemplateParts();\n\tconst { patternCategories } = usePatternCategories();\n\n\tasync function createTemplatePart() {\n\t\ttry {\n\t\t\tconst copiedTitle = sprintf(\n\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\titem.title\n\t\t\t);\n\t\t\tconst title = getUniqueTemplatePartTitle(\n\t\t\t\tcopiedTitle,\n\t\t\t\texistingTemplateParts\n\t\t\t);\n\t\t\tconst slug = getCleanTemplatePartSlug( title );\n\t\t\tconst { area, content } = item.templatePart;\n\n\t\t\tconst result = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\t{ slug, title, content, area },\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-patterns-success',\n\t\t\t\t}\n\t\t\t);\n\n\t\t\thistory.push( {\n\t\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\tpostId: result?.id,\n\t\t\t\tcategoryType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\tcategoryId,\n\t\t\t} );\n\n\t\t\tonClose();\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: __(\n\t\t\t\t\t\t\t'An error occurred while creating the template part.'\n\t\t\t\t\t );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst newTerm = await saveEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\t'wp_pattern_category',\n\t\t\t\t{\n\t\t\t\t\tname: term.label,\n\t\t\t\t\tslug: term.name,\n\t\t\t\t\tdescription: term.description,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\treturn newTerm.id;\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn error.data.term_id;\n\t\t}\n\t}\n\n\tasync function getCategories( categories ) {\n\t\tconst terms = categories.map( ( category ) => {\n\t\t\tconst fullCategory = patternCategories.find(\n\t\t\t\t( cat ) => cat.name === category\n\t\t\t);\n\t\t\tif ( fullCategory.id ) {\n\t\t\t\treturn fullCategory.id;\n\t\t\t}\n\t\t\treturn findOrCreateTerm( fullCategory );\n\t\t} );\n\n\t\treturn Promise.all( terms );\n\t}\n\n\tasync function createPattern() {\n\t\ttry {\n\t\t\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\t\t\tconst title = sprintf(\n\t\t\t\t/* translators: %s: Existing pattern title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\titem.title\n\t\t\t);\n\t\t\tconst categories = await getCategories( item.categories );\n\n\t\t\tconst result = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_block',\n\t\t\t\t{\n\t\t\t\t\tcontent: isThemePattern\n\t\t\t\t\t\t? item.content\n\t\t\t\t\t\t: item.patternBlock.content,\n\t\t\t\t\tmeta: getPatternMeta( item ),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t\twp_pattern_category: categories,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new pattern's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-patterns-success',\n\t\t\t\t}\n\t\t\t);\n\n\t\t\thistory.push( {\n\t\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\t\tcategoryId,\n\t\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\t\tpostId: result?.id,\n\t\t\t} );\n\n\t\t\tonClose();\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 creating the pattern.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tconst createItem =\n\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t? createTemplatePart\n\t\t\t: createPattern;\n\n\treturn <MenuItem onClick={ createItem }>{ label }</MenuItem>;\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASJ,KAAK,IAAIK,YAAY,QAAQ,oBAAoB;AAC1D,SAASC,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,SACCC,uBAAuB,EACvBC,aAAa,EACbC,kBAAkB,QACZ,uBAAuB;AAC9B,SACCC,wBAAwB,EACxBC,0BAA0B,EAC1BC,wBAAwB,QAClB,kCAAkC;AACzC,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,OAAOC,oBAAoB,MAAM,8DAA8D;AAE/F,MAAM;EAAEC;AAAW,CAAC,GAAGF,MAAM,CAAEP,iBAAkB,CAAC;AAElD,SAASU,cAAcA,CAAEC,IAAI,EAAG;EAC/B,IAAKA,IAAI,CAACC,IAAI,KAAKV,aAAa,CAACW,KAAK,EAAG;IACxC,OAAO;MAAEC,sBAAsB,EAAEX,kBAAkB,CAACY;IAAS,CAAC;EAC/D;EAEA,MAAMC,UAAU,GAAGL,IAAI,CAACM,YAAY,CAACH,sBAAsB;EAC3D,MAAMI,UAAU,GAAGF,UAAU,KAAKb,kBAAkB,CAACY,QAAQ;EAE7D,OAAO;IACN,GAAGJ,IAAI,CAACM,YAAY,CAACE,IAAI;IACzBL,sBAAsB,EAAEI,UAAU,GAAGF,UAAU,GAAGI;EACnD,CAAC;AACF;AAEA,eAAe,SAASC,iBAAiBA,CAAE;EAC1CC,UAAU;EACVX,IAAI;EACJY,KAAK,GAAG3B,EAAE,CAAE,WAAY,CAAC;EACzB4B;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,gBAAgB;IAAEC;EAAqB,CAAC,GAAG/B,WAAW,CAAED,SAAU,CAAC;EAC3E,MAAM;IAAEiC,iBAAiB;IAAEC;EAAoB,CAAC,GAC/CjC,WAAW,CAAEG,YAAa,CAAC;EAE5B,MAAM+B,OAAO,GAAGpB,UAAU,CAAC,CAAC;EAC5B,MAAMqB,qBAAqB,GAAG1B,wBAAwB,CAAC,CAAC;EACxD,MAAM;IAAE2B;EAAkB,CAAC,GAAGvB,oBAAoB,CAAC,CAAC;EAEpD,eAAewB,kBAAkBA,CAAA,EAAG;IACnC,IAAI;MACH,MAAMC,WAAW,GAAGpC,OAAO,EAC1B;MACAD,EAAE,CAAE,WAAY,CAAC,EACjBe,IAAI,CAACuB,KACN,CAAC;MACD,MAAMA,KAAK,GAAG7B,0BAA0B,CACvC4B,WAAW,EACXH,qBACD,CAAC;MACD,MAAMK,IAAI,GAAG7B,wBAAwB,CAAE4B,KAAM,CAAC;MAC9C,MAAM;QAAEE,IAAI;QAAEC;MAAQ,CAAC,GAAG1B,IAAI,CAAC2B,YAAY;MAE3C,MAAMC,MAAM,GAAG,MAAMd,gBAAgB,CACpC,UAAU,EACV,kBAAkB,EAClB;QAAEU,IAAI;QAAED,KAAK;QAAEG,OAAO;QAAED;MAAK,CAAC,EAC9B;QAAEI,YAAY,EAAE;MAAK,CACtB,CAAC;MAEDZ,mBAAmB,CAClB/B,OAAO;MACN;MACAD,EAAE,CAAE,kBAAmB,CAAC,EACxBe,IAAI,CAACuB,KACN,CAAC,EACD;QACCtB,IAAI,EAAE,UAAU;QAChB6B,EAAE,EAAE;MACL,CACD,CAAC;MAEDZ,OAAO,CAACa,IAAI,CAAE;QACbC,QAAQ,EAAE1C,uBAAuB;QACjC2C,MAAM,EAAEL,MAAM,EAAEE,EAAE;QAClBI,YAAY,EAAE5C,uBAAuB;QACrCqB;MACD,CAAE,CAAC;MAEHE,OAAO,CAAC,CAAC;IACV,CAAC,CAAC,OAAQsB,KAAK,EAAG;MACjB,MAAMC,YAAY,GACjBD,KAAK,CAACE,OAAO,IAAIF,KAAK,CAACG,IAAI,KAAK,eAAe,GAC5CH,KAAK,CAACE,OAAO,GACbpD,EAAE,CACF,qDACA,CAAC;MAEL+B,iBAAiB,CAAEoB,YAAY,EAAE;QAChCnC,IAAI,EAAE,UAAU;QAChB6B,EAAE,EAAE;MACL,CAAE,CAAC;MACHjB,OAAO,CAAC,CAAC;IACV;EACD;EAEA,eAAe0B,gBAAgBA,CAAEC,IAAI,EAAG;IACvC,IAAI;MACH,MAAMC,OAAO,GAAG,MAAM3B,gBAAgB,CACrC,UAAU,EACV,qBAAqB,EACrB;QACC4B,IAAI,EAAEF,IAAI,CAAC5B,KAAK;QAChBY,IAAI,EAAEgB,IAAI,CAACE,IAAI;QACfC,WAAW,EAAEH,IAAI,CAACG;MACnB,CAAC,EACD;QACCd,YAAY,EAAE;MACf,CACD,CAAC;MACDd,oBAAoB,CAAE,0BAA2B,CAAC;MAClD,OAAO0B,OAAO,CAACX,EAAE;IAClB,CAAC,CAAC,OAAQK,KAAK,EAAG;MACjB,IAAKA,KAAK,CAACG,IAAI,KAAK,aAAa,EAAG;QACnC,MAAMH,KAAK;MACZ;MAEA,OAAOA,KAAK,CAACS,IAAI,CAACC,OAAO;IAC1B;EACD;EAEA,eAAeC,aAAaA,CAAEC,UAAU,EAAG;IAC1C,MAAMC,KAAK,GAAGD,UAAU,CAACE,GAAG,CAAIC,QAAQ,IAAM;MAC7C,MAAMC,YAAY,GAAG/B,iBAAiB,CAACgC,IAAI,CACxCC,GAAG,IAAMA,GAAG,CAACX,IAAI,KAAKQ,QACzB,CAAC;MACD,IAAKC,YAAY,CAACrB,EAAE,EAAG;QACtB,OAAOqB,YAAY,CAACrB,EAAE;MACvB;MACA,OAAOS,gBAAgB,CAAEY,YAAa,CAAC;IACxC,CAAE,CAAC;IAEH,OAAOG,OAAO,CAACC,GAAG,CAAEP,KAAM,CAAC;EAC5B;EAEA,eAAeQ,aAAaA,CAAA,EAAG;IAC9B,IAAI;MACH,MAAMC,cAAc,GAAGzD,IAAI,CAACC,IAAI,KAAKV,aAAa,CAACW,KAAK;MACxD,MAAMqB,KAAK,GAAGrC,OAAO,EACpB;MACAD,EAAE,CAAE,WAAY,CAAC,EACjBe,IAAI,CAACuB,KACN,CAAC;MACD,MAAMwB,UAAU,GAAG,MAAMD,aAAa,CAAE9C,IAAI,CAAC+C,UAAW,CAAC;MAEzD,MAAMnB,MAAM,GAAG,MAAMd,gBAAgB,CACpC,UAAU,EACV,UAAU,EACV;QACCY,OAAO,EAAE+B,cAAc,GACpBzD,IAAI,CAAC0B,OAAO,GACZ1B,IAAI,CAACM,YAAY,CAACoB,OAAO;QAC5BlB,IAAI,EAAET,cAAc,CAAEC,IAAK,CAAC;QAC5B0D,MAAM,EAAE,SAAS;QACjBnC,KAAK;QACLoC,mBAAmB,EAAEZ;MACtB,CAAC,EACD;QAAElB,YAAY,EAAE;MAAK,CACtB,CAAC;MAEDZ,mBAAmB,CAClB/B,OAAO;MACN;MACAD,EAAE,CAAE,kBAAmB,CAAC,EACxBe,IAAI,CAACuB,KACN,CAAC,EACD;QACCtB,IAAI,EAAE,UAAU;QAChB6B,EAAE,EAAE;MACL,CACD,CAAC;MAEDZ,OAAO,CAACa,IAAI,CAAE;QACbG,YAAY,EAAE3C,aAAa,CAACW,KAAK;QACjCS,UAAU;QACVqB,QAAQ,EAAEzC,aAAa,CAACqE,IAAI;QAC5B3B,MAAM,EAAEL,MAAM,EAAEE;MACjB,CAAE,CAAC;MAEHjB,OAAO,CAAC,CAAC;IACV,CAAC,CAAC,OAAQsB,KAAK,EAAG;MACjB,MAAMC,YAAY,GACjBD,KAAK,CAACE,OAAO,IAAIF,KAAK,CAACG,IAAI,KAAK,eAAe,GAC5CH,KAAK,CAACE,OAAO,GACbpD,EAAE,CAAE,+CAAgD,CAAC;MAEzD+B,iBAAiB,CAAEoB,YAAY,EAAE;QAChCnC,IAAI,EAAE,UAAU;QAChB6B,EAAE,EAAE;MACL,CAAE,CAAC;MACHjB,OAAO,CAAC,CAAC;IACV;EACD;EAEA,MAAMgD,UAAU,GACf7D,IAAI,CAACC,IAAI,KAAKX,uBAAuB,GAClC+B,kBAAkB,GAClBmC,aAAa;EAEjB,OAAOM,aAAA,CAACjF,QAAQ;IAACkF,OAAO,EAAGF;EAAY,GAAGjD,KAAiB,CAAC;AAC7D"}
1
+ {"version":3,"names":["MenuItem","store","coreStore","useDispatch","__","sprintf","noticesStore","privateApis","routerPrivateApis","TEMPLATE_PART_POST_TYPE","PATTERN_TYPES","PATTERN_SYNC_TYPES","useExistingTemplateParts","getUniqueTemplatePartTitle","getCleanTemplatePartSlug","unlock","usePatternCategories","useHistory","getPatternMeta","item","type","theme","wp_pattern_sync_status","unsynced","syncStatus","patternBlock","isUnsynced","meta","undefined","DuplicateMenuItem","categoryId","label","onClose","saveEntityRecord","invalidateResolution","createErrorNotice","createSuccessNotice","history","existingTemplateParts","patternCategories","createTemplatePart","copiedTitle","title","slug","area","content","templatePart","result","throwOnError","id","push","postType","postId","categoryType","error","errorMessage","message","code","findOrCreateTerm","term","newTerm","name","description","data","term_id","getCategories","categories","terms","map","category","fullCategory","find","cat","Promise","all","createPattern","isThemePattern","user","status","wp_pattern_category","createItem","createElement","onClick"],"sources":["@wordpress/edit-site/src/components/page-patterns/duplicate-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_TYPES,\n\tPATTERN_SYNC_TYPES,\n} from '../../utils/constants';\nimport {\n\tuseExistingTemplateParts,\n\tgetUniqueTemplatePartTitle,\n\tgetCleanTemplatePartSlug,\n} from '../../utils/template-part-create';\nimport { unlock } from '../../lock-unlock';\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nfunction getPatternMeta( item ) {\n\tif ( item.type === PATTERN_TYPES.theme ) {\n\t\treturn { wp_pattern_sync_status: PATTERN_SYNC_TYPES.unsynced };\n\t}\n\n\tconst syncStatus = item.patternBlock.wp_pattern_sync_status;\n\tconst isUnsynced = syncStatus === PATTERN_SYNC_TYPES.unsynced;\n\n\treturn {\n\t\t...item.patternBlock.meta,\n\t\twp_pattern_sync_status: isUnsynced ? syncStatus : undefined,\n\t};\n}\n\nexport default function DuplicateMenuItem( {\n\tcategoryId,\n\titem,\n\tlabel = __( 'Duplicate' ),\n\tonClose,\n} ) {\n\tconst { saveEntityRecord, invalidateResolution } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst history = useHistory();\n\tconst existingTemplateParts = useExistingTemplateParts();\n\tconst { patternCategories } = usePatternCategories();\n\n\tasync function createTemplatePart() {\n\t\ttry {\n\t\t\tconst copiedTitle = sprintf(\n\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\titem.title\n\t\t\t);\n\t\t\tconst title = getUniqueTemplatePartTitle(\n\t\t\t\tcopiedTitle,\n\t\t\t\texistingTemplateParts\n\t\t\t);\n\t\t\tconst slug = getCleanTemplatePartSlug( title );\n\t\t\tconst { area, content } = item.templatePart;\n\n\t\t\tconst result = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t{ slug, title, content, area },\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-patterns-success',\n\t\t\t\t}\n\t\t\t);\n\n\t\t\thistory.push( {\n\t\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\tpostId: result?.id,\n\t\t\t\tcategoryType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\tcategoryId,\n\t\t\t} );\n\n\t\t\tonClose();\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: __(\n\t\t\t\t\t\t\t'An error occurred while creating the template part.'\n\t\t\t\t\t );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst newTerm = await saveEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\t'wp_pattern_category',\n\t\t\t\t{\n\t\t\t\t\tname: term.label,\n\t\t\t\t\tslug: term.name,\n\t\t\t\t\tdescription: term.description,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\treturn newTerm.id;\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn error.data.term_id;\n\t\t}\n\t}\n\n\tasync function getCategories( categories ) {\n\t\tconst terms = categories.map( ( category ) => {\n\t\t\tconst fullCategory = patternCategories.find(\n\t\t\t\t( cat ) => cat.name === category\n\t\t\t);\n\t\t\tif ( fullCategory.id ) {\n\t\t\t\treturn fullCategory.id;\n\t\t\t}\n\t\t\treturn findOrCreateTerm( fullCategory );\n\t\t} );\n\n\t\treturn Promise.all( terms );\n\t}\n\n\tasync function createPattern() {\n\t\ttry {\n\t\t\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\t\t\tconst title = sprintf(\n\t\t\t\t/* translators: %s: Existing pattern title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\titem.title || item.name\n\t\t\t);\n\t\t\tconst categories = await getCategories( item.categories || [] );\n\n\t\t\tconst result = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tPATTERN_TYPES.user,\n\t\t\t\t{\n\t\t\t\t\tcontent: isThemePattern\n\t\t\t\t\t\t? item.content\n\t\t\t\t\t\t: item.patternBlock.content,\n\t\t\t\t\tmeta: getPatternMeta( item ),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t\twp_pattern_category: categories,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new pattern's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title || item.name\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-patterns-success',\n\t\t\t\t}\n\t\t\t);\n\n\t\t\thistory.push( {\n\t\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\t\tcategoryId,\n\t\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\t\tpostId: result?.id,\n\t\t\t} );\n\n\t\t\tonClose();\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 creating the pattern.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tconst createItem =\n\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t? createTemplatePart\n\t\t\t: createPattern;\n\n\treturn <MenuItem onClick={ createItem }>{ label }</MenuItem>;\n}\n"],"mappings":"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"}
@@ -62,7 +62,7 @@ function GridItem({
62
62
  postType: item.type,
63
63
  postId: isUserPattern ? item.id : item.name,
64
64
  categoryId,
65
- categoryType: item.type
65
+ categoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme
66
66
  });
67
67
  const isEmpty = !item.blocks?.length;
68
68
  const patternClassNames = classnames('edit-site-patterns__pattern', {
@@ -92,11 +92,11 @@ function GridItem({
92
92
  const exportAsJSON = () => {
93
93
  const json = {
94
94
  __file: item.type,
95
- title: item.title,
95
+ title: item.title || item.name,
96
96
  content: item.patternBlock.content.raw,
97
97
  syncStatus: item.patternBlock.wp_pattern_sync_status
98
98
  };
99
- return downloadjs(JSON.stringify(json, null, 2), `${kebabCase(item.title)}.json`, 'application/json');
99
+ return downloadjs(JSON.stringify(json, null, 2), `${kebabCase(item.title || item.name)}.json`, 'application/json');
100
100
  };
101
101
 
102
102
  // Only custom patterns or custom template parts can be renamed or deleted.
@@ -121,7 +121,7 @@ function GridItem({
121
121
  const confirmButtonText = hasThemeFile ? __('Clear') : __('Delete');
122
122
  const confirmPrompt = hasThemeFile ? __('Are you sure you want to clear these customizations?') : sprintf(
123
123
  // translators: %s: The pattern or template part's title e.g. 'Call to action'.
124
- __('Are you sure you want to delete "%s"?'), item.title);
124
+ __('Are you sure you want to delete "%s"?'), item.title || item.name);
125
125
  const additionalStyles = !backgroundColor ? [{
126
126
  css: 'body { background: #fff; }'
127
127
  }] : undefined;
@@ -172,7 +172,7 @@ function GridItem({
172
172
  // See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.
173
173
  ,
174
174
  tabIndex: "-1"
175
- }, item.title)), item.type === PATTERN_TYPES.theme && createElement(Tooltip, {
175
+ }, item.title || item.name)), item.type === PATTERN_TYPES.theme && createElement(Tooltip, {
176
176
  placement: "top",
177
177
  text: __('This pattern cannot be edited.')
178
178
  }, createElement(Icon, {
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","downloadjs","paramCase","kebabCase","BlockPreview","privateApis","blockEditorPrivateApis","Button","__experimentalConfirmDialog","ConfirmDialog","DropdownMenu","MenuGroup","MenuItem","__experimentalHeading","Heading","__experimentalHStack","HStack","Tooltip","Flex","useDispatch","useState","useId","memo","__","sprintf","Icon","header","footer","symbolFilled","uncategorized","symbol","moreVertical","lockSmall","store","noticesStore","reusableBlocksStore","RenameMenuItem","DuplicateMenuItem","PATTERN_TYPES","TEMPLATE_PART_POST_TYPE","PATTERN_SYNC_TYPES","editSiteStore","useLink","unlock","useGlobalStyle","templatePartIcons","GridItem","categoryId","item","props","descriptionId","isDeleteDialogOpen","setIsDeleteDialogOpen","backgroundColor","removeTemplate","__experimentalDeleteReusableBlock","createErrorNotice","createSuccessNotice","isUserPattern","type","user","isNonUserPattern","theme","isTemplatePart","onClick","postType","postId","id","name","categoryType","isEmpty","blocks","length","patternClassNames","previewClassNames","deletePattern","title","error","errorMessage","message","code","deleteItem","exportAsJSON","json","__file","content","patternBlock","raw","syncStatus","wp_pattern_sync_status","JSON","stringify","isCustomPattern","isCustom","hasThemeFile","templatePart","has_theme_file","ariaDescriptions","push","description","itemIcon","full","undefined","confirmButtonText","confirmPrompt","additionalStyles","css","createElement","className","map","_","index","join","ariaDescription","key","hidden","justify","alignment","spacing","placement","text","icon","as","gap","level","variant","tabIndex","size","label","popoverProps","toggleProps","describedBy","onClose","isDestructive","onConfirm","onCancel"],"sources":["@wordpress/edit-site/src/components/page-patterns/grid-item.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport downloadjs from 'downloadjs';\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useId, memo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tmoreVertical,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\n\n/**\n * Internal dependencies\n */\nimport RenameMenuItem from './rename-menu-item';\nimport DuplicateMenuItem from './duplicate-menu-item';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n} from '../../utils/constants';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nconst templatePartIcons = { header, footer, uncategorized };\n\nfunction GridItem( { categoryId, item, ...props } ) {\n\tconst descriptionId = useId();\n\tconst [ isDeleteDialogOpen, setIsDeleteDialogOpen ] = useState( false );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\n\tconst { removeTemplate } = useDispatch( editSiteStore );\n\tconst { __experimentalDeleteReusableBlock } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: item.type,\n\t} );\n\n\tconst isEmpty = ! item.blocks?.length;\n\tconst patternClassNames = classnames( 'edit-site-patterns__pattern', {\n\t\t'is-placeholder': isEmpty,\n\t} );\n\tconst previewClassNames = classnames( 'edit-site-patterns__preview', {\n\t\t'is-inactive': isNonUserPattern,\n\t} );\n\n\tconst deletePattern = async () => {\n\t\ttry {\n\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The pattern's title e.g. 'Call to action'.\n\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while deleting the pattern.' );\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t}\n\t};\n\tconst deleteItem = () =>\n\t\tisTemplatePart ? removeTemplate( item ) : deletePattern();\n\tconst exportAsJSON = () => {\n\t\tconst json = {\n\t\t\t__file: item.type,\n\t\t\ttitle: item.title,\n\t\t\tcontent: item.patternBlock.content.raw,\n\t\t\tsyncStatus: item.patternBlock.wp_pattern_sync_status,\n\t\t};\n\n\t\treturn downloadjs(\n\t\t\tJSON.stringify( json, null, 2 ),\n\t\t\t`${ kebabCase( item.title ) }.json`,\n\t\t\t'application/json'\n\t\t);\n\t};\n\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\tconst ariaDescriptions = [];\n\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\n\tlet itemIcon;\n\tif ( ! isUserPattern && templatePartIcons[ categoryId ] ) {\n\t\titemIcon = templatePartIcons[ categoryId ];\n\t} else {\n\t\titemIcon =\n\t\t\titem.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;\n\t}\n\n\tconst confirmButtonText = hasThemeFile ? __( 'Clear' ) : __( 'Delete' );\n\tconst confirmPrompt = hasThemeFile\n\t\t? __( 'Are you sure you want to clear these customizations?' )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: The pattern or template part's title e.g. 'Call to action'.\n\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\titem.title\n\t\t );\n\n\tconst additionalStyles = ! backgroundColor\n\t\t? [ { css: 'body { background: #fff; }' } ]\n\t\t: undefined;\n\n\treturn (\n\t\t<li className={ patternClassNames }>\n\t\t\t<button\n\t\t\t\tclassName={ previewClassNames }\n\t\t\t\t// Even though still incomplete, passing ids helps performance.\n\t\t\t\t// @see https://reakit.io/docs/composite/#performance.\n\t\t\t\tid={ `edit-site-patterns-${ item.name }` }\n\t\t\t\t{ ...props }\n\t\t\t\tonClick={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? onClick : undefined\n\t\t\t\t}\n\t\t\t\taria-disabled={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? 'false' : 'true'\n\t\t\t\t}\n\t\t\t\taria-label={ item.title }\n\t\t\t\taria-describedby={\n\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\tblocks={ item.blocks }\n\t\t\t\t\t\tadditionalStyles={ additionalStyles }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</button>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t\t<HStack\n\t\t\t\tclassName=\"edit-site-patterns__footer\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t\t>\n\t\t\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\t<Flex as=\"span\" gap={ 0 } justify=\"left\">\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Heading level={ 5 }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t</HStack>\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\tclassName=\"edit-site-patterns__dropdown\"\n\t\t\t\t\tpopoverProps={ { placement: 'bottom-end' } }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\tdescribedBy: sprintf(\n\t\t\t\t\t\t\t/* translators: %s: pattern name */\n\t\t\t\t\t\t\t__( 'Action menu for %s pattern' ),\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ isCustomPattern && ! hasThemeFile && (\n\t\t\t\t\t\t\t\t<RenameMenuItem\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<DuplicateMenuItem\n\t\t\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tlabel={ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ item.type === PATTERN_TYPES.user && (\n\t\t\t\t\t\t\t\t<MenuItem onClick={ () => exportAsJSON() }>\n\t\t\t\t\t\t\t\t\t{ __( 'Export as JSON' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t{ isCustomPattern && (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tisDestructive={ ! hasThemeFile }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsDeleteDialogOpen( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasThemeFile\n\t\t\t\t\t\t\t\t\t\t? __( 'Clear customizations' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Delete' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t</HStack>\n\n\t\t\t{ isDeleteDialogOpen && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tconfirmButtonText={ confirmButtonText }\n\t\t\t\t\tonConfirm={ deleteItem }\n\t\t\t\t\tonCancel={ () => setIsDeleteDialogOpen( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ confirmPrompt }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nexport default memo( GridItem );\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,SAAS,IAAIC,SAAS,QAAQ,aAAa;;AAEpD;AACA;AACA;AACA,SACCC,YAAY,EACZC,WAAW,IAAIC,sBAAsB,QAC/B,yBAAyB;AAChC,SACCC,MAAM,EACNC,2BAA2B,IAAIC,aAAa,EAC5CC,YAAY,EACZC,SAAS,EACTC,QAAQ,EACRC,qBAAqB,IAAIC,OAAO,EAChCC,oBAAoB,IAAIC,MAAM,EAC9BC,OAAO,EACPC,IAAI,QACE,uBAAuB;AAC9B,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,QAAQ,EAAEC,KAAK,EAAEC,IAAI,QAAQ,oBAAoB;AAC1D,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SACCC,IAAI,EACJC,MAAM,EACNC,MAAM,EACNC,YAAY,IAAIC,aAAa,EAC7BC,MAAM,EACNC,YAAY,EACZC,SAAS,QACH,kBAAkB;AACzB,SAASC,KAAK,IAAIC,YAAY,QAAQ,oBAAoB;AAC1D,SAASD,KAAK,IAAIE,mBAAmB,QAAQ,4BAA4B;;AAEzE;AACA;AACA;AACA,OAAOC,cAAc,MAAM,oBAAoB;AAC/C,OAAOC,iBAAiB,MAAM,uBAAuB;AACrD,SACCC,aAAa,EACbC,uBAAuB,EACvBC,kBAAkB,QACZ,uBAAuB;AAC9B,SAASP,KAAK,IAAIQ,aAAa,QAAQ,aAAa;AACpD,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC;AAAe,CAAC,GAAGD,MAAM,CAAErC,sBAAuB,CAAC;AAE3D,MAAMuC,iBAAiB,GAAG;EAAEnB,MAAM;EAAEC,MAAM;EAAEE;AAAc,CAAC;AAE3D,SAASiB,QAAQA,CAAE;EAAEC,UAAU;EAAEC,IAAI;EAAE,GAAGC;AAAM,CAAC,EAAG;EACnD,MAAMC,aAAa,GAAG7B,KAAK,CAAC,CAAC;EAC7B,MAAM,CAAE8B,kBAAkB,EAAEC,qBAAqB,CAAE,GAAGhC,QAAQ,CAAE,KAAM,CAAC;EACvE,MAAM,CAAEiC,eAAe,CAAE,GAAGT,cAAc,CAAE,kBAAmB,CAAC;EAEhE,MAAM;IAAEU;EAAe,CAAC,GAAGnC,WAAW,CAAEsB,aAAc,CAAC;EACvD,MAAM;IAAEc;EAAkC,CAAC,GAC1CpC,WAAW,CAAEgB,mBAAoB,CAAC;EACnC,MAAM;IAAEqB,iBAAiB;IAAEC;EAAoB,CAAC,GAC/CtC,WAAW,CAAEe,YAAa,CAAC;EAE5B,MAAMwB,aAAa,GAAGV,IAAI,CAACW,IAAI,KAAKrB,aAAa,CAACsB,IAAI;EACtD,MAAMC,gBAAgB,GAAGb,IAAI,CAACW,IAAI,KAAKrB,aAAa,CAACwB,KAAK;EAC1D,MAAMC,cAAc,GAAGf,IAAI,CAACW,IAAI,KAAKpB,uBAAuB;EAE5D,MAAM;IAAEyB;EAAQ,CAAC,GAAGtB,OAAO,CAAE;IAC5BuB,QAAQ,EAAEjB,IAAI,CAACW,IAAI;IACnBO,MAAM,EAAER,aAAa,GAAGV,IAAI,CAACmB,EAAE,GAAGnB,IAAI,CAACoB,IAAI;IAC3CrB,UAAU;IACVsB,YAAY,EAAErB,IAAI,CAACW;EACpB,CAAE,CAAC;EAEH,MAAMW,OAAO,GAAG,CAAEtB,IAAI,CAACuB,MAAM,EAAEC,MAAM;EACrC,MAAMC,iBAAiB,GAAGzE,UAAU,CAAE,6BAA6B,EAAE;IACpE,gBAAgB,EAAEsE;EACnB,CAAE,CAAC;EACH,MAAMI,iBAAiB,GAAG1E,UAAU,CAAE,6BAA6B,EAAE;IACpE,aAAa,EAAE6D;EAChB,CAAE,CAAC;EAEH,MAAMc,aAAa,GAAG,MAAAA,CAAA,KAAY;IACjC,IAAI;MACH,MAAMpB,iCAAiC,CAAEP,IAAI,CAACmB,EAAG,CAAC;MAClDV,mBAAmB,CAClBjC,OAAO;MACN;MACAD,EAAE,CAAE,eAAgB,CAAC,EACrByB,IAAI,CAAC4B,KACN,CAAC,EACD;QAAEjB,IAAI,EAAE,UAAU;QAAEQ,EAAE,EAAE;MAA6B,CACtD,CAAC;IACF,CAAC,CAAC,OAAQU,KAAK,EAAG;MACjB,MAAMC,YAAY,GACjBD,KAAK,CAACE,OAAO,IAAIF,KAAK,CAACG,IAAI,KAAK,eAAe,GAC5CH,KAAK,CAACE,OAAO,GACbxD,EAAE,CAAE,+CAAgD,CAAC;MACzDiC,iBAAiB,CAAEsB,YAAY,EAAE;QAChCnB,IAAI,EAAE,UAAU;QAChBQ,EAAE,EAAE;MACL,CAAE,CAAC;IACJ;EACD,CAAC;EACD,MAAMc,UAAU,GAAGA,CAAA,KAClBlB,cAAc,GAAGT,cAAc,CAAEN,IAAK,CAAC,GAAG2B,aAAa,CAAC,CAAC;EAC1D,MAAMO,YAAY,GAAGA,CAAA,KAAM;IAC1B,MAAMC,IAAI,GAAG;MACZC,MAAM,EAAEpC,IAAI,CAACW,IAAI;MACjBiB,KAAK,EAAE5B,IAAI,CAAC4B,KAAK;MACjBS,OAAO,EAAErC,IAAI,CAACsC,YAAY,CAACD,OAAO,CAACE,GAAG;MACtCC,UAAU,EAAExC,IAAI,CAACsC,YAAY,CAACG;IAC/B,CAAC;IAED,OAAOxF,UAAU,CAChByF,IAAI,CAACC,SAAS,CAAER,IAAI,EAAE,IAAI,EAAE,CAAE,CAAC,EAC9B,GAAGhF,SAAS,CAAE6C,IAAI,CAAC4B,KAAM,CAAG,OAAM,EACnC,kBACD,CAAC;EACF,CAAC;;EAED;EACA,MAAMgB,eAAe,GACpBlC,aAAa,IAAMK,cAAc,IAAIf,IAAI,CAAC6C,QAAU;EACrD,MAAMC,YAAY,GAAG/B,cAAc,IAAIf,IAAI,CAAC+C,YAAY,CAACC,cAAc;EACvE,MAAMC,gBAAgB,GAAG,EAAE;EAE3B,IAAKL,eAAe,EAAG;IACtB;IACAK,gBAAgB,CAACC,IAAI,CACpB3E,EAAE,CAAE,uDAAwD,CAC7D,CAAC;EACF,CAAC,MAAM,IAAKyB,IAAI,CAACmD,WAAW,EAAG;IAC9BF,gBAAgB,CAACC,IAAI,CAAElD,IAAI,CAACmD,WAAY,CAAC;EAC1C;EAEA,IAAKtC,gBAAgB,EAAG;IACvBoC,gBAAgB,CAACC,IAAI,CACpB3E,EAAE,CAAE,2CAA4C,CACjD,CAAC;EACF;EAEA,IAAI6E,QAAQ;EACZ,IAAK,CAAE1C,aAAa,IAAIb,iBAAiB,CAAEE,UAAU,CAAE,EAAG;IACzDqD,QAAQ,GAAGvD,iBAAiB,CAAEE,UAAU,CAAE;EAC3C,CAAC,MAAM;IACNqD,QAAQ,GACPpD,IAAI,CAACwC,UAAU,KAAKhD,kBAAkB,CAAC6D,IAAI,GAAGvE,MAAM,GAAGwE,SAAS;EAClE;EAEA,MAAMC,iBAAiB,GAAGT,YAAY,GAAGvE,EAAE,CAAE,OAAQ,CAAC,GAAGA,EAAE,CAAE,QAAS,CAAC;EACvE,MAAMiF,aAAa,GAAGV,YAAY,GAC/BvE,EAAE,CAAE,sDAAuD,CAAC,GAC5DC,OAAO;EACP;EACAD,EAAE,CAAE,uCAAwC,CAAC,EAC7CyB,IAAI,CAAC4B,KACL,CAAC;EAEJ,MAAM6B,gBAAgB,GAAG,CAAEpD,eAAe,GACvC,CAAE;IAAEqD,GAAG,EAAE;EAA6B,CAAC,CAAE,GACzCJ,SAAS;EAEZ,OACCK,aAAA;IAAIC,SAAS,EAAGnC;EAAmB,GAClCkC,aAAA;IACCC,SAAS,EAAGlC;IACZ;IACA;IAAA;IACAP,EAAE,EAAI,sBAAsBnB,IAAI,CAACoB,IAAM,EAAG;IAAA,GACrCnB,KAAK;IACVe,OAAO,EACNhB,IAAI,CAACW,IAAI,KAAKrB,aAAa,CAACwB,KAAK,GAAGE,OAAO,GAAGsC,SAC9C;IACD,iBACCtD,IAAI,CAACW,IAAI,KAAKrB,aAAa,CAACwB,KAAK,GAAG,OAAO,GAAG,MAC9C;IACD,cAAad,IAAI,CAAC4B,KAAO;IACzB,oBACCqB,gBAAgB,CAACzB,MAAM,GACpByB,gBAAgB,CACfY,GAAG,CACH,CAAEC,CAAC,EAAEC,KAAK,KACR,GAAG7D,aAAe,IAAI6D,KAAO,EAChC,CAAC,CACAC,IAAI,CAAE,GAAI,CAAC,GACZV;EACH,GAEChC,OAAO,IAAIP,cAAc,IAAIxC,EAAE,CAAE,qBAAsB,CAAC,EACxD+C,OAAO,IAAI,CAAEP,cAAc,IAAIxC,EAAE,CAAE,eAAgB,CAAC,EACpD,CAAE+C,OAAO,IACVqC,aAAA,CAACvG,YAAY;IACZmE,MAAM,EAAGvB,IAAI,CAACuB,MAAQ;IACtBkC,gBAAgB,EAAGA;EAAkB,CACrC,CAEK,CAAC,EACPR,gBAAgB,CAACY,GAAG,CAAE,CAAEI,eAAe,EAAEF,KAAK,KAC/CJ,aAAA;IACCO,GAAG,EAAGH,KAAO;IACbI,MAAM;IACNhD,EAAE,EAAI,GAAGjB,aAAe,IAAI6D,KAAO;EAAG,GAEpCE,eACE,CACJ,CAAC,EACHN,aAAA,CAAC3F,MAAM;IACN4F,SAAS,EAAC,4BAA4B;IACtCQ,OAAO,EAAC;EAAe,GAEvBT,aAAA,CAAC3F,MAAM;IACNqG,SAAS,EAAC,QAAQ;IAClBD,OAAO,EAAC,MAAM;IACdE,OAAO,EAAG,CAAG;IACbV,SAAS,EAAC;EAAmC,GAE3CR,QAAQ,IAAI,CAAEvC,gBAAgB,IAC/B8C,aAAA,CAAC1F,OAAO;IACPsG,SAAS,EAAC,KAAK;IACfC,IAAI,EAAGjG,EAAE,CACR,2DACD;EAAG,GAEHoF,aAAA,CAAClF,IAAI;IACJmF,SAAS,EAAC,kCAAkC;IAC5Ca,IAAI,EAAGrB;EAAU,CACjB,CACO,CACT,EACDO,aAAA,CAACzF,IAAI;IAACwG,EAAE,EAAC,MAAM;IAACC,GAAG,EAAG,CAAG;IAACP,OAAO,EAAC;EAAM,GACrCpE,IAAI,CAACW,IAAI,KAAKrB,aAAa,CAACwB,KAAK,GAClCd,IAAI,CAAC4B,KAAK,GAEV+B,aAAA,CAAC7F,OAAO;IAAC8G,KAAK,EAAG;EAAG,GACnBjB,aAAA,CAACpG,MAAM;IACNsH,OAAO,EAAC,MAAM;IACd7D,OAAO,EAAGA;IACV;IACA;IAAA;IACA8D,QAAQ,EAAC;EAAI,GAEX9E,IAAI,CAAC4B,KACA,CACA,CACT,EACC5B,IAAI,CAACW,IAAI,KAAKrB,aAAa,CAACwB,KAAK,IAClC6C,aAAA,CAAC1F,OAAO;IACPsG,SAAS,EAAC,KAAK;IACfC,IAAI,EAAGjG,EAAE,CAAE,gCAAiC;EAAG,GAE/CoF,aAAA,CAAClF,IAAI;IACJmF,SAAS,EAAC,uCAAuC;IACjDa,IAAI,EAAGzF,SAAW;IAClB+F,IAAI,EAAG;EAAI,CACX,CACO,CAEL,CACC,CAAC,EACTpB,aAAA,CAACjG,YAAY;IACZ+G,IAAI,EAAG1F,YAAc;IACrBiG,KAAK,EAAGzG,EAAE,CAAE,SAAU,CAAG;IACzBqF,SAAS,EAAC,8BAA8B;IACxCqB,YAAY,EAAG;MAAEV,SAAS,EAAE;IAAa,CAAG;IAC5CW,WAAW,EAAG;MACbtB,SAAS,EAAE,4BAA4B;MACvCuB,WAAW,EAAE3G,OAAO,EACnB;MACAD,EAAE,CAAE,4BAA6B,CAAC,EAClCyB,IAAI,CAAC4B,KACN;IACD;EAAG,GAED,CAAE;IAAEwD;EAAQ,CAAC,KACdzB,aAAA,CAAChG,SAAS,QACPiF,eAAe,IAAI,CAAEE,YAAY,IAClCa,aAAA,CAACvE,cAAc;IACdY,IAAI,EAAGA,IAAM;IACboF,OAAO,EAAGA;EAAS,CACnB,CACD,EACDzB,aAAA,CAACtE,iBAAiB;IACjBU,UAAU,EAAGA,UAAY;IACzBC,IAAI,EAAGA,IAAM;IACboF,OAAO,EAAGA,OAAS;IACnBJ,KAAK,EAAGzG,EAAE,CAAE,WAAY;EAAG,CAC3B,CAAC,EACAyB,IAAI,CAACW,IAAI,KAAKrB,aAAa,CAACsB,IAAI,IACjC+C,aAAA,CAAC/F,QAAQ;IAACoD,OAAO,EAAGA,CAAA,KAAMkB,YAAY,CAAC;EAAG,GACvC3D,EAAE,CAAE,gBAAiB,CACd,CACV,EAECqE,eAAe,IAChBe,aAAA,CAAC/F,QAAQ;IACRyH,aAAa,EAAG,CAAEvC,YAAc;IAChC9B,OAAO,EAAGA,CAAA,KACTZ,qBAAqB,CAAE,IAAK;EAC5B,GAEC0C,YAAY,GACXvE,EAAE,CAAE,sBAAuB,CAAC,GAC5BA,EAAE,CAAE,QAAS,CACP,CAED,CAEC,CACP,CAAC,EAEP4B,kBAAkB,IACnBwD,aAAA,CAAClG,aAAa;IACb8F,iBAAiB,EAAGA,iBAAmB;IACvC+B,SAAS,EAAGrD,UAAY;IACxBsD,QAAQ,EAAGA,CAAA,KAAMnF,qBAAqB,CAAE,KAAM;EAAG,GAE/CoD,aACY,CAEb,CAAC;AAEP;AAEA,eAAelF,IAAI,CAAEwB,QAAS,CAAC"}
1
+ {"version":3,"names":["classnames","downloadjs","paramCase","kebabCase","BlockPreview","privateApis","blockEditorPrivateApis","Button","__experimentalConfirmDialog","ConfirmDialog","DropdownMenu","MenuGroup","MenuItem","__experimentalHeading","Heading","__experimentalHStack","HStack","Tooltip","Flex","useDispatch","useState","useId","memo","__","sprintf","Icon","header","footer","symbolFilled","uncategorized","symbol","moreVertical","lockSmall","store","noticesStore","reusableBlocksStore","RenameMenuItem","DuplicateMenuItem","PATTERN_TYPES","TEMPLATE_PART_POST_TYPE","PATTERN_SYNC_TYPES","editSiteStore","useLink","unlock","useGlobalStyle","templatePartIcons","GridItem","categoryId","item","props","descriptionId","isDeleteDialogOpen","setIsDeleteDialogOpen","backgroundColor","removeTemplate","__experimentalDeleteReusableBlock","createErrorNotice","createSuccessNotice","isUserPattern","type","user","isNonUserPattern","theme","isTemplatePart","onClick","postType","postId","id","name","categoryType","isEmpty","blocks","length","patternClassNames","previewClassNames","deletePattern","title","error","errorMessage","message","code","deleteItem","exportAsJSON","json","__file","content","patternBlock","raw","syncStatus","wp_pattern_sync_status","JSON","stringify","isCustomPattern","isCustom","hasThemeFile","templatePart","has_theme_file","ariaDescriptions","push","description","itemIcon","full","undefined","confirmButtonText","confirmPrompt","additionalStyles","css","createElement","className","map","_","index","join","ariaDescription","key","hidden","justify","alignment","spacing","placement","text","icon","as","gap","level","variant","tabIndex","size","label","popoverProps","toggleProps","describedBy","onClose","isDestructive","onConfirm","onCancel"],"sources":["@wordpress/edit-site/src/components/page-patterns/grid-item.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport downloadjs from 'downloadjs';\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useId, memo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tmoreVertical,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\n\n/**\n * Internal dependencies\n */\nimport RenameMenuItem from './rename-menu-item';\nimport DuplicateMenuItem from './duplicate-menu-item';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n} from '../../utils/constants';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nconst templatePartIcons = { header, footer, uncategorized };\n\nfunction GridItem( { categoryId, item, ...props } ) {\n\tconst descriptionId = useId();\n\tconst [ isDeleteDialogOpen, setIsDeleteDialogOpen ] = useState( false );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\n\tconst { removeTemplate } = useDispatch( editSiteStore );\n\tconst { __experimentalDeleteReusableBlock } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t} );\n\n\tconst isEmpty = ! item.blocks?.length;\n\tconst patternClassNames = classnames( 'edit-site-patterns__pattern', {\n\t\t'is-placeholder': isEmpty,\n\t} );\n\tconst previewClassNames = classnames( 'edit-site-patterns__preview', {\n\t\t'is-inactive': isNonUserPattern,\n\t} );\n\n\tconst deletePattern = async () => {\n\t\ttry {\n\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The pattern's title e.g. 'Call to action'.\n\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while deleting the pattern.' );\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t}\n\t};\n\tconst deleteItem = () =>\n\t\tisTemplatePart ? removeTemplate( item ) : deletePattern();\n\tconst exportAsJSON = () => {\n\t\tconst json = {\n\t\t\t__file: item.type,\n\t\t\ttitle: item.title || item.name,\n\t\t\tcontent: item.patternBlock.content.raw,\n\t\t\tsyncStatus: item.patternBlock.wp_pattern_sync_status,\n\t\t};\n\n\t\treturn downloadjs(\n\t\t\tJSON.stringify( json, null, 2 ),\n\t\t\t`${ kebabCase( item.title || item.name ) }.json`,\n\t\t\t'application/json'\n\t\t);\n\t};\n\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\tconst ariaDescriptions = [];\n\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\n\tlet itemIcon;\n\tif ( ! isUserPattern && templatePartIcons[ categoryId ] ) {\n\t\titemIcon = templatePartIcons[ categoryId ];\n\t} else {\n\t\titemIcon =\n\t\t\titem.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;\n\t}\n\n\tconst confirmButtonText = hasThemeFile ? __( 'Clear' ) : __( 'Delete' );\n\tconst confirmPrompt = hasThemeFile\n\t\t? __( 'Are you sure you want to clear these customizations?' )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: The pattern or template part's title e.g. 'Call to action'.\n\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\titem.title || item.name\n\t\t );\n\n\tconst additionalStyles = ! backgroundColor\n\t\t? [ { css: 'body { background: #fff; }' } ]\n\t\t: undefined;\n\n\treturn (\n\t\t<li className={ patternClassNames }>\n\t\t\t<button\n\t\t\t\tclassName={ previewClassNames }\n\t\t\t\t// Even though still incomplete, passing ids helps performance.\n\t\t\t\t// @see https://reakit.io/docs/composite/#performance.\n\t\t\t\tid={ `edit-site-patterns-${ item.name }` }\n\t\t\t\t{ ...props }\n\t\t\t\tonClick={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? onClick : undefined\n\t\t\t\t}\n\t\t\t\taria-disabled={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? 'false' : 'true'\n\t\t\t\t}\n\t\t\t\taria-label={ item.title }\n\t\t\t\taria-describedby={\n\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\tblocks={ item.blocks }\n\t\t\t\t\t\tadditionalStyles={ additionalStyles }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</button>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t\t<HStack\n\t\t\t\tclassName=\"edit-site-patterns__footer\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t\t>\n\t\t\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\t<Flex as=\"span\" gap={ 0 } justify=\"left\">\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Heading level={ 5 }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ item.title || item.name }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t</HStack>\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\tclassName=\"edit-site-patterns__dropdown\"\n\t\t\t\t\tpopoverProps={ { placement: 'bottom-end' } }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\tdescribedBy: sprintf(\n\t\t\t\t\t\t\t/* translators: %s: pattern name */\n\t\t\t\t\t\t\t__( 'Action menu for %s pattern' ),\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ isCustomPattern && ! hasThemeFile && (\n\t\t\t\t\t\t\t\t<RenameMenuItem\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<DuplicateMenuItem\n\t\t\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tlabel={ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ item.type === PATTERN_TYPES.user && (\n\t\t\t\t\t\t\t\t<MenuItem onClick={ () => exportAsJSON() }>\n\t\t\t\t\t\t\t\t\t{ __( 'Export as JSON' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t{ isCustomPattern && (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tisDestructive={ ! hasThemeFile }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsDeleteDialogOpen( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasThemeFile\n\t\t\t\t\t\t\t\t\t\t? __( 'Clear customizations' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Delete' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t</HStack>\n\n\t\t\t{ isDeleteDialogOpen && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tconfirmButtonText={ confirmButtonText }\n\t\t\t\t\tonConfirm={ deleteItem }\n\t\t\t\t\tonCancel={ () => setIsDeleteDialogOpen( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ confirmPrompt }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nexport default memo( GridItem );\n"],"mappings":"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"}