@wordpress/edit-site 5.24.1 → 5.25.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 (347) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-template/add-custom-template-modal-content.js +2 -3
  3. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  4. package/build/components/block-editor/editor-canvas.js +48 -23
  5. package/build/components/block-editor/editor-canvas.js.map +1 -1
  6. package/build/components/block-editor/site-editor-canvas.js +5 -54
  7. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  8. package/build/components/block-editor/use-site-editor-settings.js +14 -5
  9. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  10. package/build/components/editor/index.js +6 -17
  11. package/build/components/editor/index.js.map +1 -1
  12. package/build/components/global-styles/font-library-modal/collection-font-variant.js +8 -7
  13. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  14. package/build/components/global-styles/font-library-modal/context.js +1 -1
  15. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  16. package/build/components/global-styles/font-library-modal/library-font-variant.js +8 -7
  17. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  18. package/build/components/global-styles/screen-revisions/get-revision-changes.js +146 -0
  19. package/build/components/global-styles/screen-revisions/get-revision-changes.js.map +1 -0
  20. package/build/components/global-styles/screen-revisions/index.js +6 -10
  21. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  22. package/build/components/global-styles/screen-revisions/revisions-buttons.js +63 -13
  23. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  24. package/build/components/header-edit-mode/document-tools/index.js +17 -10
  25. package/build/components/header-edit-mode/document-tools/index.js.map +1 -1
  26. package/build/components/header-edit-mode/index.js +16 -38
  27. package/build/components/header-edit-mode/index.js.map +1 -1
  28. package/build/components/header-edit-mode/more-menu/index.js +11 -9
  29. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  30. package/build/components/layout/index.js +9 -8
  31. package/build/components/layout/index.js.map +1 -1
  32. package/build/components/page/header.js +2 -1
  33. package/build/components/page/header.js.map +1 -1
  34. package/build/components/page-pages/index.js +31 -28
  35. package/build/components/page-pages/index.js.map +1 -1
  36. package/build/components/page-patterns/patterns-list.js +1 -2
  37. package/build/components/page-patterns/patterns-list.js.map +1 -1
  38. package/build/components/page-patterns/rename-menu-item.js +3 -0
  39. package/build/components/page-patterns/rename-menu-item.js.map +1 -1
  40. package/build/components/page-templates/dataviews-templates.js +18 -17
  41. package/build/components/page-templates/dataviews-templates.js.map +1 -1
  42. package/build/components/preferences-modal/index.js +36 -20
  43. package/build/components/preferences-modal/index.js.map +1 -1
  44. package/build/components/routes/use-title.js +3 -4
  45. package/build/components/routes/use-title.js.map +1 -1
  46. package/build/components/save-button/index.js +2 -1
  47. package/build/components/save-button/index.js.map +1 -1
  48. package/build/components/sidebar/index.js +26 -12
  49. package/build/components/sidebar/index.js.map +1 -1
  50. package/build/components/sidebar-dataviews/dataview-item.js +2 -10
  51. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
  52. package/build/components/sidebar-dataviews/default-views.js +2 -2
  53. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  54. package/build/components/sidebar-edit-mode/page-panels/index.js +9 -3
  55. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  56. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +1 -2
  57. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  58. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +3 -0
  59. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  60. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +1 -1
  61. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  62. package/build/components/sidebar-navigation-screen-template/home-template-details.js +3 -89
  63. package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  64. package/build/components/sidebar-navigation-screen-template/index.js +2 -1
  65. package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
  66. package/build/components/sidebar-navigation-screen-template/template-areas.js +117 -0
  67. package/build/components/sidebar-navigation-screen-template/template-areas.js.map +1 -0
  68. package/build/components/site-hub/index.js +6 -3
  69. package/build/components/site-hub/index.js.map +1 -1
  70. package/build/components/template-actions/rename-menu-item.js +3 -0
  71. package/build/components/template-actions/rename-menu-item.js.map +1 -1
  72. package/build/components/welcome-guide/styles.js +1 -1
  73. package/build/components/welcome-guide/styles.js.map +1 -1
  74. package/build/hooks/commands/use-common-commands.js +9 -1
  75. package/build/hooks/commands/use-common-commands.js.map +1 -1
  76. package/build/hooks/navigation-menu-edit.js +1 -1
  77. package/build/hooks/navigation-menu-edit.js.map +1 -1
  78. package/build/hooks/template-part-edit.js +1 -1
  79. package/build/hooks/template-part-edit.js.map +1 -1
  80. package/build/store/actions.js +15 -8
  81. package/build/store/actions.js.map +1 -1
  82. package/build/store/reducer.js +0 -18
  83. package/build/store/reducer.js.map +1 -1
  84. package/build/store/selectors.js +12 -6
  85. package/build/store/selectors.js.map +1 -1
  86. package/build/utils/constants.js +15 -1
  87. package/build/utils/constants.js.map +1 -1
  88. package/build-module/components/add-new-template/add-custom-template-modal-content.js +1 -1
  89. package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  90. package/build-module/components/block-editor/editor-canvas.js +50 -25
  91. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  92. package/build-module/components/block-editor/site-editor-canvas.js +8 -56
  93. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  94. package/build-module/components/block-editor/use-site-editor-settings.js +14 -5
  95. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  96. package/build-module/components/editor/index.js +9 -20
  97. package/build-module/components/editor/index.js.map +1 -1
  98. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +9 -7
  99. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  100. package/build-module/components/global-styles/font-library-modal/context.js +1 -1
  101. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  102. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +9 -7
  103. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  104. package/build-module/components/global-styles/screen-revisions/get-revision-changes.js +139 -0
  105. package/build-module/components/global-styles/screen-revisions/get-revision-changes.js.map +1 -0
  106. package/build-module/components/global-styles/screen-revisions/index.js +7 -11
  107. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  108. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +64 -14
  109. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  110. package/build-module/components/header-edit-mode/document-tools/index.js +17 -10
  111. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -1
  112. package/build-module/components/header-edit-mode/index.js +20 -42
  113. package/build-module/components/header-edit-mode/index.js.map +1 -1
  114. package/build-module/components/header-edit-mode/more-menu/index.js +12 -10
  115. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  116. package/build-module/components/layout/index.js +9 -8
  117. package/build-module/components/layout/index.js.map +1 -1
  118. package/build-module/components/page/header.js +2 -1
  119. package/build-module/components/page/header.js.map +1 -1
  120. package/build-module/components/page-pages/index.js +31 -28
  121. package/build-module/components/page-pages/index.js.map +1 -1
  122. package/build-module/components/page-patterns/patterns-list.js +1 -2
  123. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  124. package/build-module/components/page-patterns/rename-menu-item.js +3 -0
  125. package/build-module/components/page-patterns/rename-menu-item.js.map +1 -1
  126. package/build-module/components/page-templates/dataviews-templates.js +18 -17
  127. package/build-module/components/page-templates/dataviews-templates.js.map +1 -1
  128. package/build-module/components/preferences-modal/index.js +37 -21
  129. package/build-module/components/preferences-modal/index.js.map +1 -1
  130. package/build-module/components/routes/use-title.js +3 -4
  131. package/build-module/components/routes/use-title.js.map +1 -1
  132. package/build-module/components/save-button/index.js +2 -1
  133. package/build-module/components/save-button/index.js.map +1 -1
  134. package/build-module/components/sidebar/index.js +26 -12
  135. package/build-module/components/sidebar/index.js.map +1 -1
  136. package/build-module/components/sidebar-dataviews/dataview-item.js +2 -10
  137. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  138. package/build-module/components/sidebar-dataviews/default-views.js +2 -2
  139. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  140. package/build-module/components/sidebar-edit-mode/page-panels/index.js +9 -3
  141. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  142. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +2 -3
  143. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  144. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +3 -0
  145. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  146. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +1 -1
  147. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  148. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +5 -90
  149. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  150. package/build-module/components/sidebar-navigation-screen-template/index.js +2 -1
  151. package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
  152. package/build-module/components/sidebar-navigation-screen-template/template-areas.js +109 -0
  153. package/build-module/components/sidebar-navigation-screen-template/template-areas.js.map +1 -0
  154. package/build-module/components/site-hub/index.js +6 -3
  155. package/build-module/components/site-hub/index.js.map +1 -1
  156. package/build-module/components/template-actions/rename-menu-item.js +3 -0
  157. package/build-module/components/template-actions/rename-menu-item.js.map +1 -1
  158. package/build-module/components/welcome-guide/styles.js +1 -1
  159. package/build-module/components/welcome-guide/styles.js.map +1 -1
  160. package/build-module/hooks/commands/use-common-commands.js +9 -1
  161. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  162. package/build-module/hooks/navigation-menu-edit.js +1 -1
  163. package/build-module/hooks/navigation-menu-edit.js.map +1 -1
  164. package/build-module/hooks/template-part-edit.js +1 -1
  165. package/build-module/hooks/template-part-edit.js.map +1 -1
  166. package/build-module/store/actions.js +13 -6
  167. package/build-module/store/actions.js.map +1 -1
  168. package/build-module/store/reducer.js +0 -17
  169. package/build-module/store/reducer.js.map +1 -1
  170. package/build-module/store/selectors.js +10 -3
  171. package/build-module/store/selectors.js.map +1 -1
  172. package/build-module/utils/constants.js +8 -0
  173. package/build-module/utils/constants.js.map +1 -1
  174. package/build-style/style-rtl.css +302 -354
  175. package/build-style/style.css +302 -354
  176. package/package.json +42 -42
  177. package/src/components/add-new-template/add-custom-template-modal-content.js +1 -1
  178. package/src/components/block-editor/editor-canvas.js +63 -47
  179. package/src/components/block-editor/site-editor-canvas.js +32 -96
  180. package/src/components/block-editor/style.scss +6 -12
  181. package/src/components/block-editor/use-site-editor-settings.js +47 -36
  182. package/src/components/editor/index.js +10 -16
  183. package/src/components/global-styles/font-library-modal/collection-font-variant.js +12 -6
  184. package/src/components/global-styles/font-library-modal/context.js +1 -1
  185. package/src/components/global-styles/font-library-modal/library-font-variant.js +12 -6
  186. package/src/components/global-styles/screen-revisions/get-revision-changes.js +171 -0
  187. package/src/components/global-styles/screen-revisions/index.js +4 -11
  188. package/src/components/global-styles/screen-revisions/revisions-buttons.js +86 -17
  189. package/src/components/global-styles/screen-revisions/style.scss +10 -2
  190. package/src/components/global-styles/screen-revisions/test/get-revision-changes.js +191 -0
  191. package/src/components/header-edit-mode/document-tools/index.js +13 -13
  192. package/src/components/header-edit-mode/index.js +29 -63
  193. package/src/components/header-edit-mode/more-menu/index.js +18 -22
  194. package/src/components/header-edit-mode/style.scss +58 -33
  195. package/src/components/layout/index.js +21 -20
  196. package/src/components/list/style.scss +5 -0
  197. package/src/components/page/header.js +2 -1
  198. package/src/components/page/style.scss +2 -2
  199. package/src/components/page-pages/index.js +59 -35
  200. package/src/components/page-pages/style.scss +3 -1
  201. package/src/components/page-patterns/patterns-list.js +5 -2
  202. package/src/components/page-patterns/rename-menu-item.js +7 -1
  203. package/src/components/page-templates/dataviews-templates.js +28 -13
  204. package/src/components/preferences-modal/index.js +59 -33
  205. package/src/components/routes/use-title.js +3 -10
  206. package/src/components/save-button/index.js +1 -0
  207. package/src/components/sidebar/index.js +41 -24
  208. package/src/components/sidebar/style.scss +10 -12
  209. package/src/components/sidebar-dataviews/dataview-item.js +3 -7
  210. package/src/components/sidebar-dataviews/default-views.js +2 -2
  211. package/src/components/sidebar-edit-mode/page-panels/index.js +39 -25
  212. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +2 -2
  213. package/src/components/sidebar-edit-mode/page-panels/style.scss +1 -42
  214. package/src/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +7 -1
  215. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +1 -1
  216. package/src/components/sidebar-navigation-screen-template/home-template-details.js +1 -96
  217. package/src/components/sidebar-navigation-screen-template/index.js +8 -2
  218. package/src/components/sidebar-navigation-screen-template/template-areas.js +135 -0
  219. package/src/components/site-hub/index.js +4 -5
  220. package/src/components/template-actions/rename-menu-item.js +7 -1
  221. package/src/components/welcome-guide/styles.js +1 -1
  222. package/src/hooks/commands/use-common-commands.js +10 -5
  223. package/src/hooks/navigation-menu-edit.js +1 -1
  224. package/src/hooks/template-part-edit.js +1 -1
  225. package/src/store/actions.js +15 -5
  226. package/src/store/reducer.js +0 -18
  227. package/src/store/selectors.js +15 -3
  228. package/src/style.scss +1 -2
  229. package/src/utils/constants.js +8 -0
  230. package/build/components/dataviews/add-filter.js +0 -91
  231. package/build/components/dataviews/add-filter.js.map +0 -1
  232. package/build/components/dataviews/constants.js +0 -14
  233. package/build/components/dataviews/constants.js.map +0 -1
  234. package/build/components/dataviews/dataviews.js +0 -99
  235. package/build/components/dataviews/dataviews.js.map +0 -1
  236. package/build/components/dataviews/filter-summary.js +0 -62
  237. package/build/components/dataviews/filter-summary.js.map +0 -1
  238. package/build/components/dataviews/filters.js +0 -63
  239. package/build/components/dataviews/filters.js.map +0 -1
  240. package/build/components/dataviews/index.js +0 -21
  241. package/build/components/dataviews/index.js.map +0 -1
  242. package/build/components/dataviews/item-actions.js +0 -184
  243. package/build/components/dataviews/item-actions.js.map +0 -1
  244. package/build/components/dataviews/pagination.js +0 -123
  245. package/build/components/dataviews/pagination.js.map +0 -1
  246. package/build/components/dataviews/reset-filters.js +0 -33
  247. package/build/components/dataviews/reset-filters.js.map +0 -1
  248. package/build/components/dataviews/search.js +0 -51
  249. package/build/components/dataviews/search.js.map +0 -1
  250. package/build/components/dataviews/view-actions.js +0 -244
  251. package/build/components/dataviews/view-actions.js.map +0 -1
  252. package/build/components/dataviews/view-grid.js +0 -82
  253. package/build/components/dataviews/view-grid.js.map +0 -1
  254. package/build/components/dataviews/view-list.js +0 -399
  255. package/build/components/dataviews/view-list.js.map +0 -1
  256. package/build/components/dataviews/view-side-by-side.js +0 -20
  257. package/build/components/dataviews/view-side-by-side.js.map +0 -1
  258. package/build/components/header-edit-mode/document-actions/index.js +0 -172
  259. package/build/components/header-edit-mode/document-actions/index.js.map +0 -1
  260. package/build/components/page-content-focus-notifications/back-to-page-notification.js +0 -61
  261. package/build/components/page-content-focus-notifications/back-to-page-notification.js.map +0 -1
  262. package/build/components/page-content-focus-notifications/edit-template-notification.js +0 -102
  263. package/build/components/page-content-focus-notifications/edit-template-notification.js.map +0 -1
  264. package/build/components/page-content-focus-notifications/index.js +0 -22
  265. package/build/components/page-content-focus-notifications/index.js.map +0 -1
  266. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +0 -101
  267. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +0 -1
  268. package/build/components/sidebar-edit-mode/page-panels/hooks.js +0 -79
  269. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +0 -1
  270. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +0 -48
  271. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +0 -1
  272. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js +0 -84
  273. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +0 -1
  274. package/build/utils/use-debounced-input.js +0 -22
  275. package/build/utils/use-debounced-input.js.map +0 -1
  276. package/build-module/components/dataviews/add-filter.js +0 -84
  277. package/build-module/components/dataviews/add-filter.js.map +0 -1
  278. package/build-module/components/dataviews/constants.js +0 -6
  279. package/build-module/components/dataviews/constants.js.map +0 -1
  280. package/build-module/components/dataviews/dataviews.js +0 -90
  281. package/build-module/components/dataviews/dataviews.js.map +0 -1
  282. package/build-module/components/dataviews/filter-summary.js +0 -55
  283. package/build-module/components/dataviews/filter-summary.js.map +0 -1
  284. package/build-module/components/dataviews/filters.js +0 -55
  285. package/build-module/components/dataviews/filters.js.map +0 -1
  286. package/build-module/components/dataviews/index.js +0 -2
  287. package/build-module/components/dataviews/index.js.map +0 -1
  288. package/build-module/components/dataviews/item-actions.js +0 -177
  289. package/build-module/components/dataviews/item-actions.js.map +0 -1
  290. package/build-module/components/dataviews/pagination.js +0 -115
  291. package/build-module/components/dataviews/pagination.js.map +0 -1
  292. package/build-module/components/dataviews/reset-filters.js +0 -26
  293. package/build-module/components/dataviews/reset-filters.js.map +0 -1
  294. package/build-module/components/dataviews/search.js +0 -43
  295. package/build-module/components/dataviews/search.js.map +0 -1
  296. package/build-module/components/dataviews/view-actions.js +0 -237
  297. package/build-module/components/dataviews/view-actions.js.map +0 -1
  298. package/build-module/components/dataviews/view-grid.js +0 -74
  299. package/build-module/components/dataviews/view-grid.js.map +0 -1
  300. package/build-module/components/dataviews/view-list.js +0 -390
  301. package/build-module/components/dataviews/view-list.js.map +0 -1
  302. package/build-module/components/dataviews/view-side-by-side.js +0 -12
  303. package/build-module/components/dataviews/view-side-by-side.js.map +0 -1
  304. package/build-module/components/header-edit-mode/document-actions/index.js +0 -164
  305. package/build-module/components/header-edit-mode/document-actions/index.js.map +0 -1
  306. package/build-module/components/page-content-focus-notifications/back-to-page-notification.js +0 -54
  307. package/build-module/components/page-content-focus-notifications/back-to-page-notification.js.map +0 -1
  308. package/build-module/components/page-content-focus-notifications/edit-template-notification.js +0 -96
  309. package/build-module/components/page-content-focus-notifications/edit-template-notification.js.map +0 -1
  310. package/build-module/components/page-content-focus-notifications/index.js +0 -14
  311. package/build-module/components/page-content-focus-notifications/index.js.map +0 -1
  312. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +0 -93
  313. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +0 -1
  314. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +0 -69
  315. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +0 -1
  316. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +0 -41
  317. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +0 -1
  318. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js +0 -77
  319. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +0 -1
  320. package/build-module/utils/use-debounced-input.js +0 -15
  321. package/build-module/utils/use-debounced-input.js.map +0 -1
  322. package/src/components/dataviews/README.md +0 -191
  323. package/src/components/dataviews/add-filter.js +0 -108
  324. package/src/components/dataviews/constants.js +0 -5
  325. package/src/components/dataviews/dataviews.js +0 -99
  326. package/src/components/dataviews/filter-summary.js +0 -79
  327. package/src/components/dataviews/filters.js +0 -65
  328. package/src/components/dataviews/index.js +0 -1
  329. package/src/components/dataviews/item-actions.js +0 -208
  330. package/src/components/dataviews/pagination.js +0 -144
  331. package/src/components/dataviews/reset-filters.js +0 -26
  332. package/src/components/dataviews/search.js +0 -42
  333. package/src/components/dataviews/style.scss +0 -131
  334. package/src/components/dataviews/view-actions.js +0 -319
  335. package/src/components/dataviews/view-grid.js +0 -90
  336. package/src/components/dataviews/view-list.js +0 -512
  337. package/src/components/dataviews/view-side-by-side.js +0 -9
  338. package/src/components/header-edit-mode/document-actions/index.js +0 -204
  339. package/src/components/header-edit-mode/document-actions/style.scss +0 -145
  340. package/src/components/page-content-focus-notifications/back-to-page-notification.js +0 -58
  341. package/src/components/page-content-focus-notifications/edit-template-notification.js +0 -104
  342. package/src/components/page-content-focus-notifications/index.js +0 -14
  343. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +0 -108
  344. package/src/components/sidebar-edit-mode/page-panels/hooks.js +0 -99
  345. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +0 -45
  346. package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +0 -83
  347. package/src/utils/use-debounced-input.js +0 -18
@@ -1,145 +0,0 @@
1
- .edit-site-document-actions {
2
- display: flex;
3
- align-items: center;
4
- height: $button-size;
5
- justify-content: space-between;
6
- // Flex items will, by default, refuse to shrink below a minimum
7
- // intrinsic width. In order to shrink this flexbox item, and
8
- // subsequently truncate child text, we set an explicit min-width.
9
- // See https://dev.w3.org/csswg/css-flexbox/#min-size-auto
10
- min-width: 0;
11
- background: $gray-100;
12
- border-radius: $grid-unit-05;
13
- width: min(100%, 450px);
14
-
15
- // Make the document title shorter in top-toolbar mode, as it has to be covered.
16
- .has-fixed-toolbar & {
17
- width: min(100%, 380px);
18
- }
19
-
20
- &:hover {
21
- background-color: $gray-200;
22
- }
23
-
24
- .components-button {
25
- border-radius: $grid-unit-05;
26
-
27
- &:hover {
28
- color: var(--wp-block-synced-color);
29
- background: $gray-200;
30
- }
31
- }
32
-
33
- @include break-large() {
34
- width: min(100%, 450px);
35
- }
36
-
37
- &.is-synced-entity {
38
- .edit-site-document-actions__title {
39
- color: var(--wp-block-synced-color);
40
- h1 {
41
- color: var(--wp-block-synced-color);
42
- }
43
- }
44
- }
45
- }
46
-
47
- .edit-site-document-actions__command {
48
- flex-grow: 1;
49
- color: var(--wp-block-synced-color);
50
- overflow: hidden;
51
- }
52
-
53
- .edit-site-document-actions__title {
54
- flex-grow: 1;
55
- overflow: hidden;
56
-
57
- // Offset the layout based on the width of the ⌘K label. This ensures the title is centrally aligned.
58
- @include break-small() {
59
- padding-left: $grid-unit-40;
60
- }
61
-
62
- &:hover {
63
- color: var(--wp-block-synced-color);
64
- }
65
-
66
- .block-editor-block-icon {
67
- min-width: $grid-unit-30;
68
- flex-shrink: 0;
69
- }
70
-
71
- h1 {
72
- white-space: nowrap;
73
- overflow: hidden;
74
- text-overflow: ellipsis;
75
- max-width: 50%;
76
- }
77
-
78
- .edit-site-document-actions.is-page & {
79
- color: $gray-800;
80
-
81
- h1 {
82
- color: $gray-800;
83
- }
84
- }
85
-
86
- .edit-site-document-actions.is-animated & {
87
- animation: edit-site-document-actions__slide-in-left 0.3s;
88
- @include reduce-motion("animation");
89
- }
90
-
91
- .edit-site-document-actions.is-animated.is-page & {
92
- animation: edit-site-document-actions__slide-in-right 0.3s;
93
- @include reduce-motion("animation");
94
- }
95
- }
96
-
97
- .edit-site-document-actions__shortcut {
98
- color: $gray-800;
99
- min-width: $grid-unit-40;
100
- display: none;
101
- @include break-small() {
102
- display: initial;
103
- }
104
- }
105
-
106
- .edit-site-document-actions__back.components-button.has-icon.has-text {
107
- min-width: $button-size;
108
- flex-shrink: 0;
109
- color: $gray-700;
110
- gap: 0;
111
- z-index: 1;
112
- position: absolute;
113
-
114
- &:hover {
115
- color: currentColor;
116
- background-color: transparent;
117
- }
118
-
119
- .edit-site-document-actions.is-animated & {
120
- animation: edit-site-document-actions__slide-in-left 0.3s;
121
- @include reduce-motion("animation");
122
- }
123
- }
124
-
125
- @keyframes edit-site-document-actions__slide-in-right {
126
- from {
127
- transform: translateX(-15%);
128
- opacity: 0;
129
- }
130
- to {
131
- transform: translateX(0);
132
- opacity: 1;
133
- }
134
- }
135
-
136
- @keyframes edit-site-document-actions__slide-in-left {
137
- from {
138
- transform: translateX(15%);
139
- opacity: 0;
140
- }
141
- to {
142
- transform: translateX(0);
143
- opacity: 1;
144
- }
145
- }
@@ -1,58 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect, useDispatch } from '@wordpress/data';
5
- import { useEffect, useRef } from '@wordpress/element';
6
- import { store as noticesStore } from '@wordpress/notices';
7
- import { __ } from '@wordpress/i18n';
8
- import { store as editorStore } from '@wordpress/editor';
9
-
10
- /**
11
- * Internal dependencies
12
- */
13
- import { store as editSiteStore } from '../../store';
14
-
15
- /**
16
- * Component that displays a 'You are editing a template' notification when the
17
- * user switches from focusing on editing page content to editing a template.
18
- */
19
- export default function BackToPageNotification() {
20
- useBackToPageNotification();
21
- return null;
22
- }
23
-
24
- /**
25
- * Hook that displays a 'You are editing a template' notification when the user
26
- * switches from focusing on editing page content to editing a template.
27
- */
28
- export function useBackToPageNotification() {
29
- const renderingMode = useSelect(
30
- ( select ) => select( editorStore ).getRenderingMode(),
31
- []
32
- );
33
- const { isPage } = useSelect( editSiteStore );
34
- const { setRenderingMode } = useDispatch( editorStore );
35
- const { createInfoNotice } = useDispatch( noticesStore );
36
-
37
- const alreadySeen = useRef( false );
38
-
39
- useEffect( () => {
40
- if (
41
- isPage() &&
42
- ! alreadySeen.current &&
43
- renderingMode === 'template-only'
44
- ) {
45
- createInfoNotice( __( 'You are editing a template.' ), {
46
- isDismissible: true,
47
- type: 'snackbar',
48
- actions: [
49
- {
50
- label: __( 'Back to page' ),
51
- onClick: () => setRenderingMode( 'template-locked' ),
52
- },
53
- ],
54
- } );
55
- alreadySeen.current = true;
56
- }
57
- }, [ isPage, renderingMode, createInfoNotice, setRenderingMode ] );
58
- }
@@ -1,104 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect, useDispatch } from '@wordpress/data';
5
- import { useEffect, useState, useRef } from '@wordpress/element';
6
- import { store as noticesStore } from '@wordpress/notices';
7
- import { __ } from '@wordpress/i18n';
8
- import { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';
9
- import { store as editorStore } from '@wordpress/editor';
10
-
11
- /**
12
- * Component that:
13
- *
14
- * - Displays a 'Edit your template to edit this block' notification when the
15
- * user is focusing on editing page content and clicks on a disabled template
16
- * block.
17
- * - Displays a 'Edit your template to edit this block' dialog when the user
18
- * is focusing on editing page conetnt and double clicks on a disabled
19
- * template block.
20
- *
21
- * @param {Object} props
22
- * @param {import('react').RefObject<HTMLElement>} props.contentRef Ref to the block
23
- * editor iframe canvas.
24
- */
25
- export default function EditTemplateNotification( { contentRef } ) {
26
- const renderingMode = useSelect(
27
- ( select ) => select( editorStore ).getRenderingMode(),
28
- []
29
- );
30
- const { getNotices } = useSelect( noticesStore );
31
-
32
- const { createInfoNotice, removeNotice } = useDispatch( noticesStore );
33
- const { setRenderingMode } = useDispatch( editorStore );
34
-
35
- const [ isDialogOpen, setIsDialogOpen ] = useState( false );
36
-
37
- const lastNoticeId = useRef( 0 );
38
-
39
- useEffect( () => {
40
- const handleClick = async ( event ) => {
41
- if ( renderingMode === 'template-only' ) {
42
- return;
43
- }
44
- if ( ! event.target.classList.contains( 'is-root-container' ) ) {
45
- return;
46
- }
47
- const isNoticeAlreadyShowing = getNotices().some(
48
- ( notice ) => notice.id === lastNoticeId.current
49
- );
50
- if ( isNoticeAlreadyShowing ) {
51
- return;
52
- }
53
- const { notice } = await createInfoNotice(
54
- __( 'Edit your template to edit this block.' ),
55
- {
56
- isDismissible: true,
57
- type: 'snackbar',
58
- actions: [
59
- {
60
- label: __( 'Edit template' ),
61
- onClick: () => setRenderingMode( 'template-only' ),
62
- },
63
- ],
64
- }
65
- );
66
- lastNoticeId.current = notice.id;
67
- };
68
-
69
- const handleDblClick = ( event ) => {
70
- if ( renderingMode === 'template-only' ) {
71
- return;
72
- }
73
- if ( ! event.target.classList.contains( 'is-root-container' ) ) {
74
- return;
75
- }
76
- if ( lastNoticeId.current ) {
77
- removeNotice( lastNoticeId.current );
78
- }
79
- setIsDialogOpen( true );
80
- };
81
-
82
- const canvas = contentRef.current;
83
- canvas?.addEventListener( 'click', handleClick );
84
- canvas?.addEventListener( 'dblclick', handleDblClick );
85
- return () => {
86
- canvas?.removeEventListener( 'click', handleClick );
87
- canvas?.removeEventListener( 'dblclick', handleDblClick );
88
- };
89
- }, [ lastNoticeId, renderingMode, contentRef.current ] );
90
-
91
- return (
92
- <ConfirmDialog
93
- isOpen={ isDialogOpen }
94
- confirmButtonText={ __( 'Edit template' ) }
95
- onConfirm={ () => {
96
- setIsDialogOpen( false );
97
- setRenderingMode( 'template-only' );
98
- } }
99
- onCancel={ () => setIsDialogOpen( false ) }
100
- >
101
- { __( 'Edit your template to edit this block.' ) }
102
- </ConfirmDialog>
103
- );
104
- }
@@ -1,14 +0,0 @@
1
- /**
2
- * Internal dependencies
3
- */
4
- import EditTemplateNotification from './edit-template-notification';
5
- import BackToPageNotification from './back-to-page-notification';
6
-
7
- export default function PageContentFocusNotifications( { contentRef } ) {
8
- return (
9
- <>
10
- <EditTemplateNotification contentRef={ contentRef } />
11
- <BackToPageNotification />
12
- </>
13
- );
14
- }
@@ -1,108 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect, useDispatch } from '@wordpress/data';
5
- import { decodeEntities } from '@wordpress/html-entities';
6
- import { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';
7
- import { __ } from '@wordpress/i18n';
8
- import { store as coreStore } from '@wordpress/core-data';
9
- import { check } from '@wordpress/icons';
10
- import {
11
- privateApis as editorPrivateApis,
12
- store as editorStore,
13
- } from '@wordpress/editor';
14
-
15
- /**
16
- * Internal dependencies
17
- */
18
- import { store as editSiteStore } from '../../../store';
19
- import SwapTemplateButton from './swap-template-button';
20
- import ResetDefaultTemplate from './reset-default-template';
21
- import { unlock } from '../../../lock-unlock';
22
-
23
- const { PostPanelRow } = unlock( editorPrivateApis );
24
-
25
- const POPOVER_PROPS = {
26
- className: 'edit-site-page-panels-edit-template__dropdown',
27
- placement: 'bottom-start',
28
- };
29
-
30
- export default function EditTemplate() {
31
- const { hasResolved, template, isTemplateHidden } = useSelect(
32
- ( select ) => {
33
- const { getEditedPostContext, getEditedPostType, getEditedPostId } =
34
- select( editSiteStore );
35
- const { getRenderingMode } = unlock( select( editorStore ) );
36
- const { getEditedEntityRecord, hasFinishedResolution } =
37
- select( coreStore );
38
- const _context = getEditedPostContext();
39
- const _postType = getEditedPostType();
40
- const queryArgs = [ 'postType', _postType, getEditedPostId() ];
41
- return {
42
- context: _context,
43
- hasResolved: hasFinishedResolution(
44
- 'getEditedEntityRecord',
45
- queryArgs
46
- ),
47
- template: getEditedEntityRecord( ...queryArgs ),
48
- isTemplateHidden: getRenderingMode() === 'post-only',
49
- postType: _postType,
50
- };
51
- },
52
- []
53
- );
54
-
55
- const { setRenderingMode } = useDispatch( editorStore );
56
-
57
- if ( ! hasResolved ) {
58
- return null;
59
- }
60
-
61
- return (
62
- <PostPanelRow label={ __( 'Template' ) }>
63
- <DropdownMenu
64
- popoverProps={ POPOVER_PROPS }
65
- focusOnMount
66
- toggleProps={ {
67
- variant: 'tertiary',
68
- className: 'edit-site-summary-field__trigger',
69
- } }
70
- label={ __( 'Template options' ) }
71
- text={ decodeEntities( template.title ) }
72
- icon={ null }
73
- >
74
- { ( { onClose } ) => (
75
- <>
76
- <MenuGroup>
77
- <MenuItem
78
- onClick={ () => {
79
- setRenderingMode( 'template-only' );
80
- onClose();
81
- } }
82
- >
83
- { __( 'Edit template' ) }
84
- </MenuItem>
85
- <SwapTemplateButton onClick={ onClose } />
86
- </MenuGroup>
87
- <ResetDefaultTemplate onClick={ onClose } />
88
- <MenuGroup>
89
- <MenuItem
90
- icon={ ! isTemplateHidden ? check : undefined }
91
- isPressed={ ! isTemplateHidden }
92
- onClick={ () => {
93
- setRenderingMode(
94
- isTemplateHidden
95
- ? 'template-locked'
96
- : 'post-only'
97
- );
98
- } }
99
- >
100
- { __( 'Template preview' ) }
101
- </MenuItem>
102
- </MenuGroup>
103
- </>
104
- ) }
105
- </DropdownMenu>
106
- </PostPanelRow>
107
- );
108
- }
@@ -1,99 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect } from '@wordpress/data';
5
- import { useMemo } from '@wordpress/element';
6
- import { store as coreStore } from '@wordpress/core-data';
7
-
8
- /**
9
- * Internal dependencies
10
- */
11
- import { store as editSiteStore } from '../../../store';
12
- import { TEMPLATE_POST_TYPE } from '../../../utils/constants';
13
-
14
- export function useEditedPostContext() {
15
- return useSelect(
16
- ( select ) => select( editSiteStore ).getEditedPostContext(),
17
- []
18
- );
19
- }
20
-
21
- export function useAllowSwitchingTemplates() {
22
- const { postId } = useEditedPostContext();
23
- return useSelect(
24
- ( select ) => {
25
- const { getEntityRecord, getEntityRecords } = select( coreStore );
26
- const siteSettings = getEntityRecord( 'root', 'site' );
27
- const templates = getEntityRecords(
28
- 'postType',
29
- TEMPLATE_POST_TYPE,
30
- { per_page: -1 }
31
- );
32
- const isPostsPage = +postId === siteSettings?.page_for_posts;
33
- // If current page is set front page or posts page, we also need
34
- // to check if the current theme has a template for it. If not
35
- const isFrontPage =
36
- +postId === siteSettings?.page_on_front &&
37
- templates?.some( ( { slug } ) => slug === 'front-page' );
38
- return ! isPostsPage && ! isFrontPage;
39
- },
40
- [ postId ]
41
- );
42
- }
43
-
44
- function useTemplates() {
45
- return useSelect(
46
- ( select ) =>
47
- select( coreStore ).getEntityRecords(
48
- 'postType',
49
- TEMPLATE_POST_TYPE,
50
- {
51
- per_page: -1,
52
- post_type: 'page',
53
- }
54
- ),
55
- []
56
- );
57
- }
58
-
59
- export function useAvailableTemplates() {
60
- const currentTemplateSlug = useCurrentTemplateSlug();
61
- const allowSwitchingTemplate = useAllowSwitchingTemplates();
62
- const templates = useTemplates();
63
- return useMemo(
64
- () =>
65
- allowSwitchingTemplate &&
66
- templates?.filter(
67
- ( template ) =>
68
- template.is_custom &&
69
- template.slug !== currentTemplateSlug &&
70
- !! template.content.raw // Skip empty templates.
71
- ),
72
- [ templates, currentTemplateSlug, allowSwitchingTemplate ]
73
- );
74
- }
75
-
76
- export function useCurrentTemplateSlug() {
77
- const { postType, postId } = useEditedPostContext();
78
- const templates = useTemplates();
79
- const entityTemplate = useSelect(
80
- ( select ) => {
81
- const post = select( coreStore ).getEditedEntityRecord(
82
- 'postType',
83
- postType,
84
- postId
85
- );
86
- return post?.template;
87
- },
88
- [ postType, postId ]
89
- );
90
-
91
- if ( ! entityTemplate ) {
92
- return;
93
- }
94
- // If a page has a `template` set and is not included in the list
95
- // of the theme's templates, do not return it, in order to resolve
96
- // to the current theme's default template.
97
- return templates?.find( ( template ) => template.slug === entityTemplate )
98
- ?.slug;
99
- }
@@ -1,45 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { MenuGroup, MenuItem } from '@wordpress/components';
5
- import { __ } from '@wordpress/i18n';
6
- import { useDispatch } from '@wordpress/data';
7
- import { store as coreStore } from '@wordpress/core-data';
8
-
9
- /**
10
- * Internal dependencies
11
- */
12
- import {
13
- useAllowSwitchingTemplates,
14
- useCurrentTemplateSlug,
15
- useEditedPostContext,
16
- } from './hooks';
17
-
18
- export default function ResetDefaultTemplate( { onClick } ) {
19
- const currentTemplateSlug = useCurrentTemplateSlug();
20
- const allowSwitchingTemplate = useAllowSwitchingTemplates();
21
- const { postType, postId } = useEditedPostContext();
22
- const { editEntityRecord } = useDispatch( coreStore );
23
- // The default template in a post is indicated by an empty string.
24
- if ( ! currentTemplateSlug || ! allowSwitchingTemplate ) {
25
- return null;
26
- }
27
- return (
28
- <MenuGroup>
29
- <MenuItem
30
- onClick={ async () => {
31
- editEntityRecord(
32
- 'postType',
33
- postType,
34
- postId,
35
- { template: '' },
36
- { undoIgnore: true }
37
- );
38
- onClick();
39
- } }
40
- >
41
- { __( 'Use default template' ) }
42
- </MenuItem>
43
- </MenuGroup>
44
- );
45
- }
@@ -1,83 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useMemo, useState, useCallback } from '@wordpress/element';
5
- import { decodeEntities } from '@wordpress/html-entities';
6
- import { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';
7
- import { MenuItem, Modal } from '@wordpress/components';
8
- import { __ } from '@wordpress/i18n';
9
- import { useDispatch } from '@wordpress/data';
10
- import { store as coreStore } from '@wordpress/core-data';
11
- import { parse } from '@wordpress/blocks';
12
- import { useAsyncList } from '@wordpress/compose';
13
-
14
- /**
15
- * Internal dependencies
16
- */
17
- import { useAvailableTemplates, useEditedPostContext } from './hooks';
18
-
19
- export default function SwapTemplateButton( { onClick } ) {
20
- const [ showModal, setShowModal ] = useState( false );
21
- const availableTemplates = useAvailableTemplates();
22
- const onClose = useCallback( () => {
23
- setShowModal( false );
24
- }, [] );
25
- const { postType, postId } = useEditedPostContext();
26
- const { editEntityRecord } = useDispatch( coreStore );
27
- if ( ! availableTemplates?.length ) {
28
- return null;
29
- }
30
- const onTemplateSelect = async ( template ) => {
31
- editEntityRecord(
32
- 'postType',
33
- postType,
34
- postId,
35
- { template: template.name },
36
- { undoIgnore: true }
37
- );
38
- onClose(); // Close the template suggestions modal first.
39
- onClick();
40
- };
41
- return (
42
- <>
43
- <MenuItem onClick={ () => setShowModal( true ) }>
44
- { __( 'Swap template' ) }
45
- </MenuItem>
46
- { showModal && (
47
- <Modal
48
- title={ __( 'Choose a template' ) }
49
- onRequestClose={ onClose }
50
- overlayClassName="edit-site-swap-template-modal"
51
- isFullScreen
52
- >
53
- <div className="edit-site-page-panels__swap-template__modal-content">
54
- <TemplatesList onSelect={ onTemplateSelect } />
55
- </div>
56
- </Modal>
57
- ) }
58
- </>
59
- );
60
- }
61
-
62
- function TemplatesList( { onSelect } ) {
63
- const availableTemplates = useAvailableTemplates();
64
- const templatesAsPatterns = useMemo(
65
- () =>
66
- availableTemplates.map( ( template ) => ( {
67
- name: template.slug,
68
- blocks: parse( template.content.raw ),
69
- title: decodeEntities( template.title.rendered ),
70
- id: template.id,
71
- } ) ),
72
- [ availableTemplates ]
73
- );
74
- const shownTemplates = useAsyncList( templatesAsPatterns );
75
- return (
76
- <BlockPatternsList
77
- label={ __( 'Templates' ) }
78
- blockPatterns={ templatesAsPatterns }
79
- shownPatterns={ shownTemplates }
80
- onClickPattern={ onSelect }
81
- />
82
- );
83
- }
@@ -1,18 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useEffect, useState } from '@wordpress/element';
5
- import { useDebounce } from '@wordpress/compose';
6
-
7
- export default function useDebouncedInput( defaultValue = '' ) {
8
- const [ input, setInput ] = useState( defaultValue );
9
- const [ debouncedInput, setDebouncedState ] = useState( defaultValue );
10
-
11
- const setDebouncedInput = useDebounce( setDebouncedState, 250 );
12
-
13
- useEffect( () => {
14
- setDebouncedInput( input );
15
- }, [ input ] );
16
-
17
- return [ input, setInput, debouncedInput ];
18
- }