@wordpress/edit-site 7.0.0 → 7.2.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 (399) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +0 -7
  3. package/build/components/add-new-pattern/index.cjs.map +2 -2
  4. package/build/components/add-new-post/index.cjs.map +2 -2
  5. package/build/components/add-new-template/add-custom-generic-template-modal-content.cjs.map +2 -2
  6. package/build/components/add-new-template/add-custom-template-modal-content.cjs.map +2 -2
  7. package/build/components/add-new-template/index.cjs.map +2 -2
  8. package/build/components/add-new-template/utils.cjs.map +2 -2
  9. package/build/components/add-new-template-legacy/add-custom-generic-template-modal-content.cjs.map +2 -2
  10. package/build/components/add-new-template-legacy/add-custom-template-modal-content.cjs.map +2 -2
  11. package/build/components/add-new-template-legacy/index.cjs.map +2 -2
  12. package/build/components/add-new-template-legacy/utils.cjs.map +2 -2
  13. package/build/components/app/index.cjs.map +2 -2
  14. package/build/components/block-editor/use-editor-iframe-props.cjs.map +2 -2
  15. package/build/components/block-editor/use-navigate-to-entity-record.cjs.map +2 -2
  16. package/build/components/block-editor/use-site-editor-settings.cjs.map +2 -2
  17. package/build/components/block-editor/use-viewport-sync.cjs.map +2 -2
  18. package/build/components/canvas-loader/index.cjs +8 -3
  19. package/build/components/canvas-loader/index.cjs.map +3 -3
  20. package/build/components/dataviews-actions/index.cjs.map +2 -2
  21. package/build/components/editor/index.cjs +6 -5
  22. package/build/components/editor/index.cjs.map +3 -3
  23. package/build/components/editor/site-preview.cjs.map +2 -2
  24. package/build/components/editor/use-adapt-editor-to-canvas.cjs.map +2 -2
  25. package/build/components/editor/use-editor-title.cjs +1 -2
  26. package/build/components/editor/use-editor-title.cjs.map +3 -3
  27. package/build/components/editor/use-resolve-edited-entity.cjs.map +2 -2
  28. package/build/components/editor/use-revisions-url-sync.cjs +122 -0
  29. package/build/components/editor/use-revisions-url-sync.cjs.map +7 -0
  30. package/build/components/layout/animation.cjs.map +2 -2
  31. package/build/components/layout/hooks.cjs.map +2 -2
  32. package/build/components/layout/index.cjs +0 -1
  33. package/build/components/layout/index.cjs.map +2 -2
  34. package/build/components/media/index.cjs.map +2 -2
  35. package/build/components/more-menu/index.cjs.map +2 -2
  36. package/build/components/more-menu/site-export.cjs.map +2 -2
  37. package/build/components/more-menu/welcome-guide-menu-item.cjs.map +2 -2
  38. package/build/components/page-patterns/actions.cjs.map +2 -2
  39. package/build/components/page-patterns/delete-category-menu-item.cjs.map +2 -2
  40. package/build/components/page-patterns/fields.cjs.map +2 -2
  41. package/build/components/page-patterns/index.cjs.map +2 -2
  42. package/build/components/page-patterns/rename-category-menu-item.cjs.map +2 -2
  43. package/build/components/page-patterns/search-items.cjs.map +2 -2
  44. package/build/components/page-patterns/use-pattern-settings.cjs.map +2 -2
  45. package/build/components/page-patterns/use-patterns.cjs.map +2 -2
  46. package/build/components/page-templates/fields.cjs.map +2 -2
  47. package/build/components/page-templates/hooks.cjs.map +2 -2
  48. package/build/components/page-templates/index-legacy.cjs.map +2 -2
  49. package/build/components/page-templates/index.cjs.map +2 -2
  50. package/build/components/pagination/index.cjs.map +2 -2
  51. package/build/components/plugin-template-setting-panel/index.cjs.map +2 -2
  52. package/build/components/post-list/index.cjs.map +2 -2
  53. package/build/components/post-list/quick-edit-modal.cjs.map +2 -2
  54. package/build/components/post-list/use-notes-count.cjs.map +2 -2
  55. package/build/components/resizable-frame/index.cjs.map +2 -2
  56. package/build/components/routes/use-title.cjs.map +2 -2
  57. package/build/components/save-button/index.cjs +3 -3
  58. package/build/components/save-button/index.cjs.map +3 -3
  59. package/build/components/save-hub/index.cjs.map +2 -2
  60. package/build/components/save-keyboard-shortcut/index.cjs.map +2 -2
  61. package/build/components/save-panel/index.cjs +7 -4
  62. package/build/components/save-panel/index.cjs.map +3 -3
  63. package/build/components/sidebar/index.cjs.map +2 -2
  64. package/build/components/sidebar-button/index.cjs.map +2 -2
  65. package/build/components/sidebar-dataviews/index.cjs.map +2 -2
  66. package/build/components/sidebar-global-styles/index.cjs.map +2 -2
  67. package/build/components/sidebar-identity/index.cjs +5 -2
  68. package/build/components/sidebar-identity/index.cjs.map +2 -2
  69. package/build/components/sidebar-navigation-item/index.cjs.map +2 -2
  70. package/build/components/sidebar-navigation-screen/index.cjs.map +2 -2
  71. package/build/components/sidebar-navigation-screen-details-footer/index.cjs.map +2 -2
  72. package/build/components/sidebar-navigation-screen-global-styles/content.cjs.map +2 -2
  73. package/build/components/sidebar-navigation-screen-global-styles/index.cjs.map +2 -2
  74. package/build/components/sidebar-navigation-screen-identity/index.cjs.map +2 -2
  75. package/build/components/sidebar-navigation-screen-main/index.cjs.map +2 -2
  76. package/build/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.cjs.map +2 -2
  77. package/build/components/sidebar-navigation-screen-navigation-menu/index.cjs.map +2 -2
  78. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.cjs.map +2 -2
  79. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.cjs.map +2 -2
  80. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.cjs.map +2 -2
  81. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.cjs.map +2 -2
  82. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.cjs.map +2 -2
  83. package/build/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.cjs.map +2 -2
  84. package/build/components/sidebar-navigation-screen-navigation-menus/index.cjs.map +2 -2
  85. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.cjs +24 -25
  86. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.cjs.map +2 -2
  87. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.cjs.map +2 -2
  88. package/build/components/sidebar-navigation-screen-patterns/category-item.cjs.map +2 -2
  89. package/build/components/sidebar-navigation-screen-patterns/index.cjs +3 -2
  90. package/build/components/sidebar-navigation-screen-patterns/index.cjs.map +3 -3
  91. package/build/components/sidebar-navigation-screen-patterns/use-default-pattern-categories.cjs.map +2 -2
  92. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.cjs.map +2 -2
  93. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.cjs.map +2 -2
  94. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.cjs.map +2 -2
  95. package/build/components/sidebar-navigation-screen-templates-browse/content-legacy.cjs.map +2 -2
  96. package/build/components/sidebar-navigation-screen-templates-browse/content.cjs +1 -1
  97. package/build/components/sidebar-navigation-screen-templates-browse/content.cjs.map +2 -2
  98. package/build/components/sidebar-navigation-screen-templates-browse/index.cjs.map +2 -2
  99. package/build/components/sidebar-navigation-screen-unsupported/index.cjs.map +2 -2
  100. package/build/components/site-editor-routes/home.cjs.map +2 -2
  101. package/build/components/site-editor-routes/identity.cjs.map +2 -2
  102. package/build/components/site-editor-routes/index.cjs.map +2 -2
  103. package/build/components/site-editor-routes/navigation-item.cjs.map +2 -2
  104. package/build/components/site-editor-routes/navigation.cjs.map +2 -2
  105. package/build/components/site-editor-routes/notfound.cjs.map +2 -2
  106. package/build/components/site-editor-routes/page-item.cjs.map +2 -2
  107. package/build/components/site-editor-routes/pages.cjs.map +2 -2
  108. package/build/components/site-editor-routes/pattern-item.cjs.map +2 -2
  109. package/build/components/site-editor-routes/patterns.cjs.map +2 -2
  110. package/build/components/site-editor-routes/stylebook.cjs.map +2 -2
  111. package/build/components/site-editor-routes/styles.cjs +17 -12
  112. package/build/components/site-editor-routes/styles.cjs.map +2 -2
  113. package/build/components/site-editor-routes/template-item.cjs.map +2 -2
  114. package/build/components/site-editor-routes/template-part-item.cjs.map +2 -2
  115. package/build/components/site-editor-routes/templates.cjs.map +2 -2
  116. package/build/components/site-hub/index.cjs.map +2 -2
  117. package/build/components/welcome-guide/editor.cjs.map +2 -2
  118. package/build/components/welcome-guide/index.cjs.map +2 -2
  119. package/build/components/welcome-guide/page.cjs.map +2 -2
  120. package/build/components/welcome-guide/template.cjs.map +2 -2
  121. package/build/deprecated.cjs.map +2 -2
  122. package/build/hooks/commands/use-common-commands.cjs.map +2 -2
  123. package/build/hooks/commands/use-set-command-context.cjs.map +2 -2
  124. package/build/index.cjs.map +2 -2
  125. package/build/lock-unlock.cjs.map +2 -2
  126. package/build/store/actions.cjs.map +2 -2
  127. package/build/store/index.cjs.map +2 -2
  128. package/build/store/reducer.cjs.map +2 -2
  129. package/build/store/selectors.cjs.map +2 -2
  130. package/build/utils/constants.cjs.map +2 -2
  131. package/build/utils/get-filtered-template-parts.cjs.map +2 -2
  132. package/build/utils/is-previewing-theme.cjs.map +2 -2
  133. package/build/utils/is-template-removable.cjs.map +2 -2
  134. package/build/utils/is-template-revertable.cjs.map +2 -2
  135. package/build/utils/use-activate-theme.cjs.map +2 -2
  136. package/build/utils/use-actual-current-theme.cjs.map +2 -2
  137. package/build-module/components/add-new-pattern/index.mjs.map +2 -2
  138. package/build-module/components/add-new-post/index.mjs.map +2 -2
  139. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.mjs.map +2 -2
  140. package/build-module/components/add-new-template/add-custom-template-modal-content.mjs.map +2 -2
  141. package/build-module/components/add-new-template/index.mjs.map +2 -2
  142. package/build-module/components/add-new-template/utils.mjs.map +2 -2
  143. package/build-module/components/add-new-template-legacy/add-custom-generic-template-modal-content.mjs.map +2 -2
  144. package/build-module/components/add-new-template-legacy/add-custom-template-modal-content.mjs.map +2 -2
  145. package/build-module/components/add-new-template-legacy/index.mjs.map +2 -2
  146. package/build-module/components/add-new-template-legacy/utils.mjs.map +2 -2
  147. package/build-module/components/app/index.mjs.map +2 -2
  148. package/build-module/components/block-editor/use-editor-iframe-props.mjs.map +2 -2
  149. package/build-module/components/block-editor/use-navigate-to-entity-record.mjs.map +2 -2
  150. package/build-module/components/block-editor/use-site-editor-settings.mjs.map +2 -2
  151. package/build-module/components/block-editor/use-viewport-sync.mjs.map +2 -2
  152. package/build-module/components/canvas-loader/index.mjs +9 -7
  153. package/build-module/components/canvas-loader/index.mjs.map +2 -2
  154. package/build-module/components/dataviews-actions/index.mjs.map +2 -2
  155. package/build-module/components/editor/index.mjs +6 -5
  156. package/build-module/components/editor/index.mjs.map +2 -2
  157. package/build-module/components/editor/site-preview.mjs.map +2 -2
  158. package/build-module/components/editor/use-adapt-editor-to-canvas.mjs.map +2 -2
  159. package/build-module/components/editor/use-editor-title.mjs +5 -3
  160. package/build-module/components/editor/use-editor-title.mjs.map +2 -2
  161. package/build-module/components/editor/use-resolve-edited-entity.mjs.map +2 -2
  162. package/build-module/components/editor/use-revisions-url-sync.mjs +101 -0
  163. package/build-module/components/editor/use-revisions-url-sync.mjs.map +7 -0
  164. package/build-module/components/layout/animation.mjs.map +2 -2
  165. package/build-module/components/layout/hooks.mjs.map +2 -2
  166. package/build-module/components/layout/index.mjs +0 -1
  167. package/build-module/components/layout/index.mjs.map +2 -2
  168. package/build-module/components/media/index.mjs.map +2 -2
  169. package/build-module/components/more-menu/index.mjs.map +2 -2
  170. package/build-module/components/more-menu/site-export.mjs.map +2 -2
  171. package/build-module/components/more-menu/welcome-guide-menu-item.mjs.map +2 -2
  172. package/build-module/components/page-patterns/actions.mjs.map +2 -2
  173. package/build-module/components/page-patterns/delete-category-menu-item.mjs.map +2 -2
  174. package/build-module/components/page-patterns/fields.mjs.map +2 -2
  175. package/build-module/components/page-patterns/index.mjs.map +2 -2
  176. package/build-module/components/page-patterns/rename-category-menu-item.mjs.map +2 -2
  177. package/build-module/components/page-patterns/search-items.mjs.map +2 -2
  178. package/build-module/components/page-patterns/use-pattern-settings.mjs.map +2 -2
  179. package/build-module/components/page-patterns/use-patterns.mjs.map +2 -2
  180. package/build-module/components/page-templates/fields.mjs.map +2 -2
  181. package/build-module/components/page-templates/hooks.mjs.map +2 -2
  182. package/build-module/components/page-templates/index-legacy.mjs.map +2 -2
  183. package/build-module/components/page-templates/index.mjs.map +2 -2
  184. package/build-module/components/pagination/index.mjs.map +2 -2
  185. package/build-module/components/plugin-template-setting-panel/index.mjs.map +2 -2
  186. package/build-module/components/post-list/index.mjs.map +2 -2
  187. package/build-module/components/post-list/quick-edit-modal.mjs.map +2 -2
  188. package/build-module/components/post-list/use-notes-count.mjs.map +2 -2
  189. package/build-module/components/resizable-frame/index.mjs.map +2 -2
  190. package/build-module/components/routes/use-title.mjs.map +2 -2
  191. package/build-module/components/save-button/index.mjs +6 -6
  192. package/build-module/components/save-button/index.mjs.map +2 -2
  193. package/build-module/components/save-hub/index.mjs.map +2 -2
  194. package/build-module/components/save-keyboard-shortcut/index.mjs.map +2 -2
  195. package/build-module/components/save-panel/index.mjs +9 -7
  196. package/build-module/components/save-panel/index.mjs.map +2 -2
  197. package/build-module/components/sidebar/index.mjs.map +2 -2
  198. package/build-module/components/sidebar-button/index.mjs.map +2 -2
  199. package/build-module/components/sidebar-dataviews/index.mjs.map +2 -2
  200. package/build-module/components/sidebar-global-styles/index.mjs.map +2 -2
  201. package/build-module/components/sidebar-identity/index.mjs +5 -2
  202. package/build-module/components/sidebar-identity/index.mjs.map +2 -2
  203. package/build-module/components/sidebar-navigation-item/index.mjs.map +2 -2
  204. package/build-module/components/sidebar-navigation-screen/index.mjs.map +2 -2
  205. package/build-module/components/sidebar-navigation-screen-details-footer/index.mjs.map +2 -2
  206. package/build-module/components/sidebar-navigation-screen-global-styles/content.mjs.map +2 -2
  207. package/build-module/components/sidebar-navigation-screen-global-styles/index.mjs.map +2 -2
  208. package/build-module/components/sidebar-navigation-screen-identity/index.mjs.map +2 -2
  209. package/build-module/components/sidebar-navigation-screen-main/index.mjs.map +2 -2
  210. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.mjs.map +2 -2
  211. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.mjs.map +2 -2
  212. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.mjs.map +2 -2
  213. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.mjs.map +2 -2
  214. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.mjs.map +2 -2
  215. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.mjs.map +2 -2
  216. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.mjs.map +2 -2
  217. package/build-module/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.mjs.map +2 -2
  218. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.mjs.map +2 -2
  219. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.mjs +24 -25
  220. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.mjs.map +2 -2
  221. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.mjs.map +2 -2
  222. package/build-module/components/sidebar-navigation-screen-patterns/category-item.mjs.map +2 -2
  223. package/build-module/components/sidebar-navigation-screen-patterns/index.mjs +2 -1
  224. package/build-module/components/sidebar-navigation-screen-patterns/index.mjs.map +2 -2
  225. package/build-module/components/sidebar-navigation-screen-patterns/use-default-pattern-categories.mjs.map +2 -2
  226. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.mjs.map +2 -2
  227. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.mjs.map +2 -2
  228. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.mjs.map +2 -2
  229. package/build-module/components/sidebar-navigation-screen-templates-browse/content-legacy.mjs.map +2 -2
  230. package/build-module/components/sidebar-navigation-screen-templates-browse/content.mjs +1 -1
  231. package/build-module/components/sidebar-navigation-screen-templates-browse/content.mjs.map +2 -2
  232. package/build-module/components/sidebar-navigation-screen-templates-browse/index.mjs.map +2 -2
  233. package/build-module/components/sidebar-navigation-screen-unsupported/index.mjs.map +2 -2
  234. package/build-module/components/site-editor-routes/home.mjs.map +2 -2
  235. package/build-module/components/site-editor-routes/identity.mjs.map +2 -2
  236. package/build-module/components/site-editor-routes/index.mjs.map +2 -2
  237. package/build-module/components/site-editor-routes/navigation-item.mjs.map +2 -2
  238. package/build-module/components/site-editor-routes/navigation.mjs.map +2 -2
  239. package/build-module/components/site-editor-routes/notfound.mjs.map +2 -2
  240. package/build-module/components/site-editor-routes/page-item.mjs.map +2 -2
  241. package/build-module/components/site-editor-routes/pages.mjs.map +2 -2
  242. package/build-module/components/site-editor-routes/pattern-item.mjs.map +2 -2
  243. package/build-module/components/site-editor-routes/patterns.mjs.map +2 -2
  244. package/build-module/components/site-editor-routes/stylebook.mjs.map +2 -2
  245. package/build-module/components/site-editor-routes/styles.mjs +17 -12
  246. package/build-module/components/site-editor-routes/styles.mjs.map +2 -2
  247. package/build-module/components/site-editor-routes/template-item.mjs.map +2 -2
  248. package/build-module/components/site-editor-routes/template-part-item.mjs.map +2 -2
  249. package/build-module/components/site-editor-routes/templates.mjs.map +2 -2
  250. package/build-module/components/site-hub/index.mjs.map +2 -2
  251. package/build-module/components/welcome-guide/editor.mjs.map +2 -2
  252. package/build-module/components/welcome-guide/index.mjs.map +2 -2
  253. package/build-module/components/welcome-guide/page.mjs.map +2 -2
  254. package/build-module/components/welcome-guide/template.mjs.map +2 -2
  255. package/build-module/deprecated.mjs.map +2 -2
  256. package/build-module/hooks/commands/use-common-commands.mjs.map +2 -2
  257. package/build-module/hooks/commands/use-set-command-context.mjs.map +2 -2
  258. package/build-module/index.mjs.map +2 -2
  259. package/build-module/lock-unlock.mjs.map +2 -2
  260. package/build-module/store/actions.mjs.map +2 -2
  261. package/build-module/store/index.mjs.map +2 -2
  262. package/build-module/store/reducer.mjs.map +2 -2
  263. package/build-module/store/selectors.mjs.map +2 -2
  264. package/build-module/utils/constants.mjs.map +2 -2
  265. package/build-module/utils/get-filtered-template-parts.mjs.map +2 -2
  266. package/build-module/utils/is-previewing-theme.mjs.map +2 -2
  267. package/build-module/utils/is-template-removable.mjs.map +2 -2
  268. package/build-module/utils/is-template-revertable.mjs.map +2 -2
  269. package/build-module/utils/use-activate-theme.mjs.map +2 -2
  270. package/build-module/utils/use-actual-current-theme.mjs.map +2 -2
  271. package/build-style/style-rtl.css +79 -22
  272. package/build-style/style.css +79 -22
  273. package/package.json +48 -49
  274. package/src/components/add-new-pattern/index.js +0 -7
  275. package/src/components/add-new-post/index.js +0 -3
  276. package/src/components/add-new-template/add-custom-generic-template-modal-content.js +0 -7
  277. package/src/components/add-new-template/add-custom-template-modal-content.js +0 -7
  278. package/src/components/add-new-template/index.js +0 -15
  279. package/src/components/add-new-template/utils.js +0 -7
  280. package/src/components/add-new-template-legacy/add-custom-generic-template-modal-content.js +0 -7
  281. package/src/components/add-new-template-legacy/add-custom-template-modal-content.js +0 -7
  282. package/src/components/add-new-template-legacy/index.js +0 -15
  283. package/src/components/add-new-template-legacy/utils.js +0 -7
  284. package/src/components/app/index.js +0 -7
  285. package/src/components/block-editor/use-editor-iframe-props.js +0 -11
  286. package/src/components/block-editor/use-navigate-to-entity-record.js +0 -7
  287. package/src/components/block-editor/use-site-editor-settings.js +0 -7
  288. package/src/components/block-editor/use-viewport-sync.js +0 -7
  289. package/src/components/canvas-loader/index.js +6 -17
  290. package/src/components/canvas-loader/style.scss +3 -4
  291. package/src/components/dataviews-actions/index.js +0 -7
  292. package/src/components/editor/index.js +6 -12
  293. package/src/components/editor/site-preview.js +0 -3
  294. package/src/components/editor/use-adapt-editor-to-canvas.js +0 -7
  295. package/src/components/editor/use-editor-title.js +5 -10
  296. package/src/components/editor/use-resolve-edited-entity.js +0 -7
  297. package/src/components/editor/use-revisions-url-sync.js +132 -0
  298. package/src/components/layout/animation.js +0 -7
  299. package/src/components/layout/hooks.js +0 -3
  300. package/src/components/layout/index.js +0 -12
  301. package/src/components/media/index.js +0 -3
  302. package/src/components/more-menu/index.js +0 -7
  303. package/src/components/more-menu/site-export.js +0 -3
  304. package/src/components/more-menu/welcome-guide-menu-item.js +0 -3
  305. package/src/components/page-patterns/actions.js +0 -7
  306. package/src/components/page-patterns/delete-category-menu-item.js +0 -7
  307. package/src/components/page-patterns/fields.js +0 -7
  308. package/src/components/page-patterns/index.js +0 -7
  309. package/src/components/page-patterns/rename-category-menu-item.js +0 -10
  310. package/src/components/page-patterns/search-items.js +0 -12
  311. package/src/components/page-patterns/style.scss +3 -0
  312. package/src/components/page-patterns/use-pattern-settings.js +0 -7
  313. package/src/components/page-patterns/use-patterns.js +0 -7
  314. package/src/components/page-templates/fields.js +0 -11
  315. package/src/components/page-templates/hooks.js +0 -7
  316. package/src/components/page-templates/index-legacy.js +0 -7
  317. package/src/components/page-templates/index.js +0 -7
  318. package/src/components/pagination/index.js +0 -7
  319. package/src/components/plugin-template-setting-panel/index.js +0 -4
  320. package/src/components/post-list/index.js +0 -9
  321. package/src/components/post-list/quick-edit-modal.js +0 -7
  322. package/src/components/post-list/use-notes-count.js +0 -3
  323. package/src/components/resizable-frame/index.js +0 -11
  324. package/src/components/routes/use-title.js +0 -7
  325. package/src/components/save-button/index.js +6 -13
  326. package/src/components/save-hub/index.js +0 -7
  327. package/src/components/save-keyboard-shortcut/index.js +0 -7
  328. package/src/components/save-panel/index.js +9 -18
  329. package/src/components/sidebar/index.js +0 -7
  330. package/src/components/sidebar-button/index.js +0 -7
  331. package/src/components/sidebar-dataviews/index.js +0 -7
  332. package/src/components/sidebar-global-styles/index.js +0 -7
  333. package/src/components/sidebar-identity/index.js +3 -3
  334. package/src/components/sidebar-navigation-item/index.js +0 -11
  335. package/src/components/sidebar-navigation-item/style.scss +3 -10
  336. package/src/components/sidebar-navigation-screen/index.js +0 -11
  337. package/src/components/sidebar-navigation-screen-details-footer/index.js +0 -7
  338. package/src/components/sidebar-navigation-screen-global-styles/content.js +0 -7
  339. package/src/components/sidebar-navigation-screen-global-styles/index.js +0 -7
  340. package/src/components/sidebar-navigation-screen-identity/index.js +0 -7
  341. package/src/components/sidebar-navigation-screen-main/index.js +0 -7
  342. package/src/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js +0 -3
  343. package/src/components/sidebar-navigation-screen-navigation-menu/index.js +0 -7
  344. package/src/components/sidebar-navigation-screen-navigation-menu/more-menu.js +0 -7
  345. package/src/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +0 -7
  346. package/src/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +0 -3
  347. package/src/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +0 -6
  348. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +0 -7
  349. package/src/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js +0 -3
  350. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +0 -8
  351. package/src/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +38 -48
  352. package/src/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +0 -7
  353. package/src/components/sidebar-navigation-screen-patterns/category-item.js +0 -3
  354. package/src/components/sidebar-navigation-screen-patterns/index.js +2 -8
  355. package/src/components/sidebar-navigation-screen-patterns/use-default-pattern-categories.js +0 -7
  356. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +0 -7
  357. package/src/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +0 -7
  358. package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +0 -7
  359. package/src/components/sidebar-navigation-screen-templates-browse/content-legacy.js +0 -7
  360. package/src/components/sidebar-navigation-screen-templates-browse/content.js +1 -8
  361. package/src/components/sidebar-navigation-screen-templates-browse/index.js +0 -7
  362. package/src/components/sidebar-navigation-screen-unsupported/index.js +0 -3
  363. package/src/components/site-editor-routes/home.js +0 -3
  364. package/src/components/site-editor-routes/identity.js +0 -3
  365. package/src/components/site-editor-routes/index.js +0 -7
  366. package/src/components/site-editor-routes/navigation-item.js +0 -3
  367. package/src/components/site-editor-routes/navigation.js +0 -3
  368. package/src/components/site-editor-routes/notfound.js +0 -7
  369. package/src/components/site-editor-routes/page-item.js +0 -7
  370. package/src/components/site-editor-routes/pages.js +0 -7
  371. package/src/components/site-editor-routes/pattern-item.js +0 -3
  372. package/src/components/site-editor-routes/patterns.js +0 -3
  373. package/src/components/site-editor-routes/stylebook.js +0 -7
  374. package/src/components/site-editor-routes/styles.js +19 -18
  375. package/src/components/site-editor-routes/template-item.js +0 -3
  376. package/src/components/site-editor-routes/template-part-item.js +0 -3
  377. package/src/components/site-editor-routes/templates.js +0 -7
  378. package/src/components/site-hub/index.js +0 -7
  379. package/src/components/welcome-guide/editor.js +0 -7
  380. package/src/components/welcome-guide/index.js +0 -3
  381. package/src/components/welcome-guide/page.js +0 -3
  382. package/src/components/welcome-guide/template.js +0 -3
  383. package/src/deprecated.js +0 -3
  384. package/src/hooks/commands/use-common-commands.js +0 -7
  385. package/src/hooks/commands/use-set-command-context.js +0 -7
  386. package/src/index.js +0 -7
  387. package/src/lock-unlock.js +0 -3
  388. package/src/store/actions.js +0 -7
  389. package/src/store/index.js +0 -7
  390. package/src/store/reducer.js +0 -3
  391. package/src/store/selectors.js +0 -7
  392. package/src/utils/constants.js +0 -7
  393. package/src/utils/get-filtered-template-parts.js +0 -3
  394. package/src/utils/is-previewing-theme.js +0 -3
  395. package/src/utils/is-template-removable.js +0 -3
  396. package/src/utils/is-template-revertable.js +0 -3
  397. package/src/utils/test/get-filtered-template-parts.js +0 -3
  398. package/src/utils/use-activate-theme.js +0 -7
  399. package/src/utils/use-actual-current-theme.js +0 -3
