@wordpress/edit-site 5.19.0 → 5.19.1

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 (443) hide show
  1. package/build/components/add-new-pattern/index.js +3 -3
  2. package/build/components/add-new-pattern/index.js.map +1 -1
  3. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js +73 -0
  4. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +1 -0
  5. package/build/components/block-editor/block-editor-provider/index.js +31 -0
  6. package/build/components/block-editor/block-editor-provider/index.js.map +1 -0
  7. package/build/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
  8. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +1 -0
  9. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js +76 -0
  10. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +1 -0
  11. package/build/components/block-editor/index.js +2 -9
  12. package/build/components/block-editor/index.js.map +1 -1
  13. package/build/components/block-editor/site-editor-canvas.js +1 -1
  14. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  15. package/build/components/create-template-part-modal/index.js +8 -12
  16. package/build/components/create-template-part-modal/index.js.map +1 -1
  17. package/build/components/editor/index.js +4 -1
  18. package/build/components/editor/index.js.map +1 -1
  19. package/build/components/global-styles/font-family-item.js +2 -2
  20. package/build/components/global-styles/font-family-item.js.map +1 -1
  21. package/build/components/global-styles/font-library-modal/collection-font-details.js +49 -0
  22. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -0
  23. package/build/components/global-styles/font-library-modal/collection-font-variant.js +55 -0
  24. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -0
  25. package/build/components/global-styles/font-library-modal/context.js +26 -2
  26. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  27. package/build/components/global-styles/font-library-modal/font-card.js +7 -4
  28. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
  29. package/build/components/global-styles/font-library-modal/font-collection.js +172 -0
  30. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -0
  31. package/build/components/global-styles/font-library-modal/font-demo.js +30 -13
  32. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  33. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +41 -0
  34. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -0
  35. package/build/components/global-styles/font-library-modal/index.js +25 -7
  36. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  37. package/build/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  38. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  39. package/build/components/global-styles/font-library-modal/library-font-card.js +0 -5
  40. package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  41. package/build/components/global-styles/font-library-modal/library-font-details.js +2 -1
  42. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  43. package/build/components/global-styles/font-library-modal/resolvers.js +16 -0
  44. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  45. package/build/components/global-styles/font-library-modal/tab-layout.js +2 -2
  46. package/build/components/global-styles/font-library-modal/tab-layout.js.map +1 -1
  47. package/build/components/global-styles/font-library-modal/utils/constants.js +1 -7
  48. package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
  49. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js +21 -0
  50. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -0
  51. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js +20 -0
  52. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -0
  53. package/build/components/global-styles/font-library-modal/utils/index.js +2 -52
  54. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  55. package/build/components/global-styles/font-library-modal/utils/preview-styles.js +76 -0
  56. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -0
  57. package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js +36 -0
  58. package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -0
  59. package/build/components/global-styles/screen-typography.js +1 -1
  60. package/build/components/global-styles/screen-typography.js.map +1 -1
  61. package/build/components/header-edit-mode/document-actions/index.js +9 -8
  62. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  63. package/build/components/header-edit-mode/index.js +4 -1
  64. package/build/components/header-edit-mode/index.js.map +1 -1
  65. package/build/components/layout/index.js +5 -1
  66. package/build/components/layout/index.js.map +1 -1
  67. package/build/components/list/added-by.js +13 -8
  68. package/build/components/list/added-by.js.map +1 -1
  69. package/build/components/list/index.js +2 -1
  70. package/build/components/list/index.js.map +1 -1
  71. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -3
  72. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  73. package/build/components/page-patterns/duplicate-menu-item.js +5 -5
  74. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
  75. package/build/components/page-patterns/grid-item.js +5 -5
  76. package/build/components/page-patterns/grid-item.js.map +1 -1
  77. package/build/components/page-patterns/index.js +1 -1
  78. package/build/components/page-patterns/index.js.map +1 -1
  79. package/build/components/page-patterns/search-items.js +1 -1
  80. package/build/components/page-patterns/search-items.js.map +1 -1
  81. package/build/components/page-patterns/use-patterns.js +28 -34
  82. package/build/components/page-patterns/use-patterns.js.map +1 -1
  83. package/build/components/page-template-parts/add-new-template-part.js +3 -2
  84. package/build/components/page-template-parts/add-new-template-part.js.map +1 -1
  85. package/build/components/page-template-parts/index.js +2 -1
  86. package/build/components/page-template-parts/index.js.map +1 -1
  87. package/build/components/page-templates/index.js +3 -2
  88. package/build/components/page-templates/index.js.map +1 -1
  89. package/build/components/save-hub/index.js +2 -1
  90. package/build/components/save-hub/index.js.map +1 -1
  91. package/build/components/secondary-sidebar/list-view-sidebar.js +24 -17
  92. package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  93. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +21 -3
  94. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  95. package/build/components/sidebar-edit-mode/page-panels/hooks.js +2 -1
  96. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  97. package/build/components/sidebar-edit-mode/settings-header/index.js +2 -6
  98. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  99. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +9 -2
  100. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
  101. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
  102. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
  103. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +2 -1
  104. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  105. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
  106. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  107. package/build/components/sidebar-navigation-screen-page/page-details.js +2 -1
  108. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  109. package/build/components/sidebar-navigation-screen-pages/index.js +5 -4
  110. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  111. package/build/components/sidebar-navigation-screen-pattern/index.js +2 -1
  112. package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  113. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +3 -2
  114. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  115. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -1
  116. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  117. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
  118. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  119. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +8 -7
  120. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  121. package/build/components/sidebar-navigation-screen-patterns/index.js +3 -3
  122. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  123. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +7 -2
  124. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  125. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +7 -2
  126. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  127. package/build/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
  128. package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  129. package/build/components/sidebar-navigation-screen-templates/index.js +4 -3
  130. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  131. package/build/components/sidebar-navigation-screen-templates-browse/index.js +3 -2
  132. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  133. package/build/components/start-template-options/index.js +20 -2
  134. package/build/components/start-template-options/index.js.map +1 -1
  135. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -4
  136. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  137. package/build/components/sync-state-with-url/use-sync-path-with-url.js +4 -3
  138. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  139. package/build/components/template-actions/index.js +2 -1
  140. package/build/components/template-actions/index.js.map +1 -1
  141. package/build/components/template-actions/rename-menu-item.js +8 -3
  142. package/build/components/template-actions/rename-menu-item.js.map +1 -1
  143. package/build/hooks/commands/use-edit-mode-commands.js +4 -3
  144. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  145. package/build/hooks/navigation-menu-edit.js +2 -1
  146. package/build/hooks/navigation-menu-edit.js.map +1 -1
  147. package/build/hooks/template-part-edit.js +2 -1
  148. package/build/hooks/template-part-edit.js.map +1 -1
  149. package/build/store/actions.js +10 -9
  150. package/build/store/actions.js.map +1 -1
  151. package/build/store/constants.js +1 -9
  152. package/build/store/constants.js.map +1 -1
  153. package/build/store/private-actions.js +21 -1
  154. package/build/store/private-actions.js.map +1 -1
  155. package/build/store/private-selectors.js +23 -0
  156. package/build/store/private-selectors.js.map +1 -1
  157. package/build/store/reducer.js +19 -1
  158. package/build/store/reducer.js.map +1 -1
  159. package/build/store/selectors.js +3 -2
  160. package/build/store/selectors.js.map +1 -1
  161. package/build/utils/constants.js +22 -3
  162. package/build/utils/constants.js.map +1 -1
  163. package/build/utils/is-template-removable.js +1 -1
  164. package/build/utils/is-template-removable.js.map +1 -1
  165. package/build/utils/is-template-revertable.js +1 -1
  166. package/build/utils/is-template-revertable.js.map +1 -1
  167. package/build/utils/template-part-create.js +6 -1
  168. package/build/utils/template-part-create.js.map +1 -1
  169. package/build-module/components/add-new-pattern/index.js +3 -3
  170. package/build-module/components/add-new-pattern/index.js.map +1 -1
  171. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js +65 -0
  172. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +1 -0
  173. package/build-module/components/block-editor/block-editor-provider/index.js +23 -0
  174. package/build-module/components/block-editor/block-editor-provider/index.js.map +1 -0
  175. package/build-module/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
  176. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +1 -0
  177. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js +70 -0
  178. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +1 -0
  179. package/build-module/components/block-editor/index.js +1 -8
  180. package/build-module/components/block-editor/index.js.map +1 -1
  181. package/build-module/components/block-editor/site-editor-canvas.js +2 -2
  182. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  183. package/build-module/components/create-template-part-modal/index.js +8 -12
  184. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  185. package/build-module/components/editor/index.js +4 -1
  186. package/build-module/components/editor/index.js.map +1 -1
  187. package/build-module/components/global-styles/font-family-item.js +2 -2
  188. package/build-module/components/global-styles/font-family-item.js.map +1 -1
  189. package/build-module/components/global-styles/font-library-modal/collection-font-details.js +40 -0
  190. package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +1 -0
  191. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +45 -0
  192. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -0
  193. package/build-module/components/global-styles/font-library-modal/context.js +27 -3
  194. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  195. package/build-module/components/global-styles/font-library-modal/font-card.js +8 -5
  196. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
  197. package/build-module/components/global-styles/font-library-modal/font-collection.js +164 -0
  198. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -0
  199. package/build-module/components/global-styles/font-library-modal/font-demo.js +30 -13
  200. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  201. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +33 -0
  202. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -0
  203. package/build-module/components/global-styles/font-library-modal/index.js +26 -7
  204. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  205. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  206. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  207. package/build-module/components/global-styles/font-library-modal/library-font-card.js +0 -5
  208. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  209. package/build-module/components/global-styles/font-library-modal/library-font-details.js +2 -1
  210. package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  211. package/build-module/components/global-styles/font-library-modal/resolvers.js +14 -0
  212. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  213. package/build-module/components/global-styles/font-library-modal/tab-layout.js +2 -2
  214. package/build-module/components/global-styles/font-library-modal/tab-layout.js.map +1 -1
  215. package/build-module/components/global-styles/font-library-modal/utils/constants.js +1 -6
  216. package/build-module/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
  217. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js +15 -0
  218. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -0
  219. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js +13 -0
  220. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -0
  221. package/build-module/components/global-styles/font-library-modal/utils/index.js +2 -51
  222. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  223. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +68 -0
  224. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -0
  225. package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js +30 -0
  226. package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -0
  227. package/build-module/components/global-styles/screen-typography.js +1 -1
  228. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  229. package/build-module/components/header-edit-mode/document-actions/index.js +9 -8
  230. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  231. package/build-module/components/header-edit-mode/index.js +4 -1
  232. package/build-module/components/header-edit-mode/index.js.map +1 -1
  233. package/build-module/components/layout/index.js +5 -1
  234. package/build-module/components/layout/index.js.map +1 -1
  235. package/build-module/components/list/added-by.js +13 -8
  236. package/build-module/components/list/added-by.js.map +1 -1
  237. package/build-module/components/list/index.js +2 -1
  238. package/build-module/components/list/index.js.map +1 -1
  239. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -3
  240. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  241. package/build-module/components/page-patterns/duplicate-menu-item.js +5 -5
  242. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
  243. package/build-module/components/page-patterns/grid-item.js +5 -5
  244. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  245. package/build-module/components/page-patterns/index.js +1 -1
  246. package/build-module/components/page-patterns/index.js.map +1 -1
  247. package/build-module/components/page-patterns/search-items.js +2 -2
  248. package/build-module/components/page-patterns/search-items.js.map +1 -1
  249. package/build-module/components/page-patterns/use-patterns.js +28 -35
  250. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  251. package/build-module/components/page-template-parts/add-new-template-part.js +3 -2
  252. package/build-module/components/page-template-parts/add-new-template-part.js.map +1 -1
  253. package/build-module/components/page-template-parts/index.js +2 -1
  254. package/build-module/components/page-template-parts/index.js.map +1 -1
  255. package/build-module/components/page-templates/index.js +3 -2
  256. package/build-module/components/page-templates/index.js.map +1 -1
  257. package/build-module/components/save-hub/index.js +2 -1
  258. package/build-module/components/save-hub/index.js.map +1 -1
  259. package/build-module/components/secondary-sidebar/list-view-sidebar.js +26 -19
  260. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  261. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +21 -3
  262. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  263. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +2 -1
  264. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  265. package/build-module/components/sidebar-edit-mode/settings-header/index.js +2 -6
  266. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  267. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +9 -2
  268. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
  269. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
  270. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
  271. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +3 -1
  272. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  273. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
  274. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  275. package/build-module/components/sidebar-navigation-screen-page/page-details.js +2 -1
  276. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  277. package/build-module/components/sidebar-navigation-screen-pages/index.js +5 -4
  278. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  279. package/build-module/components/sidebar-navigation-screen-pattern/index.js +2 -1
  280. package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  281. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +3 -2
  282. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  283. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -1
  284. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  285. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
  286. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  287. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +8 -7
  288. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  289. package/build-module/components/sidebar-navigation-screen-patterns/index.js +4 -4
  290. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  291. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +8 -3
  292. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  293. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +7 -2
  294. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  295. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
  296. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  297. package/build-module/components/sidebar-navigation-screen-templates/index.js +4 -3
  298. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  299. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +3 -2
  300. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  301. package/build-module/components/start-template-options/index.js +20 -2
  302. package/build-module/components/start-template-options/index.js.map +1 -1
  303. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -4
  304. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  305. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +4 -3
  306. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  307. package/build-module/components/template-actions/index.js +2 -1
  308. package/build-module/components/template-actions/index.js.map +1 -1
  309. package/build-module/components/template-actions/rename-menu-item.js +8 -3
  310. package/build-module/components/template-actions/rename-menu-item.js.map +1 -1
  311. package/build-module/hooks/commands/use-edit-mode-commands.js +4 -3
  312. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  313. package/build-module/hooks/navigation-menu-edit.js +2 -1
  314. package/build-module/hooks/navigation-menu-edit.js.map +1 -1
  315. package/build-module/hooks/template-part-edit.js +2 -1
  316. package/build-module/hooks/template-part-edit.js.map +1 -1
  317. package/build-module/store/actions.js +10 -10
  318. package/build-module/store/actions.js.map +1 -1
  319. package/build-module/store/constants.js +0 -4
  320. package/build-module/store/constants.js.map +1 -1
  321. package/build-module/store/private-actions.js +19 -0
  322. package/build-module/store/private-actions.js.map +1 -1
  323. package/build-module/store/private-selectors.js +22 -0
  324. package/build-module/store/private-selectors.js.map +1 -1
  325. package/build-module/store/reducer.js +18 -1
  326. package/build-module/store/reducer.js.map +1 -1
  327. package/build-module/store/selectors.js +3 -3
  328. package/build-module/store/selectors.js.map +1 -1
  329. package/build-module/utils/constants.js +17 -1
  330. package/build-module/utils/constants.js.map +1 -1
  331. package/build-module/utils/is-template-removable.js +2 -2
  332. package/build-module/utils/is-template-removable.js.map +1 -1
  333. package/build-module/utils/is-template-revertable.js +2 -2
  334. package/build-module/utils/is-template-revertable.js.map +1 -1
  335. package/build-module/utils/template-part-create.js +6 -1
  336. package/build-module/utils/template-part-create.js.map +1 -1
  337. package/build-style/style-rtl.css +23 -0
  338. package/build-style/style.css +23 -0
  339. package/package.json +40 -40
  340. package/src/components/add-new-pattern/index.js +3 -3
  341. package/src/components/block-editor/block-editor-provider/default-block-editor-provider.js +70 -0
  342. package/src/components/block-editor/block-editor-provider/index.js +29 -0
  343. package/src/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
  344. package/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js +87 -0
  345. package/src/components/block-editor/block-editor-provider/use-page-content-blocks.js +77 -0
  346. package/src/components/block-editor/index.js +1 -14
  347. package/src/components/block-editor/site-editor-canvas.js +5 -2
  348. package/src/components/create-template-part-modal/index.js +11 -12
  349. package/src/components/editor/index.js +6 -2
  350. package/src/components/global-styles/font-family-item.js +2 -2
  351. package/src/components/global-styles/font-library-modal/collection-font-details.js +56 -0
  352. package/src/components/global-styles/font-library-modal/collection-font-variant.js +45 -0
  353. package/src/components/global-styles/font-library-modal/context.js +33 -2
  354. package/src/components/global-styles/font-library-modal/font-card.js +9 -4
  355. package/src/components/global-styles/font-library-modal/font-collection.js +257 -0
  356. package/src/components/global-styles/font-library-modal/font-demo.js +36 -10
  357. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +50 -0
  358. package/src/components/global-styles/font-library-modal/index.js +30 -5
  359. package/src/components/global-styles/font-library-modal/installed-fonts.js +1 -1
  360. package/src/components/global-styles/font-library-modal/library-font-card.js +1 -8
  361. package/src/components/global-styles/font-library-modal/library-font-details.js +2 -3
  362. package/src/components/global-styles/font-library-modal/resolvers.js +16 -0
  363. package/src/components/global-styles/font-library-modal/style.scss +26 -0
  364. package/src/components/global-styles/font-library-modal/tab-layout.js +2 -2
  365. package/src/components/global-styles/font-library-modal/utils/constants.js +1 -9
  366. package/src/components/global-styles/font-library-modal/utils/filter-fonts.js +18 -0
  367. package/src/components/global-styles/font-library-modal/utils/fonts-outline.js +21 -0
  368. package/src/components/global-styles/font-library-modal/utils/index.js +9 -69
  369. package/src/components/global-styles/font-library-modal/utils/preview-styles.js +86 -0
  370. package/src/components/global-styles/font-library-modal/utils/sort-font-faces.js +33 -0
  371. package/src/components/global-styles/font-library-modal/utils/test/filter-fonts.spec.js +69 -0
  372. package/src/components/global-styles/font-library-modal/utils/test/fonts-outline.spec.js +109 -0
  373. package/src/components/global-styles/font-library-modal/utils/test/{getPreviewStyle.spec.js → preview-styles.spec.js} +49 -9
  374. package/src/components/global-styles/font-library-modal/utils/test/sort-font-faces.js +74 -0
  375. package/src/components/global-styles/screen-typography.js +3 -1
  376. package/src/components/header-edit-mode/document-actions/index.js +17 -8
  377. package/src/components/header-edit-mode/index.js +2 -1
  378. package/src/components/layout/index.js +10 -1
  379. package/src/components/list/added-by.js +29 -11
  380. package/src/components/list/index.js +7 -1
  381. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -8
  382. package/src/components/page-patterns/duplicate-menu-item.js +5 -5
  383. package/src/components/page-patterns/grid-item.js +5 -5
  384. package/src/components/page-patterns/index.js +1 -1
  385. package/src/components/page-patterns/search-items.js +7 -1
  386. package/src/components/page-patterns/use-patterns.js +190 -134
  387. package/src/components/page-template-parts/add-new-template-part.js +5 -2
  388. package/src/components/page-template-parts/index.js +2 -1
  389. package/src/components/page-templates/index.js +3 -2
  390. package/src/components/save-hub/index.js +2 -1
  391. package/src/components/secondary-sidebar/list-view-sidebar.js +31 -26
  392. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +48 -20
  393. package/src/components/sidebar-edit-mode/page-panels/hooks.js +9 -4
  394. package/src/components/sidebar-edit-mode/page-panels/style.scss +6 -0
  395. package/src/components/sidebar-edit-mode/settings-header/index.js +4 -7
  396. package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +9 -2
  397. package/src/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
  398. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +3 -1
  399. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
  400. package/src/components/sidebar-navigation-screen-page/page-details.js +2 -1
  401. package/src/components/sidebar-navigation-screen-pages/index.js +5 -4
  402. package/src/components/sidebar-navigation-screen-pattern/index.js +2 -1
  403. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +8 -2
  404. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +7 -1
  405. package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
  406. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +18 -8
  407. package/src/components/sidebar-navigation-screen-patterns/index.js +8 -4
  408. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +16 -3
  409. package/src/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +12 -2
  410. package/src/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
  411. package/src/components/sidebar-navigation-screen-templates/index.js +4 -3
  412. package/src/components/sidebar-navigation-screen-templates-browse/index.js +6 -2
  413. package/src/components/start-template-options/index.js +39 -2
  414. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +10 -4
  415. package/src/components/sync-state-with-url/use-sync-path-with-url.js +8 -3
  416. package/src/components/template-actions/index.js +2 -1
  417. package/src/components/template-actions/rename-menu-item.js +8 -3
  418. package/src/hooks/commands/use-edit-mode-commands.js +4 -3
  419. package/src/hooks/navigation-menu-edit.js +2 -1
  420. package/src/hooks/template-part-edit.js +2 -1
  421. package/src/store/actions.js +18 -10
  422. package/src/store/constants.js +0 -5
  423. package/src/store/private-actions.js +19 -0
  424. package/src/store/private-selectors.js +22 -0
  425. package/src/store/reducer.js +18 -0
  426. package/src/store/selectors.js +6 -3
  427. package/src/store/test/reducer.js +18 -0
  428. package/src/utils/constants.js +17 -1
  429. package/src/utils/is-template-removable.js +2 -2
  430. package/src/utils/is-template-revertable.js +2 -2
  431. package/src/utils/template-part-create.js +6 -1
  432. package/build/components/block-editor/get-block-editor-provider.js +0 -35
  433. package/build/components/block-editor/get-block-editor-provider.js.map +0 -1
  434. package/build/components/block-editor/providers/default-block-editor-provider.js +0 -49
  435. package/build/components/block-editor/providers/default-block-editor-provider.js.map +0 -1
  436. package/build/components/block-editor/providers/navigation-block-editor-provider.js.map +0 -1
  437. package/build-module/components/block-editor/get-block-editor-provider.js +0 -28
  438. package/build-module/components/block-editor/get-block-editor-provider.js.map +0 -1
  439. package/build-module/components/block-editor/providers/default-block-editor-provider.js +0 -41
  440. package/build-module/components/block-editor/providers/default-block-editor-provider.js.map +0 -1
  441. package/build-module/components/block-editor/providers/navigation-block-editor-provider.js.map +0 -1
  442. package/src/components/block-editor/get-block-editor-provider.js +0 -29
  443. package/src/components/block-editor/providers/default-block-editor-provider.js +0 -44
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_coreData","_htmlEntities","_page","_interopRequireDefault","_table","_link","_addedBy","_templateActions","_addNewTemplate","PageTemplates","records","templates","useEntityRecords","per_page","columns","header","__","cell","template","_element","createElement","__experimentalVStack","__experimentalHeading","as","level","default","params","postId","id","postType","type","canvas","decodeEntities","title","rendered","slug","description","__experimentalText","variant","maxWidth","VisuallyHidden","actions","templateType","showIcon","toggleProps","data"],"sources":["@wordpress/edit-site/src/components/page-templates/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tVisuallyHidden,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport Table from '../table';\nimport Link from '../routes/link';\nimport AddedBy from '../list/added-by';\nimport TemplateActions from '../template-actions';\nimport AddNewTemplate from '../add-new-template';\n\nexport default function PageTemplates() {\n\tconst { records: templates } = useEntityRecords(\n\t\t'postType',\n\t\t'wp_template',\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\n\tconst columns = [\n\t\t{\n\t\t\theader: __( 'Template' ),\n\t\t\tcell: ( template ) => (\n\t\t\t\t<VStack>\n\t\t\t\t\t<Heading as=\"h3\" level={ 5 }>\n\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\tparams={ {\n\t\t\t\t\t\t\t\tpostId: template.id,\n\t\t\t\t\t\t\t\tpostType: template.type,\n\t\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\ttemplate.title?.rendered || template.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{ template.description && (\n\t\t\t\t\t\t<Text variant=\"muted\">\n\t\t\t\t\t\t\t{ decodeEntities( template.description ) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) }\n\t\t\t\t</VStack>\n\t\t\t),\n\t\t\tmaxWidth: 400,\n\t\t},\n\t\t{\n\t\t\theader: __( 'Added by' ),\n\t\t\tcell: ( template ) => (\n\t\t\t\t<AddedBy postType={ template.type } postId={ template.id } />\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\theader: <VisuallyHidden>{ __( 'Actions' ) }</VisuallyHidden>,\n\t\t\tcell: ( template ) => (\n\t\t\t\t<TemplateActions\n\t\t\t\t\tpostType={ template.type }\n\t\t\t\t\tpostId={ template.id }\n\t\t\t\t/>\n\t\t\t),\n\t\t},\n\t];\n\n\treturn (\n\t\t<Page\n\t\t\ttitle={ __( 'Templates' ) }\n\t\t\tactions={\n\t\t\t\t<AddNewTemplate\n\t\t\t\t\ttemplateType={ 'wp_template' }\n\t\t\t\t\tshowIcon={ false }\n\t\t\t\t\ttoggleProps={ { variant: 'primary' } }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t{ templates && <Table data={ templates } columns={ columns } /> }\n\t\t</Page>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_components","require","_i18n","_coreData","_htmlEntities","_page","_interopRequireDefault","_table","_link","_addedBy","_templateActions","_addNewTemplate","_constants","PageTemplates","records","templates","useEntityRecords","TEMPLATE_POST_TYPE","per_page","columns","header","__","cell","template","_element","createElement","__experimentalVStack","__experimentalHeading","as","level","default","params","postId","id","postType","type","canvas","decodeEntities","title","rendered","slug","description","__experimentalText","variant","maxWidth","VisuallyHidden","actions","templateType","showIcon","toggleProps","data"],"sources":["@wordpress/edit-site/src/components/page-templates/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tVisuallyHidden,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport Table from '../table';\nimport Link from '../routes/link';\nimport AddedBy from '../list/added-by';\nimport TemplateActions from '../template-actions';\nimport AddNewTemplate from '../add-new-template';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nexport default function PageTemplates() {\n\tconst { records: templates } = useEntityRecords(\n\t\t'postType',\n\t\tTEMPLATE_POST_TYPE,\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\n\tconst columns = [\n\t\t{\n\t\t\theader: __( 'Template' ),\n\t\t\tcell: ( template ) => (\n\t\t\t\t<VStack>\n\t\t\t\t\t<Heading as=\"h3\" level={ 5 }>\n\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\tparams={ {\n\t\t\t\t\t\t\t\tpostId: template.id,\n\t\t\t\t\t\t\t\tpostType: template.type,\n\t\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\ttemplate.title?.rendered || template.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{ template.description && (\n\t\t\t\t\t\t<Text variant=\"muted\">\n\t\t\t\t\t\t\t{ decodeEntities( template.description ) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) }\n\t\t\t\t</VStack>\n\t\t\t),\n\t\t\tmaxWidth: 400,\n\t\t},\n\t\t{\n\t\t\theader: __( 'Added by' ),\n\t\t\tcell: ( template ) => (\n\t\t\t\t<AddedBy postType={ template.type } postId={ template.id } />\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\theader: <VisuallyHidden>{ __( 'Actions' ) }</VisuallyHidden>,\n\t\t\tcell: ( template ) => (\n\t\t\t\t<TemplateActions\n\t\t\t\t\tpostType={ template.type }\n\t\t\t\t\tpostId={ template.id }\n\t\t\t\t/>\n\t\t\t),\n\t\t},\n\t];\n\n\treturn (\n\t\t<Page\n\t\t\ttitle={ __( 'Templates' ) }\n\t\t\tactions={\n\t\t\t\t<AddNewTemplate\n\t\t\t\t\ttemplateType={ TEMPLATE_POST_TYPE }\n\t\t\t\t\tshowIcon={ false }\n\t\t\t\t\ttoggleProps={ { variant: 'primary' } }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t{ templates && <Table data={ templates } columns={ columns } /> }\n\t\t</Page>\n\t);\n}\n"],"mappings":"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"}
@@ -17,6 +17,7 @@ var _notices = require("@wordpress/notices");
17
17
  var _saveButton = _interopRequireDefault(require("../save-button"));
18
18
  var _isPreviewingTheme = require("../../utils/is-previewing-theme");
19
19
  var _lockUnlock = require("../../lock-unlock");
20
+ var _constants = require("../../utils/constants");
20
21
  /**
21
22
  * WordPress dependencies
22
23
  */
@@ -30,7 +31,7 @@ const {
30
31
  } = (0, _lockUnlock.unlock)(_router.privateApis);
31
32
  const PUBLISH_ON_SAVE_ENTITIES = [{
32
33
  kind: 'postType',
33
- name: 'wp_navigation'
34
+ name: _constants.NAVIGATION_POST_TYPE
34
35
  }];
35
36
  function SaveHub() {
36
37
  const saveNoticeId = 'site-edit-save-notice';
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_components","_i18n","_coreData","_blockEditor","_icons","_router","_notices","_saveButton","_interopRequireDefault","_isPreviewingTheme","_lockUnlock","useLocation","unlock","routerPrivateApis","PUBLISH_ON_SAVE_ENTITIES","kind","name","SaveHub","saveNoticeId","params","__unstableMarkLastChangeAsPersistent","useDispatch","blockEditorStore","createSuccessNotice","createErrorNotice","removeNotice","noticesStore","dirtyCurrentEntity","countUnsavedChanges","isDirty","isSaving","useSelect","select","__experimentalGetDirtyEntityRecords","isSavingEntityRecord","coreStore","dirtyEntityRecords","calcDirtyCurrentEntity","length","path","includes","find","record","postId","postType","String","key","some","editEntityRecord","saveEditedEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","disabled","isPreviewingTheme","label","__","sprintf","_n","saveCurrentEntity","property","undefined","typeToPublish","status","type","id","error","_element","createElement","__experimentalHStack","className","alignment","spacing","Button","variant","onClick","isBusy","__next40pxDefaultSize","default","showTooltip","icon","check","defaultLabel"],"sources":["@wordpress/edit-site/src/components/save-hub/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button, __experimentalHStack as HStack } from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { check } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport SaveButton from '../save-button';\nimport { isPreviewingTheme } from '../../utils/is-previewing-theme';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst PUBLISH_ON_SAVE_ENTITIES = [\n\t{\n\t\tkind: 'postType',\n\t\tname: 'wp_navigation',\n\t},\n];\n\nexport default function SaveHub() {\n\tconst saveNoticeId = 'site-edit-save-notice';\n\tconst { params } = useLocation();\n\n\tconst { __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { createSuccessNotice, createErrorNotice, removeNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { dirtyCurrentEntity, countUnsavedChanges, isDirty, isSaving } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\t\t\tisSavingEntityRecord,\n\t\t\t\t} = select( coreStore );\n\t\t\t\tconst dirtyEntityRecords =\n\t\t\t\t\t__experimentalGetDirtyEntityRecords();\n\t\t\t\tlet calcDirtyCurrentEntity = null;\n\n\t\t\t\tif ( dirtyEntityRecords.length === 1 ) {\n\t\t\t\t\t// if we are on global styles\n\t\t\t\t\tif ( params.path?.includes( 'wp_global_styles' ) ) {\n\t\t\t\t\t\tcalcDirtyCurrentEntity = dirtyEntityRecords.find(\n\t\t\t\t\t\t\t( record ) => record.name === 'globalStyles'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// if we are on pages\n\t\t\t\t\telse if ( params.postId ) {\n\t\t\t\t\t\tcalcDirtyCurrentEntity = dirtyEntityRecords.find(\n\t\t\t\t\t\t\t( record ) =>\n\t\t\t\t\t\t\t\trecord.name === params.postType &&\n\t\t\t\t\t\t\t\tString( record.key ) === params.postId\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tdirtyCurrentEntity: calcDirtyCurrentEntity,\n\t\t\t\t\tisDirty: dirtyEntityRecords.length > 0,\n\t\t\t\t\tisSaving: dirtyEntityRecords.some( ( record ) =>\n\t\t\t\t\t\tisSavingEntityRecord(\n\t\t\t\t\t\t\trecord.kind,\n\t\t\t\t\t\t\trecord.name,\n\t\t\t\t\t\t\trecord.key\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\tcountUnsavedChanges: dirtyEntityRecords.length,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ params.path, params.postType, params.postId ]\n\t\t);\n\n\tconst {\n\t\teditEntityRecord,\n\t\tsaveEditedEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst disabled = isSaving || ( ! isDirty && ! isPreviewingTheme() );\n\n\t// if we have only one unsaved change and it matches current context, we can show a more specific label\n\tlet label = dirtyCurrentEntity\n\t\t? __( 'Save' )\n\t\t: sprintf(\n\t\t\t\t// translators: %d: number of unsaved changes (number).\n\t\t\t\t_n(\n\t\t\t\t\t'Review %d change…',\n\t\t\t\t\t'Review %d changes…',\n\t\t\t\t\tcountUnsavedChanges\n\t\t\t\t),\n\t\t\t\tcountUnsavedChanges\n\t\t );\n\n\tif ( isSaving ) {\n\t\tlabel = __( 'Saving' );\n\t}\n\n\tconst saveCurrentEntity = async () => {\n\t\tif ( ! dirtyCurrentEntity ) return;\n\n\t\tremoveNotice( saveNoticeId );\n\t\tconst { kind, name, key, property } = dirtyCurrentEntity;\n\n\t\ttry {\n\t\t\tif ( 'root' === dirtyCurrentEntity.kind && 'site' === name ) {\n\t\t\t\tawait saveSpecifiedEntityEdits( 'root', 'site', undefined, [\n\t\t\t\t\tproperty,\n\t\t\t\t] );\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tPUBLISH_ON_SAVE_ENTITIES.some(\n\t\t\t\t\t\t( typeToPublish ) =>\n\t\t\t\t\t\t\ttypeToPublish.kind === kind &&\n\t\t\t\t\t\t\ttypeToPublish.name === name\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\teditEntityRecord( kind, name, key, { status: 'publish' } );\n\t\t\t\t}\n\n\t\t\t\tawait saveEditedEntityRecord( kind, name, key );\n\t\t\t}\n\n\t\t\t__unstableMarkLastChangeAsPersistent();\n\n\t\t\tcreateSuccessNotice( __( 'Site updated.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: saveNoticeId,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice( `${ __( 'Saving failed.' ) } ${ error }` );\n\t\t}\n\t};\n\n\treturn (\n\t\t<HStack className=\"edit-site-save-hub\" alignment=\"right\" spacing={ 4 }>\n\t\t\t{ dirtyCurrentEntity ? (\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ saveCurrentEntity }\n\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\tdisabled={ isSaving }\n\t\t\t\t\taria-disabled={ isSaving }\n\t\t\t\t\tclassName=\"edit-site-save-hub__button\"\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</Button>\n\t\t\t) : (\n\t\t\t\t<SaveButton\n\t\t\t\t\tclassName=\"edit-site-save-hub__button\"\n\t\t\t\t\tvariant={ disabled ? null : 'primary' }\n\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\ticon={ disabled && ! isSaving ? check : null }\n\t\t\t\t\tdefaultLabel={ label }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t/>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_data","require","_components","_i18n","_coreData","_blockEditor","_icons","_router","_notices","_saveButton","_interopRequireDefault","_isPreviewingTheme","_lockUnlock","_constants","useLocation","unlock","routerPrivateApis","PUBLISH_ON_SAVE_ENTITIES","kind","name","NAVIGATION_POST_TYPE","SaveHub","saveNoticeId","params","__unstableMarkLastChangeAsPersistent","useDispatch","blockEditorStore","createSuccessNotice","createErrorNotice","removeNotice","noticesStore","dirtyCurrentEntity","countUnsavedChanges","isDirty","isSaving","useSelect","select","__experimentalGetDirtyEntityRecords","isSavingEntityRecord","coreStore","dirtyEntityRecords","calcDirtyCurrentEntity","length","path","includes","find","record","postId","postType","String","key","some","editEntityRecord","saveEditedEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","disabled","isPreviewingTheme","label","__","sprintf","_n","saveCurrentEntity","property","undefined","typeToPublish","status","type","id","error","_element","createElement","__experimentalHStack","className","alignment","spacing","Button","variant","onClick","isBusy","__next40pxDefaultSize","default","showTooltip","icon","check","defaultLabel"],"sources":["@wordpress/edit-site/src/components/save-hub/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button, __experimentalHStack as HStack } from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { check } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport SaveButton from '../save-button';\nimport { isPreviewingTheme } from '../../utils/is-previewing-theme';\nimport { unlock } from '../../lock-unlock';\nimport { NAVIGATION_POST_TYPE } from '../../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst PUBLISH_ON_SAVE_ENTITIES = [\n\t{\n\t\tkind: 'postType',\n\t\tname: NAVIGATION_POST_TYPE,\n\t},\n];\n\nexport default function SaveHub() {\n\tconst saveNoticeId = 'site-edit-save-notice';\n\tconst { params } = useLocation();\n\n\tconst { __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { createSuccessNotice, createErrorNotice, removeNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { dirtyCurrentEntity, countUnsavedChanges, isDirty, isSaving } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\t\t\tisSavingEntityRecord,\n\t\t\t\t} = select( coreStore );\n\t\t\t\tconst dirtyEntityRecords =\n\t\t\t\t\t__experimentalGetDirtyEntityRecords();\n\t\t\t\tlet calcDirtyCurrentEntity = null;\n\n\t\t\t\tif ( dirtyEntityRecords.length === 1 ) {\n\t\t\t\t\t// if we are on global styles\n\t\t\t\t\tif ( params.path?.includes( 'wp_global_styles' ) ) {\n\t\t\t\t\t\tcalcDirtyCurrentEntity = dirtyEntityRecords.find(\n\t\t\t\t\t\t\t( record ) => record.name === 'globalStyles'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// if we are on pages\n\t\t\t\t\telse if ( params.postId ) {\n\t\t\t\t\t\tcalcDirtyCurrentEntity = dirtyEntityRecords.find(\n\t\t\t\t\t\t\t( record ) =>\n\t\t\t\t\t\t\t\trecord.name === params.postType &&\n\t\t\t\t\t\t\t\tString( record.key ) === params.postId\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tdirtyCurrentEntity: calcDirtyCurrentEntity,\n\t\t\t\t\tisDirty: dirtyEntityRecords.length > 0,\n\t\t\t\t\tisSaving: dirtyEntityRecords.some( ( record ) =>\n\t\t\t\t\t\tisSavingEntityRecord(\n\t\t\t\t\t\t\trecord.kind,\n\t\t\t\t\t\t\trecord.name,\n\t\t\t\t\t\t\trecord.key\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\tcountUnsavedChanges: dirtyEntityRecords.length,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ params.path, params.postType, params.postId ]\n\t\t);\n\n\tconst {\n\t\teditEntityRecord,\n\t\tsaveEditedEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst disabled = isSaving || ( ! isDirty && ! isPreviewingTheme() );\n\n\t// if we have only one unsaved change and it matches current context, we can show a more specific label\n\tlet label = dirtyCurrentEntity\n\t\t? __( 'Save' )\n\t\t: sprintf(\n\t\t\t\t// translators: %d: number of unsaved changes (number).\n\t\t\t\t_n(\n\t\t\t\t\t'Review %d change…',\n\t\t\t\t\t'Review %d changes…',\n\t\t\t\t\tcountUnsavedChanges\n\t\t\t\t),\n\t\t\t\tcountUnsavedChanges\n\t\t );\n\n\tif ( isSaving ) {\n\t\tlabel = __( 'Saving' );\n\t}\n\n\tconst saveCurrentEntity = async () => {\n\t\tif ( ! dirtyCurrentEntity ) return;\n\n\t\tremoveNotice( saveNoticeId );\n\t\tconst { kind, name, key, property } = dirtyCurrentEntity;\n\n\t\ttry {\n\t\t\tif ( 'root' === dirtyCurrentEntity.kind && 'site' === name ) {\n\t\t\t\tawait saveSpecifiedEntityEdits( 'root', 'site', undefined, [\n\t\t\t\t\tproperty,\n\t\t\t\t] );\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tPUBLISH_ON_SAVE_ENTITIES.some(\n\t\t\t\t\t\t( typeToPublish ) =>\n\t\t\t\t\t\t\ttypeToPublish.kind === kind &&\n\t\t\t\t\t\t\ttypeToPublish.name === name\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\teditEntityRecord( kind, name, key, { status: 'publish' } );\n\t\t\t\t}\n\n\t\t\t\tawait saveEditedEntityRecord( kind, name, key );\n\t\t\t}\n\n\t\t\t__unstableMarkLastChangeAsPersistent();\n\n\t\t\tcreateSuccessNotice( __( 'Site updated.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: saveNoticeId,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice( `${ __( 'Saving failed.' ) } ${ error }` );\n\t\t}\n\t};\n\n\treturn (\n\t\t<HStack className=\"edit-site-save-hub\" alignment=\"right\" spacing={ 4 }>\n\t\t\t{ dirtyCurrentEntity ? (\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ saveCurrentEntity }\n\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\tdisabled={ isSaving }\n\t\t\t\t\taria-disabled={ isSaving }\n\t\t\t\t\tclassName=\"edit-site-save-hub__button\"\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</Button>\n\t\t\t) : (\n\t\t\t\t<SaveButton\n\t\t\t\t\tclassName=\"edit-site-save-hub__button\"\n\t\t\t\t\tvariant={ disabled ? null : 'primary' }\n\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\ticon={ disabled && ! isSaving ? check : null }\n\t\t\t\t\tdefaultLabel={ label }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t/>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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"}
@@ -27,21 +27,27 @@ var _lockUnlock = require("../../lock-unlock");
27
27
  const {
28
28
  PrivateListView
29
29
  } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
30
- function ListViewSidebar() {
30
+ function ListViewSidebar({
31
+ listViewToggleElement
32
+ }) {
31
33
  const {
32
34
  setIsListViewOpened
33
35
  } = (0, _data.useDispatch)(_store.store);
34
36
 
35
37
  // This hook handles focus when the sidebar first renders.
36
38
  const focusOnMountRef = (0, _compose.useFocusOnMount)('firstElement');
37
- // The next 2 hooks handle focus for when the sidebar closes and returning focus to the element that had focus before sidebar opened.
38
- const headerFocusReturnRef = (0, _compose.useFocusReturn)();
39
- const contentFocusReturnRef = (0, _compose.useFocusReturn)();
40
- function closeOnEscape(event) {
39
+
40
+ // When closing the list view, focus should return to the toggle button.
41
+ const closeListView = (0, _element.useCallback)(() => {
42
+ setIsListViewOpened(false);
43
+ listViewToggleElement?.focus();
44
+ }, [listViewToggleElement, setIsListViewOpened]);
45
+ const closeOnEscape = (0, _element.useCallback)(event => {
41
46
  if (event.keyCode === _keycodes.ESCAPE && !event.defaultPrevented) {
42
- setIsListViewOpened(false);
47
+ event.preventDefault();
48
+ closeListView();
43
49
  }
44
- }
50
+ }, [closeListView]);
45
51
 
46
52
  // Use internal state instead of a ref to make sure that the component
47
53
  // re-renders when the dropZoneElement updates.
@@ -65,17 +71,19 @@ function ListViewSidebar() {
65
71
  const listViewFocusArea = sidebarRef.current.contains(listViewApplicationFocus) ? listViewApplicationFocus : sidebarCloseButtonRef.current;
66
72
  listViewFocusArea.focus();
67
73
  }
68
-
69
- // This only fires when the sidebar is open because of the conditional rendering. It is the same shortcut to open but that is defined as a global shortcut and only fires when the sidebar is closed.
70
- (0, _keyboardShortcuts.useShortcut)('core/edit-site/toggle-list-view', () => {
74
+ const handleToggleListViewShortcut = (0, _element.useCallback)(() => {
71
75
  // If the sidebar has focus, it is safe to close.
72
76
  if (sidebarRef.current.contains(sidebarRef.current.ownerDocument.activeElement)) {
73
- setIsListViewOpened(false);
74
- // If the list view or close button does not have focus, focus should be moved to it.
77
+ closeListView();
75
78
  } else {
79
+ // If the list view or close button does not have focus, focus should be moved to it.
76
80
  handleSidebarFocus();
77
81
  }
78
- });
82
+ }, [closeListView]);
83
+
84
+ // This only fires when the sidebar is open because of the conditional rendering.
85
+ // It is the same shortcut to open but that is defined as a global shortcut and only fires when the sidebar is closed.
86
+ (0, _keyboardShortcuts.useShortcut)('core/edit-site/toggle-list-view', handleToggleListViewShortcut);
79
87
  return (
80
88
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
81
89
  (0, _element.createElement)("div", {
@@ -83,16 +91,15 @@ function ListViewSidebar() {
83
91
  onKeyDown: closeOnEscape,
84
92
  ref: sidebarRef
85
93
  }, (0, _element.createElement)("div", {
86
- className: "edit-site-editor__list-view-panel-header",
87
- ref: headerFocusReturnRef
94
+ className: "edit-site-editor__list-view-panel-header"
88
95
  }, (0, _element.createElement)("strong", null, (0, _i18n.__)('List View')), (0, _element.createElement)(_components.Button, {
89
96
  icon: _icons.closeSmall,
90
97
  label: (0, _i18n.__)('Close'),
91
- onClick: () => setIsListViewOpened(false),
98
+ onClick: closeListView,
92
99
  ref: sidebarCloseButtonRef
93
100
  })), (0, _element.createElement)("div", {
94
101
  className: "edit-site-editor__list-view-panel-content",
95
- ref: (0, _compose.useMergeRefs)([contentFocusReturnRef, focusOnMountRef, setDropZoneElement, listViewRef])
102
+ ref: (0, _compose.useMergeRefs)([focusOnMountRef, setDropZoneElement, listViewRef])
96
103
  }, (0, _element.createElement)(PrivateListView, {
97
104
  dropZoneElement: dropZoneElement
98
105
  })))
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_blockEditor","_components","_compose","_data","_i18n","_icons","_keycodes","_dom","_keyboardShortcuts","_store","_lockUnlock","PrivateListView","unlock","blockEditorPrivateApis","ListViewSidebar","setIsListViewOpened","useDispatch","editSiteStore","focusOnMountRef","useFocusOnMount","headerFocusReturnRef","useFocusReturn","contentFocusReturnRef","closeOnEscape","event","keyCode","ESCAPE","defaultPrevented","dropZoneElement","setDropZoneElement","useState","sidebarRef","useRef","sidebarCloseButtonRef","listViewRef","handleSidebarFocus","listViewApplicationFocus","focus","tabbable","find","current","listViewFocusArea","contains","useShortcut","ownerDocument","activeElement","createElement","className","onKeyDown","ref","__","Button","icon","closeSmall","label","onClick","useMergeRefs"],"sources":["@wordpress/edit-site/src/components/secondary-sidebar/list-view-sidebar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { Button } from '@wordpress/components';\nimport {\n\tuseFocusOnMount,\n\tuseFocusReturn,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\nimport { useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { focus } from '@wordpress/dom';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { PrivateListView } = unlock( blockEditorPrivateApis );\n\nexport default function ListViewSidebar() {\n\tconst { setIsListViewOpened } = useDispatch( editSiteStore );\n\n\t// This hook handles focus when the sidebar first renders.\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\t// The next 2 hooks handle focus for when the sidebar closes and returning focus to the element that had focus before sidebar opened.\n\tconst headerFocusReturnRef = useFocusReturn();\n\tconst contentFocusReturnRef = useFocusReturn();\n\n\tfunction closeOnEscape( event ) {\n\t\tif ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {\n\t\t\tsetIsListViewOpened( false );\n\t\t}\n\t}\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the dropZoneElement updates.\n\tconst [ dropZoneElement, setDropZoneElement ] = useState( null );\n\n\t// This ref refers to the sidebar as a whole.\n\tconst sidebarRef = useRef();\n\t// This ref refers to the close button.\n\tconst sidebarCloseButtonRef = useRef();\n\t// This ref refers to the list view application area.\n\tconst listViewRef = useRef();\n\n\t/*\n\t * Callback function to handle list view or close button focus.\n\t *\n\t * @return void\n\t */\n\tfunction handleSidebarFocus() {\n\t\t// Either focus the list view or the sidebar close button. Must have a fallback because the list view does not render when there are no blocks.\n\t\tconst listViewApplicationFocus = focus.tabbable.find(\n\t\t\tlistViewRef.current\n\t\t)[ 0 ];\n\t\tconst listViewFocusArea = sidebarRef.current.contains(\n\t\t\tlistViewApplicationFocus\n\t\t)\n\t\t\t? listViewApplicationFocus\n\t\t\t: sidebarCloseButtonRef.current;\n\t\tlistViewFocusArea.focus();\n\t}\n\n\t// This only fires when the sidebar is open because of the conditional rendering. It is the same shortcut to open but that is defined as a global shortcut and only fires when the sidebar is closed.\n\tuseShortcut( 'core/edit-site/toggle-list-view', () => {\n\t\t// If the sidebar has focus, it is safe to close.\n\t\tif (\n\t\t\tsidebarRef.current.contains(\n\t\t\t\tsidebarRef.current.ownerDocument.activeElement\n\t\t\t)\n\t\t) {\n\t\t\tsetIsListViewOpened( false );\n\t\t\t// If the list view or close button does not have focus, focus should be moved to it.\n\t\t} else {\n\t\t\thandleSidebarFocus();\n\t\t}\n\t} );\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tclassName=\"edit-site-editor__list-view-panel\"\n\t\t\tonKeyDown={ closeOnEscape }\n\t\t\tref={ sidebarRef }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName=\"edit-site-editor__list-view-panel-header\"\n\t\t\t\tref={ headerFocusReturnRef }\n\t\t\t>\n\t\t\t\t<strong>{ __( 'List View' ) }</strong>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\tonClick={ () => setIsListViewOpened( false ) }\n\t\t\t\t\tref={ sidebarCloseButtonRef }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tclassName=\"edit-site-editor__list-view-panel-content\"\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\tcontentFocusReturnRef,\n\t\t\t\t\tfocusOnMountRef,\n\t\t\t\t\tsetDropZoneElement,\n\t\t\t\t\tlistViewRef,\n\t\t\t\t] ) }\n\t\t\t>\n\t\t\t\t<PrivateListView dropZoneElement={ dropZoneElement } />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_blockEditor","_components","_compose","_data","_i18n","_icons","_keycodes","_dom","_keyboardShortcuts","_store","_lockUnlock","PrivateListView","unlock","blockEditorPrivateApis","ListViewSidebar","listViewToggleElement","setIsListViewOpened","useDispatch","editSiteStore","focusOnMountRef","useFocusOnMount","closeListView","useCallback","focus","closeOnEscape","event","keyCode","ESCAPE","defaultPrevented","preventDefault","dropZoneElement","setDropZoneElement","useState","sidebarRef","useRef","sidebarCloseButtonRef","listViewRef","handleSidebarFocus","listViewApplicationFocus","tabbable","find","current","listViewFocusArea","contains","handleToggleListViewShortcut","ownerDocument","activeElement","useShortcut","createElement","className","onKeyDown","ref","__","Button","icon","closeSmall","label","onClick","useMergeRefs"],"sources":["@wordpress/edit-site/src/components/secondary-sidebar/list-view-sidebar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { Button } from '@wordpress/components';\nimport { useFocusOnMount, useMergeRefs } from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\nimport { useCallback, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { focus } from '@wordpress/dom';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { PrivateListView } = unlock( blockEditorPrivateApis );\n\nexport default function ListViewSidebar( { listViewToggleElement } ) {\n\tconst { setIsListViewOpened } = useDispatch( editSiteStore );\n\n\t// This hook handles focus when the sidebar first renders.\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\n\t// When closing the list view, focus should return to the toggle button.\n\tconst closeListView = useCallback( () => {\n\t\tsetIsListViewOpened( false );\n\t\tlistViewToggleElement?.focus();\n\t}, [ listViewToggleElement, setIsListViewOpened ] );\n\n\tconst closeOnEscape = useCallback(\n\t\t( event ) => {\n\t\t\tif ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tcloseListView();\n\t\t\t}\n\t\t},\n\t\t[ closeListView ]\n\t);\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the dropZoneElement updates.\n\tconst [ dropZoneElement, setDropZoneElement ] = useState( null );\n\n\t// This ref refers to the sidebar as a whole.\n\tconst sidebarRef = useRef();\n\t// This ref refers to the close button.\n\tconst sidebarCloseButtonRef = useRef();\n\t// This ref refers to the list view application area.\n\tconst listViewRef = useRef();\n\n\t/*\n\t * Callback function to handle list view or close button focus.\n\t *\n\t * @return void\n\t */\n\tfunction handleSidebarFocus() {\n\t\t// Either focus the list view or the sidebar close button. Must have a fallback because the list view does not render when there are no blocks.\n\t\tconst listViewApplicationFocus = focus.tabbable.find(\n\t\t\tlistViewRef.current\n\t\t)[ 0 ];\n\t\tconst listViewFocusArea = sidebarRef.current.contains(\n\t\t\tlistViewApplicationFocus\n\t\t)\n\t\t\t? listViewApplicationFocus\n\t\t\t: sidebarCloseButtonRef.current;\n\t\tlistViewFocusArea.focus();\n\t}\n\n\tconst handleToggleListViewShortcut = useCallback( () => {\n\t\t// If the sidebar has focus, it is safe to close.\n\t\tif (\n\t\t\tsidebarRef.current.contains(\n\t\t\t\tsidebarRef.current.ownerDocument.activeElement\n\t\t\t)\n\t\t) {\n\t\t\tcloseListView();\n\t\t} else {\n\t\t\t// If the list view or close button does not have focus, focus should be moved to it.\n\t\t\thandleSidebarFocus();\n\t\t}\n\t}, [ closeListView ] );\n\n\t// This only fires when the sidebar is open because of the conditional rendering.\n\t// It is the same shortcut to open but that is defined as a global shortcut and only fires when the sidebar is closed.\n\tuseShortcut(\n\t\t'core/edit-site/toggle-list-view',\n\t\thandleToggleListViewShortcut\n\t);\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tclassName=\"edit-site-editor__list-view-panel\"\n\t\t\tonKeyDown={ closeOnEscape }\n\t\t\tref={ sidebarRef }\n\t\t>\n\t\t\t<div className=\"edit-site-editor__list-view-panel-header\">\n\t\t\t\t<strong>{ __( 'List View' ) }</strong>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\tonClick={ closeListView }\n\t\t\t\t\tref={ sidebarCloseButtonRef }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tclassName=\"edit-site-editor__list-view-panel-content\"\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\tfocusOnMountRef,\n\t\t\t\t\tsetDropZoneElement,\n\t\t\t\t\tlistViewRef,\n\t\t\t\t] ) }\n\t\t\t>\n\t\t\t\t<PrivateListView dropZoneElement={ dropZoneElement } />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
@@ -11,9 +11,11 @@ var _htmlEntities = require("@wordpress/html-entities");
11
11
  var _components = require("@wordpress/components");
12
12
  var _i18n = require("@wordpress/i18n");
13
13
  var _coreData = require("@wordpress/core-data");
14
+ var _icons = require("@wordpress/icons");
14
15
  var _store = require("../../../store");
15
16
  var _swapTemplateButton = _interopRequireDefault(require("./swap-template-button"));
16
17
  var _resetDefaultTemplate = _interopRequireDefault(require("./reset-default-template"));
18
+ var _lockUnlock = require("../../../lock-unlock");
17
19
  /**
18
20
  * WordPress dependencies
19
21
  */
@@ -29,13 +31,18 @@ const POPOVER_PROPS = {
29
31
  function EditTemplate() {
30
32
  const {
31
33
  hasResolved,
32
- template
34
+ template,
35
+ isTemplateHidden
33
36
  } = (0, _data.useSelect)(select => {
34
37
  const {
35
38
  getEditedPostContext,
36
39
  getEditedPostType,
37
40
  getEditedPostId
38
41
  } = select(_store.store);
42
+ const {
43
+ getCanvasMode,
44
+ getPageContentFocusType
45
+ } = (0, _lockUnlock.unlock)(select(_store.store));
39
46
  const {
40
47
  getEditedEntityRecord,
41
48
  hasFinishedResolution
@@ -45,12 +52,18 @@ function EditTemplate() {
45
52
  return {
46
53
  context: _context,
47
54
  hasResolved: hasFinishedResolution('getEditedEntityRecord', queryArgs),
48
- template: getEditedEntityRecord(...queryArgs)
55
+ template: getEditedEntityRecord(...queryArgs),
56
+ isTemplateHidden: getCanvasMode() === 'edit' && getPageContentFocusType() === 'hideTemplate'
49
57
  };
50
58
  }, []);
51
59
  const {
52
60
  setHasPageContentFocus
53
61
  } = (0, _data.useDispatch)(_store.store);
62
+ // Disable reason: `useDispatch` can't be called conditionally.
63
+ // eslint-disable-next-line @wordpress/no-unused-vars-before-return
64
+ const {
65
+ setPageContentFocusType
66
+ } = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
54
67
  if (!hasResolved) {
55
68
  return null;
56
69
  }
@@ -79,6 +92,11 @@ function EditTemplate() {
79
92
  onClick: onClose
80
93
  })), (0, _element.createElement)(_resetDefaultTemplate.default, {
81
94
  onClick: onClose
82
- }))));
95
+ }), (0, _element.createElement)(_components.MenuGroup, null, (0, _element.createElement)(_components.MenuItem, {
96
+ icon: !isTemplateHidden ? _icons.check : undefined,
97
+ onClick: () => {
98
+ setPageContentFocusType(isTemplateHidden ? 'disableTemplate' : 'hideTemplate');
99
+ }
100
+ }, (0, _i18n.__)('Template preview'))))));
83
101
  }
84
102
  //# sourceMappingURL=edit-template.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_htmlEntities","_components","_i18n","_coreData","_store","_swapTemplateButton","_interopRequireDefault","_resetDefaultTemplate","POPOVER_PROPS","className","placement","EditTemplate","hasResolved","template","useSelect","select","getEditedPostContext","getEditedPostType","getEditedPostId","editSiteStore","getEditedEntityRecord","hasFinishedResolution","coreStore","_context","queryArgs","context","setHasPageContentFocus","useDispatch","_element","createElement","__experimentalHStack","__experimentalText","__","DropdownMenu","popoverProps","focusOnMount","toggleProps","variant","label","text","decodeEntities","title","icon","onClose","Fragment","MenuGroup","MenuItem","onClick","default"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/page-panels/edit-template.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport SwapTemplateButton from './swap-template-button';\nimport ResetDefaultTemplate from './reset-default-template';\n\nconst POPOVER_PROPS = {\n\tclassName: 'edit-site-page-panels-edit-template__dropdown',\n\tplacement: 'bottom-start',\n};\n\nexport default function EditTemplate() {\n\tconst { hasResolved, template } = useSelect( ( select ) => {\n\t\tconst { getEditedPostContext, getEditedPostType, getEditedPostId } =\n\t\t\tselect( editSiteStore );\n\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\tselect( coreStore );\n\t\tconst _context = getEditedPostContext();\n\t\tconst queryArgs = [\n\t\t\t'postType',\n\t\t\tgetEditedPostType(),\n\t\t\tgetEditedPostId(),\n\t\t];\n\t\treturn {\n\t\t\tcontext: _context,\n\t\t\thasResolved: hasFinishedResolution(\n\t\t\t\t'getEditedEntityRecord',\n\t\t\t\tqueryArgs\n\t\t\t),\n\t\t\ttemplate: getEditedEntityRecord( ...queryArgs ),\n\t\t};\n\t}, [] );\n\n\tconst { setHasPageContentFocus } = useDispatch( editSiteStore );\n\n\tif ( ! hasResolved ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<HStack className=\"edit-site-summary-field\">\n\t\t\t<Text className=\"edit-site-summary-field__label\">\n\t\t\t\t{ __( 'Template' ) }\n\t\t\t</Text>\n\t\t\t<DropdownMenu\n\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\tfocusOnMount\n\t\t\t\ttoggleProps={ {\n\t\t\t\t\tvariant: 'tertiary',\n\t\t\t\t\tclassName: 'edit-site-summary-field__trigger',\n\t\t\t\t} }\n\t\t\t\tlabel={ __( 'Template options' ) }\n\t\t\t\ttext={ decodeEntities( template.title ) }\n\t\t\t\ticon={ null }\n\t\t\t>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetHasPageContentFocus( false );\n\t\t\t\t\t\t\t\t\tonClose();\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{ __( 'Edit template' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t<SwapTemplateButton onClick={ onClose } />\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t<ResetDefaultTemplate onClick={ onClose } />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</DropdownMenu>\n\t\t</HStack>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAOA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAKA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAC,sBAAA,CAAAP,OAAA;AACA,IAAAQ,qBAAA,GAAAD,sBAAA,CAAAP,OAAA;AApBA;AACA;AACA;;AAaA;AACA;AACA;;AAKA,MAAMS,aAAa,GAAG;EACrBC,SAAS,EAAE,+CAA+C;EAC1DC,SAAS,EAAE;AACZ,CAAC;AAEc,SAASC,YAAYA,CAAA,EAAG;EACtC,MAAM;IAAEC,WAAW;IAAEC;EAAS,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC1D,MAAM;MAAEC,oBAAoB;MAAEC,iBAAiB;MAAEC;IAAgB,CAAC,GACjEH,MAAM,CAAEI,YAAc,CAAC;IACxB,MAAM;MAAEC,qBAAqB;MAAEC;IAAsB,CAAC,GACrDN,MAAM,CAAEO,eAAU,CAAC;IACpB,MAAMC,QAAQ,GAAGP,oBAAoB,CAAC,CAAC;IACvC,MAAMQ,SAAS,GAAG,CACjB,UAAU,EACVP,iBAAiB,CAAC,CAAC,EACnBC,eAAe,CAAC,CAAC,CACjB;IACD,OAAO;MACNO,OAAO,EAAEF,QAAQ;MACjBX,WAAW,EAAES,qBAAqB,CACjC,uBAAuB,EACvBG,SACD,CAAC;MACDX,QAAQ,EAAEO,qBAAqB,CAAE,GAAGI,SAAU;IAC/C,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM;IAAEE;EAAuB,CAAC,GAAG,IAAAC,iBAAW,EAAER,YAAc,CAAC;EAE/D,IAAK,CAAEP,WAAW,EAAG;IACpB,OAAO,IAAI;EACZ;EAEA,OACC,IAAAgB,QAAA,CAAAC,aAAA,EAAC5B,WAAA,CAAA6B,oBAAM;IAACrB,SAAS,EAAC;EAAyB,GAC1C,IAAAmB,QAAA,CAAAC,aAAA,EAAC5B,WAAA,CAAA8B,kBAAI;IAACtB,SAAS,EAAC;EAAgC,GAC7C,IAAAuB,QAAE,EAAE,UAAW,CACZ,CAAC,EACP,IAAAJ,QAAA,CAAAC,aAAA,EAAC5B,WAAA,CAAAgC,YAAY;IACZC,YAAY,EAAG1B,aAAe;IAC9B2B,YAAY;IACZC,WAAW,EAAG;MACbC,OAAO,EAAE,UAAU;MACnB5B,SAAS,EAAE;IACZ,CAAG;IACH6B,KAAK,EAAG,IAAAN,QAAE,EAAE,kBAAmB,CAAG;IAClCO,IAAI,EAAG,IAAAC,4BAAc,EAAE3B,QAAQ,CAAC4B,KAAM,CAAG;IACzCC,IAAI,EAAG;EAAM,GAEX,CAAE;IAAEC;EAAQ,CAAC,KACd,IAAAf,QAAA,CAAAC,aAAA,EAAAD,QAAA,CAAAgB,QAAA,QACC,IAAAhB,QAAA,CAAAC,aAAA,EAAC5B,WAAA,CAAA4C,SAAS,QACT,IAAAjB,QAAA,CAAAC,aAAA,EAAC5B,WAAA,CAAA6C,QAAQ;IACRC,OAAO,EAAGA,CAAA,KAAM;MACfrB,sBAAsB,CAAE,KAAM,CAAC;MAC/BiB,OAAO,CAAC,CAAC;IACV;EAAG,GAED,IAAAX,QAAE,EAAE,eAAgB,CACb,CAAC,EACX,IAAAJ,QAAA,CAAAC,aAAA,EAACxB,mBAAA,CAAA2C,OAAkB;IAACD,OAAO,EAAGJ;EAAS,CAAE,CAC/B,CAAC,EACZ,IAAAf,QAAA,CAAAC,aAAA,EAACtB,qBAAA,CAAAyC,OAAoB;IAACD,OAAO,EAAGJ;EAAS,CAAE,CAC1C,CAEU,CACP,CAAC;AAEX"}
1
+ {"version":3,"names":["_data","require","_htmlEntities","_components","_i18n","_coreData","_icons","_store","_swapTemplateButton","_interopRequireDefault","_resetDefaultTemplate","_lockUnlock","POPOVER_PROPS","className","placement","EditTemplate","hasResolved","template","isTemplateHidden","useSelect","select","getEditedPostContext","getEditedPostType","getEditedPostId","editSiteStore","getCanvasMode","getPageContentFocusType","unlock","getEditedEntityRecord","hasFinishedResolution","coreStore","_context","queryArgs","context","setHasPageContentFocus","useDispatch","setPageContentFocusType","_element","createElement","__experimentalHStack","__experimentalText","__","DropdownMenu","popoverProps","focusOnMount","toggleProps","variant","label","text","decodeEntities","title","icon","onClose","Fragment","MenuGroup","MenuItem","onClick","default","check","undefined"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/page-panels/edit-template.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { check } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport SwapTemplateButton from './swap-template-button';\nimport ResetDefaultTemplate from './reset-default-template';\nimport { unlock } from '../../../lock-unlock';\n\nconst POPOVER_PROPS = {\n\tclassName: 'edit-site-page-panels-edit-template__dropdown',\n\tplacement: 'bottom-start',\n};\n\nexport default function EditTemplate() {\n\tconst { hasResolved, template, isTemplateHidden } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostContext, getEditedPostType, getEditedPostId } =\n\t\t\t\tselect( editSiteStore );\n\t\t\tconst { getCanvasMode, getPageContentFocusType } = unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t);\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _context = getEditedPostContext();\n\t\t\tconst queryArgs = [\n\t\t\t\t'postType',\n\t\t\t\tgetEditedPostType(),\n\t\t\t\tgetEditedPostId(),\n\t\t\t];\n\t\t\treturn {\n\t\t\t\tcontext: _context,\n\t\t\t\thasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\tqueryArgs\n\t\t\t\t),\n\t\t\t\ttemplate: getEditedEntityRecord( ...queryArgs ),\n\t\t\t\tisTemplateHidden:\n\t\t\t\t\tgetCanvasMode() === 'edit' &&\n\t\t\t\t\tgetPageContentFocusType() === 'hideTemplate',\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { setHasPageContentFocus } = useDispatch( editSiteStore );\n\t// Disable reason: `useDispatch` can't be called conditionally.\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { setPageContentFocusType } = unlock( useDispatch( editSiteStore ) );\n\n\tif ( ! hasResolved ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<HStack className=\"edit-site-summary-field\">\n\t\t\t<Text className=\"edit-site-summary-field__label\">\n\t\t\t\t{ __( 'Template' ) }\n\t\t\t</Text>\n\t\t\t<DropdownMenu\n\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\tfocusOnMount\n\t\t\t\ttoggleProps={ {\n\t\t\t\t\tvariant: 'tertiary',\n\t\t\t\t\tclassName: 'edit-site-summary-field__trigger',\n\t\t\t\t} }\n\t\t\t\tlabel={ __( 'Template options' ) }\n\t\t\t\ttext={ decodeEntities( template.title ) }\n\t\t\t\ticon={ null }\n\t\t\t>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetHasPageContentFocus( false );\n\t\t\t\t\t\t\t\t\tonClose();\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{ __( 'Edit template' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t<SwapTemplateButton onClick={ onClose } />\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t<ResetDefaultTemplate onClick={ onClose } />\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\ticon={ ! isTemplateHidden ? check : undefined }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetPageContentFocusType(\n\t\t\t\t\t\t\t\t\t\tisTemplateHidden\n\t\t\t\t\t\t\t\t\t\t\t? 'disableTemplate'\n\t\t\t\t\t\t\t\t\t\t\t: 'hideTemplate'\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>\n\t\t\t\t\t\t\t\t{ __( 'Template preview' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</DropdownMenu>\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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"}
@@ -11,6 +11,7 @@ var _data = require("@wordpress/data");
11
11
  var _element = require("@wordpress/element");
12
12
  var _coreData = require("@wordpress/core-data");
13
13
  var _store = require("../../../store");
14
+ var _constants = require("../../../utils/constants");
14
15
  /**
15
16
  * WordPress dependencies
16
17
  */
@@ -29,7 +30,7 @@ function useIsPostsPage() {
29
30
  return (0, _data.useSelect)(select => +postId === select(_coreData.store).getEntityRecord('root', 'site')?.page_for_posts, [postId]);
30
31
  }
31
32
  function useTemplates() {
32
- return (0, _data.useSelect)(select => select(_coreData.store).getEntityRecords('postType', 'wp_template', {
33
+ return (0, _data.useSelect)(select => select(_coreData.store).getEntityRecords('postType', _constants.TEMPLATE_POST_TYPE, {
33
34
  per_page: -1,
34
35
  post_type: 'page'
35
36
  }), []);
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_element","_coreData","_store","useEditedPostContext","useSelect","select","editSiteStore","getEditedPostContext","useIsPostsPage","postId","coreStore","getEntityRecord","page_for_posts","useTemplates","getEntityRecords","per_page","post_type","useAvailableTemplates","currentTemplateSlug","useCurrentTemplateSlug","isPostsPage","templates","useMemo","filter","template","is_custom","slug","content","raw","postType","entityTemplate","post","getEditedEntityRecord","find"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/page-panels/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\n\nexport function useEditedPostContext() {\n\treturn useSelect(\n\t\t( select ) => select( editSiteStore ).getEditedPostContext(),\n\t\t[]\n\t);\n}\n\nexport function useIsPostsPage() {\n\tconst { postId } = useEditedPostContext();\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\t+postId ===\n\t\t\tselect( coreStore ).getEntityRecord( 'root', 'site' )\n\t\t\t\t?.page_for_posts,\n\t\t[ postId ]\n\t);\n}\n\nfunction useTemplates() {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecords( 'postType', 'wp_template', {\n\t\t\t\tper_page: -1,\n\t\t\t\tpost_type: 'page',\n\t\t\t} ),\n\t\t[]\n\t);\n}\n\nexport function useAvailableTemplates() {\n\tconst currentTemplateSlug = useCurrentTemplateSlug();\n\tconst isPostsPage = useIsPostsPage();\n\tconst templates = useTemplates();\n\treturn useMemo(\n\t\t() =>\n\t\t\t// The posts page template cannot be changed.\n\t\t\t! isPostsPage &&\n\t\t\ttemplates?.filter(\n\t\t\t\t( template ) =>\n\t\t\t\t\ttemplate.is_custom &&\n\t\t\t\t\ttemplate.slug !== currentTemplateSlug &&\n\t\t\t\t\t!! template.content.raw // Skip empty templates.\n\t\t\t),\n\t\t[ templates, currentTemplateSlug, isPostsPage ]\n\t);\n}\n\nexport function useCurrentTemplateSlug() {\n\tconst { postType, postId } = useEditedPostContext();\n\tconst templates = useTemplates();\n\tconst entityTemplate = useSelect(\n\t\t( select ) => {\n\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\treturn post?.template;\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tif ( ! entityTemplate ) {\n\t\treturn;\n\t}\n\t// If a page has a `template` set and is not included in the list\n\t// of the theme's templates, do not return it, in order to resolve\n\t// to the current theme's default template.\n\treturn templates?.find( ( template ) => template.slug === entityTemplate )\n\t\t?.slug;\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAKA;AACA;AACA;;AAGO,SAASI,oBAAoBA,CAAA,EAAG;EACtC,OAAO,IAAAC,eAAS,EACbC,MAAM,IAAMA,MAAM,CAAEC,YAAc,CAAC,CAACC,oBAAoB,CAAC,CAAC,EAC5D,EACD,CAAC;AACF;AAEO,SAASC,cAAcA,CAAA,EAAG;EAChC,MAAM;IAAEC;EAAO,CAAC,GAAGN,oBAAoB,CAAC,CAAC;EACzC,OAAO,IAAAC,eAAS,EACbC,MAAM,IACP,CAACI,MAAM,KACPJ,MAAM,CAAEK,eAAU,CAAC,CAACC,eAAe,CAAE,MAAM,EAAE,MAAO,CAAC,EAClDC,cAAc,EAClB,CAAEH,MAAM,CACT,CAAC;AACF;AAEA,SAASI,YAAYA,CAAA,EAAG;EACvB,OAAO,IAAAT,eAAS,EACbC,MAAM,IACPA,MAAM,CAAEK,eAAU,CAAC,CAACI,gBAAgB,CAAE,UAAU,EAAE,aAAa,EAAE;IAChEC,QAAQ,EAAE,CAAC,CAAC;IACZC,SAAS,EAAE;EACZ,CAAE,CAAC,EACJ,EACD,CAAC;AACF;AAEO,SAASC,qBAAqBA,CAAA,EAAG;EACvC,MAAMC,mBAAmB,GAAGC,sBAAsB,CAAC,CAAC;EACpD,MAAMC,WAAW,GAAGZ,cAAc,CAAC,CAAC;EACpC,MAAMa,SAAS,GAAGR,YAAY,CAAC,CAAC;EAChC,OAAO,IAAAS,gBAAO,EACb;EACC;EACA,CAAEF,WAAW,IACbC,SAAS,EAAEE,MAAM,CACdC,QAAQ,IACTA,QAAQ,CAACC,SAAS,IAClBD,QAAQ,CAACE,IAAI,KAAKR,mBAAmB,IACrC,CAAC,CAAEM,QAAQ,CAACG,OAAO,CAACC,GAAG,CAAC;EAC1B,CAAC,EACF,CAAEP,SAAS,EAAEH,mBAAmB,EAAEE,WAAW,CAC9C,CAAC;AACF;AAEO,SAASD,sBAAsBA,CAAA,EAAG;EACxC,MAAM;IAAEU,QAAQ;IAAEpB;EAAO,CAAC,GAAGN,oBAAoB,CAAC,CAAC;EACnD,MAAMkB,SAAS,GAAGR,YAAY,CAAC,CAAC;EAChC,MAAMiB,cAAc,GAAG,IAAA1B,eAAS,EAC7BC,MAAM,IAAM;IACb,MAAM0B,IAAI,GAAG1B,MAAM,CAAEK,eAAU,CAAC,CAACsB,qBAAqB,CACrD,UAAU,EACVH,QAAQ,EACRpB,MACD,CAAC;IACD,OAAOsB,IAAI,EAAEP,QAAQ;EACtB,CAAC,EACD,CAAEK,QAAQ,EAAEpB,MAAM,CACnB,CAAC;EAED,IAAK,CAAEqB,cAAc,EAAG;IACvB;EACD;EACA;EACA;EACA;EACA,OAAOT,SAAS,EAAEY,IAAI,CAAIT,QAAQ,IAAMA,QAAQ,CAACE,IAAI,KAAKI,cAAe,CAAC,EACvEJ,IAAI;AACR"}
1
+ {"version":3,"names":["_data","require","_element","_coreData","_store","_constants","useEditedPostContext","useSelect","select","editSiteStore","getEditedPostContext","useIsPostsPage","postId","coreStore","getEntityRecord","page_for_posts","useTemplates","getEntityRecords","TEMPLATE_POST_TYPE","per_page","post_type","useAvailableTemplates","currentTemplateSlug","useCurrentTemplateSlug","isPostsPage","templates","useMemo","filter","template","is_custom","slug","content","raw","postType","entityTemplate","post","getEditedEntityRecord","find"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/page-panels/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport { TEMPLATE_POST_TYPE } from '../../../utils/constants';\n\nexport function useEditedPostContext() {\n\treturn useSelect(\n\t\t( select ) => select( editSiteStore ).getEditedPostContext(),\n\t\t[]\n\t);\n}\n\nexport function useIsPostsPage() {\n\tconst { postId } = useEditedPostContext();\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\t+postId ===\n\t\t\tselect( coreStore ).getEntityRecord( 'root', 'site' )\n\t\t\t\t?.page_for_posts,\n\t\t[ postId ]\n\t);\n}\n\nfunction useTemplates() {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tper_page: -1,\n\t\t\t\t\tpost_type: 'page',\n\t\t\t\t}\n\t\t\t),\n\t\t[]\n\t);\n}\n\nexport function useAvailableTemplates() {\n\tconst currentTemplateSlug = useCurrentTemplateSlug();\n\tconst isPostsPage = useIsPostsPage();\n\tconst templates = useTemplates();\n\treturn useMemo(\n\t\t() =>\n\t\t\t// The posts page template cannot be changed.\n\t\t\t! isPostsPage &&\n\t\t\ttemplates?.filter(\n\t\t\t\t( template ) =>\n\t\t\t\t\ttemplate.is_custom &&\n\t\t\t\t\ttemplate.slug !== currentTemplateSlug &&\n\t\t\t\t\t!! template.content.raw // Skip empty templates.\n\t\t\t),\n\t\t[ templates, currentTemplateSlug, isPostsPage ]\n\t);\n}\n\nexport function useCurrentTemplateSlug() {\n\tconst { postType, postId } = useEditedPostContext();\n\tconst templates = useTemplates();\n\tconst entityTemplate = useSelect(\n\t\t( select ) => {\n\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\treturn post?.template;\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tif ( ! entityTemplate ) {\n\t\treturn;\n\t}\n\t// If a page has a `template` set and is not included in the list\n\t// of the theme's templates, do not return it, in order to resolve\n\t// to the current theme's default template.\n\treturn templates?.find( ( template ) => template.slug === entityTemplate )\n\t\t?.slug;\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAXA;AACA;AACA;;AAKA;AACA;AACA;;AAIO,SAASK,oBAAoBA,CAAA,EAAG;EACtC,OAAO,IAAAC,eAAS,EACbC,MAAM,IAAMA,MAAM,CAAEC,YAAc,CAAC,CAACC,oBAAoB,CAAC,CAAC,EAC5D,EACD,CAAC;AACF;AAEO,SAASC,cAAcA,CAAA,EAAG;EAChC,MAAM;IAAEC;EAAO,CAAC,GAAGN,oBAAoB,CAAC,CAAC;EACzC,OAAO,IAAAC,eAAS,EACbC,MAAM,IACP,CAACI,MAAM,KACPJ,MAAM,CAAEK,eAAU,CAAC,CAACC,eAAe,CAAE,MAAM,EAAE,MAAO,CAAC,EAClDC,cAAc,EAClB,CAAEH,MAAM,CACT,CAAC;AACF;AAEA,SAASI,YAAYA,CAAA,EAAG;EACvB,OAAO,IAAAT,eAAS,EACbC,MAAM,IACPA,MAAM,CAAEK,eAAU,CAAC,CAACI,gBAAgB,CACnC,UAAU,EACVC,6BAAkB,EAClB;IACCC,QAAQ,EAAE,CAAC,CAAC;IACZC,SAAS,EAAE;EACZ,CACD,CAAC,EACF,EACD,CAAC;AACF;AAEO,SAASC,qBAAqBA,CAAA,EAAG;EACvC,MAAMC,mBAAmB,GAAGC,sBAAsB,CAAC,CAAC;EACpD,MAAMC,WAAW,GAAGb,cAAc,CAAC,CAAC;EACpC,MAAMc,SAAS,GAAGT,YAAY,CAAC,CAAC;EAChC,OAAO,IAAAU,gBAAO,EACb;EACC;EACA,CAAEF,WAAW,IACbC,SAAS,EAAEE,MAAM,CACdC,QAAQ,IACTA,QAAQ,CAACC,SAAS,IAClBD,QAAQ,CAACE,IAAI,KAAKR,mBAAmB,IACrC,CAAC,CAAEM,QAAQ,CAACG,OAAO,CAACC,GAAG,CAAC;EAC1B,CAAC,EACF,CAAEP,SAAS,EAAEH,mBAAmB,EAAEE,WAAW,CAC9C,CAAC;AACF;AAEO,SAASD,sBAAsBA,CAAA,EAAG;EACxC,MAAM;IAAEU,QAAQ;IAAErB;EAAO,CAAC,GAAGN,oBAAoB,CAAC,CAAC;EACnD,MAAMmB,SAAS,GAAGT,YAAY,CAAC,CAAC;EAChC,MAAMkB,cAAc,GAAG,IAAA3B,eAAS,EAC7BC,MAAM,IAAM;IACb,MAAM2B,IAAI,GAAG3B,MAAM,CAAEK,eAAU,CAAC,CAACuB,qBAAqB,CACrD,UAAU,EACVH,QAAQ,EACRrB,MACD,CAAC;IACD,OAAOuB,IAAI,EAAEP,QAAQ;EACtB,CAAC,EACD,CAAEK,QAAQ,EAAErB,MAAM,CACnB,CAAC;EAED,IAAK,CAAEsB,cAAc,EAAG;IACvB;EACD;EACA;EACA;EACA;EACA,OAAOT,SAAS,EAAEY,IAAI,CAAIT,QAAQ,IAAMA,QAAQ,CAACE,IAAI,KAAKI,cAAe,CAAC,EACvEJ,IAAI;AACR"}
@@ -14,6 +14,7 @@ var _interface = require("@wordpress/interface");
14
14
  var _constants = require("../../../store/constants");
15
15
  var _constants2 = require("../constants");
16
16
  var _store = require("../../../store");
17
+ var _constants3 = require("../../../utils/constants");
17
18
  /**
18
19
  * External dependencies
19
20
  */
@@ -26,11 +27,6 @@ var _store = require("../../../store");
26
27
  * Internal dependencies
27
28
  */
28
29
 
29
- const entityLabels = {
30
- wp_navigation: (0, _i18n.__)('Navigation'),
31
- wp_block: (0, _i18n.__)('Pattern'),
32
- wp_template: (0, _i18n.__)('Template')
33
- };
34
30
  const SettingsHeader = ({
35
31
  sidebarName
36
32
  }) => {
@@ -47,7 +43,7 @@ const SettingsHeader = ({
47
43
  entityType: getEditedPostType()
48
44
  };
49
45
  });
50
- const entityLabel = entityLabels[entityType] || entityLabels.wp_template;
46
+ const entityLabel = _constants3.POST_TYPE_LABELS[entityType] || _constants3.POST_TYPE_LABELS[_constants3.TEMPLATE_POST_TYPE];
51
47
  const {
52
48
  enableComplementaryArea
53
49
  } = (0, _data.useDispatch)(_interface.store);
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_components","_i18n","_data","_interface","_constants","_constants2","_store","entityLabels","wp_navigation","__","wp_block","wp_template","SettingsHeader","sidebarName","hasPageContentFocus","entityType","useSelect","select","getEditedPostType","_hasPageContentFocus","editSiteStore","entityLabel","enableComplementaryArea","useDispatch","interfaceStore","openTemplateSettings","STORE_NAME","SIDEBAR_TEMPLATE","openBlockSettings","SIDEBAR_BLOCK","templateAriaLabel","sprintf","_element","createElement","Button","onClick","className","classnames","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/settings-header/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME } from '../../../store/constants';\nimport { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from '../constants';\nimport { store as editSiteStore } from '../../../store';\n\nconst entityLabels = {\n\twp_navigation: __( 'Navigation' ),\n\twp_block: __( 'Pattern' ),\n\twp_template: __( 'Template' ),\n};\n\nconst SettingsHeader = ( { sidebarName } ) => {\n\tconst { hasPageContentFocus, entityType } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, hasPageContentFocus: _hasPageContentFocus } =\n\t\t\tselect( editSiteStore );\n\n\t\treturn {\n\t\t\thasPageContentFocus: _hasPageContentFocus(),\n\t\t\tentityType: getEditedPostType(),\n\t\t};\n\t} );\n\n\tconst entityLabel = entityLabels[ entityType ] || entityLabels.wp_template;\n\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\tconst openTemplateSettings = () =>\n\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_TEMPLATE );\n\tconst openBlockSettings = () =>\n\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_BLOCK );\n\n\tlet templateAriaLabel;\n\tif ( hasPageContentFocus ) {\n\t\ttemplateAriaLabel =\n\t\t\tsidebarName === SIDEBAR_TEMPLATE\n\t\t\t\t? // translators: ARIA label for the Template sidebar tab, selected.\n\t\t\t\t __( 'Page (selected)' )\n\t\t\t\t: // translators: ARIA label for the Template Settings Sidebar tab, not selected.\n\t\t\t\t __( 'Page' );\n\t} else {\n\t\ttemplateAriaLabel =\n\t\t\tsidebarName === SIDEBAR_TEMPLATE\n\t\t\t\t? // translators: ARIA label for the Template sidebar tab, selected.\n\t\t\t\t sprintf( __( '%s (selected)' ), entityLabel )\n\t\t\t\t: // translators: ARIA label for the Template Settings Sidebar tab, not selected.\n\t\t\t\t entityLabel;\n\t}\n\n\t/* Use a list so screen readers will announce how many tabs there are. */\n\treturn (\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ openTemplateSettings }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'edit-site-sidebar-edit-mode__panel-tab',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-active': sidebarName === SIDEBAR_TEMPLATE,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ templateAriaLabel }\n\t\t\t\t\tdata-label={\n\t\t\t\t\t\thasPageContentFocus ? __( 'Page' ) : entityLabel\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ hasPageContentFocus ? __( 'Page' ) : entityLabel }\n\t\t\t\t</Button>\n\t\t\t</li>\n\t\t\t<li>\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ openBlockSettings }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'edit-site-sidebar-edit-mode__panel-tab',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-active': sidebarName === SIDEBAR_BLOCK,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={\n\t\t\t\t\t\tsidebarName === SIDEBAR_BLOCK\n\t\t\t\t\t\t\t? // translators: ARIA label for the Block Settings Sidebar tab, selected.\n\t\t\t\t\t\t\t __( 'Block (selected)' )\n\t\t\t\t\t\t\t: // translators: ARIA label for the Block Settings Sidebar tab, not selected.\n\t\t\t\t\t\t\t __( 'Block' )\n\t\t\t\t\t}\n\t\t\t\t\tdata-label={ __( 'Block' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Block' ) }\n\t\t\t\t</Button>\n\t\t\t</li>\n\t\t</ul>\n\t);\n};\n\nexport default SettingsHeader;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_components","_i18n","_data","_interface","_constants","_constants2","_store","_constants3","SettingsHeader","sidebarName","hasPageContentFocus","entityType","useSelect","select","getEditedPostType","_hasPageContentFocus","editSiteStore","entityLabel","POST_TYPE_LABELS","TEMPLATE_POST_TYPE","enableComplementaryArea","useDispatch","interfaceStore","openTemplateSettings","STORE_NAME","SIDEBAR_TEMPLATE","openBlockSettings","SIDEBAR_BLOCK","templateAriaLabel","__","sprintf","_element","createElement","Button","onClick","className","classnames","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/settings-header/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME } from '../../../store/constants';\nimport { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from '../constants';\nimport { store as editSiteStore } from '../../../store';\nimport { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../../utils/constants';\n\nconst SettingsHeader = ( { sidebarName } ) => {\n\tconst { hasPageContentFocus, entityType } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, hasPageContentFocus: _hasPageContentFocus } =\n\t\t\tselect( editSiteStore );\n\n\t\treturn {\n\t\t\thasPageContentFocus: _hasPageContentFocus(),\n\t\t\tentityType: getEditedPostType(),\n\t\t};\n\t} );\n\n\tconst entityLabel =\n\t\tPOST_TYPE_LABELS[ entityType ] ||\n\t\tPOST_TYPE_LABELS[ TEMPLATE_POST_TYPE ];\n\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\tconst openTemplateSettings = () =>\n\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_TEMPLATE );\n\tconst openBlockSettings = () =>\n\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_BLOCK );\n\n\tlet templateAriaLabel;\n\tif ( hasPageContentFocus ) {\n\t\ttemplateAriaLabel =\n\t\t\tsidebarName === SIDEBAR_TEMPLATE\n\t\t\t\t? // translators: ARIA label for the Template sidebar tab, selected.\n\t\t\t\t __( 'Page (selected)' )\n\t\t\t\t: // translators: ARIA label for the Template Settings Sidebar tab, not selected.\n\t\t\t\t __( 'Page' );\n\t} else {\n\t\ttemplateAriaLabel =\n\t\t\tsidebarName === SIDEBAR_TEMPLATE\n\t\t\t\t? // translators: ARIA label for the Template sidebar tab, selected.\n\t\t\t\t sprintf( __( '%s (selected)' ), entityLabel )\n\t\t\t\t: // translators: ARIA label for the Template Settings Sidebar tab, not selected.\n\t\t\t\t entityLabel;\n\t}\n\n\t/* Use a list so screen readers will announce how many tabs there are. */\n\treturn (\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ openTemplateSettings }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'edit-site-sidebar-edit-mode__panel-tab',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-active': sidebarName === SIDEBAR_TEMPLATE,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ templateAriaLabel }\n\t\t\t\t\tdata-label={\n\t\t\t\t\t\thasPageContentFocus ? __( 'Page' ) : entityLabel\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ hasPageContentFocus ? __( 'Page' ) : entityLabel }\n\t\t\t\t</Button>\n\t\t\t</li>\n\t\t\t<li>\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ openBlockSettings }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'edit-site-sidebar-edit-mode__panel-tab',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-active': sidebarName === SIDEBAR_BLOCK,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={\n\t\t\t\t\t\tsidebarName === SIDEBAR_BLOCK\n\t\t\t\t\t\t\t? // translators: ARIA label for the Block Settings Sidebar tab, selected.\n\t\t\t\t\t\t\t __( 'Block (selected)' )\n\t\t\t\t\t\t\t: // translators: ARIA label for the Block Settings Sidebar tab, not selected.\n\t\t\t\t\t\t\t __( 'Block' )\n\t\t\t\t\t}\n\t\t\t\t\tdata-label={ __( 'Block' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Block' ) }\n\t\t\t\t</Button>\n\t\t\t</li>\n\t\t</ul>\n\t);\n};\n\nexport default SettingsHeader;\n"],"mappings":"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"}
@@ -13,10 +13,15 @@ var _coreData = require("@wordpress/core-data");
13
13
  var _compose = require("@wordpress/compose");
14
14
  var _notices = require("@wordpress/notices");
15
15
  var _htmlEntities = require("@wordpress/html-entities");
16
+ var _constants = require("../../../utils/constants");
16
17
  /**
17
18
  * WordPress dependencies
18
19
  */
19
20
 
21
+ /**
22
+ * Internal dependencies
23
+ */
24
+
20
25
  const unescapeString = arg => {
21
26
  return (0, _htmlEntities.decodeEntities)(arg);
22
27
  };
@@ -123,7 +128,8 @@ function PatternCategories({
123
128
  }, [searchResults]);
124
129
  const {
125
130
  saveEntityRecord,
126
- editEntityRecord
131
+ editEntityRecord,
132
+ invalidateResolution
127
133
  } = (0, _data.useDispatch)(_coreData.store);
128
134
  const {
129
135
  createErrorNotice
@@ -136,6 +142,7 @@ function PatternCategories({
136
142
  const newTerm = await saveEntityRecord('taxonomy', slug, term, {
137
143
  throwOnError: true
138
144
  });
145
+ invalidateResolution('getUserPatternCategories');
139
146
  return unescapeTerm(newTerm);
140
147
  } catch (error) {
141
148
  if (error.code !== 'term_exists') {
@@ -148,7 +155,7 @@ function PatternCategories({
148
155
  }
149
156
  }
150
157
  function onUpdateTerms(newTermIds) {
151
- editEntityRecord('postType', 'wp_block', post.id, {
158
+ editEntityRecord('postType', _constants.PATTERN_TYPES.user, post.id, {
152
159
  wp_pattern_category: newTermIds
153
160
  });
154
161
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_i18n","_components","_data","_coreData","_compose","_notices","_htmlEntities","unescapeString","arg","decodeEntities","exports","unescapeTerm","term","name","EMPTY_ARRAY","MAX_TERMS_SUGGESTIONS","DEFAULT_QUERY","per_page","_fields","context","isSameTermName","termA","termB","toLowerCase","termNamesToIds","names","terms","map","termName","find","id","PatternCategories","post","_taxonomy$labels$sing","slug","values","setValues","useState","search","setSearch","debouncedSearch","useDebounce","taxonomy","hasAssignAction","hasCreateAction","hasResolvedTerms","useSelect","select","_post$_links","_post$_links2","getEntityRecords","getTaxonomy","hasFinishedResolution","coreStore","_taxonomy","_termIds","wp_pattern_category","length","query","include","join","_links","rest_base","termIds","searchResults","useEffect","newValues","suggestions","useMemo","saveEntityRecord","editEntityRecord","useDispatch","createErrorNotice","noticesStore","findOrCreateTerm","newTerm","throwOnError","error","code","data","term_id","onUpdateTerms","newTermIds","onChange","termNames","availableTerms","uniqueTerms","reduce","acc","some","n","push","newTermNames","filter","Promise","all","then","newTerms","newAvailableTerms","concat","catch","message","type","singularName","labels","singular_name","__","termAddedLabel","sprintf","_x","termRemovedLabel","removeTermLabel","createElement","PanelRow","initialOpen","title","FormTokenField","__next40pxDefaultSize","value","onInputChange","maxSuggestions","label","messages","added","removed","remove","tokenizeOnBlur"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/template-panel/pattern-categories.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { FormTokenField, PanelRow } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDebounce } from '@wordpress/compose';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\n\nexport const unescapeString = ( arg ) => {\n\treturn decodeEntities( arg );\n};\n\n/**\n * Returns a term object with name unescaped.\n *\n * @param {Object} term The term object to unescape.\n *\n * @return {Object} Term object with name property unescaped.\n */\nexport const unescapeTerm = ( term ) => {\n\treturn {\n\t\t...term,\n\t\tname: unescapeString( term.name ),\n\t};\n};\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array<any>}\n */\nconst EMPTY_ARRAY = [];\n\n/**\n * Module constants\n */\nconst MAX_TERMS_SUGGESTIONS = 20;\nconst DEFAULT_QUERY = {\n\tper_page: MAX_TERMS_SUGGESTIONS,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nconst isSameTermName = ( termA, termB ) =>\n\tunescapeString( termA ).toLowerCase() ===\n\tunescapeString( termB ).toLowerCase();\n\nconst termNamesToIds = ( names, terms ) => {\n\treturn names.map(\n\t\t( termName ) =>\n\t\t\tterms.find( ( term ) => isSameTermName( term.name, termName ) ).id\n\t);\n};\n\nexport default function PatternCategories( { post } ) {\n\tconst slug = 'wp_pattern_category';\n\tconst [ values, setValues ] = useState( [] );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tconst {\n\t\tterms,\n\t\ttaxonomy,\n\t\thasAssignAction,\n\t\thasCreateAction,\n\t\thasResolvedTerms,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getTaxonomy, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _taxonomy = getTaxonomy( slug );\n\t\t\tconst _termIds =\n\t\t\t\tpost?.wp_pattern_category?.length > 0\n\t\t\t\t\t? post?.wp_pattern_category\n\t\t\t\t\t: EMPTY_ARRAY;\n\t\t\tconst query = {\n\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\tinclude: _termIds?.join( ',' ),\n\t\t\t\tper_page: -1,\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t\ttermIds: _termIds,\n\t\t\t\tterms: _termIds?.length\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, query )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\thasResolvedTerms: hasFinishedResolution( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ slug, post ]\n\t);\n\n\tconst { searchResults } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tsearchResults: !! search\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, {\n\t\t\t\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\t\t\t\tsearch,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t};\n\t\t},\n\t\t[ search, slug ]\n\t);\n\n\t// Update terms state only after the selectors are resolved.\n\t// We're using this to avoid terms temporarily disappearing on slow networks\n\t// while core data makes REST API requests.\n\tuseEffect( () => {\n\t\tif ( hasResolvedTerms ) {\n\t\t\tconst newValues = ( terms ?? [] ).map( ( term ) =>\n\t\t\t\tunescapeString( term.name )\n\t\t\t);\n\n\t\t\tsetValues( newValues );\n\t\t}\n\t}, [ terms, hasResolvedTerms ] );\n\n\tconst suggestions = useMemo( () => {\n\t\treturn ( searchResults ?? [] ).map( ( term ) =>\n\t\t\tunescapeString( term.name )\n\t\t);\n\t}, [ searchResults ] );\n\n\tconst { saveEntityRecord, editEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst newTerm = await saveEntityRecord( 'taxonomy', slug, term, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\t\t\treturn unescapeTerm( newTerm );\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tid: error.data.term_id,\n\t\t\t\tname: term.name,\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction onUpdateTerms( newTermIds ) {\n\t\teditEntityRecord( 'postType', 'wp_block', post.id, {\n\t\t\twp_pattern_category: newTermIds,\n\t\t} );\n\t}\n\n\tfunction onChange( termNames ) {\n\t\tconst availableTerms = [\n\t\t\t...( terms ?? [] ),\n\t\t\t...( searchResults ?? [] ),\n\t\t];\n\t\tconst uniqueTerms = termNames.reduce( ( acc, name ) => {\n\t\t\tif (\n\t\t\t\t! acc.some( ( n ) => n.toLowerCase() === name.toLowerCase() )\n\t\t\t) {\n\t\t\t\tacc.push( name );\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] );\n\n\t\tconst newTermNames = uniqueTerms.filter(\n\t\t\t( termName ) =>\n\t\t\t\t! availableTerms.find( ( term ) =>\n\t\t\t\t\tisSameTermName( term.name, termName )\n\t\t\t\t)\n\t\t);\n\n\t\t// Optimistically update term values.\n\t\t// The selector will always re-fetch terms later.\n\t\tsetValues( uniqueTerms );\n\n\t\tif ( newTermNames.length === 0 ) {\n\t\t\treturn onUpdateTerms(\n\t\t\t\ttermNamesToIds( uniqueTerms, availableTerms )\n\t\t\t);\n\t\t}\n\n\t\tif ( ! hasCreateAction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.all(\n\t\t\tnewTermNames.map( ( termName ) =>\n\t\t\t\tfindOrCreateTerm( { name: termName } )\n\t\t\t)\n\t\t)\n\t\t\t.then( ( newTerms ) => {\n\t\t\t\tconst newAvailableTerms = availableTerms.concat( newTerms );\n\t\t\t\treturn onUpdateTerms(\n\t\t\t\t\ttermNamesToIds( uniqueTerms, newAvailableTerms )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} );\n\t}\n\n\tconst singularName =\n\t\ttaxonomy?.labels?.singular_name ??\n\t\t( slug === 'post_tag' ? __( 'Tag' ) : __( 'Term' ) );\n\tconst termAddedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s added', 'term' ),\n\t\tsingularName\n\t);\n\tconst termRemovedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s removed', 'term' ),\n\t\tsingularName\n\t);\n\tconst removeTermLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( 'Remove %s', 'term' ),\n\t\tsingularName\n\t);\n\n\treturn (\n\t\t<PanelRow initialOpen={ true } title={ __( 'Categories' ) }>\n\t\t\t<FormTokenField\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tvalue={ values }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tmaxSuggestions={ MAX_TERMS_SUGGESTIONS }\n\t\t\t\tlabel={ __( 'Pattern categories' ) }\n\t\t\t\tmessages={ {\n\t\t\t\t\tadded: termAddedLabel,\n\t\t\t\t\tremoved: termRemovedLabel,\n\t\t\t\t\tremove: removeTermLabel,\n\t\t\t\t} }\n\t\t\t\ttokenizeOnBlur\n\t\t\t/>\n\t\t</PanelRow>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_i18n","_components","_data","_coreData","_compose","_notices","_htmlEntities","_constants","unescapeString","arg","decodeEntities","exports","unescapeTerm","term","name","EMPTY_ARRAY","MAX_TERMS_SUGGESTIONS","DEFAULT_QUERY","per_page","_fields","context","isSameTermName","termA","termB","toLowerCase","termNamesToIds","names","terms","map","termName","find","id","PatternCategories","post","_taxonomy$labels$sing","slug","values","setValues","useState","search","setSearch","debouncedSearch","useDebounce","taxonomy","hasAssignAction","hasCreateAction","hasResolvedTerms","useSelect","select","_post$_links","_post$_links2","getEntityRecords","getTaxonomy","hasFinishedResolution","coreStore","_taxonomy","_termIds","wp_pattern_category","length","query","include","join","_links","rest_base","termIds","searchResults","useEffect","newValues","suggestions","useMemo","saveEntityRecord","editEntityRecord","invalidateResolution","useDispatch","createErrorNotice","noticesStore","findOrCreateTerm","newTerm","throwOnError","error","code","data","term_id","onUpdateTerms","newTermIds","PATTERN_TYPES","user","onChange","termNames","availableTerms","uniqueTerms","reduce","acc","some","n","push","newTermNames","filter","Promise","all","then","newTerms","newAvailableTerms","concat","catch","message","type","singularName","labels","singular_name","__","termAddedLabel","sprintf","_x","termRemovedLabel","removeTermLabel","createElement","PanelRow","initialOpen","title","FormTokenField","__next40pxDefaultSize","value","onInputChange","maxSuggestions","label","messages","added","removed","remove","tokenizeOnBlur"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/template-panel/pattern-categories.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { FormTokenField, PanelRow } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDebounce } from '@wordpress/compose';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { PATTERN_TYPES } from '../../../utils/constants';\n\nexport const unescapeString = ( arg ) => {\n\treturn decodeEntities( arg );\n};\n\n/**\n * Returns a term object with name unescaped.\n *\n * @param {Object} term The term object to unescape.\n *\n * @return {Object} Term object with name property unescaped.\n */\nexport const unescapeTerm = ( term ) => {\n\treturn {\n\t\t...term,\n\t\tname: unescapeString( term.name ),\n\t};\n};\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array<any>}\n */\nconst EMPTY_ARRAY = [];\n\n/**\n * Module constants\n */\nconst MAX_TERMS_SUGGESTIONS = 20;\nconst DEFAULT_QUERY = {\n\tper_page: MAX_TERMS_SUGGESTIONS,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nconst isSameTermName = ( termA, termB ) =>\n\tunescapeString( termA ).toLowerCase() ===\n\tunescapeString( termB ).toLowerCase();\n\nconst termNamesToIds = ( names, terms ) => {\n\treturn names.map(\n\t\t( termName ) =>\n\t\t\tterms.find( ( term ) => isSameTermName( term.name, termName ) ).id\n\t);\n};\n\nexport default function PatternCategories( { post } ) {\n\tconst slug = 'wp_pattern_category';\n\tconst [ values, setValues ] = useState( [] );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tconst {\n\t\tterms,\n\t\ttaxonomy,\n\t\thasAssignAction,\n\t\thasCreateAction,\n\t\thasResolvedTerms,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getTaxonomy, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _taxonomy = getTaxonomy( slug );\n\t\t\tconst _termIds =\n\t\t\t\tpost?.wp_pattern_category?.length > 0\n\t\t\t\t\t? post?.wp_pattern_category\n\t\t\t\t\t: EMPTY_ARRAY;\n\t\t\tconst query = {\n\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\tinclude: _termIds?.join( ',' ),\n\t\t\t\tper_page: -1,\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t\ttermIds: _termIds,\n\t\t\t\tterms: _termIds?.length\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, query )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\thasResolvedTerms: hasFinishedResolution( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ slug, post ]\n\t);\n\n\tconst { searchResults } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tsearchResults: !! search\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, {\n\t\t\t\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\t\t\t\tsearch,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t};\n\t\t},\n\t\t[ search, slug ]\n\t);\n\n\t// Update terms state only after the selectors are resolved.\n\t// We're using this to avoid terms temporarily disappearing on slow networks\n\t// while core data makes REST API requests.\n\tuseEffect( () => {\n\t\tif ( hasResolvedTerms ) {\n\t\t\tconst newValues = ( terms ?? [] ).map( ( term ) =>\n\t\t\t\tunescapeString( term.name )\n\t\t\t);\n\n\t\t\tsetValues( newValues );\n\t\t}\n\t}, [ terms, hasResolvedTerms ] );\n\n\tconst suggestions = useMemo( () => {\n\t\treturn ( searchResults ?? [] ).map( ( term ) =>\n\t\t\tunescapeString( term.name )\n\t\t);\n\t}, [ searchResults ] );\n\n\tconst { saveEntityRecord, editEntityRecord, invalidateResolution } =\n\t\tuseDispatch( coreStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst newTerm = await saveEntityRecord( 'taxonomy', slug, term, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\treturn unescapeTerm( newTerm );\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tid: error.data.term_id,\n\t\t\t\tname: term.name,\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction onUpdateTerms( newTermIds ) {\n\t\teditEntityRecord( 'postType', PATTERN_TYPES.user, post.id, {\n\t\t\twp_pattern_category: newTermIds,\n\t\t} );\n\t}\n\n\tfunction onChange( termNames ) {\n\t\tconst availableTerms = [\n\t\t\t...( terms ?? [] ),\n\t\t\t...( searchResults ?? [] ),\n\t\t];\n\t\tconst uniqueTerms = termNames.reduce( ( acc, name ) => {\n\t\t\tif (\n\t\t\t\t! acc.some( ( n ) => n.toLowerCase() === name.toLowerCase() )\n\t\t\t) {\n\t\t\t\tacc.push( name );\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] );\n\n\t\tconst newTermNames = uniqueTerms.filter(\n\t\t\t( termName ) =>\n\t\t\t\t! availableTerms.find( ( term ) =>\n\t\t\t\t\tisSameTermName( term.name, termName )\n\t\t\t\t)\n\t\t);\n\n\t\t// Optimistically update term values.\n\t\t// The selector will always re-fetch terms later.\n\t\tsetValues( uniqueTerms );\n\n\t\tif ( newTermNames.length === 0 ) {\n\t\t\treturn onUpdateTerms(\n\t\t\t\ttermNamesToIds( uniqueTerms, availableTerms )\n\t\t\t);\n\t\t}\n\n\t\tif ( ! hasCreateAction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.all(\n\t\t\tnewTermNames.map( ( termName ) =>\n\t\t\t\tfindOrCreateTerm( { name: termName } )\n\t\t\t)\n\t\t)\n\t\t\t.then( ( newTerms ) => {\n\t\t\t\tconst newAvailableTerms = availableTerms.concat( newTerms );\n\t\t\t\treturn onUpdateTerms(\n\t\t\t\t\ttermNamesToIds( uniqueTerms, newAvailableTerms )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} );\n\t}\n\n\tconst singularName =\n\t\ttaxonomy?.labels?.singular_name ??\n\t\t( slug === 'post_tag' ? __( 'Tag' ) : __( 'Term' ) );\n\tconst termAddedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s added', 'term' ),\n\t\tsingularName\n\t);\n\tconst termRemovedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s removed', 'term' ),\n\t\tsingularName\n\t);\n\tconst removeTermLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( 'Remove %s', 'term' ),\n\t\tsingularName\n\t);\n\n\treturn (\n\t\t<PanelRow initialOpen={ true } title={ __( 'Categories' ) }>\n\t\t\t<FormTokenField\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tvalue={ values }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tmaxSuggestions={ MAX_TERMS_SUGGESTIONS }\n\t\t\t\tlabel={ __( 'Pattern categories' ) }\n\t\t\t\tmessages={ {\n\t\t\t\t\tadded: termAddedLabel,\n\t\t\t\t\tremoved: termRemovedLabel,\n\t\t\t\t\tremove: removeTermLabel,\n\t\t\t\t} }\n\t\t\t\ttokenizeOnBlur\n\t\t\t/>\n\t\t</PanelRow>\n\t);\n}\n"],"mappings":"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"}
@@ -10,6 +10,7 @@ var _i18n = require("@wordpress/i18n");
10
10
  var _icons = require("@wordpress/icons");
11
11
  var _sidebarButton = _interopRequireDefault(require("../sidebar-button"));
12
12
  var _link = require("../routes/link");
13
+ var _constants = require("../../utils/constants");
13
14
  /**
14
15
  * WordPress dependencies
15
16
  */
@@ -23,7 +24,7 @@ function EditButton({
23
24
  }) {
24
25
  const linkInfo = (0, _link.useLink)({
25
26
  postId,
26
- postType: 'wp_navigation',
27
+ postType: _constants.NAVIGATION_POST_TYPE,
27
28
  canvas: 'edit'
28
29
  });
29
30
  return (0, _element.createElement)(_sidebarButton.default, {
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_icons","_sidebarButton","_interopRequireDefault","_link","EditButton","postId","linkInfo","useLink","postType","canvas","_element","createElement","default","label","__","icon","pencil"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-navigation-menu/edit-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { pencil } from '@wordpress/icons';\n/**\n * Internal dependencies\n */\nimport SidebarButton from '../sidebar-button';\nimport { useLink } from '../routes/link';\n\nexport default function EditButton( { postId } ) {\n\tconst linkInfo = useLink( {\n\t\tpostId,\n\t\tpostType: 'wp_navigation',\n\t\tcanvas: 'edit',\n\t} );\n\treturn (\n\t\t<SidebarButton { ...linkInfo } label={ __( 'Edit' ) } icon={ pencil } />\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAIA,IAAAE,cAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAIe,SAASK,UAAUA,CAAE;EAAEC;AAAO,CAAC,EAAG;EAChD,MAAMC,QAAQ,GAAG,IAAAC,aAAO,EAAE;IACzBF,MAAM;IACNG,QAAQ,EAAE,eAAe;IACzBC,MAAM,EAAE;EACT,CAAE,CAAC;EACH,OACC,IAAAC,QAAA,CAAAC,aAAA,EAACV,cAAA,CAAAW,OAAa;IAAA,GAAMN,QAAQ;IAAGO,KAAK,EAAG,IAAAC,QAAE,EAAE,MAAO,CAAG;IAACC,IAAI,EAAGC;EAAQ,CAAE,CAAC;AAE1E"}
1
+ {"version":3,"names":["_i18n","require","_icons","_sidebarButton","_interopRequireDefault","_link","_constants","EditButton","postId","linkInfo","useLink","postType","NAVIGATION_POST_TYPE","canvas","_element","createElement","default","label","__","icon","pencil"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-navigation-menu/edit-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { pencil } from '@wordpress/icons';\n/**\n * Internal dependencies\n */\nimport SidebarButton from '../sidebar-button';\nimport { useLink } from '../routes/link';\nimport { NAVIGATION_POST_TYPE } from '../../utils/constants';\n\nexport default function EditButton( { postId } ) {\n\tconst linkInfo = useLink( {\n\t\tpostId,\n\t\tpostType: NAVIGATION_POST_TYPE,\n\t\tcanvas: 'edit',\n\t} );\n\treturn (\n\t\t<SidebarButton { ...linkInfo } label={ __( 'Edit' ) } icon={ pencil } />\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAIA,IAAAE,cAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAVA;AACA;AACA;;AAGA;AACA;AACA;;AAKe,SAASM,UAAUA,CAAE;EAAEC;AAAO,CAAC,EAAG;EAChD,MAAMC,QAAQ,GAAG,IAAAC,aAAO,EAAE;IACzBF,MAAM;IACNG,QAAQ,EAAEC,+BAAoB;IAC9BC,MAAM,EAAE;EACT,CAAE,CAAC;EACH,OACC,IAAAC,QAAA,CAAAC,aAAA,EAACZ,cAAA,CAAAa,OAAa;IAAA,GAAMP,QAAQ;IAAGQ,KAAK,EAAG,IAAAC,QAAE,EAAE,MAAO,CAAG;IAACC,IAAI,EAAGC;EAAQ,CAAE,CAAC;AAE1E"}