@wordpress/edit-site 5.27.1 → 5.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/actions/index.js +3 -6
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/add-new-template/add-custom-generic-template-modal-content.js +1 -2
  5. package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  6. package/build/components/add-new-template/add-custom-template-modal-content.js +1 -2
  7. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  8. package/build/components/block-editor/editor-canvas.js +1 -2
  9. package/build/components/block-editor/editor-canvas.js.map +1 -1
  10. package/build/components/block-editor/inserter-media-categories.js +1 -2
  11. package/build/components/block-editor/inserter-media-categories.js.map +1 -1
  12. package/build/components/block-editor/resizable-editor.js +1 -2
  13. package/build/components/block-editor/resizable-editor.js.map +1 -1
  14. package/build/components/block-editor/site-editor-canvas.js +12 -5
  15. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  16. package/build/components/block-editor/use-navigate-to-entity-record.js +32 -0
  17. package/build/components/block-editor/use-navigate-to-entity-record.js.map +1 -0
  18. package/build/components/block-editor/use-site-editor-settings.js +30 -4
  19. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  20. package/build/components/editor/index.js +13 -10
  21. package/build/components/editor/index.js.map +1 -1
  22. package/build/components/editor-canvas-container/index.js +1 -2
  23. package/build/components/editor-canvas-container/index.js.map +1 -1
  24. package/build/components/global-styles/block-preview-panel.js +1 -2
  25. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  26. package/build/components/global-styles/color-indicator-wrapper.js +1 -2
  27. package/build/components/global-styles/color-indicator-wrapper.js.map +1 -1
  28. package/build/components/global-styles/font-families.js +9 -5
  29. package/build/components/global-styles/font-families.js.map +1 -1
  30. package/build/components/global-styles/font-family-item.js +1 -2
  31. package/build/components/global-styles/font-family-item.js.map +1 -1
  32. package/build/components/global-styles/font-library-modal/collection-font-details.js +1 -2
  33. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  34. package/build/components/global-styles/font-library-modal/collection-font-variant.js +13 -13
  35. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  36. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +1 -2
  37. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -1
  38. package/build/components/global-styles/font-library-modal/context.js +16 -4
  39. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  40. package/build/components/global-styles/font-library-modal/font-card.js +3 -3
  41. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
  42. package/build/components/global-styles/font-library-modal/font-collection.js +26 -40
  43. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  44. package/build/components/global-styles/font-library-modal/font-demo.js +6 -12
  45. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  46. package/build/components/global-styles/font-library-modal/fonts-grid.js +1 -2
  47. package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
  48. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +3 -4
  49. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  50. package/build/components/global-styles/font-library-modal/index.js +11 -5
  51. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  52. package/build/components/global-styles/font-library-modal/installed-fonts.js +14 -26
  53. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  54. package/build/components/global-styles/font-library-modal/library-font-card.js +2 -3
  55. package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  56. package/build/components/global-styles/font-library-modal/library-font-details.js +1 -2
  57. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  58. package/build/components/global-styles/font-library-modal/library-font-variant.js +15 -15
  59. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  60. package/build/components/global-styles/font-library-modal/resolvers.js +1 -1
  61. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  62. package/build/components/global-styles/font-library-modal/tab-panel-layout.js +13 -4
  63. package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
  64. package/build/components/global-styles/font-library-modal/upload-fonts.js +157 -6
  65. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  66. package/build/components/global-styles/font-library-modal/utils/constants.js +3 -6
  67. package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
  68. package/build/components/global-styles/font-library-modal/utils/index.js +37 -32
  69. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  70. package/build/components/global-styles/header.js +1 -2
  71. package/build/components/global-styles/header.js.map +1 -1
  72. package/build/components/global-styles/palette.js +1 -2
  73. package/build/components/global-styles/palette.js.map +1 -1
  74. package/build/components/global-styles/preview.js +1 -2
  75. package/build/components/global-styles/preview.js.map +1 -1
  76. package/build/components/global-styles/root-menu.js +1 -2
  77. package/build/components/global-styles/root-menu.js.map +1 -1
  78. package/build/components/global-styles/screen-block-list.js +1 -2
  79. package/build/components/global-styles/screen-block-list.js.map +1 -1
  80. package/build/components/global-styles/screen-block.js +1 -11
  81. package/build/components/global-styles/screen-block.js.map +1 -1
  82. package/build/components/global-styles/screen-color-palette.js +1 -2
  83. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  84. package/build/components/global-styles/screen-colors.js +1 -2
  85. package/build/components/global-styles/screen-colors.js.map +1 -1
  86. package/build/components/global-styles/screen-css.js +1 -2
  87. package/build/components/global-styles/screen-css.js.map +1 -1
  88. package/build/components/global-styles/screen-layout.js +1 -2
  89. package/build/components/global-styles/screen-layout.js.map +1 -1
  90. package/build/components/global-styles/screen-revisions/index.js +1 -2
  91. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  92. package/build/components/global-styles/screen-revisions/revisions-buttons.js +2 -3
  93. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  94. package/build/components/global-styles/screen-root.js +1 -2
  95. package/build/components/global-styles/screen-root.js.map +1 -1
  96. package/build/components/global-styles/screen-style-variations.js +1 -2
  97. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  98. package/build/components/global-styles/screen-typography-element.js +3 -6
  99. package/build/components/global-styles/screen-typography-element.js.map +1 -1
  100. package/build/components/global-styles/screen-typography.js +1 -2
  101. package/build/components/global-styles/screen-typography.js.map +1 -1
  102. package/build/components/global-styles/subtitle.js +1 -2
  103. package/build/components/global-styles/subtitle.js.map +1 -1
  104. package/build/components/global-styles/typogrphy-elements.js +1 -2
  105. package/build/components/global-styles/typogrphy-elements.js.map +1 -1
  106. package/build/components/global-styles/ui.js +3 -4
  107. package/build/components/global-styles/ui.js.map +1 -1
  108. package/build/components/header-edit-mode/mode-switcher/index.js +1 -2
  109. package/build/components/header-edit-mode/mode-switcher/index.js.map +1 -1
  110. package/build/components/header-edit-mode/more-menu/index.js +12 -21
  111. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  112. package/build/components/header-edit-mode/plugin-more-menu-item/index.js +1 -2
  113. package/build/components/header-edit-mode/plugin-more-menu-item/index.js.map +1 -1
  114. package/build/components/header-edit-mode/tools-more-menu-group/index.js +1 -2
  115. package/build/components/header-edit-mode/tools-more-menu-group/index.js.map +1 -1
  116. package/build/components/keyboard-shortcut-help-modal/config.js +1 -2
  117. package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  118. package/build/components/keyboard-shortcut-help-modal/index.js +1 -3
  119. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  120. package/build/components/keyboard-shortcuts/edit-mode.js +1 -2
  121. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  122. package/build/components/keyboard-shortcuts/global.js +1 -2
  123. package/build/components/keyboard-shortcuts/global.js.map +1 -1
  124. package/build/components/keyboard-shortcuts/register.js +1 -2
  125. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  126. package/build/components/layout/index.js +0 -2
  127. package/build/components/layout/index.js.map +1 -1
  128. package/build/components/media/index.js +1 -2
  129. package/build/components/media/index.js.map +1 -1
  130. package/build/components/page-pages/index.js +27 -15
  131. package/build/components/page-pages/index.js.map +1 -1
  132. package/build/components/page-patterns/dataviews-pattern-actions.js +87 -32
  133. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  134. package/build/components/page-patterns/grid-item.js +2 -6
  135. package/build/components/page-patterns/grid-item.js.map +1 -1
  136. package/build/components/page-patterns/index.js +2 -1
  137. package/build/components/page-patterns/index.js.map +1 -1
  138. package/build/components/page-patterns/search-items.js +0 -1
  139. package/build/components/page-patterns/search-items.js.map +1 -1
  140. package/build/components/page-patterns/use-patterns.js +1 -2
  141. package/build/components/page-patterns/use-patterns.js.map +1 -1
  142. package/build/components/page-templates-template-parts/actions.js +2 -4
  143. package/build/components/page-templates-template-parts/actions.js.map +1 -1
  144. package/build/components/page-templates-template-parts/index.js +8 -5
  145. package/build/components/page-templates-template-parts/index.js.map +1 -1
  146. package/build/components/pattern-modal/index.js +1 -2
  147. package/build/components/pattern-modal/index.js.map +1 -1
  148. package/build/components/plugin-template-setting-panel/index.js +1 -2
  149. package/build/components/plugin-template-setting-panel/index.js.map +1 -1
  150. package/build/components/preferences-modal/index.js +1 -2
  151. package/build/components/preferences-modal/index.js.map +1 -1
  152. package/build/components/resizable-frame/index.js +1 -2
  153. package/build/components/resizable-frame/index.js.map +1 -1
  154. package/build/components/revisions/index.js +1 -2
  155. package/build/components/revisions/index.js.map +1 -1
  156. package/build/components/routes/link.js +3 -7
  157. package/build/components/routes/link.js.map +1 -1
  158. package/build/components/sidebar/index.js +3 -4
  159. package/build/components/sidebar/index.js.map +1 -1
  160. package/build/components/sidebar-dataviews/default-views.js +4 -6
  161. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  162. package/build/components/sidebar-edit-mode/constants.js +2 -4
  163. package/build/components/sidebar-edit-mode/constants.js.map +1 -1
  164. package/build/components/sidebar-edit-mode/index.js +97 -19
  165. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  166. package/build/components/sidebar-edit-mode/settings-header/index.js +22 -73
  167. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  168. package/build/components/sidebar-navigation-screen-navigation-menu/index.js +1 -2
  169. package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  170. package/build/components/sidebar-navigation-screen-navigation-menus/constants.js +1 -2
  171. package/build/components/sidebar-navigation-screen-navigation-menus/constants.js.map +1 -1
  172. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
  173. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  174. package/build/components/site-hub/index.js +1 -2
  175. package/build/components/site-hub/index.js.map +1 -1
  176. package/build/components/site-icon/index.js +3 -4
  177. package/build/components/site-icon/index.js.map +1 -1
  178. package/build/components/style-book/index.js +1 -2
  179. package/build/components/style-book/index.js.map +1 -1
  180. package/build/components/template-part-converter/convert-to-template-part.js +0 -1
  181. package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
  182. package/build/components/welcome-guide/template.js +2 -2
  183. package/build/components/welcome-guide/template.js.map +1 -1
  184. package/build/hooks/commands/use-edit-mode-commands.js +16 -6
  185. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  186. package/build/hooks/navigation-menu-edit.js +1 -2
  187. package/build/hooks/navigation-menu-edit.js.map +1 -1
  188. package/build/hooks/template-part-edit.js +1 -2
  189. package/build/hooks/template-part-edit.js.map +1 -1
  190. package/build/store/actions.js +7 -2
  191. package/build/store/actions.js.map +1 -1
  192. package/build/store/constants.js +1 -2
  193. package/build/store/constants.js.map +1 -1
  194. package/build/store/index.js +4 -6
  195. package/build/store/index.js.map +1 -1
  196. package/build/store/reducer.js +1 -2
  197. package/build/store/reducer.js.map +1 -1
  198. package/build/store/selectors.js +9 -18
  199. package/build/store/selectors.js.map +1 -1
  200. package/build/store/utils.js +1 -2
  201. package/build/store/utils.js.map +1 -1
  202. package/build/utils/constants.js +13 -26
  203. package/build/utils/constants.js.map +1 -1
  204. package/build-module/components/block-editor/site-editor-canvas.js +13 -6
  205. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  206. package/build-module/components/block-editor/use-navigate-to-entity-record.js +25 -0
  207. package/build-module/components/block-editor/use-navigate-to-entity-record.js.map +1 -0
  208. package/build-module/components/block-editor/use-site-editor-settings.js +29 -4
  209. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  210. package/build-module/components/editor/index.js +13 -10
  211. package/build-module/components/editor/index.js.map +1 -1
  212. package/build-module/components/global-styles/font-families.js +8 -4
  213. package/build-module/components/global-styles/font-families.js.map +1 -1
  214. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +12 -11
  215. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  216. package/build-module/components/global-styles/font-library-modal/context.js +14 -0
  217. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  218. package/build-module/components/global-styles/font-library-modal/font-card.js +3 -2
  219. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
  220. package/build-module/components/global-styles/font-library-modal/font-collection.js +28 -41
  221. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  222. package/build-module/components/global-styles/font-library-modal/font-demo.js +5 -10
  223. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  224. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +2 -2
  225. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  226. package/build-module/components/global-styles/font-library-modal/index.js +10 -3
  227. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  228. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +14 -25
  229. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  230. package/build-module/components/global-styles/font-library-modal/library-font-card.js +1 -1
  231. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  232. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +14 -13
  233. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  234. package/build-module/components/global-styles/font-library-modal/resolvers.js +1 -1
  235. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  236. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js +13 -3
  237. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
  238. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +158 -6
  239. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  240. package/build-module/components/global-styles/font-library-modal/utils/index.js +36 -31
  241. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  242. package/build-module/components/global-styles/screen-block.js +0 -9
  243. package/build-module/components/global-styles/screen-block.js.map +1 -1
  244. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  245. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  246. package/build-module/components/global-styles/screen-typography-element.js +3 -5
  247. package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
  248. package/build-module/components/header-edit-mode/more-menu/index.js +12 -21
  249. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  250. package/build-module/components/keyboard-shortcut-help-modal/index.js +0 -1
  251. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  252. package/build-module/components/layout/index.js +0 -2
  253. package/build-module/components/layout/index.js.map +1 -1
  254. package/build-module/components/page-pages/index.js +25 -13
  255. package/build-module/components/page-pages/index.js.map +1 -1
  256. package/build-module/components/page-patterns/dataviews-pattern-actions.js +81 -20
  257. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  258. package/build-module/components/page-patterns/grid-item.js +1 -4
  259. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  260. package/build-module/components/page-patterns/index.js +2 -1
  261. package/build-module/components/page-patterns/index.js.map +1 -1
  262. package/build-module/components/page-patterns/search-items.js +0 -1
  263. package/build-module/components/page-patterns/search-items.js.map +1 -1
  264. package/build-module/components/page-templates-template-parts/index.js +6 -3
  265. package/build-module/components/page-templates-template-parts/index.js.map +1 -1
  266. package/build-module/components/routes/link.js +3 -6
  267. package/build-module/components/routes/link.js.map +1 -1
  268. package/build-module/components/sidebar-dataviews/default-views.js +3 -3
  269. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  270. package/build-module/components/sidebar-edit-mode/index.js +98 -19
  271. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  272. package/build-module/components/sidebar-edit-mode/settings-header/index.js +24 -73
  273. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  274. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +2 -2
  275. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  276. package/build-module/components/site-icon/index.js +2 -2
  277. package/build-module/components/site-icon/index.js.map +1 -1
  278. package/build-module/components/template-part-converter/convert-to-template-part.js +0 -1
  279. package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
  280. package/build-module/components/welcome-guide/template.js +2 -2
  281. package/build-module/components/welcome-guide/template.js.map +1 -1
  282. package/build-module/hooks/commands/use-edit-mode-commands.js +16 -6
  283. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  284. package/build-module/store/actions.js +7 -2
  285. package/build-module/store/actions.js.map +1 -1
  286. package/build-style/style-rtl.css +398 -224
  287. package/build-style/style.css +398 -224
  288. package/package.json +42 -42
  289. package/src/components/add-new-template/style.scss +0 -12
  290. package/src/components/block-editor/site-editor-canvas.js +23 -15
  291. package/src/components/block-editor/style.scss +2 -20
  292. package/src/components/block-editor/use-navigate-to-entity-record.js +25 -0
  293. package/src/components/block-editor/use-site-editor-settings.js +35 -4
  294. package/src/components/editor/index.js +11 -10
  295. package/src/components/global-styles/font-families.js +13 -4
  296. package/src/components/global-styles/font-library-modal/collection-font-variant.js +10 -8
  297. package/src/components/global-styles/font-library-modal/context.js +14 -0
  298. package/src/components/global-styles/font-library-modal/font-card.js +10 -4
  299. package/src/components/global-styles/font-library-modal/font-collection.js +25 -47
  300. package/src/components/global-styles/font-library-modal/font-demo.js +9 -10
  301. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +2 -2
  302. package/src/components/global-styles/font-library-modal/index.js +8 -3
  303. package/src/components/global-styles/font-library-modal/installed-fonts.js +20 -34
  304. package/src/components/global-styles/font-library-modal/library-font-card.js +1 -1
  305. package/src/components/global-styles/font-library-modal/library-font-variant.js +12 -10
  306. package/src/components/global-styles/font-library-modal/resolvers.js +1 -1
  307. package/src/components/global-styles/font-library-modal/style.scss +13 -27
  308. package/src/components/global-styles/font-library-modal/tab-panel-layout.js +17 -0
  309. package/src/components/global-styles/font-library-modal/upload-fonts.js +192 -6
  310. package/src/components/global-styles/font-library-modal/utils/index.js +46 -39
  311. package/src/components/global-styles/screen-block.js +0 -12
  312. package/src/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  313. package/src/components/global-styles/screen-revisions/style.scss +21 -15
  314. package/src/components/global-styles/screen-typography-element.js +2 -4
  315. package/src/components/global-styles/style.scss +4 -0
  316. package/src/components/header-edit-mode/more-menu/index.js +10 -18
  317. package/src/components/header-edit-mode/style.scss +54 -6
  318. package/src/components/layout/style.scss +2 -7
  319. package/src/components/page/style.scss +0 -1
  320. package/src/components/page-pages/index.js +32 -23
  321. package/src/components/page-pages/style.scss +28 -27
  322. package/src/components/page-patterns/dataviews-pattern-actions.js +106 -30
  323. package/src/components/page-patterns/grid-item.js +0 -2
  324. package/src/components/page-patterns/index.js +1 -0
  325. package/src/components/page-patterns/style.scss +4 -9
  326. package/src/components/page-templates-template-parts/index.js +23 -16
  327. package/src/components/page-templates-template-parts/style.scss +16 -0
  328. package/src/components/routes/link.js +3 -12
  329. package/src/components/sidebar-dataviews/default-views.js +3 -3
  330. package/src/components/sidebar-edit-mode/index.js +122 -29
  331. package/src/components/sidebar-edit-mode/settings-header/index.js +28 -88
  332. package/src/components/sidebar-edit-mode/settings-header/style.scss +0 -87
  333. package/src/components/sidebar-edit-mode/sidebar-card/style.scss +3 -0
  334. package/src/components/sidebar-edit-mode/style.scss +4 -0
  335. package/src/components/sidebar-navigation-screen/style.scss +2 -1
  336. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +9 -3
  337. package/src/components/site-hub/style.scss +0 -1
  338. package/src/components/site-icon/index.js +1 -1
  339. package/src/components/site-icon/style.scss +9 -1
  340. package/src/components/welcome-guide/template.js +2 -2
  341. package/src/hooks/commands/use-edit-mode-commands.js +26 -14
  342. package/src/store/actions.js +20 -3
  343. package/build/components/block-editor/back-button.js +0 -47
  344. package/build/components/block-editor/back-button.js.map +0 -1
  345. package/build/components/block-editor/use-post-link-props.js +0 -27
  346. package/build/components/block-editor/use-post-link-props.js.map +0 -1
  347. package/build/components/global-styles/font-library-modal/font-variant.js +0 -51
  348. package/build/components/global-styles/font-library-modal/font-variant.js.map +0 -1
  349. package/build/components/global-styles/font-library-modal/local-fonts.js +0 -196
  350. package/build/components/global-styles/font-library-modal/local-fonts.js.map +0 -1
  351. package/build-module/components/block-editor/back-button.js +0 -39
  352. package/build-module/components/block-editor/back-button.js.map +0 -1
  353. package/build-module/components/block-editor/use-post-link-props.js +0 -20
  354. package/build-module/components/block-editor/use-post-link-props.js.map +0 -1
  355. package/build-module/components/global-styles/font-library-modal/font-variant.js +0 -42
  356. package/build-module/components/global-styles/font-library-modal/font-variant.js.map +0 -1
  357. package/build-module/components/global-styles/font-library-modal/local-fonts.js +0 -187
  358. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +0 -1
  359. package/src/components/block-editor/back-button.js +0 -48
  360. package/src/components/block-editor/use-post-link-props.js +0 -20
  361. package/src/components/global-styles/font-library-modal/font-variant.js +0 -53
  362. package/src/components/global-styles/font-library-modal/local-fonts.js +0 -239
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/edit-site",
3
- "version": "5.27.1",
3
+ "version": "5.28.0",
4
4
  "description": "Edit Site Page module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -27,46 +27,46 @@
