@wordpress/edit-site 5.8.0 → 5.10.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 (471) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/add-new-template/add-custom-template-modal.js +21 -6
  3. package/build/components/add-new-template/add-custom-template-modal.js.map +1 -1
  4. package/build/components/add-new-template/new-template-part.js +8 -2
  5. package/build/components/add-new-template/new-template-part.js.map +1 -1
  6. package/build/components/add-new-template/new-template.js +8 -4
  7. package/build/components/add-new-template/new-template.js.map +1 -1
  8. package/build/components/app/index.js +8 -2
  9. package/build/components/app/index.js.map +1 -1
  10. package/build/components/block-editor/back-button.js +10 -3
  11. package/build/components/block-editor/back-button.js.map +1 -1
  12. package/build/components/block-editor/editor-canvas.js +39 -6
  13. package/build/components/block-editor/editor-canvas.js.map +1 -1
  14. package/build/components/block-editor/index.js +7 -7
  15. package/build/components/block-editor/index.js.map +1 -1
  16. package/build/components/editor/index.js +43 -9
  17. package/build/components/editor/index.js.map +1 -1
  18. package/build/components/editor-canvas-container/index.js +131 -0
  19. package/build/components/editor-canvas-container/index.js.map +1 -0
  20. package/build/components/global-styles/block-preview-panel.js +1 -1
  21. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  22. package/build/components/global-styles/border-panel.js +53 -5
  23. package/build/components/global-styles/border-panel.js.map +1 -1
  24. package/build/components/global-styles/color-palette-panel.js +14 -3
  25. package/build/components/global-styles/color-palette-panel.js.map +1 -1
  26. package/build/components/global-styles/dimensions-panel.js +17 -18
  27. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  28. package/build/components/global-styles/global-styles-provider.js +4 -18
  29. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  30. package/build/components/global-styles/gradients-palette-panel.js +14 -3
  31. package/build/components/global-styles/gradients-palette-panel.js.map +1 -1
  32. package/build/components/global-styles/root-menu.js +61 -0
  33. package/build/components/global-styles/root-menu.js.map +1 -0
  34. package/build/components/global-styles/screen-block-list.js +3 -1
  35. package/build/components/global-styles/screen-block-list.js.map +1 -1
  36. package/build/components/global-styles/screen-block.js +158 -7
  37. package/build/components/global-styles/screen-block.js.map +1 -1
  38. package/build/components/global-styles/screen-colors.js +9 -26
  39. package/build/components/global-styles/screen-colors.js.map +1 -1
  40. package/build/components/global-styles/screen-css.js +20 -15
  41. package/build/components/global-styles/screen-css.js.map +1 -1
  42. package/build/components/global-styles/screen-layout.js +4 -17
  43. package/build/components/global-styles/screen-layout.js.map +1 -1
  44. package/build/components/global-styles/screen-revisions/index.js +148 -0
  45. package/build/components/global-styles/screen-revisions/index.js.map +1 -0
  46. package/build/components/global-styles/screen-revisions/revisions-buttons.js +132 -0
  47. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -0
  48. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +130 -0
  49. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -0
  50. package/build/components/global-styles/screen-root.js +2 -2
  51. package/build/components/global-styles/screen-root.js.map +1 -1
  52. package/build/components/global-styles/screen-typography-element.js +0 -3
  53. package/build/components/global-styles/screen-typography-element.js.map +1 -1
  54. package/build/components/global-styles/screen-typography.js +11 -39
  55. package/build/components/global-styles/screen-typography.js.map +1 -1
  56. package/build/components/global-styles/style-variations-container.js +3 -8
  57. package/build/components/global-styles/style-variations-container.js.map +1 -1
  58. package/build/components/global-styles/typography-panel.js +7 -11
  59. package/build/components/global-styles/typography-panel.js.map +1 -1
  60. package/build/components/global-styles/ui.js +66 -120
  61. package/build/components/global-styles/ui.js.map +1 -1
  62. package/build/components/global-styles/variations-panel.js +4 -28
  63. package/build/components/global-styles/variations-panel.js.map +1 -1
  64. package/build/components/header-edit-mode/index.js +11 -7
  65. package/build/components/header-edit-mode/index.js.map +1 -1
  66. package/build/components/keyboard-shortcuts/register.js +1 -1
  67. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  68. package/build/components/layout/index.js +22 -14
  69. package/build/components/layout/index.js.map +1 -1
  70. package/build/components/list/index.js +9 -3
  71. package/build/components/list/index.js.map +1 -1
  72. package/build/components/list/table.js +4 -4
  73. package/build/components/list/table.js.map +1 -1
  74. package/build/components/plugin-template-setting-panel/index.js +44 -0
  75. package/build/components/plugin-template-setting-panel/index.js.map +1 -0
  76. package/build/components/revisions/index.js +95 -0
  77. package/build/components/revisions/index.js.map +1 -0
  78. package/build/components/routes/link.js +17 -2
  79. package/build/components/routes/link.js.map +1 -1
  80. package/build/components/routes/use-title.js +8 -2
  81. package/build/components/routes/use-title.js.map +1 -1
  82. package/build/components/save-button/index.js +31 -6
  83. package/build/components/save-button/index.js.map +1 -1
  84. package/build/components/save-hub/index.js +14 -31
  85. package/build/components/save-hub/index.js.map +1 -1
  86. package/build/components/save-panel/index.js +20 -7
  87. package/build/components/save-panel/index.js.map +1 -1
  88. package/build/components/secondary-sidebar/list-view-sidebar.js +2 -7
  89. package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  90. package/build/components/sidebar/index.js +16 -2
  91. package/build/components/sidebar/index.js.map +1 -1
  92. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +35 -14
  93. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  94. package/build/components/sidebar-edit-mode/index.js +9 -2
  95. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  96. package/build/components/sidebar-edit-mode/sidebar-fixed-bottom.js +40 -0
  97. package/build/components/sidebar-edit-mode/sidebar-fixed-bottom.js.map +1 -0
  98. package/build/components/sidebar-edit-mode/template-card/index.js +1 -8
  99. package/build/components/sidebar-edit-mode/template-card/index.js.map +1 -1
  100. package/build/components/sidebar-edit-mode/{template-card/last-revision.js → template-revisions/index.js} +1 -1
  101. package/build/components/sidebar-edit-mode/template-revisions/index.js.map +1 -0
  102. package/build/components/sidebar-navigation-item/index.js +5 -7
  103. package/build/components/sidebar-navigation-item/index.js.map +1 -1
  104. package/build/components/sidebar-navigation-screen/index.js +14 -4
  105. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  106. package/build/components/sidebar-navigation-screen-main/index.js +24 -7
  107. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  108. package/build/components/sidebar-navigation-screen-navigation-item/index.js +1 -1
  109. package/build/components/sidebar-navigation-screen-navigation-item/index.js.map +1 -1
  110. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +17 -5
  111. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  112. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +3 -3
  113. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  114. package/build/components/sidebar-navigation-screen-page/index.js +67 -0
  115. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -0
  116. package/build/components/sidebar-navigation-screen-pages/index.js +74 -0
  117. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -0
  118. package/build/components/sidebar-navigation-screen-templates/index.js +5 -3
  119. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  120. package/build/components/sidebar-navigation-subtitle/index.js +18 -0
  121. package/build/components/sidebar-navigation-subtitle/index.js.map +1 -0
  122. package/build/components/site-hub/index.js +64 -12
  123. package/build/components/site-hub/index.js.map +1 -1
  124. package/build/components/site-icon/index.js +8 -7
  125. package/build/components/site-icon/index.js.map +1 -1
  126. package/build/components/start-template-options/index.js +21 -24
  127. package/build/components/start-template-options/index.js.map +1 -1
  128. package/build/components/style-book/index.js +9 -41
  129. package/build/components/style-book/index.js.map +1 -1
  130. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +13 -5
  131. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  132. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +9 -4
  133. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  134. package/build/components/sync-state-with-url/use-sync-path-with-url.js +17 -3
  135. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  136. package/build/components/template-details/index.js +3 -1
  137. package/build/components/template-details/index.js.map +1 -1
  138. package/build/components/template-details/template-areas.js +9 -3
  139. package/build/components/template-details/template-areas.js.map +1 -1
  140. package/build/hooks/template-part-edit.js +8 -2
  141. package/build/hooks/template-part-edit.js.map +1 -1
  142. package/build/index.js +8 -0
  143. package/build/index.js.map +1 -1
  144. package/build/store/private-actions.js +19 -1
  145. package/build/store/private-actions.js.map +1 -1
  146. package/build/store/private-selectors.js +13 -0
  147. package/build/store/private-selectors.js.map +1 -1
  148. package/build/store/reducer.js +23 -1
  149. package/build/store/reducer.js.map +1 -1
  150. package/build/utils/is-previewing-theme.js +27 -0
  151. package/build/utils/is-previewing-theme.js.map +1 -0
  152. package/build/utils/use-activate-theme.js +46 -0
  153. package/build/utils/use-activate-theme.js.map +1 -0
  154. package/build-module/components/add-new-template/add-custom-template-modal.js +21 -6
  155. package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
  156. package/build-module/components/add-new-template/new-template-part.js +5 -1
  157. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  158. package/build-module/components/add-new-template/new-template.js +7 -3
  159. package/build-module/components/add-new-template/new-template.js.map +1 -1
  160. package/build-module/components/app/index.js +6 -2
  161. package/build-module/components/app/index.js.map +1 -1
  162. package/build-module/components/block-editor/back-button.js +6 -1
  163. package/build-module/components/block-editor/back-button.js.map +1 -1
  164. package/build-module/components/block-editor/editor-canvas.js +37 -6
  165. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  166. package/build-module/components/block-editor/index.js +6 -6
  167. package/build-module/components/block-editor/index.js.map +1 -1
  168. package/build-module/components/editor/index.js +45 -11
  169. package/build-module/components/editor/index.js.map +1 -1
  170. package/build-module/components/editor-canvas-container/index.js +115 -0
  171. package/build-module/components/editor-canvas-container/index.js.map +1 -0
  172. package/build-module/components/global-styles/block-preview-panel.js +1 -1
  173. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  174. package/build-module/components/global-styles/border-panel.js +54 -5
  175. package/build-module/components/global-styles/border-panel.js.map +1 -1
  176. package/build-module/components/global-styles/color-palette-panel.js +13 -3
  177. package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
  178. package/build-module/components/global-styles/dimensions-panel.js +17 -18
  179. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  180. package/build-module/components/global-styles/global-styles-provider.js +5 -19
  181. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  182. package/build-module/components/global-styles/gradients-palette-panel.js +13 -3
  183. package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -1
  184. package/build-module/components/global-styles/root-menu.js +47 -0
  185. package/build-module/components/global-styles/root-menu.js.map +1 -0
  186. package/build-module/components/global-styles/screen-block-list.js +4 -2
  187. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  188. package/build-module/components/global-styles/screen-block.js +151 -7
  189. package/build-module/components/global-styles/screen-block.js.map +1 -1
  190. package/build-module/components/global-styles/screen-colors.js +9 -25
  191. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  192. package/build-module/components/global-styles/screen-css.js +20 -15
  193. package/build-module/components/global-styles/screen-css.js.map +1 -1
  194. package/build-module/components/global-styles/screen-layout.js +4 -16
  195. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  196. package/build-module/components/global-styles/screen-revisions/index.js +128 -0
  197. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -0
  198. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +121 -0
  199. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -0
  200. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +116 -0
  201. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -0
  202. package/build-module/components/global-styles/screen-root.js +2 -2
  203. package/build-module/components/global-styles/screen-root.js.map +1 -1
  204. package/build-module/components/global-styles/screen-typography-element.js +0 -3
  205. package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
  206. package/build-module/components/global-styles/screen-typography.js +11 -37
  207. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  208. package/build-module/components/global-styles/style-variations-container.js +3 -7
  209. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  210. package/build-module/components/global-styles/typography-panel.js +7 -11
  211. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  212. package/build-module/components/global-styles/ui.js +66 -118
  213. package/build-module/components/global-styles/ui.js.map +1 -1
  214. package/build-module/components/global-styles/variations-panel.js +3 -22
  215. package/build-module/components/global-styles/variations-panel.js.map +1 -1
  216. package/build-module/components/header-edit-mode/index.js +10 -7
  217. package/build-module/components/header-edit-mode/index.js.map +1 -1
  218. package/build-module/components/keyboard-shortcuts/register.js +1 -1
  219. package/build-module/components/keyboard-shortcuts/register.js.map +1 -1
  220. package/build-module/components/layout/index.js +17 -10
  221. package/build-module/components/layout/index.js.map +1 -1
  222. package/build-module/components/list/index.js +5 -1
  223. package/build-module/components/list/index.js.map +1 -1
  224. package/build-module/components/list/table.js +4 -4
  225. package/build-module/components/list/table.js.map +1 -1
  226. package/build-module/components/plugin-template-setting-panel/index.js +35 -0
  227. package/build-module/components/plugin-template-setting-panel/index.js.map +1 -0
  228. package/build-module/components/revisions/index.js +77 -0
  229. package/build-module/components/revisions/index.js.map +1 -0
  230. package/build-module/components/routes/link.js +13 -1
  231. package/build-module/components/routes/link.js.map +1 -1
  232. package/build-module/components/routes/use-title.js +5 -1
  233. package/build-module/components/routes/use-title.js.map +1 -1
  234. package/build-module/components/save-button/index.js +28 -6
  235. package/build-module/components/save-button/index.js.map +1 -1
  236. package/build-module/components/save-hub/index.js +13 -32
  237. package/build-module/components/save-hub/index.js.map +1 -1
  238. package/build-module/components/save-panel/index.js +19 -7
  239. package/build-module/components/save-panel/index.js.map +1 -1
  240. package/build-module/components/secondary-sidebar/list-view-sidebar.js +3 -8
  241. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  242. package/build-module/components/sidebar/index.js +11 -1
  243. package/build-module/components/sidebar/index.js.map +1 -1
  244. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +35 -16
  245. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  246. package/build-module/components/sidebar-edit-mode/index.js +10 -5
  247. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  248. package/build-module/components/sidebar-edit-mode/sidebar-fixed-bottom.js +29 -0
  249. package/build-module/components/sidebar-edit-mode/sidebar-fixed-bottom.js.map +1 -0
  250. package/build-module/components/sidebar-edit-mode/template-card/index.js +2 -7
  251. package/build-module/components/sidebar-edit-mode/template-card/index.js.map +1 -1
  252. package/build-module/components/sidebar-edit-mode/{template-card/last-revision.js → template-revisions/index.js} +1 -1
  253. package/build-module/components/sidebar-edit-mode/template-revisions/index.js.map +1 -0
  254. package/build-module/components/sidebar-navigation-item/index.js +6 -8
  255. package/build-module/components/sidebar-navigation-item/index.js.map +1 -1
  256. package/build-module/components/sidebar-navigation-screen/index.js +13 -5
  257. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  258. package/build-module/components/sidebar-navigation-screen-main/index.js +25 -8
  259. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  260. package/build-module/components/sidebar-navigation-screen-navigation-item/index.js +1 -1
  261. package/build-module/components/sidebar-navigation-screen-navigation-item/index.js.map +1 -1
  262. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +13 -3
  263. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  264. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +3 -3
  265. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  266. package/build-module/components/sidebar-navigation-screen-page/index.js +48 -0
  267. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -0
  268. package/build-module/components/sidebar-navigation-screen-pages/index.js +57 -0
  269. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -0
  270. package/build-module/components/sidebar-navigation-screen-templates/index.js +5 -3
  271. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  272. package/build-module/components/sidebar-navigation-subtitle/index.js +10 -0
  273. package/build-module/components/sidebar-navigation-subtitle/index.js.map +1 -0
  274. package/build-module/components/site-hub/index.js +64 -14
  275. package/build-module/components/site-hub/index.js.map +1 -1
  276. package/build-module/components/site-icon/index.js +8 -7
  277. package/build-module/components/site-icon/index.js.map +1 -1
  278. package/build-module/components/start-template-options/index.js +22 -25
  279. package/build-module/components/start-template-options/index.js.map +1 -1
  280. package/build-module/components/style-book/index.js +10 -41
  281. package/build-module/components/style-book/index.js.map +1 -1
  282. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +10 -4
  283. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  284. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +5 -1
  285. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  286. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +13 -1
  287. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  288. package/build-module/components/template-details/index.js +3 -1
  289. package/build-module/components/template-details/index.js.map +1 -1
  290. package/build-module/components/template-details/template-areas.js +5 -1
  291. package/build-module/components/template-details/template-areas.js.map +1 -1
  292. package/build-module/hooks/template-part-edit.js +5 -1
  293. package/build-module/hooks/template-part-edit.js.map +1 -1
  294. package/build-module/index.js +1 -0
  295. package/build-module/index.js.map +1 -1
  296. package/build-module/store/private-actions.js +15 -0
  297. package/build-module/store/private-actions.js.map +1 -1
  298. package/build-module/store/private-selectors.js +11 -0
  299. package/build-module/store/private-selectors.js.map +1 -1
  300. package/build-module/store/reducer.js +23 -1
  301. package/build-module/store/reducer.js.map +1 -1
  302. package/build-module/utils/is-previewing-theme.js +17 -0
  303. package/build-module/utils/is-previewing-theme.js.map +1 -0
  304. package/build-module/utils/use-activate-theme.js +36 -0
  305. package/build-module/utils/use-activate-theme.js.map +1 -0
  306. package/build-style/style-rtl.css +310 -137
  307. package/build-style/style.css +310 -137
  308. package/package.json +37 -35
  309. package/src/components/add-new-template/add-custom-template-modal.js +31 -8
  310. package/src/components/add-new-template/new-template-part.js +4 -1
  311. package/src/components/add-new-template/new-template.js +6 -1
  312. package/src/components/add-new-template/style.scss +52 -48
  313. package/src/components/app/index.js +6 -3
  314. package/src/components/block-editor/back-button.js +4 -1
  315. package/src/components/block-editor/editor-canvas.js +36 -8
  316. package/src/components/block-editor/index.js +8 -8
  317. package/src/components/block-editor/style.scss +15 -8
  318. package/src/components/editor/index.js +48 -7
  319. package/src/components/editor-canvas-container/index.js +128 -0
  320. package/src/components/editor-canvas-container/style.scss +19 -0
  321. package/src/components/global-styles/block-preview-panel.js +1 -1
  322. package/src/components/global-styles/border-panel.js +46 -3
  323. package/src/components/global-styles/color-palette-panel.js +9 -0
  324. package/src/components/global-styles/dimensions-panel.js +15 -15
  325. package/src/components/global-styles/global-styles-provider.js +4 -18
  326. package/src/components/global-styles/gradients-palette-panel.js +8 -0
  327. package/src/components/global-styles/root-menu.js +66 -0
  328. package/src/components/global-styles/screen-block-list.js +2 -2
  329. package/src/components/global-styles/screen-block.js +184 -7
  330. package/src/components/global-styles/screen-colors.js +9 -16
  331. package/src/components/global-styles/screen-css.js +21 -21
  332. package/src/components/global-styles/screen-layout.js +5 -9
  333. package/src/components/global-styles/screen-revisions/index.js +177 -0
  334. package/src/components/global-styles/screen-revisions/revisions-buttons.js +131 -0
  335. package/src/components/global-styles/screen-revisions/style.scss +99 -0
  336. package/src/components/global-styles/screen-revisions/test/use-global-styles-revisions.js +125 -0
  337. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +103 -0
  338. package/src/components/global-styles/screen-root.js +2 -2
  339. package/src/components/global-styles/screen-typography-element.js +1 -3
  340. package/src/components/global-styles/screen-typography.js +44 -79
  341. package/src/components/global-styles/style-variations-container.js +4 -10
  342. package/src/components/global-styles/style.scss +1 -23
  343. package/src/components/global-styles/typography-panel.js +12 -13
  344. package/src/components/global-styles/ui.js +82 -107
  345. package/src/components/global-styles/variations-panel.js +3 -26
  346. package/src/components/header-edit-mode/index.js +17 -5
  347. package/src/components/keyboard-shortcuts/register.js +1 -1
  348. package/src/components/layout/index.js +16 -19
  349. package/src/components/layout/style.scss +32 -7
  350. package/src/components/list/index.js +4 -1
  351. package/src/components/list/style.scss +4 -0
  352. package/src/components/list/table.js +19 -3
  353. package/src/components/plugin-template-setting-panel/index.js +33 -0
  354. package/src/components/revisions/index.js +104 -0
  355. package/src/components/routes/link.js +16 -1
  356. package/src/components/routes/use-title.js +4 -1
  357. package/src/components/save-button/index.js +27 -6
  358. package/src/components/save-hub/index.js +17 -35
  359. package/src/components/save-panel/index.js +15 -3
  360. package/src/components/secondary-sidebar/list-view-sidebar.js +2 -6
  361. package/src/components/secondary-sidebar/style.scss +23 -5
  362. package/src/components/sidebar/index.js +12 -1
  363. package/src/components/sidebar/style.scss +2 -1
  364. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +39 -18
  365. package/src/components/sidebar-edit-mode/index.js +17 -6
  366. package/src/components/sidebar-edit-mode/sidebar-fixed-bottom.js +26 -0
  367. package/src/components/sidebar-edit-mode/style.scss +10 -0
  368. package/src/components/sidebar-edit-mode/template-card/index.js +1 -9
  369. package/src/components/sidebar-navigation-item/index.js +13 -14
  370. package/src/components/sidebar-navigation-item/style.scss +8 -1
  371. package/src/components/sidebar-navigation-screen/index.js +26 -5
  372. package/src/components/sidebar-navigation-screen-main/index.js +43 -22
  373. package/src/components/sidebar-navigation-screen-navigation-item/index.js +3 -9
  374. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +13 -1
  375. package/src/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +3 -3
  376. package/src/components/sidebar-navigation-screen-page/index.js +59 -0
  377. package/src/components/sidebar-navigation-screen-pages/index.js +82 -0
  378. package/src/components/sidebar-navigation-screen-pages/style.scss +4 -0
  379. package/src/components/sidebar-navigation-screen-templates/index.js +5 -1
  380. package/src/components/sidebar-navigation-subtitle/index.js +5 -0
  381. package/src/components/sidebar-navigation-subtitle/style.scss +7 -0
  382. package/src/components/site-hub/index.js +92 -33
  383. package/src/components/site-hub/style.scss +8 -0
  384. package/src/components/site-icon/index.js +6 -11
  385. package/src/components/site-icon/style.scss +8 -3
  386. package/src/components/start-template-options/index.js +32 -39
  387. package/src/components/start-template-options/style.scss +36 -46
  388. package/src/components/style-book/index.js +7 -51
  389. package/src/components/style-book/style.scss +0 -18
  390. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +8 -4
  391. package/src/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +3 -1
  392. package/src/components/sync-state-with-url/use-sync-path-with-url.js +14 -1
  393. package/src/components/template-details/index.js +1 -0
  394. package/src/components/template-details/template-areas.js +4 -1
  395. package/src/hooks/template-part-edit.js +4 -1
  396. package/src/index.js +1 -0
  397. package/src/store/private-actions.js +14 -0
  398. package/src/store/private-selectors.js +11 -0
  399. package/src/store/reducer.js +18 -0
  400. package/src/store/test/actions.js +6 -14
  401. package/src/style.scss +5 -1
  402. package/src/utils/is-previewing-theme.js +18 -0
  403. package/src/utils/use-activate-theme.js +38 -0
  404. package/build/components/global-styles/context-menu.js +0 -126
  405. package/build/components/global-styles/context-menu.js.map +0 -1
  406. package/build/components/global-styles/custom-css.js +0 -113
  407. package/build/components/global-styles/custom-css.js.map +0 -1
  408. package/build/components/global-styles/effects-panel.js +0 -53
  409. package/build/components/global-styles/effects-panel.js.map +0 -1
  410. package/build/components/global-styles/filters-panel.js +0 -45
  411. package/build/components/global-styles/filters-panel.js.map +0 -1
  412. package/build/components/global-styles/screen-border.js +0 -61
  413. package/build/components/global-styles/screen-border.js.map +0 -1
  414. package/build/components/global-styles/screen-effects.js +0 -61
  415. package/build/components/global-styles/screen-effects.js.map +0 -1
  416. package/build/components/global-styles/screen-filters.js +0 -46
  417. package/build/components/global-styles/screen-filters.js.map +0 -1
  418. package/build/components/global-styles/screen-variations.js +0 -71
  419. package/build/components/global-styles/screen-variations.js.map +0 -1
  420. package/build/components/routes/index.js +0 -60
  421. package/build/components/routes/index.js.map +0 -1
  422. package/build/components/sidebar-edit-mode/template-card/last-revision.js.map +0 -1
  423. package/build/hooks/commands/index.js +0 -19
  424. package/build/hooks/commands/index.js.map +0 -1
  425. package/build/hooks/commands/use-navigation-commands.js +0 -117
  426. package/build/hooks/commands/use-navigation-commands.js.map +0 -1
  427. package/build/hooks/commands/use-wp-admin-commands.js +0 -94
  428. package/build/hooks/commands/use-wp-admin-commands.js.map +0 -1
  429. package/build/utils/history.js +0 -41
  430. package/build/utils/history.js.map +0 -1
  431. package/build-module/components/global-styles/context-menu.js +0 -107
  432. package/build-module/components/global-styles/context-menu.js.map +0 -1
  433. package/build-module/components/global-styles/custom-css.js +0 -98
  434. package/build-module/components/global-styles/custom-css.js.map +0 -1
  435. package/build-module/components/global-styles/effects-panel.js +0 -43
  436. package/build-module/components/global-styles/effects-panel.js.map +0 -1
  437. package/build-module/components/global-styles/filters-panel.js +0 -35
  438. package/build-module/components/global-styles/filters-panel.js.map +0 -1
  439. package/build-module/components/global-styles/screen-border.js +0 -44
  440. package/build-module/components/global-styles/screen-border.js.map +0 -1
  441. package/build-module/components/global-styles/screen-effects.js +0 -44
  442. package/build-module/components/global-styles/screen-effects.js.map +0 -1
  443. package/build-module/components/global-styles/screen-filters.js +0 -33
  444. package/build-module/components/global-styles/screen-filters.js.map +0 -1
  445. package/build-module/components/global-styles/screen-variations.js +0 -54
  446. package/build-module/components/global-styles/screen-variations.js.map +0 -1
  447. package/build-module/components/routes/index.js +0 -47
  448. package/build-module/components/routes/index.js.map +0 -1
  449. package/build-module/components/sidebar-edit-mode/template-card/last-revision.js.map +0 -1
  450. package/build-module/hooks/commands/index.js +0 -10
  451. package/build-module/hooks/commands/index.js.map +0 -1
  452. package/build-module/hooks/commands/use-navigation-commands.js +0 -101
  453. package/build-module/hooks/commands/use-navigation-commands.js.map +0 -1
  454. package/build-module/hooks/commands/use-wp-admin-commands.js +0 -79
  455. package/build-module/hooks/commands/use-wp-admin-commands.js.map +0 -1
  456. package/build-module/utils/history.js +0 -31
  457. package/build-module/utils/history.js.map +0 -1
  458. package/src/components/global-styles/context-menu.js +0 -175
  459. package/src/components/global-styles/custom-css.js +0 -131
  460. package/src/components/global-styles/effects-panel.js +0 -40
  461. package/src/components/global-styles/filters-panel.js +0 -33
  462. package/src/components/global-styles/screen-border.js +0 -35
  463. package/src/components/global-styles/screen-effects.js +0 -35
  464. package/src/components/global-styles/screen-filters.js +0 -27
  465. package/src/components/global-styles/screen-variations.js +0 -46
  466. package/src/components/routes/index.js +0 -53
  467. package/src/hooks/commands/index.js +0 -10
  468. package/src/hooks/commands/use-navigation-commands.js +0 -103
  469. package/src/hooks/commands/use-wp-admin-commands.js +0 -77
  470. package/src/utils/history.js +0 -39
  471. /package/src/components/sidebar-edit-mode/{template-card/last-revision.js → template-revisions/index.js} +0 -0
