@wordpress/edit-site 6.11.0 → 6.12.1-next.082ed6819.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 (346) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-template/utils.js +1 -2
  3. package/build/components/add-new-template/utils.js.map +1 -1
  4. package/build/components/app/index.js +0 -5
  5. package/build/components/app/index.js.map +1 -1
  6. package/build/components/block-editor/use-editor-iframe-props.js +6 -8
  7. package/build/components/block-editor/use-editor-iframe-props.js.map +1 -1
  8. package/build/components/block-editor/use-site-editor-settings.js +4 -12
  9. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  10. package/build/components/editor/index.js +23 -27
  11. package/build/components/editor/index.js.map +1 -1
  12. package/build/components/editor/use-editor-title.js +37 -12
  13. package/build/components/editor/use-editor-title.js.map +1 -1
  14. package/build/components/editor/use-resolve-edited-entity.js +133 -0
  15. package/build/components/editor/use-resolve-edited-entity.js.map +1 -0
  16. package/build/components/editor-canvas-container/index.js +1 -1
  17. package/build/components/editor-canvas-container/index.js.map +1 -1
  18. package/build/components/global-styles/block-preview-panel.js +8 -10
  19. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  20. package/build/components/global-styles/screen-block.js +18 -5
  21. package/build/components/global-styles/screen-block.js.map +1 -1
  22. package/build/components/global-styles/screen-revisions/revisions-buttons.js +24 -22
  23. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  24. package/build/components/global-styles/screen-style-variations.js +11 -5
  25. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  26. package/build/components/global-styles/shadows-edit-panel.js +2 -3
  27. package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
  28. package/build/components/global-styles/ui.js +42 -2
  29. package/build/components/global-styles/ui.js.map +1 -1
  30. package/build/components/global-styles-renderer/index.js +6 -8
  31. package/build/components/global-styles-renderer/index.js.map +1 -1
  32. package/build/components/global-styles-sidebar/index.js +17 -1
  33. package/build/components/global-styles-sidebar/index.js.map +1 -1
  34. package/build/components/layout/hooks.js +1 -10
  35. package/build/components/layout/hooks.js.map +1 -1
  36. package/build/components/layout/index.js +1 -0
  37. package/build/components/layout/index.js.map +1 -1
  38. package/build/components/page-patterns/fields.js +3 -7
  39. package/build/components/page-patterns/fields.js.map +1 -1
  40. package/build/components/page-patterns/header.js +2 -2
  41. package/build/components/page-patterns/header.js.map +1 -1
  42. package/build/components/page-patterns/use-patterns.js +4 -8
  43. package/build/components/page-patterns/use-patterns.js.map +1 -1
  44. package/build/components/page-templates/fields.js +1 -2
  45. package/build/components/page-templates/fields.js.map +1 -1
  46. package/build/components/post-edit/index.js +15 -11
  47. package/build/components/post-edit/index.js.map +1 -1
  48. package/build/components/post-list/index.js +13 -3
  49. package/build/components/post-list/index.js.map +1 -1
  50. package/build/components/posts-app/index.js +3 -4
  51. package/build/components/posts-app/index.js.map +1 -1
  52. package/build/components/posts-app-routes/home.js +48 -0
  53. package/build/components/posts-app-routes/home.js.map +1 -0
  54. package/build/components/posts-app-routes/index.js +37 -0
  55. package/build/components/posts-app-routes/index.js.map +1 -0
  56. package/build/components/posts-app-routes/posts-edit.js +44 -0
  57. package/build/components/posts-app-routes/posts-edit.js.map +1 -0
  58. package/build/components/posts-app-routes/posts-list-view-quick-edit.js +63 -0
  59. package/build/components/posts-app-routes/posts-list-view-quick-edit.js.map +1 -0
  60. package/build/components/posts-app-routes/posts-list-view.js +48 -0
  61. package/build/components/posts-app-routes/posts-list-view.js.map +1 -0
  62. package/build/components/posts-app-routes/posts-view-quick-edit.js +60 -0
  63. package/build/components/posts-app-routes/posts-view-quick-edit.js.map +1 -0
  64. package/build/components/posts-app-routes/posts-view.js +41 -0
  65. package/build/components/posts-app-routes/posts-view.js.map +1 -0
  66. package/build/components/sidebar/index.js +11 -3
  67. package/build/components/sidebar/index.js.map +1 -1
  68. package/build/components/sidebar-global-styles-wrapper/index.js +129 -0
  69. package/build/components/sidebar-global-styles-wrapper/index.js.map +1 -0
  70. package/build/components/sidebar-navigation-screen-details-footer/index.js +17 -23
  71. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  72. package/build/components/sidebar-navigation-screen-global-styles/index.js +18 -90
  73. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  74. package/build/components/sidebar-navigation-screen-main/index.js +43 -42
  75. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  76. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +1 -1
  77. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  78. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +2 -3
  79. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  80. package/build/components/site-editor-routes/index.js +1 -2
  81. package/build/components/site-editor-routes/index.js.map +1 -1
  82. package/build/components/site-editor-routes/styles-view.js +8 -2
  83. package/build/components/site-editor-routes/styles-view.js.map +1 -1
  84. package/build/components/site-hub/index.js +19 -6
  85. package/build/components/site-hub/index.js.map +1 -1
  86. package/build/components/style-book/constants.js +10 -3
  87. package/build/components/style-book/constants.js.map +1 -1
  88. package/build/components/style-book/examples.js +94 -2
  89. package/build/components/style-book/examples.js.map +1 -1
  90. package/build/components/style-book/index.js +70 -11
  91. package/build/components/style-book/index.js.map +1 -1
  92. package/build/components/welcome-guide/index.js +4 -2
  93. package/build/components/welcome-guide/index.js.map +1 -1
  94. package/build/components/welcome-guide/page.js +1 -9
  95. package/build/components/welcome-guide/page.js.map +1 -1
  96. package/build/components/welcome-guide/template.js +1 -12
  97. package/build/components/welcome-guide/template.js.map +1 -1
  98. package/build/hooks/commands/use-common-commands.js +15 -15
  99. package/build/hooks/commands/use-common-commands.js.map +1 -1
  100. package/build/index.js +1 -9
  101. package/build/index.js.map +1 -1
  102. package/build/posts.js +1 -0
  103. package/build/posts.js.map +1 -1
  104. package/build/store/actions.js +13 -0
  105. package/build/store/actions.js.map +1 -1
  106. package/build/store/selectors.js +21 -1
  107. package/build/store/selectors.js.map +1 -1
  108. package/build-module/components/add-new-template/utils.js +1 -2
  109. package/build-module/components/add-new-template/utils.js.map +1 -1
  110. package/build-module/components/app/index.js +0 -5
  111. package/build-module/components/app/index.js.map +1 -1
  112. package/build-module/components/block-editor/use-editor-iframe-props.js +6 -8
  113. package/build-module/components/block-editor/use-editor-iframe-props.js.map +1 -1
  114. package/build-module/components/block-editor/use-site-editor-settings.js +4 -12
  115. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  116. package/build-module/components/editor/index.js +23 -27
  117. package/build-module/components/editor/index.js.map +1 -1
  118. package/build-module/components/editor/use-editor-title.js +37 -12
  119. package/build-module/components/editor/use-editor-title.js.map +1 -1
  120. package/build-module/components/editor/use-resolve-edited-entity.js +125 -0
  121. package/build-module/components/editor/use-resolve-edited-entity.js.map +1 -0
  122. package/build-module/components/editor-canvas-container/index.js +1 -1
  123. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  124. package/build-module/components/global-styles/block-preview-panel.js +8 -10
  125. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  126. package/build-module/components/global-styles/screen-block.js +18 -5
  127. package/build-module/components/global-styles/screen-block.js.map +1 -1
  128. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +25 -23
  129. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  130. package/build-module/components/global-styles/screen-style-variations.js +11 -5
  131. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  132. package/build-module/components/global-styles/shadows-edit-panel.js +2 -3
  133. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
  134. package/build-module/components/global-styles/ui.js +42 -2
  135. package/build-module/components/global-styles/ui.js.map +1 -1
  136. package/build-module/components/global-styles-renderer/index.js +6 -8
  137. package/build-module/components/global-styles-renderer/index.js.map +1 -1
  138. package/build-module/components/global-styles-sidebar/index.js +18 -2
  139. package/build-module/components/global-styles-sidebar/index.js.map +1 -1
  140. package/build-module/components/layout/hooks.js +1 -9
  141. package/build-module/components/layout/hooks.js.map +1 -1
  142. package/build-module/components/layout/index.js +1 -0
  143. package/build-module/components/layout/index.js.map +1 -1
  144. package/build-module/components/page-patterns/fields.js +4 -8
  145. package/build-module/components/page-patterns/fields.js.map +1 -1
  146. package/build-module/components/page-patterns/header.js +2 -2
  147. package/build-module/components/page-patterns/header.js.map +1 -1
  148. package/build-module/components/page-patterns/use-patterns.js +4 -8
  149. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  150. package/build-module/components/page-templates/fields.js +1 -2
  151. package/build-module/components/page-templates/fields.js.map +1 -1
  152. package/build-module/components/post-edit/index.js +14 -10
  153. package/build-module/components/post-edit/index.js.map +1 -1
  154. package/build-module/components/post-list/index.js +13 -3
  155. package/build-module/components/post-list/index.js.map +1 -1
  156. package/build-module/components/posts-app/index.js +3 -4
  157. package/build-module/components/posts-app/index.js.map +1 -1
  158. package/build-module/components/posts-app-routes/home.js +40 -0
  159. package/build-module/components/posts-app-routes/home.js.map +1 -0
  160. package/build-module/components/posts-app-routes/index.js +30 -0
  161. package/build-module/components/posts-app-routes/index.js.map +1 -0
  162. package/build-module/components/posts-app-routes/posts-edit.js +36 -0
  163. package/build-module/components/posts-app-routes/posts-edit.js.map +1 -0
  164. package/build-module/components/posts-app-routes/posts-list-view-quick-edit.js +55 -0
  165. package/build-module/components/posts-app-routes/posts-list-view-quick-edit.js.map +1 -0
  166. package/build-module/components/posts-app-routes/posts-list-view.js +40 -0
  167. package/build-module/components/posts-app-routes/posts-list-view.js.map +1 -0
  168. package/build-module/components/posts-app-routes/posts-view-quick-edit.js +52 -0
  169. package/build-module/components/posts-app-routes/posts-view-quick-edit.js.map +1 -0
  170. package/build-module/components/posts-app-routes/posts-view.js +33 -0
  171. package/build-module/components/posts-app-routes/posts-view.js.map +1 -0
  172. package/build-module/components/sidebar/index.js +11 -3
  173. package/build-module/components/sidebar/index.js.map +1 -1
  174. package/build-module/components/sidebar-global-styles-wrapper/index.js +121 -0
  175. package/build-module/components/sidebar-global-styles-wrapper/index.js.map +1 -0
  176. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +20 -26
  177. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  178. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +19 -91
  179. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  180. package/build-module/components/sidebar-navigation-screen-main/index.js +43 -43
  181. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  182. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +1 -1
  183. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  184. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +3 -4
  185. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  186. package/build-module/components/site-editor-routes/index.js +1 -2
  187. package/build-module/components/site-editor-routes/index.js.map +1 -1
  188. package/build-module/components/site-editor-routes/styles-view.js +8 -2
  189. package/build-module/components/site-editor-routes/styles-view.js.map +1 -1
  190. package/build-module/components/site-hub/index.js +19 -6
  191. package/build-module/components/site-hub/index.js.map +1 -1
  192. package/build-module/components/style-book/constants.js +10 -3
  193. package/build-module/components/style-book/constants.js.map +1 -1
  194. package/build-module/components/style-book/examples.js +94 -2
  195. package/build-module/components/style-book/examples.js.map +1 -1
  196. package/build-module/components/style-book/index.js +71 -12
  197. package/build-module/components/style-book/index.js.map +1 -1
  198. package/build-module/components/welcome-guide/index.js +4 -2
  199. package/build-module/components/welcome-guide/index.js.map +1 -1
  200. package/build-module/components/welcome-guide/page.js +1 -9
  201. package/build-module/components/welcome-guide/page.js.map +1 -1
  202. package/build-module/components/welcome-guide/template.js +1 -11
  203. package/build-module/components/welcome-guide/template.js.map +1 -1
  204. package/build-module/hooks/commands/use-common-commands.js +15 -15
  205. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  206. package/build-module/index.js +2 -10
  207. package/build-module/index.js.map +1 -1
  208. package/build-module/posts.js +1 -0
  209. package/build-module/posts.js.map +1 -1
  210. package/build-module/store/actions.js +13 -0
  211. package/build-module/store/actions.js.map +1 -1
  212. package/build-module/store/selectors.js +21 -1
  213. package/build-module/store/selectors.js.map +1 -1
  214. package/build-style/posts-rtl.css +106 -16
  215. package/build-style/posts.css +106 -16
  216. package/build-style/style-rtl.css +176 -78
  217. package/build-style/style.css +176 -78
  218. package/package.json +39 -40
  219. package/src/components/add-new-template/utils.js +2 -2
  220. package/src/components/app/index.js +0 -5
  221. package/src/components/block-editor/use-editor-iframe-props.js +2 -3
  222. package/src/components/block-editor/use-site-editor-settings.js +7 -21
  223. package/src/components/editor/index.js +31 -30
  224. package/src/components/editor/use-editor-title.js +50 -13
  225. package/src/components/editor/use-resolve-edited-entity.js +132 -0
  226. package/src/components/editor-canvas-container/index.js +1 -1
  227. package/src/components/editor-canvas-container/style.scss +0 -1
  228. package/src/components/global-styles/block-preview-panel.js +10 -10
  229. package/src/components/global-styles/screen-block.js +26 -8
  230. package/src/components/global-styles/screen-revisions/revisions-buttons.js +28 -31
  231. package/src/components/global-styles/screen-revisions/style.scss +11 -17
  232. package/src/components/global-styles/screen-style-variations.js +14 -5
  233. package/src/components/global-styles/shadows-edit-panel.js +4 -2
  234. package/src/components/global-styles/ui.js +41 -1
  235. package/src/components/global-styles-renderer/index.js +4 -10
  236. package/src/components/global-styles-sidebar/index.js +16 -2
  237. package/src/components/layout/hooks.js +1 -7
  238. package/src/components/layout/index.js +6 -1
  239. package/src/components/page-patterns/fields.js +6 -12
  240. package/src/components/page-patterns/header.js +3 -2
  241. package/src/components/page-patterns/style.scss +0 -5
  242. package/src/components/page-patterns/use-patterns.js +9 -7
  243. package/src/components/page-templates/fields.js +2 -3
  244. package/src/components/page-templates/style.scss +1 -0
  245. package/src/components/post-edit/index.js +37 -32
  246. package/src/components/post-edit/style.scss +7 -0
  247. package/src/components/post-list/index.js +10 -5
  248. package/src/components/post-list/style.scss +29 -3
  249. package/src/components/posts-app/index.js +3 -4
  250. package/src/components/posts-app-routes/home.js +36 -0
  251. package/src/components/posts-app-routes/index.js +36 -0
  252. package/src/components/posts-app-routes/posts-edit.js +31 -0
  253. package/src/components/posts-app-routes/posts-list-view-quick-edit.js +52 -0
  254. package/src/components/posts-app-routes/posts-list-view.js +40 -0
  255. package/src/components/posts-app-routes/posts-view-quick-edit.js +49 -0
  256. package/src/components/posts-app-routes/posts-view.js +35 -0
  257. package/src/components/sidebar/index.js +23 -7
  258. package/src/components/sidebar-global-styles-wrapper/index.js +150 -0
  259. package/src/components/sidebar-global-styles-wrapper/style.scss +35 -0
  260. package/src/components/sidebar-navigation-item/style.scss +2 -2
  261. package/src/components/sidebar-navigation-screen/style.scss +7 -2
  262. package/src/components/sidebar-navigation-screen-details-footer/index.js +27 -38
  263. package/src/components/sidebar-navigation-screen-details-footer/style.scss +0 -4
  264. package/src/components/sidebar-navigation-screen-global-styles/index.js +19 -103
  265. package/src/components/sidebar-navigation-screen-main/index.js +46 -45
  266. package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +8 -0
  267. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +1 -1
  268. package/src/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +4 -4
  269. package/src/components/site-editor-routes/README.md +2 -2
  270. package/src/components/site-editor-routes/index.js +0 -2
  271. package/src/components/site-editor-routes/styles-view.js +11 -1
  272. package/src/components/site-hub/index.js +33 -16
  273. package/src/components/site-hub/style.scss +1 -1
  274. package/src/components/site-icon/style.scss +16 -0
  275. package/src/components/style-book/constants.ts +11 -3
  276. package/src/components/style-book/examples.tsx +128 -2
  277. package/src/components/style-book/index.js +86 -8
  278. package/src/components/welcome-guide/index.js +3 -3
  279. package/src/components/welcome-guide/page.js +1 -7
  280. package/src/components/welcome-guide/template.js +1 -8
  281. package/src/hooks/commands/use-common-commands.js +253 -246
  282. package/src/index.js +2 -13
  283. package/src/posts.js +1 -0
  284. package/src/store/actions.js +15 -0
  285. package/src/store/selectors.js +24 -1
  286. package/src/style.scss +2 -5
  287. package/build/components/async/index.js +0 -51
  288. package/build/components/async/index.js.map +0 -1
  289. package/build/components/post-fields/index.js +0 -290
  290. package/build/components/post-fields/index.js.map +0 -1
  291. package/build/components/posts-app/router.js +0 -85
  292. package/build/components/posts-app/router.js.map +0 -1
  293. package/build/components/sidebar-navigation-screen-details-panel/index.js +0 -54
  294. package/build/components/sidebar-navigation-screen-details-panel/index.js.map +0 -1
  295. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js +0 -21
  296. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js.map +0 -1
  297. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +0 -33
  298. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +0 -1
  299. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js +0 -21
  300. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js.map +0 -1
  301. package/build/components/site-editor-routes/styles-edit.js +0 -28
  302. package/build/components/site-editor-routes/styles-edit.js.map +0 -1
  303. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +0 -219
  304. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +0 -1
  305. package/build/components/use-edited-entity-record/index.js +0 -60
  306. package/build/components/use-edited-entity-record/index.js.map +0 -1
  307. package/build/hooks/commands/use-edit-mode-commands.js +0 -179
  308. package/build/hooks/commands/use-edit-mode-commands.js.map +0 -1
  309. package/build-module/components/async/index.js +0 -44
  310. package/build-module/components/async/index.js.map +0 -1
  311. package/build-module/components/post-fields/index.js +0 -283
  312. package/build-module/components/post-fields/index.js.map +0 -1
  313. package/build-module/components/posts-app/router.js +0 -77
  314. package/build-module/components/posts-app/router.js.map +0 -1
  315. package/build-module/components/sidebar-navigation-screen-details-panel/index.js +0 -29
  316. package/build-module/components/sidebar-navigation-screen-details-panel/index.js.map +0 -1
  317. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js +0 -14
  318. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js.map +0 -1
  319. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +0 -25
  320. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +0 -1
  321. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js +0 -14
  322. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js.map +0 -1
  323. package/build-module/components/site-editor-routes/styles-edit.js +0 -20
  324. package/build-module/components/site-editor-routes/styles-edit.js.map +0 -1
  325. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +0 -212
  326. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +0 -1
  327. package/build-module/components/use-edited-entity-record/index.js +0 -53
  328. package/build-module/components/use-edited-entity-record/index.js.map +0 -1
  329. package/build-module/hooks/commands/use-edit-mode-commands.js +0 -171
  330. package/build-module/hooks/commands/use-edit-mode-commands.js.map +0 -1
  331. package/src/components/async/index.js +0 -43
  332. package/src/components/post-fields/index.js +0 -361
  333. package/src/components/post-fields/style.scss +0 -3
  334. package/src/components/posts-app/router.js +0 -69
  335. package/src/components/sidebar-navigation-screen-details-panel/index.js +0 -40
  336. package/src/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js +0 -14
  337. package/src/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +0 -31
  338. package/src/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js +0 -14
  339. package/src/components/sidebar-navigation-screen-details-panel/style.scss +0 -26
  340. package/src/components/site-editor-routes/styles-edit.js +0 -17
  341. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +0 -267
  342. package/src/components/use-edited-entity-record/index.js +0 -58
  343. package/src/hooks/commands/use-edit-mode-commands.js +0 -168
  344. package/src/store/test/actions.js +0 -83
  345. package/src/store/test/reducer.js +0 -69
  346. package/src/store/test/selectors.js +0 -41
