@wordpress/edit-site 6.3.0 → 6.5.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 (334) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/add-new-pattern/index.js +14 -3
  3. package/build/components/add-new-pattern/index.js.map +1 -1
  4. package/build/components/add-new-post/index.js +2 -1
  5. package/build/components/add-new-post/index.js.map +1 -1
  6. package/build/components/add-new-template/index.js +3 -1
  7. package/build/components/add-new-template/index.js.map +1 -1
  8. package/build/components/add-new-template/utils.js +2 -2
  9. package/build/components/add-new-template/utils.js.map +1 -1
  10. package/build/components/block-editor/use-site-editor-settings.js +1 -82
  11. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  12. package/build/components/editor/index.js +71 -20
  13. package/build/components/editor/index.js.map +1 -1
  14. package/build/components/global-styles/block-preview-panel.js +14 -5
  15. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  16. package/build/components/global-styles/font-families.js +40 -22
  17. package/build/components/global-styles/font-families.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/context.js +0 -5
  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 +25 -5
  21. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/index.js +5 -12
  23. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  24. package/build/components/global-styles/font-library-modal/installed-fonts.js +78 -15
  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 +2 -3
  27. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  28. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +39 -0
  29. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
  30. package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +39 -0
  31. package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
  32. package/build/components/global-styles/font-sizes/font-size-preview.js +44 -0
  33. package/build/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
  34. package/build/components/global-styles/font-sizes/font-size.js +213 -0
  35. package/build/components/global-styles/font-sizes/font-size.js.map +1 -0
  36. package/build/components/global-styles/font-sizes/font-sizes-count.js +50 -0
  37. package/build/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
  38. package/build/components/global-styles/font-sizes/font-sizes.js +163 -0
  39. package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -0
  40. package/build/components/global-styles/font-sizes/rename-font-size-dialog.js +67 -0
  41. package/build/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
  42. package/build/components/global-styles/screen-block.js +10 -8
  43. package/build/components/global-styles/screen-block.js.map +1 -1
  44. package/build/components/global-styles/screen-style-variations.js +2 -2
  45. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  46. package/build/components/global-styles/screen-typeset.js +40 -0
  47. package/build/components/global-styles/screen-typeset.js.map +1 -0
  48. package/build/components/global-styles/screen-typography-element.js +14 -0
  49. package/build/components/global-styles/screen-typography-element.js.map +1 -1
  50. package/build/components/global-styles/screen-typography.js +5 -6
  51. package/build/components/global-styles/screen-typography.js.map +1 -1
  52. package/build/components/global-styles/shadows-edit-panel.js +50 -59
  53. package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
  54. package/build/components/global-styles/size-control/index.js +85 -0
  55. package/build/components/global-styles/size-control/index.js.map +1 -0
  56. package/build/components/global-styles/style-variations-container.js +3 -0
  57. package/build/components/global-styles/style-variations-container.js.map +1 -1
  58. package/build/components/global-styles/typeset-button.js +97 -0
  59. package/build/components/global-styles/typeset-button.js.map +1 -0
  60. package/build/components/global-styles/typeset.js +80 -0
  61. package/build/components/global-styles/typeset.js.map +1 -0
  62. package/build/components/global-styles/ui.js +12 -0
  63. package/build/components/global-styles/ui.js.map +1 -1
  64. package/build/components/global-styles/utils.js +10 -1
  65. package/build/components/global-styles/utils.js.map +1 -1
  66. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  67. package/build/components/global-styles/variations/variations-typography.js +1 -1
  68. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  69. package/build/components/layout/index.js +6 -0
  70. package/build/components/layout/index.js.map +1 -1
  71. package/build/components/layout/router.js +14 -6
  72. package/build/components/layout/router.js.map +1 -1
  73. package/build/components/page-patterns/fields.js +230 -0
  74. package/build/components/page-patterns/fields.js.map +1 -0
  75. package/build/components/page-patterns/header.js +1 -1
  76. package/build/components/page-patterns/header.js.map +1 -1
  77. package/build/components/page-patterns/index.js +21 -227
  78. package/build/components/page-patterns/index.js.map +1 -1
  79. package/build/components/page-patterns/use-patterns.js +26 -1
  80. package/build/components/page-patterns/use-patterns.js.map +1 -1
  81. package/build/components/page-templates/fields.js +169 -0
  82. package/build/components/page-templates/fields.js.map +1 -0
  83. package/build/components/page-templates/index.js +38 -198
  84. package/build/components/page-templates/index.js.map +1 -1
  85. package/build/components/post-edit/index.js +117 -0
  86. package/build/components/post-edit/index.js.map +1 -0
  87. package/build/components/post-fields/index.js +318 -0
  88. package/build/components/post-fields/index.js.map +1 -0
  89. package/build/components/post-list/index.js +339 -0
  90. package/build/components/post-list/index.js.map +1 -0
  91. package/build/components/posts-app/router.js +3 -3
  92. package/build/components/posts-app/router.js.map +1 -1
  93. package/build/components/sidebar-dataviews/add-new-view.js +2 -2
  94. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  95. package/build/components/sidebar-dataviews/dataview-item.js +2 -3
  96. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
  97. package/build/components/sidebar-dataviews/default-views.js +103 -91
  98. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  99. package/build/components/sidebar-dataviews/index.js +2 -2
  100. package/build/components/sidebar-dataviews/index.js.map +1 -1
  101. package/build/components/sidebar-navigation-screen-global-styles/content.js +64 -0
  102. package/build/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
  103. package/build/components/sidebar-navigation-screen-global-styles/index.js +2 -47
  104. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  105. package/build/components/site-hub/index.js +6 -3
  106. package/build/components/site-hub/index.js.map +1 -1
  107. package/build/components/style-book/index.js +22 -25
  108. package/build/components/style-book/index.js.map +1 -1
  109. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
  110. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  111. package/build/hooks/push-changes-to-global-styles/index.js +3 -4
  112. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  113. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -4
  114. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  115. package/build/index.js +4 -2
  116. package/build/index.js.map +1 -1
  117. package/build/store/selectors.js +34 -6
  118. package/build/store/selectors.js.map +1 -1
  119. package/build/utils/get-filtered-template-parts.js +64 -0
  120. package/build/utils/get-filtered-template-parts.js.map +1 -0
  121. package/build-module/components/add-new-pattern/index.js +14 -3
  122. package/build-module/components/add-new-pattern/index.js.map +1 -1
  123. package/build-module/components/add-new-post/index.js +2 -1
  124. package/build-module/components/add-new-post/index.js.map +1 -1
  125. package/build-module/components/add-new-template/index.js +3 -1
  126. package/build-module/components/add-new-template/index.js.map +1 -1
  127. package/build-module/components/add-new-template/utils.js +2 -2
  128. package/build-module/components/add-new-template/utils.js.map +1 -1
  129. package/build-module/components/block-editor/use-site-editor-settings.js +1 -82
  130. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  131. package/build-module/components/editor/index.js +73 -22
  132. package/build-module/components/editor/index.js.map +1 -1
  133. package/build-module/components/global-styles/block-preview-panel.js +14 -5
  134. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  135. package/build-module/components/global-styles/font-families.js +42 -24
  136. package/build-module/components/global-styles/font-families.js.map +1 -1
  137. package/build-module/components/global-styles/font-library-modal/context.js +0 -5
  138. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  139. package/build-module/components/global-styles/font-library-modal/font-collection.js +26 -6
  140. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  141. package/build-module/components/global-styles/font-library-modal/index.js +5 -12
  142. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  143. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +81 -18
  144. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  145. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +2 -3
  146. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  147. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +32 -0
  148. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
  149. package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +32 -0
  150. package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
  151. package/build-module/components/global-styles/font-sizes/font-size-preview.js +37 -0
  152. package/build-module/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
  153. package/build-module/components/global-styles/font-sizes/font-size.js +207 -0
  154. package/build-module/components/global-styles/font-sizes/font-size.js.map +1 -0
  155. package/build-module/components/global-styles/font-sizes/font-sizes-count.js +43 -0
  156. package/build-module/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
  157. package/build-module/components/global-styles/font-sizes/font-sizes.js +157 -0
  158. package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -0
  159. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js +61 -0
  160. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
  161. package/build-module/components/global-styles/screen-block.js +10 -8
  162. package/build-module/components/global-styles/screen-block.js.map +1 -1
  163. package/build-module/components/global-styles/screen-style-variations.js +2 -2
  164. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  165. package/build-module/components/global-styles/screen-typeset.js +34 -0
  166. package/build-module/components/global-styles/screen-typeset.js.map +1 -0
  167. package/build-module/components/global-styles/screen-typography-element.js +14 -0
  168. package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
  169. package/build-module/components/global-styles/screen-typography.js +5 -6
  170. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  171. package/build-module/components/global-styles/shadows-edit-panel.js +51 -60
  172. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
  173. package/build-module/components/global-styles/size-control/index.js +79 -0
  174. package/build-module/components/global-styles/size-control/index.js.map +1 -0
  175. package/build-module/components/global-styles/style-variations-container.js +3 -0
  176. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  177. package/build-module/components/global-styles/typeset-button.js +89 -0
  178. package/build-module/components/global-styles/typeset-button.js.map +1 -0
  179. package/build-module/components/global-styles/typeset.js +71 -0
  180. package/build-module/components/global-styles/typeset.js.map +1 -0
  181. package/build-module/components/global-styles/ui.js +12 -0
  182. package/build-module/components/global-styles/ui.js.map +1 -1
  183. package/build-module/components/global-styles/utils.js +10 -1
  184. package/build-module/components/global-styles/utils.js.map +1 -1
  185. package/build-module/components/global-styles/variations/variations-color.js +1 -1
  186. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  187. package/build-module/components/global-styles/variations/variations-typography.js +1 -2
  188. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  189. package/build-module/components/layout/index.js +6 -0
  190. package/build-module/components/layout/index.js.map +1 -1
  191. package/build-module/components/layout/router.js +14 -6
  192. package/build-module/components/layout/router.js.map +1 -1
  193. package/build-module/components/page-patterns/fields.js +223 -0
  194. package/build-module/components/page-patterns/fields.js.map +1 -0
  195. package/build-module/components/page-patterns/header.js +1 -1
  196. package/build-module/components/page-patterns/header.js.map +1 -1
  197. package/build-module/components/page-patterns/index.js +24 -230
  198. package/build-module/components/page-patterns/index.js.map +1 -1
  199. package/build-module/components/page-patterns/use-patterns.js +26 -1
  200. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  201. package/build-module/components/page-templates/fields.js +160 -0
  202. package/build-module/components/page-templates/fields.js.map +1 -0
  203. package/build-module/components/page-templates/index.js +39 -199
  204. package/build-module/components/page-templates/index.js.map +1 -1
  205. package/build-module/components/post-edit/index.js +110 -0
  206. package/build-module/components/post-edit/index.js.map +1 -0
  207. package/build-module/components/post-fields/index.js +310 -0
  208. package/build-module/components/post-fields/index.js.map +1 -0
  209. package/build-module/components/post-list/index.js +333 -0
  210. package/build-module/components/post-list/index.js.map +1 -0
  211. package/build-module/components/posts-app/router.js +3 -3
  212. package/build-module/components/posts-app/router.js.map +1 -1
  213. package/build-module/components/sidebar-dataviews/add-new-view.js +2 -2
  214. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  215. package/build-module/components/sidebar-dataviews/dataview-item.js +2 -3
  216. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  217. package/build-module/components/sidebar-dataviews/default-views.js +102 -90
  218. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  219. package/build-module/components/sidebar-dataviews/index.js +5 -5
  220. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  221. package/build-module/components/sidebar-navigation-screen-global-styles/content.js +57 -0
  222. package/build-module/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
  223. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +2 -47
  224. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  225. package/build-module/components/site-hub/index.js +7 -4
  226. package/build-module/components/site-hub/index.js.map +1 -1
  227. package/build-module/components/style-book/index.js +23 -26
  228. package/build-module/components/style-book/index.js.map +1 -1
  229. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
  230. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  231. package/build-module/hooks/push-changes-to-global-styles/index.js +3 -4
  232. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  233. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -3
  234. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  235. package/build-module/index.js +4 -2
  236. package/build-module/index.js.map +1 -1
  237. package/build-module/store/selectors.js +35 -7
  238. package/build-module/store/selectors.js.map +1 -1
  239. package/build-module/utils/get-filtered-template-parts.js +57 -0
  240. package/build-module/utils/get-filtered-template-parts.js.map +1 -0
  241. package/build-style/posts-rtl.css +749 -492
  242. package/build-style/posts.css +749 -492
  243. package/build-style/style-rtl.css +956 -613
  244. package/build-style/style.css +956 -613
  245. package/package.json +41 -41
  246. package/src/components/add-new-pattern/index.js +16 -5
  247. package/src/components/add-new-post/index.js +2 -1
  248. package/src/components/add-new-template/index.js +4 -1
  249. package/src/components/add-new-template/style.scss +4 -6
  250. package/src/components/add-new-template/utils.js +10 -6
  251. package/src/components/block-editor/use-site-editor-settings.js +15 -111
  252. package/src/components/editor/index.js +80 -22
  253. package/src/components/editor/style.scss +59 -1
  254. package/src/components/global-styles/block-preview-panel.js +22 -9
  255. package/src/components/global-styles/font-families.js +65 -32
  256. package/src/components/global-styles/font-library-modal/context.js +0 -5
  257. package/src/components/global-styles/font-library-modal/font-collection.js +34 -10
  258. package/src/components/global-styles/font-library-modal/index.js +6 -9
  259. package/src/components/global-styles/font-library-modal/installed-fonts.js +115 -16
  260. package/src/components/global-styles/font-library-modal/style.scss +9 -0
  261. package/src/components/global-styles/font-library-modal/upload-fonts.js +2 -2
  262. package/src/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +43 -0
  263. package/src/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +37 -0
  264. package/src/components/global-styles/font-sizes/font-size-preview.js +43 -0
  265. package/src/components/global-styles/font-sizes/font-size.js +250 -0
  266. package/src/components/global-styles/font-sizes/font-sizes-count.js +40 -0
  267. package/src/components/global-styles/font-sizes/font-sizes.js +263 -0
  268. package/src/components/global-styles/font-sizes/rename-font-size-dialog.js +70 -0
  269. package/src/components/global-styles/screen-block.js +12 -14
  270. package/src/components/global-styles/screen-style-variations.js +2 -2
  271. package/src/components/global-styles/screen-typeset.js +42 -0
  272. package/src/components/global-styles/screen-typography-element.js +14 -0
  273. package/src/components/global-styles/screen-typography.js +7 -6
  274. package/src/components/global-styles/shadows-edit-panel.js +66 -73
  275. package/src/components/global-styles/size-control/index.js +86 -0
  276. package/src/components/global-styles/style-variations-container.js +4 -0
  277. package/src/components/global-styles/style.scss +17 -10
  278. package/src/components/global-styles/typeset-button.js +93 -0
  279. package/src/components/global-styles/typeset.js +73 -0
  280. package/src/components/global-styles/ui.js +15 -0
  281. package/src/components/global-styles/utils.js +13 -1
  282. package/src/components/global-styles/variations/variations-color.js +1 -1
  283. package/src/components/global-styles/variations/variations-typography.js +1 -2
  284. package/src/components/layout/index.js +11 -0
  285. package/src/components/layout/router.js +13 -5
  286. package/src/components/layout/style.scss +34 -8
  287. package/src/components/page-patterns/fields.js +251 -0
  288. package/src/components/page-patterns/header.js +1 -1
  289. package/src/components/page-patterns/index.js +24 -246
  290. package/src/components/page-patterns/style.scss +82 -85
  291. package/src/components/page-patterns/use-patterns.js +31 -1
  292. package/src/components/page-templates/fields.js +157 -0
  293. package/src/components/page-templates/index.js +46 -192
  294. package/src/components/page-templates/style.scss +19 -8
  295. package/src/components/post-edit/index.js +115 -0
  296. package/src/components/post-edit/style.scss +9 -0
  297. package/src/components/post-fields/index.js +357 -0
  298. package/src/components/post-list/index.js +386 -0
  299. package/src/components/{posts-app → post-list}/style.scss +12 -9
  300. package/src/components/posts-app/router.js +3 -3
  301. package/src/components/sidebar-dataviews/add-new-view.js +2 -4
  302. package/src/components/sidebar-dataviews/dataview-item.js +2 -2
  303. package/src/components/sidebar-dataviews/default-views.js +116 -104
  304. package/src/components/sidebar-dataviews/index.js +4 -3
  305. package/src/components/sidebar-navigation-screen-global-styles/content.js +55 -0
  306. package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -55
  307. package/src/components/site-hub/index.js +11 -2
  308. package/src/components/site-icon/style.scss +4 -1
  309. package/src/components/style-book/index.js +27 -32
  310. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
  311. package/src/hooks/push-changes-to-global-styles/index.js +3 -4
  312. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -3
  313. package/src/index.js +6 -2
  314. package/src/posts.scss +1 -1
  315. package/src/store/selectors.js +53 -14
  316. package/src/store/test/selectors.js +1 -26
  317. package/src/style.scss +2 -1
  318. package/src/utils/get-filtered-template-parts.js +61 -0
  319. package/src/utils/test/get-filtered-template-parts.js +127 -0
  320. package/build/components/global-styles/screen-background.js +0 -36
  321. package/build/components/global-styles/screen-background.js.map +0 -1
  322. package/build/components/posts-app/posts-list.js +0 -568
  323. package/build/components/posts-app/posts-list.js.map +0 -1
  324. package/build/utils/clone-deep.js +0 -15
  325. package/build/utils/clone-deep.js.map +0 -1
  326. package/build-module/components/global-styles/screen-background.js +0 -30
  327. package/build-module/components/global-styles/screen-background.js.map +0 -1
  328. package/build-module/components/posts-app/posts-list.js +0 -560
  329. package/build-module/components/posts-app/posts-list.js.map +0 -1
  330. package/build-module/utils/clone-deep.js +0 -9
  331. package/build-module/utils/clone-deep.js.map +0 -1
  332. package/src/components/global-styles/screen-background.js +0 -29
  333. package/src/components/posts-app/posts-list.js +0 -651
  334. package/src/utils/clone-deep.js +0 -8