@@ -10,14 +10,17 @@ import { useSelect, useDispatch } from '@wordpress/data';
10
10
  import {
11
11
  Button,
12
12
  __unstableMotion as motion,
13
+ __unstableAnimatePresence as AnimatePresence,
13
14
  __experimentalHStack as HStack,
14
15
  } from '@wordpress/components';
15
16
  import { useReducedMotion } from '@wordpress/compose';
16
17
  import { __ } from '@wordpress/i18n';
17
18
  import { store as blockEditorStore } from '@wordpress/block-editor';
18
19
  import { store as coreStore } from '@wordpress/core-data';
19
- import { forwardRef } from '@wordpress/element';
20
20
  import { decodeEntities } from '@wordpress/html-entities';
21
+ import { forwardRef } from '@wordpress/element';
22
+ import { search } from '@wordpress/icons';
23
+ import { privateApis as commandsPrivateApis } from '@wordpress/commands';
21
24
 
22
25
  /**
23
26
  * Internal dependencies
@@ -26,6 +29,8 @@ import { store as editSiteStore } from '../../store';
26
29
  import SiteIcon from '../site-icon';
27
30
  import { unlock } from '../../private-apis';
28
31
 
32
+ const { store: commandsStore } = unlock( commandsPrivateApis );
33
+
29
34
  const HUB_ANIMATION_DURATION = 0.3;
30
35
 
31
36
  const SiteHub = forwardRef( ( props, ref ) => {
@@ -33,28 +38,37 @@ const SiteHub = forwardRef( ( props, ref ) => {
33
38
  const { getCanvasMode, getSettings } = unlock(
34
39
  select( editSiteStore )
35
40
  );
41
+
36
42
  return {
37
43
  canvasMode: getCanvasMode(),
38
- dashboardLink: getSettings().__experimentalDashboardLink,
44
+ dashboardLink:
45
+ getSettings().__experimentalDashboardLink || 'index.php',
39
46
  };
40
47
  }, [] );
48
+ const { open: openCommandCenter } = useDispatch( commandsStore );
49
+
41
50
  const disableMotion = useReducedMotion();
42
51
  const { setCanvasMode } = unlock( useDispatch( editSiteStore ) );
43
52
  const { clearSelectedBlock } = useDispatch( blockEditorStore );
44
53
  const isBackToDashboardButton = canvasMode === 'view';
45
- const showLabels = canvasMode !== 'edit';
46
54
  const siteIconButtonProps = isBackToDashboardButton
47
55
  ? {
48
- href: dashboardLink || 'index.php',
56
+ href: dashboardLink,
49
57
  label: __( 'Go back to the Dashboard' ),
50
58
  }
51
59
  : {
52
- label: __( 'Open Navigation Sidebar' ),
53
- onClick: () => {
54
- clearSelectedBlock();
55
- setCanvasMode( 'view' );
60
+ href: dashboardLink, // We need to keep the `href` here so the component doesn't remount as a `<button>` and break the animation.
61
+ role: 'button',
62
+ label: __( 'Open Navigation' ),
63
+ onClick: ( event ) => {
64
+ event.preventDefault();
65
+ if ( canvasMode === 'edit' ) {
66
+ clearSelectedBlock();
67
+ setCanvasMode( 'view' );
68
+ }
56
69
  },
57
70
  };
71
+
58
72
  const siteTitle = useSelect(
59
73
  ( select ) =>
60
74
  select( coreStore ).getEntityRecord( 'root', 'site' )?.title,
@@ -66,40 +80,85 @@ const SiteHub = forwardRef( ( props, ref ) => {
66
80
  ref={ ref }
67
81
  { ...props }
68
82
  className={ classnames( 'edit-site-site-hub', props.className ) }
69
- layout
83
+ initial={ false }
70
84
  transition={ {
71
85
  type: 'tween',
72
86
  duration: disableMotion ? 0 : HUB_ANIMATION_DURATION,
73
87
  ease: 'easeOut',
74
88
  } }
75
89
  >
76
- <HStack
77
- justify="flex-start"
78
- className="edit-site-site-hub__text-content"
79
- spacing="0"
80
- >
81
- <motion.div
82
- className="edit-site-site-hub__view-mode-toggle-container"
83
- layout
84
- transition={ {
85
- type: 'tween',
86
- duration: disableMotion ? 0 : HUB_ANIMATION_DURATION,
87
- ease: 'easeOut',
88
- } }
90
+ <HStack justify="space-between" alignment="center">
91
+ <HStack
92
+ justify="flex-start"
93
+ className="edit-site-site-hub__text-content"
94
+ spacing="0"
89
95
  >
90
- <Button
91
- { ...siteIconButtonProps }
92
- className="edit-site-layout__view-mode-toggle"
96
+ <motion.div
97
+ className="edit-site-site-hub__view-mode-toggle-container"
98
+ layout
99
+ transition={ {
100
+ type: 'tween',
101
+ duration: disableMotion
102
+ ? 0
103
+ : HUB_ANIMATION_DURATION,
104
+ ease: 'easeOut',
105
+ } }
93
106
  >
94
- <SiteIcon className="edit-site-layout__view-mode-toggle-icon" />
95
- </Button>
96
- </motion.div>
107
+ <Button
108
+ { ...siteIconButtonProps }
109
+ className="edit-site-layout__view-mode-toggle"
110
+ >
111
+ <motion.div
112
+ initial={ false }
113
+ animate={ {
114
+ scale: canvasMode === 'view' ? 0.5 : 1,
115
+ } }
116
+ whileHover={ {
117
+ scale: canvasMode === 'view' ? 0.5 : 0.96,
118
+ } }
119
+ transition={ {
120
+ type: 'tween',
121
+ duration: disableMotion
122
+ ? 0
123
+ : HUB_ANIMATION_DURATION,
124
+ ease: 'easeOut',
125
+ } }
126
+ >
127
+ <SiteIcon className="edit-site-layout__view-mode-toggle-icon" />
128
+ </motion.div>
129
+ </Button>
130
+ </motion.div>
97
131
 
98
- { showLabels && (
99
- <div className="edit-site-site-hub__site-title">
100
- { decodeEntities( siteTitle ) }
101
- </div>
102
- ) }
132
+ <AnimatePresence>
133
+ <motion.div
134
+ layout={ canvasMode === 'edit' }
135
+ animate={ {
136
+ opacity: canvasMode === 'view' ? 1 : 0,
137
+ } }
138
+ exit={ {
139
+ opacity: 0,
140
+ } }
141
+ className="edit-site-site-hub__site-title"
142
+ transition={ {
143
+ type: 'tween',
144
+ duration: disableMotion ? 0 : 0.2,
145
+ ease: 'easeOut',
146
+ delay: canvasMode === 'view' ? 0.1 : 0,
147
+ } }
148
+ >
149
+ { decodeEntities( siteTitle ) }
150
+ </motion.div>
151
+ </AnimatePresence>
152
+ </HStack>
153
+ { window?.__experimentalEnableCommandCenter &&
154
+ canvasMode === 'view' && (
155
+ <Button
156
+ className="edit-site-site-hub_toggle-command-center"
157
+ icon={ search }
158
+ onClick={ () => openCommandCenter() }
159
+ label={ __( 'Open command center' ) }
160
+ />
161
+ ) }
103
162
  </HStack>
104
163
  </motion.div>
105
164
  );
@@ -30,3 +30,11 @@
30
30
  .edit-site-site-hub__site-title {
31
31
  margin-left: $grid-unit-05;
32
32
  }
33
+
34
+ .edit-site-site-hub_toggle-command-center {
35
+ color: $white;
36
+
37
+ &:hover {
38
+ color: $white;
39
+ }
40
+ }
@@ -14,22 +14,17 @@ import { store as coreDataStore } from '@wordpress/core-data';
14
14
 
15
15
  function SiteIcon( { className } ) {
16
16
  const { isRequestingSite, siteIconUrl } = useSelect( ( select ) => {
17
- const { getEntityRecord, isResolving } = select( coreDataStore );
18
- const siteData =
19
- getEntityRecord( 'root', '__unstableBase', undefined ) || {};
17
+ const { getEntityRecord } = select( coreDataStore );
18
+ const siteData = getEntityRecord( 'root', '__unstableBase', undefined );
20
19
 
21
20
  return {
22
- isRequestingSite: isResolving( 'core', 'getEntityRecord', [
23
- 'root',
24
- '__unstableBase',
25
- undefined,
26
- ] ),
27
- siteIconUrl: siteData.site_icon_url,
21
+ isRequestingSite: ! siteData,
22
+ siteIconUrl: siteData?.site_icon_url,
28
23
  };
29
24
  }, [] );
30
25
 
31
26
  if ( isRequestingSite && ! siteIconUrl ) {
32
- return null;
27
+ return <div className="edit-site-site-icon__image" />;
33
28
  }
34
29
 
35
30
  const icon = siteIconUrl ? (
@@ -41,7 +36,7 @@ function SiteIcon( { className } ) {
41
36
  ) : (
42
37
  <Icon
43
38
  className="edit-site-site-icon__icon"
44
- size="32px"
39
+ size="48px"
45
40
  icon={ wordpress }
46
41
  />
47
42
  );
@@ -3,8 +3,13 @@
3
3
  }
4
4
 
5
5
  .edit-site-site-icon__image {
6
- width: $grid-unit-40;
7
- height: $grid-unit-40;
8
- border-radius: $radius-block-ui;
6
+ width: 100%;
7
+ height: auto;
8
+ border-radius: $radius-block-ui * 2;
9
9
  object-fit: cover;
10
+ background: #333;
11
+
12
+ .edit-site-layout.is-full-canvas.is-edit-mode & {
13
+ border-radius: 0;
14
+ }
10
15
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { Modal } from '@wordpress/components';
4
+ import { Modal, Flex, FlexItem, Button } from '@wordpress/components';
5
5
  import { __ } from '@wordpress/i18n';
6
6
  import { useState, useEffect, useMemo } from '@wordpress/element';
7
7
  import {
@@ -32,12 +32,10 @@ function useFallbackTemplateContent( slug, isCustom = false ) {
32
32
  ignore_empty: true,
33
33
  } ),
34
34
  } ).then( ( { content } ) => setTemplateContent( content.raw ) );
35
- }, [ slug ] );
35
+ }, [ isCustom, slug ] );
36
36
  return templateContent;
37
37
  }
38
38
 
39
- const START_BLANK_TITLE = __( 'Start blank' );
40
-
41
39
  function useStartPatterns( fallbackContent ) {
42
40
  const { slug, patterns } = useSelect( ( select ) => {
43
41
  const { getEditedPostType, getEditedPostId } = select( editSiteStore );
@@ -72,13 +70,6 @@ function useStartPatterns( fallbackContent ) {
72
70
  .map( ( pattern ) => {
73
71
  return { ...pattern, blocks: parse( pattern.content ) };
74
72
  } ),
75
- {
76
- name: 'start-blank',
77
- blocks: parse(
78
- '<!-- wp:paragraph --><p></p><!-- /wp:paragraph -->'
79
- ),
80
- title: START_BLANK_TITLE,
81
- },
82
73
  ];
83
74
  }, [ fallbackContent, slug, patterns ] );
84
75
  }
@@ -87,25 +78,15 @@ function PatternSelection( { fallbackContent, onChoosePattern, postType } ) {
87
78
  const [ , , onChange ] = useEntityBlockEditor( 'postType', postType );
88
79
  const blockPatterns = useStartPatterns( fallbackContent );
89
80
  const shownBlockPatterns = useAsyncList( blockPatterns );
90
-
91
81
  return (
92
- <div
93
- className="edit-site-start-template-options__pattern-container"
94
- style={ {
95
- '--wp-edit-site-start-template-options-start-blank': `"${ START_BLANK_TITLE }"`,
82
+ <BlockPatternsList
83
+ blockPatterns={ blockPatterns }
84
+ shownPatterns={ shownBlockPatterns }
85
+ onClickPattern={ ( pattern, blocks ) => {
86
+ onChange( blocks, { selection: undefined } );
87
+ onChoosePattern();
96
88
  } }
97
- >
98
- <BlockPatternsList
99
- blockPatterns={ blockPatterns }
100
- shownPatterns={ shownBlockPatterns }
101
- onClickPattern={ ( pattern, blocks ) => {
102
- onChange( 'start-blank' === pattern.name ? [] : blocks, {
103
- selection: undefined,
104
- } );
105
- onChoosePattern();
106
- } }
107
- />
108
- </div>
89
+ />
109
90
  );
110
91
  }
111
92
 
@@ -121,6 +102,7 @@ function StartModal( { slug, isCustom, onClose, postType } ) {
121
102
  closeLabel={ __( 'Cancel' ) }
122
103
  focusOnMount="firstElement"
123
104
  onRequestClose={ onClose }
105
+ isFullScreen={ true }
124
106
  >
125
107
  <div className="edit-site-start-template-options__modal-content">
126
108
  <PatternSelection
@@ -133,6 +115,17 @@ function StartModal( { slug, isCustom, onClose, postType } ) {
133
115
  } }
134
116
  />
135
117
  </div>
118
+ <Flex
119
+ className="edit-site-start-template-options__modal__actions"
120
+ justify="flex-end"
121
+ expanded={ false }
122
+ >
123
+ <FlexItem>
124
+ <Button variant="tertiary" onClick={ onClose }>
125
+ { __( 'Skip' ) }
126
+ </Button>
127
+ </FlexItem>
128
+ </Flex>
136
129
  </Modal>
137
130
  );
138
131
  }
@@ -146,28 +139,28 @@ export default function StartTemplateOptions() {
146
139
  const [ modalState, setModalState ] = useState(
147
140
  START_TEMPLATE_MODAL_STATES.INITIAL
148
141
  );
149
- const { shouldOpenModel, slug, isCustom, postType } = useSelect(
142
+ const { shouldOpenModal, slug, isCustom, postType } = useSelect(
150
143
  ( select ) => {
151
144
  const { getEditedPostType, getEditedPostId } =
152
145
  select( editSiteStore );
153
146
  const _postType = getEditedPostType();
154
147
  const postId = getEditedPostId();
155
- const {
156
- __experimentalGetDirtyEntityRecords,
157
- getEditedEntityRecord,
158
- } = select( coreStore );
148
+ const { getEditedEntityRecord, hasEditsForEntityRecord } =
149
+ select( coreStore );
159
150
  const templateRecord = getEditedEntityRecord(
160
151
  'postType',
161
152
  _postType,
162
153
  postId
163
154
  );
164
-
165
- const hasDirtyEntityRecords =
166
- __experimentalGetDirtyEntityRecords().length > 0;
155
+ const hasEdits = hasEditsForEntityRecord(
156
+ 'postType',
157
+ _postType,
158
+ postId
159
+ );
167
160
 
168
161
  return {
169
- shouldOpenModel:
170
- ! hasDirtyEntityRecords &&
162
+ shouldOpenModal:
163
+ ! hasEdits &&
171
164
  '' === templateRecord.content &&
172
165
  'wp_template' === _postType &&
173
166
  ! select( preferencesStore ).get(
@@ -184,7 +177,7 @@ export default function StartTemplateOptions() {
184
177
 
185
178
  if (
186
179
  ( modalState === START_TEMPLATE_MODAL_STATES.INITIAL &&
187
- ! shouldOpenModel ) ||
180
+ ! shouldOpenModal ) ||
188
181
  modalState === START_TEMPLATE_MODAL_STATES.CLOSED
189
182
  ) {
190
183
  return null;
@@ -1,39 +1,48 @@
1
- .edit-site-start-template-options__modal.components-modal__frame {
2
- // To keep modal dimensions consistent as subsections are navigated, width
3
- // and height are used instead of max-(width/height).
4
- @include break-small() {
5
- width: calc(100% - #{ $grid-unit-20 * 2 });
6
- height: calc(100% - #{ $header-height * 2 });
1
+ .edit-site-start-template-options__modal {
2
+ .components-modal__content {
3
+ padding-bottom: 0;
7
4
  }
8
- @include break-medium() {
9
- width: 50%;
5
+
6
+ .components-modal__children-container {
7
+ display: flex;
8
+ height: 100%;
9
+ flex-direction: column;
10
+
11
+ .edit-site-start-template-options__modal__actions {
12
+ margin-top: auto;
13
+ position: sticky;
14
+ bottom: 0;
15
+ background-color: $white;
16
+ margin-left: - $grid-unit-40;
17
+ margin-right: - $grid-unit-40;
18
+ padding: $grid-unit-30 $grid-unit-40 $grid-unit-40;
19
+ border-top: 1px solid $gray-300;
20
+ z-index: z-index(".edit-site-start-template-options__modal__actions");
21
+ }
10
22
  }
11
- @include break-large() {
12
- height: fit-content;
23
+
24
+ .block-editor-block-patterns-list {
25
+ padding-bottom: $grid-unit-40;
13
26
  }
14
27
  }
15
28
 
16
29
  .edit-site-start-template-options__modal-content .block-editor-block-patterns-list {
17
- display: grid;
18
- width: 100%;
19
- margin-top: $grid-unit-05;
20
- gap: $grid-unit-30;
21
- grid-template-columns: repeat(auto-fit, minmax(min(100%/2, max(240px, 100%/10)), 1fr));
30
+ column-count: 2;
31
+ column-gap: $grid-unit-30;
22
32
 
23
- .block-editor-block-patterns-list__list-item {
24
- break-inside: avoid-column;
25
- margin-bottom: 0;
26
- width: 100%;
27
- aspect-ratio: 3/4;
33
+ // Small top padding required to avoid cutting off the visible outline when hovering items
34
+ padding-top: $border-width-focus-fallback;
28
35
 
29
- .block-editor-block-preview__container {
30
- height: 100%;
31
- }
36
+ @include break-medium() {
37
+ column-count: 3;
38
+ }
32
39
 
33
- .block-editor-block-preview__content {
34
- width: 100%;
35
- position: absolute;
36
- }
40
+ @include break-wide() {
41
+ column-count: 4;
42
+ }
43
+
44
+ .block-editor-block-patterns-list__list-item {
45
+ break-inside: avoid-column;
37
46
 
38
47
  .block-editor-block-patterns-list__item-title {
39
48
  display: none;
@@ -47,23 +56,4 @@
47
56
  box-shadow: 0 0 0 1px $gray-300;
48
57
  }
49
58
  }
50
-
51
- // The start blank pattern is the last and we are selecting it.
52
- .block-editor-block-patterns-list__list-item:nth-last-child(2) {
53
- .block-editor-block-preview__container {
54
- position: absolute;
55
- padding: 0;
56
- background: #f0f0f0;
57
- &::after {
58
- width: 100%;
59
- top: 50%;
60
- margin-top: -1em;
61
- content: var(--wp-edit-site-start-template-options-start-blank);
62
- text-align: center;
63
- }
64
- }
65
- iframe {
66
- display: none;
67
- }
68
- }
69
59
  }
@@ -7,14 +7,11 @@ import classnames from 'classnames';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import {
10
- Button,
11
10
  __unstableComposite as Composite,
12
11
  __unstableUseCompositeState as useCompositeState,
13
12
  __unstableCompositeItem as CompositeItem,
14
13
  Disabled,
15
14
  TabPanel,
16
- createSlotFill,
17
- __experimentalUseSlotFills as useSlotFills,
18
15
  } from '@wordpress/components';
19
16
  import { __, sprintf } from '@wordpress/i18n';
20
17
  import {
@@ -31,29 +28,19 @@ import {
31
28
  __unstableIframe as Iframe,
32
29
  } from '@wordpress/block-editor';
33
30
  import { useSelect } from '@wordpress/data';
34
- import { closeSmall } from '@wordpress/icons';
35
- import {
36
- useResizeObserver,
37
- useFocusOnMount,
38
- useFocusReturn,
39
- useMergeRefs,
40
- } from '@wordpress/compose';
31
+ import { useResizeObserver } from '@wordpress/compose';
41
32
  import { useMemo, memo } from '@wordpress/element';
42
- import { ESCAPE } from '@wordpress/keycodes';
43
33
 
44
34
  /**
45
35
  * Internal dependencies
46
36
  */