27
27
  "react-native": "src/index",
28
28
  "dependencies": {
29
29
  "@babel/runtime": "^7.16.0",
30
- "@wordpress/a11y": "^3.50.0",
31
- "@wordpress/api-fetch": "^6.47.0",
32
- "@wordpress/blob": "^3.50.0",
33
- "@wordpress/block-editor": "^12.18.1",
34
- "@wordpress/block-library": "^8.27.1",
35
- "@wordpress/blocks": "^12.27.1",
36
- "@wordpress/commands": "^0.21.0",
37
- "@wordpress/components": "^25.16.0",
38
- "@wordpress/compose": "^6.27.0",
39
- "@wordpress/core-commands": "^0.19.1",
40
- "@wordpress/core-data": "^6.27.1",
41
- "@wordpress/data": "^9.20.0",
42
- "@wordpress/dataviews": "^0.4.0",
43
- "@wordpress/date": "^4.50.0",
44
- "@wordpress/deprecated": "^3.50.0",
45
- "@wordpress/dom": "^3.50.0",
46
- "@wordpress/editor": "^13.27.1",
47
- "@wordpress/element": "^5.27.0",
48
- "@wordpress/escape-html": "^2.50.0",
49
- "@wordpress/hooks": "^3.50.0",
50
- "@wordpress/html-entities": "^3.50.0",
51
- "@wordpress/i18n": "^4.50.0",
52
- "@wordpress/icons": "^9.41.0",
53
- "@wordpress/interface": "^5.27.0",
54
- "@wordpress/keyboard-shortcuts": "^4.27.0",
55
- "@wordpress/keycodes": "^3.50.0",
56
- "@wordpress/media-utils": "^4.41.0",
57
- "@wordpress/notices": "^4.18.0",
58
- "@wordpress/patterns": "^1.11.1",
59
- "@wordpress/plugins": "^6.18.0",
60
- "@wordpress/preferences": "^3.27.0",
61
- "@wordpress/primitives": "^3.48.0",
62
- "@wordpress/private-apis": "^0.32.0",
63
- "@wordpress/reusable-blocks": "^4.27.1",
64
- "@wordpress/router": "^0.19.0",
65
- "@wordpress/style-engine": "^1.33.1",
66
- "@wordpress/url": "^3.51.0",
67
- "@wordpress/viewport": "^5.27.0",
68
- "@wordpress/widgets": "^3.27.1",
69
- "@wordpress/wordcount": "^3.50.0",
30
+ "@wordpress/a11y": "^3.51.0",
31
+ "@wordpress/api-fetch": "^6.48.0",
32
+ "@wordpress/blob": "^3.51.0",
33
+ "@wordpress/block-editor": "^12.19.0",
34
+ "@wordpress/block-library": "^8.28.0",
35
+ "@wordpress/blocks": "^12.28.0",
36
+ "@wordpress/commands": "^0.22.0",
37
+ "@wordpress/components": "^26.0.0",
38
+ "@wordpress/compose": "^6.28.0",
39
+ "@wordpress/core-commands": "^0.20.0",
40
+ "@wordpress/core-data": "^6.28.0",
41
+ "@wordpress/data": "^9.21.0",
42
+ "@wordpress/dataviews": "^0.5.0",
43
+ "@wordpress/date": "^4.51.0",
44
+ "@wordpress/deprecated": "^3.51.0",
45
+ "@wordpress/dom": "^3.51.0",
46
+ "@wordpress/editor": "^13.28.0",
47
+ "@wordpress/element": "^5.28.0",
48
+ "@wordpress/escape-html": "^2.51.0",
49
+ "@wordpress/hooks": "^3.51.0",
50
+ "@wordpress/html-entities": "^3.51.0",
51
+ "@wordpress/i18n": "^4.51.0",
52
+ "@wordpress/icons": "^9.42.0",
53
+ "@wordpress/interface": "^5.28.0",
54
+ "@wordpress/keyboard-shortcuts": "^4.28.0",
55
+ "@wordpress/keycodes": "^3.51.0",
56
+ "@wordpress/media-utils": "^4.42.0",
57
+ "@wordpress/notices": "^4.19.0",
58
+ "@wordpress/patterns": "^1.12.0",
59
+ "@wordpress/plugins": "^6.19.0",
60
+ "@wordpress/preferences": "^3.28.0",
61
+ "@wordpress/primitives": "^3.49.0",
62
+ "@wordpress/private-apis": "^0.33.0",
63
+ "@wordpress/reusable-blocks": "^4.28.0",
64
+ "@wordpress/router": "^0.20.0",
65
+ "@wordpress/style-engine": "^1.34.0",
66
+ "@wordpress/url": "^3.52.0",
67
+ "@wordpress/viewport": "^5.28.0",
68
+ "@wordpress/widgets": "^3.28.0",
69
+ "@wordpress/wordcount": "^3.51.0",
70
70
  "change-case": "^4.1.2",
71
71
  "classnames": "^2.3.1",
72
72
  "colord": "^2.9.2",
@@ -85,5 +85,5 @@
85
85
  "publishConfig": {
86
86
  "access": "public"
87
87
  },
88
- "gitHead": "c2f6d07ffab7d68b9ac3c423ce7e11af91f6e45e"
88
+ "gitHead": "eb796371e9630636a4a8837033807b0c4a06ed67"
89
89
  }