@@ -9,11 +9,10 @@ import {
9
9
  /**
10
10
  * Internal dependencies
11
11
  */
12
-
13
12
  import StylesPreviewTypography from '../preview-typography';
14
13
  import { useCurrentMergeThemeStyleVariationsWithUserConfig } from '../../../hooks/use-theme-style-variations/use-theme-style-variations-by-property';
15
- import Variation from './variation';
16
14
  import Subtitle from '../subtitle';
15
+ import Variation from './variation';
17
16
 
18
17
  export default function TypographyVariations( { title, gap = 2 } ) {
19
18
  const propertiesToFilter = [ 'typography' ];
@@ -201,6 +201,17 @@ export default function Layout( { route } ) {
201
201
  </div>
202
202
  ) }
203
203
 
204
+ { ! isMobileViewport && areas.edit && (
205
+ <div
206
+ className="edit-site-layout__area"
207
+ style={ {
208
+ maxWidth: widths?.edit,
209
+ } }
210
+ >
211
+ { areas.edit }
212
+ </div>
213
+ ) }
214
+
204
215
  { ! isMobileViewport && areas.preview && (
205
216
  <div className="edit-site-layout__canvas-container">
206
217
  { canvasResizer }
@@ -9,7 +9,7 @@ import { useEffect } from '@wordpress/element';
9
9
  */
10
10
  import { unlock } from '../../lock-unlock';
11
11
  import Editor from '../editor';
12
- import PostsList from '../posts-app/posts-list';
12
+ import PostList from '../post-list';
13
13
  import PagePatterns from '../page-patterns';
14
14
  import PageTemplates from '../page-templates';
15
15
  import SidebarNavigationScreen from '../sidebar-navigation-screen';
@@ -26,6 +26,7 @@ import {
26
26
  TEMPLATE_PART_POST_TYPE,
27
27
  TEMPLATE_POST_TYPE,
28
28
  } from '../../utils/constants';
29
+ import { PostEdit } from '../post-edit';
29
30
 
30
31
  const { useLocation, useHistory } = unlock( routerPrivateApis );
31
32
 
@@ -74,13 +75,15 @@ function useRedirectOldPaths() {
74
75
 
75
76
  export default function useLayoutAreas() {
76
77
  const { params } = useLocation();
77
- const { postType, postId, path, layout, isCustom, canvas } = params;
78
+ const { postType, postId, path, layout, isCustom, canvas, quickEdit } =
79
+ params;
78
80
  const hasEditCanvasMode = canvas === 'edit';
79
81
  useRedirectOldPaths();
80
82
 
81
83
  // Page list
82
84
  if ( postType === 'page' ) {
83
85
  const isListLayout = layout === 'list' || ! layout;
86
+ const showQuickEdit = quickEdit && ! isListLayout;
84
87
  return {
85
88
  key: 'pages',
86
89
  areas: {
@@ -91,16 +94,21 @@ export default function useLayoutAreas() {
91
94
  content={ <DataViewsSidebarContent /> }
92
95
  />
93
96
  ),
94
- content: <PostsList postType={ postType } />,
95
- preview: ( isListLayout || hasEditCanvasMode ) && <Editor />,
97
+ content: <PostList postType={ postType } />,
98
+ preview: ! showQuickEdit &&
99
+ ( isListLayout || hasEditCanvasMode ) && <Editor />,
96
100
  mobile: hasEditCanvasMode ? (
97
101
  <Editor />
98
102
  ) : (
99
- <PostsList postType={ postType } />
103
+ <PostList postType={ postType } />
104
+ ),
105
+ edit: showQuickEdit && (
106
+ <PostEdit postType={ postType } postId={ postId } />
100
107
  ),
101
108
  },
102
109
  widths: {
103
110
  content: isListLayout ? 380 : undefined,
111
+ edit: showQuickEdit ? 380 : undefined,
104
112
  },
105
113
  };
106
114
  }
@@ -148,6 +148,14 @@
148
148
  html.canvas-mode-edit-transition::view-transition-group(toggle) {
149
149
  animation-delay: 255ms;
150
150
  }
151
+
152
+ @media (prefers-reduced-motion) {
153
+ ::view-transition-group(*),
154
+ ::view-transition-old(*),
155
+ ::view-transition-new(*) {
156
+ animation: none !important;
157
+ }
158
+ }
151
159
  /* stylelint-enable */
152
160
 
153
161
  .edit-site-layout.is-full-canvas .edit-site-layout__sidebar-region .edit-site-layout__view-mode-toggle {
@@ -175,8 +183,11 @@ html.canvas-mode-edit-transition::view-transition-group(toggle) {
175
183
  color: $white;
176
184
  }
177
185
 
186
+ &:focus-visible,
178
187
  &:focus {
179
- box-shadow: none;
188
+ box-shadow: 0 0 0 3px #1e1e1e, 0 0 0 6px var(--wp-admin-theme-color);
189
+ outline: 4px solid #0000;
190
+ outline-offset: 4px;
180
191
  }
181
192
 
182
193
  &::before {
@@ -193,13 +204,6 @@ html.canvas-mode-edit-transition::view-transition-group(toggle) {
193
204
  box-shadow: none;
194
205
  }
195
206
 
196
- // Lightened spot color focus.
197
- &:focus::before {
198
- box-shadow:
199
- inset 0 0 0 var(--wp-admin-border-width-focus) rgba($white, 0.1),
200
- inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
201
- }
202
-
203
207
  .edit-site-layout__view-mode-toggle-icon {
204
208
  display: flex;
205
209
  height: $grid-unit-80;
@@ -255,3 +259,25 @@ html.canvas-mode-edit-transition::view-transition-group(toggle) {
255
259
  padding-left: 16px;
256
260
  padding-right: 16px;
257
261
  }
262
+
263
+ .edit-site-layout.is-full-canvas {
264
+ .edit-site-layout__view-mode-toggle.components-button {
265
+ &:focus-visible,
266
+ &:focus {
267
+
268
+ box-shadow: none;
269
+ outline: none;
270
+ outline-offset: 0;
271
+
272
+ .edit-site-site-icon svg {
273
+ box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color, #3858e9);
274
+ outline: 3px solid #0000;
275
+ height: 40px;
276
+ width: 40px;
277
+ padding: 2px;
278
+ border-radius: 2px;
279
+ }
280
+
281
+ }
282
+ }
283
+ }
@@ -0,0 +1,251 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import clsx from 'clsx';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import {
10
+ __experimentalHStack as HStack,
11
+ Button,
12
+ Tooltip,
13
+ Flex,
14
+ } from '@wordpress/components';
15
+ import { __, _x } from '@wordpress/i18n';
16
+ import { useState, useMemo, useId } from '@wordpress/element';
17
+ import {
18
+ BlockPreview,
19
+ privateApis as blockEditorPrivateApis,
20
+ } from '@wordpress/block-editor';
21
+ import { Icon, lockSmall } from '@wordpress/icons';
22
+ import { parse } from '@wordpress/blocks';
23
+ import { decodeEntities } from '@wordpress/html-entities';
24
+
25
+ /**
26
+ * Internal dependencies
27
+ */
28
+ import { Async } from '../async';
29
+ import {
30
+ PATTERN_TYPES,
31
+ TEMPLATE_PART_POST_TYPE,
32
+ PATTERN_SYNC_TYPES,
33
+ OPERATOR_IS,
34
+ } from '../../utils/constants';
35
+ import { unlock } from '../../lock-unlock';
36
+ import { useLink } from '../routes/link';
37
+ import { useAddedBy } from '../page-templates/hooks';
38
+ import { defaultGetTitle } from './search-items';
39
+
40
+ const { useGlobalStyle } = unlock( blockEditorPrivateApis );
41
+
42
+ function PreviewWrapper( { item, onClick, ariaDescribedBy, children } ) {
43
+ return (
44
+ <button
45
+ className="page-patterns-preview-field__button"
46
+ type="button"
47
+ onClick={ item.type !== PATTERN_TYPES.theme ? onClick : undefined }
48
+ aria-label={ item.title }
49
+ aria-describedby={ ariaDescribedBy }
50
+ aria-disabled={ item.type === PATTERN_TYPES.theme }
51
+ >
52
+ { children }
53
+ </button>
54
+ );
55
+ }
56
+
57
+ function PreviewField( { item } ) {
58
+ const descriptionId = useId();
59
+ const description = item.description || item?.excerpt?.raw;
60
+ const isUserPattern = item.type === PATTERN_TYPES.user;
61
+ const isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;
62
+ const [ backgroundColor ] = useGlobalStyle( 'color.background' );
63
+ const { onClick } = useLink( {
64
+ postType: item.type,
65
+ postId: isUserPattern || isTemplatePart ? item.id : item.name,
66
+ canvas: 'edit',
67
+ } );
68
+ const blocks = useMemo( () => {
69
+ return (
70
+ item.blocks ??
71
+ parse( item.content.raw, {
72
+ __unstableSkipMigrationLogs: true,
73
+ } )
74
+ );
75
+ }, [ item?.content?.raw, item.blocks ] );
76
+ const isEmpty = ! blocks?.length;
77
+
78
+ return (
79
+ <div
80
+ className="page-patterns-preview-field"
81
+ style={ { backgroundColor } }
82
+ >
83
+ <PreviewWrapper
84
+ item={ item }
85
+ onClick={ onClick }
86
+ ariaDescribedBy={ !! description ? descriptionId : undefined }
87
+ >
88
+ { isEmpty && isTemplatePart && __( 'Empty template part' ) }
89
+ { isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }
90
+ { ! isEmpty && (
91
+ <Async>
92
+ <BlockPreview
93
+ blocks={ blocks }
94
+ viewportWidth={ item.viewportWidth }
95
+ />
96
+ </Async>
97
+ ) }
98
+ </PreviewWrapper>
99
+ { !! description && (
100
+ <div hidden id={ descriptionId }>
101
+ { description }
102
+ </div>
103
+ ) }
104
+ </div>
105
+ );
106
+ }
107
+
108
+ export const previewField = {
109
+ label: __( 'Preview' ),
110
+ id: 'preview',
111
+ render: PreviewField,
112
+ enableSorting: false,
113
+ };
114
+
115
+ function TitleField( { item } ) {
116
+ const isUserPattern = item.type === PATTERN_TYPES.user;
117
+ const isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;
118
+ const { onClick } = useLink( {
119
+ postType: item.type,
120
+ postId: isUserPattern || isTemplatePart ? item.id : item.name,
121
+ canvas: 'edit',
122
+ } );
123
+ const title = decodeEntities( defaultGetTitle( item ) );
124
+ return (
125
+ <HStack alignment="center" justify="flex-start" spacing={ 2 }>
126
+ <Flex
127
+ as="div"
128
+ gap={ 0 }
129
+ justify="left"
130
+ className="edit-site-patterns__pattern-title"
131
+ >
132
+ { item.type === PATTERN_TYPES.theme ? (
133
+ title
134
+ ) : (
135
+ <Button
136
+ variant="link"
137
+ onClick={ onClick }
138
+ // Required for the grid's roving tab index system.
139
+ // See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.
140
+ tabIndex="-1"
141
+ >
142
+ { title }
143
+ </Button>
144
+ ) }
145
+ </Flex>
146
+ { item.type === PATTERN_TYPES.theme && (
147
+ <Tooltip
148
+ placement="top"
149
+ text={ __( 'This pattern cannot be edited.' ) }
150
+ >
151
+ <Icon
152
+ className="edit-site-patterns__pattern-lock-icon"
153
+ icon={ lockSmall }
154
+ size={ 24 }
155
+ />
156
+ </Tooltip>
157
+ ) }
158
+ </HStack>
159
+ );
160
+ }
161
+
162
+ export const titleField = {
163
+ label: __( 'Title' ),
164
+ id: 'title',
165
+ getValue: ( { item } ) => item.title?.raw || item.title,
166
+ render: TitleField,
167
+ enableHiding: false,
168
+ };
169
+
170
+ const SYNC_FILTERS = [
171
+ {
172
+ value: PATTERN_SYNC_TYPES.full,
173
+ label: _x( 'Synced', 'pattern (singular)' ),
174
+ description: __( 'Patterns that are kept in sync across the site.' ),
175
+ },
176
+ {
177
+ value: PATTERN_SYNC_TYPES.unsynced,
178
+ label: _x( 'Not synced', 'pattern (singular)' ),
179
+ description: __(
180
+ 'Patterns that can be changed freely without affecting the site.'
181
+ ),
182
+ },
183
+ ];
184
+
185
+ export const patternStatusField = {
186
+ label: __( 'Sync status' ),
187
+ id: 'sync-status',
188
+ render: ( { item } ) => {
189
+ const syncStatus =
190
+ 'wp_pattern_sync_status' in item
191
+ ? item.wp_pattern_sync_status || PATTERN_SYNC_TYPES.full
192
+ : PATTERN_SYNC_TYPES.unsynced;
193
+ // User patterns can have their sync statuses checked directly.
194
+ // Non-user patterns are all unsynced for the time being.
195
+ return (
196
+ <span
197
+ className={ `edit-site-patterns__field-sync-status-${ syncStatus }` }
198
+ >
199
+ {
200
+ SYNC_FILTERS.find( ( { value } ) => value === syncStatus )
201
+ .label
202
+ }
203
+ </span>
204
+ );
205
+ },
206
+ elements: SYNC_FILTERS,
207
+ filterBy: {
208
+ operators: [ OPERATOR_IS ],
209
+ isPrimary: true,
210
+ },
211
+ enableSorting: false,
212
+ };
213
+
214
+ function AuthorField( { item } ) {
215
+ const [ isImageLoaded, setIsImageLoaded ] = useState( false );
216
+ const { text, icon, imageUrl } = useAddedBy( item.type, item.id );
217
+
218
+ return (
219
+ <HStack alignment="left" spacing={ 0 }>
220
+ { imageUrl && (
221
+ <div
222
+ className={ clsx( 'page-templates-author-field__avatar', {
223
+ 'is-loaded': isImageLoaded,
224
+ } ) }
225
+ >
226
+ <img
227
+ onLoad={ () => setIsImageLoaded( true ) }
228
+ alt=""
229
+ src={ imageUrl }
230
+ />
231
+ </div>
232
+ ) }
233
+ { ! imageUrl && (
234
+ <div className="page-templates-author-field__icon">
235
+ <Icon icon={ icon } />
236
+ </div>
237
+ ) }
238
+ <span className="page-templates-author-field__name">{ text }</span>
239
+ </HStack>
240
+ );
241
+ }
242
+
243
+ export const templatePartAuthorField = {
244
+ label: __( 'Author' ),
245
+ id: 'author',
246
+ getValue: ( { item } ) => item.author_text,
247
+ render: AuthorField,
248
+ filterBy: {
249
+ isPrimary: true,
250
+ },
251
+ };
@@ -80,7 +80,7 @@ export default function PatternsHeader( {
80
80
  label={ __( 'Actions' ) }
81
81
  toggleProps={ {
82
82
  className: 'edit-site-patterns__button',
83
- describedBy: sprintf(
83
+ description: sprintf(
84
84
  /* translators: %s: pattern category name */
85
85
  __( 'Action menu for %s pattern category' ),
86
86
  title