@wordpress/edit-site 5.29.0 → 5.31.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 (511) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/actions/index.js +3 -5
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/block-editor/editor-canvas.js +18 -6
  5. package/build/components/block-editor/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 +1 -15
  9. package/build/components/editor/index.js.map +1 -1
  10. package/build/components/global-styles/color-palette-panel.js.map +1 -1
  11. package/build/components/global-styles/font-families.js +1 -1
  12. package/build/components/global-styles/font-families.js.map +1 -1
  13. package/build/components/global-styles/font-library-modal/collection-font-variant.js +2 -2
  14. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  15. package/build/components/global-styles/font-library-modal/context.js +70 -59
  16. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  17. package/build/components/global-styles/font-library-modal/font-card.js +10 -15
  18. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
  19. package/build/components/global-styles/font-library-modal/font-collection.js +121 -78
  20. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  21. package/build/components/global-styles/font-library-modal/font-demo.js +29 -8
  22. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  23. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +3 -2
  24. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  25. package/build/components/global-styles/font-library-modal/index.js +19 -6
  26. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  27. package/build/components/global-styles/font-library-modal/installed-fonts.js +151 -79
  28. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  29. package/build/components/global-styles/font-library-modal/library-font-variant.js +2 -2
  30. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  31. package/build/components/global-styles/font-library-modal/upload-fonts.js +51 -23
  32. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  33. package/build/components/global-styles/font-library-modal/utils/index.js +39 -5
  34. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  35. package/build/components/global-styles/font-library-modal/utils/preview-styles.js +4 -1
  36. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  37. package/build/components/global-styles/gradients-palette-panel.js.map +1 -1
  38. package/build/components/global-styles/header.js +2 -2
  39. package/build/components/global-styles/header.js.map +1 -1
  40. package/build/components/global-styles/highlighted-colors.js +50 -0
  41. package/build/components/global-styles/highlighted-colors.js.map +1 -0
  42. package/build/components/global-styles/hooks.js +50 -1
  43. package/build/components/global-styles/hooks.js.map +1 -1
  44. package/build/components/global-styles/preview-colors.js +62 -0
  45. package/build/components/global-styles/preview-colors.js.map +1 -0
  46. package/build/components/global-styles/preview-iframe.js +130 -0
  47. package/build/components/global-styles/preview-iframe.js.map +1 -0
  48. package/build/components/global-styles/preview-styles.js +163 -0
  49. package/build/components/global-styles/preview-styles.js.map +1 -0
  50. package/build/components/global-styles/screen-block-list.js +1 -1
  51. package/build/components/global-styles/screen-block-list.js.map +1 -1
  52. package/build/components/global-styles/screen-block.js +1 -1
  53. package/build/components/global-styles/screen-block.js.map +1 -1
  54. package/build/components/global-styles/screen-colors.js +3 -2
  55. package/build/components/global-styles/screen-colors.js.map +1 -1
  56. package/build/components/global-styles/screen-revisions/index.js +2 -2
  57. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  58. package/build/components/global-styles/screen-root.js +2 -2
  59. package/build/components/global-styles/screen-root.js.map +1 -1
  60. package/build/components/global-styles/screen-typography.js +5 -2
  61. package/build/components/global-styles/screen-typography.js.map +1 -1
  62. package/build/components/global-styles/style-variations-container.js +12 -84
  63. package/build/components/global-styles/style-variations-container.js.map +1 -1
  64. package/build/components/global-styles/{typogrphy-elements.js → typography-elements.js} +4 -2
  65. package/build/components/global-styles/typography-elements.js.map +1 -0
  66. package/build/components/global-styles/typography-example.js +67 -0
  67. package/build/components/global-styles/typography-example.js.map +1 -0
  68. package/build/components/global-styles/typography-preview.js +3 -1
  69. package/build/components/global-styles/typography-preview.js.map +1 -1
  70. package/build/components/global-styles/ui.js +27 -2
  71. package/build/components/global-styles/ui.js.map +1 -1
  72. package/build/components/global-styles/utils.js +22 -0
  73. package/build/components/global-styles/utils.js.map +1 -1
  74. package/build/components/global-styles/variations/variation.js +90 -0
  75. package/build/components/global-styles/variations/variation.js.map +1 -0
  76. package/build/components/global-styles/variations/variations-color.js +35 -0
  77. package/build/components/global-styles/variations/variations-color.js.map +1 -0
  78. package/build/components/global-styles/{variations-panel.js → variations/variations-panel.js} +1 -1
  79. package/build/components/global-styles/variations/variations-panel.js.map +1 -0
  80. package/build/components/global-styles/variations/variations-typography.js +54 -0
  81. package/build/components/global-styles/variations/variations-typography.js.map +1 -0
  82. package/build/components/header-edit-mode/index.js +14 -12
  83. package/build/components/header-edit-mode/index.js.map +1 -1
  84. package/build/components/header-edit-mode/more-menu/index.js +10 -2
  85. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  86. package/build/components/keyboard-shortcut-help-modal/config.js +6 -0
  87. package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  88. package/build/components/keyboard-shortcuts/global.js +17 -3
  89. package/build/components/keyboard-shortcuts/global.js.map +1 -1
  90. package/build/components/layout/index.js +4 -1
  91. package/build/components/layout/index.js.map +1 -1
  92. package/build/components/layout/router.js +2 -5
  93. package/build/components/layout/router.js.map +1 -1
  94. package/build/components/page-pages/index.js +6 -11
  95. package/build/components/page-pages/index.js.map +1 -1
  96. package/build/components/page-patterns/delete-category-menu-item.js +6 -1
  97. package/build/components/page-patterns/delete-category-menu-item.js.map +1 -1
  98. package/build/components/page-patterns/index.js +15 -18
  99. package/build/components/page-patterns/index.js.map +1 -1
  100. package/build/components/page-patterns/use-patterns.js +9 -9
  101. package/build/components/page-patterns/use-patterns.js.map +1 -1
  102. package/build/components/{list/added-by.js → page-templates-template-parts/hooks.js} +1 -61
  103. package/build/components/page-templates-template-parts/hooks.js.map +1 -0
  104. package/build/components/page-templates-template-parts/index.js +25 -22
  105. package/build/components/page-templates-template-parts/index.js.map +1 -1
  106. package/build/components/resizable-frame/index.js +2 -1
  107. package/build/components/resizable-frame/index.js.map +1 -1
  108. package/build/components/revisions/index.js.map +1 -1
  109. package/build/components/save-panel/index.js +31 -11
  110. package/build/components/save-panel/index.js.map +1 -1
  111. package/build/components/sidebar/index.js +3 -4
  112. package/build/components/sidebar/index.js.map +1 -1
  113. package/build/components/sidebar-dataviews/custom-dataviews-list.js +2 -2
  114. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  115. package/build/components/sidebar-dataviews/dataview-item.js +2 -2
  116. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
  117. package/build/components/sidebar-dataviews/default-views.js +4 -2
  118. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  119. package/build/components/sidebar-dataviews/index.js +4 -3
  120. package/build/components/sidebar-dataviews/index.js.map +1 -1
  121. package/build/components/sidebar-edit-mode/page-panels/index.js +2 -2
  122. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  123. package/build/components/sidebar-edit-mode/page-panels/page-status.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/sidebar-card/index.js +12 -6
  127. package/build/components/sidebar-edit-mode/sidebar-card/index.js.map +1 -1
  128. package/build/components/sidebar-edit-mode/template-panel/index.js +23 -3
  129. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  130. package/build/components/sidebar-navigation-screen-global-styles/index.js +13 -1
  131. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  132. package/build/components/sidebar-navigation-screen-main/index.js +1 -2
  133. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  134. package/build/components/sidebar-navigation-screen-navigation-menu/{delete-modal.js → delete-confirm-dialog.js} +4 -5
  135. package/build/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -0
  136. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js +6 -6
  137. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  138. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +0 -3
  139. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  140. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  141. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  142. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  143. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
  144. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +2 -2
  145. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  146. package/build/components/sidebar-navigation-screen-template/index.js +7 -3
  147. package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
  148. package/build/components/sidebar-navigation-screen-templates-browse/content.js +6 -6
  149. package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  150. package/build/components/sidebar-navigation-screen-templates-browse/index.js +7 -5
  151. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  152. package/build/components/start-template-options/index.js.map +1 -1
  153. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +1 -1
  154. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  155. package/build/components/sync-state-with-url/use-sync-path-with-url.js +1 -11
  156. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  157. package/build/components/template-actions/index.js +44 -27
  158. package/build/components/template-actions/index.js.map +1 -1
  159. package/build/components/welcome-guide/editor.js +11 -2
  160. package/build/components/welcome-guide/editor.js.map +1 -1
  161. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +78 -0
  162. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  163. package/build/utils/constants.js +5 -3
  164. package/build/utils/constants.js.map +1 -1
  165. package/build/utils/get-is-list-page.js +1 -1
  166. package/build/utils/get-is-list-page.js.map +1 -1
  167. package/build/utils/math.js +98 -0
  168. package/build/utils/math.js.map +1 -0
  169. package/build-module/components/actions/index.js +4 -6
  170. package/build-module/components/actions/index.js.map +1 -1
  171. package/build-module/components/block-editor/editor-canvas.js +18 -6
  172. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  173. package/build-module/components/block-editor/use-site-editor-settings.js +1 -1
  174. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  175. package/build-module/components/editor/index.js +2 -16
  176. package/build-module/components/editor/index.js.map +1 -1
  177. package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
  178. package/build-module/components/global-styles/font-families.js +1 -1
  179. package/build-module/components/global-styles/font-families.js.map +1 -1
  180. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +4 -4
  181. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  182. package/build-module/components/global-styles/font-library-modal/context.js +72 -61
  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-card.js +11 -16
  185. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
  186. package/build-module/components/global-styles/font-library-modal/font-collection.js +124 -81
  187. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  188. package/build-module/components/global-styles/font-library-modal/font-demo.js +30 -9
  189. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  190. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +4 -3
  191. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  192. package/build-module/components/global-styles/font-library-modal/index.js +19 -6
  193. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  194. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +151 -79
  195. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  196. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +4 -4
  197. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  198. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +52 -24
  199. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  200. package/build-module/components/global-styles/font-library-modal/utils/index.js +38 -5
  201. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  202. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +4 -1
  203. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  204. package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -1
  205. package/build-module/components/global-styles/header.js +2 -2
  206. package/build-module/components/global-styles/header.js.map +1 -1
  207. package/build-module/components/global-styles/highlighted-colors.js +43 -0
  208. package/build-module/components/global-styles/highlighted-colors.js.map +1 -0
  209. package/build-module/components/global-styles/hooks.js +48 -1
  210. package/build-module/components/global-styles/hooks.js.map +1 -1
  211. package/build-module/components/global-styles/preview-colors.js +54 -0
  212. package/build-module/components/global-styles/preview-colors.js.map +1 -0
  213. package/build-module/components/global-styles/preview-iframe.js +123 -0
  214. package/build-module/components/global-styles/preview-iframe.js.map +1 -0
  215. package/build-module/components/global-styles/preview-styles.js +155 -0
  216. package/build-module/components/global-styles/preview-styles.js.map +1 -0
  217. package/build-module/components/global-styles/screen-block-list.js +1 -1
  218. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  219. package/build-module/components/global-styles/screen-block.js +1 -1
  220. package/build-module/components/global-styles/screen-block.js.map +1 -1
  221. package/build-module/components/global-styles/screen-colors.js +3 -2
  222. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  223. package/build-module/components/global-styles/screen-revisions/index.js +2 -2
  224. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  225. package/build-module/components/global-styles/screen-root.js +2 -2
  226. package/build-module/components/global-styles/screen-root.js.map +1 -1
  227. package/build-module/components/global-styles/screen-typography.js +5 -2
  228. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  229. package/build-module/components/global-styles/style-variations-container.js +13 -85
  230. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  231. package/build-module/components/global-styles/{typogrphy-elements.js → typography-elements.js} +4 -2
  232. package/build-module/components/global-styles/typography-elements.js.map +1 -0
  233. package/build-module/components/global-styles/typography-example.js +60 -0
  234. package/build-module/components/global-styles/typography-example.js.map +1 -0
  235. package/build-module/components/global-styles/typography-preview.js +3 -1
  236. package/build-module/components/global-styles/typography-preview.js.map +1 -1
  237. package/build-module/components/global-styles/ui.js +27 -2
  238. package/build-module/components/global-styles/ui.js.map +1 -1
  239. package/build-module/components/global-styles/utils.js +21 -0
  240. package/build-module/components/global-styles/utils.js.map +1 -1
  241. package/build-module/components/global-styles/variations/variation.js +82 -0
  242. package/build-module/components/global-styles/variations/variation.js.map +1 -0
  243. package/build-module/components/global-styles/variations/variations-color.js +27 -0
  244. package/build-module/components/global-styles/variations/variations-color.js.map +1 -0
  245. package/build-module/components/global-styles/{variations-panel.js → variations/variations-panel.js} +1 -1
  246. package/build-module/components/global-styles/variations/variations-panel.js.map +1 -0
  247. package/build-module/components/global-styles/variations/variations-typography.js +46 -0
  248. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -0
  249. package/build-module/components/header-edit-mode/index.js +15 -13
  250. package/build-module/components/header-edit-mode/index.js.map +1 -1
  251. package/build-module/components/header-edit-mode/more-menu/index.js +13 -5
  252. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  253. package/build-module/components/keyboard-shortcut-help-modal/config.js +6 -0
  254. package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  255. package/build-module/components/keyboard-shortcuts/global.js +17 -3
  256. package/build-module/components/keyboard-shortcuts/global.js.map +1 -1
  257. package/build-module/components/layout/index.js +4 -1
  258. package/build-module/components/layout/index.js.map +1 -1
  259. package/build-module/components/layout/router.js +2 -5
  260. package/build-module/components/layout/router.js.map +1 -1
  261. package/build-module/components/page-pages/index.js +7 -12
  262. package/build-module/components/page-pages/index.js.map +1 -1
  263. package/build-module/components/page-patterns/delete-category-menu-item.js +6 -1
  264. package/build-module/components/page-patterns/delete-category-menu-item.js.map +1 -1
  265. package/build-module/components/page-patterns/index.js +16 -19
  266. package/build-module/components/page-patterns/index.js.map +1 -1
  267. package/build-module/components/page-patterns/use-patterns.js +9 -9
  268. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  269. package/build-module/components/{list/added-by.js → page-templates-template-parts/hooks.js} +2 -59
  270. package/build-module/components/page-templates-template-parts/hooks.js.map +1 -0
  271. package/build-module/components/page-templates-template-parts/index.js +25 -22
  272. package/build-module/components/page-templates-template-parts/index.js.map +1 -1
  273. package/build-module/components/resizable-frame/index.js +2 -1
  274. package/build-module/components/resizable-frame/index.js.map +1 -1
  275. package/build-module/components/revisions/index.js.map +1 -1
  276. package/build-module/components/save-panel/index.js +31 -11
  277. package/build-module/components/save-panel/index.js.map +1 -1
  278. package/build-module/components/sidebar/index.js +3 -4
  279. package/build-module/components/sidebar/index.js.map +1 -1
  280. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +2 -2
  281. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  282. package/build-module/components/sidebar-dataviews/dataview-item.js +2 -2
  283. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  284. package/build-module/components/sidebar-dataviews/default-views.js +6 -4
  285. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  286. package/build-module/components/sidebar-dataviews/index.js +4 -3
  287. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  288. package/build-module/components/sidebar-edit-mode/page-panels/index.js +3 -3
  289. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  290. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  291. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +4 -2
  292. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  293. package/build-module/components/sidebar-edit-mode/sidebar-card/index.js +13 -7
  294. package/build-module/components/sidebar-edit-mode/sidebar-card/index.js.map +1 -1
  295. package/build-module/components/sidebar-edit-mode/template-panel/index.js +24 -4
  296. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  297. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +14 -2
  298. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  299. package/build-module/components/sidebar-navigation-screen-main/index.js +1 -2
  300. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  301. package/build-module/components/sidebar-navigation-screen-navigation-menu/{delete-modal.js → delete-confirm-dialog.js} +3 -4
  302. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -0
  303. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js +6 -6
  304. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  305. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +0 -3
  306. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  307. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  308. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  309. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  310. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
  311. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
  312. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  313. package/build-module/components/sidebar-navigation-screen-template/index.js +6 -2
  314. package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
  315. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +5 -5
  316. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  317. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +7 -5
  318. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  319. package/build-module/components/start-template-options/index.js.map +1 -1
  320. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +1 -1
  321. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  322. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +1 -11
  323. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  324. package/build-module/components/template-actions/index.js +44 -27
  325. package/build-module/components/template-actions/index.js.map +1 -1
  326. package/build-module/components/welcome-guide/editor.js +11 -2
  327. package/build-module/components/welcome-guide/editor.js.map +1 -1
  328. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +76 -1
  329. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  330. package/build-module/utils/constants.js +4 -2
  331. package/build-module/utils/constants.js.map +1 -1
  332. package/build-module/utils/get-is-list-page.js +1 -1
  333. package/build-module/utils/get-is-list-page.js.map +1 -1
  334. package/build-module/utils/math.js +92 -0
  335. package/build-module/utils/math.js.map +1 -0
  336. package/build-style/style-rtl.css +196 -315
  337. package/build-style/style.css +196 -315
  338. package/package.json +42 -42
  339. package/src/components/actions/index.js +4 -6
  340. package/src/components/block-editor/editor-canvas.js +20 -6
  341. package/src/components/block-editor/style.scss +0 -3
  342. package/src/components/block-editor/use-site-editor-settings.js +0 -2
  343. package/src/components/editor/index.js +0 -20
  344. package/src/components/global-styles/color-palette-panel.js +0 -1
  345. package/src/components/global-styles/font-families.js +1 -1
  346. package/src/components/global-styles/font-library-modal/collection-font-variant.js +5 -5
  347. package/src/components/global-styles/font-library-modal/context.js +136 -107
  348. package/src/components/global-styles/font-library-modal/font-card.js +11 -26
  349. package/src/components/global-styles/font-library-modal/font-collection.js +298 -218
  350. package/src/components/global-styles/font-library-modal/font-demo.js +38 -4
  351. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +9 -2
  352. package/src/components/global-styles/font-library-modal/index.js +23 -16
  353. package/src/components/global-styles/font-library-modal/installed-fonts.js +243 -114
  354. package/src/components/global-styles/font-library-modal/library-font-variant.js +5 -5
  355. package/src/components/global-styles/font-library-modal/style.scss +27 -11
  356. package/src/components/global-styles/font-library-modal/upload-fonts.js +70 -27
  357. package/src/components/global-styles/font-library-modal/utils/index.js +45 -5
  358. package/src/components/global-styles/font-library-modal/utils/preview-styles.js +6 -1
  359. package/src/components/global-styles/font-library-modal/utils/test/getDisplaySrcFromFontFace.spec.js +7 -18
  360. package/src/components/global-styles/gradients-palette-panel.js +2 -2
  361. package/src/components/global-styles/header.js +2 -2
  362. package/src/components/global-styles/highlighted-colors.js +39 -0
  363. package/src/components/global-styles/hooks.js +68 -1
  364. package/src/components/global-styles/preview-colors.js +61 -0
  365. package/src/components/global-styles/preview-iframe.js +152 -0
  366. package/src/components/global-styles/preview-styles.js +185 -0
  367. package/src/components/global-styles/screen-block-list.js +1 -1
  368. package/src/components/global-styles/screen-block.js +4 -1
  369. package/src/components/global-styles/screen-colors.js +3 -2
  370. package/src/components/global-styles/screen-revisions/index.js +5 -2
  371. package/src/components/global-styles/screen-root.js +2 -2
  372. package/src/components/global-styles/screen-typography.js +8 -2
  373. package/src/components/global-styles/style-variations-container.js +14 -92
  374. package/src/components/global-styles/style.scss +4 -35
  375. package/src/components/global-styles/{typogrphy-elements.js → typography-elements.js} +5 -1
  376. package/src/components/global-styles/typography-example.js +64 -0
  377. package/src/components/global-styles/typography-preview.js +3 -1
  378. package/src/components/global-styles/ui.js +26 -2
  379. package/src/components/global-styles/utils.js +37 -0
  380. package/src/components/global-styles/variations/style.scss +38 -0
  381. package/src/components/global-styles/variations/variation.js +93 -0
  382. package/src/components/global-styles/variations/variations-color.js +34 -0
  383. package/src/components/global-styles/{variations-panel.js → variations/variations-panel.js} +1 -1
  384. package/src/components/global-styles/variations/variations-typography.js +63 -0
  385. package/src/components/header-edit-mode/index.js +21 -27
  386. package/src/components/header-edit-mode/more-menu/index.js +17 -8
  387. package/src/components/header-edit-mode/style.scss +4 -0
  388. package/src/components/keyboard-shortcut-help-modal/config.js +4 -0
  389. package/src/components/keyboard-shortcuts/global.js +16 -4
  390. package/src/components/layout/index.js +5 -0
  391. package/src/components/layout/router.js +2 -7
  392. package/src/components/page-pages/index.js +8 -13
  393. package/src/components/page-patterns/delete-category-menu-item.js +7 -0
  394. package/src/components/page-patterns/index.js +23 -24
  395. package/src/components/page-patterns/use-patterns.js +17 -10
  396. package/src/components/{list/added-by.js → page-templates-template-parts/hooks.js} +1 -66
  397. package/src/components/page-templates-template-parts/index.js +34 -25
  398. package/src/components/page-templates-template-parts/style.scss +48 -0
  399. package/src/components/resizable-frame/index.js +1 -0
  400. package/src/components/revisions/index.js +1 -1
  401. package/src/components/save-panel/index.js +56 -27
  402. package/src/components/sidebar/index.js +3 -4
  403. package/src/components/sidebar-dataviews/custom-dataviews-list.js +2 -2
  404. package/src/components/sidebar-dataviews/dataview-item.js +2 -2
  405. package/src/components/sidebar-dataviews/default-views.js +14 -4
  406. package/src/components/sidebar-dataviews/index.js +4 -3
  407. package/src/components/sidebar-edit-mode/page-panels/index.js +2 -2
  408. package/src/components/sidebar-edit-mode/page-panels/page-status.js +1 -1
  409. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +2 -0
  410. package/src/components/sidebar-edit-mode/sidebar-card/index.js +30 -11
  411. package/src/components/sidebar-edit-mode/sidebar-card/style.scss +10 -11
  412. package/src/components/sidebar-edit-mode/template-panel/index.js +25 -6
  413. package/src/components/sidebar-navigation-screen/style.scss +10 -1
  414. package/src/components/sidebar-navigation-screen-global-styles/index.js +35 -2
  415. package/src/components/sidebar-navigation-screen-main/index.js +0 -2
  416. package/src/components/sidebar-navigation-screen-navigation-menu/{delete-modal.js → delete-confirm-dialog.js} +3 -4
  417. package/src/components/sidebar-navigation-screen-navigation-menu/more-menu.js +11 -9
  418. package/src/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +0 -2
  419. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +6 -3
  420. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +1 -1
  421. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +1 -1
  422. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
  423. package/src/components/sidebar-navigation-screen-template/index.js +7 -2
  424. package/src/components/sidebar-navigation-screen-templates-browse/content.js +5 -5
  425. package/src/components/sidebar-navigation-screen-templates-browse/index.js +5 -3
  426. package/src/components/start-template-options/index.js +1 -1
  427. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +1 -1
  428. package/src/components/sync-state-with-url/use-sync-path-with-url.js +3 -19
  429. package/src/components/template-actions/index.js +63 -46
  430. package/src/components/welcome-guide/editor.js +9 -6
  431. package/src/hooks/use-theme-style-variations/test/use-theme-style-variations-by-property.js +173 -0
  432. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +85 -1
  433. package/src/style.scss +2 -3
  434. package/src/utils/constants.js +4 -2
  435. package/src/utils/get-is-list-page.js +1 -1
  436. package/src/utils/math.js +93 -0
  437. package/build/components/global-styles/font-library-modal/collection-font-details.js +0 -50
  438. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +0 -1
  439. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +0 -30
  440. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +0 -1
  441. package/build/components/global-styles/font-library-modal/library-font-card.js +0 -39
  442. package/build/components/global-styles/font-library-modal/library-font-card.js.map +0 -1
  443. package/build/components/global-styles/font-library-modal/tab-panel-layout.js +0 -67
  444. package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +0 -1
  445. package/build/components/global-styles/preview.js +0 -271
  446. package/build/components/global-styles/preview.js.map +0 -1
  447. package/build/components/global-styles/typogrphy-elements.js.map +0 -1
  448. package/build/components/global-styles/variations-panel.js.map +0 -1
  449. package/build/components/list/added-by.js.map +0 -1
  450. package/build/components/list/header.js +0 -55
  451. package/build/components/list/header.js.map +0 -1
  452. package/build/components/list/index.js +0 -80
  453. package/build/components/list/index.js.map +0 -1
  454. package/build/components/list/table.js +0 -94
  455. package/build/components/list/table.js.map +0 -1
  456. package/build/components/list/use-register-shortcuts.js +0 -51
  457. package/build/components/list/use-register-shortcuts.js.map +0 -1
  458. package/build/components/sidebar-edit-mode/template-panel/template-actions.js +0 -50
  459. package/build/components/sidebar-edit-mode/template-panel/template-actions.js.map +0 -1
  460. package/build/components/sidebar-navigation-screen-main/template-part-hint.js +0 -36
  461. package/build/components/sidebar-navigation-screen-main/template-part-hint.js.map +0 -1
  462. package/build/components/sidebar-navigation-screen-navigation-menu/delete-modal.js.map +0 -1
  463. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js +0 -36
  464. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +0 -1
  465. package/build/components/sidebar-navigation-screen-templates/index.js +0 -132
  466. package/build/components/sidebar-navigation-screen-templates/index.js.map +0 -1
  467. package/build-module/components/global-styles/font-library-modal/collection-font-details.js +0 -42
  468. package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +0 -1
  469. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js +0 -23
  470. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +0 -1
  471. package/build-module/components/global-styles/font-library-modal/library-font-card.js +0 -31
  472. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +0 -1
  473. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js +0 -60
  474. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +0 -1
  475. package/build-module/components/global-styles/preview.js +0 -264
  476. package/build-module/components/global-styles/preview.js.map +0 -1
  477. package/build-module/components/global-styles/typogrphy-elements.js.map +0 -1
  478. package/build-module/components/global-styles/variations-panel.js.map +0 -1
  479. package/build-module/components/list/added-by.js.map +0 -1
  480. package/build-module/components/list/header.js +0 -47
  481. package/build-module/components/list/header.js.map +0 -1
  482. package/build-module/components/list/index.js +0 -72
  483. package/build-module/components/list/index.js.map +0 -1
  484. package/build-module/components/list/table.js +0 -86
  485. package/build-module/components/list/table.js.map +0 -1
  486. package/build-module/components/list/use-register-shortcuts.js +0 -45
  487. package/build-module/components/list/use-register-shortcuts.js.map +0 -1
  488. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js +0 -42
  489. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js.map +0 -1
  490. package/build-module/components/sidebar-navigation-screen-main/template-part-hint.js +0 -29
  491. package/build-module/components/sidebar-navigation-screen-main/template-part-hint.js.map +0 -1
  492. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-modal.js.map +0 -1
  493. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js +0 -27
  494. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +0 -1
  495. package/build-module/components/sidebar-navigation-screen-templates/index.js +0 -124
  496. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +0 -1
  497. package/src/components/global-styles/font-library-modal/collection-font-details.js +0 -56
  498. package/src/components/global-styles/font-library-modal/confirm-delete-dialog.js +0 -33
  499. package/src/components/global-styles/font-library-modal/library-font-card.js +0 -34
  500. package/src/components/global-styles/font-library-modal/tab-panel-layout.js +0 -85
  501. package/src/components/global-styles/preview.js +0 -327
  502. package/src/components/list/header.js +0 -48
  503. package/src/components/list/index.js +0 -87
  504. package/src/components/list/style.scss +0 -188
  505. package/src/components/list/table.js +0 -140
  506. package/src/components/list/use-register-shortcuts.js +0 -49
  507. package/src/components/sidebar-edit-mode/template-panel/template-actions.js +0 -49
  508. package/src/components/sidebar-navigation-screen-main/template-part-hint.js +0 -34
  509. package/src/components/sidebar-navigation-screen-navigation-menu/edit-button.js +0 -22
  510. package/src/components/sidebar-navigation-screen-templates/index.js +0 -156
  511. package/src/components/sidebar-navigation-screen-templates/style.scss +0 -9
