@wordpress/edit-site 5.30.0 → 5.32.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 (470) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/block-editor/editor-canvas.js +24 -4
  3. package/build/components/block-editor/editor-canvas.js.map +1 -1
  4. package/build/components/block-editor/site-editor-canvas.js +15 -4
  5. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  6. package/build/components/block-editor/use-site-editor-settings.js +1 -1
  7. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  8. package/build/components/editor/index.js +12 -3
  9. package/build/components/editor/index.js.map +1 -1
  10. package/build/components/editor-canvas-container/index.js +1 -2
  11. package/build/components/editor-canvas-container/index.js.map +1 -1
  12. package/build/components/global-styles/background-panel.js +38 -0
  13. package/build/components/global-styles/background-panel.js.map +1 -0
  14. package/build/components/global-styles/color-palette-panel.js +0 -9
  15. package/build/components/global-styles/color-palette-panel.js.map +1 -1
  16. package/build/components/global-styles/font-families.js +1 -1
  17. package/build/components/global-styles/font-families.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/context.js +53 -17
  19. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/font-collection.js +4 -3
  21. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +3 -2
  23. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  24. package/build/components/global-styles/font-library-modal/installed-fonts.js +1 -1
  25. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  26. package/build/components/global-styles/font-library-modal/upload-fonts.js +44 -10
  27. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  28. package/build/components/global-styles/font-library-modal/utils/index.js +22 -4
  29. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  30. package/build/components/global-styles/font-library-modal/utils/preview-styles.js +3 -0
  31. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  32. package/build/components/global-styles/header.js +1 -1
  33. package/build/components/global-styles/header.js.map +1 -1
  34. package/build/components/global-styles/hooks.js +50 -1
  35. package/build/components/global-styles/hooks.js.map +1 -1
  36. package/build/components/global-styles/palette.js +3 -1
  37. package/build/components/global-styles/palette.js.map +1 -1
  38. package/build/components/global-styles/preview-colors.js +2 -2
  39. package/build/components/global-styles/preview-colors.js.map +1 -1
  40. package/build/components/global-styles/preview-iframe.js +0 -1
  41. package/build/components/global-styles/preview-iframe.js.map +1 -1
  42. package/build/components/global-styles/preview-styles.js +2 -2
  43. package/build/components/global-styles/preview-styles.js.map +1 -1
  44. package/build/components/global-styles/root-menu.js +8 -2
  45. package/build/components/global-styles/root-menu.js.map +1 -1
  46. package/build/components/global-styles/screen-background.js +34 -0
  47. package/build/components/global-styles/screen-background.js.map +1 -0
  48. package/build/components/global-styles/screen-color-palette.js +2 -2
  49. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  50. package/build/components/global-styles/screen-colors.js +5 -10
  51. package/build/components/global-styles/screen-colors.js.map +1 -1
  52. package/build/components/global-styles/screen-style-variations.js +3 -37
  53. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  54. package/build/components/global-styles/screen-typography.js +6 -11
  55. package/build/components/global-styles/screen-typography.js.map +1 -1
  56. package/build/components/global-styles/style-variations-container.js +5 -2
  57. package/build/components/global-styles/style-variations-container.js.map +1 -1
  58. package/build/components/global-styles/typography-elements.js +3 -1
  59. package/build/components/global-styles/typography-elements.js.map +1 -1
  60. package/build/components/global-styles/{preview-typography.js → typography-example.js} +4 -2
  61. package/build/components/global-styles/typography-example.js.map +1 -0
  62. package/build/components/global-styles/typography-preview.js +3 -1
  63. package/build/components/global-styles/typography-preview.js.map +1 -1
  64. package/build/components/global-styles/ui.js +4 -1
  65. package/build/components/global-styles/ui.js.map +1 -1
  66. package/build/components/global-styles/utils.js +1 -1
  67. package/build/components/global-styles/utils.js.map +1 -1
  68. package/build/components/global-styles/variations/variations-color.js +13 -7
  69. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  70. package/build/components/global-styles/variations/variations-typography.js +34 -37
  71. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  72. package/build/components/header-edit-mode/index.js +2 -1
  73. package/build/components/header-edit-mode/index.js.map +1 -1
  74. package/build/components/keyboard-shortcut-help-modal/config.js +6 -0
  75. package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  76. package/build/components/keyboard-shortcut-help-modal/index.js +3 -0
  77. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  78. package/build/components/keyboard-shortcuts/global.js +17 -3
  79. package/build/components/keyboard-shortcuts/global.js.map +1 -1
  80. package/build/components/layout/animation.js +129 -0
  81. package/build/components/layout/animation.js.map +1 -0
  82. package/build/components/layout/index.js +9 -17
  83. package/build/components/layout/index.js.map +1 -1
  84. package/build/components/layout/router.js +22 -22
  85. package/build/components/layout/router.js.map +1 -1
  86. package/build/components/page-pages/index.js +24 -27
  87. package/build/components/page-pages/index.js.map +1 -1
  88. package/build/components/page-patterns/delete-category-menu-item.js +6 -1
  89. package/build/components/page-patterns/delete-category-menu-item.js.map +1 -1
  90. package/build/components/page-patterns/index.js +19 -32
  91. package/build/components/page-patterns/index.js.map +1 -1
  92. package/build/components/page-patterns/search-items.js +16 -58
  93. package/build/components/page-patterns/search-items.js.map +1 -1
  94. package/build/components/page-patterns/use-patterns.js +9 -9
  95. package/build/components/page-patterns/use-patterns.js.map +1 -1
  96. package/build/components/page-templates-template-parts/actions.js +54 -41
  97. package/build/components/page-templates-template-parts/actions.js.map +1 -1
  98. package/build/components/page-templates-template-parts/index.js +31 -69
  99. package/build/components/page-templates-template-parts/index.js.map +1 -1
  100. package/build/components/plugin-template-setting-panel/index.js +12 -1
  101. package/build/components/plugin-template-setting-panel/index.js.map +1 -1
  102. package/build/components/save-button/index.js +45 -16
  103. package/build/components/save-button/index.js.map +1 -1
  104. package/build/components/save-hub/index.js +8 -112
  105. package/build/components/save-hub/index.js.map +1 -1
  106. package/build/components/save-panel/index.js +14 -9
  107. package/build/components/save-panel/index.js.map +1 -1
  108. package/build/components/sidebar/index.js +3 -8
  109. package/build/components/sidebar/index.js.map +1 -1
  110. package/build/components/sidebar-dataviews/custom-dataviews-list.js +2 -2
  111. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  112. package/build/components/sidebar-dataviews/dataview-item.js +2 -2
  113. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
  114. package/build/components/sidebar-dataviews/default-views.js +3 -3
  115. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  116. package/build/components/sidebar-dataviews/index.js +5 -4
  117. package/build/components/sidebar-dataviews/index.js.map +1 -1
  118. package/build/components/sidebar-edit-mode/index.js +1 -2
  119. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  120. package/build/components/sidebar-edit-mode/page-panels/index.js +7 -17
  121. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  122. package/build/components/sidebar-edit-mode/page-panels/page-content.js +7 -5
  123. package/build/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
  124. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +3 -1
  125. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  126. package/build/components/sidebar-edit-mode/template-panel/index.js +32 -18
  127. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  128. package/build/components/sidebar-navigation-screen-details-footer/index.js +5 -1
  129. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  130. package/build/components/sidebar-navigation-screen-global-styles/index.js +18 -1
  131. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  132. package/build/components/sidebar-navigation-screen-navigation-menu/{delete-modal.js → delete-confirm-dialog.js} +4 -5
  133. package/build/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -0
  134. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js +6 -6
  135. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  136. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  137. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  138. package/build/components/sidebar-navigation-screen-patterns/index.js +1 -5
  139. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  140. package/build/components/sidebar-navigation-screen-template/index.js +5 -1
  141. package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
  142. package/build/components/sidebar-navigation-screen-templates-browse/content.js +2 -2
  143. package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  144. package/build/components/style-book/index.js +1 -1
  145. package/build/components/style-book/index.js.map +1 -1
  146. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -3
  147. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  148. package/build/components/sync-state-with-url/use-sync-path-with-url.js +1 -11
  149. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  150. package/build/components/template-actions/index.js +44 -27
  151. package/build/components/template-actions/index.js.map +1 -1
  152. package/build/components/welcome-guide/editor.js +11 -2
  153. package/build/components/welcome-guide/editor.js.map +1 -1
  154. package/build/hooks/index.js +0 -1
  155. package/build/hooks/index.js.map +1 -1
  156. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +15 -2
  157. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  158. package/build/store/selectors.js +1 -9
  159. package/build/store/selectors.js.map +1 -1
  160. package/build/utils/constants.js +5 -3
  161. package/build/utils/constants.js.map +1 -1
  162. package/build/utils/get-is-list-page.js +1 -1
  163. package/build/utils/get-is-list-page.js.map +1 -1
  164. package/build/utils/math.js +98 -0
  165. package/build/utils/math.js.map +1 -0
  166. package/build-module/components/block-editor/editor-canvas.js +24 -4
  167. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  168. package/build-module/components/block-editor/site-editor-canvas.js +15 -4
  169. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  170. package/build-module/components/block-editor/use-site-editor-settings.js +1 -1
  171. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  172. package/build-module/components/editor/index.js +13 -4
  173. package/build-module/components/editor/index.js.map +1 -1
  174. package/build-module/components/editor-canvas-container/index.js +1 -2
  175. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  176. package/build-module/components/global-styles/background-panel.js +31 -0
  177. package/build-module/components/global-styles/background-panel.js.map +1 -0
  178. package/build-module/components/global-styles/color-palette-panel.js +0 -8
  179. package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
  180. package/build-module/components/global-styles/font-families.js +1 -1
  181. package/build-module/components/global-styles/font-families.js.map +1 -1
  182. package/build-module/components/global-styles/font-library-modal/context.js +54 -18
  183. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  184. package/build-module/components/global-styles/font-library-modal/font-collection.js +4 -3
  185. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  186. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +4 -3
  187. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  188. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +1 -1
  189. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  190. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +44 -10
  191. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  192. package/build-module/components/global-styles/font-library-modal/utils/index.js +22 -4
  193. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  194. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +3 -0
  195. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  196. package/build-module/components/global-styles/header.js +1 -1
  197. package/build-module/components/global-styles/header.js.map +1 -1
  198. package/build-module/components/global-styles/hooks.js +48 -1
  199. package/build-module/components/global-styles/hooks.js.map +1 -1
  200. package/build-module/components/global-styles/palette.js +3 -1
  201. package/build-module/components/global-styles/palette.js.map +1 -1
  202. package/build-module/components/global-styles/preview-colors.js +2 -2
  203. package/build-module/components/global-styles/preview-colors.js.map +1 -1
  204. package/build-module/components/global-styles/preview-iframe.js +0 -1
  205. package/build-module/components/global-styles/preview-iframe.js.map +1 -1
  206. package/build-module/components/global-styles/preview-styles.js +2 -2
  207. package/build-module/components/global-styles/preview-styles.js.map +1 -1
  208. package/build-module/components/global-styles/root-menu.js +9 -3
  209. package/build-module/components/global-styles/root-menu.js.map +1 -1
  210. package/build-module/components/global-styles/screen-background.js +26 -0
  211. package/build-module/components/global-styles/screen-background.js.map +1 -0
  212. package/build-module/components/global-styles/screen-color-palette.js +2 -2
  213. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  214. package/build-module/components/global-styles/screen-colors.js +5 -10
  215. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  216. package/build-module/components/global-styles/screen-style-variations.js +4 -38
  217. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  218. package/build-module/components/global-styles/screen-typography.js +6 -11
  219. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  220. package/build-module/components/global-styles/style-variations-container.js +5 -2
  221. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  222. package/build-module/components/global-styles/typography-elements.js +3 -1
  223. package/build-module/components/global-styles/typography-elements.js.map +1 -1
  224. package/build-module/components/global-styles/{preview-typography.js → typography-example.js} +4 -2
  225. package/build-module/components/global-styles/typography-example.js.map +1 -0
  226. package/build-module/components/global-styles/typography-preview.js +3 -1
  227. package/build-module/components/global-styles/typography-preview.js.map +1 -1
  228. package/build-module/components/global-styles/ui.js +4 -1
  229. package/build-module/components/global-styles/ui.js.map +1 -1
  230. package/build-module/components/global-styles/utils.js +1 -1
  231. package/build-module/components/global-styles/utils.js.map +1 -1
  232. package/build-module/components/global-styles/variations/variations-color.js +13 -7
  233. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  234. package/build-module/components/global-styles/variations/variations-typography.js +35 -38
  235. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  236. package/build-module/components/header-edit-mode/index.js +2 -1
  237. package/build-module/components/header-edit-mode/index.js.map +1 -1
  238. package/build-module/components/keyboard-shortcut-help-modal/config.js +6 -0
  239. package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  240. package/build-module/components/keyboard-shortcut-help-modal/index.js +3 -0
  241. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  242. package/build-module/components/keyboard-shortcuts/global.js +17 -3
  243. package/build-module/components/keyboard-shortcuts/global.js.map +1 -1
  244. package/build-module/components/layout/animation.js +122 -0
  245. package/build-module/components/layout/animation.js.map +1 -0
  246. package/build-module/components/layout/index.js +9 -17
  247. package/build-module/components/layout/index.js.map +1 -1
  248. package/build-module/components/layout/router.js +22 -22
  249. package/build-module/components/layout/router.js.map +1 -1
  250. package/build-module/components/page-pages/index.js +25 -28
  251. package/build-module/components/page-pages/index.js.map +1 -1
  252. package/build-module/components/page-patterns/delete-category-menu-item.js +6 -1
  253. package/build-module/components/page-patterns/delete-category-menu-item.js.map +1 -1
  254. package/build-module/components/page-patterns/index.js +21 -34
  255. package/build-module/components/page-patterns/index.js.map +1 -1
  256. package/build-module/components/page-patterns/search-items.js +14 -55
  257. package/build-module/components/page-patterns/search-items.js.map +1 -1
  258. package/build-module/components/page-patterns/use-patterns.js +9 -9
  259. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  260. package/build-module/components/page-templates-template-parts/actions.js +54 -40
  261. package/build-module/components/page-templates-template-parts/actions.js.map +1 -1
  262. package/build-module/components/page-templates-template-parts/index.js +34 -72
  263. package/build-module/components/page-templates-template-parts/index.js.map +1 -1
  264. package/build-module/components/plugin-template-setting-panel/index.js +12 -1
  265. package/build-module/components/plugin-template-setting-panel/index.js.map +1 -1
  266. package/build-module/components/save-button/index.js +46 -17
  267. package/build-module/components/save-button/index.js.map +1 -1
  268. package/build-module/components/save-hub/index.js +10 -114
  269. package/build-module/components/save-hub/index.js.map +1 -1
  270. package/build-module/components/save-panel/index.js +14 -9
  271. package/build-module/components/save-panel/index.js.map +1 -1
  272. package/build-module/components/sidebar/index.js +3 -8
  273. package/build-module/components/sidebar/index.js.map +1 -1
  274. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +2 -2
  275. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  276. package/build-module/components/sidebar-dataviews/dataview-item.js +2 -2
  277. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  278. package/build-module/components/sidebar-dataviews/default-views.js +4 -4
  279. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  280. package/build-module/components/sidebar-dataviews/index.js +5 -4
  281. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  282. package/build-module/components/sidebar-edit-mode/index.js +1 -2
  283. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  284. package/build-module/components/sidebar-edit-mode/page-panels/index.js +10 -20
  285. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  286. package/build-module/components/sidebar-edit-mode/page-panels/page-content.js +7 -5
  287. package/build-module/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
  288. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +4 -2
  289. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  290. package/build-module/components/sidebar-edit-mode/template-panel/index.js +33 -19
  291. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  292. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +5 -1
  293. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  294. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +19 -2
  295. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  296. package/build-module/components/sidebar-navigation-screen-navigation-menu/{delete-modal.js → delete-confirm-dialog.js} +3 -4
  297. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -0
  298. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js +6 -6
  299. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  300. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  301. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  302. package/build-module/components/sidebar-navigation-screen-patterns/index.js +1 -5
  303. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  304. package/build-module/components/sidebar-navigation-screen-template/index.js +5 -1
  305. package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
  306. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +2 -2
  307. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  308. package/build-module/components/style-book/index.js +1 -1
  309. package/build-module/components/style-book/index.js.map +1 -1
  310. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -3
  311. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  312. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +1 -11
  313. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  314. package/build-module/components/template-actions/index.js +44 -27
  315. package/build-module/components/template-actions/index.js.map +1 -1
  316. package/build-module/components/welcome-guide/editor.js +11 -2
  317. package/build-module/components/welcome-guide/editor.js.map +1 -1
  318. package/build-module/hooks/index.js +0 -1
  319. package/build-module/hooks/index.js.map +1 -1
  320. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +15 -2
  321. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  322. package/build-module/store/selectors.js +1 -9
  323. package/build-module/store/selectors.js.map +1 -1
  324. package/build-module/utils/constants.js +4 -2
  325. package/build-module/utils/constants.js.map +1 -1
  326. package/build-module/utils/get-is-list-page.js +1 -1
  327. package/build-module/utils/get-is-list-page.js.map +1 -1
  328. package/build-module/utils/math.js +92 -0
  329. package/build-module/utils/math.js.map +1 -0
  330. package/build-style/style-rtl.css +146 -130
  331. package/build-style/style.css +146 -130
  332. package/package.json +44 -44
  333. package/src/components/block-editor/editor-canvas.js +34 -9
  334. package/src/components/block-editor/site-editor-canvas.js +10 -7
  335. package/src/components/block-editor/use-site-editor-settings.js +0 -2
  336. package/src/components/editor/index.js +11 -4
  337. package/src/components/editor-canvas-container/index.js +0 -1
  338. package/src/components/global-styles/background-panel.js +34 -0
  339. package/src/components/global-styles/color-palette-panel.js +0 -11
  340. package/src/components/global-styles/font-families.js +1 -1
  341. package/src/components/global-styles/font-library-modal/context.js +77 -31
  342. package/src/components/global-styles/font-library-modal/font-collection.js +4 -3
  343. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +9 -2
  344. package/src/components/global-styles/font-library-modal/installed-fonts.js +1 -1
  345. package/src/components/global-styles/font-library-modal/style.scss +15 -6
  346. package/src/components/global-styles/font-library-modal/upload-fonts.js +53 -8
  347. package/src/components/global-styles/font-library-modal/utils/index.js +21 -8
  348. package/src/components/global-styles/font-library-modal/utils/preview-styles.js +4 -0
  349. package/src/components/global-styles/header.js +1 -1
  350. package/src/components/global-styles/hooks.js +68 -1
  351. package/src/components/global-styles/palette.js +3 -1
  352. package/src/components/global-styles/preview-colors.js +2 -2
  353. package/src/components/global-styles/preview-iframe.js +0 -1
  354. package/src/components/global-styles/preview-styles.js +2 -2
  355. package/src/components/global-styles/root-menu.js +12 -1
  356. package/src/components/global-styles/screen-background.js +29 -0
  357. package/src/components/global-styles/screen-color-palette.js +2 -2
  358. package/src/components/global-styles/screen-colors.js +4 -15
  359. package/src/components/global-styles/screen-style-variations.js +4 -36
  360. package/src/components/global-styles/screen-typography.js +6 -20
  361. package/src/components/global-styles/style-variations-container.js +2 -1
  362. package/src/components/global-styles/style.scss +15 -10
  363. package/src/components/global-styles/typography-elements.js +5 -1
  364. package/src/components/global-styles/{preview-typography.js → typography-example.js} +3 -1
  365. package/src/components/global-styles/typography-preview.js +3 -1
  366. package/src/components/global-styles/ui.js +5 -0
  367. package/src/components/global-styles/utils.js +1 -1
  368. package/src/components/global-styles/variations/style.scss +32 -23
  369. package/src/components/global-styles/variations/variations-color.js +12 -6
  370. package/src/components/global-styles/variations/variations-typography.js +41 -60
  371. package/src/components/header-edit-mode/index.js +1 -0
  372. package/src/components/header-edit-mode/style.scss +28 -17
  373. package/src/components/keyboard-shortcut-help-modal/config.js +4 -0
  374. package/src/components/keyboard-shortcut-help-modal/index.js +4 -0
  375. package/src/components/keyboard-shortcuts/global.js +16 -4
  376. package/src/components/layout/animation.js +122 -0
  377. package/src/components/layout/index.js +12 -27
  378. package/src/components/layout/router.js +26 -25
  379. package/src/components/layout/style.scss +2 -0
  380. package/src/components/page-pages/index.js +33 -54
  381. package/src/components/page-patterns/delete-category-menu-item.js +7 -0
  382. package/src/components/page-patterns/index.js +22 -31
  383. package/src/components/page-patterns/search-items.js +13 -58
  384. package/src/components/page-patterns/use-patterns.js +17 -10
  385. package/src/components/page-templates-template-parts/actions.js +106 -91
  386. package/src/components/page-templates-template-parts/index.js +41 -93
  387. package/src/components/page-templates-template-parts/style.scss +5 -0
  388. package/src/components/plugin-template-setting-panel/index.js +14 -1
  389. package/src/components/save-button/index.js +55 -26
  390. package/src/components/save-hub/index.js +20 -164
  391. package/src/components/save-panel/index.js +24 -17
  392. package/src/components/sidebar/index.js +2 -8
  393. package/src/components/sidebar-dataviews/custom-dataviews-list.js +2 -2
  394. package/src/components/sidebar-dataviews/dataview-item.js +2 -2
  395. package/src/components/sidebar-dataviews/default-views.js +12 -4
  396. package/src/components/sidebar-dataviews/index.js +5 -4
  397. package/src/components/sidebar-edit-mode/index.js +0 -2
  398. package/src/components/sidebar-edit-mode/page-panels/index.js +31 -62
  399. package/src/components/sidebar-edit-mode/page-panels/page-content.js +10 -10
  400. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +2 -0
  401. package/src/components/sidebar-edit-mode/template-panel/index.js +33 -24
  402. package/src/components/sidebar-edit-mode/template-panel/style.scss +1 -29
  403. package/src/components/sidebar-navigation-screen/style.scss +21 -9
  404. package/src/components/sidebar-navigation-screen-details-footer/index.js +6 -2
  405. package/src/components/sidebar-navigation-screen-global-styles/index.js +29 -2
  406. package/src/components/sidebar-navigation-screen-navigation-menu/{delete-modal.js → delete-confirm-dialog.js} +2 -3
  407. package/src/components/sidebar-navigation-screen-navigation-menu/more-menu.js +11 -9
  408. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +6 -3
  409. package/src/components/sidebar-navigation-screen-patterns/index.js +0 -7
  410. package/src/components/sidebar-navigation-screen-template/index.js +6 -1
  411. package/src/components/sidebar-navigation-screen-templates-browse/content.js +2 -2
  412. package/src/components/style-book/index.js +1 -3
  413. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -3
  414. package/src/components/sync-state-with-url/use-sync-path-with-url.js +3 -19
  415. package/src/components/template-actions/index.js +63 -46
  416. package/src/components/welcome-guide/editor.js +9 -6
  417. package/src/hooks/index.js +0 -1
  418. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +21 -4
  419. package/src/store/selectors.js +3 -15
  420. package/src/style.scss +0 -2
  421. package/src/utils/constants.js +4 -2
  422. package/src/utils/get-is-list-page.js +1 -1
  423. package/src/utils/math.js +93 -0
  424. package/build/components/actions/index.js +0 -321
  425. package/build/components/actions/index.js.map +0 -1
  426. package/build/components/global-styles/preview-typography.js.map +0 -1
  427. package/build/components/sidebar-edit-mode/sidebar-card/index.js +0 -42
  428. package/build/components/sidebar-edit-mode/sidebar-card/index.js.map +0 -1
  429. package/build/components/sidebar-edit-mode/template-panel/template-actions.js +0 -50
  430. package/build/components/sidebar-edit-mode/template-panel/template-actions.js.map +0 -1
  431. package/build/components/sidebar-edit-mode/template-panel/template-areas.js +0 -70
  432. package/build/components/sidebar-edit-mode/template-panel/template-areas.js.map +0 -1
  433. package/build/components/sidebar-navigation-screen-navigation-menu/delete-modal.js.map +0 -1
  434. package/build/components/sidebar-navigation-screen-pages/index.js +0 -175
  435. package/build/components/sidebar-navigation-screen-pages/index.js.map +0 -1
  436. package/build/components/sidebar-navigation-screen-templates/index.js +0 -132
  437. package/build/components/sidebar-navigation-screen-templates/index.js.map +0 -1
  438. package/build/hooks/template-part-edit.js +0 -82
  439. package/build/hooks/template-part-edit.js.map +0 -1
  440. package/build/store/utils.js +0 -71
  441. package/build/store/utils.js.map +0 -1
  442. package/build-module/components/actions/index.js +0 -310
  443. package/build-module/components/actions/index.js.map +0 -1
  444. package/build-module/components/global-styles/preview-typography.js.map +0 -1
  445. package/build-module/components/sidebar-edit-mode/sidebar-card/index.js +0 -34
  446. package/build-module/components/sidebar-edit-mode/sidebar-card/index.js.map +0 -1
  447. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js +0 -42
  448. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js.map +0 -1
  449. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js +0 -63
  450. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js.map +0 -1
  451. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-modal.js.map +0 -1
  452. package/build-module/components/sidebar-navigation-screen-pages/index.js +0 -167
  453. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +0 -1
  454. package/build-module/components/sidebar-navigation-screen-templates/index.js +0 -124
  455. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +0 -1
  456. package/build-module/hooks/template-part-edit.js +0 -75
  457. package/build-module/hooks/template-part-edit.js.map +0 -1
  458. package/build-module/store/utils.js +0 -64
  459. package/build-module/store/utils.js.map +0 -1
  460. package/src/components/actions/index.js +0 -411
  461. package/src/components/sidebar-edit-mode/sidebar-card/index.js +0 -34
  462. package/src/components/sidebar-edit-mode/sidebar-card/style.scss +0 -37
  463. package/src/components/sidebar-edit-mode/template-panel/template-actions.js +0 -49
  464. package/src/components/sidebar-edit-mode/template-panel/template-areas.js +0 -86
  465. package/src/components/sidebar-navigation-screen-pages/index.js +0 -238
  466. package/src/components/sidebar-navigation-screen-templates/index.js +0 -156
  467. package/src/components/sidebar-navigation-screen-templates/style.scss +0 -9
  468. package/src/hooks/template-part-edit.js +0 -89
  469. package/src/store/test/utils.js +0 -191
  470. package/src/store/utils.js +0 -69