@@ -21,18 +21,6 @@
21
21
  }
22
22
  }
23
23
 
24
- .components-search-control {
25
- input[type="search"].components-search-control__input {
26
- background: $white;
27
- border: 1px solid $gray-300;
28
-
29
- &:focus {
30
- border-color: var(--wp-admin-theme-color);
31
- box-shadow: 0 0 0 1px var(--wp-admin-theme-color);
32
- }
33
- }
34
- }
35
-
36
24
  @include break-medium() {
37
25
  width: 456px;
38
26
  }
@@ -11,7 +11,6 @@ import { useViewportMatch, useResizeObserver } from '@wordpress/compose';
11
11
  /**
12
12
  * Internal dependencies
13
13
  */
14
- import BackButton from './back-button';
15
14
  import ResizableEditor from './resizable-editor';
16
15
  import EditorCanvas from './editor-canvas';
17
16
  import EditorCanvasContainer from '../editor-canvas-container';
@@ -20,24 +19,32 @@ import { store as editSiteStore } from '../../store';
20
19
  import {
21
20
  FOCUSABLE_ENTITIES,
22
21
  NAVIGATION_POST_TYPE,
22
+ TEMPLATE_POST_TYPE,
23
23
  } from '../../utils/constants';
24
24
  import { unlock } from '../../lock-unlock';