47
37
  import { unlock } from '../../private-apis';
38
+ import EditorCanvasContainer from '../editor-canvas-container';
48
39
 
49
40
  const { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(
50
41
  blockEditorPrivateApis
51
42
  );
52
43
 
53
- const SLOT_FILL_NAME = 'EditSiteStyleBook';
54
- const { Slot: StyleBookSlot, Fill: StyleBookFill } =
55
- createSlotFill( SLOT_FILL_NAME );
56
-
57
44
  // The content area of the Style Book is rendered within an iframe so that global styles
58
45
  // are applied to elements within the entire content area. To support elements that are
59
46
  // not part of the block previews, such as headings and layout for the block previews,
@@ -174,11 +161,8 @@ function getExamples() {
174
161
  return [ headingsExample, ...otherExamples ];
175
162
  }
176
163
 
177
- function StyleBook( { isSelected, onSelect, onClose } ) {
164
+ function StyleBook( { isSelected, onSelect } ) {
178
165
  const [ resizeObserver, sizes ] = useResizeObserver();
179
- const focusOnMountRef = useFocusOnMount( 'firstElement' );
180
- const sectionFocusReturnRef = useFocusReturn();
181
-
182
166
  const [ textColor ] = useGlobalStyle( 'color.text' );
183
167
  const [ backgroundColor ] = useGlobalStyle( 'color.background' );
184
168
  const examples = useMemo( getExamples, [] );
@@ -207,17 +191,9 @@ function StyleBook( { isSelected, onSelect, onClose } ) {
207
191
  [ originalSettings ]
208
192
  );
209
193
 
210
- function closeOnEscape( event ) {
211
- if ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {
212
- event.preventDefault();
213
- onClose();
214
- }
215
- }
216
-
217
194
  return (
218
- <StyleBookFill>
219
- { /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */ }
220
- <section
195
+ <EditorCanvasContainer closeButtonLabel={ __( 'Close Style Book' ) }>
196
+ <div
221
197
  className={ classnames( 'edit-site-style-book', {
222
198
  'is-wide': sizes.width > 600,
223
199
  } ) }
@@ -225,21 +201,8 @@ function StyleBook( { isSelected, onSelect, onClose } ) {
225
201
  color: textColor,
226
202
  background: backgroundColor,
227
203
  } }
228
- aria-label={ __( 'Style Book' ) }
229
- onKeyDown={ closeOnEscape }
230
- ref={ useMergeRefs( [
231
- sectionFocusReturnRef,
232
- focusOnMountRef,
233
- ] ) }
234
204
  >
235
205
  { resizeObserver }
236
- <Button
237
- className="edit-site-style-book__close-button"
238
- icon={ closeSmall }
239
- label={ __( 'Close Style Book' ) }
240
- onClick={ onClose }
241
- showTooltip={ false }
242
- />
243
206
  <TabPanel
244
207
  className="edit-site-style-book__tab-panel"
245
208
  tabs={ tabs }
@@ -282,8 +245,8 @@ function StyleBook( { isSelected, onSelect, onClose } ) {
282
245
  </Iframe>
283
246
  ) }
284
247
  </TabPanel>
285
- </section>
286
- </StyleBookFill>
248
+ </div>
249
+ </EditorCanvasContainer>
287
250
  );
288
251
  }
289
252
 
@@ -365,11 +328,4 @@ const Example = ( { composite, id, title, blocks, isSelected, onClick } ) => {
365
328
  );
366
329
  };
367
330
 
368
- function useHasStyleBook() {
369
- const fills = useSlotFills( SLOT_FILL_NAME );
370
- return !! fills?.length;
371
- }
372
-
373
- StyleBook.Slot = StyleBookSlot;
374
331
  export default StyleBook;
375
- export { useHasStyleBook };
@@ -1,21 +1,3 @@
1
- .edit-site-style-book {
2
- background: $white; // Fallback color, overridden by JavaScript.
3
- border-radius: $radius-block-ui;
4
- bottom: 0;
5
- left: 0;
6
- overflow: hidden;
7
- position: absolute;
8
- right: 0;
9
- top: 0;
10
- transition: all 0.3s; // Match .block-editor-iframe__body transition.
11
- }
12
-
13
- .edit-site-style-book__close-button {
14
- position: absolute;
15
- right: $grid-unit-10;
16
- top: math.div($grid-unit-60 - $button-size, 2); // ( tab height - button size ) / 2
17
- }
18
-
19
1
  .edit-site-style-book__tab-panel {
20
2
  .components-tab-panel__tabs {
21
3
  background: $white;
@@ -4,26 +4,30 @@
4
4
  import { useEffect } from '@wordpress/element';
5
5
  import { useSelect, useDispatch } from '@wordpress/data';
6
6
  import { store as coreDataStore } from '@wordpress/core-data';
7
+ import { privateApis as routerPrivateApis } from '@wordpress/router';
7
8
 
8
9
  /**
9
10
  * Internal dependencies
10
11
  */
11
- import { useLocation } from '../routes';
12
12
  import { store as editSiteStore } from '../../store';
13
+ import { unlock } from '../../private-apis';
14
+
15
+ const { useLocation } = unlock( routerPrivateApis );
13
16
 
14
17
  export default function useInitEditedEntityFromURL() {
15
18
  const { params: { postId, postType } = {} } = useLocation();
16
19
  const { isRequestingSite, homepageId, url } = useSelect( ( select ) => {
17
- const { getSite } = select( coreDataStore );
20
+ const { getSite, getUnstableBase } = select( coreDataStore );
18
21
  const siteData = getSite();
22
+ const base = getUnstableBase();
19
23
 
20
24
  return {
21
- isRequestingSite: ! siteData,
25
+ isRequestingSite: ! base,
22
26
  homepageId:
23
27
  siteData?.show_on_front === 'page'
24
28
  ? siteData.page_on_front
25
29
  : null,
26
- url: siteData?.url,
30
+ url: base?.home,
27
31
  };
28
32
  }, [] );
29
33
 
@@ -3,14 +3,16 @@
3
3
  */
4
4
  import { useEffect, useRef } from '@wordpress/element';
5
5
  import { useSelect, useDispatch } from '@wordpress/data';
6
+ import { privateApis as routerPrivateApis } from '@wordpress/router';
6
7
 
7
8
  /**
8
9
  * Internal dependencies
9
10
  */
10
11
  import { store as editSiteStore } from '../../store';
11
- import { useLocation, useHistory } from '../routes';
12
12
  import { unlock } from '../../private-apis';
13
13
 
14
+ const { useLocation, useHistory } = unlock( routerPrivateApis );
15
+
14
16
  export default function useSyncCanvasModeWithURL() {
15
17
  const history = useHistory();
16
18
  const { params } = useLocation();