@@ -1,267 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useEffect, useMemo } from '@wordpress/element';
5
- import { useSelect, useDispatch } from '@wordpress/data';
6
- import { store as coreDataStore } from '@wordpress/core-data';
7
- import { privateApis as routerPrivateApis } from '@wordpress/router';
8
- import { store as blockEditorStore } from '@wordpress/block-editor';
9
-
10
- /**
11
- * Internal dependencies
12
- */
13
- import { store as editSiteStore } from '../../store';
14
- import { unlock } from '../../lock-unlock';
15
- import {
16
- TEMPLATE_POST_TYPE,
17
- TEMPLATE_PART_POST_TYPE,
18
- NAVIGATION_POST_TYPE,
19
- PATTERN_TYPES,
20
- } from '../../utils/constants';
21
-
22
- const { useLocation } = unlock( routerPrivateApis );
23
-
24
- const postTypesWithoutParentTemplate = [
25
- TEMPLATE_POST_TYPE,
26
- TEMPLATE_PART_POST_TYPE,
27
- NAVIGATION_POST_TYPE,
28
- PATTERN_TYPES.user,
29
- ];
30
-
31
- const authorizedPostTypes = [ 'page', 'post' ];
32
-
33
- function useResolveEditedEntityAndContext( { postId, postType } ) {
34
- const {
35
- hasLoadedAllDependencies,
36
- homepageId,
37
- postsPageId,
38
- url,
39
- frontPageTemplateId,
40
- } = useSelect( ( select ) => {
41
- const { getEntityRecord, getEntityRecords } = select( coreDataStore );
42
- const siteData = getEntityRecord( 'root', 'site' );
43
- const base = getEntityRecord( 'root', '__unstableBase' );
44
- const templates = getEntityRecords( 'postType', TEMPLATE_POST_TYPE, {
45
- per_page: -1,
46
- } );
47
- const _homepageId =
48
- siteData?.show_on_front === 'page' &&
49
- [ 'number', 'string' ].includes( typeof siteData.page_on_front ) &&
50
- !! +siteData.page_on_front // We also need to check if it's not zero(`0`).
51
- ? siteData.page_on_front.toString()
52
- : null;
53
- const _postsPageId =
54
- siteData?.show_on_front === 'page' &&
55
- [ 'number', 'string' ].includes( typeof siteData.page_for_posts )
56
- ? siteData.page_for_posts.toString()
57
- : null;
58
- let _frontPageTemplateId;
59
- if ( templates ) {
60
- const frontPageTemplate = templates.find(
61
- ( t ) => t.slug === 'front-page'
62
- );
63
- _frontPageTemplateId = frontPageTemplate
64
- ? frontPageTemplate.id
65
- : false;
66
- }
67
- return {
68
- hasLoadedAllDependencies: !! base && !! siteData,
69
- homepageId: _homepageId,
70
- postsPageId: _postsPageId,
71
- url: base?.home,
72
- frontPageTemplateId: _frontPageTemplateId,
73
- };
74
- }, [] );
75
-
76
- /**
77
- * This is a hook that recreates the logic to resolve a template for a given WordPress postID postTypeId
78
- * in order to match the frontend as closely as possible in the site editor.
79
- *
80
- * It is not possible to rely on the server logic because there maybe unsaved changes that impact the template resolution.
81
- */
82
- const resolvedTemplateId = useSelect(
83
- ( select ) => {
84
- // If we're rendering a post type that doesn't have a template
85
- // no need to resolve its template.
86
- if (
87
- postTypesWithoutParentTemplate.includes( postType ) &&
88
- postId
89
- ) {
90
- return undefined;
91
- }
92
-
93
- // Don't trigger resolution for multi-selected posts.
94
- if ( postId && postId.includes( ',' ) ) {
95
- return undefined;
96
- }
97
-
98
- const {
99
- getEditedEntityRecord,
100
- getEntityRecords,
101
- getDefaultTemplateId,
102
- __experimentalGetTemplateForLink,
103
- } = select( coreDataStore );
104
-
105
- function resolveTemplateForPostTypeAndId(
106
- postTypeToResolve,
107
- postIdToResolve
108
- ) {
109
- // For the front page, we always use the front page template if existing.
110
- if (
111
- postTypeToResolve === 'page' &&
112
- homepageId === postIdToResolve
113
- ) {
114
- // We're still checking whether the front page template exists.
115
- // Don't resolve the template yet.
116
- if ( frontPageTemplateId === undefined ) {
117
- return undefined;
118
- }
119
-
120
- if ( !! frontPageTemplateId ) {
121
- return frontPageTemplateId;
122
- }
123
- }
124
-
125
- const editedEntity = getEditedEntityRecord(
126
- 'postType',
127
- postTypeToResolve,
128
- postIdToResolve
129
- );
130
- if ( ! editedEntity ) {
131
- return undefined;
132
- }
133
- // Check if the current page is the posts page.
134
- if (
135
- postTypeToResolve === 'page' &&
136
- postsPageId === postIdToResolve
137
- ) {
138
- return __experimentalGetTemplateForLink( editedEntity.link )
139
- ?.id;
140
- }
141
- // First see if the post/page has an assigned template and fetch it.
142
- const currentTemplateSlug = editedEntity.template;
143
- if ( currentTemplateSlug ) {
144
- const currentTemplate = getEntityRecords(
145
- 'postType',
146
- TEMPLATE_POST_TYPE,
147
- {
148
- per_page: -1,
149
- }
150
- )?.find( ( { slug } ) => slug === currentTemplateSlug );
151
- if ( currentTemplate ) {
152
- return currentTemplate.id;
153
- }
154
- }
155
- // If no template is assigned, use the default template.
156
- let slugToCheck;
157
- // In `draft` status we might not have a slug available, so we use the `single`
158
- // post type templates slug(ex page, single-post, single-product etc..).
159
- // Pages do not need the `single` prefix in the slug to be prioritized
160
- // through template hierarchy.
161
- if ( editedEntity.slug ) {
162
- slugToCheck =
163
- postTypeToResolve === 'page'
164
- ? `${ postTypeToResolve }-${ editedEntity.slug }`
165
- : `single-${ postTypeToResolve }-${ editedEntity.slug }`;
166
- } else {
167
- slugToCheck =
168
- postTypeToResolve === 'page'
169
- ? 'page'
170
- : `single-${ postTypeToResolve }`;
171
- }
172
- return getDefaultTemplateId( {
173
- slug: slugToCheck,
174
- } );
175
- }
176
-
177
- if ( ! hasLoadedAllDependencies ) {
178
- return undefined;
179
- }
180
-
181
- // If we're rendering a specific page, we need to resolve its template.
182
- // The site editor only supports pages for now, not other CPTs.
183
- if (
184
- postType &&
185
- postId &&
186
- authorizedPostTypes.includes( postType )
187
- ) {
188
- return resolveTemplateForPostTypeAndId( postType, postId );
189
- }
190
-
191
- // If we're rendering the home page, and we have a static home page, resolve its template.
192
- if ( homepageId ) {
193
- return resolveTemplateForPostTypeAndId( 'page', homepageId );
194
- }
195
-
196
- // If we're not rendering a specific page, use the front page template.
197
- if ( url ) {
198
- const template = __experimentalGetTemplateForLink( url );
199
- return template?.id;
200
- }
201
- },
202
- [
203
- homepageId,
204
- postsPageId,
205
- hasLoadedAllDependencies,
206
- url,
207
- postId,
208
- postType,
209
- frontPageTemplateId,
210
- ]
211
- );
212
-
213
- const context = useMemo( () => {
214
- if ( postTypesWithoutParentTemplate.includes( postType ) && postId ) {
215
- return {};
216
- }
217
-
218
- if ( postType && postId && authorizedPostTypes.includes( postType ) ) {
219
- return { postType, postId };
220
- }
221
- // TODO: for post types lists we should probably not render the front page, but maybe a placeholder
222
- // with a message like "Select a page" or something similar.
223
- if ( homepageId ) {
224
- return { postType: 'page', postId: homepageId };
225
- }
226
-
227
- return {};
228
- }, [ homepageId, postType, postId ] );
229
-
230
- if ( postTypesWithoutParentTemplate.includes( postType ) && postId ) {
231
- return { isReady: true, postType, postId, context };
232
- }
233
-
234
- if ( hasLoadedAllDependencies ) {
235
- return {
236
- isReady: resolvedTemplateId !== undefined,
237
- postType: TEMPLATE_POST_TYPE,
238
- postId: resolvedTemplateId,
239
- context,
240
- };
241
- }
242
-
243
- return { isReady: false };
244
- }
245
-
246
- export default function useInitEditedEntityFromURL() {
247
- const { params = {} } = useLocation();
248
- const { postType, postId, context, isReady } =
249
- useResolveEditedEntityAndContext( params );
250
-
251
- const { setEditedEntity } = useDispatch( editSiteStore );
252
- const { resetZoomLevel } = unlock( useDispatch( blockEditorStore ) );
253
-
254
- useEffect( () => {
255
- if ( isReady ) {
256
- resetZoomLevel();
257
- setEditedEntity( postType, postId, context );
258
- }
259
- }, [
260
- isReady,
261
- postType,
262
- postId,
263
- context,
264
- setEditedEntity,
265
- resetZoomLevel,
266
- ] );
267
- }
@@ -1,58 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect } from '@wordpress/data';
5
- import { store as coreStore } from '@wordpress/core-data';
6
- import { store as editorStore } from '@wordpress/editor';
7
- import { decodeEntities } from '@wordpress/html-entities';
8
-
9
- /**
10
- * Internal dependencies
11
- */
12
- import { store as editSiteStore } from '../../store';
13
-
14
- export default function useEditedEntityRecord( postType, postId ) {
15
- const { record, title, description, isLoaded, icon } = useSelect(
16
- ( select ) => {
17
- const { getEditedPostType, getEditedPostId } =
18
- select( editSiteStore );
19
- const { getEditedEntityRecord, hasFinishedResolution } =
20
- select( coreStore );
21
- const { __experimentalGetTemplateInfo: getTemplateInfo } =
22
- select( editorStore );
23
- const usedPostType = postType ?? getEditedPostType();
24
- const usedPostId = postId ?? getEditedPostId();
25
- const _record = getEditedEntityRecord(
26
- 'postType',
27
- usedPostType,
28
- usedPostId
29
- );
30
- const _isLoaded =
31
- usedPostId &&
32
- hasFinishedResolution( 'getEditedEntityRecord', [
33
- 'postType',
34
- usedPostType,
35
- usedPostId,
36
- ] );
37
- const templateInfo = getTemplateInfo( _record );
38
-
39
- return {
40
- record: _record,
41
- title: templateInfo.title,
42
- description: templateInfo.description,
43
- isLoaded: _isLoaded,
44
- icon: templateInfo.icon,
45
- };
46
- },
47
- [ postType, postId ]
48
- );
49
-
50
- return {
51
- isLoaded,
52
- icon,
53
- record,
54
- getTitle: () => ( title ? decodeEntities( title ) : null ),
55
- getDescription: () =>
56
- description ? decodeEntities( description ) : null,
57
- };
58
- }
@@ -1,168 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect, useDispatch } from '@wordpress/data';
5
- import { __, sprintf, isRTL } from '@wordpress/i18n';
6
- import { trash, rotateLeft, rotateRight, layout, page } from '@wordpress/icons';
7
- import { useCommandLoader } from '@wordpress/commands';
8
- import { decodeEntities } from '@wordpress/html-entities';
9
- import { privateApis as routerPrivateApis } from '@wordpress/router';
10
- import { store as editorStore } from '@wordpress/editor';
11
-
12
- /**
13
- * Internal dependencies
14
- */
15
- import { store as editSiteStore } from '../../store';
16
- import useEditedEntityRecord from '../../components/use-edited-entity-record';
17
- import isTemplateRemovable from '../../utils/is-template-removable';
18
- import isTemplateRevertable from '../../utils/is-template-revertable';
19
- import { unlock } from '../../lock-unlock';
20
- import { TEMPLATE_POST_TYPE } from '../../utils/constants';
21
- import { useLink } from '../../components/routes/link';
22
-
23
- const { useHistory, useLocation } = unlock( routerPrivateApis );
24
-
25
- function usePageContentFocusCommands() {
26
- const { record: template } = useEditedEntityRecord();
27
- const { params } = useLocation();
28
- const { canvas = 'view' } = params;
29
- const { isPage, templateId, currentPostType } = useSelect( ( select ) => {
30
- const { isPage: _isPage } = unlock( select( editSiteStore ) );
31
- const { getCurrentPostType, getCurrentTemplateId } =
32
- select( editorStore );
33
- return {
34
- isPage: _isPage(),
35
- templateId: getCurrentTemplateId(),
36
- currentPostType: getCurrentPostType(),
37
- };
38
- }, [] );
39
-
40
- const { onClick: editTemplate } = useLink( {
41
- postType: 'wp_template',
42
- postId: templateId,
43
- } );
44
-
45
- const { setRenderingMode } = useDispatch( editorStore );
46
-
47
- if ( ! isPage || canvas !== 'edit' ) {
48
- return { isLoading: false, commands: [] };
49
- }
50
-
51
- const commands = [];
52
-
53
- if ( currentPostType !== 'wp_template' ) {
54
- commands.push( {
55
- name: 'core/switch-to-template-focus',
56
- label: sprintf(
57
- /* translators: %s: template title */
58
- __( 'Edit template: %s' ),
59
- decodeEntities( template.title )
60
- ),
61
- icon: layout,
62
- callback: ( { close } ) => {
63
- editTemplate();
64
- close();
65
- },
66
- } );
67
- } else {
68
- commands.push( {
69
- name: 'core/switch-to-page-focus',
70
- label: __( 'Back to page' ),
71
- icon: page,
72
- callback: ( { close } ) => {
73
- setRenderingMode( 'template-locked' );
74
- close();
75
- },
76
- } );
77
- }
78
-
79
- return { isLoading: false, commands };
80
- }
81
-
82
- function useManipulateDocumentCommands() {
83
- const { isLoaded, record: template } = useEditedEntityRecord();
84
- const { removeTemplate, revertTemplate } = useDispatch( editSiteStore );
85
- const history = useHistory();
86
- const isEditingPage = useSelect(
87
- ( select ) =>
88
- select( editSiteStore ).isPage() &&
89
- select( editorStore ).getCurrentPostType() !== 'wp_template',
90
- []
91
- );
92
-
93
- if ( ! isLoaded ) {
94
- return { isLoading: true, commands: [] };
95
- }
96
-
97
- const commands = [];
98
-
99
- if ( isTemplateRevertable( template ) && ! isEditingPage ) {
100
- const label =
101
- template.type === TEMPLATE_POST_TYPE
102
- ? sprintf(
103
- /* translators: %s: template title */
104
- __( 'Reset template: %s' ),
105
- decodeEntities( template.title )
106
- )
107
- : sprintf(
108
- /* translators: %s: template part title */
109
- __( 'Reset template part: %s' ),
110
- decodeEntities( template.title )
111
- );
112
- commands.push( {
113
- name: 'core/reset-template',
114
- label,
115
- icon: isRTL() ? rotateRight : rotateLeft,
116
- callback: ( { close } ) => {
117
- revertTemplate( template );
118
- close();
119
- },
120
- } );
121
- }
122
-
123
- if ( isTemplateRemovable( template ) && ! isEditingPage ) {
124
- const label =
125
- template.type === TEMPLATE_POST_TYPE
126
- ? sprintf(
127
- /* translators: %s: template title */
128
- __( 'Delete template: %s' ),
129
- decodeEntities( template.title )
130
- )
131
- : sprintf(
132
- /* translators: %s: template part title */
133
- __( 'Delete template part: %s' ),
134
- decodeEntities( template.title )
135
- );
136
- commands.push( {
137
- name: 'core/remove-template',
138
- label,
139
- icon: trash,
140
- callback: ( { close } ) => {
141
- removeTemplate( template );
142
- // Navigate to the template list
143
- history.push( {
144
- postType: template.type,
145
- } );
146
- close();
147
- },
148
- } );
149
- }
150
-
151
- return {
152
- isLoading: ! isLoaded,
153
- commands,
154
- };
155
- }
156
-
157
- export function useEditModeCommands() {
158
- useCommandLoader( {
159
- name: 'core/edit-site/page-content-focus',
160
- hook: usePageContentFocusCommands,
161
- context: 'entity-edit',
162
- } );
163
-
164
- useCommandLoader( {
165
- name: 'core/edit-site/manipulate-document',
166
- hook: useManipulateDocumentCommands,
167
- } );
168
- }
@@ -1,83 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { store as blockEditorStore } from '@wordpress/block-editor';
5
- import { store as coreStore } from '@wordpress/core-data';
6
- import { createRegistry } from '@wordpress/data';
7
- import { store as noticesStore } from '@wordpress/notices';
8
- import { store as preferencesStore } from '@wordpress/preferences';
9
- import {
10
- store as editorStore,
11
- privateApis as editorPrivateApis,
12
- } from '@wordpress/editor';
13
-
14
- /**
15
- * Internal dependencies
16
- */
17
- import { store as editSiteStore } from '..';
18
- import { unlock } from '../../lock-unlock';
19
-
20
- const { interfaceStore } = unlock( editorPrivateApis );
21
-
22
- function createRegistryWithStores() {
23
- // create a registry
24
- const registry = createRegistry();
25
-
26
- // register stores
27
- registry.register( editorStore );
28
- registry.register( blockEditorStore );
29
- registry.register( coreStore );
30
- registry.register( editSiteStore );
31
- registry.register( interfaceStore );
32
- registry.register( noticesStore );
33
- registry.register( preferencesStore );
34
-
35
- return registry;
36
- }
37
-
38
- describe( 'actions', () => {
39
- describe( 'toggleFeature', () => {
40
- it( 'should toggle a feature flag', () => {
41
- const registry = createRegistryWithStores();
42
-
43
- // Should start as undefined.
44
- expect(
45
- registry
46
- .select( preferencesStore )
47
- .get( 'core/edit-site', 'name' )
48
- ).toBe( undefined );
49
-
50
- // Toggle on.
51
- registry.dispatch( editSiteStore ).toggleFeature( 'name' );
52
- expect(
53
- registry
54
- .select( preferencesStore )
55
- .get( 'core/edit-site', 'name' )
56
- ).toBe( true );
57
-
58
- // Toggle off again.
59
- registry.dispatch( editSiteStore ).toggleFeature( 'name' );
60
- expect(
61
- registry
62
- .select( preferencesStore )
63
- .get( 'core/edit-site', 'name' )
64
- ).toBe( false );
65
-
66
- // Expect a deprecation warning.
67
- expect( console ).toHaveWarned();
68
- } );
69
- } );
70
-
71
- describe( 'setTemplatePart', () => {
72
- it( 'should set template part', () => {
73
- const registry = createRegistryWithStores();
74
-
75
- const ID = 1;
76
- registry.dispatch( editSiteStore ).setTemplatePart( ID );
77
-
78
- const select = registry.select( editSiteStore );
79
- expect( select.getEditedPostId() ).toBe( ID );
80
- expect( select.getEditedPostType() ).toBe( 'wp_template_part' );
81
- } );
82
- } );
83
- } );
@@ -1,69 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import deepFreeze from 'deep-freeze';
5
-
6
- /**
7
- * Internal dependencies
8
- */
9
- import { settings, editedPost } from '../reducer';
10
-
11
- describe( 'state', () => {
12
- describe( 'settings()', () => {
13
- it( 'should apply default state', () => {
14
- expect( settings( undefined, {} ) ).toEqual( {} );
15
- } );
16
-
17
- it( 'should default to returning the same state', () => {
18
- const state = {};
19
- expect( settings( state, {} ) ).toBe( state );
20
- } );
21
-
22
- it( 'should update settings with a shallow merge', () => {
23
- expect(
24
- settings(
25
- deepFreeze( {
26
- setting: { key: 'value' },
27
- otherSetting: 'value',
28
- } ),
29
- {
30
- type: 'UPDATE_SETTINGS',
31
- settings: { setting: { newKey: 'newValue' } },
32
- }
33
- )
34
- ).toEqual( {
35
- setting: { newKey: 'newValue' },
36
- otherSetting: 'value',
37
- } );
38
- } );
39
- } );
40
-
41
- describe( 'editedPost()', () => {
42
- it( 'should apply default state', () => {
43
- expect( editedPost( undefined, {} ) ).toEqual( {} );
44
- } );
45
-
46
- it( 'should default to returning the same state', () => {
47
- const state = [];
48
- expect( editedPost( state, {} ) ).toBe( state );
49
- } );
50
-
51
- it( 'should update when a template is set', () => {
52
- expect(
53
- editedPost(
54
- { id: 1, type: 'wp_template' },
55
- {
56
- type: 'SET_EDITED_POST',
57
- postType: 'wp_template',
58
- id: 2,
59
- context: { templateSlug: 'slug' },
60
- }
61
- )
62
- ).toEqual( {
63
- postType: 'wp_template',
64
- id: 2,
65
- context: { templateSlug: 'slug' },
66
- } );
67
- } );
68
- } );
69
- } );
@@ -1,41 +0,0 @@
1
- /**
2
- * Internal dependencies
3
- */
4
- import { getEditedPostType, getEditedPostId, isPage } from '../selectors';
5
-
6
- describe( 'selectors', () => {
7
- describe( 'getEditedPostId', () => {
8
- it( 'returns the template ID', () => {
9
- const state = { editedPost: { id: 10 } };
10
- expect( getEditedPostId( state ) ).toBe( 10 );
11
- } );
12
- } );
13
-
14
- describe( 'getEditedPostType', () => {
15
- it( 'returns the template type', () => {
16
- const state = { editedPost: { postType: 'wp_template' } };
17
- expect( getEditedPostType( state ) ).toBe( 'wp_template' );
18
- } );
19
- } );
20
-
21
- describe( 'isPage', () => {
22
- it( 'returns true if the edited post type is a page', () => {
23
- const state = {
24
- editedPost: {
25
- postType: 'wp_template',
26
- context: { postType: 'page', postId: 123 },
27
- },
28
- };
29
- expect( isPage( state ) ).toBe( true );
30
- } );
31
-
32
- it( 'returns false if the edited post type is a template', () => {
33
- const state = {
34
- editedPost: {
35
- postType: 'wp_template',
36
- },
37
- };
38
- expect( isPage( state ) ).toBe( false );
39
- } );
40
- } );
41
- } );