@wordpress/edit-site 5.23.0 → 5.24.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 (320) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/actions/index.js +56 -38
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/block-editor/site-editor-canvas.js +7 -2
  5. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  6. package/build/components/dataviews/add-filter.js +21 -20
  7. package/build/components/dataviews/add-filter.js.map +1 -1
  8. package/build/components/dataviews/constants.js +14 -0
  9. package/build/components/dataviews/constants.js.map +1 -0
  10. package/build/components/dataviews/dataviews.js +9 -7
  11. package/build/components/dataviews/dataviews.js.map +1 -1
  12. package/build/components/dataviews/filter-summary.js +62 -0
  13. package/build/components/dataviews/filter-summary.js.map +1 -0
  14. package/build/components/dataviews/filters.js +15 -30
  15. package/build/components/dataviews/filters.js.map +1 -1
  16. package/build/components/dataviews/item-actions.js +84 -30
  17. package/build/components/dataviews/item-actions.js.map +1 -1
  18. package/build/components/dataviews/pagination.js +4 -0
  19. package/build/components/dataviews/pagination.js.map +1 -1
  20. package/build/components/dataviews/view-actions.js +24 -24
  21. package/build/components/dataviews/view-actions.js.map +1 -1
  22. package/build/components/dataviews/view-grid.js +48 -25
  23. package/build/components/dataviews/view-grid.js.map +1 -1
  24. package/build/components/dataviews/view-list.js +28 -33
  25. package/build/components/dataviews/view-list.js.map +1 -1
  26. package/build/components/editor/index.js +23 -27
  27. package/build/components/editor/index.js.map +1 -1
  28. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  29. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  30. package/build/components/global-styles/font-library-modal/utils/index.js +15 -2
  31. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  32. package/build/components/global-styles/header.js +4 -2
  33. package/build/components/global-styles/header.js.map +1 -1
  34. package/build/components/global-styles/screen-block-list.js +22 -16
  35. package/build/components/global-styles/screen-block-list.js.map +1 -1
  36. package/build/components/global-styles/screen-revisions/index.js +26 -5
  37. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  38. package/build/components/global-styles/screen-revisions/revisions-buttons.js +52 -24
  39. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  40. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  41. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  42. package/build/components/global-styles/ui.js +28 -36
  43. package/build/components/global-styles/ui.js.map +1 -1
  44. package/build/components/header-edit-mode/document-actions/index.js +21 -16
  45. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  46. package/build/components/header-edit-mode/index.js +2 -1
  47. package/build/components/header-edit-mode/index.js.map +1 -1
  48. package/build/components/header-edit-mode/more-menu/index.js +1 -1
  49. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  50. package/build/components/list/added-by.js +43 -54
  51. package/build/components/list/added-by.js.map +1 -1
  52. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +9 -8
  53. package/build/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  54. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  55. package/build/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  56. package/build/components/page-content-focus-notifications/index.js +22 -0
  57. package/build/components/page-content-focus-notifications/index.js.map +1 -0
  58. package/build/components/page-pages/index.js +9 -15
  59. package/build/components/page-pages/index.js.map +1 -1
  60. package/build/components/page-patterns/use-patterns.js +1 -1
  61. package/build/components/page-patterns/use-patterns.js.map +1 -1
  62. package/build/components/page-templates/dataviews-templates.js +166 -51
  63. package/build/components/page-templates/dataviews-templates.js.map +1 -1
  64. package/build/components/preferences-modal/index.js +1 -1
  65. package/build/components/preferences-modal/index.js.map +1 -1
  66. package/build/components/save-button/index.js +9 -6
  67. package/build/components/save-button/index.js.map +1 -1
  68. package/build/components/save-hub/index.js +14 -0
  69. package/build/components/save-hub/index.js.map +1 -1
  70. package/build/components/sidebar-dataviews/custom-dataviews-list.js +3 -1
  71. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  72. package/build/components/sidebar-dataviews/default-views.js +7 -2
  73. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  74. package/build/components/sidebar-edit-mode/index.js +6 -5
  75. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  76. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +15 -26
  77. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  78. package/build/components/sidebar-edit-mode/page-panels/hooks.js +22 -8
  79. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  80. package/build/components/sidebar-edit-mode/page-panels/page-status.js +8 -5
  81. package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  82. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +4 -8
  83. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  84. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +2 -2
  85. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  86. package/build/components/sidebar-edit-mode/settings-header/index.js +10 -6
  87. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  88. package/build/components/sidebar-navigation-screen-page/index.js +23 -4
  89. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  90. package/build/components/style-book/index.js +22 -12
  91. package/build/components/style-book/index.js.map +1 -1
  92. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +41 -9
  93. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  94. package/build/components/welcome-guide/page.js +2 -2
  95. package/build/components/welcome-guide/page.js.map +1 -1
  96. package/build/components/welcome-guide/template.js +6 -3
  97. package/build/components/welcome-guide/template.js.map +1 -1
  98. package/build/hooks/commands/use-edit-mode-commands.js +24 -14
  99. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  100. package/build/store/actions.js +4 -1
  101. package/build/store/actions.js.map +1 -1
  102. package/build/store/private-actions.js +2 -27
  103. package/build/store/private-actions.js.map +1 -1
  104. package/build/store/private-selectors.js +0 -23
  105. package/build/store/private-selectors.js.map +1 -1
  106. package/build/store/reducer.js +1 -40
  107. package/build/store/reducer.js.map +1 -1
  108. package/build/store/selectors.js +8 -4
  109. package/build/store/selectors.js.map +1 -1
  110. package/build/utils/constants.js +1 -12
  111. package/build/utils/constants.js.map +1 -1
  112. package/build-module/components/actions/index.js +55 -36
  113. package/build-module/components/actions/index.js.map +1 -1
  114. package/build-module/components/block-editor/site-editor-canvas.js +7 -2
  115. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  116. package/build-module/components/dataviews/add-filter.js +21 -20
  117. package/build-module/components/dataviews/add-filter.js.map +1 -1
  118. package/build-module/components/dataviews/constants.js +6 -0
  119. package/build-module/components/dataviews/constants.js.map +1 -0
  120. package/build-module/components/dataviews/dataviews.js +9 -7
  121. package/build-module/components/dataviews/dataviews.js.map +1 -1
  122. package/build-module/components/dataviews/filter-summary.js +55 -0
  123. package/build-module/components/dataviews/filter-summary.js.map +1 -0
  124. package/build-module/components/dataviews/filters.js +15 -28
  125. package/build-module/components/dataviews/filters.js.map +1 -1
  126. package/build-module/components/dataviews/item-actions.js +84 -30
  127. package/build-module/components/dataviews/item-actions.js.map +1 -1
  128. package/build-module/components/dataviews/pagination.js +4 -0
  129. package/build-module/components/dataviews/pagination.js.map +1 -1
  130. package/build-module/components/dataviews/view-actions.js +24 -24
  131. package/build-module/components/dataviews/view-actions.js.map +1 -1
  132. package/build-module/components/dataviews/view-grid.js +49 -26
  133. package/build-module/components/dataviews/view-grid.js.map +1 -1
  134. package/build-module/components/dataviews/view-list.js +28 -33
  135. package/build-module/components/dataviews/view-list.js.map +1 -1
  136. package/build-module/components/editor/index.js +26 -30
  137. package/build-module/components/editor/index.js.map +1 -1
  138. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  139. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  140. package/build-module/components/global-styles/font-library-modal/utils/index.js +14 -2
  141. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  142. package/build-module/components/global-styles/header.js +4 -2
  143. package/build-module/components/global-styles/header.js.map +1 -1
  144. package/build-module/components/global-styles/screen-block-list.js +23 -17
  145. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  146. package/build-module/components/global-styles/screen-revisions/index.js +27 -6
  147. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  148. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +51 -24
  149. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  150. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  151. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  152. package/build-module/components/global-styles/ui.js +28 -36
  153. package/build-module/components/global-styles/ui.js.map +1 -1
  154. package/build-module/components/header-edit-mode/document-actions/index.js +21 -16
  155. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  156. package/build-module/components/header-edit-mode/index.js +2 -1
  157. package/build-module/components/header-edit-mode/index.js.map +1 -1
  158. package/build-module/components/header-edit-mode/more-menu/index.js +1 -1
  159. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  160. package/build-module/components/list/added-by.js +44 -55
  161. package/build-module/components/list/added-by.js.map +1 -1
  162. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +9 -8
  163. package/build-module/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  164. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  165. package/build-module/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  166. package/build-module/components/page-content-focus-notifications/index.js +14 -0
  167. package/build-module/components/page-content-focus-notifications/index.js.map +1 -0
  168. package/build-module/components/page-pages/index.js +10 -16
  169. package/build-module/components/page-pages/index.js.map +1 -1
  170. package/build-module/components/page-patterns/use-patterns.js +1 -1
  171. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  172. package/build-module/components/page-templates/dataviews-templates.js +168 -53
  173. package/build-module/components/page-templates/dataviews-templates.js.map +1 -1
  174. package/build-module/components/preferences-modal/index.js +1 -1
  175. package/build-module/components/preferences-modal/index.js.map +1 -1
  176. package/build-module/components/save-button/index.js +11 -8
  177. package/build-module/components/save-button/index.js.map +1 -1
  178. package/build-module/components/save-hub/index.js +14 -0
  179. package/build-module/components/save-hub/index.js.map +1 -1
  180. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +3 -1
  181. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  182. package/build-module/components/sidebar-dataviews/default-views.js +7 -2
  183. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  184. package/build-module/components/sidebar-edit-mode/index.js +6 -5
  185. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  186. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +16 -27
  187. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  188. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +21 -7
  189. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  190. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js +9 -6
  191. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  192. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +5 -9
  193. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  194. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +3 -3
  195. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  196. package/build-module/components/sidebar-edit-mode/settings-header/index.js +10 -6
  197. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  198. package/build-module/components/sidebar-navigation-screen-page/index.js +23 -4
  199. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  200. package/build-module/components/style-book/index.js +22 -12
  201. package/build-module/components/style-book/index.js.map +1 -1
  202. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +41 -9
  203. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  204. package/build-module/components/welcome-guide/page.js +2 -2
  205. package/build-module/components/welcome-guide/page.js.map +1 -1
  206. package/build-module/components/welcome-guide/template.js +6 -3
  207. package/build-module/components/welcome-guide/template.js.map +1 -1
  208. package/build-module/hooks/commands/use-edit-mode-commands.js +24 -14
  209. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  210. package/build-module/store/actions.js +4 -1
  211. package/build-module/store/actions.js.map +1 -1
  212. package/build-module/store/private-actions.js +1 -25
  213. package/build-module/store/private-actions.js.map +1 -1
  214. package/build-module/store/private-selectors.js +0 -22
  215. package/build-module/store/private-selectors.js.map +1 -1
  216. package/build-module/store/reducer.js +1 -38
  217. package/build-module/store/reducer.js.map +1 -1
  218. package/build-module/store/selectors.js +8 -4
  219. package/build-module/store/selectors.js.map +1 -1
  220. package/build-module/utils/constants.js +0 -10
  221. package/build-module/utils/constants.js.map +1 -1
  222. package/build-style/style-rtl.css +152 -62
  223. package/build-style/style.css +152 -62
  224. package/package.json +41 -41
  225. package/src/components/actions/index.js +76 -48
  226. package/src/components/block-editor/site-editor-canvas.js +8 -2
  227. package/src/components/dataviews/README.md +14 -11
  228. package/src/components/dataviews/add-filter.js +21 -24
  229. package/src/components/dataviews/constants.js +5 -0
  230. package/src/components/dataviews/dataviews.js +10 -10
  231. package/src/components/dataviews/filter-summary.js +79 -0
  232. package/src/components/dataviews/filters.js +18 -35
  233. package/src/components/dataviews/item-actions.js +106 -42
  234. package/src/components/dataviews/pagination.js +4 -0
  235. package/src/components/dataviews/style.scss +84 -8
  236. package/src/components/dataviews/view-actions.js +39 -41
  237. package/src/components/dataviews/view-grid.js +63 -38
  238. package/src/components/dataviews/view-list.js +50 -57
  239. package/src/components/editor/index.js +18 -34
  240. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  241. package/src/components/global-styles/font-library-modal/utils/index.js +20 -9
  242. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +46 -15
  243. package/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js +28 -0
  244. package/src/components/global-styles/header.js +2 -1
  245. package/src/components/global-styles/screen-block-list.js +37 -26
  246. package/src/components/global-styles/screen-revisions/index.js +39 -10
  247. package/src/components/global-styles/screen-revisions/revisions-buttons.js +65 -45
  248. package/src/components/global-styles/screen-revisions/style.scss +52 -28
  249. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -6
  250. package/src/components/global-styles/style.scss +0 -11
  251. package/src/components/global-styles/ui.js +59 -74
  252. package/src/components/header-edit-mode/document-actions/index.js +20 -18
  253. package/src/components/header-edit-mode/index.js +1 -0
  254. package/src/components/header-edit-mode/more-menu/index.js +1 -1
  255. package/src/components/list/added-by.js +23 -63
  256. package/src/components/list/style.scss +11 -13
  257. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +12 -13
  258. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  259. package/src/components/page-content-focus-notifications/index.js +14 -0
  260. package/src/components/page-pages/index.js +15 -20
  261. package/src/components/page-patterns/use-patterns.js +1 -1
  262. package/src/components/page-templates/dataviews-templates.js +169 -48
  263. package/src/components/page-templates/style.scss +13 -0
  264. package/src/components/preferences-modal/index.js +1 -1
  265. package/src/components/save-button/index.js +37 -24
  266. package/src/components/save-hub/index.js +15 -0
  267. package/src/components/save-hub/style.scss +7 -0
  268. package/src/components/sidebar-dataviews/custom-dataviews-list.js +2 -0
  269. package/src/components/sidebar-dataviews/default-views.js +7 -2
  270. package/src/components/sidebar-dataviews/style.scss +7 -0
  271. package/src/components/sidebar-edit-mode/index.js +13 -9
  272. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +33 -52
  273. package/src/components/sidebar-edit-mode/page-panels/hooks.js +20 -9
  274. package/src/components/sidebar-edit-mode/page-panels/page-status.js +6 -6
  275. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +8 -9
  276. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +3 -3
  277. package/src/components/sidebar-edit-mode/page-panels/style.scss +9 -19
  278. package/src/components/sidebar-edit-mode/settings-header/index.js +8 -9
  279. package/src/components/sidebar-navigation-screen/style.scss +1 -0
  280. package/src/components/sidebar-navigation-screen-page/index.js +24 -3
  281. package/src/components/sidebar-navigation-screen-template/style.scss +6 -1
  282. package/src/components/style-book/index.js +48 -35
  283. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +69 -17
  284. package/src/components/welcome-guide/page.js +2 -2
  285. package/src/components/welcome-guide/template.js +4 -2
  286. package/src/hooks/commands/use-edit-mode-commands.js +22 -16
  287. package/src/store/actions.js +5 -1
  288. package/src/store/private-actions.js +1 -24
  289. package/src/store/private-selectors.js +0 -22
  290. package/src/store/reducer.js +0 -39
  291. package/src/store/selectors.js +12 -4
  292. package/src/store/test/actions.js +3 -32
  293. package/src/store/test/reducer.js +0 -62
  294. package/src/store/test/selectors.js +0 -35
  295. package/src/style.scss +1 -0
  296. package/src/utils/constants.js +0 -10
  297. package/build/components/dataviews/in-filter.js +0 -51
  298. package/build/components/dataviews/in-filter.js.map +0 -1
  299. package/build/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  300. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -63
  301. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  302. package/build/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  303. package/build/components/page-content-focus-manager/index.js +0 -61
  304. package/build/components/page-content-focus-manager/index.js.map +0 -1
  305. package/build/components/sidebar-edit-mode/page-panels/publish-date.js +0 -87
  306. package/build/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  307. package/build-module/components/dataviews/in-filter.js +0 -42
  308. package/build-module/components/dataviews/in-filter.js.map +0 -1
  309. package/build-module/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  310. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -56
  311. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  312. package/build-module/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  313. package/build-module/components/page-content-focus-manager/index.js +0 -52
  314. package/build-module/components/page-content-focus-manager/index.js.map +0 -1
  315. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js +0 -80
  316. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  317. package/src/components/dataviews/in-filter.js +0 -63
  318. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -57
  319. package/src/components/page-content-focus-manager/index.js +0 -51
  320. package/src/components/sidebar-edit-mode/page-panels/publish-date.js +0 -94