@@ -30,8 +30,8 @@ import {
30
30
  LAYOUT_GRID,
31
31
  LAYOUT_TABLE,
32
32
  LAYOUT_LIST,
33
- OPERATOR_IN,
34
- OPERATOR_NOT_IN,
33
+ OPERATOR_IS_ANY,
34
+ OPERATOR_IS_NONE,
35
35
  } from '../../utils/constants';
36
36
 
37
37
  import {
@@ -49,9 +49,6 @@ import { unlock } from '../../lock-unlock';
49
49
  const { useLocation, useHistory } = unlock( routerPrivateApis );
50
50
 
51
51
  const EMPTY_ARRAY = [];
52
- const SUPPORTED_LAYOUTS = window?.__experimentalAdminViews
53
- ? [ LAYOUT_GRID, LAYOUT_TABLE, LAYOUT_LIST ]
54
- : [ LAYOUT_GRID, LAYOUT_TABLE ];
55
52
 
56
53
  function useView( postType ) {
57
54
  const { params } = useLocation();
@@ -222,18 +219,18 @@ export default function PagePages() {
222
219
  view.filters.forEach( ( filter ) => {
223
220
  if (
224
221
  filter.field === 'status' &&
225
- filter.operator === OPERATOR_IN
222
+ filter.operator === OPERATOR_IS_ANY
226
223
  ) {
227
224
  filters.status = filter.value;
228
225
  }
229
226
  if (
230
227
  filter.field === 'author' &&
231
- filter.operator === OPERATOR_IN
228
+ filter.operator === OPERATOR_IS_ANY
232
229
  ) {
233
230
  filters.author = filter.value;
234
231
  } else if (
235
232
  filter.field === 'author' &&
236
- filter.operator === OPERATOR_NOT_IN
233
+ filter.operator === OPERATOR_IS_NONE
237
234
  ) {
238
235
  filters.author_exclude = filter.value;
239
236
  }
@@ -331,13 +328,12 @@ export default function PagePages() {
331
328
  elements: STATUSES,
332
329
  enableSorting: false,
333
330
  filterBy: {
334
- operators: [ OPERATOR_IN ],
331
+ operators: [ OPERATOR_IS_ANY ],
335
332
  },
336
333
  },
337
334
  {
338
335
  header: __( 'Date' ),
339
336
  id: 'date',
340
- getValue: ( { item } ) => item.date,
341
337
  render: ( { item } ) => {
342
338
  const formattedDate = dateI18n(
343
339
  getSettings().formats.datetimeAbbreviated,
@@ -355,12 +351,12 @@ export default function PagePages() {
355
351
  const editPostAction = useEditPostAction();
356
352
  const actions = useMemo(
357
353
  () => [
354
+ editPostAction,
358
355
  viewPostAction,
359
- trashPostAction,
360
356
  restorePostAction,
361
357
  permanentlyDeletePostAction,
362
- editPostAction,
363
358
  postRevisionsAction,
359
+ trashPostAction,
364
360
  ],
365
361
  [ permanentlyDeletePostAction, restorePostAction, editPostAction ]
366
362
  );
@@ -430,7 +426,6 @@ export default function PagePages() {
430
426
  view={ view }
431
427
  onChangeView={ onChangeView }
432
428
  onSelectionChange={ onSelectionChange }
433
- supportedLayouts={ SUPPORTED_LAYOUTS }
434
429
  />
435
430
  </Page>
436
431
  );
@@ -90,6 +90,13 @@ export default function DeleteCategoryMenuItem( { category, onClose } ) {
90
90
  onCancel={ () => setIsModalOpen( false ) }
91
91
  confirmButtonText={ __( 'Delete' ) }
92
92
  className="edit-site-patterns__delete-modal"
93
+ title={ sprintf(
94
+ // translators: %s: The pattern category's name.
95
+ __( 'Delete "%s"?' ),
96
+ decodeEntities( category.label )
97
+ ) }
98
+ size="medium"
99
+ __experimentalHideHeader={ false }
93
100
  >
94
101
  { sprintf(
95
102
  // translators: %s: The pattern category's name.
@@ -46,7 +46,7 @@ import {
46
46
  PATTERN_SYNC_TYPES,
47
47
  PATTERN_DEFAULT_CATEGORY,
48
48
  ENUMERATION_TYPE,
49
- OPERATOR_IN,
49
+ OPERATOR_IS,
50
50
  } from '../../utils/constants';
51
51
  import {
52
52
  exportJSONaction,
@@ -210,6 +210,26 @@ function Title( { item, categoryId } ) {
210
210
  }
211
211
  return (
212
212
  <HStack alignment="center" justify="flex-start" spacing={ 2 }>
213
+ <Flex
214
+ as="div"
215
+ gap={ 0 }
216
+ justify="left"
217
+ className="edit-site-patterns__pattern-title"
218
+ >
219
+ { item.type === PATTERN_TYPES.theme ? (
220
+ item.title
221
+ ) : (
222
+ <Button
223
+ variant="link"
224
+ onClick={ onClick }
225
+ // Required for the grid's roving tab index system.
226
+ // See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.
227
+ tabIndex="-1"
228
+ >
229
+ { item.title || item.name }
230
+ </Button>
231
+ ) }
232
+ </Flex>
213
233
  { itemIcon && ! isNonUserPattern && (
214
234
  <Tooltip
215
235
  placement="top"
@@ -235,26 +255,6 @@ function Title( { item, categoryId } ) {
235
255
  />
236
256
  </Tooltip>
237
257
  ) }
238
- <Flex
239
- as="div"
240
- gap={ 0 }
241
- justify="left"
242
- className="edit-site-patterns__pattern-title"
243
- >
244
- { item.type === PATTERN_TYPES.theme ? (
245
- item.title
246
- ) : (
247
- <Button
248
- variant="link"
249
- onClick={ onClick }
250
- // Required for the grid's roving tab index system.
251
- // See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.
252
- tabIndex="-1"
253
- >
254
- { item.title || item.name }
255
- </Button>
256
- ) }
257
- </Flex>
258
258
  </HStack>
259
259
  );
260
260
  }
@@ -296,7 +296,6 @@ export default function DataviewsPatterns() {
296
296
  {
297
297
  header: __( 'Title' ),
298
298
  id: 'title',
299
- getValue: ( { item } ) => item.title,
300
299
  render: ( { item } ) => (
301
300
  <Title item={ item } categoryId={ categoryId } />
302
301
  ),
@@ -323,7 +322,7 @@ export default function DataviewsPatterns() {
323
322
  type: ENUMERATION_TYPE,
324
323
  elements: SYNC_FILTERS,
325
324
  filterBy: {
326
- operators: [ OPERATOR_IN ],
325
+ operators: [ OPERATOR_IS ],
327
326
  isPrimary: true,
328
327
  },
329
328
  enableSorting: false,
@@ -413,7 +412,7 @@ export default function DataviewsPatterns() {
413
412
  isLoading={ isResolving }
414
413
  view={ view }
415
414
  onChangeView={ onChangeView }
416
- deferredRendering={ true }
415
+ deferredRendering
417
416
  supportedLayouts={ [ LAYOUT_GRID ] }
418
417
  />
419
418
  </Page>
@@ -50,7 +50,8 @@ const templatePartToPattern = ( templatePart ) => ( {
50
50
 
51
51
  const selectTemplatePartsAsPatterns = createSelector(
52
52
  ( select, categoryId, search = '' ) => {
53
- const { getEntityRecords, getIsResolving } = select( coreStore );
53
+ const { getEntityRecords, isResolving: isResolvingSelector } =
54
+ select( coreStore );
54
55
  const { __experimentalGetDefaultTemplatePartAreas } =
55
56
  select( editorStore );
56
57
  const query = { per_page: -1 };
@@ -78,7 +79,7 @@ const selectTemplatePartsAsPatterns = createSelector(
78
79
  );
79
80
  };
80
81
 
81
- const isResolving = getIsResolving( 'getEntityRecords', [
82
+ const isResolving = isResolvingSelector( 'getEntityRecords', [
82
83
  'postType',
83
84
  TEMPLATE_PART_POST_TYPE,
84
85
  query,
@@ -99,7 +100,7 @@ const selectTemplatePartsAsPatterns = createSelector(
99
100
  per_page: -1,
100
101
  }
101
102
  ),
102
- select( coreStore ).getIsResolving( 'getEntityRecords', [
103
+ select( coreStore ).isResolving( 'getEntityRecords', [
103
104
  'postType',
104
105
  TEMPLATE_PART_POST_TYPE,
105
106
  { per_page: -1 },
@@ -111,7 +112,7 @@ const selectTemplatePartsAsPatterns = createSelector(
111
112
  const selectThemePatterns = createSelector(
112
113
  ( select ) => {
113
114
  const { getSettings } = unlock( select( editSiteStore ) );
114
- const { getIsResolving } = select( coreStore );
115
+ const { isResolving: isResolvingSelector } = select( coreStore );
115
116
  const settings = getSettings();
116
117
  const blockPatterns =
117
118
  settings.__experimentalAdditionalBlockPatterns ??
@@ -137,11 +138,14 @@ const selectThemePatterns = createSelector(
137
138
  __unstableSkipMigrationLogs: true,
138
139
  } ),
139
140
  } ) );
140
- return { patterns, isResolving: getIsResolving( 'getBlockPatterns' ) };
141
+ return {
142
+ patterns,
143
+ isResolving: isResolvingSelector( 'getBlockPatterns' ),
144
+ };
141
145
  },
142
146
  ( select ) => [
143
147
  select( coreStore ).getBlockPatterns(),
144
- select( coreStore ).getIsResolving( 'getBlockPatterns' ),
148
+ select( coreStore ).isResolving( 'getBlockPatterns' ),
145
149
  unlock( select( editSiteStore ) ).getSettings(),
146
150
  ]
147
151
  );
@@ -228,8 +232,11 @@ const convertPatternPostToItem = ( patternPost, categories ) => ( {
228
232
 
229
233
  const selectUserPatterns = createSelector(
230
234
  ( select, syncStatus, search = '' ) => {
231
- const { getEntityRecords, getIsResolving, getUserPatternCategories } =
232
- select( coreStore );
235
+ const {
236
+ getEntityRecords,
237
+ isResolving: isResolvingSelector,
238
+ getUserPatternCategories,
239
+ } = select( coreStore );
233
240
 
234
241
  const query = { per_page: -1 };
235
242
  const patternPosts = getEntityRecords(
@@ -248,7 +255,7 @@ const selectUserPatterns = createSelector(
248
255
  )
249
256
  : EMPTY_PATTERN_LIST;
250
257
 
251
- const isResolving = getIsResolving( 'getEntityRecords', [
258
+ const isResolving = isResolvingSelector( 'getEntityRecords', [
252
259
  'postType',
253
260
  PATTERN_TYPES.user,
254
261
  query,
@@ -277,7 +284,7 @@ const selectUserPatterns = createSelector(
277
284
  select( coreStore ).getEntityRecords( 'postType', PATTERN_TYPES.user, {
278
285
  per_page: -1,
279
286
  } ),
280
- select( coreStore ).getIsResolving( 'getEntityRecords', [
287
+ select( coreStore ).isResolving( 'getEntityRecords', [
281
288
  'postType',
282
289
  PATTERN_TYPES.user,
283
290
  { per_page: -1 },
@@ -1,28 +1,19 @@
1
- // @ts-check
2
- /**
3
- * External dependencies
4
- */
5
- import classnames from 'classnames';
6
-
7
1
  /**
8
2
  * WordPress dependencies
9
3
  */
10
- import { Icon, __experimentalHStack as HStack } from '@wordpress/components';
11
4
  import { store as coreStore } from '@wordpress/core-data';
12
5
  import { useSelect } from '@wordpress/data';
13
- import { useState } from '@wordpress/element';
14
6
  import {
15
7
  commentAuthorAvatar as authorIcon,
16
8
  layout as themeIcon,
17
9
  plugins as pluginIcon,
18
10
  globe as globeIcon,
19
11
  } from '@wordpress/icons';
20
- import { _x } from '@wordpress/i18n';
21
12
 
22
13
  /**
23
14
  * Internal dependencies
24
15
  */
25
- import { TEMPLATE_POST_TYPE, TEMPLATE_ORIGINS } from '../../utils/constants';
16
+ import { TEMPLATE_ORIGINS } from '../../utils/constants';
26
17
 
27
18
  /** @typedef {'wp_template'|'wp_template_part'} TemplateType */
28
19
 
@@ -107,59 +98,3 @@ export function useAddedBy( postType, postId ) {
107
98
  [ postType, postId ]
108
99
  );
109
100
  }
110
-
111
- /**
112
- * @param {Object} props
113
- * @param {string} props.imageUrl
114
- */
115
- export function AvatarImage( { imageUrl } ) {
116
- const [ isImageLoaded, setIsImageLoaded ] = useState( false );
117
-
118
- return (
119
- <div
120
- className={ classnames( 'edit-site-list-added-by__avatar', {
121
- 'is-loaded': isImageLoaded,
122
- } ) }
123
- >
124
- <img
125
- onLoad={ () => setIsImageLoaded( true ) }
126
- alt=""
127
- src={ imageUrl }
128
- />
129
- </div>
130
- );
131
- }
132
-
133
- /**
134
- * @param {Object} props
135
- * @param {TemplateType} props.postType The template post type.
136
- * @param {number} props.postId The template post id.
137
- */
138
- export default function AddedBy( { postType, postId } ) {
139
- const { text, icon, imageUrl, isCustomized } = useAddedBy(
140
- postType,
141
- postId
142
- );
143
-
144
- return (
145
- <HStack alignment="left">
146
- { imageUrl ? (
147
- <AvatarImage imageUrl={ imageUrl } />
148
- ) : (
149
- <div className="edit-site-list-added-by__icon">
150
- <Icon icon={ icon } />
151
- </div>
152
- ) }
153
- <span>
154
- { text }
155
- { isCustomized && (
156
- <span className="edit-site-list-added-by__customized-info">
157
- { postType === TEMPLATE_POST_TYPE
158
- ? _x( 'Customized', 'template' )
159
- : _x( 'Customized', 'template part' ) }
160
- </span>
161
- ) }
162
- </span>
163
- </HStack>
164
- );
165
- }
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
+ import classnames from 'classnames';
4
5
  import removeAccents from 'remove-accents';
5
6
 
6
7
  /**
@@ -34,13 +35,13 @@ import { privateApis as routerPrivateApis } from '@wordpress/router';
34
35
  import Page from '../page';
35
36
  import { default as Link, useLink } from '../routes/link';
36
37
  import AddNewTemplate from '../add-new-template';
37
- import { useAddedBy, AvatarImage } from '../list/added-by';
38
+ import { useAddedBy } from './hooks';
38
39
  import {
39
40
  TEMPLATE_POST_TYPE,
40
41
  TEMPLATE_PART_POST_TYPE,
41
42
  ENUMERATION_TYPE,
42
- OPERATOR_IN,
43
- OPERATOR_NOT_IN,
43
+ OPERATOR_IS_ANY,
44
+ OPERATOR_IS_NONE,
44
45
  LAYOUT_GRID,
45
46
  LAYOUT_TABLE,
46
47
  LAYOUT_LIST,
@@ -62,10 +63,6 @@ const { useHistory, useLocation } = unlock( routerPrivateApis );
62
63
 
63
64
  const EMPTY_ARRAY = [];
64
65
 
65
- const SUPPORTED_LAYOUTS = window?.__experimentalAdminViews
66
- ? [ LAYOUT_TABLE, LAYOUT_GRID, LAYOUT_LIST ]
67
- : [ LAYOUT_TABLE, LAYOUT_GRID ];
68
-
69
66
  const defaultConfigPerViewType = {
70
67
  [ LAYOUT_TABLE ]: {
71
68
  primaryField: 'title',
@@ -124,14 +121,30 @@ function Title( { item, viewType } ) {
124
121
  }
125
122
 
126
123
  function AuthorField( { item, viewType } ) {
124
+ const [ isImageLoaded, setIsImageLoaded ] = useState( false );
127
125
  const { text, icon, imageUrl } = useAddedBy( item.type, item.id );
128
126
  const withIcon = viewType !== LAYOUT_LIST;
129
127
 
130
128
  return (
131
129
  <HStack alignment="left" spacing={ 1 }>
132
- { withIcon && imageUrl && <AvatarImage imageUrl={ imageUrl } /> }
130
+ { withIcon && imageUrl && (
131
+ <div
132
+ className={ classnames(
133
+ 'page-templates-author-field__avatar',
134
+ {
135
+ 'is-loaded': isImageLoaded,
136
+ }
137
+ ) }
138
+ >
139
+ <img
140
+ onLoad={ () => setIsImageLoaded( true ) }
141
+ alt=""
142
+ src={ imageUrl }
143
+ />
144
+ </div>
145
+ ) }
133
146
  { withIcon && ! imageUrl && (
134
- <div className="edit-site-list-added-by__icon">
147
+ <div className="page-templates-author-field__icon">
135
148
  <Icon icon={ icon } />
136
149
  </div>
137
150
  ) }
@@ -192,9 +205,7 @@ export default function PageTemplatesTemplateParts( { postType } ) {
192
205
  const { params } = useLocation();
193
206
  const { activeView = 'all', layout } = params;
194
207
  const defaultView = useMemo( () => {
195
- const usedType = window?.__experimentalAdminViews
196
- ? layout ?? DEFAULT_VIEW.type
197
- : DEFAULT_VIEW.type;
208
+ const usedType = layout ?? DEFAULT_VIEW.type;
198
209
  return {
199
210
  ...DEFAULT_VIEW,
200
211
  type: usedType,
@@ -204,8 +215,8 @@ export default function PageTemplatesTemplateParts( { postType } ) {
204
215
  ? [
205
216
  {
206
217
  field: 'author',
207
- operator: 'in',
208
- value: activeView,
218
+ operator: 'isAny',
219
+ value: [ activeView ],
209
220
  },
210
221
  ]
211
222
  : [],
@@ -220,8 +231,8 @@ export default function PageTemplatesTemplateParts( { postType } ) {
220
231
  ? [
221
232
  {
222
233
  field: 'author',
223
- operator: 'in',
224
- value: activeView,
234
+ operator: OPERATOR_IS_ANY,
235
+ value: [ activeView ],
225
236
  },
226
237
  ]
227
238
  : [],
@@ -292,7 +303,6 @@ export default function PageTemplatesTemplateParts( { postType } ) {
292
303
  _fields.push( {
293
304
  header: __( 'Description' ),
294
305
  id: 'description',
295
- getValue: ( { item } ) => item.description,
296
306
  render: ( { item } ) => {
297
307
  return item.description ? (
298
308
  <span className="page-templates-description">
@@ -361,19 +371,19 @@ export default function PageTemplatesTemplateParts( { postType } ) {
361
371
  view.filters.forEach( ( filter ) => {
362
372
  if (
363
373
  filter.field === 'author' &&
364
- filter.operator === OPERATOR_IN &&
365
- !! filter.value
374
+ filter.operator === OPERATOR_IS_ANY &&
375
+ filter?.value?.length > 0
366
376
  ) {
367
377
  filteredData = filteredData.filter( ( item ) => {
368
- return item.author_text === filter.value;
378
+ return filter.value.includes( item.author_text );
369
379
  } );
370
380
  } else if (
371
381
  filter.field === 'author' &&
372
- filter.operator === OPERATOR_NOT_IN &&
373
- !! filter.value
382
+ filter.operator === OPERATOR_IS_NONE &&
383
+ filter?.value?.length > 0
374
384
  ) {
375
385
  filteredData = filteredData.filter( ( item ) => {
376
- return item.author_text !== filter.value;
386
+ return ! filter.value.includes( item.author_text );
377
387
  } );
378
388
  }
379
389
  } );
@@ -399,9 +409,9 @@ export default function PageTemplatesTemplateParts( { postType } ) {
399
409
  const actions = useMemo(
400
410
  () => [
401
411
  resetTemplateAction,
402
- deleteTemplateAction,
403
412
  renameTemplateAction,
404
413
  postRevisionsAction,
414
+ deleteTemplateAction,
405
415
  ],
406
416
  [ resetTemplateAction ]
407
417
  );
@@ -457,7 +467,6 @@ export default function PageTemplatesTemplateParts( { postType } ) {
457
467
  onChangeView={ onChangeView }
458
468
  onSelectionChange={ onSelectionChange }
459
469
  deferredRendering={ ! view.hiddenFields?.includes( 'preview' ) }
460
- supportedLayouts={ SUPPORTED_LAYOUTS }
461
470
  />
462
471
  </Page>
463
472
  );
@@ -64,3 +64,51 @@
64
64
  z-index: z-index(".edit-site-templates__dataviews-list-pagination");
65
65
  }
66
66
  }
67
+
68
+
69
+ .page-templates-author-field__avatar {
70
+ flex-shrink: 0;
71
+ overflow: hidden;
72
+ width: $grid-unit-30;
73
+ height: $grid-unit-30;
74
+ align-items: center;
75
+ justify-content: center;
76
+ display: flex;
77
+
78
+ img {
79
+ width: 20px;
80
+ height: 20px;
81
+ object-fit: cover;
82
+ opacity: 0;
83
+ transition: opacity 0.1s linear;
84
+ @include reduce-motion("transition");
85
+ border-radius: 100%;
86
+ }
87
+
88
+ &.is-loaded {
89
+ img {
90
+ opacity: 1;
91
+ }
92
+ }
93
+ }
94
+
95
+ .page-templates-author-field__icon {
96
+ display: flex;
97
+ flex-shrink: 0;
98
+ width: $grid-unit-30;
99
+ height: $grid-unit-30;
100
+
101
+ svg {
102
+ fill: currentColor;
103
+ }
104
+ }
105
+
106
+ .edit-site-list__rename-modal {
107
+ // The rename dropdown popover is open at the same time as the rename modal. The latter has to be higher.
108
+ z-index: z-index(".edit-site-list__rename-modal");
109
+ .components-base-control {
110
+ @include break-medium() {
111
+ width: $grid-unit * 40;
112
+ }
113
+ }
114
+ }
@@ -300,6 +300,7 @@ function ResizableFrame( {
300
300
  className={ classnames( 'edit-site-resizable-frame__inner', {
301
301
  'is-resizing': isResizing,
302
302
  } ) }
303
+ showHandle={ false } // Do not show the default handle, as we're using a custom one.
303
304
  >
304
305
  <motion.div
305
306
  className="edit-site-resizable-frame__inner-content"
@@ -66,7 +66,7 @@ function Revisions( { userConfig, blocks } ) {
66
66
  <EditorCanvasContainer
67
67
  title={ __( 'Revisions' ) }
68
68
  closeButtonLabel={ __( 'Close revisions' ) }
69
- enableResizing={ true }
69
+ enableResizing
70
70
  >
71
71
  <Iframe
72
72
  className="edit-site-revisions__iframe"
@@ -77,26 +77,47 @@ const EntitiesSavedStatesForPreview = ( { onClose } ) => {
77
77
  );
78
78
  };
79
79
 
80
- const _EntitiesSavedStates = ( { onClose } ) => {
80
+ const _EntitiesSavedStates = ( { onClose, renderDialog = undefined } ) => {
81
81
  if ( isPreviewingTheme() ) {
82
82
  return <EntitiesSavedStatesForPreview onClose={ onClose } />;
83
83
  }
84
- return <EntitiesSavedStates close={ onClose } />;
84
+ return (
85
+ <EntitiesSavedStates close={ onClose } renderDialog={ renderDialog } />
86
+ );
85
87
  };
86
88
 
87
89
  export default function SavePanel() {
88
- const { isSaveViewOpen, canvasMode } = useSelect( ( select ) => {
89
- const { isSaveViewOpened, getCanvasMode } = unlock(
90
- select( editSiteStore )
91
- );
90
+ const { isSaveViewOpen, canvasMode, isDirty, isSaving } = useSelect(
91
+ ( select ) => {
92
+ const {
93
+ __experimentalGetDirtyEntityRecords,
94
+ isSavingEntityRecord,
95
+ isResolving,
96
+ } = select( coreStore );
97
+ const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
98
+ const isActivatingTheme = isResolving( 'activateTheme' );
99
+ const { isSaveViewOpened, getCanvasMode } = unlock(
100
+ select( editSiteStore )
101
+ );
92
102
 
93
- // The currently selected entity to display.
94
- // Typically template or template part in the site editor.
95
- return {
96
- isSaveViewOpen: isSaveViewOpened(),
97
- canvasMode: getCanvasMode(),
98
- };
99
- }, [] );
103
+ // The currently selected entity to display.
104
+ // Typically template or template part in the site editor.
105
+ return {
106
+ isSaveViewOpen: isSaveViewOpened(),
107
+ canvasMode: getCanvasMode(),
108
+ isDirty: dirtyEntityRecords.length > 0,
109
+ isSaving:
110
+ dirtyEntityRecords.some( ( record ) =>
111
+ isSavingEntityRecord(
112
+ record.kind,
113
+ record.name,
114
+ record.key
115
+ )
116
+ ) || isActivatingTheme,
117
+ };
118
+ },
119
+ []
120
+ );
100
121
  const { setIsSaveViewOpened } = useDispatch( editSiteStore );
101
122
  const onClose = () => setIsSaveViewOpened( false );
102
123
 
@@ -114,7 +135,8 @@ export default function SavePanel() {
114
135
  </Modal>
115
136
  ) : null;
116
137
  }
117
-
138
+ const activateSaveEnabled = isPreviewingTheme() || isDirty;
139
+ const disabled = isSaving || ! activateSaveEnabled;
118
140
  return (
119
141
  <NavigableRegion
120
142
  className={ classnames( 'edit-site-layout__actions', {
@@ -122,19 +144,26 @@ export default function SavePanel() {
122
144
  } ) }
123
145
  ariaLabel={ __( 'Save panel' ) }
124
146
  >
125
- { isSaveViewOpen ? (
126
- <_EntitiesSavedStates onClose={ onClose } />
127
- ) : (
128
- <div className="edit-site-editor__toggle-save-panel">
129
- <Button
130
- variant="secondary"
131
- className="edit-site-editor__toggle-save-panel-button"
132
- onClick={ () => setIsSaveViewOpened( true ) }
133
- aria-expanded={ false }
134
- >
135
- { __( 'Open save panel' ) }
136
- </Button>
137
- </div>
147
+ <div
148
+ className={ classnames( 'edit-site-editor__toggle-save-panel', {
149
+ 'screen-reader-text': isSaveViewOpen,
150
+ } ) }
151
+ >
152
+ <Button
153
+ variant="secondary"
154
+ className={ classnames(
155
+ 'edit-site-editor__toggle-save-panel-button'
156
+ ) }
157
+ onClick={ () => setIsSaveViewOpened( true ) }
158
+ aria-haspopup={ 'dialog' }
159
+ disabled={ disabled }
160
+ __experimentalIsFocusable
161
+ >
162
+ { __( 'Open save panel' ) }
163
+ </Button>
164
+ </div>
165
+ { isSaveViewOpen && (
166
+ <_EntitiesSavedStates onClose={ onClose } renderDialog />
138
167
  ) }
139
168
  </NavigableRegion>
140
169
  );