@@ -1,238 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import {
5
- __experimentalItemGroup as ItemGroup,
6
- __experimentalItem as Item,
7
- __experimentalTruncate as Truncate,
8
- __experimentalVStack as VStack,
9
- } from '@wordpress/components';
10
- import { useState } from '@wordpress/element';
11
- import { __ } from '@wordpress/i18n';
12
- import { useEntityRecords, store as coreStore } from '@wordpress/core-data';
13
- import { decodeEntities } from '@wordpress/html-entities';
14
- import { privateApis as routerPrivateApis } from '@wordpress/router';
15
- import { layout, page, home, verse, plus } from '@wordpress/icons';
16
- import { useSelect } from '@wordpress/data';
17
- import { useViewportMatch } from '@wordpress/compose';
18
-
19
- /**
20
- * Internal dependencies
21
- */
22
- import SidebarNavigationScreen from '../sidebar-navigation-screen';
23
- import { useLink } from '../routes/link';
24
- import SidebarNavigationItem from '../sidebar-navigation-item';
25
- import SidebarButton from '../sidebar-button';
26
- import AddNewPageModal from '../add-new-page';
27
- import { unlock } from '../../lock-unlock';
28
- import { TEMPLATE_POST_TYPE } from '../../utils/constants';
29
-
30
- const { useHistory } = unlock( routerPrivateApis );
31
-
32
- const PageItem = ( { postType = 'page', postId, ...props } ) => {
33
- const linkInfo = useLink(
34
- {
35
- postType,
36
- postId,
37
- },
38
- {
39
- backPath: '/page',
40
- }
41
- );
42
- return <SidebarNavigationItem { ...linkInfo } { ...props } />;
43
- };
44
-
45
- export default function SidebarNavigationScreenPages() {
46
- const isMobileViewport = useViewportMatch( 'medium', '<' );
47
- const { records: pages, isResolving: isLoadingPages } = useEntityRecords(
48
- 'postType',
49
- 'page',
50
- {
51
- status: 'any',
52
- per_page: -1,
53
- }
54
- );
55
- const { records: templates, isResolving: isLoadingTemplates } =
56
- useEntityRecords( 'postType', TEMPLATE_POST_TYPE, {
57
- per_page: -1,
58
- } );
59
-
60
- const dynamicPageTemplates = templates?.filter( ( { slug } ) =>
61
- [ '404', 'search' ].includes( slug )
62
- );
63
-
64
- const homeTemplate =
65
- templates?.find( ( template ) => template.slug === 'front-page' ) ||
66
- templates?.find( ( template ) => template.slug === 'home' ) ||
67
- templates?.find( ( template ) => template.slug === 'index' );
68
-
69
- const getPostsPageTemplate = () =>
70
- templates?.find( ( template ) => template.slug === 'home' ) ||
71
- templates?.find( ( template ) => template.slug === 'index' );
72
-
73
- const pagesAndTemplates = pages?.concat( dynamicPageTemplates, [
74
- homeTemplate,
75
- ] );
76
-
77
- const { frontPage, postsPage } = useSelect( ( select ) => {
78
- const { getEntityRecord } = select( coreStore );
79
- const siteSettings = getEntityRecord( 'root', 'site' );
80
- return {
81
- frontPage: siteSettings?.page_on_front,
82
- postsPage: siteSettings?.page_for_posts,
83
- };
84
- }, [] );
85
-
86
- const isHomePageBlog = frontPage === postsPage;
87
-
88
- const reorderedPages = pages && [ ...pages ];
89
-
90
- if ( ! isHomePageBlog && reorderedPages?.length ) {
91
- const homePageIndex = reorderedPages.findIndex(
92
- ( item ) => item.id === frontPage
93
- );
94
- const homePage = reorderedPages.splice( homePageIndex, 1 );
95
- reorderedPages?.splice( 0, 0, ...homePage );
96
-
97
- const postsPageIndex = reorderedPages.findIndex(
98
- ( item ) => item.id === postsPage
99
- );
100
-
101
- const blogPage = reorderedPages.splice( postsPageIndex, 1 );
102
-
103
- reorderedPages.splice( 1, 0, ...blogPage );
104
- }
105
-
106
- const [ showAddPage, setShowAddPage ] = useState( false );
107
-
108
- const history = useHistory();
109
-
110
- const handleNewPage = ( { type, id } ) => {
111
- // Navigate to the created template editor.
112
- history.push( {
113
- postId: id,
114
- postType: type,
115
- canvas: 'edit',
116
- } );
117
- setShowAddPage( false );
118
- };
119
-
120
- const getPageProps = ( id ) => {
121
- let itemIcon = page;
122
- const postsPageTemplateId =
123
- postsPage && postsPage === id ? getPostsPageTemplate()?.id : null;
124
-
125
- switch ( id ) {
126
- case frontPage:
127
- itemIcon = home;
128
- break;
129
- case postsPage:
130
- itemIcon = verse;
131
- break;
132
- }
133
-
134
- return {
135
- icon: itemIcon,
136
- postType: postsPageTemplateId ? TEMPLATE_POST_TYPE : 'page',
137
- postId: postsPageTemplateId || id,
138
- };
139
- };
140
-
141
- const pagesLink = useLink( { path: '/pages' } );
142
-
143
- return (
144
- <>
145
- { showAddPage && (
146
- <AddNewPageModal
147
- onSave={ handleNewPage }
148
- onClose={ () => setShowAddPage( false ) }
149
- />
150
- ) }
151
- <SidebarNavigationScreen
152
- title={ __( 'Pages' ) }
153
- description={ __( 'Browse and manage pages.' ) }
154
- actions={
155
- <SidebarButton
156
- icon={ plus }
157
- label={ __( 'Draft a new page' ) }
158
- onClick={ () => setShowAddPage( true ) }
159
- />
160
- }
161
- content={
162
- <>
163
- { ( isLoadingPages || isLoadingTemplates ) && (
164
- <ItemGroup>
165
- <Item>{ __( 'Loading pages…' ) }</Item>
166
- </ItemGroup>
167
- ) }
168
- { ! ( isLoadingPages || isLoadingTemplates ) && (
169
- <ItemGroup>
170
- { ! pagesAndTemplates?.length && (
171
- <Item>{ __( 'No page found' ) }</Item>
172
- ) }
173
- { isHomePageBlog && homeTemplate && (
174
- <PageItem
175
- postType={ TEMPLATE_POST_TYPE }
176
- postId={ homeTemplate.id }
177
- key={ homeTemplate.id }
178
- icon={ home }
179
- withChevron
180
- >
181
- <Truncate numberOfLines={ 1 }>
182
- { decodeEntities(
183
- homeTemplate.title?.rendered ||
184
- __( '(no title)' )
185
- ) }
186
- </Truncate>
187
- </PageItem>
188
- ) }
189
- { reorderedPages?.map( ( { id, title } ) => (
190
- <PageItem
191
- { ...getPageProps( id ) }
192
- key={ id }
193
- withChevron
194
- >
195
- <Truncate numberOfLines={ 1 }>
196
- { decodeEntities(
197
- title?.rendered ||
198
- __( '(no title)' )
199
- ) }
200
- </Truncate>
201
- </PageItem>
202
- ) ) }
203
- </ItemGroup>
204
- ) }
205
- </>
206
- }
207
- footer={
208
- <VStack spacing={ 0 }>
209
- { dynamicPageTemplates?.map( ( item ) => (
210
- <PageItem
211
- postType={ TEMPLATE_POST_TYPE }
212
- postId={ item.id }
213
- key={ item.id }
214
- icon={ layout }
215
- withChevron
216
- >
217
- <Truncate numberOfLines={ 1 }>
218
- { decodeEntities(
219
- item.title?.rendered ||
220
- __( '(no title)' )
221
- ) }
222
- </Truncate>
223
- </PageItem>
224
- ) ) }
225
- { ! isMobileViewport && (
226
- <SidebarNavigationItem
227
- className="edit-site-sidebar-navigation-screen-pages__see-all"
228
- { ...pagesLink }
229
- >
230
- { __( 'Manage all pages' ) }
231
- </SidebarNavigationItem>
232
- ) }
233
- </VStack>
234
- }
235
- />
236
- </>
237
- );
238
- }
@@ -1,156 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import {
5
- __experimentalItemGroup as ItemGroup,
6
- __experimentalItem as Item,
7
- __experimentalVStack as VStack,
8
- } from '@wordpress/components';
9
- import { __ } from '@wordpress/i18n';
10
- import { useEntityRecords } from '@wordpress/core-data';
11
- import { decodeEntities } from '@wordpress/html-entities';
12
- import { useViewportMatch } from '@wordpress/compose';
13
-
14
- /**
15
- * Internal dependencies
16
- */
17
- import SidebarNavigationScreen from '../sidebar-navigation-screen';
18
- import { useLink } from '../routes/link';
19
- import SidebarNavigationItem from '../sidebar-navigation-item';
20
- import AddNewTemplate from '../add-new-template';
21
- import SidebarButton from '../sidebar-button';
22
- import { TEMPLATE_POST_TYPE } from '../../utils/constants';
23
-
24
- const TemplateItem = ( { postType, postId, ...props } ) => {
25
- const linkInfo = useLink( {
26
- postType,
27
- postId,
28
- } );
29
- return <SidebarNavigationItem { ...linkInfo } { ...props } />;
30
- };
31
-
32
- export default function SidebarNavigationScreenTemplates() {
33
- const isMobileViewport = useViewportMatch( 'medium', '<' );
34
- const { records: templates, isResolving: isLoading } = useEntityRecords(
35
- 'postType',
36
- TEMPLATE_POST_TYPE,
37
- { per_page: -1 }
38
- );
39
- const browseAllLink = useLink( { path: '/wp_template/all' } );
40
- const canCreate = ! isMobileViewport;
41
- return (
42
- <SidebarNavigationScreen
43
- title={ __( 'Templates' ) }
44
- description={ __(
45
- 'Express the layout of your site with templates.'
46
- ) }
47
- actions={
48
- canCreate && (
49
- <AddNewTemplate
50
- templateType={ TEMPLATE_POST_TYPE }
51
- toggleProps={ {
52
- as: SidebarButton,
53
- } }
54
- />
55
- )
56
- }
57
- content={
58
- <>
59
- { isLoading && __( 'Loading templates…' ) }
60
- { ! isLoading && (
61
- <SidebarTemplatesList templates={ templates } />
62
- ) }
63
- </>
64
- }
65
- footer={
66
- ! isMobileViewport && (
67
- <SidebarNavigationItem withChevron { ...browseAllLink }>
68
- { __( 'Manage all templates' ) }
69
- </SidebarNavigationItem>
70
- )
71
- }
72
- />
73
- );
74
- }
75
-
76
- function TemplatesGroup( { title, templates } ) {
77
- return (
78
- <ItemGroup>
79
- { !! title && (
80
- <Item className="edit-site-sidebar-navigation-screen-templates__templates-group-title">
81
- { title }
82
- </Item>
83
- ) }
84
- { templates.map( ( template ) => (
85
- <TemplateItem
86
- postType={ TEMPLATE_POST_TYPE }
87
- postId={ template.id }
88
- key={ template.id }
89
- withChevron
90
- >
91
- { decodeEntities(
92
- template.title?.rendered || template.slug
93
- ) }
94
- </TemplateItem>
95
- ) ) }
96
- </ItemGroup>
97
- );
98
- }
99
- function SidebarTemplatesList( { templates } ) {
100
- if ( ! templates?.length ) {
101
- return (
102
- <ItemGroup>
103
- <Item>{ __( 'No templates found' ) }</Item>
104
- </ItemGroup>
105
- );
106
- }
107
- const sortedTemplates = templates ? [ ...templates ] : [];
108
- sortedTemplates.sort( ( a, b ) =>
109
- a.title.rendered.localeCompare( b.title.rendered )
110
- );
111
- const { hierarchyTemplates, customTemplates, ...plugins } =
112
- sortedTemplates.reduce(
113
- ( accumulator, template ) => {
114
- const {
115
- original_source: originalSource,
116
- author_text: authorText,
117
- } = template;
118
- if ( originalSource === 'plugin' ) {
119
- if ( ! accumulator[ authorText ] ) {
120
- accumulator[ authorText ] = [];
121
- }
122
- accumulator[ authorText ].push( template );
123
- } else if ( template.is_custom ) {
124
- accumulator.customTemplates.push( template );
125
- } else {
126
- accumulator.hierarchyTemplates.push( template );
127
- }
128
- return accumulator;
129
- },
130
- { hierarchyTemplates: [], customTemplates: [] }
131
- );
132
- return (
133
- <VStack spacing={ 3 }>
134
- { !! hierarchyTemplates.length && (
135
- <TemplatesGroup templates={ hierarchyTemplates } />
136
- ) }
137
- { !! customTemplates.length && (
138
- <TemplatesGroup
139
- title={ __( 'Custom' ) }
140
- templates={ customTemplates }
141
- />
142
- ) }
143
- { Object.entries( plugins ).map(
144
- ( [ plugin, pluginTemplates ] ) => {
145
- return (
146
- <TemplatesGroup
147
- key={ plugin }
148
- title={ plugin }
149
- templates={ pluginTemplates }
150
- />
151
- );
152
- }
153
- ) }
154
- </VStack>
155
- );
156
- }
@@ -1,9 +0,0 @@
1
- .edit-site-sidebar-navigation-screen-templates__templates-group-title.components-item {
2
- text-transform: uppercase;
3
- color: $gray-200;
4
- // 6px right padding to align with + button
5
- padding: $grid-unit-30 6px $grid-unit-20 $grid-unit-20;
6
- border-top: 1px solid $gray-800;
7
- font-size: 11px;
8
- font-weight: 500;
9
- }
@@ -1,89 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { __ } from '@wordpress/i18n';
5
- import { useSelect } from '@wordpress/data';
6
- import { BlockControls } from '@wordpress/block-editor';
7
- import { store as coreStore } from '@wordpress/core-data';
8
- import { ToolbarButton } from '@wordpress/components';
9
- import { addFilter } from '@wordpress/hooks';
10
- import { createHigherOrderComponent } from '@wordpress/compose';
11
- import { privateApis as routerPrivateApis } from '@wordpress/router';
12
-
13
- /**
14
- * Internal dependencies
15
- */
16
- import { useLink } from '../components/routes/link';
17
- import { unlock } from '../lock-unlock';
18
- import { TEMPLATE_PART_POST_TYPE } from '../utils/constants';
19
-
20
- const { useLocation } = unlock( routerPrivateApis );
21
-
22
- function EditTemplatePartMenuItem( { attributes } ) {
23
- const { theme, slug } = attributes;
24
- const { params } = useLocation();
25
- const templatePart = useSelect(
26
- ( select ) => {
27
- const { getCurrentTheme, getEntityRecord } = select( coreStore );
28
-
29
- return getEntityRecord(
30
- 'postType',
31
- TEMPLATE_PART_POST_TYPE,
32
- // Ideally this should be an official public API.
33
- `${ theme || getCurrentTheme()?.stylesheet }//${ slug }`
34
- );
35
- },
36
- [ theme, slug ]
37
- );
38
-
39
- const linkProps = useLink(
40
- {
41
- postId: templatePart?.id,
42
- postType: templatePart?.type,
43
- canvas: 'edit',
44
- },
45
- {
46
- fromTemplateId: params.postId || templatePart?.id,
47
- }
48
- );
49
-
50
- if ( ! templatePart ) {
51
- return null;
52
- }
53
-
54
- return (
55
- <ToolbarButton
56
- { ...linkProps }
57
- onClick={ ( event ) => {
58
- linkProps.onClick( event );
59
- } }
60
- >
61
- { __( 'Edit' ) }
62
- </ToolbarButton>
63
- );
64
- }
65
-
66
- export const withEditBlockControls = createHigherOrderComponent(
67
- ( BlockEdit ) => ( props ) => {
68
- const { attributes, name } = props;
69
- const isDisplayed = name === 'core/template-part' && attributes.slug;
70
-
71
- return (
72
- <>
73
- <BlockEdit key="edit" { ...props } />
74
- { isDisplayed && (
75
- <BlockControls group="other">
76
- <EditTemplatePartMenuItem attributes={ attributes } />
77
- </BlockControls>
78
- ) }
79
- </>
80
- );
81
- },
82
- 'withEditBlockControls'
83
- );
84
-
85
- addFilter(
86
- 'editor.BlockEdit',
87
- 'core/edit-site/template-part-edit-button',
88
- withEditBlockControls
89
- );
@@ -1,191 +0,0 @@
1
- /**
2
- * Internal dependencies
3
- */
4
- import { getFilteredTemplatePartBlocks } from '../utils';
5
-
6
- const NESTED_BLOCKS = [
7
- {
8
- clientId: '1',
9
- name: 'core/group',
10
- innerBlocks: [
11
- {
12
- clientId: '2',
13
- name: 'core/template-part',
14
- attributes: {
15
- slug: 'header',
16
- theme: 'my-theme',
17
- },
18
- innerBlocks: [
19
- {
20
- clientId: '3',
21
- name: 'core/group',
22
- innerBlocks: [],
23
- },
24
- ],
25
- },
26
- {
27
- clientId: '4',
28
- name: 'core/template-part',
29
- attributes: {
30
- slug: 'aside',
31
- theme: 'my-theme',
32
- },
33
- innerBlocks: [],
34
- },
35
- ],
36
- },
37
- {
38
- clientId: '5',
39
- name: 'core/paragraph',
40
- innerBlocks: [],
41
- },
42
- {
43
- clientId: '6',
44
- name: 'core/template-part',
45
- attributes: {
46
- slug: 'footer',
47
- theme: 'my-theme',
48
- },
49
- innerBlocks: [],
50
- },
51
- ];
52
-
53
- const FLATTENED_BLOCKS = [
54
- {
55
- block: {
56
- clientId: '2',
57
- name: 'core/template-part',
58
- attributes: {
59
- slug: 'header',
60
- theme: 'my-theme',
61
- },
62
- },
63
- templatePart: {
64
- id: 'my-theme//header',
65
- slug: 'header',
66
- theme: 'my-theme',
67
- },
68
- },
69
- {
70
- block: {
71
- clientId: '4',
72
- name: 'core/template-part',
73
- attributes: {
74
- slug: 'aside',
75
- theme: 'my-theme',
76
- },
77
- },
78
- templatePart: {
79
- id: 'my-theme//aside',
80
- slug: 'aside',
81
- theme: 'my-theme',
82
- },
83
- },
84
- {
85
- block: {
86
- clientId: '6',
87
- name: 'core/template-part',
88
- attributes: {
89
- slug: 'footer',
90
- theme: 'my-theme',
91
- },
92
- },
93
- templatePart: {
94
- id: 'my-theme//footer',
95
- slug: 'footer',
96
- theme: 'my-theme',
97
- },
98
- },
99
- ];
100
-
101
- const SINGLE_TEMPLATE_PART_BLOCK = {
102
- clientId: '1',
103
- name: 'core/template-part',
104
- innerBlocks: [],
105
- attributes: {
106
- slug: 'aside',
107
- theme: 'my-theme',
108
- },
109
- };
110
-
111
- const TEMPLATE_PARTS = [
112
- {
113
- id: 'my-theme//header',
114
- slug: 'header',
115
- theme: 'my-theme',
116
- },
117
- {
118
- id: 'my-theme//aside',
119
- slug: 'aside',
120
- theme: 'my-theme',
121
- },
122
- {
123
- id: 'my-theme//footer',
124
- slug: 'footer',
125
- theme: 'my-theme',
126
- },
127
- ];
128
-
129
- describe( 'utils', () => {
130
- describe( 'getFilteredTemplatePartBlocks', () => {
131
- it( 'returns a flattened list of filtered template parts preserving a depth-first order', () => {
132
- const flattenedFilteredTemplateParts =
133
- getFilteredTemplatePartBlocks( NESTED_BLOCKS, TEMPLATE_PARTS );
134
- expect( flattenedFilteredTemplateParts ).toEqual(
135
- FLATTENED_BLOCKS
136
- );
137
- } );
138
-
139
- it( 'returns a cached result when passed the same params', () => {
140
- // Clear the cache and call the function twice.
141
- getFilteredTemplatePartBlocks.clear();
142
- getFilteredTemplatePartBlocks( NESTED_BLOCKS, TEMPLATE_PARTS );
143
- expect(
144
- getFilteredTemplatePartBlocks( NESTED_BLOCKS, TEMPLATE_PARTS )
145
- ).toEqual( FLATTENED_BLOCKS );
146
-
147
- // The function has been called twice with the same params, so the cache size should be 1.
148
- /**
149
- * TODO what should be done about this?
150
- * Can it be tested another way?
151
- * Is it necessary?
152
- */
153
- // const [ , , originalSize ] =
154
- // getFilteredTemplatePartBlocks.getCache();
155
- // expect( originalSize ).toBe( 1 );
156
-
157
- // Call the function again, with different params.
158
- expect(
159
- getFilteredTemplatePartBlocks(
160
- [ SINGLE_TEMPLATE_PART_BLOCK ],
161
- TEMPLATE_PARTS
162
- )
163
- ).toEqual( [
164
- {
165
- block: {
166
- clientId: '1',
167
- name: 'core/template-part',
168
- attributes: {
169
- slug: 'aside',
170
- theme: 'my-theme',
171
- },
172
- },
173
- templatePart: {
174
- id: 'my-theme//aside',
175
- slug: 'aside',
176
- theme: 'my-theme',
177
- },
178
- },
179
- ] );
180
-
181
- // The function has been called with different params, so the cache size should now be 2.
182
- /**
183
- * TODO what should be done about this?
184
- * Can it be tested another way?
185
- * Is it necessary?
186
- */
187
- // const [ , , finalSize ] = getFilteredTemplatePartBlocks.getCache();
188
- // expect( finalSize ).toBe( 2 );
189
- } );
190
- } );
191
- } );