@@ -1 +1 @@
1
- {"version":3,"names":["__","useDispatch","useSelect","__experimentalUseNavigator","useNavigator","__experimentalVStack","VStack","ExternalLink","__experimentalTruncate","Truncate","store","coreStore","useEntityRecord","decodeEntities","pencil","__unstableStripHTML","stripHTML","escapeAttribute","safeDecodeURIComponent","filterURLForDisplay","SidebarNavigationScreen","unlock","editSiteStore","SidebarButton","PageDetails","PageActions","SidebarNavigationScreenDetailsFooter","SidebarNavigationScreenPage","navigator","setCanvasMode","params","postId","record","featuredMediaAltText","featuredMediaSourceUrl","select","getEntityRecord","attachedMedia","featured_media","media_details","sizes","medium","source_url","alt_text","description","raw","featureImageAltText","title","rendered","createElement","actions","Fragment","toggleProps","as","onRemove","goTo","onClick","label","icon","meta","className","href","link","content","alignment","spacing","alt","src","excerpt","numberOfLines","id","footer","modified"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-page/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalVStack as VStack,\n\tExternalLink,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { store as coreStore, useEntityRecord } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { pencil } from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { escapeAttribute } from '@wordpress/escape-html';\nimport { safeDecodeURIComponent, filterURLForDisplay } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport SidebarButton from '../sidebar-button';\nimport PageDetails from './page-details';\nimport PageActions from '../page-actions';\nimport SidebarNavigationScreenDetailsFooter from '../sidebar-navigation-screen-details-footer';\n\nexport default function SidebarNavigationScreenPage() {\n\tconst navigator = useNavigator();\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst {\n\t\tparams: { postId },\n\t} = useNavigator();\n\tconst { record } = useEntityRecord( 'postType', 'page', postId );\n\n\tconst { featuredMediaAltText, featuredMediaSourceUrl } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\t// Featured image.\n\t\t\tconst attachedMedia = record?.featured_media\n\t\t\t\t? getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'attachment',\n\t\t\t\t\t\trecord?.featured_media\n\t\t\t\t )\n\t\t\t\t: null;\n\n\t\t\treturn {\n\t\t\t\tfeaturedMediaSourceUrl:\n\t\t\t\t\tattachedMedia?.media_details.sizes?.medium?.source_url ||\n\t\t\t\t\tattachedMedia?.source_url,\n\t\t\t\tfeaturedMediaAltText: escapeAttribute(\n\t\t\t\t\tattachedMedia?.alt_text ||\n\t\t\t\t\t\tattachedMedia?.description?.raw ||\n\t\t\t\t\t\t''\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ record ]\n\t);\n\n\tconst featureImageAltText = featuredMediaAltText\n\t\t? decodeEntities( featuredMediaAltText )\n\t\t: decodeEntities( record?.title?.rendered || __( 'Featured image' ) );\n\n\treturn record ? (\n\t\t<SidebarNavigationScreen\n\t\t\ttitle={ decodeEntities(\n\t\t\t\trecord?.title?.rendered || __( '(no title)' )\n\t\t\t) }\n\t\t\tactions={\n\t\t\t\t<>\n\t\t\t\t\t<PageActions\n\t\t\t\t\t\tpostId={ postId }\n\t\t\t\t\t\ttoggleProps={ { as: SidebarButton } }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tnavigator.goTo( '/page' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\tonClick={ () => setCanvasMode( 'edit' ) }\n\t\t\t\t\t\tlabel={ __( 'Edit' ) }\n\t\t\t\t\t\ticon={ pencil }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t}\n\t\t\tmeta={\n\t\t\t\t<ExternalLink\n\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__page-link\"\n\t\t\t\t\thref={ record.link }\n\t\t\t\t>\n\t\t\t\t\t{ filterURLForDisplay(\n\t\t\t\t\t\tsafeDecodeURIComponent( record.link )\n\t\t\t\t\t) }\n\t\t\t\t</ExternalLink>\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ !! featuredMediaSourceUrl && (\n\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-page__featured-image-wrapper\"\n\t\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"edit-site-sidebar-navigation-screen-page__featured-image has-image\">\n\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\talt={ featureImageAltText }\n\t\t\t\t\t\t\t\t\tsrc={ featuredMediaSourceUrl }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t) }\n\t\t\t\t\t{ !! record?.excerpt?.rendered && (\n\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-page__excerpt\"\n\t\t\t\t\t\t\tnumberOfLines={ 3 }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ stripHTML( record.excerpt.rendered ) }\n\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t) }\n\t\t\t\t\t<PageDetails id={ postId } />\n\t\t\t\t</>\n\t\t\t}\n\t\t\tfooter={\n\t\t\t\trecord?.modified ? (\n\t\t\t\t\t<SidebarNavigationScreenDetailsFooter record={ record } />\n\t\t\t\t) : null\n\t\t\t}\n\t\t/>\n\t) : null;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","useDispatch","useSelect","__experimentalUseNavigator","useNavigator","__experimentalVStack","VStack","ExternalLink","__experimentalTruncate","Truncate","store","coreStore","useEntityRecord","decodeEntities","pencil","__unstableStripHTML","stripHTML","escapeAttribute","safeDecodeURIComponent","filterURLForDisplay","useEffect","privateApis","routerPrivateApis","SidebarNavigationScreen","unlock","editSiteStore","SidebarButton","PageDetails","PageActions","SidebarNavigationScreenDetailsFooter","useHistory","SidebarNavigationScreenPage","setCanvasMode","history","params","postId","goTo","record","hasResolved","featuredMediaAltText","featuredMediaSourceUrl","select","getEntityRecord","attachedMedia","featured_media","media_details","sizes","medium","source_url","alt_text","description","raw","push","path","undefined","postType","canvas","featureImageAltText","title","rendered","createElement","actions","Fragment","toggleProps","as","onRemove","onClick","label","icon","meta","className","href","link","content","alignment","spacing","alt","src","excerpt","numberOfLines","id","footer","modified"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-page/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalVStack as VStack,\n\tExternalLink,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { store as coreStore, useEntityRecord } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { pencil } from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { escapeAttribute } from '@wordpress/escape-html';\nimport { safeDecodeURIComponent, filterURLForDisplay } from '@wordpress/url';\nimport { useEffect } from '@wordpress/element';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport SidebarButton from '../sidebar-button';\nimport PageDetails from './page-details';\nimport PageActions from '../page-actions';\nimport SidebarNavigationScreenDetailsFooter from '../sidebar-navigation-screen-details-footer';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport default function SidebarNavigationScreenPage() {\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst history = useHistory();\n\tconst {\n\t\tparams: { postId },\n\t\tgoTo,\n\t} = useNavigator();\n\tconst { record, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'page',\n\t\tpostId\n\t);\n\n\tconst { featuredMediaAltText, featuredMediaSourceUrl } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\t// Featured image.\n\t\t\tconst attachedMedia = record?.featured_media\n\t\t\t\t? getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'attachment',\n\t\t\t\t\t\trecord?.featured_media\n\t\t\t\t )\n\t\t\t\t: null;\n\n\t\t\treturn {\n\t\t\t\tfeaturedMediaSourceUrl:\n\t\t\t\t\tattachedMedia?.media_details.sizes?.medium?.source_url ||\n\t\t\t\t\tattachedMedia?.source_url,\n\t\t\t\tfeaturedMediaAltText: escapeAttribute(\n\t\t\t\t\tattachedMedia?.alt_text ||\n\t\t\t\t\t\tattachedMedia?.description?.raw ||\n\t\t\t\t\t\t''\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ record ]\n\t);\n\n\t// Redirect to the main pages navigation screen if the page is not found or has been deleted.\n\tuseEffect( () => {\n\t\tif ( hasResolved && ! record ) {\n\t\t\thistory.push( {\n\t\t\t\tpath: '/page',\n\t\t\t\tpostId: undefined,\n\t\t\t\tpostType: undefined,\n\t\t\t\tcanvas: 'view',\n\t\t\t} );\n\t\t}\n\t}, [ hasResolved, history ] );\n\n\tconst featureImageAltText = featuredMediaAltText\n\t\t? decodeEntities( featuredMediaAltText )\n\t\t: decodeEntities( record?.title?.rendered || __( 'Featured image' ) );\n\n\treturn record ? (\n\t\t<SidebarNavigationScreen\n\t\t\ttitle={ decodeEntities(\n\t\t\t\trecord?.title?.rendered || __( '(no title)' )\n\t\t\t) }\n\t\t\tactions={\n\t\t\t\t<>\n\t\t\t\t\t<PageActions\n\t\t\t\t\t\tpostId={ postId }\n\t\t\t\t\t\ttoggleProps={ { as: SidebarButton } }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tgoTo( '/page' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\tonClick={ () => setCanvasMode( 'edit' ) }\n\t\t\t\t\t\tlabel={ __( 'Edit' ) }\n\t\t\t\t\t\ticon={ pencil }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t}\n\t\t\tmeta={\n\t\t\t\t<ExternalLink\n\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__page-link\"\n\t\t\t\t\thref={ record.link }\n\t\t\t\t>\n\t\t\t\t\t{ filterURLForDisplay(\n\t\t\t\t\t\tsafeDecodeURIComponent( record.link )\n\t\t\t\t\t) }\n\t\t\t\t</ExternalLink>\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ !! featuredMediaSourceUrl && (\n\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-page__featured-image-wrapper\"\n\t\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"edit-site-sidebar-navigation-screen-page__featured-image has-image\">\n\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\talt={ featureImageAltText }\n\t\t\t\t\t\t\t\t\tsrc={ featuredMediaSourceUrl }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t) }\n\t\t\t\t\t{ !! record?.excerpt?.rendered && (\n\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-page__excerpt\"\n\t\t\t\t\t\t\tnumberOfLines={ 3 }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ stripHTML( record.excerpt.rendered ) }\n\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t) }\n\t\t\t\t\t<PageDetails id={ postId } />\n\t\t\t\t</>\n\t\t\t}\n\t\t\tfooter={\n\t\t\t\trecord?.modified ? (\n\t\t\t\t\t<SidebarNavigationScreenDetailsFooter record={ record } />\n\t\t\t\t) : null\n\t\t\t}\n\t\t/>\n\t) : null;\n}\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ import classnames from 'classnames';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
- import { __unstableComposite as Composite, __unstableUseCompositeState as useCompositeState, __unstableCompositeItem as CompositeItem, Disabled, TabPanel } from '@wordpress/components';
10
+ import { Disabled, TabPanel, privateApis as componentsPrivateApis } from '@wordpress/components';
11
11
  import { __, sprintf } from '@wordpress/i18n';
12
12
  import { getCategories, getBlockTypes, getBlockFromExample, createBlock } from '@wordpress/blocks';
13
13
  import { BlockList, privateApis as blockEditorPrivateApis, store as blockEditorStore, __unstableEditorStyles as EditorStyles, __unstableIframe as Iframe } from '@wordpress/block-editor';
@@ -25,6 +25,11 @@ const {
25
25
  ExperimentalBlockEditorProvider,
26
26
  useGlobalStyle
27
27
  } = unlock(blockEditorPrivateApis);
28
+ const {
29
+ CompositeV2: Composite,
30
+ CompositeItemV2: CompositeItem,
31
+ useCompositeStoreV2: useCompositeStore
32
+ } = unlock(componentsPrivateApis);
28
33
 
29
34
  // The content area of the Style Book is rendered within an iframe so that global styles
30
35
  // are applied to elements within the entire content area. To support elements that are
@@ -49,6 +54,8 @@ const STYLE_BOOK_IFRAME_STYLES = `
49
54
  padding: 16px;
50
55
  width: 100%;
51
56
  box-sizing: border-box;
57
+ scroll-margin-top: 32px;
58
+ scroll-margin-bottom: 32px;
52
59
  }
53
60
 
54
61
  .edit-site-style-book__example.is-selected {
@@ -254,7 +261,8 @@ const StyleBookBody = ({
254
261
  // translators: %s: Category of blocks, e.g. Text.
255
262
  __('Examples of blocks in the %s category'), title) : __('Examples of blocks'),
256
263
  isSelected: isSelected,
257
- onSelect: onSelect
264
+ onSelect: onSelect,
265
+ key: category
258
266
  }));
259
267
  };
260
268
  const Examples = memo(({
@@ -265,17 +273,17 @@ const Examples = memo(({
265
273
  isSelected,
266
274
  onSelect
267
275
  }) => {
268
- const composite = useCompositeState({
276
+ const compositeStore = useCompositeStore({
269
277
  orientation: 'vertical'
270
278
  });
271
279
  return createElement(Composite, {
272
- ...composite,
280
+ store: compositeStore,
273
281
  className: className,
274
- "aria-label": label
282
+ "aria-label": label,
283
+ role: "grid"
275
284
  }, examples.filter(example => category ? example.category === category : true).map(example => createElement(Example, {
276
285
  key: example.name,
277
286
  id: `example-${example.name}`,
278
- composite: composite,
279
287
  title: example.title,
280
288
  blocks: example.blocks,
281
289
  isSelected: isSelected(example.name),
@@ -285,7 +293,6 @@ const Examples = memo(({
285
293
  })));
286
294
  });
287
295
  const Example = ({
288
- composite,
289
296
  id,
290
297
  title,
291
298
  blocks,
@@ -300,8 +307,11 @@ const Example = ({
300
307
 
301
308
  // Cache the list of blocks to avoid additional processing when the component is re-rendered.
302
309
  const renderedBlocks = useMemo(() => Array.isArray(blocks) ? blocks : [blocks], [blocks]);
303
- return createElement(CompositeItem, {
304
- ...composite,
310
+ return createElement("div", {
311
+ role: "row"
312
+ }, createElement("div", {
313
+ role: "gridcell"
314
+ }, createElement(CompositeItem, {
305
315
  className: classnames('edit-site-style-book__example', {
306
316
  'is-selected': isSelected
307
317
  }),
@@ -309,9 +319,9 @@ const Example = ({
309
319
  "aria-label": sprintf(
310
320
  // translators: %s: Title of a block, e.g. Heading.
311
321
  __('Open %s styles in Styles panel'), title),
312
- onClick: onClick,
322
+ render: createElement("div", null),
313
323
  role: "button",
314
- as: "div"
324
+ onClick: onClick
315
325
  }, createElement("span", {
316
326
  className: "edit-site-style-book__example-title"
317
327
  }, title), createElement("div", {
@@ -324,7 +334,7 @@ const Example = ({
324
334
  settings: settings
325
335
  }, createElement(BlockList, {
326
336
  renderAppender: false
327
- })))));
337
+ })))))));
328
338
  };
329
339
  export default StyleBook;
330
340
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","__unstableComposite","Composite","__unstableUseCompositeState","useCompositeState","__unstableCompositeItem","CompositeItem","Disabled","TabPanel","__","sprintf","getCategories","getBlockTypes","getBlockFromExample","createBlock","BlockList","privateApis","blockEditorPrivateApis","store","blockEditorStore","__unstableEditorStyles","EditorStyles","__unstableIframe","Iframe","useSelect","useResizeObserver","useMemo","useState","memo","ENTER","SPACE","unlock","EditorCanvasContainer","ExperimentalBlockEditorProvider","useGlobalStyle","STYLE_BOOK_IFRAME_STYLES","getExamples","headingsExample","name","title","category","blocks","content","level","otherExamples","filter","blockType","example","supports","inserter","map","StyleBook","enableResizing","isSelected","onClick","onSelect","showCloseButton","showTabs","resizeObserver","sizes","textColor","backgroundColor","examples","tabs","some","slug","icon","originalSettings","select","getSettings","settings","__unstableIsPreviewMode","createElement","closeButtonLabel","className","width","style","color","background","tab","StyleBookBody","isFocused","setIsFocused","buttonModeProps","role","onFocus","onBlur","onKeyDown","event","defaultPrevented","keyCode","preventDefault","readonly","buttonModeStyles","tabIndex","styles","Examples","label","composite","orientation","Example","key","id","renderedBlocks","Array","isArray","as","value","renderAppender"],"sources":["@wordpress/edit-site/src/components/style-book/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n\tDisabled,\n\tTabPanel,\n} from '@wordpress/components';\n\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tgetCategories,\n\tgetBlockTypes,\n\tgetBlockFromExample,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useResizeObserver } from '@wordpress/compose';\nimport { useMemo, useState, memo } from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport EditorCanvasContainer from '../editor-canvas-container';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\n\n// The content area of the Style Book is rendered within an iframe so that global styles\n// are applied to elements within the entire content area. To support elements that are\n// not part of the block previews, such as headings and layout for the block previews,\n// additional CSS rules need to be passed into the iframe. These are hard-coded below.\n// Note that button styles are unset, and then focus rules from the `Button` component are\n// applied to the `button` element, targeted via `.edit-site-style-book__example`.\n// This is to ensure that browser default styles for buttons are not applied to the previews.\nconst STYLE_BOOK_IFRAME_STYLES = `\n\t.edit-site-style-book__examples {\n\t\tmax-width: 900px;\n\t\tmargin: 0 auto;\n\t}\n\n\t.edit-site-style-book__example {\n\t\tborder-radius: 2px;\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 40px;\n\t\tmargin-bottom: 40px;\n\t\tpadding: 16px;\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t}\n\n\t.edit-site-style-book__example.is-selected {\n\t\tbox-shadow: 0 0 0 1px var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));\n\t}\n\n\t.edit-site-style-book__example:focus:not(:disabled) {\n\t\tbox-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));\n\t\toutline: 3px solid transparent;\n\t}\n\n\t.edit-site-style-book__examples.is-wide .edit-site-style-book__example {\n\t\tflex-direction: row;\n\t}\n\n\t.edit-site-style-book__example-title {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n\t\tfont-size: 11px;\n\t\tfont-weight: 500;\n\t\tline-height: normal;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\ttext-transform: uppercase;\n\t}\n\n\t.edit-site-style-book__examples.is-wide .edit-site-style-book__example-title {\n\t\ttext-align: right;\n\t\twidth: 120px;\n\t}\n\n\t.edit-site-style-book__example-preview {\n\t\twidth: 100%;\n\t}\n\n\t.edit-site-style-book__example-preview .block-editor-block-list__insertion-point,\n\t.edit-site-style-book__example-preview .block-list-appender {\n\t\tdisplay: none;\n\t}\n\n\t.edit-site-style-book__example-preview .is-root-container > .wp-block:first-child {\n\t\tmargin-top: 0;\n\t}\n\t.edit-site-style-book__example-preview .is-root-container > .wp-block:last-child {\n\t\tmargin-bottom: 0;\n\t}\n`;\n\nfunction getExamples() {\n\t// Use our own example for the Heading block so that we can show multiple\n\t// heading levels.\n\tconst headingsExample = {\n\t\tname: 'core/heading',\n\t\ttitle: __( 'Headings' ),\n\t\tcategory: 'text',\n\t\tblocks: [\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 1,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 2,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 3,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 4,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 5,\n\t\t\t} ),\n\t\t],\n\t};\n\n\tconst otherExamples = getBlockTypes()\n\t\t.filter( ( blockType ) => {\n\t\t\tconst { name, example, supports } = blockType;\n\t\t\treturn (\n\t\t\t\tname !== 'core/heading' &&\n\t\t\t\t!! example &&\n\t\t\t\tsupports.inserter !== false\n\t\t\t);\n\t\t} )\n\t\t.map( ( blockType ) => ( {\n\t\t\tname: blockType.name,\n\t\t\ttitle: blockType.title,\n\t\t\tcategory: blockType.category,\n\t\t\tblocks: getBlockFromExample( blockType.name, blockType.example ),\n\t\t} ) );\n\n\treturn [ headingsExample, ...otherExamples ];\n}\n\nfunction StyleBook( {\n\tenableResizing = true,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tshowCloseButton = true,\n\tshowTabs = true,\n} ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ textColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst examples = useMemo( getExamples, [] );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetCategories()\n\t\t\t\t.filter( ( category ) =>\n\t\t\t\t\texamples.some(\n\t\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( category ) => ( {\n\t\t\t\t\tname: category.slug,\n\t\t\t\t\ttitle: category.title,\n\t\t\t\t\ticon: category.icon,\n\t\t\t\t} ) ),\n\t\t[ examples ]\n\t);\n\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( { ...originalSettings, __unstableIsPreviewMode: true } ),\n\t\t[ originalSettings ]\n\t);\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\tenableResizing={ enableResizing }\n\t\t\tcloseButtonLabel={\n\t\t\t\tshowCloseButton ? __( 'Close Style Book' ) : null\n\t\t\t}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'edit-site-style-book', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t\t'is-button': !! onClick,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tbackground: backgroundColor,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ resizeObserver }\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<TabPanel\n\t\t\t\t\t\tclassName=\"edit-site-style-book__tab-panel\"\n\t\t\t\t\t\ttabs={ tabs }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( tab ) => (\n\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\tcategory={ tab.name }\n\t\t\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TabPanel>\n\t\t\t\t) : (\n\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\nconst StyleBookBody = ( {\n\tcategory,\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\tsizes,\n\ttitle,\n} ) => {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\t// The presence of an `onClick` prop indicates that the Style Book is being used as a button.\n\t// In this case, add additional props to the iframe to make it behave like a button.\n\tconst buttonModeProps = {\n\t\trole: 'button',\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( onClick && ( keyCode === ENTER || keyCode === SPACE ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\tonClick: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( onClick ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\n\tconst buttonModeStyles = onClick\n\t\t? 'body { cursor: pointer; } body * { pointer-events: none; }'\n\t\t: '';\n\n\treturn (\n\t\t<Iframe\n\t\t\tclassName={ classnames( 'edit-site-style-book__iframe', {\n\t\t\t\t'is-focused': isFocused && !! onClick,\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tname=\"style-book-canvas\"\n\t\t\ttabIndex={ 0 }\n\t\t\t{ ...( onClick ? buttonModeProps : {} ) }\n\t\t>\n\t\t\t<EditorStyles styles={ settings.styles } />\n\t\t\t<style>\n\t\t\t\t{\n\t\t\t\t\t// Forming a \"block formatting context\" to prevent margin collapsing.\n\t\t\t\t\t// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context\n\t\t\t\t\t`.is-root-container { display: flow-root; }\n\t\t\t\t\t\tbody { position: relative; padding: 32px !important; }` +\n\t\t\t\t\t\tSTYLE_BOOK_IFRAME_STYLES +\n\t\t\t\t\t\tbuttonModeStyles\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<Examples\n\t\t\t\tclassName={ classnames( 'edit-site-style-book__examples', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t} ) }\n\t\t\t\texamples={ examples }\n\t\t\t\tcategory={ category }\n\t\t\t\tlabel={\n\t\t\t\t\ttitle\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Category of blocks, e.g. Text.\n\t\t\t\t\t\t\t\t__( 'Examples of blocks in the %s category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Examples of blocks' )\n\t\t\t\t}\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, examples, category, label, isSelected, onSelect } ) => {\n\t\tconst composite = useCompositeState( { orientation: 'vertical' } );\n\t\treturn (\n\t\t\t<Composite\n\t\t\t\t{ ...composite }\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ label }\n\t\t\t>\n\t\t\t\t{ examples\n\t\t\t\t\t.filter( ( example ) =>\n\t\t\t\t\t\tcategory ? example.category === category : true\n\t\t\t\t\t)\n\t\t\t\t\t.map( ( example ) => (\n\t\t\t\t\t\t<Example\n\t\t\t\t\t\t\tkey={ example.name }\n\t\t\t\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\t\t\tisSelected={ isSelected( example.name ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonSelect?.( example.name );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t);\n\t}\n);\n\nconst Example = ( { composite, id, title, blocks, isSelected, onClick } ) => {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( { ...originalSettings, __unstableIsPreviewMode: true } ),\n\t\t[ originalSettings ]\n\t);\n\n\t// Cache the list of blocks to avoid additional processing when the component is re-rendered.\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\treturn (\n\t\t<CompositeItem\n\t\t\t{ ...composite }\n\t\t\tclassName={ classnames( 'edit-site-style-book__example', {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t} ) }\n\t\t\tid={ id }\n\t\t\taria-label={ sprintf(\n\t\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\t\ttitle\n\t\t\t) }\n\t\t\tonClick={ onClick }\n\t\t\trole=\"button\"\n\t\t\tas=\"div\"\n\t\t>\n\t\t\t<span className=\"edit-site-style-book__example-title\">\n\t\t\t\t{ title }\n\t\t\t</span>\n\t\t\t<div className=\"edit-site-style-book__example-preview\" aria-hidden>\n\t\t\t\t<Disabled className=\"edit-site-style-book__example-preview__content\">\n\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\tvalue={ renderedBlocks }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t</Disabled>\n\t\t\t</div>\n\t\t</CompositeItem>\n\t);\n};\n\nexport default StyleBook;\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","Disabled","TabPanel","privateApis","componentsPrivateApis","__","sprintf","getCategories","getBlockTypes","getBlockFromExample","createBlock","BlockList","blockEditorPrivateApis","store","blockEditorStore","__unstableEditorStyles","EditorStyles","__unstableIframe","Iframe","useSelect","useResizeObserver","useMemo","useState","memo","ENTER","SPACE","unlock","EditorCanvasContainer","ExperimentalBlockEditorProvider","useGlobalStyle","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","STYLE_BOOK_IFRAME_STYLES","getExamples","headingsExample","name","title","category","blocks","content","level","otherExamples","filter","blockType","example","supports","inserter","map","StyleBook","enableResizing","isSelected","onClick","onSelect","showCloseButton","showTabs","resizeObserver","sizes","textColor","backgroundColor","examples","tabs","some","slug","icon","originalSettings","select","getSettings","settings","__unstableIsPreviewMode","createElement","closeButtonLabel","className","width","style","color","background","tab","StyleBookBody","isFocused","setIsFocused","buttonModeProps","role","onFocus","onBlur","onKeyDown","event","defaultPrevented","keyCode","preventDefault","readonly","buttonModeStyles","tabIndex","styles","Examples","label","key","compositeStore","orientation","Example","id","renderedBlocks","Array","isArray","render","value","renderAppender"],"sources":["@wordpress/edit-site/src/components/style-book/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDisabled,\n\tTabPanel,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tgetCategories,\n\tgetBlockTypes,\n\tgetBlockFromExample,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useResizeObserver } from '@wordpress/compose';\nimport { useMemo, useState, memo } from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport EditorCanvasContainer from '../editor-canvas-container';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst {\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tuseCompositeStoreV2: useCompositeStore,\n} = unlock( componentsPrivateApis );\n\n// The content area of the Style Book is rendered within an iframe so that global styles\n// are applied to elements within the entire content area. To support elements that are\n// not part of the block previews, such as headings and layout for the block previews,\n// additional CSS rules need to be passed into the iframe. These are hard-coded below.\n// Note that button styles are unset, and then focus rules from the `Button` component are\n// applied to the `button` element, targeted via `.edit-site-style-book__example`.\n// This is to ensure that browser default styles for buttons are not applied to the previews.\nconst STYLE_BOOK_IFRAME_STYLES = `\n\t.edit-site-style-book__examples {\n\t\tmax-width: 900px;\n\t\tmargin: 0 auto;\n\t}\n\n\t.edit-site-style-book__example {\n\t\tborder-radius: 2px;\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 40px;\n\t\tmargin-bottom: 40px;\n\t\tpadding: 16px;\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\tscroll-margin-top: 32px;\n\t\tscroll-margin-bottom: 32px;\n\t}\n\n\t.edit-site-style-book__example.is-selected {\n\t\tbox-shadow: 0 0 0 1px var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));\n\t}\n\n\t.edit-site-style-book__example:focus:not(:disabled) {\n\t\tbox-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));\n\t\toutline: 3px solid transparent;\n\t}\n\n\t.edit-site-style-book__examples.is-wide .edit-site-style-book__example {\n\t\tflex-direction: row;\n\t}\n\n\t.edit-site-style-book__example-title {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n\t\tfont-size: 11px;\n\t\tfont-weight: 500;\n\t\tline-height: normal;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\ttext-transform: uppercase;\n\t}\n\n\t.edit-site-style-book__examples.is-wide .edit-site-style-book__example-title {\n\t\ttext-align: right;\n\t\twidth: 120px;\n\t}\n\n\t.edit-site-style-book__example-preview {\n\t\twidth: 100%;\n\t}\n\n\t.edit-site-style-book__example-preview .block-editor-block-list__insertion-point,\n\t.edit-site-style-book__example-preview .block-list-appender {\n\t\tdisplay: none;\n\t}\n\n\t.edit-site-style-book__example-preview .is-root-container > .wp-block:first-child {\n\t\tmargin-top: 0;\n\t}\n\t.edit-site-style-book__example-preview .is-root-container > .wp-block:last-child {\n\t\tmargin-bottom: 0;\n\t}\n`;\n\nfunction getExamples() {\n\t// Use our own example for the Heading block so that we can show multiple\n\t// heading levels.\n\tconst headingsExample = {\n\t\tname: 'core/heading',\n\t\ttitle: __( 'Headings' ),\n\t\tcategory: 'text',\n\t\tblocks: [\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 1,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 2,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 3,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 4,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 5,\n\t\t\t} ),\n\t\t],\n\t};\n\n\tconst otherExamples = getBlockTypes()\n\t\t.filter( ( blockType ) => {\n\t\t\tconst { name, example, supports } = blockType;\n\t\t\treturn (\n\t\t\t\tname !== 'core/heading' &&\n\t\t\t\t!! example &&\n\t\t\t\tsupports.inserter !== false\n\t\t\t);\n\t\t} )\n\t\t.map( ( blockType ) => ( {\n\t\t\tname: blockType.name,\n\t\t\ttitle: blockType.title,\n\t\t\tcategory: blockType.category,\n\t\t\tblocks: getBlockFromExample( blockType.name, blockType.example ),\n\t\t} ) );\n\n\treturn [ headingsExample, ...otherExamples ];\n}\n\nfunction StyleBook( {\n\tenableResizing = true,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tshowCloseButton = true,\n\tshowTabs = true,\n} ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ textColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst examples = useMemo( getExamples, [] );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetCategories()\n\t\t\t\t.filter( ( category ) =>\n\t\t\t\t\texamples.some(\n\t\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( category ) => ( {\n\t\t\t\t\tname: category.slug,\n\t\t\t\t\ttitle: category.title,\n\t\t\t\t\ticon: category.icon,\n\t\t\t\t} ) ),\n\t\t[ examples ]\n\t);\n\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( { ...originalSettings, __unstableIsPreviewMode: true } ),\n\t\t[ originalSettings ]\n\t);\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\tenableResizing={ enableResizing }\n\t\t\tcloseButtonLabel={\n\t\t\t\tshowCloseButton ? __( 'Close Style Book' ) : null\n\t\t\t}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'edit-site-style-book', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t\t'is-button': !! onClick,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tbackground: backgroundColor,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ resizeObserver }\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<TabPanel\n\t\t\t\t\t\tclassName=\"edit-site-style-book__tab-panel\"\n\t\t\t\t\t\ttabs={ tabs }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( tab ) => (\n\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\tcategory={ tab.name }\n\t\t\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TabPanel>\n\t\t\t\t) : (\n\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\nconst StyleBookBody = ( {\n\tcategory,\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\tsizes,\n\ttitle,\n} ) => {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\t// The presence of an `onClick` prop indicates that the Style Book is being used as a button.\n\t// In this case, add additional props to the iframe to make it behave like a button.\n\tconst buttonModeProps = {\n\t\trole: 'button',\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( onClick && ( keyCode === ENTER || keyCode === SPACE ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\tonClick: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( onClick ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\n\tconst buttonModeStyles = onClick\n\t\t? 'body { cursor: pointer; } body * { pointer-events: none; }'\n\t\t: '';\n\n\treturn (\n\t\t<Iframe\n\t\t\tclassName={ classnames( 'edit-site-style-book__iframe', {\n\t\t\t\t'is-focused': isFocused && !! onClick,\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tname=\"style-book-canvas\"\n\t\t\ttabIndex={ 0 }\n\t\t\t{ ...( onClick ? buttonModeProps : {} ) }\n\t\t>\n\t\t\t<EditorStyles styles={ settings.styles } />\n\t\t\t<style>\n\t\t\t\t{\n\t\t\t\t\t// Forming a \"block formatting context\" to prevent margin collapsing.\n\t\t\t\t\t// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context\n\t\t\t\t\t`.is-root-container { display: flow-root; }\n\t\t\t\t\t\tbody { position: relative; padding: 32px !important; }` +\n\t\t\t\t\t\tSTYLE_BOOK_IFRAME_STYLES +\n\t\t\t\t\t\tbuttonModeStyles\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<Examples\n\t\t\t\tclassName={ classnames( 'edit-site-style-book__examples', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t} ) }\n\t\t\t\texamples={ examples }\n\t\t\t\tcategory={ category }\n\t\t\t\tlabel={\n\t\t\t\t\ttitle\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Category of blocks, e.g. Text.\n\t\t\t\t\t\t\t\t__( 'Examples of blocks in the %s category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Examples of blocks' )\n\t\t\t\t}\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tkey={ category }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, examples, category, label, isSelected, onSelect } ) => {\n\t\tconst compositeStore = useCompositeStore( { orientation: 'vertical' } );\n\n\t\treturn (\n\t\t\t<Composite\n\t\t\t\tstore={ compositeStore }\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ label }\n\t\t\t\trole=\"grid\"\n\t\t\t>\n\t\t\t\t{ examples\n\t\t\t\t\t.filter( ( example ) =>\n\t\t\t\t\t\tcategory ? example.category === category : true\n\t\t\t\t\t)\n\t\t\t\t\t.map( ( example ) => (\n\t\t\t\t\t\t<Example\n\t\t\t\t\t\t\tkey={ example.name }\n\t\t\t\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\t\t\tisSelected={ isSelected( example.name ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonSelect?.( example.name );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t);\n\t}\n);\n\nconst Example = ( { id, title, blocks, isSelected, onClick } ) => {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( { ...originalSettings, __unstableIsPreviewMode: true } ),\n\t\t[ originalSettings ]\n\t);\n\n\t// Cache the list of blocks to avoid additional processing when the component is re-rendered.\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\treturn (\n\t\t<div role=\"row\">\n\t\t\t<div role=\"gridcell\">\n\t\t\t\t<CompositeItem\n\t\t\t\t\tclassName={ classnames( 'edit-site-style-book__example', {\n\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t} ) }\n\t\t\t\t\tid={ id }\n\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t\t) }\n\t\t\t\t\trender={ <div /> }\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"edit-site-style-book__example-title\">\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</span>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-site-style-book__example-preview\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<Disabled className=\"edit-site-style-book__example-preview__content\">\n\t\t\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\t\t\tvalue={ renderedBlocks }\n\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t\t\t</Disabled>\n\t\t\t\t\t</div>\n\t\t\t\t</CompositeItem>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default StyleBook;\n"],"mappings":"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"}
@@ -21,22 +21,40 @@ function useResolveEditedEntityAndContext({
21
21
  postType
22
22
  }) {
23
23
  const {
24
- isRequestingSite,
24
+ hasLoadedAllDependencies,
25
25
  homepageId,
26
- url
26
+ url,
27
+ frontPageTemplateId
27
28
  } = useSelect(select => {
28
29
  const {
29
30
  getSite,
30
- getUnstableBase
31
+ getUnstableBase,
32
+ getEntityRecords
31
33
  } = select(coreDataStore);
32
34
  const siteData = getSite();
33
35
  const base = getUnstableBase();
36
+ const templates = getEntityRecords('postType', TEMPLATE_POST_TYPE, {
37
+ per_page: -1
38
+ });
39
+ let _frontPateTemplateId;
40
+ if (templates) {
41
+ const frontPageTemplate = templates.find(t => t.slug === 'front-page');
42
+ _frontPateTemplateId = frontPageTemplate ? frontPageTemplate.id : false;
43
+ }
34
44
  return {
35
- isRequestingSite: !base,
36
- homepageId: siteData?.show_on_front === 'page' ? siteData.page_on_front : null,
37
- url: base?.home
45
+ hasLoadedAllDependencies: !!base && !!siteData,
46
+ homepageId: siteData?.show_on_front === 'page' ? siteData.page_on_front.toString() : null,
47
+ url: base?.home,
48
+ frontPageTemplateId: _frontPateTemplateId
38
49
  };
39
50
  }, []);
51
+
52
+ /**
53
+ * This is a hook that recreates the logic to resolve a template for a given WordPress postID postTypeId
54
+ * in order to match the frontend as closely as possible in the site editor.
55
+ *
56
+ * It is not possible to rely on the server logic because there maybe unsaved changes that impact the template resolution.
57
+ */
40
58
  const resolvedTemplateId = useSelect(select => {
41
59
  // If we're rendering a post type that doesn't have a template
42
60
  // no need to resolve its template.
@@ -50,6 +68,17 @@ function useResolveEditedEntityAndContext({
50
68
  __experimentalGetTemplateForLink
51
69
  } = select(coreDataStore);
52
70
  function resolveTemplateForPostTypeAndId(postTypeToResolve, postIdToResolve) {
71
+ // For the front page, we always use the front page template if existing.
72
+ if (postTypeToResolve === 'page' && homepageId === postIdToResolve) {
73
+ // We're still checking whether the front page template exists.
74
+ // Don't resolve the template yet.
75
+ if (frontPageTemplateId === undefined) {
76
+ return undefined;
77
+ }
78
+ if (!!frontPageTemplateId) {
79
+ return frontPageTemplateId;
80
+ }
81
+ }
53
82
  const editedEntity = getEditedEntityRecord('postType', postTypeToResolve, postIdToResolve);
54
83
  if (!editedEntity) {
55
84
  return undefined;
@@ -72,6 +101,9 @@ function useResolveEditedEntityAndContext({
72
101
  slug: `${postTypeToResolve}-${editedEntity?.slug}`
73
102
  });
74
103
  }
104
+ if (!hasLoadedAllDependencies) {
105
+ return undefined;
106
+ }
75
107
 
76
108
  // If we're rendering a specific page, post... we need to resolve its template.
77
109
  if (postType && postId) {
@@ -84,11 +116,11 @@ function useResolveEditedEntityAndContext({
84
116
  }
85
117
 
86
118
  // If we're not rendering a specific page, use the front page template.
87
- if (!isRequestingSite && url) {
119
+ if (url) {
88
120
  const template = __experimentalGetTemplateForLink(url);
89
121
  return template?.id;
90
122
  }
91
- }, [homepageId, isRequestingSite, url, postId, postType]);
123
+ }, [homepageId, hasLoadedAllDependencies, url, postId, postType, frontPageTemplateId]);
92
124
  const context = useMemo(() => {
93
125
  if (postTypesWithoutParentTemplate.includes(postType)) {
94
126
  return {};
@@ -115,7 +147,7 @@ function useResolveEditedEntityAndContext({
115
147
  context
116
148
  };
117
149
  }
118
- if (postType && postId || homepageId || !isRequestingSite) {
150
+ if (hasLoadedAllDependencies) {
119
151
  return {
120
152
  isReady: resolvedTemplateId !== undefined,
121
153
  postType: TEMPLATE_POST_TYPE,
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","useSelect","useDispatch","store","coreDataStore","privateApis","routerPrivateApis","editSiteStore","unlock","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","NAVIGATION_POST_TYPE","PATTERN_TYPES","useLocation","postTypesWithoutParentTemplate","user","useResolveEditedEntityAndContext","postId","postType","isRequestingSite","homepageId","url","select","getSite","getUnstableBase","siteData","base","show_on_front","page_on_front","home","resolvedTemplateId","includes","undefined","getEditedEntityRecord","getEntityRecords","getDefaultTemplateId","__experimentalGetTemplateForLink","resolveTemplateForPostTypeAndId","postTypeToResolve","postIdToResolve","editedEntity","currentTemplateSlug","template","currentTemplate","per_page","find","slug","id","context","isReady","useInitEditedEntity","params","setEditedEntity","useInitEditedEntityFromURL"],"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst postTypesWithoutParentTemplate = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES.user,\n];\n\nfunction useResolveEditedEntityAndContext( { postId, postType } ) {\n\tconst { isRequestingSite, homepageId, url } = useSelect( ( select ) => {\n\t\tconst { getSite, getUnstableBase } = select( coreDataStore );\n\t\tconst siteData = getSite();\n\t\tconst base = getUnstableBase();\n\n\t\treturn {\n\t\t\tisRequestingSite: ! base,\n\t\t\thomepageId:\n\t\t\t\tsiteData?.show_on_front === 'page'\n\t\t\t\t\t? siteData.page_on_front\n\t\t\t\t\t: null,\n\t\t\turl: base?.home,\n\t\t};\n\t}, [] );\n\n\tconst resolvedTemplateId = useSelect(\n\t\t( select ) => {\n\t\t\t// If we're rendering a post type that doesn't have a template\n\t\t\t// no need to resolve its template.\n\t\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\tgetDefaultTemplateId,\n\t\t\t\t__experimentalGetTemplateForLink,\n\t\t\t} = select( coreDataStore );\n\n\t\t\tfunction resolveTemplateForPostTypeAndId(\n\t\t\t\tpostTypeToResolve,\n\t\t\t\tpostIdToResolve\n\t\t\t) {\n\t\t\t\tconst editedEntity = getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeToResolve,\n\t\t\t\t\tpostIdToResolve\n\t\t\t\t);\n\t\t\t\tif ( ! editedEntity ) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\t// First see if the post/page has an assigned template and fetch it.\n\t\t\t\tconst currentTemplateSlug = editedEntity.template;\n\t\t\t\tif ( currentTemplateSlug ) {\n\t\t\t\t\tconst currentTemplate = getEntityRecords(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t\t}\n\t\t\t\t\t)?.find( ( { slug } ) => slug === currentTemplateSlug );\n\t\t\t\t\tif ( currentTemplate ) {\n\t\t\t\t\t\treturn currentTemplate.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If no template is assigned, use the default template.\n\t\t\t\treturn getDefaultTemplateId( {\n\t\t\t\t\tslug: `${ postTypeToResolve }-${ editedEntity?.slug }`,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// If we're rendering a specific page, post... we need to resolve its template.\n\t\t\tif ( postType && postId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( postType, postId );\n\t\t\t}\n\n\t\t\t// If we're rendering the home page, and we have a static home page, resolve its template.\n\t\t\tif ( homepageId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( 'page', homepageId );\n\t\t\t}\n\n\t\t\t// If we're not rendering a specific page, use the front page template.\n\t\t\tif ( ! isRequestingSite && url ) {\n\t\t\t\tconst template = __experimentalGetTemplateForLink( url );\n\t\t\t\treturn template?.id;\n\t\t\t}\n\t\t},\n\t\t[ homepageId, isRequestingSite, url, postId, postType ]\n\t);\n\n\tconst context = useMemo( () => {\n\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tif ( postType && postId ) {\n\t\t\treturn { postType, postId };\n\t\t}\n\n\t\tif ( homepageId ) {\n\t\t\treturn { postType: 'page', postId: homepageId };\n\t\t}\n\n\t\treturn {};\n\t}, [ homepageId, postType, postId ] );\n\n\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\treturn { isReady: true, postType, postId, context };\n\t}\n\n\tif ( ( postType && postId ) || homepageId || ! isRequestingSite ) {\n\t\treturn {\n\t\t\tisReady: resolvedTemplateId !== undefined,\n\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\tpostId: resolvedTemplateId,\n\t\t\tcontext,\n\t\t};\n\t}\n\n\treturn { isReady: false };\n}\n\nexport function useInitEditedEntity( params ) {\n\tconst { postType, postId, context, isReady } =\n\t\tuseResolveEditedEntityAndContext( params );\n\n\tconst { setEditedEntity } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( isReady ) {\n\t\t\tsetEditedEntity( postType, postId, context );\n\t\t}\n\t}, [ isReady, postType, postId, context, setEditedEntity ] );\n}\n\nexport default function useInitEditedEntityFromURL() {\n\tconst { params = {} } = useLocation();\n\treturn useInitEditedEntity( params );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["useEffect","useMemo","useSelect","useDispatch","store","coreDataStore","privateApis","routerPrivateApis","editSiteStore","unlock","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","NAVIGATION_POST_TYPE","PATTERN_TYPES","useLocation","postTypesWithoutParentTemplate","user","useResolveEditedEntityAndContext","postId","postType","hasLoadedAllDependencies","homepageId","url","frontPageTemplateId","select","getSite","getUnstableBase","getEntityRecords","siteData","base","templates","per_page","_frontPateTemplateId","frontPageTemplate","find","t","slug","id","show_on_front","page_on_front","toString","home","resolvedTemplateId","includes","undefined","getEditedEntityRecord","getDefaultTemplateId","__experimentalGetTemplateForLink","resolveTemplateForPostTypeAndId","postTypeToResolve","postIdToResolve","editedEntity","currentTemplateSlug","template","currentTemplate","context","isReady","useInitEditedEntity","params","setEditedEntity","useInitEditedEntityFromURL"],"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst postTypesWithoutParentTemplate = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES.user,\n];\n\nfunction useResolveEditedEntityAndContext( { postId, postType } ) {\n\tconst { hasLoadedAllDependencies, homepageId, url, frontPageTemplateId } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getSite, getUnstableBase, getEntityRecords } =\n\t\t\t\tselect( coreDataStore );\n\t\t\tconst siteData = getSite();\n\t\t\tconst base = getUnstableBase();\n\t\t\tconst templates = getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tper_page: -1,\n\t\t\t\t}\n\t\t\t);\n\t\t\tlet _frontPateTemplateId;\n\t\t\tif ( templates ) {\n\t\t\t\tconst frontPageTemplate = templates.find(\n\t\t\t\t\t( t ) => t.slug === 'front-page'\n\t\t\t\t);\n\t\t\t\t_frontPateTemplateId = frontPageTemplate\n\t\t\t\t\t? frontPageTemplate.id\n\t\t\t\t\t: false;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\thasLoadedAllDependencies: !! base && !! siteData,\n\t\t\t\thomepageId:\n\t\t\t\t\tsiteData?.show_on_front === 'page'\n\t\t\t\t\t\t? siteData.page_on_front.toString()\n\t\t\t\t\t\t: null,\n\t\t\t\turl: base?.home,\n\t\t\t\tfrontPageTemplateId: _frontPateTemplateId,\n\t\t\t};\n\t\t}, [] );\n\n\t/**\n\t * This is a hook that recreates the logic to resolve a template for a given WordPress postID postTypeId\n\t * in order to match the frontend as closely as possible in the site editor.\n\t *\n\t * It is not possible to rely on the server logic because there maybe unsaved changes that impact the template resolution.\n\t */\n\tconst resolvedTemplateId = useSelect(\n\t\t( select ) => {\n\t\t\t// If we're rendering a post type that doesn't have a template\n\t\t\t// no need to resolve its template.\n\t\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\tgetDefaultTemplateId,\n\t\t\t\t__experimentalGetTemplateForLink,\n\t\t\t} = select( coreDataStore );\n\n\t\t\tfunction resolveTemplateForPostTypeAndId(\n\t\t\t\tpostTypeToResolve,\n\t\t\t\tpostIdToResolve\n\t\t\t) {\n\t\t\t\t// For the front page, we always use the front page template if existing.\n\t\t\t\tif (\n\t\t\t\t\tpostTypeToResolve === 'page' &&\n\t\t\t\t\thomepageId === postIdToResolve\n\t\t\t\t) {\n\t\t\t\t\t// We're still checking whether the front page template exists.\n\t\t\t\t\t// Don't resolve the template yet.\n\t\t\t\t\tif ( frontPageTemplateId === undefined ) {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !! frontPageTemplateId ) {\n\t\t\t\t\t\treturn frontPageTemplateId;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst editedEntity = getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeToResolve,\n\t\t\t\t\tpostIdToResolve\n\t\t\t\t);\n\t\t\t\tif ( ! editedEntity ) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\t// First see if the post/page has an assigned template and fetch it.\n\t\t\t\tconst currentTemplateSlug = editedEntity.template;\n\t\t\t\tif ( currentTemplateSlug ) {\n\t\t\t\t\tconst currentTemplate = getEntityRecords(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t\t}\n\t\t\t\t\t)?.find( ( { slug } ) => slug === currentTemplateSlug );\n\t\t\t\t\tif ( currentTemplate ) {\n\t\t\t\t\t\treturn currentTemplate.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If no template is assigned, use the default template.\n\t\t\t\treturn getDefaultTemplateId( {\n\t\t\t\t\tslug: `${ postTypeToResolve }-${ editedEntity?.slug }`,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( ! hasLoadedAllDependencies ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// If we're rendering a specific page, post... we need to resolve its template.\n\t\t\tif ( postType && postId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( postType, postId );\n\t\t\t}\n\n\t\t\t// If we're rendering the home page, and we have a static home page, resolve its template.\n\t\t\tif ( homepageId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( 'page', homepageId );\n\t\t\t}\n\n\t\t\t// If we're not rendering a specific page, use the front page template.\n\t\t\tif ( url ) {\n\t\t\t\tconst template = __experimentalGetTemplateForLink( url );\n\t\t\t\treturn template?.id;\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\thomepageId,\n\t\t\thasLoadedAllDependencies,\n\t\t\turl,\n\t\t\tpostId,\n\t\t\tpostType,\n\t\t\tfrontPageTemplateId,\n\t\t]\n\t);\n\n\tconst context = useMemo( () => {\n\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tif ( postType && postId ) {\n\t\t\treturn { postType, postId };\n\t\t}\n\n\t\tif ( homepageId ) {\n\t\t\treturn { postType: 'page', postId: homepageId };\n\t\t}\n\n\t\treturn {};\n\t}, [ homepageId, postType, postId ] );\n\n\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\treturn { isReady: true, postType, postId, context };\n\t}\n\n\tif ( hasLoadedAllDependencies ) {\n\t\treturn {\n\t\t\tisReady: resolvedTemplateId !== undefined,\n\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\tpostId: resolvedTemplateId,\n\t\t\tcontext,\n\t\t};\n\t}\n\n\treturn { isReady: false };\n}\n\nexport function useInitEditedEntity( params ) {\n\tconst { postType, postId, context, isReady } =\n\t\tuseResolveEditedEntityAndContext( params );\n\n\tconst { setEditedEntity } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( isReady ) {\n\t\t\tsetEditedEntity( postType, postId, context );\n\t\t}\n\t}, [ isReady, postType, postId, context, setEditedEntity ] );\n}\n\nexport default function useInitEditedEntityFromURL() {\n\tconst { params = {} } = useLocation();\n\treturn useInitEditedEntity( params );\n}\n"],"mappings":"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"}
@@ -19,9 +19,9 @@ export default function WelcomeGuidePage() {
19
19
  const isPageActive = !!select(preferencesStore).get('core/edit-site', 'welcomeGuidePage');
20
20
  const isEditorActive = !!select(preferencesStore).get('core/edit-site', 'welcomeGuide');
21
21
  const {
22
- hasPageContentFocus
22
+ isPage
23
23
  } = select(editSiteStore);
24
- return isPageActive && !isEditorActive && hasPageContentFocus();
24
+ return isPageActive && !isEditorActive && isPage();
25
25
  }, []);
26
26
  if (!isVisible) {
27
27
  return null;
@@ -1 +1 @@
1
- {"version":3,"names":["useDispatch","useSelect","Guide","__","store","preferencesStore","editSiteStore","WelcomeGuidePage","toggle","isVisible","select","isPageActive","get","isEditorActive","hasPageContentFocus","heading","createElement","className","contentLabel","finishButtonText","onFinish","pages","image","autoPlay","loop","muted","width","height","src","type","content","Fragment"],"sources":["@wordpress/edit-site/src/components/welcome-guide/page.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { Guide } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\n\nexport default function WelcomeGuidePage() {\n\tconst { toggle } = useDispatch( preferencesStore );\n\n\tconst isVisible = useSelect( ( select ) => {\n\t\tconst isPageActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuidePage'\n\t\t);\n\t\tconst isEditorActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuide'\n\t\t);\n\t\tconst { hasPageContentFocus } = select( editSiteStore );\n\t\treturn isPageActive && ! isEditorActive && hasPageContentFocus();\n\t}, [] );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\tconst heading = __( 'Editing a page' );\n\n\treturn (\n\t\t<Guide\n\t\t\tclassName=\"edit-site-welcome-guide guide-page\"\n\t\t\tcontentLabel={ heading }\n\t\t\tfinishButtonText={ __( 'Continue' ) }\n\t\t\tonFinish={ () => toggle( 'core/edit-site', 'welcomeGuidePage' ) }\n\t\t\tpages={ [\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<video\n\t\t\t\t\t\t\tclassName=\"edit-site-welcome-guide__video\"\n\t\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\t\tloop\n\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\twidth=\"312\"\n\t\t\t\t\t\t\theight=\"240\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<source\n\t\t\t\t\t\t\t\tsrc=\"https://s.w.org/images/block-editor/editing-your-page.mp4\"\n\t\t\t\t\t\t\t\ttype=\"video/mp4\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</video>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-site-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ heading }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-site-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'It’s now possible to edit page content in the site editor. To customise other parts of the page like the header and footer switch to editing the template using the settings sidebar.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t] }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,wBAAwB;;AAElE;AACA;AACA;AACA,SAASD,KAAK,IAAIE,aAAa,QAAQ,aAAa;AAEpD,eAAe,SAASC,gBAAgBA,CAAA,EAAG;EAC1C,MAAM;IAAEC;EAAO,CAAC,GAAGR,WAAW,CAAEK,gBAAiB,CAAC;EAElD,MAAMI,SAAS,GAAGR,SAAS,CAAIS,MAAM,IAAM;IAC1C,MAAMC,YAAY,GAAG,CAAC,CAAED,MAAM,CAAEL,gBAAiB,CAAC,CAACO,GAAG,CACrD,gBAAgB,EAChB,kBACD,CAAC;IACD,MAAMC,cAAc,GAAG,CAAC,CAAEH,MAAM,CAAEL,gBAAiB,CAAC,CAACO,GAAG,CACvD,gBAAgB,EAChB,cACD,CAAC;IACD,MAAM;MAAEE;IAAoB,CAAC,GAAGJ,MAAM,CAAEJ,aAAc,CAAC;IACvD,OAAOK,YAAY,IAAI,CAAEE,cAAc,IAAIC,mBAAmB,CAAC,CAAC;EACjE,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAEL,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,MAAMM,OAAO,GAAGZ,EAAE,CAAE,gBAAiB,CAAC;EAEtC,OACCa,aAAA,CAACd,KAAK;IACLe,SAAS,EAAC,oCAAoC;IAC9CC,YAAY,EAAGH,OAAS;IACxBI,gBAAgB,EAAGhB,EAAE,CAAE,UAAW,CAAG;IACrCiB,QAAQ,EAAGA,CAAA,KAAMZ,MAAM,CAAE,gBAAgB,EAAE,kBAAmB,CAAG;IACjEa,KAAK,EAAG,CACP;MACCC,KAAK,EACJN,aAAA;QACCC,SAAS,EAAC,gCAAgC;QAC1CM,QAAQ;QACRC,IAAI;QACJC,KAAK;QACLC,KAAK,EAAC,KAAK;QACXC,MAAM,EAAC;MAAK,GAEZX,aAAA;QACCY,GAAG,EAAC,2DAA2D;QAC/DC,IAAI,EAAC;MAAW,CAChB,CACK,CACP;MACDC,OAAO,EACNd,aAAA,CAAAe,QAAA,QACCf,aAAA;QAAIC,SAAS,EAAC;MAAkC,GAC7CF,OACC,CAAC,EACLC,aAAA;QAAGC,SAAS,EAAC;MAA+B,GACzCd,EAAE,CACH,uLACD,CACE,CACF;IAEJ,CAAC;EACC,CACH,CAAC;AAEJ"}
1
+ {"version":3,"names":["useDispatch","useSelect","Guide","__","store","preferencesStore","editSiteStore","WelcomeGuidePage","toggle","isVisible","select","isPageActive","get","isEditorActive","isPage","heading","createElement","className","contentLabel","finishButtonText","onFinish","pages","image","autoPlay","loop","muted","width","height","src","type","content","Fragment"],"sources":["@wordpress/edit-site/src/components/welcome-guide/page.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { Guide } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\n\nexport default function WelcomeGuidePage() {\n\tconst { toggle } = useDispatch( preferencesStore );\n\n\tconst isVisible = useSelect( ( select ) => {\n\t\tconst isPageActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuidePage'\n\t\t);\n\t\tconst isEditorActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuide'\n\t\t);\n\t\tconst { isPage } = select( editSiteStore );\n\t\treturn isPageActive && ! isEditorActive && isPage();\n\t}, [] );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\tconst heading = __( 'Editing a page' );\n\n\treturn (\n\t\t<Guide\n\t\t\tclassName=\"edit-site-welcome-guide guide-page\"\n\t\t\tcontentLabel={ heading }\n\t\t\tfinishButtonText={ __( 'Continue' ) }\n\t\t\tonFinish={ () => toggle( 'core/edit-site', 'welcomeGuidePage' ) }\n\t\t\tpages={ [\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<video\n\t\t\t\t\t\t\tclassName=\"edit-site-welcome-guide__video\"\n\t\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\t\tloop\n\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\twidth=\"312\"\n\t\t\t\t\t\t\theight=\"240\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<source\n\t\t\t\t\t\t\t\tsrc=\"https://s.w.org/images/block-editor/editing-your-page.mp4\"\n\t\t\t\t\t\t\t\ttype=\"video/mp4\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</video>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-site-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ heading }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-site-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'It’s now possible to edit page content in the site editor. To customise other parts of the page like the header and footer switch to editing the template using the settings sidebar.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t] }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,wBAAwB;;AAElE;AACA;AACA;AACA,SAASD,KAAK,IAAIE,aAAa,QAAQ,aAAa;AAEpD,eAAe,SAASC,gBAAgBA,CAAA,EAAG;EAC1C,MAAM;IAAEC;EAAO,CAAC,GAAGR,WAAW,CAAEK,gBAAiB,CAAC;EAElD,MAAMI,SAAS,GAAGR,SAAS,CAAIS,MAAM,IAAM;IAC1C,MAAMC,YAAY,GAAG,CAAC,CAAED,MAAM,CAAEL,gBAAiB,CAAC,CAACO,GAAG,CACrD,gBAAgB,EAChB,kBACD,CAAC;IACD,MAAMC,cAAc,GAAG,CAAC,CAAEH,MAAM,CAAEL,gBAAiB,CAAC,CAACO,GAAG,CACvD,gBAAgB,EAChB,cACD,CAAC;IACD,MAAM;MAAEE;IAAO,CAAC,GAAGJ,MAAM,CAAEJ,aAAc,CAAC;IAC1C,OAAOK,YAAY,IAAI,CAAEE,cAAc,IAAIC,MAAM,CAAC,CAAC;EACpD,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAEL,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,MAAMM,OAAO,GAAGZ,EAAE,CAAE,gBAAiB,CAAC;EAEtC,OACCa,aAAA,CAACd,KAAK;IACLe,SAAS,EAAC,oCAAoC;IAC9CC,YAAY,EAAGH,OAAS;IACxBI,gBAAgB,EAAGhB,EAAE,CAAE,UAAW,CAAG;IACrCiB,QAAQ,EAAGA,CAAA,KAAMZ,MAAM,CAAE,gBAAgB,EAAE,kBAAmB,CAAG;IACjEa,KAAK,EAAG,CACP;MACCC,KAAK,EACJN,aAAA;QACCC,SAAS,EAAC,gCAAgC;QAC1CM,QAAQ;QACRC,IAAI;QACJC,KAAK;QACLC,KAAK,EAAC,KAAK;QACXC,MAAM,EAAC;MAAK,GAEZX,aAAA;QACCY,GAAG,EAAC,2DAA2D;QAC/DC,IAAI,EAAC;MAAW,CAChB,CACK,CACP;MACDC,OAAO,EACNd,aAAA,CAAAe,QAAA,QACCf,aAAA;QAAIC,SAAS,EAAC;MAAkC,GAC7CF,OACC,CAAC,EACLC,aAAA;QAAGC,SAAS,EAAC;MAA+B,GACzCd,EAAE,CACH,uLACD,CACE,CACF;IAEJ,CAAC;EACC,CACH,CAAC;AAEJ"}
@@ -6,6 +6,7 @@ import { useDispatch, useSelect } from '@wordpress/data';
6
6
  import { Guide } from '@wordpress/components';
7
7
  import { __ } from '@wordpress/i18n';
8
8
  import { store as preferencesStore } from '@wordpress/preferences';
9
+ import { store as editorStore } from '@wordpress/editor';
9
10
 
10
11
  /**
11
12
  * Internal dependencies
@@ -19,10 +20,12 @@ export default function WelcomeGuideTemplate() {
19
20
  const isTemplateActive = !!select(preferencesStore).get('core/edit-site', 'welcomeGuideTemplate');
20
21
  const isEditorActive = !!select(preferencesStore).get('core/edit-site', 'welcomeGuide');
21
22
  const {
22
- isPage,
23
- hasPageContentFocus
23
+ isPage
24
24
  } = select(editSiteStore);
25
- return isTemplateActive && !isEditorActive && isPage() && !hasPageContentFocus();
25
+ const {
26
+ getRenderingMode
27
+ } = select(editorStore);
28
+ return isTemplateActive && !isEditorActive && isPage() && getRenderingMode() === 'template-only';
26
29
  }, []);
27
30
  if (!isVisible) {
28
31
  return null;
@@ -1 +1 @@
1
- {"version":3,"names":["useDispatch","useSelect","Guide","__","store","preferencesStore","editSiteStore","WelcomeGuideTemplate","toggle","isVisible","select","isTemplateActive","get","isEditorActive","isPage","hasPageContentFocus","heading","createElement","className","contentLabel","finishButtonText","onFinish","pages","image","autoPlay","loop","muted","width","height","src","type","content","Fragment"],"sources":["@wordpress/edit-site/src/components/welcome-guide/template.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { Guide } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\n\nexport default function WelcomeGuideTemplate() {\n\tconst { toggle } = useDispatch( preferencesStore );\n\n\tconst isVisible = useSelect( ( select ) => {\n\t\tconst isTemplateActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuideTemplate'\n\t\t);\n\t\tconst isEditorActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuide'\n\t\t);\n\t\tconst { isPage, hasPageContentFocus } = select( editSiteStore );\n\t\treturn (\n\t\t\tisTemplateActive &&\n\t\t\t! isEditorActive &&\n\t\t\tisPage() &&\n\t\t\t! hasPageContentFocus()\n\t\t);\n\t}, [] );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\tconst heading = __( 'Editing a template' );\n\n\treturn (\n\t\t<Guide\n\t\t\tclassName=\"edit-site-welcome-guide guide-template\"\n\t\t\tcontentLabel={ heading }\n\t\t\tfinishButtonText={ __( 'Continue' ) }\n\t\t\tonFinish={ () =>\n\t\t\t\ttoggle( 'core/edit-site', 'welcomeGuideTemplate' )\n\t\t\t}\n\t\t\tpages={ [\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<video\n\t\t\t\t\t\t\tclassName=\"edit-site-welcome-guide__video\"\n\t\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\t\tloop\n\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\twidth=\"312\"\n\t\t\t\t\t\t\theight=\"240\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<source\n\t\t\t\t\t\t\t\tsrc=\"https://s.w.org/images/block-editor/editing-your-template.mp4\"\n\t\t\t\t\t\t\t\ttype=\"video/mp4\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</video>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-site-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ heading }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-site-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Note that the same template can be used by multiple pages, so any changes made here may affect other pages on the site. To switch back to editing the page content click the ‘Back’ button in the toolbar.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t] }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,wBAAwB;;AAElE;AACA;AACA;AACA,SAASD,KAAK,IAAIE,aAAa,QAAQ,aAAa;AAEpD,eAAe,SAASC,oBAAoBA,CAAA,EAAG;EAC9C,MAAM;IAAEC;EAAO,CAAC,GAAGR,WAAW,CAAEK,gBAAiB,CAAC;EAElD,MAAMI,SAAS,GAAGR,SAAS,CAAIS,MAAM,IAAM;IAC1C,MAAMC,gBAAgB,GAAG,CAAC,CAAED,MAAM,CAAEL,gBAAiB,CAAC,CAACO,GAAG,CACzD,gBAAgB,EAChB,sBACD,CAAC;IACD,MAAMC,cAAc,GAAG,CAAC,CAAEH,MAAM,CAAEL,gBAAiB,CAAC,CAACO,GAAG,CACvD,gBAAgB,EAChB,cACD,CAAC;IACD,MAAM;MAAEE,MAAM;MAAEC;IAAoB,CAAC,GAAGL,MAAM,CAAEJ,aAAc,CAAC;IAC/D,OACCK,gBAAgB,IAChB,CAAEE,cAAc,IAChBC,MAAM,CAAC,CAAC,IACR,CAAEC,mBAAmB,CAAC,CAAC;EAEzB,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAEN,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,MAAMO,OAAO,GAAGb,EAAE,CAAE,oBAAqB,CAAC;EAE1C,OACCc,aAAA,CAACf,KAAK;IACLgB,SAAS,EAAC,wCAAwC;IAClDC,YAAY,EAAGH,OAAS;IACxBI,gBAAgB,EAAGjB,EAAE,CAAE,UAAW,CAAG;IACrCkB,QAAQ,EAAGA,CAAA,KACVb,MAAM,CAAE,gBAAgB,EAAE,sBAAuB,CACjD;IACDc,KAAK,EAAG,CACP;MACCC,KAAK,EACJN,aAAA;QACCC,SAAS,EAAC,gCAAgC;QAC1CM,QAAQ;QACRC,IAAI;QACJC,KAAK;QACLC,KAAK,EAAC,KAAK;QACXC,MAAM,EAAC;MAAK,GAEZX,aAAA;QACCY,GAAG,EAAC,+DAA+D;QACnEC,IAAI,EAAC;MAAW,CAChB,CACK,CACP;MACDC,OAAO,EACNd,aAAA,CAAAe,QAAA,QACCf,aAAA;QAAIC,SAAS,EAAC;MAAkC,GAC7CF,OACC,CAAC,EACLC,aAAA;QAAGC,SAAS,EAAC;MAA+B,GACzCf,EAAE,CACH,4MACD,CACE,CACF;IAEJ,CAAC;EACC,CACH,CAAC;AAEJ"}
1
+ {"version":3,"names":["useDispatch","useSelect","Guide","__","store","preferencesStore","editorStore","editSiteStore","WelcomeGuideTemplate","toggle","isVisible","select","isTemplateActive","get","isEditorActive","isPage","getRenderingMode","heading","createElement","className","contentLabel","finishButtonText","onFinish","pages","image","autoPlay","loop","muted","width","height","src","type","content","Fragment"],"sources":["@wordpress/edit-site/src/components/welcome-guide/template.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { Guide } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\n\nexport default function WelcomeGuideTemplate() {\n\tconst { toggle } = useDispatch( preferencesStore );\n\n\tconst isVisible = useSelect( ( select ) => {\n\t\tconst isTemplateActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuideTemplate'\n\t\t);\n\t\tconst isEditorActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuide'\n\t\t);\n\t\tconst { isPage } = select( editSiteStore );\n\t\tconst { getRenderingMode } = select( editorStore );\n\t\treturn (\n\t\t\tisTemplateActive &&\n\t\t\t! isEditorActive &&\n\t\t\tisPage() &&\n\t\t\tgetRenderingMode() === 'template-only'\n\t\t);\n\t}, [] );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\tconst heading = __( 'Editing a template' );\n\n\treturn (\n\t\t<Guide\n\t\t\tclassName=\"edit-site-welcome-guide guide-template\"\n\t\t\tcontentLabel={ heading }\n\t\t\tfinishButtonText={ __( 'Continue' ) }\n\t\t\tonFinish={ () =>\n\t\t\t\ttoggle( 'core/edit-site', 'welcomeGuideTemplate' )\n\t\t\t}\n\t\t\tpages={ [\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<video\n\t\t\t\t\t\t\tclassName=\"edit-site-welcome-guide__video\"\n\t\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\t\tloop\n\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\twidth=\"312\"\n\t\t\t\t\t\t\theight=\"240\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<source\n\t\t\t\t\t\t\t\tsrc=\"https://s.w.org/images/block-editor/editing-your-template.mp4\"\n\t\t\t\t\t\t\t\ttype=\"video/mp4\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</video>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-site-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ heading }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-site-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Note that the same template can be used by multiple pages, so any changes made here may affect other pages on the site. To switch back to editing the page content click the ‘Back’ button in the toolbar.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t] }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,wBAAwB;AAClE,SAASD,KAAK,IAAIE,WAAW,QAAQ,mBAAmB;;AAExD;AACA;AACA;AACA,SAASF,KAAK,IAAIG,aAAa,QAAQ,aAAa;AAEpD,eAAe,SAASC,oBAAoBA,CAAA,EAAG;EAC9C,MAAM;IAAEC;EAAO,CAAC,GAAGT,WAAW,CAAEK,gBAAiB,CAAC;EAElD,MAAMK,SAAS,GAAGT,SAAS,CAAIU,MAAM,IAAM;IAC1C,MAAMC,gBAAgB,GAAG,CAAC,CAAED,MAAM,CAAEN,gBAAiB,CAAC,CAACQ,GAAG,CACzD,gBAAgB,EAChB,sBACD,CAAC;IACD,MAAMC,cAAc,GAAG,CAAC,CAAEH,MAAM,CAAEN,gBAAiB,CAAC,CAACQ,GAAG,CACvD,gBAAgB,EAChB,cACD,CAAC;IACD,MAAM;MAAEE;IAAO,CAAC,GAAGJ,MAAM,CAAEJ,aAAc,CAAC;IAC1C,MAAM;MAAES;IAAiB,CAAC,GAAGL,MAAM,CAAEL,WAAY,CAAC;IAClD,OACCM,gBAAgB,IAChB,CAAEE,cAAc,IAChBC,MAAM,CAAC,CAAC,IACRC,gBAAgB,CAAC,CAAC,KAAK,eAAe;EAExC,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAEN,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,MAAMO,OAAO,GAAGd,EAAE,CAAE,oBAAqB,CAAC;EAE1C,OACCe,aAAA,CAAChB,KAAK;IACLiB,SAAS,EAAC,wCAAwC;IAClDC,YAAY,EAAGH,OAAS;IACxBI,gBAAgB,EAAGlB,EAAE,CAAE,UAAW,CAAG;IACrCmB,QAAQ,EAAGA,CAAA,KACVb,MAAM,CAAE,gBAAgB,EAAE,sBAAuB,CACjD;IACDc,KAAK,EAAG,CACP;MACCC,KAAK,EACJN,aAAA;QACCC,SAAS,EAAC,gCAAgC;QAC1CM,QAAQ;QACRC,IAAI;QACJC,KAAK;QACLC,KAAK,EAAC,KAAK;QACXC,MAAM,EAAC;MAAK,GAEZX,aAAA;QACCY,GAAG,EAAC,+DAA+D;QACnEC,IAAI,EAAC;MAAW,CAChB,CACK,CACP;MACDC,OAAO,EACNd,aAAA,CAAAe,QAAA,QACCf,aAAA;QAAIC,SAAS,EAAC;MAAkC,GAC7CF,OACC,CAAC,EACLC,aAAA;QAAGC,SAAS,EAAC;MAA+B,GACzChB,EAAE,CACH,4MACD,CACE,CACF;IAEJ,CAAC;EACC,CACH,CAAC;AAEJ"}
@@ -10,6 +10,7 @@ import { privateApis as routerPrivateApis } from '@wordpress/router';
10
10
  import { store as preferencesStore } from '@wordpress/preferences';
11
11
  import { store as interfaceStore } from '@wordpress/interface';
12
12
  import { store as noticesStore } from '@wordpress/notices';
13
+ import { store as editorStore } from '@wordpress/editor';
13
14
 
14
15
  /**
15
16
  * Internal dependencies
@@ -33,15 +34,24 @@ function usePageContentFocusCommands() {
33
34
  const {
34
35
  isPage,
35
36
  canvasMode,
36
- hasPageContentFocus
37
- } = useSelect(select => ({
38
- isPage: select(editSiteStore).isPage(),
39
- canvasMode: unlock(select(editSiteStore)).getCanvasMode(),
40
- hasPageContentFocus: select(editSiteStore).hasPageContentFocus()
41
- }), []);
37
+ renderingMode
38
+ } = useSelect(select => {
39
+ const {
40
+ isPage: _isPage,
41
+ getCanvasMode
42
+ } = unlock(select(editSiteStore));
43
+ const {
44
+ getRenderingMode
45
+ } = select(editorStore);
46
+ return {
47
+ isPage: _isPage(),
48
+ canvasMode: getCanvasMode(),
49
+ renderingMode: getRenderingMode()
50
+ };
51
+ }, []);
42
52
  const {
43
- setHasPageContentFocus
44
- } = useDispatch(editSiteStore);
53
+ setRenderingMode
54
+ } = useDispatch(editorStore);
45
55
  if (!isPage || canvasMode !== 'edit') {
46
56
  return {
47
57
  isLoading: false,
@@ -49,7 +59,7 @@ function usePageContentFocusCommands() {
49
59
  };
50
60
  }
51
61
  const commands = [];
52
- if (hasPageContentFocus) {
62
+ if (renderingMode !== 'template-only') {
53
63
  commands.push({
54
64
  name: 'core/switch-to-template-focus',
55
65
  /* translators: %1$s: template title */
@@ -58,7 +68,7 @@ function usePageContentFocusCommands() {
58
68
  callback: ({
59
69
  close
60
70
  }) => {
61
- setHasPageContentFocus(false);
71
+ setRenderingMode('template-only');
62
72
  close();
63
73
  }
64
74
  });
@@ -70,7 +80,7 @@ function usePageContentFocusCommands() {
70
80
  callback: ({
71
81
  close
72
82
  }) => {
73
- setHasPageContentFocus(true);
83
+ setRenderingMode('template-locked');
74
84
  close();
75
85
  }
76
86
  });
@@ -126,7 +136,7 @@ function useManipulateDocumentCommands() {
126
136
  revertTemplate
127
137
  } = useDispatch(editSiteStore);
128
138
  const history = useHistory();
129
- const hasPageContentFocus = useSelect(select => select(editSiteStore).hasPageContentFocus(), []);
139
+ const isEditingPage = useSelect(select => select(editSiteStore).isPage() && select(editorStore).getRenderingMode() !== 'template-only', []);
130
140
  if (!isLoaded) {
131
141
  return {
132
142
  isLoading: true,
@@ -134,7 +144,7 @@ function useManipulateDocumentCommands() {
134
144
  };
135
145
  }
136
146
  const commands = [];
137
- if (isTemplateRevertable(template) && !hasPageContentFocus) {
147
+ if (isTemplateRevertable(template) && !isEditingPage) {
138
148
  const label = template.type === TEMPLATE_POST_TYPE ? /* translators: %1$s: template title */
139
149
  sprintf('Reset template: %s', decodeEntities(template.title)) : /* translators: %1$s: template part title */
140
150
  sprintf('Reset template part: %s', decodeEntities(template.title));
@@ -150,7 +160,7 @@ function useManipulateDocumentCommands() {
150
160
  }
151
161
  });
152
162
  }
153
- if (isTemplateRemovable(template) && !hasPageContentFocus) {
163
+ if (isTemplateRemovable(template) && !isEditingPage) {
154
164
  const label = template.type === TEMPLATE_POST_TYPE ? /* translators: %1$s: template title */
155
165
  sprintf('Delete template: %s', decodeEntities(template.title)) : /* translators: %1$s: template part title */
156
166
  sprintf('Delete template part: %s', decodeEntities(template.title));