@@ -1,13 +1,15 @@
1
1
  // packages/edit-site/src/components/editor/use-editor-title.js
2
2
  import { _x, sprintf } from "@wordpress/i18n";
3
3
  import { useSelect } from "@wordpress/data";
4
- import { store as coreStore } from "@wordpress/core-data";
4
+ import {
5
+ store as coreStore,
6
+ privateApis as coreDataPrivateApis
7
+ } from "@wordpress/core-data";
5
8
  import { decodeEntities } from "@wordpress/html-entities";
6
- import { privateApis as editorPrivateApis } from "@wordpress/editor";
7
9
  import useTitle from "../routes/use-title.mjs";
8
10
  import { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from "../../utils/constants.mjs";
9
11
  import { unlock } from "../../lock-unlock.mjs";
10
- var { getTemplateInfo } = unlock(editorPrivateApis);
12
+ var { getTemplateInfo } = unlock(coreDataPrivateApis);
11
13
  function useEditorTitle(postType, postId) {
12
14
  const { title, isLoaded } = useSelect(
13
15
  (select) => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/editor/use-editor-title.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { _x, sprintf } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport useTitle from '../routes/use-title';\nimport { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { getTemplateInfo } = unlock( editorPrivateApis );\n\nfunction useEditorTitle( postType, postId ) {\n\tconst { title, isLoaded } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetCurrentTheme,\n\t\t\t\thasFinishedResolution,\n\t\t\t} = select( coreStore );\n\n\t\t\tif ( ! postId ) {\n\t\t\t\treturn { isLoaded: false };\n\t\t\t}\n\n\t\t\tconst _record = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\n\t\t\tconst { default_template_types: templateTypes = [] } =\n\t\t\t\tgetCurrentTheme() ?? {};\n\n\t\t\tconst templateInfo = getTemplateInfo( {\n\t\t\t\ttemplate: _record,\n\t\t\t\ttemplateTypes,\n\t\t\t} );\n\n\t\t\tconst _isLoaded = hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId,\n\t\t\t] );\n\n\t\t\treturn {\n\t\t\t\ttitle: templateInfo.title,\n\t\t\t\tisLoaded: _isLoaded,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tlet editorTitle;\n\tif ( isLoaded ) {\n\t\teditorTitle = sprintf(\n\t\t\t// translators: A breadcrumb trail for the Admin document title. 1: title of template being edited, 2: type of template (Template or Template Part).\n\t\t\t_x( '%1$s ‹ %2$s', 'breadcrumb trail' ),\n\t\t\tdecodeEntities( title ),\n\t\t\tPOST_TYPE_LABELS[ postType ] ??\n\t\t\t\tPOST_TYPE_LABELS[ TEMPLATE_POST_TYPE ]\n\t\t);\n\t}\n\n\t// Only announce the title once the editor is ready to prevent \"Replace\"\n\t// action in <URLQueryController> from double-announcing.\n\tuseTitle( isLoaded && editorTitle );\n}\n\nexport default useEditorTitle;\n"],
5
- "mappings": ";AAGA,SAAS,IAAI,eAAe;AAC5B,SAAS,iBAAiB;AAC1B,SAAS,SAAS,iBAAiB;AACnC,SAAS,sBAAsB;AAC/B,SAAS,eAAe,yBAAyB;AAKjD,OAAO,cAAc;AACrB,SAAS,kBAAkB,0BAA0B;AACrD,SAAS,cAAc;AAEvB,IAAM,EAAE,gBAAgB,IAAI,OAAQ,iBAAkB;AAEtD,SAAS,eAAgB,UAAU,QAAS;AAC3C,QAAM,EAAE,OAAO,SAAS,IAAI;AAAA,IAC3B,CAAE,WAAY;AACb,YAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACD,IAAI,OAAQ,SAAU;AAEtB,UAAK,CAAE,QAAS;AACf,eAAO,EAAE,UAAU,MAAM;AAAA,MAC1B;AAEA,YAAM,UAAU;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAEA,YAAM,EAAE,wBAAwB,gBAAgB,CAAC,EAAE,IAClD,gBAAgB,KAAK,CAAC;AAEvB,YAAM,eAAe,gBAAiB;AAAA,QACrC,UAAU;AAAA,QACV;AAAA,MACD,CAAE;AAEF,YAAM,YAAY,sBAAuB,yBAAyB;AAAA,QACjE;AAAA,QACA;AAAA,QACA;AAAA,MACD,CAAE;AAEF,aAAO;AAAA,QACN,OAAO,aAAa;AAAA,QACpB,UAAU;AAAA,MACX;AAAA,IACD;AAAA,IACA,CAAE,UAAU,MAAO;AAAA,EACpB;AAEA,MAAI;AACJ,MAAK,UAAW;AACf,kBAAc;AAAA;AAAA,MAEb,GAAI,eAAe,kBAAmB;AAAA,MACtC,eAAgB,KAAM;AAAA,MACtB,iBAAkB,QAAS,KAC1B,iBAAkB,kBAAmB;AAAA,IACvC;AAAA,EACD;AAIA,WAAU,YAAY,WAAY;AACnC;AAEA,IAAO,2BAAQ;",
4
+ "sourcesContent": ["import { _x, sprintf } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tstore as coreStore,\n\tprivateApis as coreDataPrivateApis,\n} from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport useTitle from '../routes/use-title';\nimport { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { getTemplateInfo } = unlock( coreDataPrivateApis );\n\nfunction useEditorTitle( postType, postId ) {\n\tconst { title, isLoaded } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetCurrentTheme,\n\t\t\t\thasFinishedResolution,\n\t\t\t} = select( coreStore );\n\n\t\t\tif ( ! postId ) {\n\t\t\t\treturn { isLoaded: false };\n\t\t\t}\n\n\t\t\tconst _record = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\n\t\t\tconst { default_template_types: templateTypes = [] } =\n\t\t\t\tgetCurrentTheme() ?? {};\n\n\t\t\tconst templateInfo = getTemplateInfo( {\n\t\t\t\ttemplate: _record,\n\t\t\t\ttemplateTypes,\n\t\t\t} );\n\n\t\t\tconst _isLoaded = hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId,\n\t\t\t] );\n\n\t\t\treturn {\n\t\t\t\ttitle: templateInfo.title,\n\t\t\t\tisLoaded: _isLoaded,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tlet editorTitle;\n\tif ( isLoaded ) {\n\t\teditorTitle = sprintf(\n\t\t\t// translators: A breadcrumb trail for the Admin document title. 1: title of template being edited, 2: type of template (Template or Template Part).\n\t\t\t_x( '%1$s ‹ %2$s', 'breadcrumb trail' ),\n\t\t\tdecodeEntities( title ),\n\t\t\tPOST_TYPE_LABELS[ postType ] ??\n\t\t\t\tPOST_TYPE_LABELS[ TEMPLATE_POST_TYPE ]\n\t\t);\n\t}\n\n\t// Only announce the title once the editor is ready to prevent \"Replace\"\n\t// action in <URLQueryController> from double-announcing.\n\tuseTitle( isLoaded && editorTitle );\n}\n\nexport default useEditorTitle;\n"],
5
+ "mappings": ";AAAA,SAAS,IAAI,eAAe;AAC5B,SAAS,iBAAiB;AAC1B;AAAA,EACC,SAAS;AAAA,EACT,eAAe;AAAA,OACT;AACP,SAAS,sBAAsB;AAC/B,OAAO,cAAc;AACrB,SAAS,kBAAkB,0BAA0B;AACrD,SAAS,cAAc;AAEvB,IAAM,EAAE,gBAAgB,IAAI,OAAQ,mBAAoB;AAExD,SAAS,eAAgB,UAAU,QAAS;AAC3C,QAAM,EAAE,OAAO,SAAS,IAAI;AAAA,IAC3B,CAAE,WAAY;AACb,YAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACD,IAAI,OAAQ,SAAU;AAEtB,UAAK,CAAE,QAAS;AACf,eAAO,EAAE,UAAU,MAAM;AAAA,MAC1B;AAEA,YAAM,UAAU;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAEA,YAAM,EAAE,wBAAwB,gBAAgB,CAAC,EAAE,IAClD,gBAAgB,KAAK,CAAC;AAEvB,YAAM,eAAe,gBAAiB;AAAA,QACrC,UAAU;AAAA,QACV;AAAA,MACD,CAAE;AAEF,YAAM,YAAY,sBAAuB,yBAAyB;AAAA,QACjE;AAAA,QACA;AAAA,QACA;AAAA,MACD,CAAE;AAEF,aAAO;AAAA,QACN,OAAO,aAAa;AAAA,QACpB,UAAU;AAAA,MACX;AAAA,IACD;AAAA,IACA,CAAE,UAAU,MAAO;AAAA,EACpB;AAEA,MAAI;AACJ,MAAK,UAAW;AACf,kBAAc;AAAA;AAAA,MAEb,GAAI,eAAe,kBAAmB;AAAA,MACtC,eAAgB,KAAM;AAAA,MACtB,iBAAkB,QAAS,KAC1B,iBAAkB,kBAAmB;AAAA,IACvC;AAAA,EACD;AAIA,WAAU,YAAY,WAAY;AACnC;AAEA,IAAO,2BAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/editor/use-resolve-edited-entity.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo, useRef } 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\tATTACHMENT_POST_TYPE,\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\tATTACHMENT_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES.user,\n];\n\nconst authorizedPostTypes = [ 'page', 'post' ];\n\nfunction getPostType( name ) {\n\tlet postType;\n\tif ( name === 'navigation-item' ) {\n\t\tpostType = NAVIGATION_POST_TYPE;\n\t} else if ( name === 'pattern-item' ) {\n\t\tpostType = PATTERN_TYPES.user;\n\t} else if ( name === 'template-part-item' ) {\n\t\tpostType = TEMPLATE_PART_POST_TYPE;\n\t} else if ( name === 'templates' ) {\n\t\tpostType = TEMPLATE_POST_TYPE;\n\t} else if ( name === 'template-item' ) {\n\t\tpostType = TEMPLATE_POST_TYPE;\n\t} else if ( name === 'page-item' || name === 'pages' ) {\n\t\tpostType = 'page';\n\t} else if ( name === 'post-item' || name === 'posts' ) {\n\t\tpostType = 'post';\n\t}\n\n\treturn postType;\n}\n\nexport function useResolveEditedEntity() {\n\tconst { editEntityRecord } = useDispatch( coreDataStore );\n\tconst { hasEntityRecord } = useSelect( coreDataStore );\n\tconst { name, params = {}, query } = useLocation();\n\tconst { postId = query?.postId } = params; // Fallback to query param for postId for list view routes.\n\tconst postType = getPostType( name, postId ) ?? query?.postType;\n\t// Extract selectedBlock from URL for selection restoration on navigation back.\n\tconst { selectedBlock } = query;\n\n\t// Track which selection we've applied to avoid re-applying the same one,\n\t// but allow applying a new one if the URL changes.\n\tconst appliedSelectionRef = useRef( null );\n\n\tconst homePage = useSelect( ( select ) => {\n\t\tconst { getHomePage } = unlock( select( coreDataStore ) );\n\t\treturn getHomePage();\n\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 (\n\t\t\t\tpostTypesWithoutParentTemplate.includes( postType ) &&\n\t\t\t\tpostId\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Don't trigger resolution for multi-selected posts.\n\t\t\tif ( postId && postId.includes( ',' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { getTemplateId } = unlock( select( coreDataStore ) );\n\n\t\t\t// If we're rendering a specific page, we need to resolve its template.\n\t\t\t// The site editor only supports pages for now, not other CPTs.\n\t\t\tif (\n\t\t\t\tpostType &&\n\t\t\t\tpostId &&\n\t\t\t\tauthorizedPostTypes.includes( postType )\n\t\t\t) {\n\t\t\t\treturn getTemplateId( 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 ( homePage?.postType === 'page' ) {\n\t\t\t\treturn getTemplateId( 'page', homePage?.postId );\n\t\t\t}\n\n\t\t\tif ( homePage?.postType === 'wp_template' ) {\n\t\t\t\treturn homePage?.postId;\n\t\t\t}\n\t\t},\n\t\t[ homePage, postId, postType ]\n\t);\n\n\tconst context = useMemo( () => {\n\t\tif ( postTypesWithoutParentTemplate.includes( postType ) && postId ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tif ( postType && postId && authorizedPostTypes.includes( postType ) ) {\n\t\t\treturn { postType, postId };\n\t\t}\n\t\t// TODO: for post types lists we should probably not render the front page, but maybe a placeholder\n\t\t// with a message like \"Select a page\" or something similar.\n\t\tif ( homePage?.postType === 'page' ) {\n\t\t\treturn { postType: 'page', postId: homePage?.postId };\n\t\t}\n\n\t\treturn {};\n\t}, [ homePage, postType, postId ] );\n\n\t// Compute entity info based on conditions\n\tlet entity;\n\tif ( postTypesWithoutParentTemplate.includes( postType ) && postId ) {\n\t\tentity = { isReady: true, postType, postId, context };\n\t} else if ( !! homePage ) {\n\t\tentity = {\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} else {\n\t\tentity = { isReady: false };\n\t}\n\n\t// Restore selection from URL synchronously, before EditorProvider renders.\n\t// This ensures the selection is available when blocks are reset.\n\t// When editing a page with a template, EditorProvider reads selection from\n\t// the page entity (context), not the template entity.\n\tif (\n\t\tselectedBlock &&\n\t\tentity.isReady &&\n\t\tappliedSelectionRef.current !== selectedBlock\n\t) {\n\t\tconst selectionPostType = entity.context?.postId\n\t\t\t? entity.context.postType\n\t\t\t: entity.postType;\n\t\tconst selectionPostId = entity.context?.postId\n\t\t\t? entity.context.postId\n\t\t\t: entity.postId;\n\n\t\t// Only apply selection if the entity record is loaded,\n\t\t// otherwise editEntityRecord will throw.\n\t\tif (\n\t\t\thasEntityRecord( 'postType', selectionPostType, selectionPostId )\n\t\t) {\n\t\t\teditEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tselectionPostType,\n\t\t\t\tselectionPostId,\n\t\t\t\t{\n\t\t\t\t\tselection: {\n\t\t\t\t\t\tselectionStart: { clientId: selectedBlock },\n\t\t\t\t\t\tselectionEnd: { clientId: selectedBlock },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ undoIgnore: true }\n\t\t\t);\n\t\t\tappliedSelectionRef.current = selectedBlock;\n\t\t}\n\t}\n\n\treturn entity;\n}\n\nexport function useSyncDeprecatedEntityIntoState( {\n\tpostType,\n\tpostId,\n\tcontext,\n\tisReady,\n} ) {\n\tconst { setEditedEntity } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( isReady ) {\n\t\t\t// setEditedEntity expects a string (because the postId used to be\n\t\t\t// the template slug, even for edited templates). Now the postId can\n\t\t\t// be a number (either because it's an auto-draft or edited\n\t\t\t// template). Passing a number could break plugins doing things like\n\t\t\t// `id.includes`. It would be way more complex to keep passing the\n\t\t\t// template slug, while also being incorrect, so the easiest\n\t\t\t// solution is to cast the postId to a string.\n\t\t\tsetEditedEntity( postType, String( postId ), context );\n\t\t}\n\t}, [ isReady, postType, postId, context, setEditedEntity ] );\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useEffect, useMemo, useRef } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tATTACHMENT_POST_TYPE,\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\tATTACHMENT_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES.user,\n];\n\nconst authorizedPostTypes = [ 'page', 'post' ];\n\nfunction getPostType( name ) {\n\tlet postType;\n\tif ( name === 'navigation-item' ) {\n\t\tpostType = NAVIGATION_POST_TYPE;\n\t} else if ( name === 'pattern-item' ) {\n\t\tpostType = PATTERN_TYPES.user;\n\t} else if ( name === 'template-part-item' ) {\n\t\tpostType = TEMPLATE_PART_POST_TYPE;\n\t} else if ( name === 'templates' ) {\n\t\tpostType = TEMPLATE_POST_TYPE;\n\t} else if ( name === 'template-item' ) {\n\t\tpostType = TEMPLATE_POST_TYPE;\n\t} else if ( name === 'page-item' || name === 'pages' ) {\n\t\tpostType = 'page';\n\t} else if ( name === 'post-item' || name === 'posts' ) {\n\t\tpostType = 'post';\n\t}\n\n\treturn postType;\n}\n\nexport function useResolveEditedEntity() {\n\tconst { editEntityRecord } = useDispatch( coreDataStore );\n\tconst { hasEntityRecord } = useSelect( coreDataStore );\n\tconst { name, params = {}, query } = useLocation();\n\tconst { postId = query?.postId } = params; // Fallback to query param for postId for list view routes.\n\tconst postType = getPostType( name, postId ) ?? query?.postType;\n\t// Extract selectedBlock from URL for selection restoration on navigation back.\n\tconst { selectedBlock } = query;\n\n\t// Track which selection we've applied to avoid re-applying the same one,\n\t// but allow applying a new one if the URL changes.\n\tconst appliedSelectionRef = useRef( null );\n\n\tconst homePage = useSelect( ( select ) => {\n\t\tconst { getHomePage } = unlock( select( coreDataStore ) );\n\t\treturn getHomePage();\n\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 (\n\t\t\t\tpostTypesWithoutParentTemplate.includes( postType ) &&\n\t\t\t\tpostId\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Don't trigger resolution for multi-selected posts.\n\t\t\tif ( postId && postId.includes( ',' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { getTemplateId } = unlock( select( coreDataStore ) );\n\n\t\t\t// If we're rendering a specific page, we need to resolve its template.\n\t\t\t// The site editor only supports pages for now, not other CPTs.\n\t\t\tif (\n\t\t\t\tpostType &&\n\t\t\t\tpostId &&\n\t\t\t\tauthorizedPostTypes.includes( postType )\n\t\t\t) {\n\t\t\t\treturn getTemplateId( 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 ( homePage?.postType === 'page' ) {\n\t\t\t\treturn getTemplateId( 'page', homePage?.postId );\n\t\t\t}\n\n\t\t\tif ( homePage?.postType === 'wp_template' ) {\n\t\t\t\treturn homePage?.postId;\n\t\t\t}\n\t\t},\n\t\t[ homePage, postId, postType ]\n\t);\n\n\tconst context = useMemo( () => {\n\t\tif ( postTypesWithoutParentTemplate.includes( postType ) && postId ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tif ( postType && postId && authorizedPostTypes.includes( postType ) ) {\n\t\t\treturn { postType, postId };\n\t\t}\n\t\t// TODO: for post types lists we should probably not render the front page, but maybe a placeholder\n\t\t// with a message like \"Select a page\" or something similar.\n\t\tif ( homePage?.postType === 'page' ) {\n\t\t\treturn { postType: 'page', postId: homePage?.postId };\n\t\t}\n\n\t\treturn {};\n\t}, [ homePage, postType, postId ] );\n\n\t// Compute entity info based on conditions\n\tlet entity;\n\tif ( postTypesWithoutParentTemplate.includes( postType ) && postId ) {\n\t\tentity = { isReady: true, postType, postId, context };\n\t} else if ( !! homePage ) {\n\t\tentity = {\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} else {\n\t\tentity = { isReady: false };\n\t}\n\n\t// Restore selection from URL synchronously, before EditorProvider renders.\n\t// This ensures the selection is available when blocks are reset.\n\t// When editing a page with a template, EditorProvider reads selection from\n\t// the page entity (context), not the template entity.\n\tif (\n\t\tselectedBlock &&\n\t\tentity.isReady &&\n\t\tappliedSelectionRef.current !== selectedBlock\n\t) {\n\t\tconst selectionPostType = entity.context?.postId\n\t\t\t? entity.context.postType\n\t\t\t: entity.postType;\n\t\tconst selectionPostId = entity.context?.postId\n\t\t\t? entity.context.postId\n\t\t\t: entity.postId;\n\n\t\t// Only apply selection if the entity record is loaded,\n\t\t// otherwise editEntityRecord will throw.\n\t\tif (\n\t\t\thasEntityRecord( 'postType', selectionPostType, selectionPostId )\n\t\t) {\n\t\t\teditEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tselectionPostType,\n\t\t\t\tselectionPostId,\n\t\t\t\t{\n\t\t\t\t\tselection: {\n\t\t\t\t\t\tselectionStart: { clientId: selectedBlock },\n\t\t\t\t\t\tselectionEnd: { clientId: selectedBlock },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ undoIgnore: true }\n\t\t\t);\n\t\t\tappliedSelectionRef.current = selectedBlock;\n\t\t}\n\t}\n\n\treturn entity;\n}\n\nexport function useSyncDeprecatedEntityIntoState( {\n\tpostType,\n\tpostId,\n\tcontext,\n\tisReady,\n} ) {\n\tconst { setEditedEntity } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( isReady ) {\n\t\t\t// setEditedEntity expects a string (because the postId used to be\n\t\t\t// the template slug, even for edited templates). Now the postId can\n\t\t\t// be a number (either because it's an auto-draft or edited\n\t\t\t// template). Passing a number could break plugins doing things like\n\t\t\t// `id.includes`. It would be way more complex to keep passing the\n\t\t\t// template slug, while also being incorrect, so the easiest\n\t\t\t// solution is to cast the postId to a string.\n\t\t\tsetEditedEntity( postType, String( postId ), context );\n\t\t}\n\t}, [ isReady, postType, postId, context, setEditedEntity ] );\n}\n"],
5
+ "mappings": ";AAAA,SAAS,WAAW,SAAS,cAAc;AAC3C,SAAS,WAAW,mBAAmB;AACvC,SAAS,SAAS,qBAAqB;AACvC,SAAS,eAAe,yBAAyB;AACjD,SAAS,SAAS,qBAAqB;AACvC,SAAS,cAAc;AACvB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEP,IAAM,EAAE,YAAY,IAAI,OAAQ,iBAAkB;AAElD,IAAM,iCAAiC;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AACf;AAEA,IAAM,sBAAsB,CAAE,QAAQ,MAAO;AAE7C,SAAS,YAAa,MAAO;AAC5B,MAAI;AACJ,MAAK,SAAS,mBAAoB;AACjC,eAAW;AAAA,EACZ,WAAY,SAAS,gBAAiB;AACrC,eAAW,cAAc;AAAA,EAC1B,WAAY,SAAS,sBAAuB;AAC3C,eAAW;AAAA,EACZ,WAAY,SAAS,aAAc;AAClC,eAAW;AAAA,EACZ,WAAY,SAAS,iBAAkB;AACtC,eAAW;AAAA,EACZ,WAAY,SAAS,eAAe,SAAS,SAAU;AACtD,eAAW;AAAA,EACZ,WAAY,SAAS,eAAe,SAAS,SAAU;AACtD,eAAW;AAAA,EACZ;AAEA,SAAO;AACR;AAEO,SAAS,yBAAyB;AACxC,QAAM,EAAE,iBAAiB,IAAI,YAAa,aAAc;AACxD,QAAM,EAAE,gBAAgB,IAAI,UAAW,aAAc;AACrD,QAAM,EAAE,MAAM,SAAS,CAAC,GAAG,MAAM,IAAI,YAAY;AACjD,QAAM,EAAE,SAAS,OAAO,OAAO,IAAI;AACnC,QAAM,WAAW,YAAa,MAAM,MAAO,KAAK,OAAO;AAEvD,QAAM,EAAE,cAAc,IAAI;AAI1B,QAAM,sBAAsB,OAAQ,IAAK;AAEzC,QAAM,WAAW,UAAW,CAAE,WAAY;AACzC,UAAM,EAAE,YAAY,IAAI,OAAQ,OAAQ,aAAc,CAAE;AACxD,WAAO,YAAY;AAAA,EACpB,GAAG,CAAC,CAAE;AAQN,QAAM,qBAAqB;AAAA,IAC1B,CAAE,WAAY;AAGb,UACC,+BAA+B,SAAU,QAAS,KAClD,QACC;AACD;AAAA,MACD;AAGA,UAAK,UAAU,OAAO,SAAU,GAAI,GAAI;AACvC;AAAA,MACD;AAEA,YAAM,EAAE,cAAc,IAAI,OAAQ,OAAQ,aAAc,CAAE;AAI1D,UACC,YACA,UACA,oBAAoB,SAAU,QAAS,GACtC;AACD,eAAO,cAAe,UAAU,MAAO;AAAA,MACxC;AAGA,UAAK,UAAU,aAAa,QAAS;AACpC,eAAO,cAAe,QAAQ,UAAU,MAAO;AAAA,MAChD;AAEA,UAAK,UAAU,aAAa,eAAgB;AAC3C,eAAO,UAAU;AAAA,MAClB;AAAA,IACD;AAAA,IACA,CAAE,UAAU,QAAQ,QAAS;AAAA,EAC9B;AAEA,QAAM,UAAU,QAAS,MAAM;AAC9B,QAAK,+BAA+B,SAAU,QAAS,KAAK,QAAS;AACpE,aAAO,CAAC;AAAA,IACT;AAEA,QAAK,YAAY,UAAU,oBAAoB,SAAU,QAAS,GAAI;AACrE,aAAO,EAAE,UAAU,OAAO;AAAA,IAC3B;AAGA,QAAK,UAAU,aAAa,QAAS;AACpC,aAAO,EAAE,UAAU,QAAQ,QAAQ,UAAU,OAAO;AAAA,IACrD;AAEA,WAAO,CAAC;AAAA,EACT,GAAG,CAAE,UAAU,UAAU,MAAO,CAAE;AAGlC,MAAI;AACJ,MAAK,+BAA+B,SAAU,QAAS,KAAK,QAAS;AACpE,aAAS,EAAE,SAAS,MAAM,UAAU,QAAQ,QAAQ;AAAA,EACrD,WAAY,CAAC,CAAE,UAAW;AACzB,aAAS;AAAA,MACR,SAAS,uBAAuB;AAAA,MAChC,UAAU;AAAA,MACV,QAAQ;AAAA,MACR;AAAA,IACD;AAAA,EACD,OAAO;AACN,aAAS,EAAE,SAAS,MAAM;AAAA,EAC3B;AAMA,MACC,iBACA,OAAO,WACP,oBAAoB,YAAY,eAC/B;AACD,UAAM,oBAAoB,OAAO,SAAS,SACvC,OAAO,QAAQ,WACf,OAAO;AACV,UAAM,kBAAkB,OAAO,SAAS,SACrC,OAAO,QAAQ,SACf,OAAO;AAIV,QACC,gBAAiB,YAAY,mBAAmB,eAAgB,GAC/D;AACD;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,UACC,WAAW;AAAA,YACV,gBAAgB,EAAE,UAAU,cAAc;AAAA,YAC1C,cAAc,EAAE,UAAU,cAAc;AAAA,UACzC;AAAA,QACD;AAAA,QACA,EAAE,YAAY,KAAK;AAAA,MACpB;AACA,0BAAoB,UAAU;AAAA,IAC/B;AAAA,EACD;AAEA,SAAO;AACR;AAEO,SAAS,iCAAkC;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,EAAE,gBAAgB,IAAI,YAAa,aAAc;AAEvD,YAAW,MAAM;AAChB,QAAK,SAAU;AAQd,sBAAiB,UAAU,OAAQ,MAAO,GAAG,OAAQ;AAAA,IACtD;AAAA,EACD,GAAG,CAAE,SAAS,UAAU,QAAQ,SAAS,eAAgB,CAAE;AAC5D;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,101 @@
1
+ // packages/edit-site/src/components/editor/use-revisions-url-sync.js
2
+ import { useSelect, useDispatch } from "@wordpress/data";
3
+ import { useEffect, useRef } from "@wordpress/element";
4
+ import { store as editorStore } from "@wordpress/editor";
5
+ import { privateApis as routerPrivateApis } from "@wordpress/router";
6
+ import { addQueryArgs } from "@wordpress/url";
7
+ import { unlock } from "../../lock-unlock.mjs";
8
+ var { useHistory, useLocation } = unlock(routerPrivateApis);
9
+ var URL_WRITE_DEBOUNCE_MS = 300;
10
+ function useRevisionsURLSync(enabled, postType, postId) {
11
+ const location = useLocation();
12
+ const history = useHistory();
13
+ const { currentPostType, currentPostId, currentRevisionId } = useSelect(
14
+ (select) => {
15
+ const editor = select(editorStore);
16
+ return {
17
+ currentPostType: editor.getCurrentPostType(),
18
+ currentPostId: editor.getCurrentPostId(),
19
+ currentRevisionId: unlock(editor).getCurrentRevisionId()
20
+ };
21
+ },
22
+ []
23
+ );
24
+ const { openRevision, setCurrentRevisionId } = unlock(
25
+ useDispatch(editorStore)
26
+ );
27
+ const entityKey = postType && postId ? `${postType}:${postId}` : null;
28
+ const isCurrentEntity = !!entityKey && currentPostType === postType && String(currentPostId) === String(postId);
29
+ const handledEntityKeyRef = useRef(null);
30
+ const lastURLWriteTimeRef = useRef(null);
31
+ useEffect(() => {
32
+ if (!enabled) {
33
+ handledEntityKeyRef.current = null;
34
+ return;
35
+ }
36
+ if (!isCurrentEntity || !entityKey || handledEntityKeyRef.current === entityKey) {
37
+ return;
38
+ }
39
+ lastURLWriteTimeRef.current = null;
40
+ handledEntityKeyRef.current = entityKey;
41
+ const revision = Number(location.query.revision);
42
+ if (Number.isInteger(revision) && revision > 0) {
43
+ openRevision(revision);
44
+ } else if (currentRevisionId) {
45
+ setCurrentRevisionId(null);
46
+ }
47
+ }, [
48
+ enabled,
49
+ isCurrentEntity,
50
+ entityKey,
51
+ location.query.revision,
52
+ currentRevisionId,
53
+ openRevision,
54
+ setCurrentRevisionId
55
+ ]);
56
+ useEffect(() => {
57
+ if (!enabled || !isCurrentEntity || !entityKey || handledEntityKeyRef.current !== entityKey) {
58
+ return;
59
+ }
60
+ if (lastURLWriteTimeRef.current === null) {
61
+ lastURLWriteTimeRef.current = Date.now();
62
+ }
63
+ const revisionArg = currentRevisionId ? String(currentRevisionId) : void 0;
64
+ if (location.query.revision === revisionArg) {
65
+ return;
66
+ }
67
+ const write = async () => {
68
+ const addressBarArg = new URLSearchParams(window.location.search).get(
69
+ "revision"
70
+ ) ?? void 0;
71
+ if (addressBarArg !== location.query.revision) {
72
+ return;
73
+ }
74
+ lastURLWriteTimeRef.current = Date.now();
75
+ try {
76
+ await history.navigate(
77
+ addQueryArgs(location.path, { revision: revisionArg }),
78
+ { replace: true }
79
+ );
80
+ } catch {
81
+ }
82
+ };
83
+ if (Date.now() - lastURLWriteTimeRef.current >= URL_WRITE_DEBOUNCE_MS) {
84
+ write();
85
+ return;
86
+ }
87
+ const timeoutId = setTimeout(write, URL_WRITE_DEBOUNCE_MS);
88
+ return () => clearTimeout(timeoutId);
89
+ }, [
90
+ enabled,
91
+ isCurrentEntity,
92
+ entityKey,
93
+ currentRevisionId,
94
+ location,
95
+ history
96
+ ]);
97
+ }
98
+ export {
99
+ useRevisionsURLSync as default
100
+ };
101
+ //# sourceMappingURL=use-revisions-url-sync.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/editor/use-revisions-url-sync.js"],
4
+ "sourcesContent": ["import { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { store as editorStore } from '@wordpress/editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { addQueryArgs } from '@wordpress/url';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\n/**\n * Safari throws after more than 100 History API calls in 30 seconds.\n */\nconst URL_WRITE_DEBOUNCE_MS = 300;\n\nexport default function useRevisionsURLSync( enabled, postType, postId ) {\n\tconst location = useLocation();\n\tconst history = useHistory();\n\tconst { currentPostType, currentPostId, currentRevisionId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst editor = select( editorStore );\n\t\t\treturn {\n\t\t\t\tcurrentPostType: editor.getCurrentPostType(),\n\t\t\t\tcurrentPostId: editor.getCurrentPostId(),\n\t\t\t\tcurrentRevisionId: unlock( editor ).getCurrentRevisionId(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst { openRevision, setCurrentRevisionId } = unlock(\n\t\tuseDispatch( editorStore )\n\t);\n\tconst entityKey = postType && postId ? `${ postType }:${ postId }` : null;\n\tconst isCurrentEntity =\n\t\t!! entityKey &&\n\t\tcurrentPostType === postType &&\n\t\tString( currentPostId ) === String( postId );\n\n\t// The route can change before the editor store. Wait until both point to the\n\t// same entity so a revision from the previous entity is not copied into the\n\t// new URL.\n\tconst handledEntityKeyRef = useRef( null );\n\tconst lastURLWriteTimeRef = useRef( null );\n\tuseEffect( () => {\n\t\tif ( ! enabled ) {\n\t\t\thandledEntityKeyRef.current = null;\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\t! isCurrentEntity ||\n\t\t\t! entityKey ||\n\t\t\thandledEntityKeyRef.current === entityKey\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tlastURLWriteTimeRef.current = null;\n\t\thandledEntityKeyRef.current = entityKey;\n\t\tconst revision = Number( location.query.revision );\n\t\tif ( Number.isInteger( revision ) && revision > 0 ) {\n\t\t\topenRevision( revision );\n\t\t} else if ( currentRevisionId ) {\n\t\t\tsetCurrentRevisionId( null );\n\t\t}\n\t}, [\n\t\tenabled,\n\t\tisCurrentEntity,\n\t\tentityKey,\n\t\tlocation.query.revision,\n\t\tcurrentRevisionId,\n\t\topenRevision,\n\t\tsetCurrentRevisionId,\n\t] );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! enabled ||\n\t\t\t! isCurrentEntity ||\n\t\t\t! entityKey ||\n\t\t\thandledEntityKeyRef.current !== entityKey\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tif ( lastURLWriteTimeRef.current === null ) {\n\t\t\tlastURLWriteTimeRef.current = Date.now();\n\t\t}\n\t\tconst revisionArg = currentRevisionId\n\t\t\t? String( currentRevisionId )\n\t\t\t: undefined;\n\t\tif ( location.query.revision === revisionArg ) {\n\t\t\treturn;\n\t\t}\n\t\tconst write = async () => {\n\t\t\t// Route matching can lag behind the address bar. Writing the stale\n\t\t\t// match back would undo the navigation.\n\t\t\tconst addressBarArg =\n\t\t\t\tnew URLSearchParams( window.location.search ).get(\n\t\t\t\t\t'revision'\n\t\t\t\t) ?? undefined;\n\t\t\tif ( addressBarArg !== location.query.revision ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlastURLWriteTimeRef.current = Date.now();\n\t\t\t// Passing `undefined` removes `revision` without dropping the other\n\t\t\t// query args.\n\t\t\ttry {\n\t\t\t\tawait history.navigate(\n\t\t\t\t\taddQueryArgs( location.path, { revision: revisionArg } ),\n\t\t\t\t\t{ replace: true }\n\t\t\t\t);\n\t\t\t} catch {\n\t\t\t\t// Leave the URL unchanged. The effect can try again on the next\n\t\t\t\t// state change.\n\t\t\t}\n\t\t};\n\t\tif (\n\t\t\tDate.now() - lastURLWriteTimeRef.current >=\n\t\t\tURL_WRITE_DEBOUNCE_MS\n\t\t) {\n\t\t\twrite();\n\t\t\treturn;\n\t\t}\n\t\tconst timeoutId = setTimeout( write, URL_WRITE_DEBOUNCE_MS );\n\t\treturn () => clearTimeout( timeoutId );\n\t}, [\n\t\tenabled,\n\t\tisCurrentEntity,\n\t\tentityKey,\n\t\tcurrentRevisionId,\n\t\tlocation,\n\t\thistory,\n\t] );\n}\n"],
5
+ "mappings": ";AAAA,SAAS,WAAW,mBAAmB;AACvC,SAAS,WAAW,cAAc;AAClC,SAAS,SAAS,mBAAmB;AACrC,SAAS,eAAe,yBAAyB;AACjD,SAAS,oBAAoB;AAC7B,SAAS,cAAc;AAEvB,IAAM,EAAE,YAAY,YAAY,IAAI,OAAQ,iBAAkB;AAK9D,IAAM,wBAAwB;AAEf,SAAR,oBAAsC,SAAS,UAAU,QAAS;AACxE,QAAM,WAAW,YAAY;AAC7B,QAAM,UAAU,WAAW;AAC3B,QAAM,EAAE,iBAAiB,eAAe,kBAAkB,IAAI;AAAA,IAC7D,CAAE,WAAY;AACb,YAAM,SAAS,OAAQ,WAAY;AACnC,aAAO;AAAA,QACN,iBAAiB,OAAO,mBAAmB;AAAA,QAC3C,eAAe,OAAO,iBAAiB;AAAA,QACvC,mBAAmB,OAAQ,MAAO,EAAE,qBAAqB;AAAA,MAC1D;AAAA,IACD;AAAA,IACA,CAAC;AAAA,EACF;AACA,QAAM,EAAE,cAAc,qBAAqB,IAAI;AAAA,IAC9C,YAAa,WAAY;AAAA,EAC1B;AACA,QAAM,YAAY,YAAY,SAAS,GAAI,QAAS,IAAK,MAAO,KAAK;AACrE,QAAM,kBACL,CAAC,CAAE,aACH,oBAAoB,YACpB,OAAQ,aAAc,MAAM,OAAQ,MAAO;AAK5C,QAAM,sBAAsB,OAAQ,IAAK;AACzC,QAAM,sBAAsB,OAAQ,IAAK;AACzC,YAAW,MAAM;AAChB,QAAK,CAAE,SAAU;AAChB,0BAAoB,UAAU;AAC9B;AAAA,IACD;AACA,QACC,CAAE,mBACF,CAAE,aACF,oBAAoB,YAAY,WAC/B;AACD;AAAA,IACD;AAEA,wBAAoB,UAAU;AAC9B,wBAAoB,UAAU;AAC9B,UAAM,WAAW,OAAQ,SAAS,MAAM,QAAS;AACjD,QAAK,OAAO,UAAW,QAAS,KAAK,WAAW,GAAI;AACnD,mBAAc,QAAS;AAAA,IACxB,WAAY,mBAAoB;AAC/B,2BAAsB,IAAK;AAAA,IAC5B;AAAA,EACD,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,MAAM;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AAEF,YAAW,MAAM;AAChB,QACC,CAAE,WACF,CAAE,mBACF,CAAE,aACF,oBAAoB,YAAY,WAC/B;AACD;AAAA,IACD;AACA,QAAK,oBAAoB,YAAY,MAAO;AAC3C,0BAAoB,UAAU,KAAK,IAAI;AAAA,IACxC;AACA,UAAM,cAAc,oBACjB,OAAQ,iBAAkB,IAC1B;AACH,QAAK,SAAS,MAAM,aAAa,aAAc;AAC9C;AAAA,IACD;AACA,UAAM,QAAQ,YAAY;AAGzB,YAAM,gBACL,IAAI,gBAAiB,OAAO,SAAS,MAAO,EAAE;AAAA,QAC7C;AAAA,MACD,KAAK;AACN,UAAK,kBAAkB,SAAS,MAAM,UAAW;AAChD;AAAA,MACD;AACA,0BAAoB,UAAU,KAAK,IAAI;AAGvC,UAAI;AACH,cAAM,QAAQ;AAAA,UACb,aAAc,SAAS,MAAM,EAAE,UAAU,YAAY,CAAE;AAAA,UACvD,EAAE,SAAS,KAAK;AAAA,QACjB;AAAA,MACD,QAAQ;AAAA,MAGR;AAAA,IACD;AACA,QACC,KAAK,IAAI,IAAI,oBAAoB,WACjC,uBACC;AACD,YAAM;AACN;AAAA,IACD;AACA,UAAM,YAAY,WAAY,OAAO,qBAAsB;AAC3D,WAAO,MAAM,aAAc,SAAU;AAAA,EACtC,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AACH;",
6
+ "names": []
7
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/layout/animation.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport { Controller, easings } from '@react-spring/web';\n\n/**\n * WordPress dependencies\n */\nimport { useLayoutEffect, useMemo, useRef } from '@wordpress/element';\n\nfunction getAbsolutePosition( element ) {\n\treturn {\n\t\ttop: element.offsetTop,\n\t\tleft: element.offsetLeft,\n\t};\n}\n\nconst ANIMATION_DURATION = 400;\n\n/**\n * Hook used to compute the styles required to move a div into a new position.\n *\n * The way this animation works is the following:\n * - It first renders the element as if there was no animation.\n * - It takes a snapshot of the position of the block to use it\n * as a destination point for the animation.\n * - It restores the element to the previous position using a CSS transform\n * - It uses the \"resetAnimation\" flag to reset the animation\n * from the beginning in order to animate to the new destination point.\n *\n * @param {Object} $1 Options\n * @param {*} $1.triggerAnimationOnChange Variable used to trigger the animation if it changes.\n */\nfunction useMovingAnimation( { triggerAnimationOnChange } ) {\n\tconst ref = useRef();\n\n\t// Whenever the trigger changes, we need to take a snapshot of the current\n\t// position of the block to use it as a destination point for the animation.\n\tconst { previous, prevRect } = useMemo(\n\t\t() => ( {\n\t\t\tprevious: ref.current && getAbsolutePosition( ref.current ),\n\t\t\tprevRect: ref.current && ref.current.getBoundingClientRect(),\n\t\t} ),\n\t\t[ triggerAnimationOnChange ]\n\t);\n\n\tuseLayoutEffect( () => {\n\t\tif ( ! previous || ! ref.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// We disable the animation if the user has a preference for reduced\n\t\t// motion.\n\t\tconst disableAnimation = window.matchMedia(\n\t\t\t'(prefers-reduced-motion: reduce)'\n\t\t).matches;\n\n\t\tif ( disableAnimation ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst controller = new Controller( {\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth: prevRect.width,\n\t\t\theight: prevRect.height,\n\t\t\tconfig: {\n\t\t\t\tduration: ANIMATION_DURATION,\n\t\t\t\teasing: easings.easeInOutQuint,\n\t\t\t},\n\t\t\tonChange( { value } ) {\n\t\t\t\tif ( ! ref.current ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlet { x, y, width, height } = value;\n\t\t\t\tx = Math.round( x );\n\t\t\t\ty = Math.round( y );\n\t\t\t\twidth = Math.round( width );\n\t\t\t\theight = Math.round( height );\n\t\t\t\tconst finishedMoving = x === 0 && y === 0;\n\t\t\t\tref.current.style.transformOrigin = 'center center';\n\t\t\t\tref.current.style.transform = finishedMoving\n\t\t\t\t\t? null // Set to `null` to explicitly remove the transform.\n\t\t\t\t\t: `translate3d(${ x }px,${ y }px,0)`;\n\t\t\t\tref.current.style.width = finishedMoving\n\t\t\t\t\t? null\n\t\t\t\t\t: `${ width }px`;\n\t\t\t\tref.current.style.height = finishedMoving\n\t\t\t\t\t? null\n\t\t\t\t\t: `${ height }px`;\n\t\t\t},\n\t\t} );\n\n\t\tref.current.style.transform = undefined;\n\t\tconst destination = ref.current.getBoundingClientRect();\n\n\t\tconst x = Math.round( prevRect.left - destination.left );\n\t\tconst y = Math.round( prevRect.top - destination.top );\n\t\tconst width = destination.width;\n\t\tconst height = destination.height;\n\n\t\tcontroller.start( {\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tfrom: { x, y, width: prevRect.width, height: prevRect.height },\n\t\t} );\n\n\t\treturn () => {\n\t\t\tcontroller.stop();\n\t\t\tcontroller.set( {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0,\n\t\t\t\twidth: prevRect.width,\n\t\t\t\theight: prevRect.height,\n\t\t\t} );\n\t\t};\n\t}, [ previous, prevRect ] );\n\n\treturn ref;\n}\n\nexport default useMovingAnimation;\n"],
5
- "mappings": ";AAGA,SAAS,YAAY,eAAe;AAKpC,SAAS,iBAAiB,SAAS,cAAc;AAEjD,SAAS,oBAAqB,SAAU;AACvC,SAAO;AAAA,IACN,KAAK,QAAQ;AAAA,IACb,MAAM,QAAQ;AAAA,EACf;AACD;AAEA,IAAM,qBAAqB;AAgB3B,SAAS,mBAAoB,EAAE,yBAAyB,GAAI;AAC3D,QAAM,MAAM,OAAO;AAInB,QAAM,EAAE,UAAU,SAAS,IAAI;AAAA,IAC9B,OAAQ;AAAA,MACP,UAAU,IAAI,WAAW,oBAAqB,IAAI,OAAQ;AAAA,MAC1D,UAAU,IAAI,WAAW,IAAI,QAAQ,sBAAsB;AAAA,IAC5D;AAAA,IACA,CAAE,wBAAyB;AAAA,EAC5B;AAEA,kBAAiB,MAAM;AACtB,QAAK,CAAE,YAAY,CAAE,IAAI,SAAU;AAClC;AAAA,IACD;AAIA,UAAM,mBAAmB,OAAO;AAAA,MAC/B;AAAA,IACD,EAAE;AAEF,QAAK,kBAAmB;AACvB;AAAA,IACD;AAEA,UAAM,aAAa,IAAI,WAAY;AAAA,MAClC,GAAG;AAAA,MACH,GAAG;AAAA,MACH,OAAO,SAAS;AAAA,MAChB,QAAQ,SAAS;AAAA,MACjB,QAAQ;AAAA,QACP,UAAU;AAAA,QACV,QAAQ,QAAQ;AAAA,MACjB;AAAA,MACA,SAAU,EAAE,MAAM,GAAI;AACrB,YAAK,CAAE,IAAI,SAAU;AACpB;AAAA,QACD;AACA,YAAI,EAAE,GAAAA,IAAG,GAAAC,IAAG,OAAAC,QAAO,QAAAC,QAAO,IAAI;AAC9B,QAAAH,KAAI,KAAK,MAAOA,EAAE;AAClB,QAAAC,KAAI,KAAK,MAAOA,EAAE;AAClB,QAAAC,SAAQ,KAAK,MAAOA,MAAM;AAC1B,QAAAC,UAAS,KAAK,MAAOA,OAAO;AAC5B,cAAM,iBAAiBH,OAAM,KAAKC,OAAM;AACxC,YAAI,QAAQ,MAAM,kBAAkB;AACpC,YAAI,QAAQ,MAAM,YAAY,iBAC3B,OACA,eAAgBD,EAAE,MAAOC,EAAE;AAC9B,YAAI,QAAQ,MAAM,QAAQ,iBACvB,OACA,GAAIC,MAAM;AACb,YAAI,QAAQ,MAAM,SAAS,iBACxB,OACA,GAAIC,OAAO;AAAA,MACf;AAAA,IACD,CAAE;AAEF,QAAI,QAAQ,MAAM,YAAY;AAC9B,UAAM,cAAc,IAAI,QAAQ,sBAAsB;AAEtD,UAAM,IAAI,KAAK,MAAO,SAAS,OAAO,YAAY,IAAK;AACvD,UAAM,IAAI,KAAK,MAAO,SAAS,MAAM,YAAY,GAAI;AACrD,UAAM,QAAQ,YAAY;AAC1B,UAAM,SAAS,YAAY;AAE3B,eAAW,MAAO;AAAA,MACjB,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA,MAAM,EAAE,GAAG,GAAG,OAAO,SAAS,OAAO,QAAQ,SAAS,OAAO;AAAA,IAC9D,CAAE;AAEF,WAAO,MAAM;AACZ,iBAAW,KAAK;AAChB,iBAAW,IAAK;AAAA,QACf,GAAG;AAAA,QACH,GAAG;AAAA,QACH,OAAO,SAAS;AAAA,QAChB,QAAQ,SAAS;AAAA,MAClB,CAAE;AAAA,IACH;AAAA,EACD,GAAG,CAAE,UAAU,QAAS,CAAE;AAE1B,SAAO;AACR;AAEA,IAAO,oBAAQ;",
4
+ "sourcesContent": ["import { Controller, easings } from '@react-spring/web';\nimport { useLayoutEffect, useMemo, useRef } from '@wordpress/element';\n\nfunction getAbsolutePosition( element ) {\n\treturn {\n\t\ttop: element.offsetTop,\n\t\tleft: element.offsetLeft,\n\t};\n}\n\nconst ANIMATION_DURATION = 400;\n\n/**\n * Hook used to compute the styles required to move a div into a new position.\n *\n * The way this animation works is the following:\n * - It first renders the element as if there was no animation.\n * - It takes a snapshot of the position of the block to use it\n * as a destination point for the animation.\n * - It restores the element to the previous position using a CSS transform\n * - It uses the \"resetAnimation\" flag to reset the animation\n * from the beginning in order to animate to the new destination point.\n *\n * @param {Object} $1 Options\n * @param {*} $1.triggerAnimationOnChange Variable used to trigger the animation if it changes.\n */\nfunction useMovingAnimation( { triggerAnimationOnChange } ) {\n\tconst ref = useRef();\n\n\t// Whenever the trigger changes, we need to take a snapshot of the current\n\t// position of the block to use it as a destination point for the animation.\n\tconst { previous, prevRect } = useMemo(\n\t\t() => ( {\n\t\t\tprevious: ref.current && getAbsolutePosition( ref.current ),\n\t\t\tprevRect: ref.current && ref.current.getBoundingClientRect(),\n\t\t} ),\n\t\t[ triggerAnimationOnChange ]\n\t);\n\n\tuseLayoutEffect( () => {\n\t\tif ( ! previous || ! ref.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// We disable the animation if the user has a preference for reduced\n\t\t// motion.\n\t\tconst disableAnimation = window.matchMedia(\n\t\t\t'(prefers-reduced-motion: reduce)'\n\t\t).matches;\n\n\t\tif ( disableAnimation ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst controller = new Controller( {\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth: prevRect.width,\n\t\t\theight: prevRect.height,\n\t\t\tconfig: {\n\t\t\t\tduration: ANIMATION_DURATION,\n\t\t\t\teasing: easings.easeInOutQuint,\n\t\t\t},\n\t\t\tonChange( { value } ) {\n\t\t\t\tif ( ! ref.current ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlet { x, y, width, height } = value;\n\t\t\t\tx = Math.round( x );\n\t\t\t\ty = Math.round( y );\n\t\t\t\twidth = Math.round( width );\n\t\t\t\theight = Math.round( height );\n\t\t\t\tconst finishedMoving = x === 0 && y === 0;\n\t\t\t\tref.current.style.transformOrigin = 'center center';\n\t\t\t\tref.current.style.transform = finishedMoving\n\t\t\t\t\t? null // Set to `null` to explicitly remove the transform.\n\t\t\t\t\t: `translate3d(${ x }px,${ y }px,0)`;\n\t\t\t\tref.current.style.width = finishedMoving\n\t\t\t\t\t? null\n\t\t\t\t\t: `${ width }px`;\n\t\t\t\tref.current.style.height = finishedMoving\n\t\t\t\t\t? null\n\t\t\t\t\t: `${ height }px`;\n\t\t\t},\n\t\t} );\n\n\t\tref.current.style.transform = undefined;\n\t\tconst destination = ref.current.getBoundingClientRect();\n\n\t\tconst x = Math.round( prevRect.left - destination.left );\n\t\tconst y = Math.round( prevRect.top - destination.top );\n\t\tconst width = destination.width;\n\t\tconst height = destination.height;\n\n\t\tcontroller.start( {\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tfrom: { x, y, width: prevRect.width, height: prevRect.height },\n\t\t} );\n\n\t\treturn () => {\n\t\t\tcontroller.stop();\n\t\t\tcontroller.set( {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0,\n\t\t\t\twidth: prevRect.width,\n\t\t\t\theight: prevRect.height,\n\t\t\t} );\n\t\t};\n\t}, [ previous, prevRect ] );\n\n\treturn ref;\n}\n\nexport default useMovingAnimation;\n"],
5
+ "mappings": ";AAAA,SAAS,YAAY,eAAe;AACpC,SAAS,iBAAiB,SAAS,cAAc;AAEjD,SAAS,oBAAqB,SAAU;AACvC,SAAO;AAAA,IACN,KAAK,QAAQ;AAAA,IACb,MAAM,QAAQ;AAAA,EACf;AACD;AAEA,IAAM,qBAAqB;AAgB3B,SAAS,mBAAoB,EAAE,yBAAyB,GAAI;AAC3D,QAAM,MAAM,OAAO;AAInB,QAAM,EAAE,UAAU,SAAS,IAAI;AAAA,IAC9B,OAAQ;AAAA,MACP,UAAU,IAAI,WAAW,oBAAqB,IAAI,OAAQ;AAAA,MAC1D,UAAU,IAAI,WAAW,IAAI,QAAQ,sBAAsB;AAAA,IAC5D;AAAA,IACA,CAAE,wBAAyB;AAAA,EAC5B;AAEA,kBAAiB,MAAM;AACtB,QAAK,CAAE,YAAY,CAAE,IAAI,SAAU;AAClC;AAAA,IACD;AAIA,UAAM,mBAAmB,OAAO;AAAA,MAC/B;AAAA,IACD,EAAE;AAEF,QAAK,kBAAmB;AACvB;AAAA,IACD;AAEA,UAAM,aAAa,IAAI,WAAY;AAAA,MAClC,GAAG;AAAA,MACH,GAAG;AAAA,MACH,OAAO,SAAS;AAAA,MAChB,QAAQ,SAAS;AAAA,MACjB,QAAQ;AAAA,QACP,UAAU;AAAA,QACV,QAAQ,QAAQ;AAAA,MACjB;AAAA,MACA,SAAU,EAAE,MAAM,GAAI;AACrB,YAAK,CAAE,IAAI,SAAU;AACpB;AAAA,QACD;AACA,YAAI,EAAE,GAAAA,IAAG,GAAAC,IAAG,OAAAC,QAAO,QAAAC,QAAO,IAAI;AAC9B,QAAAH,KAAI,KAAK,MAAOA,EAAE;AAClB,QAAAC,KAAI,KAAK,MAAOA,EAAE;AAClB,QAAAC,SAAQ,KAAK,MAAOA,MAAM;AAC1B,QAAAC,UAAS,KAAK,MAAOA,OAAO;AAC5B,cAAM,iBAAiBH,OAAM,KAAKC,OAAM;AACxC,YAAI,QAAQ,MAAM,kBAAkB;AACpC,YAAI,QAAQ,MAAM,YAAY,iBAC3B,OACA,eAAgBD,EAAE,MAAOC,EAAE;AAC9B,YAAI,QAAQ,MAAM,QAAQ,iBACvB,OACA,GAAIC,MAAM;AACb,YAAI,QAAQ,MAAM,SAAS,iBACxB,OACA,GAAIC,OAAO;AAAA,MACf;AAAA,IACD,CAAE;AAEF,QAAI,QAAQ,MAAM,YAAY;AAC9B,UAAM,cAAc,IAAI,QAAQ,sBAAsB;AAEtD,UAAM,IAAI,KAAK,MAAO,SAAS,OAAO,YAAY,IAAK;AACvD,UAAM,IAAI,KAAK,MAAO,SAAS,MAAM,YAAY,GAAI;AACrD,UAAM,QAAQ,YAAY;AAC1B,UAAM,SAAS,YAAY;AAE3B,eAAW,MAAO;AAAA,MACjB,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA,MAAM,EAAE,GAAG,GAAG,OAAO,SAAS,OAAO,QAAQ,SAAS,OAAO;AAAA,IAC9D,CAAE;AAEF,WAAO,MAAM;AACZ,iBAAW,KAAK;AAChB,iBAAW,IAAK;AAAA,QACf,GAAG;AAAA,QACH,GAAG;AAAA,QACH,OAAO,SAAS;AAAA,QAChB,QAAQ,SAAS;AAAA,MAClB,CAAE;AAAA,IACH;AAAA,EACD,GAAG,CAAE,UAAU,QAAS,CAAE;AAE1B,SAAO;AACR;AAEA,IAAO,oBAAQ;",
6
6
  "names": ["x", "y", "width", "height"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/layout/hooks.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { select, subscribe } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\nconst MAX_LOADING_TIME = 10000; // 10 seconds\nconst MAX_PAUSE_TIME = 100;\n\n/**\n * Waits until the site editor has finished its initial loading.\n *\n * Resolves when there's a pause in resolving selectors (no active requests\n * for at least MAX_PAUSE_TIME ms), or after MAX_LOADING_TIME as a fallback\n * to prevent failed requests from blocking the editor indefinitely.\n *\n * @return {Promise<void>} Resolves when loading is considered complete.\n */\nfunction waitWhileSiteEditorLoading() {\n\tlet pauseTimeout;\n\n\tconst { promise, resolve } = Promise.withResolvers();\n\n\tfunction finish() {\n\t\tunsubscribe();\n\t\tclearTimeout( pauseTimeout );\n\t\tclearTimeout( maxTimeout );\n\t\tresolve();\n\t}\n\n\t/*\n\t * If the maximum expected loading time has passed, we consider the\n\t * editor loaded, in order to prevent any failed requests from blocking\n\t * the editor canvas from appearing.\n\t */\n\tconst maxTimeout = setTimeout( finish, MAX_LOADING_TIME );\n\n\tfunction checkResolving() {\n\t\tconst isResolving = select( coreStore ).hasResolvingSelectors();\n\n\t\tif ( isResolving ) {\n\t\t\tclearTimeout( pauseTimeout );\n\t\t\tpauseTimeout = undefined;\n\t\t\treturn;\n\t\t}\n\n\t\t/*\n\t\t * We're using an arbitrary 100ms timeout here to catch brief\n\t\t * moments without any resolving selectors that would result in\n\t\t * displaying brief flickers of loading state and loaded state.\n\t\t *\n\t\t * It's worth experimenting with different values, since this also\n\t\t * adds 100ms of artificial delay after loading has finished.\n\t\t */\n\t\tif ( ! pauseTimeout ) {\n\t\t\tpauseTimeout = setTimeout( finish, MAX_PAUSE_TIME );\n\t\t}\n\t}\n\n\tconst unsubscribe = subscribe( checkResolving, coreStore );\n\tcheckResolving();\n\n\tfunction cancel() {\n\t\tunsubscribe();\n\t\tclearTimeout( pauseTimeout );\n\t\tclearTimeout( maxTimeout );\n\t}\n\n\treturn [ promise, cancel ];\n}\n\nexport function useIsSiteEditorLoading() {\n\tconst [ loaded, setLoaded ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst [ promise, cancel ] = waitWhileSiteEditorLoading();\n\t\tpromise.then( () => setLoaded( true ) );\n\t\treturn cancel;\n\t}, [] );\n\n\treturn ! loaded;\n}\n"],
5
- "mappings": ";AAGA,SAAS,WAAW,gBAAgB;AACpC,SAAS,QAAQ,iBAAiB;AAClC,SAAS,SAAS,iBAAiB;AAEnC,IAAM,mBAAmB;AACzB,IAAM,iBAAiB;AAWvB,SAAS,6BAA6B;AACrC,MAAI;AAEJ,QAAM,EAAE,SAAS,QAAQ,IAAI,QAAQ,cAAc;AAEnD,WAAS,SAAS;AACjB,gBAAY;AACZ,iBAAc,YAAa;AAC3B,iBAAc,UAAW;AACzB,YAAQ;AAAA,EACT;AAOA,QAAM,aAAa,WAAY,QAAQ,gBAAiB;AAExD,WAAS,iBAAiB;AACzB,UAAM,cAAc,OAAQ,SAAU,EAAE,sBAAsB;AAE9D,QAAK,aAAc;AAClB,mBAAc,YAAa;AAC3B,qBAAe;AACf;AAAA,IACD;AAUA,QAAK,CAAE,cAAe;AACrB,qBAAe,WAAY,QAAQ,cAAe;AAAA,IACnD;AAAA,EACD;AAEA,QAAM,cAAc,UAAW,gBAAgB,SAAU;AACzD,iBAAe;AAEf,WAAS,SAAS;AACjB,gBAAY;AACZ,iBAAc,YAAa;AAC3B,iBAAc,UAAW;AAAA,EAC1B;AAEA,SAAO,CAAE,SAAS,MAAO;AAC1B;AAEO,SAAS,yBAAyB;AACxC,QAAM,CAAE,QAAQ,SAAU,IAAI,SAAU,KAAM;AAE9C,YAAW,MAAM;AAChB,UAAM,CAAE,SAAS,MAAO,IAAI,2BAA2B;AACvD,YAAQ,KAAM,MAAM,UAAW,IAAK,CAAE;AACtC,WAAO;AAAA,EACR,GAAG,CAAC,CAAE;AAEN,SAAO,CAAE;AACV;",
4
+ "sourcesContent": ["import { useEffect, useState } from '@wordpress/element';\nimport { select, subscribe } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\nconst MAX_LOADING_TIME = 10000; // 10 seconds\nconst MAX_PAUSE_TIME = 100;\n\n/**\n * Waits until the site editor has finished its initial loading.\n *\n * Resolves when there's a pause in resolving selectors (no active requests\n * for at least MAX_PAUSE_TIME ms), or after MAX_LOADING_TIME as a fallback\n * to prevent failed requests from blocking the editor indefinitely.\n *\n * @return {Promise<void>} Resolves when loading is considered complete.\n */\nfunction waitWhileSiteEditorLoading() {\n\tlet pauseTimeout;\n\n\tconst { promise, resolve } = Promise.withResolvers();\n\n\tfunction finish() {\n\t\tunsubscribe();\n\t\tclearTimeout( pauseTimeout );\n\t\tclearTimeout( maxTimeout );\n\t\tresolve();\n\t}\n\n\t/*\n\t * If the maximum expected loading time has passed, we consider the\n\t * editor loaded, in order to prevent any failed requests from blocking\n\t * the editor canvas from appearing.\n\t */\n\tconst maxTimeout = setTimeout( finish, MAX_LOADING_TIME );\n\n\tfunction checkResolving() {\n\t\tconst isResolving = select( coreStore ).hasResolvingSelectors();\n\n\t\tif ( isResolving ) {\n\t\t\tclearTimeout( pauseTimeout );\n\t\t\tpauseTimeout = undefined;\n\t\t\treturn;\n\t\t}\n\n\t\t/*\n\t\t * We're using an arbitrary 100ms timeout here to catch brief\n\t\t * moments without any resolving selectors that would result in\n\t\t * displaying brief flickers of loading state and loaded state.\n\t\t *\n\t\t * It's worth experimenting with different values, since this also\n\t\t * adds 100ms of artificial delay after loading has finished.\n\t\t */\n\t\tif ( ! pauseTimeout ) {\n\t\t\tpauseTimeout = setTimeout( finish, MAX_PAUSE_TIME );\n\t\t}\n\t}\n\n\tconst unsubscribe = subscribe( checkResolving, coreStore );\n\tcheckResolving();\n\n\tfunction cancel() {\n\t\tunsubscribe();\n\t\tclearTimeout( pauseTimeout );\n\t\tclearTimeout( maxTimeout );\n\t}\n\n\treturn [ promise, cancel ];\n}\n\nexport function useIsSiteEditorLoading() {\n\tconst [ loaded, setLoaded ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst [ promise, cancel ] = waitWhileSiteEditorLoading();\n\t\tpromise.then( () => setLoaded( true ) );\n\t\treturn cancel;\n\t}, [] );\n\n\treturn ! loaded;\n}\n"],
5
+ "mappings": ";AAAA,SAAS,WAAW,gBAAgB;AACpC,SAAS,QAAQ,iBAAiB;AAClC,SAAS,SAAS,iBAAiB;AAEnC,IAAM,mBAAmB;AACzB,IAAM,iBAAiB;AAWvB,SAAS,6BAA6B;AACrC,MAAI;AAEJ,QAAM,EAAE,SAAS,QAAQ,IAAI,QAAQ,cAAc;AAEnD,WAAS,SAAS;AACjB,gBAAY;AACZ,iBAAc,YAAa;AAC3B,iBAAc,UAAW;AACzB,YAAQ;AAAA,EACT;AAOA,QAAM,aAAa,WAAY,QAAQ,gBAAiB;AAExD,WAAS,iBAAiB;AACzB,UAAM,cAAc,OAAQ,SAAU,EAAE,sBAAsB;AAE9D,QAAK,aAAc;AAClB,mBAAc,YAAa;AAC3B,qBAAe;AACf;AAAA,IACD;AAUA,QAAK,CAAE,cAAe;AACrB,qBAAe,WAAY,QAAQ,cAAe;AAAA,IACnD;AAAA,EACD;AAEA,QAAM,cAAc,UAAW,gBAAgB,SAAU;AACzD,iBAAe;AAEf,WAAS,SAAS;AACjB,gBAAY;AACZ,iBAAc,YAAa;AAC3B,iBAAc,UAAW;AAAA,EAC1B;AAEA,SAAO,CAAE,SAAS,MAAO;AAC1B;AAEO,SAAS,yBAAyB;AACxC,QAAM,CAAE,QAAQ,SAAU,IAAI,SAAU,KAAM;AAE9C,YAAW,MAAM;AAChB,UAAM,CAAE,SAAS,MAAO,IAAI,2BAA2B;AACvD,YAAQ,KAAM,MAAM,UAAW,IAAK,CAAE;AACtC,WAAO;AAAA,EACR,GAAG,CAAC,CAAE;AAEN,SAAO,CAAE;AACV;",
6
6
  "names": []
7
7
  }
@@ -85,7 +85,6 @@ function Layout() {
85
85
  "div",
86
86
  {
87
87
  ...navigateRegionsProps,
88
- ref: navigateRegionsProps.ref,
89
88
  className: clsx(
90
89
  "edit-site-layout",
91
90
  navigateRegionsProps.className,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/layout/index.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { NavigableRegion, getAdminThemeColors } from '@wordpress/admin-ui';\nimport {\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n\t__unstableUseNavigateRegions as useNavigateRegions,\n\tSlotFillProvider,\n} from '@wordpress/components';\nimport {\n\tuseReducedMotion,\n\tuseViewportMatch,\n\tuseResizeObserver,\n\tusePrevious,\n} from '@wordpress/compose';\nimport { focus } from '@wordpress/dom';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useState, useRef, useEffect, useMemo } from '@wordpress/element';\nimport {\n\tUnsavedChangesWarning,\n\tErrorBoundary,\n\tprivateApis as editorPrivateApis,\n} from '@wordpress/editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { ThemeProvider } from '@wordpress/theme';\nimport { PluginArea } from '@wordpress/plugins';\nimport { SnackbarNotices, store as noticesStore } from '@wordpress/notices';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { Tooltip } from '@wordpress/ui';\n\n/**\n * Internal dependencies\n */\nimport { SiteHubMobile } from '../site-hub';\nimport ResizableFrame from '../resizable-frame';\nimport { unlock } from '../../lock-unlock';\nimport SaveKeyboardShortcut from '../save-keyboard-shortcut';\nimport { useIsSiteEditorLoading } from './hooks';\nimport useMovingAnimation from './animation';\nimport { SidebarContent, SidebarNavigationProvider } from '../sidebar';\nimport SaveHub from '../save-hub';\nimport SavePanel from '../save-panel';\n\nconst { useLocation } = unlock( routerPrivateApis );\nconst { useStyle, UploadProgressSnackbar } = unlock( editorPrivateApis );\n\nconst ANIMATION_DURATION = 0.3;\nconst CONTENT_COLOR = { background: '#ffffff' };\n\nfunction Layout() {\n\tconst { query, name: routeKey, areas, widths } = useLocation();\n\t// Force canvas to 'view' on notfound route to show the error message and allow navigation.\n\tconst canvas = routeKey === 'notfound' ? 'view' : query?.canvas ?? 'view';\n\tconst showMobileSiteHub = !! areas.mobileContent;\n\tconst hasMobileAreas =\n\t\tareas.mobileSidebar || areas.mobileContent || areas.preview;\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst mobileToggleRef = useRef();\n\tconst sidebarRegionRef = useRef();\n\tconst navigateRegionsProps = useNavigateRegions();\n\tconst disableMotion = useReducedMotion();\n\tconst [ canvasResizer, canvasSize ] = useResizeObserver();\n\tconst isEditorLoading = useIsSiteEditorLoading();\n\tconst [ isResizableFrameOversized, setIsResizableFrameOversized ] =\n\t\tuseState( false );\n\tconst animationRef = useMovingAnimation( {\n\t\ttriggerAnimationOnChange: routeKey + '-' + canvas,\n\t} );\n\n\tconst { showIconLabels } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tshowIconLabels: select( preferencesStore ).get(\n\t\t\t\t'core',\n\t\t\t\t'showIconLabels'\n\t\t\t),\n\t\t};\n\t} );\n\n\tconst backgroundColor = useStyle( 'color.background' );\n\tconst gradientValue = useStyle( 'color.gradient' );\n\tconst previousCanvaMode = usePrevious( canvas );\n\tuseEffect( () => {\n\t\tif ( previousCanvaMode === 'edit' ) {\n\t\t\tconst desktopToggle = sidebarRegionRef.current\n\t\t\t\t? // We're typically expecting the `<DashboardBackButton />` component as the first tabbable element.\n\t\t\t\t focus.tabbable.find( sidebarRegionRef.current )[ 0 ]\n\t\t\t\t: undefined;\n\t\t\t( desktopToggle ?? mobileToggleRef.current )?.focus();\n\t\t}\n\t\t// Should not depend on the previous canvas mode value but the next.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ canvas ] );\n\n\treturn (\n\t\t<>\n\t\t\t<UnsavedChangesWarning />\n\t\t\t{ canvas === 'view' && <SaveKeyboardShortcut /> }\n\t\t\t<div\n\t\t\t\t{ ...navigateRegionsProps }\n\t\t\t\tref={ navigateRegionsProps.ref }\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'edit-site-layout',\n\t\t\t\t\tnavigateRegionsProps.className,\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-full-canvas': canvas === 'edit',\n\t\t\t\t\t\t'show-icon-labels': showIconLabels,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<div className=\"edit-site-layout__content\">\n\t\t\t\t\t{ /*\n\t\t\t\t\t\tThe NavigableRegion must always be rendered and not use\n\t\t\t\t\t\t`inert` otherwise `useNavigateRegions` will fail.\n\t\t\t\t\t*/ }\n\t\t\t\t\t{ ( ! isMobileViewport || ! hasMobileAreas ) && (\n\t\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\t\tref={ sidebarRegionRef }\n\t\t\t\t\t\t\tariaLabel={ __( 'Navigation' ) }\n\t\t\t\t\t\t\tclassName=\"edit-site-layout__sidebar-region\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<AnimatePresence>\n\t\t\t\t\t\t\t\t{ canvas === 'view' && (\n\t\t\t\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t\t\t\tinitial={ { opacity: 0 } }\n\t\t\t\t\t\t\t\t\t\tanimate={ { opacity: 1 } }\n\t\t\t\t\t\t\t\t\t\texit={ { opacity: 0 } }\n\t\t\t\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\t\t\t\tduration:\n\t\t\t\t\t\t\t\t\t\t\t\t// Disable transition in mobile to emulate a full page transition.\n\t\t\t\t\t\t\t\t\t\t\t\tdisableMotion ||\n\t\t\t\t\t\t\t\t\t\t\t\tisMobileViewport\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ANIMATION_DURATION,\n\t\t\t\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-layout__sidebar\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<SidebarNavigationProvider>\n\t\t\t\t\t\t\t\t\t\t\t<SidebarContent\n\t\t\t\t\t\t\t\t\t\t\t\tshouldAnimate={\n\t\t\t\t\t\t\t\t\t\t\t\t\trouteKey !== 'styles' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\trouteKey !== 'identity'\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\trouteKey={ routeKey }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ areas.sidebar }\n\t\t\t\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t</SidebarContent>\n\t\t\t\t\t\t\t\t\t\t</SidebarNavigationProvider>\n\t\t\t\t\t\t\t\t\t\t<SaveHub />\n\t\t\t\t\t\t\t\t\t\t<SavePanel />\n\t\t\t\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</AnimatePresence>\n\t\t\t\t\t\t</NavigableRegion>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<SnackbarNotices className=\"edit-site-layout__snackbar\" />\n\t\t\t\t\t<UploadProgressSnackbar />\n\n\t\t\t\t\t{ isMobileViewport && hasMobileAreas && (\n\t\t\t\t\t\t<div className=\"edit-site-layout__mobile\">\n\t\t\t\t\t\t\t<SidebarNavigationProvider>\n\t\t\t\t\t\t\t\t{ canvas !== 'edit' ? (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ showMobileSiteHub && (\n\t\t\t\t\t\t\t\t\t\t\t<SiteHubMobile\n\t\t\t\t\t\t\t\t\t\t\t\tref={ mobileToggleRef }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t{ areas.mobileContent ? (\n\t\t\t\t\t\t\t\t\t\t\t/*\n\t\t\t\t\t\t\t\t\t\t\t * ThemeProvider wraps SidebarContent (rather than\n\t\t\t\t\t\t\t\t\t\t\t * just the content) so the scroll wrapper it renders\n\t\t\t\t\t\t\t\t\t\t\t * inherits the content background tokens. See\n\t\t\t\t\t\t\t\t\t\t\t * `.edit-site-sidebar__screen-wrapper` in style.scss.\n\t\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t\t<ThemeProvider\n\t\t\t\t\t\t\t\t\t\t\t\tcolor={ CONTENT_COLOR }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<SidebarContent\n\t\t\t\t\t\t\t\t\t\t\t\t\trouteKey={ routeKey }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"edit-site-layout__mobile-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tareas.mobileContent\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</SidebarContent>\n\t\t\t\t\t\t\t\t\t\t\t</ThemeProvider>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<SidebarContent\n\t\t\t\t\t\t\t\t\t\t\t\trouteKey={ routeKey }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ areas.mobileSidebar }\n\t\t\t\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t</SidebarContent>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t<SaveHub />\n\t\t\t\t\t\t\t\t\t\t<SavePanel />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<ThemeProvider color={ CONTENT_COLOR }>\n\t\t\t\t\t\t\t\t\t\t<ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t{ areas.preview }\n\t\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t\t</ThemeProvider>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</SidebarNavigationProvider>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! isMobileViewport &&\n\t\t\t\t\t\tareas.content &&\n\t\t\t\t\t\tcanvas !== 'edit' && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"edit-site-layout__area\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\tmaxWidth: widths?.content,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ThemeProvider color={ CONTENT_COLOR }>\n\t\t\t\t\t\t\t\t\t<ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t{ areas.content }\n\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t</ThemeProvider>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! isMobileViewport && areas.edit && canvas !== 'edit' && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"edit-site-layout__area\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tmaxWidth: widths?.edit,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ThemeProvider color={ CONTENT_COLOR }>\n\t\t\t\t\t\t\t\t<ErrorBoundary>{ areas.edit }</ErrorBoundary>\n\t\t\t\t\t\t\t</ThemeProvider>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! isMobileViewport && areas.preview && (\n\t\t\t\t\t\t<div className=\"edit-site-layout__canvas-container\">\n\t\t\t\t\t\t\t{ canvasResizer }\n\t\t\t\t\t\t\t{ !! canvasSize.width && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t'edit-site-layout__canvas',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'is-right-aligned':\n\t\t\t\t\t\t\t\t\t\t\t\tisResizableFrameOversized,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tref={ animationRef }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t<ResizableFrame\n\t\t\t\t\t\t\t\t\t\t\tisReady={ ! isEditorLoading }\n\t\t\t\t\t\t\t\t\t\t\tisFullWidth={ canvas === 'edit' }\n\t\t\t\t\t\t\t\t\t\t\tdefaultSize={ {\n\t\t\t\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t\t\t\tcanvasSize.width -\n\t\t\t\t\t\t\t\t\t\t\t\t\t24 /* $canvas-padding */,\n\t\t\t\t\t\t\t\t\t\t\t\theight: canvasSize.height,\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\tisOversized={\n\t\t\t\t\t\t\t\t\t\t\t\tisResizableFrameOversized\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tsetIsOversized={\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsResizableFrameOversized\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tinnerContentStyle={ {\n\t\t\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\t\t\tgradientValue ??\n\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<ThemeProvider\n\t\t\t\t\t\t\t\t\t\t\t\tcolor={ CONTENT_COLOR }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ areas.preview }\n\t\t\t\t\t\t\t\t\t\t\t</ThemeProvider>\n\t\t\t\t\t\t\t\t\t\t</ResizableFrame>\n\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default function LayoutWithGlobalStylesProvider( props ) {\n\tconst themeColors = useMemo( getAdminThemeColors, [] );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onPluginAreaError( name ) {\n\t\tcreateErrorNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: plugin name */\n\t\t\t\t__(\n\t\t\t\t\t'The \"%s\" plugin has encountered an error and cannot be rendered.'\n\t\t\t\t),\n\t\t\t\tname\n\t\t\t)\n\t\t);\n\t}\n\n\treturn (\n\t\t<SlotFillProvider>\n\t\t\t<Tooltip.Provider>\n\t\t\t\t{ /** This needs to be within the SlotFillProvider */ }\n\t\t\t\t<PluginArea onError={ onPluginAreaError } />\n\t\t\t\t<ThemeProvider color={ themeColors }>\n\t\t\t\t\t<Layout { ...props } />\n\t\t\t\t</ThemeProvider>\n\t\t\t</Tooltip.Provider>\n\t\t</SlotFillProvider>\n\t);\n}\n"],
5
- "mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,iBAAiB,2BAA2B;AACrD;AAAA,EACC,oBAAoB;AAAA,EACpB,6BAA6B;AAAA,EAC7B,gCAAgC;AAAA,EAChC;AAAA,OACM;AACP;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,aAAa;AACtB,SAAS,IAAI,eAAe;AAC5B,SAAS,UAAU,QAAQ,WAAW,eAAe;AACrD;AAAA,EACC;AAAA,EACA;AAAA,EACA,eAAe;AAAA,OACT;AACP,SAAS,eAAe,yBAAyB;AACjD,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB,SAAS,oBAAoB;AACvD,SAAS,aAAa,iBAAiB;AACvC,SAAS,SAAS,wBAAwB;AAC1C,SAAS,eAAe;AAKxB,SAAS,qBAAqB;AAC9B,OAAO,oBAAoB;AAC3B,SAAS,cAAc;AACvB,OAAO,0BAA0B;AACjC,SAAS,8BAA8B;AACvC,OAAO,wBAAwB;AAC/B,SAAS,gBAAgB,iCAAiC;AAC1D,OAAO,aAAa;AACpB,OAAO,eAAe;AAsDnB,SAuEM,UAvEN,KA2BM,YA3BN;AApDH,IAAM,EAAE,YAAY,IAAI,OAAQ,iBAAkB;AAClD,IAAM,EAAE,UAAU,uBAAuB,IAAI,OAAQ,iBAAkB;AAEvE,IAAM,qBAAqB;AAC3B,IAAM,gBAAgB,EAAE,YAAY,UAAU;AAE9C,SAAS,SAAS;AACjB,QAAM,EAAE,OAAO,MAAM,UAAU,OAAO,OAAO,IAAI,YAAY;AAE7D,QAAM,SAAS,aAAa,aAAa,SAAS,OAAO,UAAU;AACnE,QAAM,oBAAoB,CAAC,CAAE,MAAM;AACnC,QAAM,iBACL,MAAM,iBAAiB,MAAM,iBAAiB,MAAM;AACrD,QAAM,mBAAmB,iBAAkB,UAAU,GAAI;AACzD,QAAM,kBAAkB,OAAO;AAC/B,QAAM,mBAAmB,OAAO;AAChC,QAAM,uBAAuB,mBAAmB;AAChD,QAAM,gBAAgB,iBAAiB;AACvC,QAAM,CAAE,eAAe,UAAW,IAAI,kBAAkB;AACxD,QAAM,kBAAkB,uBAAuB;AAC/C,QAAM,CAAE,2BAA2B,4BAA6B,IAC/D,SAAU,KAAM;AACjB,QAAM,eAAe,mBAAoB;AAAA,IACxC,0BAA0B,WAAW,MAAM;AAAA,EAC5C,CAAE;AAEF,QAAM,EAAE,eAAe,IAAI,UAAW,CAAE,WAAY;AACnD,WAAO;AAAA,MACN,gBAAgB,OAAQ,gBAAiB,EAAE;AAAA,QAC1C;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,EACD,CAAE;AAEF,QAAM,kBAAkB,SAAU,kBAAmB;AACrD,QAAM,gBAAgB,SAAU,gBAAiB;AACjD,QAAM,oBAAoB,YAAa,MAAO;AAC9C,YAAW,MAAM;AAChB,QAAK,sBAAsB,QAAS;AACnC,YAAM,gBAAgB,iBAAiB;AAAA;AAAA,QAEpC,MAAM,SAAS,KAAM,iBAAiB,OAAQ,EAAG,CAAE;AAAA,UACnD;AACH,OAAE,iBAAiB,gBAAgB,UAAW,MAAM;AAAA,IACrD;AAAA,EAGD,GAAG,CAAE,MAAO,CAAE;AAEd,SACC,iCACC;AAAA,wBAAC,yBAAsB;AAAA,IACrB,WAAW,UAAU,oBAAC,wBAAqB;AAAA,IAC7C;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACL,KAAM,qBAAqB;AAAA,QAC3B,WAAY;AAAA,UACX;AAAA,UACA,qBAAqB;AAAA,UACrB;AAAA,YACC,kBAAkB,WAAW;AAAA,YAC7B,oBAAoB;AAAA,UACrB;AAAA,QACD;AAAA,QAEA,+BAAC,SAAI,WAAU,6BAKV;AAAA,YAAE,oBAAoB,CAAE,mBAC3B;AAAA,YAAC;AAAA;AAAA,cACA,KAAM;AAAA,cACN,WAAY,GAAI,YAAa;AAAA,cAC7B,WAAU;AAAA,cAEV,8BAAC,mBACE,qBAAW,UACZ;AAAA,gBAAC,OAAO;AAAA,gBAAP;AAAA,kBACA,SAAU,EAAE,SAAS,EAAE;AAAA,kBACvB,SAAU,EAAE,SAAS,EAAE;AAAA,kBACvB,MAAO,EAAE,SAAS,EAAE;AAAA,kBACpB,YAAa;AAAA,oBACZ,MAAM;AAAA,oBACN;AAAA;AAAA,sBAEC,iBACA,mBACG,IACA;AAAA;AAAA,oBACJ,MAAM;AAAA,kBACP;AAAA,kBACA,WAAU;AAAA,kBAEV;AAAA,wCAAC,6BACA;AAAA,sBAAC;AAAA;AAAA,wBACA,eACC,aAAa,YACb,aAAa;AAAA,wBAEd;AAAA,wBAEA,8BAAC,iBACE,gBAAM,SACT;AAAA;AAAA,oBACD,GACD;AAAA,oBACA,oBAAC,WAAQ;AAAA,oBACT,oBAAC,aAAU;AAAA;AAAA;AAAA,cACZ,GAEF;AAAA;AAAA,UACD;AAAA,UAGD,oBAAC,mBAAgB,WAAU,8BAA6B;AAAA,UACxD,oBAAC,0BAAuB;AAAA,UAEtB,oBAAoB,kBACrB,oBAAC,SAAI,WAAU,4BACd,8BAAC,6BACE,qBAAW,SACZ,iCACG;AAAA,iCACD;AAAA,cAAC;AAAA;AAAA,gBACA,KAAM;AAAA;AAAA,YACP;AAAA,YAEC,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAOP;AAAA,gBAAC;AAAA;AAAA,kBACA,OAAQ;AAAA,kBAER;AAAA,oBAAC;AAAA;AAAA,sBACA;AAAA,sBAEA,8BAAC,SAAI,WAAU,oCACd,8BAAC,iBAEC,gBAAM,eAER,GACD;AAAA;AAAA,kBACD;AAAA;AAAA,cACD;AAAA,gBAEA;AAAA,cAAC;AAAA;AAAA,gBACA;AAAA,gBAEA,8BAAC,iBACE,gBAAM,eACT;AAAA;AAAA,YACD;AAAA,YAED,oBAAC,WAAQ;AAAA,YACT,oBAAC,aAAU;AAAA,aACZ,IAEA,oBAAC,iBAAc,OAAQ,eACtB,8BAAC,iBACE,gBAAM,SACT,GACD,GAEF,GACD;AAAA,UAGC,CAAE,oBACH,MAAM,WACN,WAAW,UACV;AAAA,YAAC;AAAA;AAAA,cACA,WAAU;AAAA,cACV,OAAQ;AAAA,gBACP,UAAU,QAAQ;AAAA,cACnB;AAAA,cAEA,8BAAC,iBAAc,OAAQ,eACtB,8BAAC,iBACE,gBAAM,SACT,GACD;AAAA;AAAA,UACD;AAAA,UAGA,CAAE,oBAAoB,MAAM,QAAQ,WAAW,UAChD;AAAA,YAAC;AAAA;AAAA,cACA,WAAU;AAAA,cACV,OAAQ;AAAA,gBACP,UAAU,QAAQ;AAAA,cACnB;AAAA,cAEA,8BAAC,iBAAc,OAAQ,eACtB,8BAAC,iBAAgB,gBAAM,MAAM,GAC9B;AAAA;AAAA,UACD;AAAA,UAGC,CAAE,oBAAoB,MAAM,WAC7B,qBAAC,SAAI,WAAU,sCACZ;AAAA;AAAA,YACA,CAAC,CAAE,WAAW,SACf;AAAA,cAAC;AAAA;AAAA,gBACA,WAAY;AAAA,kBACX;AAAA,kBACA;AAAA,oBACC,oBACC;AAAA,kBACF;AAAA,gBACD;AAAA,gBACA,KAAM;AAAA,gBAEN,8BAAC,iBACA;AAAA,kBAAC;AAAA;AAAA,oBACA,SAAU,CAAE;AAAA,oBACZ,aAAc,WAAW;AAAA,oBACzB,aAAc;AAAA,sBACb,OACC,WAAW,QACX;AAAA,sBACD,QAAQ,WAAW;AAAA,oBACpB;AAAA,oBACA,aACC;AAAA,oBAED,gBACC;AAAA,oBAED,mBAAoB;AAAA,sBACnB,YACC,iBACA;AAAA,oBACF;AAAA,oBAEA;AAAA,sBAAC;AAAA;AAAA,wBACA,OAAQ;AAAA,wBAEN,gBAAM;AAAA;AAAA,oBACT;AAAA;AAAA,gBACD,GACD;AAAA;AAAA,YACD;AAAA,aAEF;AAAA,WAEF;AAAA;AAAA,IACD;AAAA,KACD;AAEF;AAEe,SAAR,+BAAiD,OAAQ;AAC/D,QAAM,cAAc,QAAS,qBAAqB,CAAC,CAAE;AACrD,QAAM,EAAE,kBAAkB,IAAI,YAAa,YAAa;AACxD,WAAS,kBAAmB,MAAO;AAClC;AAAA,MACC;AAAA;AAAA,QAEC;AAAA,UACC;AAAA,QACD;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,SACC,oBAAC,oBACA,+BAAC,QAAQ,UAAR,EAEA;AAAA,wBAAC,cAAW,SAAU,mBAAoB;AAAA,IAC1C,oBAAC,iBAAc,OAAQ,aACtB,8BAAC,UAAS,GAAG,OAAQ,GACtB;AAAA,KACD,GACD;AAEF;",
4
+ "sourcesContent": ["import clsx from 'clsx';\nimport { NavigableRegion, getAdminThemeColors } from '@wordpress/admin-ui';\nimport {\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n\t__unstableUseNavigateRegions as useNavigateRegions,\n\tSlotFillProvider,\n} from '@wordpress/components';\nimport {\n\tuseReducedMotion,\n\tuseViewportMatch,\n\tuseResizeObserver,\n\tusePrevious,\n} from '@wordpress/compose';\nimport { focus } from '@wordpress/dom';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useState, useRef, useEffect, useMemo } from '@wordpress/element';\nimport {\n\tUnsavedChangesWarning,\n\tErrorBoundary,\n\tprivateApis as editorPrivateApis,\n} from '@wordpress/editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { ThemeProvider } from '@wordpress/theme';\nimport { PluginArea } from '@wordpress/plugins';\nimport { SnackbarNotices, store as noticesStore } from '@wordpress/notices';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { Tooltip } from '@wordpress/ui';\nimport { SiteHubMobile } from '../site-hub';\nimport ResizableFrame from '../resizable-frame';\nimport { unlock } from '../../lock-unlock';\nimport SaveKeyboardShortcut from '../save-keyboard-shortcut';\nimport { useIsSiteEditorLoading } from './hooks';\nimport useMovingAnimation from './animation';\nimport { SidebarContent, SidebarNavigationProvider } from '../sidebar';\nimport SaveHub from '../save-hub';\nimport SavePanel from '../save-panel';\n\nconst { useLocation } = unlock( routerPrivateApis );\nconst { useStyle, UploadProgressSnackbar } = unlock( editorPrivateApis );\n\nconst ANIMATION_DURATION = 0.3;\nconst CONTENT_COLOR = { background: '#ffffff' };\n\nfunction Layout() {\n\tconst { query, name: routeKey, areas, widths } = useLocation();\n\t// Force canvas to 'view' on notfound route to show the error message and allow navigation.\n\tconst canvas = routeKey === 'notfound' ? 'view' : query?.canvas ?? 'view';\n\tconst showMobileSiteHub = !! areas.mobileContent;\n\tconst hasMobileAreas =\n\t\tareas.mobileSidebar || areas.mobileContent || areas.preview;\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst mobileToggleRef = useRef();\n\tconst sidebarRegionRef = useRef();\n\tconst navigateRegionsProps = useNavigateRegions();\n\tconst disableMotion = useReducedMotion();\n\tconst [ canvasResizer, canvasSize ] = useResizeObserver();\n\tconst isEditorLoading = useIsSiteEditorLoading();\n\tconst [ isResizableFrameOversized, setIsResizableFrameOversized ] =\n\t\tuseState( false );\n\tconst animationRef = useMovingAnimation( {\n\t\ttriggerAnimationOnChange: routeKey + '-' + canvas,\n\t} );\n\n\tconst { showIconLabels } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tshowIconLabels: select( preferencesStore ).get(\n\t\t\t\t'core',\n\t\t\t\t'showIconLabels'\n\t\t\t),\n\t\t};\n\t} );\n\n\tconst backgroundColor = useStyle( 'color.background' );\n\tconst gradientValue = useStyle( 'color.gradient' );\n\tconst previousCanvaMode = usePrevious( canvas );\n\tuseEffect( () => {\n\t\tif ( previousCanvaMode === 'edit' ) {\n\t\t\tconst desktopToggle = sidebarRegionRef.current\n\t\t\t\t? // We're typically expecting the `<DashboardBackButton />` component as the first tabbable element.\n\t\t\t\t focus.tabbable.find( sidebarRegionRef.current )[ 0 ]\n\t\t\t\t: undefined;\n\t\t\t( desktopToggle ?? mobileToggleRef.current )?.focus();\n\t\t}\n\t\t// Should not depend on the previous canvas mode value but the next.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ canvas ] );\n\n\treturn (\n\t\t<>\n\t\t\t<UnsavedChangesWarning />\n\t\t\t{ canvas === 'view' && <SaveKeyboardShortcut /> }\n\t\t\t<div\n\t\t\t\t{ ...navigateRegionsProps }\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'edit-site-layout',\n\t\t\t\t\tnavigateRegionsProps.className,\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-full-canvas': canvas === 'edit',\n\t\t\t\t\t\t'show-icon-labels': showIconLabels,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<div className=\"edit-site-layout__content\">\n\t\t\t\t\t{ /*\n\t\t\t\t\t\tThe NavigableRegion must always be rendered and not use\n\t\t\t\t\t\t`inert` otherwise `useNavigateRegions` will fail.\n\t\t\t\t\t*/ }\n\t\t\t\t\t{ ( ! isMobileViewport || ! hasMobileAreas ) && (\n\t\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\t\tref={ sidebarRegionRef }\n\t\t\t\t\t\t\tariaLabel={ __( 'Navigation' ) }\n\t\t\t\t\t\t\tclassName=\"edit-site-layout__sidebar-region\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<AnimatePresence>\n\t\t\t\t\t\t\t\t{ canvas === 'view' && (\n\t\t\t\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t\t\t\tinitial={ { opacity: 0 } }\n\t\t\t\t\t\t\t\t\t\tanimate={ { opacity: 1 } }\n\t\t\t\t\t\t\t\t\t\texit={ { opacity: 0 } }\n\t\t\t\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\t\t\t\tduration:\n\t\t\t\t\t\t\t\t\t\t\t\t// Disable transition in mobile to emulate a full page transition.\n\t\t\t\t\t\t\t\t\t\t\t\tdisableMotion ||\n\t\t\t\t\t\t\t\t\t\t\t\tisMobileViewport\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ANIMATION_DURATION,\n\t\t\t\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-layout__sidebar\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<SidebarNavigationProvider>\n\t\t\t\t\t\t\t\t\t\t\t<SidebarContent\n\t\t\t\t\t\t\t\t\t\t\t\tshouldAnimate={\n\t\t\t\t\t\t\t\t\t\t\t\t\trouteKey !== 'styles' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\trouteKey !== 'identity'\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\trouteKey={ routeKey }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ areas.sidebar }\n\t\t\t\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t</SidebarContent>\n\t\t\t\t\t\t\t\t\t\t</SidebarNavigationProvider>\n\t\t\t\t\t\t\t\t\t\t<SaveHub />\n\t\t\t\t\t\t\t\t\t\t<SavePanel />\n\t\t\t\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</AnimatePresence>\n\t\t\t\t\t\t</NavigableRegion>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<SnackbarNotices className=\"edit-site-layout__snackbar\" />\n\t\t\t\t\t<UploadProgressSnackbar />\n\n\t\t\t\t\t{ isMobileViewport && hasMobileAreas && (\n\t\t\t\t\t\t<div className=\"edit-site-layout__mobile\">\n\t\t\t\t\t\t\t<SidebarNavigationProvider>\n\t\t\t\t\t\t\t\t{ canvas !== 'edit' ? (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ showMobileSiteHub && (\n\t\t\t\t\t\t\t\t\t\t\t<SiteHubMobile\n\t\t\t\t\t\t\t\t\t\t\t\tref={ mobileToggleRef }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t{ areas.mobileContent ? (\n\t\t\t\t\t\t\t\t\t\t\t/*\n\t\t\t\t\t\t\t\t\t\t\t * ThemeProvider wraps SidebarContent (rather than\n\t\t\t\t\t\t\t\t\t\t\t * just the content) so the scroll wrapper it renders\n\t\t\t\t\t\t\t\t\t\t\t * inherits the content background tokens. See\n\t\t\t\t\t\t\t\t\t\t\t * `.edit-site-sidebar__screen-wrapper` in style.scss.\n\t\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t\t<ThemeProvider\n\t\t\t\t\t\t\t\t\t\t\t\tcolor={ CONTENT_COLOR }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<SidebarContent\n\t\t\t\t\t\t\t\t\t\t\t\t\trouteKey={ routeKey }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"edit-site-layout__mobile-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tareas.mobileContent\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</SidebarContent>\n\t\t\t\t\t\t\t\t\t\t\t</ThemeProvider>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<SidebarContent\n\t\t\t\t\t\t\t\t\t\t\t\trouteKey={ routeKey }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ areas.mobileSidebar }\n\t\t\t\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t</SidebarContent>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t<SaveHub />\n\t\t\t\t\t\t\t\t\t\t<SavePanel />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<ThemeProvider color={ CONTENT_COLOR }>\n\t\t\t\t\t\t\t\t\t\t<ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t{ areas.preview }\n\t\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t\t</ThemeProvider>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</SidebarNavigationProvider>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! isMobileViewport &&\n\t\t\t\t\t\tareas.content &&\n\t\t\t\t\t\tcanvas !== 'edit' && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"edit-site-layout__area\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\tmaxWidth: widths?.content,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ThemeProvider color={ CONTENT_COLOR }>\n\t\t\t\t\t\t\t\t\t<ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t{ areas.content }\n\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t</ThemeProvider>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! isMobileViewport && areas.edit && canvas !== 'edit' && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"edit-site-layout__area\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tmaxWidth: widths?.edit,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ThemeProvider color={ CONTENT_COLOR }>\n\t\t\t\t\t\t\t\t<ErrorBoundary>{ areas.edit }</ErrorBoundary>\n\t\t\t\t\t\t\t</ThemeProvider>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! isMobileViewport && areas.preview && (\n\t\t\t\t\t\t<div className=\"edit-site-layout__canvas-container\">\n\t\t\t\t\t\t\t{ canvasResizer }\n\t\t\t\t\t\t\t{ !! canvasSize.width && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t'edit-site-layout__canvas',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'is-right-aligned':\n\t\t\t\t\t\t\t\t\t\t\t\tisResizableFrameOversized,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tref={ animationRef }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t<ResizableFrame\n\t\t\t\t\t\t\t\t\t\t\tisReady={ ! isEditorLoading }\n\t\t\t\t\t\t\t\t\t\t\tisFullWidth={ canvas === 'edit' }\n\t\t\t\t\t\t\t\t\t\t\tdefaultSize={ {\n\t\t\t\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t\t\t\tcanvasSize.width -\n\t\t\t\t\t\t\t\t\t\t\t\t\t24 /* $canvas-padding */,\n\t\t\t\t\t\t\t\t\t\t\t\theight: canvasSize.height,\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\tisOversized={\n\t\t\t\t\t\t\t\t\t\t\t\tisResizableFrameOversized\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tsetIsOversized={\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsResizableFrameOversized\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tinnerContentStyle={ {\n\t\t\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\t\t\tgradientValue ??\n\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<ThemeProvider\n\t\t\t\t\t\t\t\t\t\t\t\tcolor={ CONTENT_COLOR }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ areas.preview }\n\t\t\t\t\t\t\t\t\t\t\t</ThemeProvider>\n\t\t\t\t\t\t\t\t\t\t</ResizableFrame>\n\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default function LayoutWithGlobalStylesProvider( props ) {\n\tconst themeColors = useMemo( getAdminThemeColors, [] );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onPluginAreaError( name ) {\n\t\tcreateErrorNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: plugin name */\n\t\t\t\t__(\n\t\t\t\t\t'The \"%s\" plugin has encountered an error and cannot be rendered.'\n\t\t\t\t),\n\t\t\t\tname\n\t\t\t)\n\t\t);\n\t}\n\n\treturn (\n\t\t<SlotFillProvider>\n\t\t\t<Tooltip.Provider>\n\t\t\t\t{ /** This needs to be within the SlotFillProvider */ }\n\t\t\t\t<PluginArea onError={ onPluginAreaError } />\n\t\t\t\t<ThemeProvider color={ themeColors }>\n\t\t\t\t\t<Layout { ...props } />\n\t\t\t\t</ThemeProvider>\n\t\t\t</Tooltip.Provider>\n\t\t</SlotFillProvider>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/media/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEntityRecord } from '@wordpress/core-data';\n\nfunction Media( { id, size = [ 'large', 'medium', 'thumbnail' ], ...props } ) {\n\tconst { record: media } = useEntityRecord( 'postType', 'attachment', id );\n\tconst currentSize = size.find(\n\t\t( s ) => !! media?.media_details?.sizes?.[ s ]\n\t);\n\n\tconst mediaUrl =\n\t\tmedia?.media_details?.sizes?.[ currentSize ]?.source_url ||\n\t\tmedia?.source_url;\n\n\tif ( ! mediaUrl ) {\n\t\treturn null;\n\t}\n\n\treturn <img { ...props } src={ mediaUrl } alt={ media.alt_text } />;\n}\n\nexport default Media;\n"],
5
- "mappings": ";AAGA,SAAS,uBAAuB;AAgBxB;AAdR,SAAS,MAAO,EAAE,IAAI,OAAO,CAAE,SAAS,UAAU,WAAY,GAAG,GAAG,MAAM,GAAI;AAC7E,QAAM,EAAE,QAAQ,MAAM,IAAI,gBAAiB,YAAY,cAAc,EAAG;AACxE,QAAM,cAAc,KAAK;AAAA,IACxB,CAAE,MAAO,CAAC,CAAE,OAAO,eAAe,QAAS,CAAE;AAAA,EAC9C;AAEA,QAAM,WACL,OAAO,eAAe,QAAS,WAAY,GAAG,cAC9C,OAAO;AAER,MAAK,CAAE,UAAW;AACjB,WAAO;AAAA,EACR;AAEA,SAAO,oBAAC,SAAM,GAAG,OAAQ,KAAM,UAAW,KAAM,MAAM,UAAW;AAClE;AAEA,IAAO,gBAAQ;",
4
+ "sourcesContent": ["import { useEntityRecord } from '@wordpress/core-data';\n\nfunction Media( { id, size = [ 'large', 'medium', 'thumbnail' ], ...props } ) {\n\tconst { record: media } = useEntityRecord( 'postType', 'attachment', id );\n\tconst currentSize = size.find(\n\t\t( s ) => !! media?.media_details?.sizes?.[ s ]\n\t);\n\n\tconst mediaUrl =\n\t\tmedia?.media_details?.sizes?.[ currentSize ]?.source_url ||\n\t\tmedia?.source_url;\n\n\tif ( ! mediaUrl ) {\n\t\treturn null;\n\t}\n\n\treturn <img { ...props } src={ mediaUrl } alt={ media.alt_text } />;\n}\n\nexport default Media;\n"],
5
+ "mappings": ";AAAA,SAAS,uBAAuB;AAgBxB;AAdR,SAAS,MAAO,EAAE,IAAI,OAAO,CAAE,SAAS,UAAU,WAAY,GAAG,GAAG,MAAM,GAAI;AAC7E,QAAM,EAAE,QAAQ,MAAM,IAAI,gBAAiB,YAAY,cAAc,EAAG;AACxE,QAAM,cAAc,KAAK;AAAA,IACxB,CAAE,MAAO,CAAC,CAAE,OAAO,eAAe,QAAS,CAAE;AAAA,EAC9C;AAEA,QAAM,WACL,OAAO,eAAe,QAAS,WAAY,GAAG,cAC9C,OAAO;AAER,MAAK,CAAE,UAAW;AACjB,WAAO;AAAA,EACR;AAEA,SAAO,oBAAC,SAAM,GAAG,OAAQ,KAAM,UAAW,KAAM,MAAM,UAAW;AAClE;AAEA,IAAO,gBAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/more-menu/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport SiteExport from './site-export';\nimport WelcomeGuideMenuItem from './welcome-guide-menu-item';\nimport { unlock } from '../../lock-unlock';\n\nconst { ToolsMoreMenuGroup, PreferencesModal } = unlock( editorPrivateApis );\n\nexport default function MoreMenu() {\n\treturn (\n\t\t<>\n\t\t\t<ToolsMoreMenuGroup>\n\t\t\t\t<SiteExport />\n\t\t\t\t<WelcomeGuideMenuItem />\n\t\t\t</ToolsMoreMenuGroup>\n\t\t\t<PreferencesModal />\n\t\t</>\n\t);\n}\n"],
5
- "mappings": ";AAGA,SAAS,eAAe,yBAAyB;AAKjD,OAAO,gBAAgB;AACvB,OAAO,0BAA0B;AACjC,SAAS,cAAc;AAMrB,mBAEE,KADD,YADD;AAJF,IAAM,EAAE,oBAAoB,iBAAiB,IAAI,OAAQ,iBAAkB;AAE5D,SAAR,WAA4B;AAClC,SACC,iCACC;AAAA,yBAAC,sBACA;AAAA,0BAAC,cAAW;AAAA,MACZ,oBAAC,wBAAqB;AAAA,OACvB;AAAA,IACA,oBAAC,oBAAiB;AAAA,KACnB;AAEF;",
4
+ "sourcesContent": ["import { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport SiteExport from './site-export';\nimport WelcomeGuideMenuItem from './welcome-guide-menu-item';\nimport { unlock } from '../../lock-unlock';\n\nconst { ToolsMoreMenuGroup, PreferencesModal } = unlock( editorPrivateApis );\n\nexport default function MoreMenu() {\n\treturn (\n\t\t<>\n\t\t\t<ToolsMoreMenuGroup>\n\t\t\t\t<SiteExport />\n\t\t\t\t<WelcomeGuideMenuItem />\n\t\t\t</ToolsMoreMenuGroup>\n\t\t\t<PreferencesModal />\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": ";AAAA,SAAS,eAAe,yBAAyB;AACjD,OAAO,gBAAgB;AACvB,OAAO,0BAA0B;AACjC,SAAS,cAAc;AAMrB,mBAEE,KADD,YADD;AAJF,IAAM,EAAE,oBAAoB,iBAAiB,IAAI,OAAQ,iBAAkB;AAE5D,SAAR,WAA4B;AAClC,SACC,iCACC;AAAA,yBAAC,sBACA;AAAA,0BAAC,cAAW;AAAA,MACZ,oBAAC,wBAAqB;AAAA,OACvB;AAAA,IACA,oBAAC,oBAAiB;AAAA,KACnB;AAEF;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/more-menu/site-export.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport apiFetch from '@wordpress/api-fetch';\nimport { download } from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { downloadBlob } from '@wordpress/blob';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n\nexport default function SiteExport() {\n\tconst canExport = useSelect( ( select ) => {\n\t\tconst targetHints =\n\t\t\tselect( coreStore ).getCurrentTheme()?._links?.[\n\t\t\t\t'wp:export-theme'\n\t\t\t]?.[ 0 ]?.targetHints ?? {};\n\n\t\treturn !! targetHints.allow?.includes( 'GET' );\n\t}, [] );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! canExport ) {\n\t\treturn null;\n\t}\n\n\tasync function handleExport() {\n\t\ttry {\n\t\t\tconst response = await apiFetch( {\n\t\t\t\tpath: '/wp-block-editor/v1/export',\n\t\t\t\tparse: false,\n\t\t\t\theaders: {\n\t\t\t\t\tAccept: 'application/zip',\n\t\t\t\t},\n\t\t\t} );\n\t\t\tconst blob = await response.blob();\n\t\t\tconst contentDisposition = response.headers.get(\n\t\t\t\t'content-disposition'\n\t\t\t);\n\t\t\tconst contentDispositionMatches =\n\t\t\t\tcontentDisposition.match( /=(.+)\\.zip/ );\n\t\t\tconst fileName = contentDispositionMatches[ 1 ]\n\t\t\t\t? contentDispositionMatches[ 1 ]\n\t\t\t\t: 'edit-site-export';\n\n\t\t\tdownloadBlob( fileName + '.zip', blob, 'application/zip' );\n\t\t} catch ( errorResponse ) {\n\t\t\tlet error = {};\n\t\t\ttry {\n\t\t\t\terror = await errorResponse.json();\n\t\t\t} catch {}\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the site export.' );\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\trole=\"menuitem\"\n\t\t\ticon={ download }\n\t\t\tonClick={ handleExport }\n\t\t\tinfo={ __(\n\t\t\t\t'Download your theme with updated templates and styles.'\n\t\t\t) }\n\t\t>\n\t\t\t{ _x( 'Export', 'site exporter menu item' ) }\n\t\t</MenuItem>\n\t);\n}\n"],
5
- "mappings": ";AAGA,SAAS,IAAI,UAAU;AACvB,SAAS,gBAAgB;AACzB,OAAO,cAAc;AACrB,SAAS,gBAAgB;AACzB,SAAS,aAAa,iBAAiB;AACvC,SAAS,oBAAoB;AAC7B,SAAS,SAAS,iBAAiB;AACnC,SAAS,SAAS,oBAAoB;AAoDpC;AAlDa,SAAR,aAA8B;AACpC,QAAM,YAAY,UAAW,CAAE,WAAY;AAC1C,UAAM,cACL,OAAQ,SAAU,EAAE,gBAAgB,GAAG,SACtC,iBACD,IAAK,CAAE,GAAG,eAAe,CAAC;AAE3B,WAAO,CAAC,CAAE,YAAY,OAAO,SAAU,KAAM;AAAA,EAC9C,GAAG,CAAC,CAAE;AACN,QAAM,EAAE,kBAAkB,IAAI,YAAa,YAAa;AAExD,MAAK,CAAE,WAAY;AAClB,WAAO;AAAA,EACR;AAEA,iBAAe,eAAe;AAC7B,QAAI;AACH,YAAM,WAAW,MAAM,SAAU;AAAA,QAChC,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS;AAAA,UACR,QAAQ;AAAA,QACT;AAAA,MACD,CAAE;AACF,YAAM,OAAO,MAAM,SAAS,KAAK;AACjC,YAAM,qBAAqB,SAAS,QAAQ;AAAA,QAC3C;AAAA,MACD;AACA,YAAM,4BACL,mBAAmB,MAAO,YAAa;AACxC,YAAM,WAAW,0BAA2B,CAAE,IAC3C,0BAA2B,CAAE,IAC7B;AAEH,mBAAc,WAAW,QAAQ,MAAM,iBAAkB;AAAA,IAC1D,SAAU,eAAgB;AACzB,UAAI,QAAQ,CAAC;AACb,UAAI;AACH,gBAAQ,MAAM,cAAc,KAAK;AAAA,MAClC,QAAQ;AAAA,MAAC;AACT,YAAM,eACL,MAAM,WAAW,MAAM,SAAS,kBAC7B,MAAM,UACN,GAAI,mDAAoD;AAE5D,wBAAmB,cAAc,EAAE,MAAM,WAAW,CAAE;AAAA,IACvD;AAAA,EACD;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAK;AAAA,MACL,MAAO;AAAA,MACP,SAAU;AAAA,MACV,MAAO;AAAA,QACN;AAAA,MACD;AAAA,MAEE,aAAI,UAAU,yBAA0B;AAAA;AAAA,EAC3C;AAEF;",
4
+ "sourcesContent": ["import { __, _x } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport apiFetch from '@wordpress/api-fetch';\nimport { download } from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { downloadBlob } from '@wordpress/blob';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n\nexport default function SiteExport() {\n\tconst canExport = useSelect( ( select ) => {\n\t\tconst targetHints =\n\t\t\tselect( coreStore ).getCurrentTheme()?._links?.[\n\t\t\t\t'wp:export-theme'\n\t\t\t]?.[ 0 ]?.targetHints ?? {};\n\n\t\treturn !! targetHints.allow?.includes( 'GET' );\n\t}, [] );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! canExport ) {\n\t\treturn null;\n\t}\n\n\tasync function handleExport() {\n\t\ttry {\n\t\t\tconst response = await apiFetch( {\n\t\t\t\tpath: '/wp-block-editor/v1/export',\n\t\t\t\tparse: false,\n\t\t\t\theaders: {\n\t\t\t\t\tAccept: 'application/zip',\n\t\t\t\t},\n\t\t\t} );\n\t\t\tconst blob = await response.blob();\n\t\t\tconst contentDisposition = response.headers.get(\n\t\t\t\t'content-disposition'\n\t\t\t);\n\t\t\tconst contentDispositionMatches =\n\t\t\t\tcontentDisposition.match( /=(.+)\\.zip/ );\n\t\t\tconst fileName = contentDispositionMatches[ 1 ]\n\t\t\t\t? contentDispositionMatches[ 1 ]\n\t\t\t\t: 'edit-site-export';\n\n\t\t\tdownloadBlob( fileName + '.zip', blob, 'application/zip' );\n\t\t} catch ( errorResponse ) {\n\t\t\tlet error = {};\n\t\t\ttry {\n\t\t\t\terror = await errorResponse.json();\n\t\t\t} catch {}\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the site export.' );\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\trole=\"menuitem\"\n\t\t\ticon={ download }\n\t\t\tonClick={ handleExport }\n\t\t\tinfo={ __(\n\t\t\t\t'Download your theme with updated templates and styles.'\n\t\t\t) }\n\t\t>\n\t\t\t{ _x( 'Export', 'site exporter menu item' ) }\n\t\t</MenuItem>\n\t);\n}\n"],
5
+ "mappings": ";AAAA,SAAS,IAAI,UAAU;AACvB,SAAS,gBAAgB;AACzB,OAAO,cAAc;AACrB,SAAS,gBAAgB;AACzB,SAAS,aAAa,iBAAiB;AACvC,SAAS,oBAAoB;AAC7B,SAAS,SAAS,iBAAiB;AACnC,SAAS,SAAS,oBAAoB;AAoDpC;AAlDa,SAAR,aAA8B;AACpC,QAAM,YAAY,UAAW,CAAE,WAAY;AAC1C,UAAM,cACL,OAAQ,SAAU,EAAE,gBAAgB,GAAG,SACtC,iBACD,IAAK,CAAE,GAAG,eAAe,CAAC;AAE3B,WAAO,CAAC,CAAE,YAAY,OAAO,SAAU,KAAM;AAAA,EAC9C,GAAG,CAAC,CAAE;AACN,QAAM,EAAE,kBAAkB,IAAI,YAAa,YAAa;AAExD,MAAK,CAAE,WAAY;AAClB,WAAO;AAAA,EACR;AAEA,iBAAe,eAAe;AAC7B,QAAI;AACH,YAAM,WAAW,MAAM,SAAU;AAAA,QAChC,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS;AAAA,UACR,QAAQ;AAAA,QACT;AAAA,MACD,CAAE;AACF,YAAM,OAAO,MAAM,SAAS,KAAK;AACjC,YAAM,qBAAqB,SAAS,QAAQ;AAAA,QAC3C;AAAA,MACD;AACA,YAAM,4BACL,mBAAmB,MAAO,YAAa;AACxC,YAAM,WAAW,0BAA2B,CAAE,IAC3C,0BAA2B,CAAE,IAC7B;AAEH,mBAAc,WAAW,QAAQ,MAAM,iBAAkB;AAAA,IAC1D,SAAU,eAAgB;AACzB,UAAI,QAAQ,CAAC;AACb,UAAI;AACH,gBAAQ,MAAM,cAAc,KAAK;AAAA,MAClC,QAAQ;AAAA,MAAC;AACT,YAAM,eACL,MAAM,WAAW,MAAM,SAAS,kBAC7B,MAAM,UACN,GAAI,mDAAoD;AAE5D,wBAAmB,cAAc,EAAE,MAAM,WAAW,CAAE;AAAA,IACvD;AAAA,EACD;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAK;AAAA,MACL,MAAO;AAAA,MACP,SAAU;AAAA,MACV,MAAO;AAAA,QACN;AAAA,MACD;AAAA,MAEE,aAAI,UAAU,yBAA0B;AAAA;AAAA,EAC3C;AAEF;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/more-menu/welcome-guide-menu-item.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { MenuItem } from '@wordpress/components';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\nexport default function WelcomeGuideMenuItem() {\n\tconst { toggle } = useDispatch( preferencesStore );\n\n\treturn (\n\t\t<MenuItem onClick={ () => toggle( 'core/edit-site', 'welcomeGuide' ) }>\n\t\t\t{ __( 'Welcome Guide' ) }\n\t\t</MenuItem>\n\t);\n}\n"],
5
- "mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AACzB,SAAS,SAAS,wBAAwB;AAMxC;AAJa,SAAR,uBAAwC;AAC9C,QAAM,EAAE,OAAO,IAAI,YAAa,gBAAiB;AAEjD,SACC,oBAAC,YAAS,SAAU,MAAM,OAAQ,kBAAkB,cAAe,GAChE,aAAI,eAAgB,GACvB;AAEF;",
4
+ "sourcesContent": ["import { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { MenuItem } from '@wordpress/components';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\nexport default function WelcomeGuideMenuItem() {\n\tconst { toggle } = useDispatch( preferencesStore );\n\n\treturn (\n\t\t<MenuItem onClick={ () => toggle( 'core/edit-site', 'welcomeGuide' ) }>\n\t\t\t{ __( 'Welcome Guide' ) }\n\t\t</MenuItem>\n\t);\n}\n"],
5
+ "mappings": ";AAAA,SAAS,UAAU;AACnB,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AACzB,SAAS,SAAS,wBAAwB;AAMxC;AAJa,SAAR,uBAAwC;AAC9C,QAAM,EAAE,OAAO,IAAI,YAAa,gBAAiB;AAEjD,SACC,oBAAC,YAAS,SAAU,MAAM,OAAQ,kBAAkB,cAAe,GAChE,aAAI,eAAgB,GACvB;AAEF;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/page-patterns/actions.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { DropdownMenu, MenuGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport AddNewPattern from '../add-new-pattern';\nimport RenameCategoryMenuItem from './rename-category-menu-item';\nimport DeleteCategoryMenuItem from './delete-category-menu-item';\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\nimport { PATTERN_TYPES } from '../../utils/constants';\n\nexport default function PatternsActions( { categoryId, type } ) {\n\tconst { patternCategories } = usePatternCategories();\n\tlet patternCategory;\n\tif ( type === PATTERN_TYPES.user && !! categoryId ) {\n\t\tpatternCategory = patternCategories.find(\n\t\t\t( category ) => category.name === categoryId\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<AddNewPattern />\n\t\t\t{ !! patternCategory?.id && (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\tsize: 'compact',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<RenameCategoryMenuItem\n\t\t\t\t\t\t\t\tcategory={ patternCategory }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<DeleteCategoryMenuItem\n\t\t\t\t\t\t\t\tcategory={ patternCategory }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],
5
- "mappings": ";AAGA,SAAS,cAAc,iBAAiB;AACxC,SAAS,UAAU;AACnB,SAAS,oBAAoB;AAK7B,OAAO,mBAAmB;AAC1B,OAAO,4BAA4B;AACnC,OAAO,4BAA4B;AACnC,OAAO,0BAA0B;AACjC,SAAS,qBAAqB;AAY5B,mBACC,KAWG,YAZJ;AAVa,SAAR,gBAAkC,EAAE,YAAY,KAAK,GAAI;AAC/D,QAAM,EAAE,kBAAkB,IAAI,qBAAqB;AACnD,MAAI;AACJ,MAAK,SAAS,cAAc,QAAQ,CAAC,CAAE,YAAa;AACnD,sBAAkB,kBAAkB;AAAA,MACnC,CAAE,aAAc,SAAS,SAAS;AAAA,IACnC;AAAA,EACD;AAEA,SACC,iCACC;AAAA,wBAAC,iBAAc;AAAA,IACb,CAAC,CAAE,iBAAiB,MACrB;AAAA,MAAC;AAAA;AAAA,QACA,MAAO;AAAA,QACP,OAAQ,GAAI,SAAU;AAAA,QACtB,aAAc;AAAA,UACb,WAAW;AAAA,UACX,MAAM;AAAA,QACP;AAAA,QAEE,WAAE,EAAE,QAAQ,MACb,qBAAC,aACA;AAAA;AAAA,YAAC;AAAA;AAAA,cACA,UAAW;AAAA,cACX;AAAA;AAAA,UACD;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACA,UAAW;AAAA,cACX;AAAA;AAAA,UACD;AAAA,WACD;AAAA;AAAA,IAEF;AAAA,KAEF;AAEF;",
4
+ "sourcesContent": ["import { DropdownMenu, MenuGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\nimport AddNewPattern from '../add-new-pattern';\nimport RenameCategoryMenuItem from './rename-category-menu-item';\nimport DeleteCategoryMenuItem from './delete-category-menu-item';\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\nimport { PATTERN_TYPES } from '../../utils/constants';\n\nexport default function PatternsActions( { categoryId, type } ) {\n\tconst { patternCategories } = usePatternCategories();\n\tlet patternCategory;\n\tif ( type === PATTERN_TYPES.user && !! categoryId ) {\n\t\tpatternCategory = patternCategories.find(\n\t\t\t( category ) => category.name === categoryId\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<AddNewPattern />\n\t\t\t{ !! patternCategory?.id && (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\tsize: 'compact',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<RenameCategoryMenuItem\n\t\t\t\t\t\t\t\tcategory={ patternCategory }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<DeleteCategoryMenuItem\n\t\t\t\t\t\t\t\tcategory={ patternCategory }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": ";AAAA,SAAS,cAAc,iBAAiB;AACxC,SAAS,UAAU;AACnB,SAAS,oBAAoB;AAC7B,OAAO,mBAAmB;AAC1B,OAAO,4BAA4B;AACnC,OAAO,4BAA4B;AACnC,OAAO,0BAA0B;AACjC,SAAS,qBAAqB;AAY5B,mBACC,KAWG,YAZJ;AAVa,SAAR,gBAAkC,EAAE,YAAY,KAAK,GAAI;AAC/D,QAAM,EAAE,kBAAkB,IAAI,qBAAqB;AACnD,MAAI;AACJ,MAAK,SAAS,cAAc,QAAQ,CAAC,CAAE,YAAa;AACnD,sBAAkB,kBAAkB;AAAA,MACnC,CAAE,aAAc,SAAS,SAAS;AAAA,IACnC;AAAA,EACD;AAEA,SACC,iCACC;AAAA,wBAAC,iBAAc;AAAA,IACb,CAAC,CAAE,iBAAiB,MACrB;AAAA,MAAC;AAAA;AAAA,QACA,MAAO;AAAA,QACP,OAAQ,GAAI,SAAU;AAAA,QACtB,aAAc;AAAA,UACb,WAAW;AAAA,UACX,MAAM;AAAA,QACP;AAAA,QAEE,WAAE,EAAE,QAAQ,MACb,qBAAC,aACA;AAAA;AAAA,YAAC;AAAA;AAAA,cACA,UAAW;AAAA,cACX;AAAA;AAAA,UACD;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACA,UAAW;AAAA,cACX;AAAA;AAAA,UACD;AAAA,WACD;AAAA;AAAA,IAEF;AAAA,KAEF;AAEF;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/page-patterns/delete-category-menu-item.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tMenuItem,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { PATTERN_TYPES, PATTERN_DEFAULT_CATEGORY } from '../../utils/constants';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport default function DeleteCategoryMenuItem( { category, onClose } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst history = useHistory();\n\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord, invalidateResolution } =\n\t\tuseDispatch( coreStore );\n\n\tconst onDelete = async () => {\n\t\ttry {\n\t\t\tawait deleteEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\t'wp_pattern_category',\n\t\t\t\tcategory.id,\n\t\t\t\t{ force: true },\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// Prevent the need to refresh the page to get up-to-date categories\n\t\t\t// and pattern categorization.\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\tinvalidateResolution( 'getEntityRecords', [\n\t\t\t\t'postType',\n\t\t\t\tPATTERN_TYPES.user,\n\t\t\t\t{ per_page: -1 },\n\t\t\t] );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: The pattern category's name */\n\t\t\t\t\t_x( '\"%s\" deleted.', 'pattern category' ),\n\t\t\t\t\tcategory.label\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'pattern-category-delete' }\n\t\t\t);\n\n\t\t\tonClose?.();\n\t\t\thistory.navigate(\n\t\t\t\t`/pattern?categoryId=${ PATTERN_DEFAULT_CATEGORY }`\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'An error occurred while deleting the pattern category.'\n\t\t\t\t\t );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-category-delete',\n\t\t\t} );\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem isDestructive onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ __( 'Delete' ) }\n\t\t\t</MenuItem>\n\t\t\t<ConfirmDialog\n\t\t\t\tisOpen={ isModalOpen }\n\t\t\t\tonConfirm={ onDelete }\n\t\t\t\tonCancel={ () => setIsModalOpen( false ) }\n\t\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\t\tclassName=\"edit-site-patterns__delete-modal\"\n\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t// translators: %s: The pattern category's name.\n\t\t\t\t\t_x( 'Delete \"%s\"?', 'pattern category' ),\n\t\t\t\t\tdecodeEntities( category.label )\n\t\t\t\t) }\n\t\t\t\tsize=\"medium\"\n\t\t\t\t__experimentalHideHeader={ false }\n\t\t\t>\n\t\t\t\t{ sprintf(\n\t\t\t\t\t// translators: %s: The pattern category's name.\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete the category \"%s\"? The patterns will not be deleted.'\n\t\t\t\t\t),\n\t\t\t\t\tdecodeEntities( category.label )\n\t\t\t\t) }\n\t\t\t</ConfirmDialog>\n\t\t</>\n\t);\n}\n"],
5
- "mappings": ";AAGA;AAAA,EACC;AAAA,EACA,+BAA+B;AAAA,OACzB;AACP,SAAS,SAAS,iBAAiB;AACnC,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAC/B,SAAS,IAAI,IAAI,eAAe;AAChC,SAAS,SAAS,oBAAoB;AACtC,SAAS,eAAe,yBAAyB;AAKjD,SAAS,cAAc;AACvB,SAAS,eAAe,gCAAgC;AA6DtD,mBACC,KADD;AA3DF,IAAM,EAAE,WAAW,IAAI,OAAQ,iBAAkB;AAElC,SAAR,uBAAyC,EAAE,UAAU,QAAQ,GAAI;AACvE,QAAM,CAAE,aAAa,cAAe,IAAI,SAAU,KAAM;AACxD,QAAM,UAAU,WAAW;AAE3B,QAAM,EAAE,qBAAqB,kBAAkB,IAC9C,YAAa,YAAa;AAC3B,QAAM,EAAE,oBAAoB,qBAAqB,IAChD,YAAa,SAAU;AAExB,QAAM,WAAW,YAAY;AAC5B,QAAI;AACH,YAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT,EAAE,OAAO,KAAK;AAAA,QACd,EAAE,cAAc,KAAK;AAAA,MACtB;AAIA,2BAAsB,0BAA2B;AACjD,2BAAsB,oBAAoB;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,QACd,EAAE,UAAU,GAAG;AAAA,MAChB,CAAE;AAEF;AAAA,QACC;AAAA;AAAA,UAEC,GAAI,iBAAiB,kBAAmB;AAAA,UACxC,SAAS;AAAA,QACV;AAAA,QACA,EAAE,MAAM,YAAY,IAAI,0BAA0B;AAAA,MACnD;AAEA,gBAAU;AACV,cAAQ;AAAA,QACP,uBAAwB,wBAAyB;AAAA,MAClD;AAAA,IACD,SAAU,OAAQ;AACjB,YAAM,eACL,MAAM,WAAW,MAAM,SAAS,kBAC7B,MAAM,UACN;AAAA,QACA;AAAA,MACA;AAEJ,wBAAmB,cAAc;AAAA,QAChC,MAAM;AAAA,QACN,IAAI;AAAA,MACL,CAAE;AAAA,IACH;AAAA,EACD;AAEA,SACC,iCACC;AAAA,wBAAC,YAAS,eAAa,MAAC,SAAU,MAAM,eAAgB,IAAK,GAC1D,aAAI,QAAS,GAChB;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACA,QAAS;AAAA,QACT,WAAY;AAAA,QACZ,UAAW,MAAM,eAAgB,KAAM;AAAA,QACvC,mBAAoB,GAAI,QAAS;AAAA,QACjC,WAAU;AAAA,QACV,OAAQ;AAAA;AAAA,UAEP,GAAI,gBAAgB,kBAAmB;AAAA,UACvC,eAAgB,SAAS,KAAM;AAAA,QAChC;AAAA,QACA,MAAK;AAAA,QACL,0BAA2B;AAAA,QAEzB;AAAA;AAAA,UAED;AAAA,YACC;AAAA,UACD;AAAA,UACA,eAAgB,SAAS,KAAM;AAAA,QAChC;AAAA;AAAA,IACD;AAAA,KACD;AAEF;",
4
+ "sourcesContent": ["import {\n\tMenuItem,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { unlock } from '../../lock-unlock';\nimport { PATTERN_TYPES, PATTERN_DEFAULT_CATEGORY } from '../../utils/constants';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport default function DeleteCategoryMenuItem( { category, onClose } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst history = useHistory();\n\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord, invalidateResolution } =\n\t\tuseDispatch( coreStore );\n\n\tconst onDelete = async () => {\n\t\ttry {\n\t\t\tawait deleteEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\t'wp_pattern_category',\n\t\t\t\tcategory.id,\n\t\t\t\t{ force: true },\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// Prevent the need to refresh the page to get up-to-date categories\n\t\t\t// and pattern categorization.\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\tinvalidateResolution( 'getEntityRecords', [\n\t\t\t\t'postType',\n\t\t\t\tPATTERN_TYPES.user,\n\t\t\t\t{ per_page: -1 },\n\t\t\t] );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: The pattern category's name */\n\t\t\t\t\t_x( '\"%s\" deleted.', 'pattern category' ),\n\t\t\t\t\tcategory.label\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'pattern-category-delete' }\n\t\t\t);\n\n\t\t\tonClose?.();\n\t\t\thistory.navigate(\n\t\t\t\t`/pattern?categoryId=${ PATTERN_DEFAULT_CATEGORY }`\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'An error occurred while deleting the pattern category.'\n\t\t\t\t\t );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-category-delete',\n\t\t\t} );\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem isDestructive onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ __( 'Delete' ) }\n\t\t\t</MenuItem>\n\t\t\t<ConfirmDialog\n\t\t\t\tisOpen={ isModalOpen }\n\t\t\t\tonConfirm={ onDelete }\n\t\t\t\tonCancel={ () => setIsModalOpen( false ) }\n\t\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\t\tclassName=\"edit-site-patterns__delete-modal\"\n\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t// translators: %s: The pattern category's name.\n\t\t\t\t\t_x( 'Delete \"%s\"?', 'pattern category' ),\n\t\t\t\t\tdecodeEntities( category.label )\n\t\t\t\t) }\n\t\t\t\tsize=\"medium\"\n\t\t\t\t__experimentalHideHeader={ false }\n\t\t\t>\n\t\t\t\t{ sprintf(\n\t\t\t\t\t// translators: %s: The pattern category's name.\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete the category \"%s\"? The patterns will not be deleted.'\n\t\t\t\t\t),\n\t\t\t\t\tdecodeEntities( category.label )\n\t\t\t\t) }\n\t\t\t</ConfirmDialog>\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": ";AAAA;AAAA,EACC;AAAA,EACA,+BAA+B;AAAA,OACzB;AACP,SAAS,SAAS,iBAAiB;AACnC,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAC/B,SAAS,IAAI,IAAI,eAAe;AAChC,SAAS,SAAS,oBAAoB;AACtC,SAAS,eAAe,yBAAyB;AACjD,SAAS,cAAc;AACvB,SAAS,eAAe,gCAAgC;AA6DtD,mBACC,KADD;AA3DF,IAAM,EAAE,WAAW,IAAI,OAAQ,iBAAkB;AAElC,SAAR,uBAAyC,EAAE,UAAU,QAAQ,GAAI;AACvE,QAAM,CAAE,aAAa,cAAe,IAAI,SAAU,KAAM;AACxD,QAAM,UAAU,WAAW;AAE3B,QAAM,EAAE,qBAAqB,kBAAkB,IAC9C,YAAa,YAAa;AAC3B,QAAM,EAAE,oBAAoB,qBAAqB,IAChD,YAAa,SAAU;AAExB,QAAM,WAAW,YAAY;AAC5B,QAAI;AACH,YAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT,EAAE,OAAO,KAAK;AAAA,QACd,EAAE,cAAc,KAAK;AAAA,MACtB;AAIA,2BAAsB,0BAA2B;AACjD,2BAAsB,oBAAoB;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,QACd,EAAE,UAAU,GAAG;AAAA,MAChB,CAAE;AAEF;AAAA,QACC;AAAA;AAAA,UAEC,GAAI,iBAAiB,kBAAmB;AAAA,UACxC,SAAS;AAAA,QACV;AAAA,QACA,EAAE,MAAM,YAAY,IAAI,0BAA0B;AAAA,MACnD;AAEA,gBAAU;AACV,cAAQ;AAAA,QACP,uBAAwB,wBAAyB;AAAA,MAClD;AAAA,IACD,SAAU,OAAQ;AACjB,YAAM,eACL,MAAM,WAAW,MAAM,SAAS,kBAC7B,MAAM,UACN;AAAA,QACA;AAAA,MACA;AAEJ,wBAAmB,cAAc;AAAA,QAChC,MAAM;AAAA,QACN,IAAI;AAAA,MACL,CAAE;AAAA,IACH;AAAA,EACD;AAEA,SACC,iCACC;AAAA,wBAAC,YAAS,eAAa,MAAC,SAAU,MAAM,eAAgB,IAAK,GAC1D,aAAI,QAAS,GAChB;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACA,QAAS;AAAA,QACT,WAAY;AAAA,QACZ,UAAW,MAAM,eAAgB,KAAM;AAAA,QACvC,mBAAoB,GAAI,QAAS;AAAA,QACjC,WAAU;AAAA,QACV,OAAQ;AAAA;AAAA,UAEP,GAAI,gBAAgB,kBAAmB;AAAA,UACvC,eAAgB,SAAS,KAAM;AAAA,QAChC;AAAA,QACA,MAAK;AAAA,QACL,0BAA2B;AAAA,QAEzB;AAAA;AAAA,UAED;AAAA,YACC;AAAA,UACD;AAAA,UACA,eAAgB,SAAS,KAAM;AAAA,QAChC;AAAA;AAAA,IACD;AAAA,KACD;AAEF;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/page-patterns/fields.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useId } from '@wordpress/element';\nimport { BlockPreview } from '@wordpress/block-editor';\nimport { parse } from '@wordpress/blocks';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { useStyle } = unlock( editorPrivateApis );\n\nfunction PreviewField( { item } ) {\n\tconst descriptionId = useId();\n\tconst description = item.description || item?.excerpt?.raw;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst backgroundColor = useStyle( 'color.background' );\n\tconst blocks = useMemo( () => {\n\t\treturn (\n\t\t\titem.blocks ??\n\t\t\tparse( item.content.raw, {\n\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t} )\n\t\t);\n\t}, [ item?.content?.raw, item.blocks ] );\n\tconst isEmpty = ! blocks?.length;\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"page-patterns-preview-field\"\n\t\t\tstyle={ { backgroundColor } }\n\t\t\taria-describedby={ !! description ? descriptionId : undefined }\n\t\t>\n\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t{ ! isEmpty && (\n\t\t\t\t<BlockPreview.Async>\n\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tviewportWidth={ item.viewportWidth }\n\t\t\t\t\t/>\n\t\t\t\t</BlockPreview.Async>\n\t\t\t) }\n\t\t\t{ !! description && (\n\t\t\t\t<div hidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const previewField = {\n\tlabel: __( 'Preview' ),\n\tid: 'preview',\n\trender: PreviewField,\n\tenableSorting: false,\n};\n"],
5
- "mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,SAAS,aAAa;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,aAAa;AACtB,SAAS,eAAe,yBAAyB;AAKjD,SAAS,+BAA+B;AACxC,SAAS,cAAc;AAoBrB,SASG,KATH;AAlBF,IAAM,EAAE,SAAS,IAAI,OAAQ,iBAAkB;AAE/C,SAAS,aAAc,EAAE,KAAK,GAAI;AACjC,QAAM,gBAAgB,MAAM;AAC5B,QAAM,cAAc,KAAK,eAAe,MAAM,SAAS;AACvD,QAAM,iBAAiB,KAAK,SAAS;AACrC,QAAM,kBAAkB,SAAU,kBAAmB;AACrD,QAAM,SAAS,QAAS,MAAM;AAC7B,WACC,KAAK,UACL,MAAO,KAAK,QAAQ,KAAK;AAAA,MACxB,6BAA6B;AAAA,IAC9B,CAAE;AAAA,EAEJ,GAAG,CAAE,MAAM,SAAS,KAAK,KAAK,MAAO,CAAE;AACvC,QAAM,UAAU,CAAE,QAAQ;AAE1B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,OAAQ,EAAE,gBAAgB;AAAA,MAC1B,oBAAmB,CAAC,CAAE,cAAc,gBAAgB;AAAA,MAElD;AAAA,mBAAW,kBAAkB,GAAI,qBAAsB;AAAA,QACvD,WAAW,CAAE,kBAAkB,GAAI,eAAgB;AAAA,QACnD,CAAE,WACH,oBAAC,aAAa,OAAb,EACA;AAAA,UAAC;AAAA;AAAA,YACA;AAAA,YACA,eAAgB,KAAK;AAAA;AAAA,QACtB,GACD;AAAA,QAEC,CAAC,CAAE,eACJ,oBAAC,SAAI,QAAM,MAAC,IAAK,eACd,uBACH;AAAA;AAAA;AAAA,EAEF;AAEF;AAEO,IAAM,eAAe;AAAA,EAC3B,OAAO,GAAI,SAAU;AAAA,EACrB,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,eAAe;AAChB;",
4
+ "sourcesContent": ["import { __ } from '@wordpress/i18n';\nimport { useMemo, useId } from '@wordpress/element';\nimport { BlockPreview } from '@wordpress/block-editor';\nimport { parse } from '@wordpress/blocks';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { useStyle } = unlock( editorPrivateApis );\n\nfunction PreviewField( { item } ) {\n\tconst descriptionId = useId();\n\tconst description = item.description || item?.excerpt?.raw;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst backgroundColor = useStyle( 'color.background' );\n\tconst blocks = useMemo( () => {\n\t\treturn (\n\t\t\titem.blocks ??\n\t\t\tparse( item.content.raw, {\n\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t} )\n\t\t);\n\t}, [ item?.content?.raw, item.blocks ] );\n\tconst isEmpty = ! blocks?.length;\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"page-patterns-preview-field\"\n\t\t\tstyle={ { backgroundColor } }\n\t\t\taria-describedby={ !! description ? descriptionId : undefined }\n\t\t>\n\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t{ ! isEmpty && (\n\t\t\t\t<BlockPreview.Async>\n\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tviewportWidth={ item.viewportWidth }\n\t\t\t\t\t/>\n\t\t\t\t</BlockPreview.Async>\n\t\t\t) }\n\t\t\t{ !! description && (\n\t\t\t\t<div hidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const previewField = {\n\tlabel: __( 'Preview' ),\n\tid: 'preview',\n\trender: PreviewField,\n\tenableSorting: false,\n};\n"],
5
+ "mappings": ";AAAA,SAAS,UAAU;AACnB,SAAS,SAAS,aAAa;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,aAAa;AACtB,SAAS,eAAe,yBAAyB;AACjD,SAAS,+BAA+B;AACxC,SAAS,cAAc;AAoBrB,SASG,KATH;AAlBF,IAAM,EAAE,SAAS,IAAI,OAAQ,iBAAkB;AAE/C,SAAS,aAAc,EAAE,KAAK,GAAI;AACjC,QAAM,gBAAgB,MAAM;AAC5B,QAAM,cAAc,KAAK,eAAe,MAAM,SAAS;AACvD,QAAM,iBAAiB,KAAK,SAAS;AACrC,QAAM,kBAAkB,SAAU,kBAAmB;AACrD,QAAM,SAAS,QAAS,MAAM;AAC7B,WACC,KAAK,UACL,MAAO,KAAK,QAAQ,KAAK;AAAA,MACxB,6BAA6B;AAAA,IAC9B,CAAE;AAAA,EAEJ,GAAG,CAAE,MAAM,SAAS,KAAK,KAAK,MAAO,CAAE;AACvC,QAAM,UAAU,CAAE,QAAQ;AAE1B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,OAAQ,EAAE,gBAAgB;AAAA,MAC1B,oBAAmB,CAAC,CAAE,cAAc,gBAAgB;AAAA,MAElD;AAAA,mBAAW,kBAAkB,GAAI,qBAAsB;AAAA,QACvD,WAAW,CAAE,kBAAkB,GAAI,eAAgB;AAAA,QACnD,CAAE,WACH,oBAAC,aAAa,OAAb,EACA;AAAA,UAAC;AAAA;AAAA,YACA;AAAA,YACA,eAAgB,KAAK;AAAA;AAAA,QACtB,GACD;AAAA,QAEC,CAAC,CAAE,eACJ,oBAAC,SAAI,QAAM,MAAC,IAAK,eACd,uBACH;AAAA;AAAA;AAAA,EAEF;AAEF;AAEO,IAAM,eAAe;AAAA,EAC3B,OAAO,GAAI,SAAU;AAAA,EACrB,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,eAAe;AAChB;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/page-patterns/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Page } from '@wordpress/admin-ui';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useView, useViewConfig } from '@wordpress/views';\nimport { useSelect } from '@wordpress/data';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_DEFAULT_CATEGORY,\n} from '../../utils/constants';\nimport usePatternSettings from './use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport usePatterns, { useAugmentPatternsWithPermissions } from './use-patterns';\nimport PatternsActions from './actions';\nimport { useEditPostAction } from '../dataviews-actions';\nimport { previewField } from './fields';\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { usePostActions, usePostFields } = unlock( editorPrivateApis );\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\nconst VIEW_CONFIG_FIELDS = [ 'default_view', 'default_layouts' ];\n\nfunction usePagePatternsHeader( type, categoryId ) {\n\tconst { patternCategories } = usePatternCategories();\n\tconst templatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getCurrentTheme()\n\t\t\t\t?.default_template_part_areas || [],\n\t\t[]\n\t);\n\tlet title, description, patternCategory;\n\tif ( type === TEMPLATE_PART_POST_TYPE ) {\n\t\tconst templatePartArea = templatePartAreas.find(\n\t\t\t( area ) => area.area === categoryId\n\t\t);\n\t\ttitle = templatePartArea?.label || __( 'All Template Parts' );\n\t\tdescription =\n\t\t\ttemplatePartArea?.description ||\n\t\t\t__( 'Includes every template part defined for any area.' );\n\t} else if ( type === PATTERN_TYPES.user && !! categoryId ) {\n\t\tpatternCategory = patternCategories.find(\n\t\t\t( category ) => category.name === categoryId\n\t\t);\n\t\ttitle = patternCategory?.label;\n\t\tdescription = patternCategory?.description;\n\t}\n\n\treturn { title, description };\n}\n\nexport default function DataviewsPatterns() {\n\tconst { path, query } = useLocation();\n\tconst { postType = 'wp_block', categoryId: categoryIdFromURL } = query;\n\tconst history = useHistory();\n\tconst categoryId = categoryIdFromURL || PATTERN_DEFAULT_CATEGORY;\n\tconst { default_view: defaultView, default_layouts: defaultLayouts } =\n\t\tuseViewConfig( {\n\t\t\tkind: 'postType',\n\t\t\tname: postType,\n\t\t\tfields: VIEW_CONFIG_FIELDS,\n\t\t} );\n\tconst { view, updateView, isModified, resetToDefault } = useView( {\n\t\tkind: 'postType',\n\t\tname: postType,\n\t\tslug: 'default',\n\t\tdefaultView,\n\t\tdefaultLayouts,\n\t\tqueryParams: {\n\t\t\tpage: query.pageNumber,\n\t\t\tsearch: query.search,\n\t\t},\n\t\tonChangeQueryParams: ( params ) => {\n\t\t\thistory.navigate(\n\t\t\t\taddQueryArgs( path, {\n\t\t\t\t\t...query,\n\t\t\t\t\tpageNumber: params.page,\n\t\t\t\t\tsearch: params.search,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t} );\n\tconst viewSyncStatus = view.filters?.find(\n\t\t( { field } ) => field === 'sync-status'\n\t)?.value;\n\tconst { patterns, isResolving } = usePatterns( postType, categoryId, {\n\t\tsearch: view.search,\n\t\tsyncStatus: viewSyncStatus,\n\t} );\n\n\tconst postTypeFields = usePostFields( { postType } );\n\tconst fields = useMemo( () => {\n\t\treturn [ previewField, ...( postTypeFields || [] ) ];\n\t}, [ postTypeFields ] );\n\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\t// Search is managed server-side as well as filters for patterns.\n\t\t// However, the author filter in template parts is done client-side.\n\t\tconst viewWithoutFilters = { ...view };\n\t\tdelete viewWithoutFilters.search;\n\t\tif ( postType !== TEMPLATE_PART_POST_TYPE ) {\n\t\t\tviewWithoutFilters.filters = [];\n\t\t}\n\t\treturn filterSortAndPaginate( patterns, viewWithoutFilters, fields );\n\t}, [ patterns, view, fields, postType ] );\n\n\tconst dataWithPermissions = useAugmentPatternsWithPermissions( data );\n\n\tconst templatePartActions = usePostActions( {\n\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\tcontext: 'list',\n\t} );\n\tconst patternActions = usePostActions( {\n\t\tpostType: PATTERN_TYPES.user,\n\t\tcontext: 'list',\n\t} );\n\tconst editAction = useEditPostAction();\n\n\tconst actions = useMemo( () => {\n\t\tif ( postType === TEMPLATE_PART_POST_TYPE ) {\n\t\t\treturn [ editAction, ...templatePartActions ].filter( Boolean );\n\t\t}\n\t\treturn [ editAction, ...patternActions ].filter( Boolean );\n\t}, [ editAction, postType, templatePartActions, patternActions ] );\n\tconst settings = usePatternSettings();\n\tconst { title, description } = usePagePatternsHeader(\n\t\tpostType,\n\t\tcategoryId\n\t);\n\n\t// Wrap everything in a block editor provider.\n\t// This ensures 'styles' that are needed for the previews are synced\n\t// from the site editor store to the block editor store.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<Page\n\t\t\t\tclassName=\"edit-site-page-patterns-dataviews\"\n\t\t\t\ttitle={ title }\n\t\t\t\theadingLevel={ 2 }\n\t\t\t\tsubTitle={ description }\n\t\t\t\tactions={\n\t\t\t\t\t<PatternsActions\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\ttype={ postType }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<DataViews\n\t\t\t\t\tkey={ categoryId + postType }\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t\tdata={ dataWithPermissions || EMPTY_ARRAY }\n\t\t\t\t\tgetItemId={ ( item ) => item.name ?? item.id }\n\t\t\t\t\tisLoading={ isResolving }\n\t\t\t\t\tisItemClickable={ ( item ) =>\n\t\t\t\t\t\titem.type !== PATTERN_TYPES.theme\n\t\t\t\t\t}\n\t\t\t\t\tonClickItem={ ( item ) => {\n\t\t\t\t\t\thistory.navigate(\n\t\t\t\t\t\t\t`/${ item.type }/${\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tPATTERN_TYPES.user,\n\t\t\t\t\t\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t\t\t\t\t].includes( item.type )\n\t\t\t\t\t\t\t\t\t? item.id\n\t\t\t\t\t\t\t\t\t: item.name\n\t\t\t\t\t\t\t}?canvas=edit`\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ updateView }\n\t\t\t\t\tdefaultLayouts={ defaultLayouts }\n\t\t\t\t\tonReset={ isModified ? resetToDefault : false }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Page } from '@wordpress/admin-ui';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useView, useViewConfig } from '@wordpress/views';\nimport { useSelect } from '@wordpress/data';\nimport { addQueryArgs } from '@wordpress/url';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_DEFAULT_CATEGORY,\n} from '../../utils/constants';\nimport usePatternSettings from './use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport usePatterns, { useAugmentPatternsWithPermissions } from './use-patterns';\nimport PatternsActions from './actions';\nimport { useEditPostAction } from '../dataviews-actions';\nimport { previewField } from './fields';\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { usePostActions, usePostFields } = unlock( editorPrivateApis );\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\nconst VIEW_CONFIG_FIELDS = [ 'default_view', 'default_layouts' ];\n\nfunction usePagePatternsHeader( type, categoryId ) {\n\tconst { patternCategories } = usePatternCategories();\n\tconst templatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getCurrentTheme()\n\t\t\t\t?.default_template_part_areas || [],\n\t\t[]\n\t);\n\tlet title, description, patternCategory;\n\tif ( type === TEMPLATE_PART_POST_TYPE ) {\n\t\tconst templatePartArea = templatePartAreas.find(\n\t\t\t( area ) => area.area === categoryId\n\t\t);\n\t\ttitle = templatePartArea?.label || __( 'All Template Parts' );\n\t\tdescription =\n\t\t\ttemplatePartArea?.description ||\n\t\t\t__( 'Includes every template part defined for any area.' );\n\t} else if ( type === PATTERN_TYPES.user && !! categoryId ) {\n\t\tpatternCategory = patternCategories.find(\n\t\t\t( category ) => category.name === categoryId\n\t\t);\n\t\ttitle = patternCategory?.label;\n\t\tdescription = patternCategory?.description;\n\t}\n\n\treturn { title, description };\n}\n\nexport default function DataviewsPatterns() {\n\tconst { path, query } = useLocation();\n\tconst { postType = 'wp_block', categoryId: categoryIdFromURL } = query;\n\tconst history = useHistory();\n\tconst categoryId = categoryIdFromURL || PATTERN_DEFAULT_CATEGORY;\n\tconst { default_view: defaultView, default_layouts: defaultLayouts } =\n\t\tuseViewConfig( {\n\t\t\tkind: 'postType',\n\t\t\tname: postType,\n\t\t\tfields: VIEW_CONFIG_FIELDS,\n\t\t} );\n\tconst { view, updateView, isModified, resetToDefault } = useView( {\n\t\tkind: 'postType',\n\t\tname: postType,\n\t\tslug: 'default',\n\t\tdefaultView,\n\t\tdefaultLayouts,\n\t\tqueryParams: {\n\t\t\tpage: query.pageNumber,\n\t\t\tsearch: query.search,\n\t\t},\n\t\tonChangeQueryParams: ( params ) => {\n\t\t\thistory.navigate(\n\t\t\t\taddQueryArgs( path, {\n\t\t\t\t\t...query,\n\t\t\t\t\tpageNumber: params.page,\n\t\t\t\t\tsearch: params.search,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t} );\n\tconst viewSyncStatus = view.filters?.find(\n\t\t( { field } ) => field === 'sync-status'\n\t)?.value;\n\tconst { patterns, isResolving } = usePatterns( postType, categoryId, {\n\t\tsearch: view.search,\n\t\tsyncStatus: viewSyncStatus,\n\t} );\n\n\tconst postTypeFields = usePostFields( { postType } );\n\tconst fields = useMemo( () => {\n\t\treturn [ previewField, ...( postTypeFields || [] ) ];\n\t}, [ postTypeFields ] );\n\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\t// Search is managed server-side as well as filters for patterns.\n\t\t// However, the author filter in template parts is done client-side.\n\t\tconst viewWithoutFilters = { ...view };\n\t\tdelete viewWithoutFilters.search;\n\t\tif ( postType !== TEMPLATE_PART_POST_TYPE ) {\n\t\t\tviewWithoutFilters.filters = [];\n\t\t}\n\t\treturn filterSortAndPaginate( patterns, viewWithoutFilters, fields );\n\t}, [ patterns, view, fields, postType ] );\n\n\tconst dataWithPermissions = useAugmentPatternsWithPermissions( data );\n\n\tconst templatePartActions = usePostActions( {\n\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\tcontext: 'list',\n\t} );\n\tconst patternActions = usePostActions( {\n\t\tpostType: PATTERN_TYPES.user,\n\t\tcontext: 'list',\n\t} );\n\tconst editAction = useEditPostAction();\n\n\tconst actions = useMemo( () => {\n\t\tif ( postType === TEMPLATE_PART_POST_TYPE ) {\n\t\t\treturn [ editAction, ...templatePartActions ].filter( Boolean );\n\t\t}\n\t\treturn [ editAction, ...patternActions ].filter( Boolean );\n\t}, [ editAction, postType, templatePartActions, patternActions ] );\n\tconst settings = usePatternSettings();\n\tconst { title, description } = usePagePatternsHeader(\n\t\tpostType,\n\t\tcategoryId\n\t);\n\n\t// Wrap everything in a block editor provider.\n\t// This ensures 'styles' that are needed for the previews are synced\n\t// from the site editor store to the block editor store.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<Page\n\t\t\t\tclassName=\"edit-site-page-patterns-dataviews\"\n\t\t\t\ttitle={ title }\n\t\t\t\theadingLevel={ 2 }\n\t\t\t\tsubTitle={ description }\n\t\t\t\tactions={\n\t\t\t\t\t<PatternsActions\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\ttype={ postType }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<DataViews\n\t\t\t\t\tkey={ categoryId + postType }\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t\tdata={ dataWithPermissions || EMPTY_ARRAY }\n\t\t\t\t\tgetItemId={ ( item ) => item.name ?? item.id }\n\t\t\t\t\tisLoading={ isResolving }\n\t\t\t\t\tisItemClickable={ ( item ) =>\n\t\t\t\t\t\titem.type !== PATTERN_TYPES.theme\n\t\t\t\t\t}\n\t\t\t\t\tonClickItem={ ( item ) => {\n\t\t\t\t\t\thistory.navigate(\n\t\t\t\t\t\t\t`/${ item.type }/${\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tPATTERN_TYPES.user,\n\t\t\t\t\t\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t\t\t\t\t].includes( item.type )\n\t\t\t\t\t\t\t\t\t? item.id\n\t\t\t\t\t\t\t\t\t: item.name\n\t\t\t\t\t\t\t}?canvas=edit`\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ updateView }\n\t\t\t\t\tdefaultLayouts={ defaultLayouts }\n\t\t\t\t\tonReset={ isModified ? resetToDefault : false }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }