@wordpress/edit-site 5.30.0 → 5.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (470) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/block-editor/editor-canvas.js +24 -4
  3. package/build/components/block-editor/editor-canvas.js.map +1 -1
  4. package/build/components/block-editor/site-editor-canvas.js +15 -4
  5. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  6. package/build/components/block-editor/use-site-editor-settings.js +1 -1
  7. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  8. package/build/components/editor/index.js +12 -3
  9. package/build/components/editor/index.js.map +1 -1
  10. package/build/components/editor-canvas-container/index.js +1 -2
  11. package/build/components/editor-canvas-container/index.js.map +1 -1
  12. package/build/components/global-styles/background-panel.js +38 -0
  13. package/build/components/global-styles/background-panel.js.map +1 -0
  14. package/build/components/global-styles/color-palette-panel.js +0 -9
  15. package/build/components/global-styles/color-palette-panel.js.map +1 -1
  16. package/build/components/global-styles/font-families.js +1 -1
  17. package/build/components/global-styles/font-families.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/context.js +53 -17
  19. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/font-collection.js +4 -3
  21. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +3 -2
  23. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  24. package/build/components/global-styles/font-library-modal/installed-fonts.js +1 -1
  25. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  26. package/build/components/global-styles/font-library-modal/upload-fonts.js +44 -10
  27. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  28. package/build/components/global-styles/font-library-modal/utils/index.js +22 -4
  29. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  30. package/build/components/global-styles/font-library-modal/utils/preview-styles.js +3 -0
  31. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  32. package/build/components/global-styles/header.js +1 -1
  33. package/build/components/global-styles/header.js.map +1 -1
  34. package/build/components/global-styles/hooks.js +50 -1
  35. package/build/components/global-styles/hooks.js.map +1 -1
  36. package/build/components/global-styles/palette.js +3 -1
  37. package/build/components/global-styles/palette.js.map +1 -1
  38. package/build/components/global-styles/preview-colors.js +2 -2
  39. package/build/components/global-styles/preview-colors.js.map +1 -1
  40. package/build/components/global-styles/preview-iframe.js +0 -1
  41. package/build/components/global-styles/preview-iframe.js.map +1 -1
  42. package/build/components/global-styles/preview-styles.js +2 -2
  43. package/build/components/global-styles/preview-styles.js.map +1 -1
  44. package/build/components/global-styles/root-menu.js +8 -2
  45. package/build/components/global-styles/root-menu.js.map +1 -1
  46. package/build/components/global-styles/screen-background.js +34 -0
  47. package/build/components/global-styles/screen-background.js.map +1 -0
  48. package/build/components/global-styles/screen-color-palette.js +2 -2
  49. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  50. package/build/components/global-styles/screen-colors.js +5 -10
  51. package/build/components/global-styles/screen-colors.js.map +1 -1
  52. package/build/components/global-styles/screen-style-variations.js +3 -37
  53. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  54. package/build/components/global-styles/screen-typography.js +6 -11
  55. package/build/components/global-styles/screen-typography.js.map +1 -1
  56. package/build/components/global-styles/style-variations-container.js +5 -2
  57. package/build/components/global-styles/style-variations-container.js.map +1 -1
  58. package/build/components/global-styles/typography-elements.js +3 -1
  59. package/build/components/global-styles/typography-elements.js.map +1 -1
  60. package/build/components/global-styles/{preview-typography.js → typography-example.js} +4 -2
  61. package/build/components/global-styles/typography-example.js.map +1 -0
  62. package/build/components/global-styles/typography-preview.js +3 -1
  63. package/build/components/global-styles/typography-preview.js.map +1 -1
  64. package/build/components/global-styles/ui.js +4 -1
  65. package/build/components/global-styles/ui.js.map +1 -1
  66. package/build/components/global-styles/utils.js +1 -1
  67. package/build/components/global-styles/utils.js.map +1 -1
  68. package/build/components/global-styles/variations/variations-color.js +13 -7
  69. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  70. package/build/components/global-styles/variations/variations-typography.js +34 -37
  71. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  72. package/build/components/header-edit-mode/index.js +2 -1
  73. package/build/components/header-edit-mode/index.js.map +1 -1
  74. package/build/components/keyboard-shortcut-help-modal/config.js +6 -0
  75. package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  76. package/build/components/keyboard-shortcut-help-modal/index.js +3 -0
  77. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  78. package/build/components/keyboard-shortcuts/global.js +17 -3
  79. package/build/components/keyboard-shortcuts/global.js.map +1 -1
  80. package/build/components/layout/animation.js +129 -0
  81. package/build/components/layout/animation.js.map +1 -0
  82. package/build/components/layout/index.js +9 -17
  83. package/build/components/layout/index.js.map +1 -1
  84. package/build/components/layout/router.js +22 -22
  85. package/build/components/layout/router.js.map +1 -1
  86. package/build/components/page-pages/index.js +24 -27
  87. package/build/components/page-pages/index.js.map +1 -1
  88. package/build/components/page-patterns/delete-category-menu-item.js +6 -1
  89. package/build/components/page-patterns/delete-category-menu-item.js.map +1 -1
  90. package/build/components/page-patterns/index.js +19 -32
  91. package/build/components/page-patterns/index.js.map +1 -1
  92. package/build/components/page-patterns/search-items.js +16 -58
  93. package/build/components/page-patterns/search-items.js.map +1 -1
  94. package/build/components/page-patterns/use-patterns.js +9 -9
  95. package/build/components/page-patterns/use-patterns.js.map +1 -1
  96. package/build/components/page-templates-template-parts/actions.js +54 -41
  97. package/build/components/page-templates-template-parts/actions.js.map +1 -1
  98. package/build/components/page-templates-template-parts/index.js +31 -69
  99. package/build/components/page-templates-template-parts/index.js.map +1 -1
  100. package/build/components/plugin-template-setting-panel/index.js +12 -1
  101. package/build/components/plugin-template-setting-panel/index.js.map +1 -1
  102. package/build/components/save-button/index.js +45 -16
  103. package/build/components/save-button/index.js.map +1 -1
  104. package/build/components/save-hub/index.js +8 -112
  105. package/build/components/save-hub/index.js.map +1 -1
  106. package/build/components/save-panel/index.js +14 -9
  107. package/build/components/save-panel/index.js.map +1 -1
  108. package/build/components/sidebar/index.js +3 -8
  109. package/build/components/sidebar/index.js.map +1 -1
  110. package/build/components/sidebar-dataviews/custom-dataviews-list.js +2 -2
  111. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  112. package/build/components/sidebar-dataviews/dataview-item.js +2 -2
  113. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
  114. package/build/components/sidebar-dataviews/default-views.js +3 -3
  115. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  116. package/build/components/sidebar-dataviews/index.js +5 -4
  117. package/build/components/sidebar-dataviews/index.js.map +1 -1
  118. package/build/components/sidebar-edit-mode/index.js +1 -2
  119. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  120. package/build/components/sidebar-edit-mode/page-panels/index.js +7 -17
  121. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  122. package/build/components/sidebar-edit-mode/page-panels/page-content.js +7 -5
  123. package/build/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
  124. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +3 -1
  125. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  126. package/build/components/sidebar-edit-mode/template-panel/index.js +32 -18
  127. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  128. package/build/components/sidebar-navigation-screen-details-footer/index.js +5 -1
  129. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  130. package/build/components/sidebar-navigation-screen-global-styles/index.js +18 -1
  131. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  132. package/build/components/sidebar-navigation-screen-navigation-menu/{delete-modal.js → delete-confirm-dialog.js} +4 -5
  133. package/build/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -0
  134. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js +6 -6
  135. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  136. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  137. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  138. package/build/components/sidebar-navigation-screen-patterns/index.js +1 -5
  139. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  140. package/build/components/sidebar-navigation-screen-template/index.js +5 -1
  141. package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
  142. package/build/components/sidebar-navigation-screen-templates-browse/content.js +2 -2
  143. package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  144. package/build/components/style-book/index.js +1 -1
  145. package/build/components/style-book/index.js.map +1 -1
  146. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -3
  147. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  148. package/build/components/sync-state-with-url/use-sync-path-with-url.js +1 -11
  149. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  150. package/build/components/template-actions/index.js +44 -27
  151. package/build/components/template-actions/index.js.map +1 -1
  152. package/build/components/welcome-guide/editor.js +11 -2
  153. package/build/components/welcome-guide/editor.js.map +1 -1
  154. package/build/hooks/index.js +0 -1
  155. package/build/hooks/index.js.map +1 -1
  156. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +15 -2
  157. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  158. package/build/store/selectors.js +1 -9
  159. package/build/store/selectors.js.map +1 -1
  160. package/build/utils/constants.js +5 -3
  161. package/build/utils/constants.js.map +1 -1
  162. package/build/utils/get-is-list-page.js +1 -1
  163. package/build/utils/get-is-list-page.js.map +1 -1
  164. package/build/utils/math.js +98 -0
  165. package/build/utils/math.js.map +1 -0
  166. package/build-module/components/block-editor/editor-canvas.js +24 -4
  167. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  168. package/build-module/components/block-editor/site-editor-canvas.js +15 -4
  169. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  170. package/build-module/components/block-editor/use-site-editor-settings.js +1 -1
  171. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  172. package/build-module/components/editor/index.js +13 -4
  173. package/build-module/components/editor/index.js.map +1 -1
  174. package/build-module/components/editor-canvas-container/index.js +1 -2
  175. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  176. package/build-module/components/global-styles/background-panel.js +31 -0
  177. package/build-module/components/global-styles/background-panel.js.map +1 -0
  178. package/build-module/components/global-styles/color-palette-panel.js +0 -8
  179. package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
  180. package/build-module/components/global-styles/font-families.js +1 -1
  181. package/build-module/components/global-styles/font-families.js.map +1 -1
  182. package/build-module/components/global-styles/font-library-modal/context.js +54 -18
  183. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  184. package/build-module/components/global-styles/font-library-modal/font-collection.js +4 -3
  185. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  186. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +4 -3
  187. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  188. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +1 -1
  189. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  190. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +44 -10
  191. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  192. package/build-module/components/global-styles/font-library-modal/utils/index.js +22 -4
  193. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  194. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +3 -0
  195. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  196. package/build-module/components/global-styles/header.js +1 -1
  197. package/build-module/components/global-styles/header.js.map +1 -1
  198. package/build-module/components/global-styles/hooks.js +48 -1
  199. package/build-module/components/global-styles/hooks.js.map +1 -1
  200. package/build-module/components/global-styles/palette.js +3 -1
  201. package/build-module/components/global-styles/palette.js.map +1 -1
  202. package/build-module/components/global-styles/preview-colors.js +2 -2
  203. package/build-module/components/global-styles/preview-colors.js.map +1 -1
  204. package/build-module/components/global-styles/preview-iframe.js +0 -1
  205. package/build-module/components/global-styles/preview-iframe.js.map +1 -1
  206. package/build-module/components/global-styles/preview-styles.js +2 -2
  207. package/build-module/components/global-styles/preview-styles.js.map +1 -1
  208. package/build-module/components/global-styles/root-menu.js +9 -3
  209. package/build-module/components/global-styles/root-menu.js.map +1 -1
  210. package/build-module/components/global-styles/screen-background.js +26 -0
  211. package/build-module/components/global-styles/screen-background.js.map +1 -0
  212. package/build-module/components/global-styles/screen-color-palette.js +2 -2
  213. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  214. package/build-module/components/global-styles/screen-colors.js +5 -10
  215. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  216. package/build-module/components/global-styles/screen-style-variations.js +4 -38
  217. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  218. package/build-module/components/global-styles/screen-typography.js +6 -11
  219. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  220. package/build-module/components/global-styles/style-variations-container.js +5 -2
  221. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  222. package/build-module/components/global-styles/typography-elements.js +3 -1
  223. package/build-module/components/global-styles/typography-elements.js.map +1 -1
  224. package/build-module/components/global-styles/{preview-typography.js → typography-example.js} +4 -2
  225. package/build-module/components/global-styles/typography-example.js.map +1 -0
  226. package/build-module/components/global-styles/typography-preview.js +3 -1
  227. package/build-module/components/global-styles/typography-preview.js.map +1 -1
  228. package/build-module/components/global-styles/ui.js +4 -1
  229. package/build-module/components/global-styles/ui.js.map +1 -1
  230. package/build-module/components/global-styles/utils.js +1 -1
  231. package/build-module/components/global-styles/utils.js.map +1 -1
  232. package/build-module/components/global-styles/variations/variations-color.js +13 -7
  233. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  234. package/build-module/components/global-styles/variations/variations-typography.js +35 -38
  235. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  236. package/build-module/components/header-edit-mode/index.js +2 -1
  237. package/build-module/components/header-edit-mode/index.js.map +1 -1
  238. package/build-module/components/keyboard-shortcut-help-modal/config.js +6 -0
  239. package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  240. package/build-module/components/keyboard-shortcut-help-modal/index.js +3 -0
  241. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  242. package/build-module/components/keyboard-shortcuts/global.js +17 -3
  243. package/build-module/components/keyboard-shortcuts/global.js.map +1 -1
  244. package/build-module/components/layout/animation.js +122 -0
  245. package/build-module/components/layout/animation.js.map +1 -0
  246. package/build-module/components/layout/index.js +9 -17
  247. package/build-module/components/layout/index.js.map +1 -1
  248. package/build-module/components/layout/router.js +22 -22
  249. package/build-module/components/layout/router.js.map +1 -1
  250. package/build-module/components/page-pages/index.js +25 -28
  251. package/build-module/components/page-pages/index.js.map +1 -1
  252. package/build-module/components/page-patterns/delete-category-menu-item.js +6 -1
  253. package/build-module/components/page-patterns/delete-category-menu-item.js.map +1 -1
  254. package/build-module/components/page-patterns/index.js +21 -34
  255. package/build-module/components/page-patterns/index.js.map +1 -1
  256. package/build-module/components/page-patterns/search-items.js +14 -55
  257. package/build-module/components/page-patterns/search-items.js.map +1 -1
  258. package/build-module/components/page-patterns/use-patterns.js +9 -9
  259. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  260. package/build-module/components/page-templates-template-parts/actions.js +54 -40
  261. package/build-module/components/page-templates-template-parts/actions.js.map +1 -1
  262. package/build-module/components/page-templates-template-parts/index.js +34 -72
  263. package/build-module/components/page-templates-template-parts/index.js.map +1 -1
  264. package/build-module/components/plugin-template-setting-panel/index.js +12 -1
  265. package/build-module/components/plugin-template-setting-panel/index.js.map +1 -1
  266. package/build-module/components/save-button/index.js +46 -17
  267. package/build-module/components/save-button/index.js.map +1 -1
  268. package/build-module/components/save-hub/index.js +10 -114
  269. package/build-module/components/save-hub/index.js.map +1 -1
  270. package/build-module/components/save-panel/index.js +14 -9
  271. package/build-module/components/save-panel/index.js.map +1 -1
  272. package/build-module/components/sidebar/index.js +3 -8
  273. package/build-module/components/sidebar/index.js.map +1 -1
  274. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +2 -2
  275. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  276. package/build-module/components/sidebar-dataviews/dataview-item.js +2 -2
  277. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  278. package/build-module/components/sidebar-dataviews/default-views.js +4 -4
  279. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  280. package/build-module/components/sidebar-dataviews/index.js +5 -4
  281. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  282. package/build-module/components/sidebar-edit-mode/index.js +1 -2
  283. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  284. package/build-module/components/sidebar-edit-mode/page-panels/index.js +10 -20
  285. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  286. package/build-module/components/sidebar-edit-mode/page-panels/page-content.js +7 -5
  287. package/build-module/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
  288. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +4 -2
  289. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  290. package/build-module/components/sidebar-edit-mode/template-panel/index.js +33 -19
  291. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  292. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +5 -1
  293. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  294. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +19 -2
  295. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  296. package/build-module/components/sidebar-navigation-screen-navigation-menu/{delete-modal.js → delete-confirm-dialog.js} +3 -4
  297. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -0
  298. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js +6 -6
  299. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  300. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  301. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  302. package/build-module/components/sidebar-navigation-screen-patterns/index.js +1 -5
  303. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  304. package/build-module/components/sidebar-navigation-screen-template/index.js +5 -1
  305. package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
  306. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +2 -2
  307. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  308. package/build-module/components/style-book/index.js +1 -1
  309. package/build-module/components/style-book/index.js.map +1 -1
  310. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -3
  311. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  312. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +1 -11
  313. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  314. package/build-module/components/template-actions/index.js +44 -27
  315. package/build-module/components/template-actions/index.js.map +1 -1
  316. package/build-module/components/welcome-guide/editor.js +11 -2
  317. package/build-module/components/welcome-guide/editor.js.map +1 -1
  318. package/build-module/hooks/index.js +0 -1
  319. package/build-module/hooks/index.js.map +1 -1
  320. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +15 -2
  321. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  322. package/build-module/store/selectors.js +1 -9
  323. package/build-module/store/selectors.js.map +1 -1
  324. package/build-module/utils/constants.js +4 -2
  325. package/build-module/utils/constants.js.map +1 -1
  326. package/build-module/utils/get-is-list-page.js +1 -1
  327. package/build-module/utils/get-is-list-page.js.map +1 -1
  328. package/build-module/utils/math.js +92 -0
  329. package/build-module/utils/math.js.map +1 -0
  330. package/build-style/style-rtl.css +146 -130
  331. package/build-style/style.css +146 -130
  332. package/package.json +44 -44
  333. package/src/components/block-editor/editor-canvas.js +34 -9
  334. package/src/components/block-editor/site-editor-canvas.js +10 -7
  335. package/src/components/block-editor/use-site-editor-settings.js +0 -2
  336. package/src/components/editor/index.js +11 -4
  337. package/src/components/editor-canvas-container/index.js +0 -1
  338. package/src/components/global-styles/background-panel.js +34 -0
  339. package/src/components/global-styles/color-palette-panel.js +0 -11
  340. package/src/components/global-styles/font-families.js +1 -1
  341. package/src/components/global-styles/font-library-modal/context.js +77 -31
  342. package/src/components/global-styles/font-library-modal/font-collection.js +4 -3
  343. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +9 -2
  344. package/src/components/global-styles/font-library-modal/installed-fonts.js +1 -1
  345. package/src/components/global-styles/font-library-modal/style.scss +15 -6
  346. package/src/components/global-styles/font-library-modal/upload-fonts.js +53 -8
  347. package/src/components/global-styles/font-library-modal/utils/index.js +21 -8
  348. package/src/components/global-styles/font-library-modal/utils/preview-styles.js +4 -0
  349. package/src/components/global-styles/header.js +1 -1
  350. package/src/components/global-styles/hooks.js +68 -1
  351. package/src/components/global-styles/palette.js +3 -1
  352. package/src/components/global-styles/preview-colors.js +2 -2
  353. package/src/components/global-styles/preview-iframe.js +0 -1
  354. package/src/components/global-styles/preview-styles.js +2 -2
  355. package/src/components/global-styles/root-menu.js +12 -1
  356. package/src/components/global-styles/screen-background.js +29 -0
  357. package/src/components/global-styles/screen-color-palette.js +2 -2
  358. package/src/components/global-styles/screen-colors.js +4 -15
  359. package/src/components/global-styles/screen-style-variations.js +4 -36
  360. package/src/components/global-styles/screen-typography.js +6 -20
  361. package/src/components/global-styles/style-variations-container.js +2 -1
  362. package/src/components/global-styles/style.scss +15 -10
  363. package/src/components/global-styles/typography-elements.js +5 -1
  364. package/src/components/global-styles/{preview-typography.js → typography-example.js} +3 -1
  365. package/src/components/global-styles/typography-preview.js +3 -1
  366. package/src/components/global-styles/ui.js +5 -0
  367. package/src/components/global-styles/utils.js +1 -1
  368. package/src/components/global-styles/variations/style.scss +32 -23
  369. package/src/components/global-styles/variations/variations-color.js +12 -6
  370. package/src/components/global-styles/variations/variations-typography.js +41 -60
  371. package/src/components/header-edit-mode/index.js +1 -0
  372. package/src/components/header-edit-mode/style.scss +28 -17
  373. package/src/components/keyboard-shortcut-help-modal/config.js +4 -0
  374. package/src/components/keyboard-shortcut-help-modal/index.js +4 -0
  375. package/src/components/keyboard-shortcuts/global.js +16 -4
  376. package/src/components/layout/animation.js +122 -0
  377. package/src/components/layout/index.js +12 -27
  378. package/src/components/layout/router.js +26 -25
  379. package/src/components/layout/style.scss +2 -0
  380. package/src/components/page-pages/index.js +33 -54
  381. package/src/components/page-patterns/delete-category-menu-item.js +7 -0
  382. package/src/components/page-patterns/index.js +22 -31
  383. package/src/components/page-patterns/search-items.js +13 -58
  384. package/src/components/page-patterns/use-patterns.js +17 -10
  385. package/src/components/page-templates-template-parts/actions.js +106 -91
  386. package/src/components/page-templates-template-parts/index.js +41 -93
  387. package/src/components/page-templates-template-parts/style.scss +5 -0
  388. package/src/components/plugin-template-setting-panel/index.js +14 -1
  389. package/src/components/save-button/index.js +55 -26
  390. package/src/components/save-hub/index.js +20 -164
  391. package/src/components/save-panel/index.js +24 -17
  392. package/src/components/sidebar/index.js +2 -8
  393. package/src/components/sidebar-dataviews/custom-dataviews-list.js +2 -2
  394. package/src/components/sidebar-dataviews/dataview-item.js +2 -2
  395. package/src/components/sidebar-dataviews/default-views.js +12 -4
  396. package/src/components/sidebar-dataviews/index.js +5 -4
  397. package/src/components/sidebar-edit-mode/index.js +0 -2
  398. package/src/components/sidebar-edit-mode/page-panels/index.js +31 -62
  399. package/src/components/sidebar-edit-mode/page-panels/page-content.js +10 -10
  400. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +2 -0
  401. package/src/components/sidebar-edit-mode/template-panel/index.js +33 -24
  402. package/src/components/sidebar-edit-mode/template-panel/style.scss +1 -29
  403. package/src/components/sidebar-navigation-screen/style.scss +21 -9
  404. package/src/components/sidebar-navigation-screen-details-footer/index.js +6 -2
  405. package/src/components/sidebar-navigation-screen-global-styles/index.js +29 -2
  406. package/src/components/sidebar-navigation-screen-navigation-menu/{delete-modal.js → delete-confirm-dialog.js} +2 -3
  407. package/src/components/sidebar-navigation-screen-navigation-menu/more-menu.js +11 -9
  408. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +6 -3
  409. package/src/components/sidebar-navigation-screen-patterns/index.js +0 -7
  410. package/src/components/sidebar-navigation-screen-template/index.js +6 -1
  411. package/src/components/sidebar-navigation-screen-templates-browse/content.js +2 -2
  412. package/src/components/style-book/index.js +1 -3
  413. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -3
  414. package/src/components/sync-state-with-url/use-sync-path-with-url.js +3 -19
  415. package/src/components/template-actions/index.js +63 -46
  416. package/src/components/welcome-guide/editor.js +9 -6
  417. package/src/hooks/index.js +0 -1
  418. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +21 -4
  419. package/src/store/selectors.js +3 -15
  420. package/src/style.scss +0 -2
  421. package/src/utils/constants.js +4 -2
  422. package/src/utils/get-is-list-page.js +1 -1
  423. package/src/utils/math.js +93 -0
  424. package/build/components/actions/index.js +0 -321
  425. package/build/components/actions/index.js.map +0 -1
  426. package/build/components/global-styles/preview-typography.js.map +0 -1
  427. package/build/components/sidebar-edit-mode/sidebar-card/index.js +0 -42
  428. package/build/components/sidebar-edit-mode/sidebar-card/index.js.map +0 -1
  429. package/build/components/sidebar-edit-mode/template-panel/template-actions.js +0 -50
  430. package/build/components/sidebar-edit-mode/template-panel/template-actions.js.map +0 -1
  431. package/build/components/sidebar-edit-mode/template-panel/template-areas.js +0 -70
  432. package/build/components/sidebar-edit-mode/template-panel/template-areas.js.map +0 -1
  433. package/build/components/sidebar-navigation-screen-navigation-menu/delete-modal.js.map +0 -1
  434. package/build/components/sidebar-navigation-screen-pages/index.js +0 -175
  435. package/build/components/sidebar-navigation-screen-pages/index.js.map +0 -1
  436. package/build/components/sidebar-navigation-screen-templates/index.js +0 -132
  437. package/build/components/sidebar-navigation-screen-templates/index.js.map +0 -1
  438. package/build/hooks/template-part-edit.js +0 -82
  439. package/build/hooks/template-part-edit.js.map +0 -1
  440. package/build/store/utils.js +0 -71
  441. package/build/store/utils.js.map +0 -1
  442. package/build-module/components/actions/index.js +0 -310
  443. package/build-module/components/actions/index.js.map +0 -1
  444. package/build-module/components/global-styles/preview-typography.js.map +0 -1
  445. package/build-module/components/sidebar-edit-mode/sidebar-card/index.js +0 -34
  446. package/build-module/components/sidebar-edit-mode/sidebar-card/index.js.map +0 -1
  447. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js +0 -42
  448. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js.map +0 -1
  449. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js +0 -63
  450. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js.map +0 -1
  451. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-modal.js.map +0 -1
  452. package/build-module/components/sidebar-navigation-screen-pages/index.js +0 -167
  453. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +0 -1
  454. package/build-module/components/sidebar-navigation-screen-templates/index.js +0 -124
  455. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +0 -1
  456. package/build-module/hooks/template-part-edit.js +0 -75
  457. package/build-module/hooks/template-part-edit.js.map +0 -1
  458. package/build-module/store/utils.js +0 -64
  459. package/build-module/store/utils.js.map +0 -1
  460. package/src/components/actions/index.js +0 -411
  461. package/src/components/sidebar-edit-mode/sidebar-card/index.js +0 -34
  462. package/src/components/sidebar-edit-mode/sidebar-card/style.scss +0 -37
  463. package/src/components/sidebar-edit-mode/template-panel/template-actions.js +0 -49
  464. package/src/components/sidebar-edit-mode/template-panel/template-areas.js +0 -86
  465. package/src/components/sidebar-navigation-screen-pages/index.js +0 -238
  466. package/src/components/sidebar-navigation-screen-templates/index.js +0 -156
  467. package/src/components/sidebar-navigation-screen-templates/style.scss +0 -9
  468. package/src/hooks/template-part-edit.js +0 -89
  469. package/src/store/test/utils.js +0 -191
  470. package/src/store/utils.js +0 -69
@@ -1 +1 @@
1
- {"version":3,"names":["_icons","require","_i18n","_data","_element","_coreData","_notices","_htmlEntities","_components","_lockUnlock","_store","_isTemplateRevertable","_interopRequireDefault","_isTemplateRemovable","_constants","useResetTemplateAction","revertTemplate","useDispatch","editSiteStore","saveEditedEntityRecord","coreStore","createSuccessNotice","createErrorNotice","noticesStore","useMemo","id","label","__","isPrimary","icon","backup","isEligible","isTemplateRevertable","supportsBulk","callback","templates","template","allowUndo","type","length","sprintf","decodeEntities","title","rendered","error","fallbackErrorMessage","TEMPLATE_POST_TYPE","errorMessage","message","code","deleteTemplateAction","exports","trash","isTemplateRemovable","hideModalHeader","RenderModal","items","closeModal","onPerform","removeTemplates","unlock","_react","createElement","__experimentalVStack","spacing","__experimentalText","_n","__experimentalHStack","justify","Button","variant","onClick","renameTemplateAction","is_custom","editedTitle","setEditedTitle","useState","editEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","onTemplateRename","event","preventDefault","throwOnError","onSubmit","TextControl","__nextHasNoMarginBottom","value","onChange","required"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { backup, trash } from '@wordpress/icons';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport isTemplateRevertable from '../../utils/is-template-revertable';\nimport isTemplateRemovable from '../../utils/is-template-removable';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nexport function useResetTemplateAction() {\n\tconst { revertTemplate } = useDispatch( editSiteStore );\n\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'reset-template',\n\t\t\tlabel: __( 'Reset' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tisEligible: isTemplateRevertable,\n\t\t\tsupportsBulk: true,\n\t\t\tasync callback( templates ) {\n\t\t\t\ttry {\n\t\t\t\t\tfor ( const template of templates ) {\n\t\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\ttemplates.length > 1\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t\t__( '%s items reverted.' ),\n\t\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t\t__( '\"%s\" reverted.' ),\n\t\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\t\ttemplates[ 0 ].title.rendered\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'edit-site-template-reverted',\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} catch ( error ) {\n\t\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\t\tif ( templates[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\t\ttemplates.length === 1\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\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\t'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t\t );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\t\ttemplates.length === 1\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\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\t'An error occurred while reverting the template parts.'\n\t\t\t\t\t\t\t\t );\n\t\t\t\t\t}\n\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateErrorNotice,\n\t\t\tcreateSuccessNotice,\n\t\t\trevertTemplate,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n}\n\nexport const deleteTemplateAction = {\n\tid: 'delete-template',\n\tlabel: __( 'Delete' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible: isTemplateRemovable,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( { items: templates, closeModal, onPerform } ) => {\n\t\tconst { removeTemplates } = unlock( useDispatch( editSiteStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ templates.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: number of items to delete.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Delete %d item?',\n\t\t\t\t\t\t\t\t\t'Delete %d items?',\n\t\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The template or template part's titles\n\t\t\t\t\t\t\t\t__( 'Delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\ttemplates?.[ 0 ]?.title?.rendered\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tawait removeTemplates( templates, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tif ( onPerform ) {\n\t\t\t\t\t\t\t\tonPerform();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const renameTemplateAction = {\n\tid: 'rename-template',\n\tlabel: __( 'Rename' ),\n\tisEligible: ( template ) => {\n\t\t// We can only remove templates or template parts that can be removed.\n\t\t// Additionally in the case of templates, we can only remove custom templates.\n\t\tif (\n\t\t\t! isTemplateRemovable( template ) ||\n\t\t\t( template.type === TEMPLATE_POST_TYPE && ! template.is_custom )\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\tRenderModal: ( { items: templates, closeModal } ) => {\n\t\tconst template = templates[ 0 ];\n\t\tconst title = decodeEntities( template.title.rendered );\n\t\tconst [ editedTitle, setEditedTitle ] = useState( title );\n\t\tconst {\n\t\t\teditEntityRecord,\n\t\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t\t} = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tasync function onTemplateRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: editedTitle,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetEditedTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t[ 'title' ], // Only save title to avoid persisting other edits.\n\t\t\t\t\t{\n\t\t\t\t\t\tthrowOnError: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// TODO: this action will be reused in template parts list, so\n\t\t\t\t// let's keep this for a bit, even it's always a `template` now.\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template renamed.' )\n\t\t\t\t\t\t: __( 'Template part renamed.' ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tconst fallbackErrorMessage =\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'An error occurred while renaming the template.' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\t\t\t\t );\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ onTemplateRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ editedTitle }\n\t\t\t\t\t\tonChange={ setEditedTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_data","_element","_coreData","_notices","_htmlEntities","_components","_lockUnlock","_store","_isTemplateRevertable","_interopRequireDefault","_isTemplateRemovable","_constants","resetTemplateAction","exports","id","label","__","isEligible","isTemplateRevertable","supportsBulk","hideModalHeader","RenderModal","items","closeModal","onPerform","revertTemplate","useDispatch","editSiteStore","saveEditedEntityRecord","coreStore","createSuccessNotice","createErrorNotice","noticesStore","onConfirm","template","allowUndo","type","length","sprintf","decodeEntities","title","rendered","error","fallbackErrorMessage","TEMPLATE_POST_TYPE","errorMessage","message","code","_react","createElement","__experimentalVStack","spacing","__experimentalText","__experimentalHStack","justify","Button","variant","onClick","deleteTemplateAction","isTemplateRemovable","templates","removeTemplates","unlock","_n","renameTemplateAction","is_custom","editedTitle","setEditedTitle","useState","editEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","onTemplateRename","event","preventDefault","throwOnError","onSubmit","TextControl","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","required"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport isTemplateRevertable from '../../utils/is-template-revertable';\nimport isTemplateRemovable from '../../utils/is-template-removable';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nexport const resetTemplateAction = {\n\tid: 'reset-template',\n\tlabel: __( 'Clear customizations' ),\n\tisEligible: isTemplateRevertable,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( { items, closeModal, onPerform } ) => {\n\t\tconst { revertTemplate } = useDispatch( editSiteStore );\n\t\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst onConfirm = async () => {\n\t\t\ttry {\n\t\t\t\tfor ( const template of items ) {\n\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t} );\n\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\titems.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t__( '%s items reverted.' ),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t__( '\"%s\" reverted.' ),\n\t\t\t\t\t\t\t\tdecodeEntities( items[ 0 ].title.rendered )\n\t\t\t\t\t\t ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'edit-site-template-reverted',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\tif ( items[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t );\n\t\t\t\t} else {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template parts.'\n\t\t\t\t\t\t\t );\n\t\t\t\t}\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t};\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Are you sure you want to clear these customizations?'\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tawait onConfirm( items );\n\t\t\t\t\t\t\tonPerform?.();\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Clear' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const deleteTemplateAction = {\n\tid: 'delete-template',\n\tlabel: __( 'Delete' ),\n\tisEligible: isTemplateRemovable,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( { items: templates, closeModal, onPerform } ) => {\n\t\tconst { removeTemplates } = unlock( useDispatch( editSiteStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ templates.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: number of items to delete.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Delete %d item?',\n\t\t\t\t\t\t\t\t\t'Delete %d items?',\n\t\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The template or template part's titles\n\t\t\t\t\t\t\t\t__( 'Delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\ttemplates?.[ 0 ]?.title?.rendered\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tawait removeTemplates( templates, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tonPerform?.();\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const renameTemplateAction = {\n\tid: 'rename-template',\n\tlabel: __( 'Rename' ),\n\tisEligible: ( template ) => {\n\t\t// We can only remove templates or template parts that can be removed.\n\t\t// Additionally in the case of templates, we can only remove custom templates.\n\t\tif (\n\t\t\t! isTemplateRemovable( template ) ||\n\t\t\t( template.type === TEMPLATE_POST_TYPE && ! template.is_custom )\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\tRenderModal: ( { items: templates, closeModal } ) => {\n\t\tconst template = templates[ 0 ];\n\t\tconst title = decodeEntities( template.title.rendered );\n\t\tconst [ editedTitle, setEditedTitle ] = useState( title );\n\t\tconst {\n\t\t\teditEntityRecord,\n\t\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t\t} = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tasync function onTemplateRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: editedTitle,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetEditedTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t[ 'title' ], // Only save title to avoid persisting other edits.\n\t\t\t\t\t{\n\t\t\t\t\t\tthrowOnError: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template renamed.' )\n\t\t\t\t\t\t: __( 'Template part renamed.' ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tconst fallbackErrorMessage =\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'An error occurred while renaming the template.' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\t\t\t\t );\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ onTemplateRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ editedTitle }\n\t\t\t\t\t\tonChange={ setEditedTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n"],"mappings":"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"}
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = PageTemplatesTemplateParts;
8
8
  var _react = require("react");
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
- var _removeAccents = _interopRequireDefault(require("remove-accents"));
11
10
  var _components = require("@wordpress/components");
12
11
  var _i18n = require("@wordpress/i18n");
13
12
  var _element = require("@wordpress/element");
@@ -17,13 +16,13 @@ var _blocks = require("@wordpress/blocks");
17
16
  var _blockEditor = require("@wordpress/block-editor");
18
17
  var _dataviews = require("@wordpress/dataviews");
19
18
  var _router = require("@wordpress/router");
19
+ var _editor = require("@wordpress/editor");
20
20
  var _page = _interopRequireDefault(require("../page"));
21
21
  var _link = _interopRequireWildcard(require("../routes/link"));
22
22
  var _addNewTemplate = _interopRequireDefault(require("../add-new-template"));
23
23
  var _hooks = require("./hooks");
24
24
  var _constants = require("../../utils/constants");
25
25
  var _actions = require("./actions");
26
- var _actions2 = require("../actions");
27
26
  var _usePatternSettings = _interopRequireDefault(require("../page-patterns/use-pattern-settings"));
28
27
  var _lockUnlock = require("../../lock-unlock");
29
28
  var _addNewTemplatePart = _interopRequireDefault(require("./add-new-template-part"));
@@ -41,6 +40,9 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
41
40
  * Internal dependencies
42
41
  */
43
42
 
43
+ const {
44
+ usePostActions
45
+ } = (0, _lockUnlock.unlock)(_editor.privateApis);
44
46
  const {
45
47
  ExperimentalBlockEditorProvider,
46
48
  useGlobalStyle
@@ -50,14 +52,14 @@ const {
50
52
  useLocation
51
53
  } = (0, _lockUnlock.unlock)(_router.privateApis);
52
54
  const EMPTY_ARRAY = [];
53
- const SUPPORTED_LAYOUTS = window?.__experimentalAdminViews ? [_constants.LAYOUT_TABLE, _constants.LAYOUT_GRID, _constants.LAYOUT_LIST] : [_constants.LAYOUT_TABLE, _constants.LAYOUT_GRID];
54
55
  const defaultConfigPerViewType = {
55
56
  [_constants.LAYOUT_TABLE]: {
56
57
  primaryField: 'title'
57
58
  },
58
59
  [_constants.LAYOUT_GRID]: {
59
60
  mediaField: 'preview',
60
- primaryField: 'title'
61
+ primaryField: 'title',
62
+ displayAsColumnFields: ['description']
61
63
  },
62
64
  [_constants.LAYOUT_LIST]: {
63
65
  primaryField: 'title',
@@ -79,9 +81,6 @@ const DEFAULT_VIEW = {
79
81
  layout: defaultConfigPerViewType[_constants.LAYOUT_TABLE],
80
82
  filters: []
81
83
  };
82
- function normalizeSearchInput(input = '') {
83
- return (0, _removeAccents.default)(input.trim().toLowerCase());
84
- }
85
84
  function Title({
86
85
  item,
87
86
  viewType
@@ -131,7 +130,9 @@ function AuthorField({
131
130
  className: "page-templates-author-field__icon"
132
131
  }, (0, _react.createElement)(_components.Icon, {
133
132
  icon: icon
134
- })), (0, _react.createElement)("span", null, text));
133
+ })), (0, _react.createElement)("span", {
134
+ className: "page-templates-author-field__name"
135
+ }, text));
135
136
  }
136
137
  function Preview({
137
138
  item,
@@ -186,15 +187,15 @@ function PageTemplatesTemplateParts({
186
187
  layout
187
188
  } = params;
188
189
  const defaultView = (0, _element.useMemo)(() => {
189
- const usedType = window?.__experimentalAdminViews ? layout !== null && layout !== void 0 ? layout : DEFAULT_VIEW.type : DEFAULT_VIEW.type;
190
+ const usedType = layout !== null && layout !== void 0 ? layout : DEFAULT_VIEW.type;
190
191
  return {
191
192
  ...DEFAULT_VIEW,
192
193
  type: usedType,
193
194
  layout: defaultConfigPerViewType[usedType],
194
195
  filters: activeView !== 'all' ? [{
195
196
  field: 'author',
196
- operator: 'in',
197
- value: activeView
197
+ operator: 'isAny',
198
+ value: [activeView]
198
199
  }] : []
199
200
  };
200
201
  }, [layout, activeView]);
@@ -204,8 +205,8 @@ function PageTemplatesTemplateParts({
204
205
  ...currentView,
205
206
  filters: activeView !== 'all' ? [{
206
207
  field: 'author',
207
- operator: 'in',
208
- value: activeView
208
+ operator: _constants.OPERATOR_IS_ANY,
209
+ value: [activeView]
209
210
  }] : []
210
211
  }));
211
212
  }, [activeView]);
@@ -265,15 +266,13 @@ function PageTemplatesTemplateParts({
265
266
  viewType: view.type
266
267
  }),
267
268
  maxWidth: 400,
268
- enableHiding: false
269
+ enableHiding: false,
270
+ enableGlobalSearch: true
269
271
  }];
270
272
  if (postType === _constants.TEMPLATE_POST_TYPE) {
271
273
  _fields.push({
272
274
  header: (0, _i18n.__)('Description'),
273
275
  id: 'description',
274
- getValue: ({
275
- item
276
- }) => item.description,
277
276
  render: ({
278
277
  item
279
278
  }) => {
@@ -286,7 +285,8 @@ function PageTemplatesTemplateParts({
286
285
  },
287
286
  maxWidth: 400,
288
287
  minWidth: 320,
289
- enableSorting: false
288
+ enableSorting: false,
289
+ enableGlobalSearch: true
290
290
  });
291
291
  }
292
292
  // TODO: The plan is to support fields reordering, which would require an API like `order` or something
@@ -315,57 +315,20 @@ function PageTemplatesTemplateParts({
315
315
  data,
316
316
  paginationInfo
317
317
  } = (0, _element.useMemo)(() => {
318
- if (!records) {
319
- return {
320
- data: EMPTY_ARRAY,
321
- paginationInfo: {
322
- totalItems: 0,
323
- totalPages: 0
324
- }
325
- };
326
- }
327
- let filteredData = [...records];
328
- // Handle global search.
329
- if (view.search) {
330
- const normalizedSearch = normalizeSearchInput(view.search);
331
- filteredData = filteredData.filter(item => {
332
- const title = item.title?.rendered || item.slug;
333
- return normalizeSearchInput(title).includes(normalizedSearch) || normalizeSearchInput(item.description).includes(normalizedSearch);
334
- });
335
- }
336
-
337
- // Handle filters.
338
- if (view.filters.length > 0) {
339
- view.filters.forEach(filter => {
340
- if (filter.field === 'author' && filter.operator === _constants.OPERATOR_IN && !!filter.value) {
341
- filteredData = filteredData.filter(item => {
342
- return item.author_text === filter.value;
343
- });
344
- } else if (filter.field === 'author' && filter.operator === _constants.OPERATOR_NOT_IN && !!filter.value) {
345
- filteredData = filteredData.filter(item => {
346
- return item.author_text !== filter.value;
347
- });
348
- }
349
- });
350
- }
351
-
352
- // Handle sorting.
353
- if (view.sort) {
354
- filteredData = (0, _dataviews.sortByTextFields)({
355
- data: filteredData,
356
- view,
357
- fields,
358
- textFields: ['title', 'author']
318
+ return (0, _dataviews.filterSortAndPaginate)(records, view, fields);
319
+ }, [records, view, fields]);
320
+ const onActionPerformed = (0, _element.useCallback)((actionId, items) => {
321
+ if (actionId === 'edit-post') {
322
+ const post = items[0];
323
+ history.push({
324
+ postId: post.id,
325
+ postType: post.type,
326
+ canvas: 'edit'
359
327
  });
360
328
  }
361
- // Handle pagination.
362
- return (0, _dataviews.getPaginationResults)({
363
- data: filteredData,
364
- view
365
- });
366
- }, [records, view, fields]);
367
- const resetTemplateAction = (0, _actions.useResetTemplateAction)();
368
- const actions = (0, _element.useMemo)(() => [resetTemplateAction, _actions.deleteTemplateAction, _actions.renameTemplateAction, _actions2.postRevisionsAction], [resetTemplateAction]);
329
+ }, [history]);
330
+ const [editAction, viewRevisionsAction] = usePostActions(onActionPerformed, ['edit-post', 'view-post-revisions']);
331
+ const actions = (0, _element.useMemo)(() => [editAction, _actions.resetTemplateAction, _actions.renameTemplateAction, viewRevisionsAction, _actions.deleteTemplateAction], [editAction, viewRevisionsAction]);
369
332
  const onChangeView = (0, _element.useCallback)(newView => {
370
333
  if (newView.type !== view.type) {
371
334
  newView = {
@@ -400,8 +363,7 @@ function PageTemplatesTemplateParts({
400
363
  view: view,
401
364
  onChangeView: onChangeView,
402
365
  onSelectionChange: onSelectionChange,
403
- deferredRendering: !view.hiddenFields?.includes('preview'),
404
- supportedLayouts: SUPPORTED_LAYOUTS
366
+ deferredRendering: view.type === _constants.LAYOUT_GRID || !view.hiddenFields?.includes('preview')
405
367
  }));
406
368
  }
407
369
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_removeAccents","_components","_i18n","_element","_coreData","_htmlEntities","_blocks","_blockEditor","_dataviews","_router","_page","_link","_interopRequireWildcard","_addNewTemplate","_hooks","_constants","_actions","_actions2","_usePatternSettings","_lockUnlock","_addNewTemplatePart","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ExperimentalBlockEditorProvider","useGlobalStyle","unlock","blockEditorPrivateApis","useHistory","useLocation","routerPrivateApis","EMPTY_ARRAY","SUPPORTED_LAYOUTS","window","__experimentalAdminViews","LAYOUT_TABLE","LAYOUT_GRID","LAYOUT_LIST","defaultConfigPerViewType","primaryField","mediaField","DEFAULT_VIEW","type","search","page","perPage","sort","field","direction","hiddenFields","layout","filters","normalizeSearchInput","input","removeAccents","trim","toLowerCase","Title","item","viewType","decodeEntities","title","rendered","__","linkProps","params","postId","id","postType","canvas","TEMPLATE_PART_POST_TYPE","state","backPath","_react","createElement","AuthorField","isImageLoaded","setIsImageLoaded","useState","text","icon","imageUrl","useAddedBy","withIcon","__experimentalHStack","alignment","spacing","className","classnames","onLoad","alt","src","Icon","Preview","settings","usePatternSettings","backgroundColor","blocks","useMemo","parse","content","raw","onClick","useLink","isEmpty","length","style","BlockPreview","TEMPLATE_POST_TYPE","PageTemplatesTemplateParts","activeView","defaultView","usedType","operator","value","view","setView","useEffect","currentView","records","isResolving","isLoadingData","useEntityRecords","per_page","history","onSelectionChange","useCallback","items","push","undefined","authors","authorsSet","Set","forEach","template","add","author_text","Array","from","map","author","label","fields","_fields","header","render","minWidth","maxWidth","enableSorting","getValue","enableHiding","description","Fragment","__experimentalText","variant","VisuallyHidden","ENUMERATION_TYPE","elements","width","data","paginationInfo","totalItems","totalPages","filteredData","normalizedSearch","filter","slug","includes","OPERATOR_IN","OPERATOR_NOT_IN","sortByTextFields","textFields","getPaginationResults","resetTemplateAction","useResetTemplateAction","actions","deleteTemplateAction","renameTemplateAction","postRevisionsAction","onChangeView","newView","templateType","showIcon","toggleProps","DataViews","isLoading","deferredRendering","supportedLayouts"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useMemo, useCallback, useEffect } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { parse } from '@wordpress/blocks';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tDataViews,\n\tsortByTextFields,\n\tgetPaginationResults,\n} from '@wordpress/dataviews';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport { default as Link, useLink } from '../routes/link';\nimport AddNewTemplate from '../add-new-template';\nimport { useAddedBy } from './hooks';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tENUMERATION_TYPE,\n\tOPERATOR_IN,\n\tOPERATOR_NOT_IN,\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n} from '../../utils/constants';\nimport {\n\tuseResetTemplateAction,\n\tdeleteTemplateAction,\n\trenameTemplateAction,\n} from './actions';\nimport { postRevisionsAction } from '../actions';\nimport usePatternSettings from '../page-patterns/use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport AddNewTemplatePart from './add-new-template-part';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nconst SUPPORTED_LAYOUTS = window?.__experimentalAdminViews\n\t? [ LAYOUT_TABLE, LAYOUT_GRID, LAYOUT_LIST ]\n\t: [ LAYOUT_TABLE, LAYOUT_GRID ];\n\nconst defaultConfigPerViewType = {\n\t[ LAYOUT_TABLE ]: {\n\t\tprimaryField: 'title',\n\t},\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'preview',\n\t\tprimaryField: 'title',\n\t},\n\t[ LAYOUT_LIST ]: {\n\t\tprimaryField: 'title',\n\t\tmediaField: 'preview',\n\t},\n};\n\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_TABLE,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\tsort: {\n\t\tfield: 'title',\n\t\tdirection: 'asc',\n\t},\n\t// All fields are visible by default, so it's\n\t// better to keep track of the hidden ones.\n\thiddenFields: [ 'preview' ],\n\tlayout: defaultConfigPerViewType[ LAYOUT_TABLE ],\n\tfilters: [],\n};\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nfunction Title( { item, viewType } ) {\n\tif ( viewType === LAYOUT_LIST ) {\n\t\treturn decodeEntities( item.title?.rendered ) || __( '(no title)' );\n\t}\n\tconst linkProps = {\n\t\tparams: {\n\t\t\tpostId: item.id,\n\t\t\tpostType: item.type,\n\t\t\tcanvas: 'edit',\n\t\t},\n\t};\n\tif ( item.type === TEMPLATE_PART_POST_TYPE ) {\n\t\tlinkProps.state = {\n\t\t\tbackPath: '/wp_template_part/all',\n\t\t};\n\t}\n\treturn (\n\t\t<Link { ...linkProps }>\n\t\t\t{ decodeEntities( item.title?.rendered ) || __( '(no title)' ) }\n\t\t</Link>\n\t);\n}\n\nfunction AuthorField( { item, viewType } ) {\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\tconst { text, icon, imageUrl } = useAddedBy( item.type, item.id );\n\tconst withIcon = viewType !== LAYOUT_LIST;\n\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 1 }>\n\t\t\t{ withIcon && imageUrl && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'page-templates-author-field__avatar',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<img\n\t\t\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\tsrc={ imageUrl }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ withIcon && ! imageUrl && (\n\t\t\t\t<div className=\"page-templates-author-field__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>{ text }</span>\n\t\t</HStack>\n\t);\n}\n\nfunction Preview( { item, viewType } ) {\n\tconst settings = usePatternSettings();\n\tconst [ backgroundColor = 'white' ] = useGlobalStyle( 'color.background' );\n\tconst blocks = useMemo( () => {\n\t\treturn parse( item.content.raw );\n\t}, [ item.content.raw ] );\n\tconst { onClick } = useLink( {\n\t\tpostId: item.id,\n\t\tpostType: item.type,\n\t\tcanvas: 'edit',\n\t} );\n\n\tconst isEmpty = ! blocks?.length;\n\t// Wrap everything in a block editor provider to ensure 'styles' that are needed\n\t// for the previews are synced between the site editor store and the block editor store.\n\t// Additionally we need to have the `__experimentalBlockPatterns` setting in order to\n\t// render patterns inside the previews.\n\t// TODO: Same approach is used in the patterns list and it becomes obvious that some of\n\t// the block editor settings are needed in context where we don't have the block editor.\n\t// Explore how we can solve this in a better way.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<div\n\t\t\t\tclassName={ `page-templates-preview-field is-viewtype-${ viewType }` }\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t{ viewType === LAYOUT_LIST && ! isEmpty && (\n\t\t\t\t\t<BlockPreview blocks={ blocks } />\n\t\t\t\t) }\n\t\t\t\t{ viewType !== LAYOUT_LIST && (\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"page-templates-preview-field__button\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\taria-label={ item.title?.rendered || item.title }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isEmpty &&\n\t\t\t\t\t\t\t( item.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t\t\t? __( 'Empty template' )\n\t\t\t\t\t\t\t\t: __( 'Empty template part' ) ) }\n\t\t\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ blocks } /> }\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n\nexport default function PageTemplatesTemplateParts( { postType } ) {\n\tconst { params } = useLocation();\n\tconst { activeView = 'all', layout } = params;\n\tconst defaultView = useMemo( () => {\n\t\tconst usedType = window?.__experimentalAdminViews\n\t\t\t? layout ?? DEFAULT_VIEW.type\n\t\t\t: DEFAULT_VIEW.type;\n\t\treturn {\n\t\t\t...DEFAULT_VIEW,\n\t\t\ttype: usedType,\n\t\t\tlayout: defaultConfigPerViewType[ usedType ],\n\t\t\tfilters:\n\t\t\t\tactiveView !== 'all'\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield: 'author',\n\t\t\t\t\t\t\t\toperator: 'in',\n\t\t\t\t\t\t\t\tvalue: activeView,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [],\n\t\t};\n\t}, [ layout, activeView ] );\n\tconst [ view, setView ] = useState( defaultView );\n\tuseEffect( () => {\n\t\tsetView( ( currentView ) => ( {\n\t\t\t...currentView,\n\t\t\tfilters:\n\t\t\t\tactiveView !== 'all'\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield: 'author',\n\t\t\t\t\t\t\t\toperator: 'in',\n\t\t\t\t\t\t\t\tvalue: activeView,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [],\n\t\t} ) );\n\t}, [ activeView ] );\n\n\tconst { records, isResolving: isLoadingData } = useEntityRecords(\n\t\t'postType',\n\t\tpostType,\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\tconst history = useHistory();\n\tconst onSelectionChange = useCallback(\n\t\t( items ) => {\n\t\t\tif ( view?.type === LAYOUT_LIST ) {\n\t\t\t\thistory.push( {\n\t\t\t\t\t...params,\n\t\t\t\t\tpostId: items.length === 1 ? items[ 0 ].id : undefined,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ history, params, view?.type ]\n\t);\n\n\tconst authors = useMemo( () => {\n\t\tif ( ! records ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\tconst authorsSet = new Set();\n\t\trecords.forEach( ( template ) => {\n\t\t\tauthorsSet.add( template.author_text );\n\t\t} );\n\t\treturn Array.from( authorsSet ).map( ( author ) => ( {\n\t\t\tvalue: author,\n\t\t\tlabel: author,\n\t\t} ) );\n\t}, [ records ] );\n\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\t{\n\t\t\t\theader: __( 'Preview' ),\n\t\t\t\tid: 'preview',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn <Preview item={ item } viewType={ view.type } />;\n\t\t\t\t},\n\t\t\t\tminWidth: 120,\n\t\t\t\tmaxWidth: 120,\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader:\n\t\t\t\t\tpostType === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template' )\n\t\t\t\t\t\t: __( 'Template Part' ),\n\t\t\t\tid: 'title',\n\t\t\t\tgetValue: ( { item } ) => item.title?.rendered,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Title item={ item } viewType={ view.type } />\n\t\t\t\t),\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t];\n\t\tif ( postType === TEMPLATE_POST_TYPE ) {\n\t\t\t_fields.push( {\n\t\t\t\theader: __( 'Description' ),\n\t\t\t\tid: 'description',\n\t\t\t\tgetValue: ( { item } ) => item.description,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn item.description ? (\n\t\t\t\t\t\t<span className=\"page-templates-description\">\n\t\t\t\t\t\t\t{ decodeEntities( item.description ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tview.type === LAYOUT_TABLE && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Text variant=\"muted\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t&#8212;\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t\t\t{ __( 'No description.' ) }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tminWidth: 320,\n\t\t\t\tenableSorting: false,\n\t\t\t} );\n\t\t}\n\t\t// TODO: The plan is to support fields reordering, which would require an API like `order` or something\n\t\t// similar. With the aforementioned API we wouldn't need to construct the fields array like this.\n\t\t_fields.push( {\n\t\t\theader: __( 'Author' ),\n\t\t\tid: 'author',\n\t\t\tgetValue: ( { item } ) => item.author_text,\n\t\t\trender: ( { item } ) => {\n\t\t\t\treturn <AuthorField viewType={ view.type } item={ item } />;\n\t\t\t},\n\t\t\ttype: ENUMERATION_TYPE,\n\t\t\telements: authors,\n\t\t\twidth: '1%',\n\t\t} );\n\t\treturn _fields;\n\t}, [ postType, authors, view.type ] );\n\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\tif ( ! records ) {\n\t\t\treturn {\n\t\t\t\tdata: EMPTY_ARRAY,\n\t\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t\t};\n\t\t}\n\t\tlet filteredData = [ ...records ];\n\t\t// Handle global search.\n\t\tif ( view.search ) {\n\t\t\tconst normalizedSearch = normalizeSearchInput( view.search );\n\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\tconst title = item.title?.rendered || item.slug;\n\t\t\t\treturn (\n\t\t\t\t\tnormalizeSearchInput( title ).includes(\n\t\t\t\t\t\tnormalizedSearch\n\t\t\t\t\t) ||\n\t\t\t\t\tnormalizeSearchInput( item.description ).includes(\n\t\t\t\t\t\tnormalizedSearch\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\t// Handle filters.\n\t\tif ( view.filters.length > 0 ) {\n\t\t\tview.filters.forEach( ( filter ) => {\n\t\t\t\tif (\n\t\t\t\t\tfilter.field === 'author' &&\n\t\t\t\t\tfilter.operator === OPERATOR_IN &&\n\t\t\t\t\t!! filter.value\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn item.author_text === filter.value;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.field === 'author' &&\n\t\t\t\t\tfilter.operator === OPERATOR_NOT_IN &&\n\t\t\t\t\t!! filter.value\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn item.author_text !== filter.value;\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Handle sorting.\n\t\tif ( view.sort ) {\n\t\t\tfilteredData = sortByTextFields( {\n\t\t\t\tdata: filteredData,\n\t\t\t\tview,\n\t\t\t\tfields,\n\t\t\t\ttextFields: [ 'title', 'author' ],\n\t\t\t} );\n\t\t}\n\t\t// Handle pagination.\n\t\treturn getPaginationResults( {\n\t\t\tdata: filteredData,\n\t\t\tview,\n\t\t} );\n\t}, [ records, view, fields ] );\n\n\tconst resetTemplateAction = useResetTemplateAction();\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\tresetTemplateAction,\n\t\t\tdeleteTemplateAction,\n\t\t\trenameTemplateAction,\n\t\t\tpostRevisionsAction,\n\t\t],\n\t\t[ resetTemplateAction ]\n\t);\n\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\n\t\t\t\tnewView = {\n\t\t\t\t\t...newView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\thistory.push( {\n\t\t\t\t\t...params,\n\t\t\t\t\tlayout: newView.type,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView, history, params ]\n\t);\n\n\treturn (\n\t\t<Page\n\t\t\tclassName=\"edit-site-page-template-template-parts-dataviews\"\n\t\t\ttitle={\n\t\t\t\tpostType === TEMPLATE_POST_TYPE\n\t\t\t\t\t? __( 'Templates' )\n\t\t\t\t\t: __( 'Template Parts' )\n\t\t\t}\n\t\t\tactions={\n\t\t\t\tpostType === TEMPLATE_POST_TYPE ? (\n\t\t\t\t\t<AddNewTemplate\n\t\t\t\t\t\ttemplateType={ postType }\n\t\t\t\t\t\tshowIcon={ false }\n\t\t\t\t\t\ttoggleProps={ { variant: 'primary' } }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<AddNewTemplatePart />\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t<DataViews\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\tfields={ fields }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tisLoading={ isLoadingData }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\tdeferredRendering={ ! view.hiddenFields?.includes( 'preview' ) }\n\t\t\t\tsupportedLayouts={ SUPPORTED_LAYOUTS }\n\t\t\t/>\n\t\t</Page>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_components","_i18n","_element","_coreData","_htmlEntities","_blocks","_blockEditor","_dataviews","_router","_editor","_page","_link","_interopRequireWildcard","_addNewTemplate","_hooks","_constants","_actions","_usePatternSettings","_lockUnlock","_addNewTemplatePart","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","usePostActions","unlock","editorPrivateApis","ExperimentalBlockEditorProvider","useGlobalStyle","blockEditorPrivateApis","useHistory","useLocation","routerPrivateApis","EMPTY_ARRAY","defaultConfigPerViewType","LAYOUT_TABLE","primaryField","LAYOUT_GRID","mediaField","displayAsColumnFields","LAYOUT_LIST","DEFAULT_VIEW","type","search","page","perPage","sort","field","direction","hiddenFields","layout","filters","Title","item","viewType","decodeEntities","title","rendered","__","linkProps","params","postId","id","postType","canvas","TEMPLATE_PART_POST_TYPE","state","backPath","_react","createElement","AuthorField","isImageLoaded","setIsImageLoaded","useState","text","icon","imageUrl","useAddedBy","withIcon","__experimentalHStack","alignment","spacing","className","classnames","onLoad","alt","src","Icon","Preview","settings","usePatternSettings","backgroundColor","blocks","useMemo","parse","content","raw","onClick","useLink","isEmpty","length","style","BlockPreview","TEMPLATE_POST_TYPE","PageTemplatesTemplateParts","activeView","defaultView","usedType","operator","value","view","setView","useEffect","currentView","OPERATOR_IS_ANY","records","isResolving","isLoadingData","useEntityRecords","per_page","history","onSelectionChange","useCallback","items","push","undefined","authors","authorsSet","Set","forEach","template","add","author_text","Array","from","map","author","label","fields","_fields","header","render","minWidth","maxWidth","enableSorting","getValue","enableHiding","enableGlobalSearch","description","Fragment","__experimentalText","variant","VisuallyHidden","ENUMERATION_TYPE","elements","width","data","paginationInfo","filterSortAndPaginate","onActionPerformed","actionId","post","editAction","viewRevisionsAction","actions","resetTemplateAction","renameTemplateAction","deleteTemplateAction","onChangeView","newView","templateType","showIcon","toggleProps","DataViews","isLoading","deferredRendering","includes"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useMemo, useCallback, useEffect } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { parse } from '@wordpress/blocks';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport { default as Link, useLink } from '../routes/link';\nimport AddNewTemplate from '../add-new-template';\nimport { useAddedBy } from './hooks';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tENUMERATION_TYPE,\n\tOPERATOR_IS_ANY,\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n} from '../../utils/constants';\nimport {\n\tresetTemplateAction,\n\tdeleteTemplateAction,\n\trenameTemplateAction,\n} from './actions';\nimport usePatternSettings from '../page-patterns/use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport AddNewTemplatePart from './add-new-template-part';\n\nconst { usePostActions } = unlock( editorPrivateApis );\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nconst defaultConfigPerViewType = {\n\t[ LAYOUT_TABLE ]: {\n\t\tprimaryField: 'title',\n\t},\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'preview',\n\t\tprimaryField: 'title',\n\t\tdisplayAsColumnFields: [ 'description' ],\n\t},\n\t[ LAYOUT_LIST ]: {\n\t\tprimaryField: 'title',\n\t\tmediaField: 'preview',\n\t},\n};\n\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_TABLE,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\tsort: {\n\t\tfield: 'title',\n\t\tdirection: 'asc',\n\t},\n\t// All fields are visible by default, so it's\n\t// better to keep track of the hidden ones.\n\thiddenFields: [ 'preview' ],\n\tlayout: defaultConfigPerViewType[ LAYOUT_TABLE ],\n\tfilters: [],\n};\n\nfunction Title( { item, viewType } ) {\n\tif ( viewType === LAYOUT_LIST ) {\n\t\treturn decodeEntities( item.title?.rendered ) || __( '(no title)' );\n\t}\n\tconst linkProps = {\n\t\tparams: {\n\t\t\tpostId: item.id,\n\t\t\tpostType: item.type,\n\t\t\tcanvas: 'edit',\n\t\t},\n\t};\n\tif ( item.type === TEMPLATE_PART_POST_TYPE ) {\n\t\tlinkProps.state = {\n\t\t\tbackPath: '/wp_template_part/all',\n\t\t};\n\t}\n\treturn (\n\t\t<Link { ...linkProps }>\n\t\t\t{ decodeEntities( item.title?.rendered ) || __( '(no title)' ) }\n\t\t</Link>\n\t);\n}\n\nfunction AuthorField( { item, viewType } ) {\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\tconst { text, icon, imageUrl } = useAddedBy( item.type, item.id );\n\tconst withIcon = viewType !== LAYOUT_LIST;\n\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 1 }>\n\t\t\t{ withIcon && imageUrl && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'page-templates-author-field__avatar',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<img\n\t\t\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\tsrc={ imageUrl }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ withIcon && ! imageUrl && (\n\t\t\t\t<div className=\"page-templates-author-field__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 className=\"page-templates-author-field__name\">{ text }</span>\n\t\t</HStack>\n\t);\n}\n\nfunction Preview( { item, viewType } ) {\n\tconst settings = usePatternSettings();\n\tconst [ backgroundColor = 'white' ] = useGlobalStyle( 'color.background' );\n\tconst blocks = useMemo( () => {\n\t\treturn parse( item.content.raw );\n\t}, [ item.content.raw ] );\n\tconst { onClick } = useLink( {\n\t\tpostId: item.id,\n\t\tpostType: item.type,\n\t\tcanvas: 'edit',\n\t} );\n\n\tconst isEmpty = ! blocks?.length;\n\t// Wrap everything in a block editor provider to ensure 'styles' that are needed\n\t// for the previews are synced between the site editor store and the block editor store.\n\t// Additionally we need to have the `__experimentalBlockPatterns` setting in order to\n\t// render patterns inside the previews.\n\t// TODO: Same approach is used in the patterns list and it becomes obvious that some of\n\t// the block editor settings are needed in context where we don't have the block editor.\n\t// Explore how we can solve this in a better way.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<div\n\t\t\t\tclassName={ `page-templates-preview-field is-viewtype-${ viewType }` }\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t{ viewType === LAYOUT_LIST && ! isEmpty && (\n\t\t\t\t\t<BlockPreview blocks={ blocks } />\n\t\t\t\t) }\n\t\t\t\t{ viewType !== LAYOUT_LIST && (\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"page-templates-preview-field__button\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\taria-label={ item.title?.rendered || item.title }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isEmpty &&\n\t\t\t\t\t\t\t( item.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t\t\t? __( 'Empty template' )\n\t\t\t\t\t\t\t\t: __( 'Empty template part' ) ) }\n\t\t\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ blocks } /> }\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n\nexport default function PageTemplatesTemplateParts( { postType } ) {\n\tconst { params } = useLocation();\n\tconst { activeView = 'all', layout } = params;\n\tconst defaultView = useMemo( () => {\n\t\tconst usedType = layout ?? DEFAULT_VIEW.type;\n\t\treturn {\n\t\t\t...DEFAULT_VIEW,\n\t\t\ttype: usedType,\n\t\t\tlayout: defaultConfigPerViewType[ usedType ],\n\t\t\tfilters:\n\t\t\t\tactiveView !== 'all'\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield: 'author',\n\t\t\t\t\t\t\t\toperator: 'isAny',\n\t\t\t\t\t\t\t\tvalue: [ activeView ],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [],\n\t\t};\n\t}, [ layout, activeView ] );\n\tconst [ view, setView ] = useState( defaultView );\n\tuseEffect( () => {\n\t\tsetView( ( currentView ) => ( {\n\t\t\t...currentView,\n\t\t\tfilters:\n\t\t\t\tactiveView !== 'all'\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield: 'author',\n\t\t\t\t\t\t\t\toperator: OPERATOR_IS_ANY,\n\t\t\t\t\t\t\t\tvalue: [ activeView ],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [],\n\t\t} ) );\n\t}, [ activeView ] );\n\n\tconst { records, isResolving: isLoadingData } = useEntityRecords(\n\t\t'postType',\n\t\tpostType,\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\tconst history = useHistory();\n\tconst onSelectionChange = useCallback(\n\t\t( items ) => {\n\t\t\tif ( view?.type === LAYOUT_LIST ) {\n\t\t\t\thistory.push( {\n\t\t\t\t\t...params,\n\t\t\t\t\tpostId: items.length === 1 ? items[ 0 ].id : undefined,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ history, params, view?.type ]\n\t);\n\n\tconst authors = useMemo( () => {\n\t\tif ( ! records ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\tconst authorsSet = new Set();\n\t\trecords.forEach( ( template ) => {\n\t\t\tauthorsSet.add( template.author_text );\n\t\t} );\n\t\treturn Array.from( authorsSet ).map( ( author ) => ( {\n\t\t\tvalue: author,\n\t\t\tlabel: author,\n\t\t} ) );\n\t}, [ records ] );\n\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\t{\n\t\t\t\theader: __( 'Preview' ),\n\t\t\t\tid: 'preview',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn <Preview item={ item } viewType={ view.type } />;\n\t\t\t\t},\n\t\t\t\tminWidth: 120,\n\t\t\t\tmaxWidth: 120,\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader:\n\t\t\t\t\tpostType === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template' )\n\t\t\t\t\t\t: __( 'Template Part' ),\n\t\t\t\tid: 'title',\n\t\t\t\tgetValue: ( { item } ) => item.title?.rendered,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Title item={ item } viewType={ view.type } />\n\t\t\t\t),\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tenableHiding: false,\n\t\t\t\tenableGlobalSearch: true,\n\t\t\t},\n\t\t];\n\t\tif ( postType === TEMPLATE_POST_TYPE ) {\n\t\t\t_fields.push( {\n\t\t\t\theader: __( 'Description' ),\n\t\t\t\tid: 'description',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn item.description ? (\n\t\t\t\t\t\t<span className=\"page-templates-description\">\n\t\t\t\t\t\t\t{ decodeEntities( item.description ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tview.type === LAYOUT_TABLE && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Text variant=\"muted\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t&#8212;\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t\t\t{ __( 'No description.' ) }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tminWidth: 320,\n\t\t\t\tenableSorting: false,\n\t\t\t\tenableGlobalSearch: true,\n\t\t\t} );\n\t\t}\n\t\t// TODO: The plan is to support fields reordering, which would require an API like `order` or something\n\t\t// similar. With the aforementioned API we wouldn't need to construct the fields array like this.\n\t\t_fields.push( {\n\t\t\theader: __( 'Author' ),\n\t\t\tid: 'author',\n\t\t\tgetValue: ( { item } ) => item.author_text,\n\t\t\trender: ( { item } ) => {\n\t\t\t\treturn <AuthorField viewType={ view.type } item={ item } />;\n\t\t\t},\n\t\t\ttype: ENUMERATION_TYPE,\n\t\t\telements: authors,\n\t\t\twidth: '1%',\n\t\t} );\n\t\treturn _fields;\n\t}, [ postType, authors, view.type ] );\n\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\treturn filterSortAndPaginate( records, view, fields );\n\t}, [ records, view, fields ] );\n\n\tconst onActionPerformed = useCallback(\n\t\t( actionId, items ) => {\n\t\t\tif ( actionId === 'edit-post' ) {\n\t\t\t\tconst post = items[ 0 ];\n\t\t\t\thistory.push( {\n\t\t\t\t\tpostId: post.id,\n\t\t\t\t\tpostType: post.type,\n\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ history ]\n\t);\n\tconst [ editAction, viewRevisionsAction ] = usePostActions(\n\t\tonActionPerformed,\n\t\t[ 'edit-post', 'view-post-revisions' ]\n\t);\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\teditAction,\n\t\t\tresetTemplateAction,\n\t\t\trenameTemplateAction,\n\t\t\tviewRevisionsAction,\n\t\t\tdeleteTemplateAction,\n\t\t],\n\t\t[ editAction, viewRevisionsAction ]\n\t);\n\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\n\t\t\t\tnewView = {\n\t\t\t\t\t...newView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\thistory.push( {\n\t\t\t\t\t...params,\n\t\t\t\t\tlayout: newView.type,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView, history, params ]\n\t);\n\n\treturn (\n\t\t<Page\n\t\t\tclassName=\"edit-site-page-template-template-parts-dataviews\"\n\t\t\ttitle={\n\t\t\t\tpostType === TEMPLATE_POST_TYPE\n\t\t\t\t\t? __( 'Templates' )\n\t\t\t\t\t: __( 'Template Parts' )\n\t\t\t}\n\t\t\tactions={\n\t\t\t\tpostType === TEMPLATE_POST_TYPE ? (\n\t\t\t\t\t<AddNewTemplate\n\t\t\t\t\t\ttemplateType={ postType }\n\t\t\t\t\t\tshowIcon={ false }\n\t\t\t\t\t\ttoggleProps={ { variant: 'primary' } }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<AddNewTemplatePart />\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t<DataViews\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\tfields={ fields }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tisLoading={ isLoadingData }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\tdeferredRendering={\n\t\t\t\t\tview.type === LAYOUT_GRID ||\n\t\t\t\t\t! view.hiddenFields?.includes( 'preview' )\n\t\t\t\t}\n\t\t\t/>\n\t\t</Page>\n\t);\n}\n"],"mappings":"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"}
@@ -4,6 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _react = require("react");
8
+ var _editor = require("@wordpress/editor");
9
+ var _data = require("@wordpress/data");
7
10
  var _components = require("@wordpress/components");
8
11
  /**
9
12
  * Defines an extensibility slot for the Template sidebar.
@@ -17,7 +20,15 @@ const {
17
20
  Fill,
18
21
  Slot
19
22
  } = (0, _components.createSlotFill)('PluginTemplateSettingPanel');
20
- const PluginTemplateSettingPanel = Fill;
23
+ const PluginTemplateSettingPanel = ({
24
+ children
25
+ }) => {
26
+ const isCurrentEntityTemplate = (0, _data.useSelect)(select => select(_editor.store).getCurrentPostType() === 'wp_template', []);
27
+ if (!isCurrentEntityTemplate) {
28
+ return null;
29
+ }
30
+ return (0, _react.createElement)(Fill, null, children);
31
+ };
21
32
  PluginTemplateSettingPanel.Slot = Slot;
22
33
 
23
34
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","Fill","Slot","createSlotFill","PluginTemplateSettingPanel","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/plugin-template-setting-panel/index.js"],"sourcesContent":["/**\n * Defines an extensibility slot for the Template sidebar.\n */\n\n/**\n * WordPress dependencies\n */\nimport { createSlotFill } from '@wordpress/components';\n\nconst { Fill, Slot } = createSlotFill( 'PluginTemplateSettingPanel' );\n\nconst PluginTemplateSettingPanel = Fill;\nPluginTemplateSettingPanel.Slot = Slot;\n\n/**\n * Renders items in the Template Sidebar below the main information\n * like the Template Card.\n *\n * @example\n * ```jsx\n * // Using ESNext syntax\n * import { PluginTemplateSettingPanel } from '@wordpress/edit-site';\n *\n * const MyTemplateSettingTest = () => (\n * \t\t<PluginTemplateSettingPanel>\n *\t\t\t<p>Hello, World!</p>\n *\t\t</PluginTemplateSettingPanel>\n *\t);\n * ```\n *\n * @return {Component} The component to be rendered.\n */\nexport default PluginTemplateSettingPanel;\n"],"mappings":";;;;;;AAOA,IAAAA,WAAA,GAAAC,OAAA;AAPA;AACA;AACA;;AAEA;AACA;AACA;;AAGA,MAAM;EAAEC,IAAI;EAAEC;AAAK,CAAC,GAAG,IAAAC,0BAAc,EAAE,4BAA6B,CAAC;AAErE,MAAMC,0BAA0B,GAAGH,IAAI;AACvCG,0BAA0B,CAACF,IAAI,GAAGA,IAAI;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAjBA,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAkBeH,0BAA0B"}
1
+ {"version":3,"names":["_editor","require","_data","_components","Fill","Slot","createSlotFill","PluginTemplateSettingPanel","children","isCurrentEntityTemplate","useSelect","select","editorStore","getCurrentPostType","_react","createElement","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/plugin-template-setting-panel/index.js"],"sourcesContent":["/**\n * Defines an extensibility slot for the Template sidebar.\n */\n\n/**\n * WordPress dependencies\n */\nimport { store as editorStore } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\nimport { createSlotFill } from '@wordpress/components';\n\nconst { Fill, Slot } = createSlotFill( 'PluginTemplateSettingPanel' );\n\nconst PluginTemplateSettingPanel = ( { children } ) => {\n\tconst isCurrentEntityTemplate = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).getCurrentPostType() === 'wp_template',\n\t\t[]\n\t);\n\tif ( ! isCurrentEntityTemplate ) {\n\t\treturn null;\n\t}\n\treturn <Fill>{ children }</Fill>;\n};\n\nPluginTemplateSettingPanel.Slot = Slot;\n\n/**\n * Renders items in the Template Sidebar below the main information\n * like the Template Card.\n *\n * @example\n * ```jsx\n * // Using ESNext syntax\n * import { PluginTemplateSettingPanel } from '@wordpress/edit-site';\n *\n * const MyTemplateSettingTest = () => (\n * \t\t<PluginTemplateSettingPanel>\n *\t\t\t<p>Hello, World!</p>\n *\t\t</PluginTemplateSettingPanel>\n *\t);\n * ```\n *\n * @return {Component} The component to be rendered.\n */\nexport default PluginTemplateSettingPanel;\n"],"mappings":";;;;;;;AAOA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAEA;AACA;AACA;;AAKA,MAAM;EAAEG,IAAI;EAAEC;AAAK,CAAC,GAAG,IAAAC,0BAAc,EAAE,4BAA6B,CAAC;AAErE,MAAMC,0BAA0B,GAAGA,CAAE;EAAEC;AAAS,CAAC,KAAM;EACtD,MAAMC,uBAAuB,GAAG,IAAAC,eAAS,EACtCC,MAAM,IACPA,MAAM,CAAEC,aAAY,CAAC,CAACC,kBAAkB,CAAC,CAAC,KAAK,aAAa,EAC7D,EACD,CAAC;EACD,IAAK,CAAEJ,uBAAuB,EAAG;IAChC,OAAO,IAAI;EACZ;EACA,OAAO,IAAAK,MAAA,CAAAC,aAAA,EAACX,IAAI,QAAGI,QAAgB,CAAC;AACjC,CAAC;AAEDD,0BAA0B,CAACF,IAAI,GAAGA,IAAI;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAjBA,IAAAW,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAkBeX,0BAA0B"}
@@ -10,8 +10,11 @@ var _components = require("@wordpress/components");
10
10
  var _i18n = require("@wordpress/i18n");
11
11
  var _coreData = require("@wordpress/core-data");
12
12
  var _keycodes = require("@wordpress/keycodes");
13
+ var _router = require("@wordpress/router");
14
+ var _editor = require("@wordpress/editor");
13
15
  var _store = require("../../store");
14
16
  var _isPreviewingTheme = require("../../utils/is-previewing-theme");
17
+ var _lockUnlock = require("../../lock-unlock");
15
18
  /**
16
19
  * WordPress dependencies
17
20
  */
@@ -20,46 +23,65 @@ var _isPreviewingTheme = require("../../utils/is-previewing-theme");
20
23
  * Internal dependencies
21
24
  */
22
25
 
26
+ const {
27
+ useLocation
28
+ } = (0, _lockUnlock.unlock)(_router.privateApis);
23
29
  function SaveButton({
24
30
  className = 'edit-site-save-button__button',
25
31
  variant = 'primary',
26
32
  showTooltip = true,
27
- defaultLabel,
33
+ showReviewMessage,
28
34
  icon,
29
35
  size,
30
36
  __next40pxDefaultSize = false
31
37
  }) {
32
38
  const {
33
- isDirty,
39
+ params
40
+ } = useLocation();
41
+ const {
42
+ setIsSaveViewOpened
43
+ } = (0, _data.useDispatch)(_store.store);
44
+ const {
45
+ saveDirtyEntities
46
+ } = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_editor.store));
47
+ const {
48
+ dirtyEntityRecords
49
+ } = (0, _editor.useEntitiesSavedStatesIsDirty)();
50
+ const {
34
51
  isSaving,
35
52
  isSaveViewOpen,
36
53
  previewingThemeName
37
54
  } = (0, _data.useSelect)(select => {
38
55
  const {
39
- __experimentalGetDirtyEntityRecords,
40
56
  isSavingEntityRecord,
41
57
  isResolving
42
58
  } = select(_coreData.store);
43
- const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
44
59
  const {
45
60
  isSaveViewOpened
46
61
  } = select(_store.store);
47
62
  const isActivatingTheme = isResolving('activateTheme');
48
63
  const currentlyPreviewingThemeId = (0, _isPreviewingTheme.currentlyPreviewingTheme)();
49
64
  return {
50
- isDirty: dirtyEntityRecords.length > 0,
51
65
  isSaving: dirtyEntityRecords.some(record => isSavingEntityRecord(record.kind, record.name, record.key)) || isActivatingTheme,
52
66
  isSaveViewOpen: isSaveViewOpened(),
53
67
  // Do not call `getTheme` with null, it will cause a request to
54
68
  // the server.
55
69
  previewingThemeName: currentlyPreviewingThemeId ? select(_coreData.store).getTheme(currentlyPreviewingThemeId)?.name?.rendered : undefined
56
70
  };
57
- }, []);
58
- const {
59
- setIsSaveViewOpened
60
- } = (0, _data.useDispatch)(_store.store);
61
- const activateSaveEnabled = (0, _isPreviewingTheme.isPreviewingTheme)() || isDirty;
62
- const disabled = isSaving || !activateSaveEnabled;
71
+ }, [dirtyEntityRecords]);
72
+ const hasDirtyEntities = !!dirtyEntityRecords.length;
73
+ let isOnlyCurrentEntityDirty;
74
+ // Check if the current entity is the only entity with changes.
75
+ // We have some extra logic for `wp_global_styles` for now, that
76
+ // is used in navigation sidebar.
77
+ if (dirtyEntityRecords.length === 1) {
78
+ if (params.postId) {
79
+ isOnlyCurrentEntityDirty = `${dirtyEntityRecords[0].key}` === params.postId && dirtyEntityRecords[0].name === params.postType;
80
+ } else if (params.path?.includes('wp_global_styles')) {
81
+ isOnlyCurrentEntityDirty = dirtyEntityRecords[0].name === 'globalStyles';
82
+ }
83
+ }
84
+ const disabled = isSaving || !hasDirtyEntities && !(0, _isPreviewingTheme.isPreviewingTheme)();
63
85
  const getLabel = () => {
64
86
  if ((0, _isPreviewingTheme.isPreviewingTheme)()) {
65
87
  if (isSaving) {
@@ -67,7 +89,7 @@ function SaveButton({
67
89
  (0, _i18n.__)('Activating %s'), previewingThemeName);
68
90
  } else if (disabled) {
69
91
  return (0, _i18n.__)('Saved');
70
- } else if (isDirty) {
92
+ } else if (hasDirtyEntities) {
71
93
  return (0, _i18n.sprintf)( /* translators: %s: The name of theme to be activated. */
72
94
  (0, _i18n.__)('Activate %s & Save'), previewingThemeName);
73
95
  }
@@ -76,21 +98,28 @@ function SaveButton({
76
98
  }
77
99
  if (isSaving) {
78
100
  return (0, _i18n.__)('Saving');
79
- } else if (disabled) {
101
+ }
102
+ if (disabled) {
80
103
  return (0, _i18n.__)('Saved');
81
- } else if (defaultLabel) {
82
- return defaultLabel;
104
+ }
105
+ if (!isOnlyCurrentEntityDirty && showReviewMessage) {
106
+ return (0, _i18n.sprintf)(
107
+ // translators: %d: number of unsaved changes (number).
108
+ (0, _i18n._n)('Review %d change…', 'Review %d changes…', dirtyEntityRecords.length), dirtyEntityRecords.length);
83
109
  }
84
110
  return (0, _i18n.__)('Save');
85
111
  };
86
112
  const label = getLabel();
113
+ const onClick = isOnlyCurrentEntityDirty ? () => saveDirtyEntities({
114
+ dirtyEntityRecords
115
+ }) : () => setIsSaveViewOpened(true);
87
116
  return (0, _react.createElement)(_components.Button, {
88
117
  variant: variant,
89
118
  className: className,
90
119
  "aria-disabled": disabled,
91
120
  "aria-expanded": isSaveViewOpen,
92
121
  isBusy: isSaving,
93
- onClick: disabled ? undefined : () => setIsSaveViewOpened(true),
122
+ onClick: disabled ? undefined : onClick,
94
123
  label: label
95
124
  /*
96
125
  * We want the tooltip to show the keyboard shortcut only when the