25
+ import { privateApis as routerPrivateApis } from '@wordpress/router';
25
26
 
26
- export default function SiteEditorCanvas() {
27
- const { templateType, isFocusMode, isViewMode } = useSelect( ( select ) => {
28
- const { getEditedPostType, getCanvasMode } = unlock(
29
- select( editSiteStore )
30
- );
27
+ const { useLocation } = unlock( routerPrivateApis );
31
28
 
32
- const _templateType = getEditedPostType();
29
+ export default function SiteEditorCanvas() {
30
+ const location = useLocation();
31
+ const { templateType, isFocusableEntity, isViewMode } = useSelect(
32
+ ( select ) => {
33
+ const { getEditedPostType, getCanvasMode } = unlock(
34
+ select( editSiteStore )
35
+ );
33
36
 
34
- return {
35
- templateType: _templateType,
36
- isFocusMode: FOCUSABLE_ENTITIES.includes( _templateType ),
37
- isViewMode: getCanvasMode() === 'view',
38
- };
39
- }, [] );
37
+ const _templateType = getEditedPostType();
40
38
 
39
+ return {
40
+ templateType: _templateType,
41
+ isFocusableEntity: FOCUSABLE_ENTITIES.includes( _templateType ),
42
+ isViewMode: getCanvasMode() === 'view',
43
+ };
44
+ },
45
+ []
46
+ );
47
+ const isFocusMode = location.params.focusMode || isFocusableEntity;
41
48
  const [ resizeObserver, sizes ] = useResizeObserver();
42
49
 
43
50
  const settings = useSiteEditorSettings();
@@ -47,7 +54,9 @@ export default function SiteEditorCanvas() {
47
54
  isFocusMode &&
48
55
  ! isViewMode &&
49
56
  // Disable resizing in mobile viewport.
50
- ! isMobileViewport;
57
+ ! isMobileViewport &&
58
+ // Disable resizing when editing a template in focus mode.
59
+ templateType !== TEMPLATE_POST_TYPE;
51
60
 
52
61
  const isTemplateTypeNavigation = templateType === NAVIGATION_POST_TYPE;
53
62
  const isNavigationFocusMode = isTemplateTypeNavigation && isFocusMode;
@@ -67,7 +76,6 @@ export default function SiteEditorCanvas() {
67
76
  'is-view-mode': isViewMode,
68
77
  } ) }
69
78
  >
70
- <BackButton />
71
79
  <ResizableEditor
72
80
  enableResizing={ enableResizing }
73
81
  height={
@@ -23,7 +23,7 @@
23
23
  height: 100%;
24
24
  display: block;
25
25
  overflow: hidden;
26
- background-color: $gray-900;
26
+ background-color: $gray-300;
27
27
  // Centralize the editor horizontally (flex-direction is column).
28
28
  align-items: center;
29
29
 
@@ -45,7 +45,7 @@
45
45
 
46
46
  &.is-focus-mode {
47
47
  .edit-site-layout.is-full-canvas & {
48
- padding: $grid-unit-60;
48
+ padding: $grid-unit-30;
49
49
  }
50
50
 
51
51
  .edit-site-visual-editor__editor-canvas {
@@ -71,24 +71,6 @@
71
71
  }
72
72
  }
73
73
 
74
- .edit-site-visual-editor__back-button {
75
- position: absolute;
76
- top: $grid-unit-10;
77
- left: $grid-unit-10;
78
- color: $white;
79
-
80
- &:active:not([aria-disabled="true"]),
81
- &:focus:not([aria-disabled="true"]),
82
- &:hover {
83
- color: $gray-100;
84
- }
85
- }
86
-
87
- // The toolbar header in distraction mode sits over the back button, which renders it unreachable.
88
- .is-distraction-free .edit-site-visual-editor__back-button {
89
- display: none;
90
- }
91
-
92
74
  .resizable-editor__drag-handle {
93
75
  position: absolute;
94
76
  top: 0;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { privateApis as routerPrivateApis } from '@wordpress/router';
5
+ import { useCallback } from '@wordpress/element';
6
+
7
+ /**
8
+ * Internal dependencies
9
+ */
10
+ import { unlock } from '../../lock-unlock';
11
+
12
+ const { useHistory } = unlock( routerPrivateApis );
13
+
14
+ export default function useNavigateToEntityRecord() {
15
+ const history = useHistory();
16
+
17
+ const onNavigateToEntityRecord = useCallback(
18
+ ( params ) => {
19
+ history.push( { ...params, focusMode: true, canvas: 'edit' } );
20
+ },
21
+ [ history ]
22
+ );
23
+
24
+ return onNavigateToEntityRecord;
25
+ }
@@ -5,15 +5,19 @@ import { useSelect } from '@wordpress/data';
5
5
  import { useMemo } from '@wordpress/element';
6
6
  import { store as coreStore } from '@wordpress/core-data';
7
7
  import { privateApis as editorPrivateApis } from '@wordpress/editor';
8
+ import { privateApis as routerPrivateApis } from '@wordpress/router';
9
+ import { usePrevious } from '@wordpress/compose';
8
10
 
9
11
  /**
10
12
  * Internal dependencies
11
13
  */
12
14
  import { store as editSiteStore } from '../../store';
13
15
  import { unlock } from '../../lock-unlock';
14
- import { usePostLinkProps } from './use-post-link-props';
16
+ import useNavigateToEntityRecord from './use-navigate-to-entity-record';
17
+ import { FOCUSABLE_ENTITIES } from '../../utils/constants';
15
18
 
16
19
  const { useBlockEditorSettings } = unlock( editorPrivateApis );
20
+ const { useLocation, useHistory } = unlock( routerPrivateApis );
17
21
 
18
22
  function useArchiveLabel( templateSlug ) {
19
23
  const taxonomyMatches = templateSlug?.match(
@@ -87,8 +91,31 @@ function useArchiveLabel( templateSlug ) {
87
91
  );
88
92
  }
89
93
 
94
+ function useNavigateToPreviousEntityRecord() {
95
+ const location = useLocation();
96
+ const previousLocation = usePrevious( location );
97
+ const history = useHistory();
98
+ const goBack = useMemo( () => {
99
+ const isFocusMode =
100
+ location.params.focusMode ||
101
+ ( location.params.postId &&
102
+ FOCUSABLE_ENTITIES.includes( location.params.postType ) );
103
+ const didComeFromEditorCanvas =
104
+ previousLocation?.params.postId &&
105
+ previousLocation?.params.postType &&
106
+ previousLocation?.params.canvas === 'edit';
107
+ const showBackButton = isFocusMode && didComeFromEditorCanvas;
108
+ return showBackButton ? () => history.back() : undefined;
109
+ // Disable reason: previousLocation changes when the component updates for any reason, not
110
+ // just when location changes. Until this is fixed we can't add it to deps. See
111
+ // https://github.com/WordPress/gutenberg/pull/58710#discussion_r1479219465.
112
+ // eslint-disable-next-line react-hooks/exhaustive-deps
113
+ }, [ location, history ] );
114
+ return goBack;
115
+ }
116
+
90
117
  export function useSpecificEditorSettings() {
91
- const getPostLinkProps = usePostLinkProps();
118
+ const onNavigateToEntityRecord = useNavigateToEntityRecord();
92
119
  const { templateSlug, canvasMode, settings, postWithTemplate } = useSelect(
93
120
  ( select ) => {
94
121
  const {
@@ -118,6 +145,8 @@ export function useSpecificEditorSettings() {
118
145
  );
119
146
  const archiveLabels = useArchiveLabel( templateSlug );
120
147
  const defaultRenderingMode = postWithTemplate ? 'template-locked' : 'all';
148
+ const onNavigateToPreviousEntityRecord =
149
+ useNavigateToPreviousEntityRecord();
121
150
  const defaultEditorSettings = useMemo( () => {
122
151
  return {
123
152
  ...settings,
@@ -126,7 +155,8 @@ export function useSpecificEditorSettings() {
126
155
  supportsTemplateMode: true,
127
156
  focusMode: canvasMode !== 'view',
128
157
  defaultRenderingMode,
129
- getPostLinkProps,
158
+ onNavigateToEntityRecord,
159
+ onNavigateToPreviousEntityRecord,
130
160
  // I wonder if they should be set in the post editor too
131
161
  __experimentalArchiveTitleTypeLabel: archiveLabels.archiveTypeLabel,
132
162
  __experimentalArchiveTitleNameLabel: archiveLabels.archiveNameLabel,
@@ -135,7 +165,8 @@ export function useSpecificEditorSettings() {
135
165
  settings,
136
166
  canvasMode,
137
167
  defaultRenderingMode,
138
- getPostLinkProps,
168
+ onNavigateToEntityRecord,
169
+ onNavigateToPreviousEntityRecord,
139
170
  archiveLabels.archiveTypeLabel,
140
171
  archiveLabels.archiveNameLabel,
141
172
  ] );
@@ -84,6 +84,9 @@ const blockRemovalRules = {
84
84
  'core/post-template': __(
85
85
  'Post Template displays each post or page in a Query Loop.'
86
86
  ),
87
+ 'bindings/core/pattern-overrides': __(
88
+ 'Blocks from synced patterns that can have overriden content.'
89
+ ),
87
90
  };
88
91
 
89
92
  export default function Editor( { isLoading } ) {
@@ -102,13 +105,14 @@ export default function Editor( { isLoading } ) {
102
105
  contextPost,
103
106
  editorMode,
104
107
  canvasMode,
105
- renderingMode,
106
108
  blockEditorMode,
107
109
  isRightSidebarOpen,
108
110
  isInserterOpen,
109
111
  isListViewOpen,
112
+ isDistractionFree,
110
113
  showIconLabels,
111
114
  showBlockBreadcrumbs,
115
+ postTypeLabel,
112
116
  } = useSelect( ( select ) => {
113
117
  const { get } = select( preferencesStore );
114
118
  const { getEditedPostContext, getEditorMode, getCanvasMode } = unlock(
@@ -117,7 +121,7 @@ export default function Editor( { isLoading } ) {
117
121
  const { __unstableGetEditorMode } = select( blockEditorStore );
118
122
  const { getActiveComplementaryArea } = select( interfaceStore );
119
123
  const { getEntityRecord } = select( coreDataStore );
120
- const { getRenderingMode, isInserterOpened, isListViewOpened } =
124
+ const { isInserterOpened, isListViewOpened, getPostTypeLabel } =
121
125
  select( editorStore );
122
126
  const _context = getEditedPostContext();
123
127
 
@@ -134,15 +138,16 @@ export default function Editor( { isLoading } ) {
134
138
  : undefined,
135
139
  editorMode: getEditorMode(),
136
140
  canvasMode: getCanvasMode(),
137
- renderingMode: getRenderingMode(),
138
141
  blockEditorMode: __unstableGetEditorMode(),
139
142
  isInserterOpen: isInserterOpened(),
140
143
  isListViewOpen: isListViewOpened(),
141
144
  isRightSidebarOpen: getActiveComplementaryArea(
142
145
  editSiteStore.name
143
146
  ),
147
+ isDistractionFree: get( 'core', 'distractionFree' ),
144
148
  showBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),
145
149
  showIconLabels: get( 'core', 'showIconLabels' ),
150
+ postTypeLabel: getPostTypeLabel(),
146
151
  };
147
152
  }, [] );
148
153
 
@@ -150,6 +155,7 @@ export default function Editor( { isLoading } ) {
150
155
  const isEditMode = canvasMode === 'edit';
151
156
  const showVisualEditor = isViewMode || editorMode === 'visual';
152
157
  const shouldShowBlockBreadcrumbs =
158
+ ! isDistractionFree &&
153
159
  showBlockBreadcrumbs &&
154
160
  isEditMode &&
155
161
  showVisualEditor &&
@@ -210,7 +216,7 @@ export default function Editor( { isLoading } ) {
210
216
  <SidebarComplementaryAreaFills />
211
217
  { isEditMode && <StartTemplateOptions /> }
212
218
  <InterfaceSkeleton
213
- isDistractionFree={ true }
219
+ isDistractionFree={ isDistractionFree }
214
220
  enableRegionNavigation={ false }
215
221
  className={ classnames(
216
222
  'edit-site-editor__interface-skeleton',
@@ -267,12 +273,7 @@ export default function Editor( { isLoading } ) {
267
273
  footer={
268
274
  shouldShowBlockBreadcrumbs && (
269
275
  <BlockBreadcrumb
270
- rootLabelText={
271
- postWithTemplate &&
272
- renderingMode !== 'template-only'
273
- ? __( 'Page' )
274
- : __( 'Template' )
275
- }
276
+ rootLabelText={ postTypeLabel }
276
277
  />
277
278
  )
278
279
  }
@@ -9,7 +9,7 @@ import {
9
9
  Button,
10
10
  Tooltip,
11
11
  } from '@wordpress/components';
12
- import { typography } from '@wordpress/icons';
12
+ import { settings } from '@wordpress/icons';
13
13
  import { useContext } from '@wordpress/element';
14
14
 
15
15
  /**
@@ -33,7 +33,7 @@ function FontFamilies() {
33
33
  { !! modalTabOpen && (
34
34
  <FontLibraryModal
35
35
  onRequestClose={ () => toggleModal() }
36
- initialTabName={ modalTabOpen }
36
+ initialTabId={ modalTabOpen }
37
37
  />
38
38
  ) }
39
39
 
@@ -47,7 +47,7 @@ function FontFamilies() {
47
47
  toggleModal( 'installed-fonts' )
48
48
  }
49
49
  aria-label={ __( 'Manage fonts' ) }
50
- icon={ typography }
50
+ icon={ settings }
51
51
  size={ 'small' }
52
52
  />
53
53
  </Tooltip>
@@ -63,7 +63,16 @@ function FontFamilies() {
63
63
  ) ) }
64
64
  </ItemGroup>
65
65
  ) : (
66
- <>{ __( 'No fonts installed.' ) }</>
66
+ <>
67
+ { __( 'No fonts installed.' ) }
68
+ <Button
69
+ className="edit-site-global-styles-font-families__add-fonts"
70
+ variant="secondary"
71
+ onClick={ () => toggleModal( 'upload-fonts' ) }
72
+ >
73
+ { __( 'Add fonts' ) }
74
+ </Button>
75
+ </>
67
76
  ) }
68
77
  </VStack>
69
78
  </>
@@ -35,21 +35,23 @@ function CollectionFontVariant( {
35
35
  );
36
36
 
37
37
  return (
38
- <label
39
- className="font-library-modal__library-font-variant"
40
- htmlFor={ checkboxId }
41
- >
42
- <Flex justify="space-between" align="center" gap="1rem">
43
- <FontFaceDemo fontFace={ face } text={ displayName } />
38
+ <div className="font-library-modal__library-font-variant">
39
+ <Flex justify="flex-start" align="center" gap="1rem">
44
40
  <CheckboxControl
45
41
  checked={ selected }
46
42
  onChange={ handleToggleActivation }
47
43
  __nextHasNoMarginBottom={ true }
48
44
  id={ checkboxId }
49
- label={ false }
50
45
  />
46
+ <label htmlFor={ checkboxId }>
47
+ <FontFaceDemo
48
+ fontFace={ face }
49
+ text={ displayName }
50
+ onClick={ handleToggleActivation }
51
+ />
52
+ </label>
51
53
  </Flex>
52
- </label>
54
+ </div>
53
55
  );
54
56
  }
55
57
 
@@ -55,11 +55,21 @@ function FontLibraryProvider( { children } ) {
55
55
 
56
56
  const [ isInstalling, setIsInstalling ] = useState( false );
57
57
  const [ refreshKey, setRefreshKey ] = useState( 0 );
58
+ const [ notice, setNotice ] = useState( null );
58
59
 
59
60
  const refreshLibrary = () => {
60
61
  setRefreshKey( Date.now() );
61
62
  };
62
63
 
64
+ // Reset notice on dismiss.
65
+ useEffect( () => {
66
+ if ( notice ) {
67
+ notice.onRemove = () => {
68
+ setNotice( null );
69
+ };
70
+ }
71
+ }, [ notice, setNotice ] );
72
+
63
73
  const {
64
74
  records: libraryPosts = [],
65
75
  isResolving: isResolvingLibrary,
@@ -134,6 +144,8 @@ function FontLibraryProvider( { children } ) {
134
144
  }, [ modalTabOpen ] );
135
145
 
136
146
  const handleSetLibraryFontSelected = ( font ) => {
147
+ setNotice( null );
148
+
137
149
  // If font is null, reset the selected font
138
150
  if ( ! font ) {
139
151
  setLibraryFontSelected( null );
@@ -471,6 +483,8 @@ function FontLibraryProvider( { children } ) {
471
483
  modalTabOpen,
472
484
  toggleModal,
473
485
  refreshLibrary,
486
+ notice,
487
+ setNotice,
474
488
  saveFontFamilies,
475
489
  fontFamiliesHasChanges,
476
490
  isResolvingLibrary,
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { _n } from '@wordpress/i18n';
4
+ import { _n, sprintf } from '@wordpress/i18n';
5
5
  import {
6
6
  __experimentalText as Text,
7
7
  Button,
@@ -58,9 +58,15 @@ function FontCard( { font, onClick, variantsText } ) {
58
58
  <FlexItem>
59
59
  <Text className="font-library-modal__font-card__count">
60
60
  { variantsText ||
61
- variantsCount +
62
- ' ' +
63
- _n( 'variant', 'variants', variantsCount ) }
61
+ sprintf(
62
+ /* translators: %d: Number of font variants. */
63
+ _n(
64
+ '%d variant',
65
+ '%d variants',
66
+ variantsCount
67
+ ),
68
+ variantsCount
69
+ ) }
64
70
  </Text>
65
71
  </FlexItem>
66
72
  <FlexItem>