@wordpress/edit-site 5.24.0 → 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,512 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import {
5
- getCoreRowModel,
6
- getFilteredRowModel,
7
- getSortedRowModel,
8
- getPaginationRowModel,
9
- useReactTable,
10
- flexRender,
11
- } from '@tanstack/react-table';
12
-
13
- /**
14
- * WordPress dependencies
15
- */
16
- import { __ } from '@wordpress/i18n';
17
- import { useAsyncList } from '@wordpress/compose';
18
- import {
19
- chevronDown,
20
- chevronUp,
21
- unseen,
22
- check,
23
- arrowUp,
24
- arrowDown,
25
- chevronRightSmall,
26
- funnel,
27
- } from '@wordpress/icons';
28
- import {
29
- Button,
30
- Icon,
31
- privateApis as componentsPrivateApis,
32
- } from '@wordpress/components';
33
- import { useMemo, Children, Fragment } from '@wordpress/element';
34
-
35
- /**
36
- * Internal dependencies
37
- */
38
- import { unlock } from '../../lock-unlock';
39
- import ItemActions from './item-actions';
40
- import { ENUMERATION_TYPE, OPERATOR_IN } from './constants';
41
-
42
- const {
43
- DropdownMenuV2: DropdownMenu,
44
- DropdownMenuGroupV2: DropdownMenuGroup,
45
- DropdownMenuItemV2: DropdownMenuItem,
46
- DropdownMenuSeparatorV2: DropdownMenuSeparator,
47
- DropdownSubMenuV2: DropdownSubMenu,
48
- DropdownSubMenuTriggerV2: DropdownSubMenuTrigger,
49
- } = unlock( componentsPrivateApis );
50
-
51
- const EMPTY_OBJECT = {};
52
- const sortingItemsInfo = {
53
- asc: { icon: arrowUp, label: __( 'Sort ascending' ) },
54
- desc: { icon: arrowDown, label: __( 'Sort descending' ) },
55
- };
56
- const sortIcons = { asc: chevronUp, desc: chevronDown };
57
-
58
- function HeaderMenu( { dataView, header } ) {
59
- if ( header.isPlaceholder ) {
60
- return null;
61
- }
62
- const text = flexRender(
63
- header.column.columnDef.header,
64
- header.getContext()
65
- );
66
- const isSortable = !! header.column.getCanSort();
67
- const isHidable = !! header.column.getCanHide();
68
- if ( ! isSortable && ! isHidable ) {
69
- return text;
70
- }
71
- const sortedDirection = header.column.getIsSorted();
72
-
73
- let filter;
74
- if ( header.column.columnDef.type === ENUMERATION_TYPE ) {
75
- filter = {
76
- field: header.column.columnDef.id,
77
- elements: header.column.columnDef.elements || [],
78
- };
79
- }
80
- const isFilterable = !! filter;
81
-
82
- return (
83
- <DropdownMenu
84
- align="start"
85
- trigger={
86
- <Button
87
- icon={ sortIcons[ header.column.getIsSorted() ] }
88
- iconPosition="right"
89
- text={ text }
90
- style={ { padding: 0 } }
91
- />
92
- }
93
- >
94
- <WithSeparators>
95
- { isSortable && (
96
- <DropdownMenuGroup>
97
- { Object.entries( sortingItemsInfo ).map(
98
- ( [ direction, info ] ) => (
99
- <DropdownMenuItem
100
- key={ direction }
101
- prefix={ <Icon icon={ info.icon } /> }
102
- suffix={
103
- sortedDirection === direction && (
104
- <Icon icon={ check } />
105
- )
106
- }
107
- onSelect={ ( event ) => {
108
- event.preventDefault();
109
- if ( sortedDirection === direction ) {
110
- dataView.resetSorting();
111
- } else {
112
- dataView.setSorting( [
113
- {
114
- id: header.column.id,
115
- desc: direction === 'desc',
116
- },
117
- ] );
118
- }
119
- } }
120
- >
121
- { info.label }
122
- </DropdownMenuItem>
123
- )
124
- ) }
125
- </DropdownMenuGroup>
126
- ) }
127
- { isHidable && (
128
- <DropdownMenuItem
129
- prefix={ <Icon icon={ unseen } /> }
130
- onSelect={ ( event ) => {
131
- event.preventDefault();
132
- header.column.getToggleVisibilityHandler()( event );
133
- } }
134
- >
135
- { __( 'Hide' ) }
136
- </DropdownMenuItem>
137
- ) }
138
- { isFilterable && (
139
- <DropdownMenuGroup>
140
- <DropdownSubMenu
141
- key={ filter.field }
142
- trigger={
143
- <DropdownSubMenuTrigger
144
- prefix={ <Icon icon={ funnel } /> }
145
- suffix={
146
- <Icon icon={ chevronRightSmall } />
147
- }
148
- >
149
- { __( 'Filter by' ) }
150
- </DropdownSubMenuTrigger>
151
- }
152
- >
153
- { filter.elements.map( ( element ) => {
154
- let isActive = false;
155
- const columnFilters =
156
- dataView.getState().columnFilters;
157
- const columnFilter = columnFilters.find(
158
- ( f ) =>
159
- Object.keys( f )[ 0 ].split(
160
- ':'
161
- )[ 0 ] === filter.field
162
- );
163
-
164
- if ( columnFilter ) {
165
- const value =
166
- Object.values( columnFilter )[ 0 ];
167
- // Intentionally use loose comparison, so it does type conversion.
168
- // This covers the case where a top-level filter for the same field converts a number into a string.
169
- isActive = element.value == value; // eslint-disable-line eqeqeq
170
- }
171
-
172
- return (
173
- <DropdownMenuItem
174
- key={ element.value }
175
- suffix={
176
- isActive && <Icon icon={ check } />
177
- }
178
- onSelect={ () => {
179
- const otherFilters =
180
- columnFilters?.filter(
181
- ( f ) => {
182
- const [
183
- field,
184
- operator,
185
- ] =
186
- Object.keys(
187
- f
188
- )[ 0 ].split( ':' );
189
- return (
190
- field !==
191
- filter.field ||
192
- operator !==
193
- OPERATOR_IN
194
- );
195
- }
196
- );
197
-
198
- dataView.setColumnFilters( [
199
- ...otherFilters,
200
- {
201
- [ filter.field + ':in' ]:
202
- isActive
203
- ? undefined
204
- : element.value,
205
- },
206
- ] );
207
- } }
208
- >
209
- { element.label }
210
- </DropdownMenuItem>
211
- );
212
- } ) }
213
- </DropdownSubMenu>
214
- </DropdownMenuGroup>
215
- ) }
216
- </WithSeparators>
217
- </DropdownMenu>
218
- );
219
- }
220
-
221
- function WithSeparators( { children } ) {
222
- return Children.toArray( children )
223
- .filter( Boolean )
224
- .map( ( child, i ) => (
225
- <Fragment key={ i }>
226
- { i > 0 && <DropdownMenuSeparator /> }
227
- { child }
228
- </Fragment>
229
- ) );
230
- }
231
-
232
- function ViewList( {
233
- view,
234
- onChangeView,
235
- fields,
236
- actions,
237
- data,
238
- getItemId,
239
- isLoading = false,
240
- paginationInfo,
241
- } ) {
242
- const columns = useMemo( () => {
243
- const _columns = fields.map( ( field ) => {
244
- const { render, getValue, ...column } = field;
245
- column.cell = ( props ) =>
246
- render( { item: props.row.original, view } );
247
- if ( getValue ) {
248
- column.accessorFn = ( item ) => getValue( { item } );
249
- }
250
- return column;
251
- } );
252
- if ( actions?.length ) {
253
- _columns.push( {
254
- header: __( 'Actions' ),
255
- id: 'actions',
256
- cell: ( props ) => {
257
- return (
258
- <ItemActions
259
- item={ props.row.original }
260
- actions={ actions }
261
- />
262
- );
263
- },
264
- enableHiding: false,
265
- } );
266
- }
267
-
268
- return _columns;
269
- }, [ fields, actions, view ] );
270
-
271
- const columnVisibility = useMemo( () => {
272
- if ( ! view.hiddenFields?.length ) {
273
- return;
274
- }
275
- return view.hiddenFields.reduce(
276
- ( accumulator, fieldId ) => ( {
277
- ...accumulator,
278
- [ fieldId ]: false,
279
- } ),
280
- {}
281
- );
282
- }, [ view.hiddenFields ] );
283
-
284
- /**
285
- * Transform the filters from the view format into the tanstack columns filter format.
286
- *
287
- * Input:
288
- *
289
- * view.filters = [
290
- * { field: 'date', operator: 'before', value: '2020-01-01' },
291
- * { field: 'date', operator: 'after', value: '2020-01-01' },
292
- * ]
293
- *
294
- * Output:
295
- *
296
- * columnFilters = [
297
- * { "date:before": '2020-01-01' },
298
- * { "date:after": '2020-01-01' }
299
- * ]
300
- *
301
- * @param {Array} filters The view filters to transform.
302
- * @return {Array} The transformed TanStack column filters.
303
- */
304
- const toTanStackColumnFilters = ( filters ) =>
305
- filters?.map( ( filter ) => ( {
306
- [ filter.field + ':' + filter.operator ]: filter.value,
307
- } ) );
308
-
309
- /**
310
- * Transform the filters from the view format into the tanstack columns filter format.
311
- *
312
- * Input:
313
- *
314
- * columnFilters = [
315
- * { "date:before": '2020-01-01'},
316
- * { "date:after": '2020-01-01' }
317
- * ]
318
- *
319
- * Output:
320
- *
321
- * view.filters = [
322
- * { field: 'date', operator: 'before', value: '2020-01-01' },
323
- * { field: 'date', operator: 'after', value: '2020-01-01' },
324
- * ]
325
- *
326
- * @param {Array} filters The TanStack column filters to transform.
327
- * @return {Array} The transformed view filters.
328
- */
329
- const fromTanStackColumnFilters = ( filters ) =>
330
- filters.map( ( filter ) => {
331
- const [ key, value ] = Object.entries( filter )[ 0 ];
332
- const [ field, operator ] = key.split( ':' );
333
- return { field, operator, value };
334
- } );
335
-
336
- const shownData = useAsyncList( data );
337
- const dataView = useReactTable( {
338
- data: shownData,
339
- columns,
340
- manualSorting: true,
341
- manualFiltering: true,
342
- manualPagination: true,
343
- enableRowSelection: true,
344
- state: {
345
- sorting: view.sort
346
- ? [
347
- {
348
- id: view.sort.field,
349
- desc: view.sort.direction === 'desc',
350
- },
351
- ]
352
- : [],
353
- globalFilter: view.search,
354
- columnFilters: toTanStackColumnFilters( view.filters ),
355
- pagination: {
356
- pageIndex: view.page,
357
- pageSize: view.perPage,
358
- },
359
- columnVisibility: columnVisibility ?? EMPTY_OBJECT,
360
- },
361
- getRowId: getItemId,
362
- onSortingChange: ( sortingUpdater ) => {
363
- onChangeView( ( currentView ) => {
364
- const sort =
365
- typeof sortingUpdater === 'function'
366
- ? sortingUpdater(
367
- currentView.sort
368
- ? [
369
- {
370
- id: currentView.sort.field,
371
- desc:
372
- currentView.sort
373
- .direction === 'desc',
374
- },
375
- ]
376
- : []
377
- )
378
- : sortingUpdater;
379
- if ( ! sort.length ) {
380
- return {
381
- ...currentView,
382
- sort: {},
383
- };
384
- }
385
- const [ { id, desc } ] = sort;
386
- return {
387
- ...currentView,
388
- sort: { field: id, direction: desc ? 'desc' : 'asc' },
389
- };
390
- } );
391
- },
392
- onColumnVisibilityChange: ( columnVisibilityUpdater ) => {
393
- onChangeView( ( currentView ) => {
394
- const hiddenFields = Object.entries(
395
- columnVisibilityUpdater()
396
- ).reduce(
397
- ( accumulator, [ fieldId, value ] ) => {
398
- if ( value ) {
399
- return accumulator.filter(
400
- ( id ) => id !== fieldId
401
- );
402
- }
403
- return [ ...accumulator, fieldId ];
404
- },
405
- [ ...( currentView.hiddenFields || [] ) ]
406
- );
407
- return {
408
- ...currentView,
409
- hiddenFields,
410
- };
411
- } );
412
- },
413
- onGlobalFilterChange: ( value ) => {
414
- onChangeView( { ...view, search: value, page: 1 } );
415
- },
416
- onColumnFiltersChange: ( columnFiltersUpdater ) => {
417
- onChangeView( {
418
- ...view,
419
- filters: fromTanStackColumnFilters( columnFiltersUpdater() ),
420
- page: 1,
421
- } );
422
- },
423
- onPaginationChange: ( paginationUpdater ) => {
424
- onChangeView( ( currentView ) => {
425
- const { pageIndex, pageSize } = paginationUpdater( {
426
- pageIndex: currentView.page,
427
- pageSize: currentView.perPage,
428
- } );
429
- return { ...view, page: pageIndex, perPage: pageSize };
430
- } );
431
- },
432
- getCoreRowModel: getCoreRowModel(),
433
- getFilteredRowModel: getFilteredRowModel(),
434
- getSortedRowModel: getSortedRowModel(),
435
- getPaginationRowModel: getPaginationRowModel(),
436
- pageCount: paginationInfo.totalPages,
437
- } );
438
-
439
- const { rows } = dataView.getRowModel();
440
- const hasRows = !! rows?.length;
441
- if ( isLoading ) {
442
- // TODO:Add spinner or progress bar..
443
- return <h3>{ __( 'Loading' ) }</h3>;
444
- }
445
- return (
446
- <div className="dataviews-list-view-wrapper">
447
- { hasRows && (
448
- <table className="dataviews-list-view">
449
- <thead>
450
- { dataView.getHeaderGroups().map( ( headerGroup ) => (
451
- <tr key={ headerGroup.id }>
452
- { headerGroup.headers.map( ( header ) => (
453
- <th
454
- key={ header.id }
455
- colSpan={ header.colSpan }
456
- style={ {
457
- width:
458
- header.column.columnDef.width ||
459
- undefined,
460
- minWidth:
461
- header.column.columnDef
462
- .minWidth || undefined,
463
- maxWidth:
464
- header.column.columnDef
465
- .maxWidth || undefined,
466
- } }
467
- data-field-id={ header.id }
468
- >
469
- <HeaderMenu
470
- dataView={ dataView }
471
- header={ header }
472
- />
473
- </th>
474
- ) ) }
475
- </tr>
476
- ) ) }
477
- </thead>
478
- <tbody>
479
- { rows.map( ( row ) => (
480
- <tr key={ row.id }>
481
- { row.getVisibleCells().map( ( cell ) => (
482
- <td
483
- key={ cell.column.id }
484
- style={ {
485
- width:
486
- cell.column.columnDef.width ||
487
- undefined,
488
- minWidth:
489
- cell.column.columnDef
490
- .minWidth || undefined,
491
- maxWidth:
492
- cell.column.columnDef
493
- .maxWidth || undefined,
494
- } }
495
- >
496
- { flexRender(
497
- cell.column.columnDef.cell,
498
- cell.getContext()
499
- ) }
500
- </td>
501
- ) ) }
502
- </tr>
503
- ) ) }
504
- </tbody>
505
- </table>
506
- ) }
507
- { ! hasRows && <p>{ __( 'no results' ) }</p> }
508
- </div>
509
- );
510
- }
511
-
512
- export default ViewList;
@@ -1,9 +0,0 @@
1
- /**
2
- * Internal dependencies
3
- */
4
- import ViewList from './view-list';
5
-
6
- export function ViewSideBySide( props ) {
7
- // To do: change to email-like preview list.
8
- return <ViewList { ...props } />;
9
- }
@@ -1,204 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import classnames from 'classnames';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { __, isRTL } from '@wordpress/i18n';
10
- import { useSelect, useDispatch } from '@wordpress/data';
11
- import {
12
- Button,
13
- VisuallyHidden,
14
- __experimentalText as Text,
15
- __experimentalHStack as HStack,
16
- } from '@wordpress/components';
17
- import { BlockIcon } from '@wordpress/block-editor';
18
- import { store as commandsStore } from '@wordpress/commands';
19
- import {
20
- chevronLeftSmall,
21
- chevronRightSmall,
22
- page as pageIcon,
23
- navigation as navigationIcon,
24
- symbol,
25
- } from '@wordpress/icons';
26
- import { displayShortcut } from '@wordpress/keycodes';
27
- import { store as coreStore } from '@wordpress/core-data';
28
- import { store as editorStore } from '@wordpress/editor';
29
- import { useRef, useState, useEffect } from '@wordpress/element';
30
-
31
- /**
32
- * Internal dependencies
33
- */
34
- import useEditedEntityRecord from '../../use-edited-entity-record';
35
- import { store as editSiteStore } from '../../../store';
36
- import {
37
- TEMPLATE_POST_TYPE,
38
- NAVIGATION_POST_TYPE,
39
- TEMPLATE_PART_POST_TYPE,
40
- PATTERN_TYPES,
41
- PATTERN_SYNC_TYPES,
42
- } from '../../../utils/constants';
43
-
44
- const typeLabels = {
45
- [ PATTERN_TYPES.user ]: __( 'Editing pattern:' ),
46
- [ NAVIGATION_POST_TYPE ]: __( 'Editing navigation menu:' ),
47
- [ TEMPLATE_POST_TYPE ]: __( 'Editing template:' ),
48
- [ TEMPLATE_PART_POST_TYPE ]: __( 'Editing template part:' ),
49
- };
50
-
51
- export default function DocumentActions() {
52
- const isPage = useSelect(
53
- ( select ) => select( editSiteStore ).isPage(),
54
- []
55
- );
56
- return isPage ? <PageDocumentActions /> : <TemplateDocumentActions />;
57
- }
58
-
59
- function PageDocumentActions() {
60
- const { isEditingPage, hasResolved, isFound, title } = useSelect(
61
- ( select ) => {
62
- const { getEditedPostContext } = select( editSiteStore );
63
- const { getEditedEntityRecord, hasFinishedResolution } =
64
- select( coreStore );
65
- const { getRenderingMode } = select( editorStore );
66
- const context = getEditedPostContext();
67
- const queryArgs = [ 'postType', context.postType, context.postId ];
68
- const page = getEditedEntityRecord( ...queryArgs );
69
- return {
70
- isEditingPage:
71
- !! context.postId && getRenderingMode() !== 'template-only',
72
- hasResolved: hasFinishedResolution(
73
- 'getEditedEntityRecord',
74
- queryArgs
75
- ),
76
- isFound: !! page,
77
- title: page?.title,
78
- };
79
- },
80
- []
81
- );
82
-
83
- const { setRenderingMode } = useDispatch( editorStore );
84
- const [ isAnimated, setIsAnimated ] = useState( false );
85
- const isLoading = useRef( true );
86
-
87
- useEffect( () => {
88
- if ( ! isLoading.current ) {
89
- setIsAnimated( true );
90
- }
91
- isLoading.current = false;
92
- }, [ isEditingPage ] );
93
-
94
- if ( ! hasResolved ) {
95
- return null;
96
- }
97
-
98
- if ( ! isFound ) {
99
- return (
100
- <div className="edit-site-document-actions">
101
- { __( 'Document not found' ) }
102
- </div>
103
- );
104
- }
105
-
106
- return isEditingPage ? (
107
- <BaseDocumentActions
108
- className={ classnames( 'is-page', {
109
- 'is-animated': isAnimated,
110
- } ) }
111
- icon={ pageIcon }
112
- >
113
- { title }
114
- </BaseDocumentActions>
115
- ) : (
116
- <TemplateDocumentActions
117
- className={ classnames( {
118
- 'is-animated': isAnimated,
119
- } ) }
120
- onBack={ () => setRenderingMode( 'template-locked' ) }
121
- />
122
- );
123
- }
124
-
125
- function TemplateDocumentActions( { className, onBack } ) {
126
- const { isLoaded, record, getTitle, icon } = useEditedEntityRecord();
127
-
128
- if ( ! isLoaded ) {
129
- return null;
130
- }
131
-
132
- if ( ! record ) {
133
- return (
134
- <div className="edit-site-document-actions">
135
- { __( 'Document not found' ) }
136
- </div>
137
- );
138
- }
139
-
140
- let typeIcon = icon;
141
- if ( record.type === NAVIGATION_POST_TYPE ) {
142
- typeIcon = navigationIcon;
143
- } else if ( record.type === PATTERN_TYPES.user ) {
144
- typeIcon = symbol;
145
- }
146
-
147
- return (
148
- <BaseDocumentActions
149
- className={ classnames( className, {
150
- 'is-synced-entity':
151
- record.wp_pattern_sync_status !==
152
- PATTERN_SYNC_TYPES.unsynced,
153
- } ) }
154
- icon={ typeIcon }
155
- onBack={ onBack }
156
- >
157
- <VisuallyHidden as="span">
158
- { typeLabels[ record.type ] ??
159
- typeLabels[ TEMPLATE_POST_TYPE ] }
160
- </VisuallyHidden>
161
- { getTitle() }
162
- </BaseDocumentActions>
163
- );
164
- }
165
-
166
- function BaseDocumentActions( { className, icon, children, onBack } ) {
167
- const { open: openCommandCenter } = useDispatch( commandsStore );
168
- return (
169
- <div
170
- className={ classnames( 'edit-site-document-actions', className ) }
171
- >
172
- { onBack && (
173
- <Button
174
- className="edit-site-document-actions__back"
175
- icon={ isRTL() ? chevronRightSmall : chevronLeftSmall }
176
- onClick={ ( event ) => {
177
- event.stopPropagation();
178
- onBack();
179
- } }
180
- >
181
- { __( 'Back' ) }
182
- </Button>
183
- ) }
184
- <Button
185
- className="edit-site-document-actions__command"
186
- onClick={ () => openCommandCenter() }
187
- >
188
- <HStack
189
- className="edit-site-document-actions__title"
190
- spacing={ 1 }
191
- justify="center"
192
- >
193
- <BlockIcon icon={ icon } />
194
- <Text size="body" as="h1">
195
- { children }
196
- </Text>
197
- </HStack>
198
- <span className="edit-site-document-actions__shortcut">
199
- { displayShortcut.primary( 'k' ) }
200
- </span>
201
- </Button>
202
- </div>
203
- );
204
- }