@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":["_apiFetch","_interopRequireDefault","require","fetchInstallFonts","data","config","path","method","body","apiFetch","fetchUninstallFonts","fonts","fontFamilies"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/resolvers.js"],"sourcesContent":["/**\n * WordPress dependencies\n *\n */\n/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\n\nexport async function fetchInstallFonts( data ) {\n\tconst config = {\n\t\tpath: '/wp/v2/fonts',\n\t\tmethod: 'POST',\n\t\tbody: data,\n\t};\n\treturn apiFetch( config );\n}\n\nexport async function fetchUninstallFonts( fonts ) {\n\tconst data = {\n\t\tfontFamilies: fonts,\n\t};\n\tconst config = {\n\t\tpath: '/wp/v2/fonts',\n\t\tmethod: 'DELETE',\n\t\tdata,\n\t};\n\treturn apiFetch( config );\n}\n"],"mappings":";;;;;;;;AAOA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AAPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGO,eAAeC,iBAAiBA,CAAEC,IAAI,EAAG;EAC/C,MAAMC,MAAM,GAAG;IACdC,IAAI,EAAE,cAAc;IACpBC,MAAM,EAAE,MAAM;IACdC,IAAI,EAAEJ;EACP,CAAC;EACD,OAAO,IAAAK,iBAAQ,EAAEJ,MAAO,CAAC;AAC1B;AAEO,eAAeK,mBAAmBA,CAAEC,KAAK,EAAG;EAClD,MAAMP,IAAI,GAAG;IACZQ,YAAY,EAAED;EACf,CAAC;EACD,MAAMN,MAAM,GAAG;IACdC,IAAI,EAAE,cAAc;IACpBC,MAAM,EAAE,QAAQ;IAChBH;EACD,CAAC;EACD,OAAO,IAAAK,iBAAQ,EAAEJ,MAAO,CAAC;AAC1B"}
1
+ {"version":3,"names":["_apiFetch","_interopRequireDefault","require","fetchInstallFonts","data","config","path","method","body","apiFetch","fetchUninstallFonts","fonts","fontFamilies","fetchFontCollections","fetchFontCollection","id"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/resolvers.js"],"sourcesContent":["/**\n * WordPress dependencies\n *\n */\n/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\n\nexport async function fetchInstallFonts( data ) {\n\tconst config = {\n\t\tpath: '/wp/v2/fonts',\n\t\tmethod: 'POST',\n\t\tbody: data,\n\t};\n\treturn apiFetch( config );\n}\n\nexport async function fetchUninstallFonts( fonts ) {\n\tconst data = {\n\t\tfontFamilies: fonts,\n\t};\n\tconst config = {\n\t\tpath: '/wp/v2/fonts',\n\t\tmethod: 'DELETE',\n\t\tdata,\n\t};\n\treturn apiFetch( config );\n}\n\nexport async function fetchFontCollections() {\n\tconst config = {\n\t\tpath: '/wp/v2/fonts/collections',\n\t\tmethod: 'GET',\n\t};\n\treturn apiFetch( config );\n}\n\nexport async function fetchFontCollection( id ) {\n\tconst config = {\n\t\tpath: `/wp/v2/fonts/collections/${ id }`,\n\t\tmethod: 'GET',\n\t};\n\treturn apiFetch( config );\n}\n"],"mappings":";;;;;;;;;;AAOA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AAPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGO,eAAeC,iBAAiBA,CAAEC,IAAI,EAAG;EAC/C,MAAMC,MAAM,GAAG;IACdC,IAAI,EAAE,cAAc;IACpBC,MAAM,EAAE,MAAM;IACdC,IAAI,EAAEJ;EACP,CAAC;EACD,OAAO,IAAAK,iBAAQ,EAAEJ,MAAO,CAAC;AAC1B;AAEO,eAAeK,mBAAmBA,CAAEC,KAAK,EAAG;EAClD,MAAMP,IAAI,GAAG;IACZQ,YAAY,EAAED;EACf,CAAC;EACD,MAAMN,MAAM,GAAG;IACdC,IAAI,EAAE,cAAc;IACpBC,MAAM,EAAE,QAAQ;IAChBH;EACD,CAAC;EACD,OAAO,IAAAK,iBAAQ,EAAEJ,MAAO,CAAC;AAC1B;AAEO,eAAeQ,oBAAoBA,CAAA,EAAG;EAC5C,MAAMR,MAAM,GAAG;IACdC,IAAI,EAAE,0BAA0B;IAChCC,MAAM,EAAE;EACT,CAAC;EACD,OAAO,IAAAE,iBAAQ,EAAEJ,MAAO,CAAC;AAC1B;AAEO,eAAeS,mBAAmBA,CAAEC,EAAE,EAAG;EAC/C,MAAMV,MAAM,GAAG;IACdC,IAAI,EAAG,4BAA4BS,EAAI,EAAC;IACxCR,MAAM,EAAE;EACT,CAAC;EACD,OAAO,IAAAE,iBAAQ,EAAEJ,MAAO,CAAC;AAC1B"}
@@ -33,12 +33,12 @@ function TabLayout({
33
33
  variant: "tertiary",
34
34
  onClick: handleBack,
35
35
  icon: _icons.chevronLeft,
36
- isSmall: true
36
+ size: "small"
37
37
  }), title && (0, _element.createElement)(_components.__experimentalHeading, {
38
38
  level: 2,
39
39
  size: 13,
40
40
  className: "edit-site-global-styles-header"
41
- }, title)), description && (0, _element.createElement)(_components.__experimentalText, null, description))), (0, _element.createElement)("main", null, children), (0, _element.createElement)("footer", null, footer)));
41
+ }, title)), description && (0, _element.createElement)(_components.__experimentalText, null, description))), (0, _element.createElement)("main", null, children), footer && (0, _element.createElement)("footer", null, footer)));
42
42
  }
43
43
  var _default = TabLayout;
44
44
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_icons","TabLayout","title","description","handleBack","children","footer","_element","createElement","className","__experimentalSpacer","margin","__experimentalVStack","spacing","justify","__experimentalHStack","Button","variant","onClick","icon","chevronLeft","isSmall","__experimentalHeading","level","size","__experimentalText","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/tab-layout.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalText as Text,\n\t__experimentalHeading as Heading,\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalHStack as HStack,\n\tButton,\n} from '@wordpress/components';\nimport { chevronLeft } from '@wordpress/icons';\n\nfunction TabLayout( { title, description, handleBack, children, footer } ) {\n\treturn (\n\t\t<div className=\"font-library-modal__tab-layout\">\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t<VStack spacing={ 4 } justify=\"space-between\">\n\t\t\t\t<header>\n\t\t\t\t\t<VStack spacing={ 2 }>\n\t\t\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t\t\t{ !! handleBack && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ handleBack }\n\t\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\t\tisSmall\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{ title && (\n\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t{ description && <Text>{ description }</Text> }\n\t\t\t\t\t</VStack>\n\t\t\t\t</header>\n\t\t\t\t<main>{ children }</main>\n\t\t\t\t<footer>{ footer }</footer>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default TabLayout;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAQA,IAAAC,MAAA,GAAAD,OAAA;AAXA;AACA;AACA;;AAWA,SAASE,SAASA,CAAE;EAAEC,KAAK;EAAEC,WAAW;EAAEC,UAAU;EAAEC,QAAQ;EAAEC;AAAO,CAAC,EAAG;EAC1E,OACC,IAAAC,QAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAAgC,GAC9C,IAAAF,QAAA,CAAAC,aAAA,EAACV,WAAA,CAAAY,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAAJ,QAAA,CAAAC,aAAA,EAACV,WAAA,CAAAc,oBAAM;IAACC,OAAO,EAAG,CAAG;IAACC,OAAO,EAAC;EAAe,GAC5C,IAAAP,QAAA,CAAAC,aAAA,kBACC,IAAAD,QAAA,CAAAC,aAAA,EAACV,WAAA,CAAAc,oBAAM;IAACC,OAAO,EAAG;EAAG,GACpB,IAAAN,QAAA,CAAAC,aAAA,EAACV,WAAA,CAAAiB,oBAAM;IAACD,OAAO,EAAC;EAAY,GACzB,CAAC,CAAEV,UAAU,IACd,IAAAG,QAAA,CAAAC,aAAA,EAACV,WAAA,CAAAkB,MAAM;IACNC,OAAO,EAAC,UAAU;IAClBC,OAAO,EAAGd,UAAY;IACtBe,IAAI,EAAGC,kBAAa;IACpBC,OAAO;EAAA,CACP,CACD,EACCnB,KAAK,IACN,IAAAK,QAAA,CAAAC,aAAA,EAACV,WAAA,CAAAwB,qBAAO;IACPC,KAAK,EAAG,CAAG;IACXC,IAAI,EAAG,EAAI;IACXf,SAAS,EAAC;EAAgC,GAExCP,KACM,CAEH,CAAC,EACPC,WAAW,IAAI,IAAAI,QAAA,CAAAC,aAAA,EAACV,WAAA,CAAA2B,kBAAI,QAAGtB,WAAmB,CACrC,CACD,CAAC,EACT,IAAAI,QAAA,CAAAC,aAAA,gBAAQH,QAAgB,CAAC,EACzB,IAAAE,QAAA,CAAAC,aAAA,kBAAUF,MAAgB,CACnB,CACJ,CAAC;AAER;AAAC,IAAAoB,QAAA,GAEczB,SAAS;AAAA0B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"names":["_components","require","_icons","TabLayout","title","description","handleBack","children","footer","_element","createElement","className","__experimentalSpacer","margin","__experimentalVStack","spacing","justify","__experimentalHStack","Button","variant","onClick","icon","chevronLeft","size","__experimentalHeading","level","__experimentalText","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/tab-layout.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalText as Text,\n\t__experimentalHeading as Heading,\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalHStack as HStack,\n\tButton,\n} from '@wordpress/components';\nimport { chevronLeft } from '@wordpress/icons';\n\nfunction TabLayout( { title, description, handleBack, children, footer } ) {\n\treturn (\n\t\t<div className=\"font-library-modal__tab-layout\">\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t<VStack spacing={ 4 } justify=\"space-between\">\n\t\t\t\t<header>\n\t\t\t\t\t<VStack spacing={ 2 }>\n\t\t\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t\t\t{ !! handleBack && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ handleBack }\n\t\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\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{ title && (\n\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t{ description && <Text>{ description }</Text> }\n\t\t\t\t\t</VStack>\n\t\t\t\t</header>\n\t\t\t\t<main>{ children }</main>\n\t\t\t\t{ footer && <footer>{ footer }</footer> }\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default TabLayout;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAQA,IAAAC,MAAA,GAAAD,OAAA;AAXA;AACA;AACA;;AAWA,SAASE,SAASA,CAAE;EAAEC,KAAK;EAAEC,WAAW;EAAEC,UAAU;EAAEC,QAAQ;EAAEC;AAAO,CAAC,EAAG;EAC1E,OACC,IAAAC,QAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAAgC,GAC9C,IAAAF,QAAA,CAAAC,aAAA,EAACV,WAAA,CAAAY,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAAJ,QAAA,CAAAC,aAAA,EAACV,WAAA,CAAAc,oBAAM;IAACC,OAAO,EAAG,CAAG;IAACC,OAAO,EAAC;EAAe,GAC5C,IAAAP,QAAA,CAAAC,aAAA,kBACC,IAAAD,QAAA,CAAAC,aAAA,EAACV,WAAA,CAAAc,oBAAM;IAACC,OAAO,EAAG;EAAG,GACpB,IAAAN,QAAA,CAAAC,aAAA,EAACV,WAAA,CAAAiB,oBAAM;IAACD,OAAO,EAAC;EAAY,GACzB,CAAC,CAAEV,UAAU,IACd,IAAAG,QAAA,CAAAC,aAAA,EAACV,WAAA,CAAAkB,MAAM;IACNC,OAAO,EAAC,UAAU;IAClBC,OAAO,EAAGd,UAAY;IACtBe,IAAI,EAAGC,kBAAa;IACpBC,IAAI,EAAC;EAAO,CACZ,CACD,EACCnB,KAAK,IACN,IAAAK,QAAA,CAAAC,aAAA,EAACV,WAAA,CAAAwB,qBAAO;IACPC,KAAK,EAAG,CAAG;IACXF,IAAI,EAAG,EAAI;IACXZ,SAAS,EAAC;EAAgC,GAExCP,KACM,CAEH,CAAC,EACPC,WAAW,IAAI,IAAAI,QAAA,CAAAC,aAAA,EAACV,WAAA,CAAA0B,kBAAI,QAAGrB,WAAmB,CACrC,CACD,CAAC,EACT,IAAAI,QAAA,CAAAC,aAAA,gBAAQH,QAAgB,CAAC,EACvBC,MAAM,IAAI,IAAAC,QAAA,CAAAC,aAAA,kBAAUF,MAAgB,CAC/B,CACJ,CAAC;AAER;AAAC,IAAAmB,QAAA,GAEcxB,SAAS;AAAAyB,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -3,18 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.MODAL_TABS = exports.FONT_WEIGHTS = exports.FONT_STYLES = exports.ALLOWED_FILE_EXTENSIONS = void 0;
6
+ exports.FONT_WEIGHTS = exports.FONT_STYLES = exports.ALLOWED_FILE_EXTENSIONS = void 0;
7
7
  var _i18n = require("@wordpress/i18n");
8
8
  /**
9
9
  * WordPress dependencies
10
10
  */
11
11
 
12
- const MODAL_TABS = [{
13
- name: 'installed-fonts',
14
- title: (0, _i18n.__)('Library'),
15
- className: 'installed-fonts'
16
- }];
17
- exports.MODAL_TABS = MODAL_TABS;
18
12
  const ALLOWED_FILE_EXTENSIONS = ['otf', 'ttf', 'woff', 'woff2'];
19
13
  exports.ALLOWED_FILE_EXTENSIONS = ALLOWED_FILE_EXTENSIONS;
20
14
  const FONT_WEIGHTS = {
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","MODAL_TABS","name","title","__","className","exports","ALLOWED_FILE_EXTENSIONS","FONT_WEIGHTS","_x","FONT_STYLES","normal","italic"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/constants.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\n\nexport const MODAL_TABS = [\n\t{\n\t\tname: 'installed-fonts',\n\t\ttitle: __( 'Library' ),\n\t\tclassName: 'installed-fonts',\n\t},\n];\n\nexport const ALLOWED_FILE_EXTENSIONS = [ 'otf', 'ttf', 'woff', 'woff2' ];\n\nexport const FONT_WEIGHTS = {\n\t100: _x( 'Thin', 'font weight' ),\n\t200: _x( 'Extra-light', 'font weight' ),\n\t300: _x( 'Light', 'font weight' ),\n\t400: _x( 'Normal', 'font weight' ),\n\t500: _x( 'Medium', 'font weight' ),\n\t600: _x( 'Semi-bold', 'font weight' ),\n\t700: _x( 'Bold', 'font weight' ),\n\t800: _x( 'Extra-bold', 'font weight' ),\n\t900: _x( 'Black', 'font weight' ),\n};\n\nexport const FONT_STYLES = {\n\tnormal: _x( 'Normal', 'font style' ),\n\titalic: _x( 'Italic', 'font style' ),\n};\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGO,MAAMC,UAAU,GAAG,CACzB;EACCC,IAAI,EAAE,iBAAiB;EACvBC,KAAK,EAAE,IAAAC,QAAE,EAAE,SAAU,CAAC;EACtBC,SAAS,EAAE;AACZ,CAAC,CACD;AAACC,OAAA,CAAAL,UAAA,GAAAA,UAAA;AAEK,MAAMM,uBAAuB,GAAG,CAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAE;AAACD,OAAA,CAAAC,uBAAA,GAAAA,uBAAA;AAElE,MAAMC,YAAY,GAAG;EAC3B,GAAG,EAAE,IAAAC,QAAE,EAAE,MAAM,EAAE,aAAc,CAAC;EAChC,GAAG,EAAE,IAAAA,QAAE,EAAE,aAAa,EAAE,aAAc,CAAC;EACvC,GAAG,EAAE,IAAAA,QAAE,EAAE,OAAO,EAAE,aAAc,CAAC;EACjC,GAAG,EAAE,IAAAA,QAAE,EAAE,QAAQ,EAAE,aAAc,CAAC;EAClC,GAAG,EAAE,IAAAA,QAAE,EAAE,QAAQ,EAAE,aAAc,CAAC;EAClC,GAAG,EAAE,IAAAA,QAAE,EAAE,WAAW,EAAE,aAAc,CAAC;EACrC,GAAG,EAAE,IAAAA,QAAE,EAAE,MAAM,EAAE,aAAc,CAAC;EAChC,GAAG,EAAE,IAAAA,QAAE,EAAE,YAAY,EAAE,aAAc,CAAC;EACtC,GAAG,EAAE,IAAAA,QAAE,EAAE,OAAO,EAAE,aAAc;AACjC,CAAC;AAACH,OAAA,CAAAE,YAAA,GAAAA,YAAA;AAEK,MAAME,WAAW,GAAG;EAC1BC,MAAM,EAAE,IAAAF,QAAE,EAAE,QAAQ,EAAE,YAAa,CAAC;EACpCG,MAAM,EAAE,IAAAH,QAAE,EAAE,QAAQ,EAAE,YAAa;AACpC,CAAC;AAACH,OAAA,CAAAI,WAAA,GAAAA,WAAA"}
1
+ {"version":3,"names":["_i18n","require","ALLOWED_FILE_EXTENSIONS","exports","FONT_WEIGHTS","_x","FONT_STYLES","normal","italic"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/constants.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x } from '@wordpress/i18n';\n\nexport const ALLOWED_FILE_EXTENSIONS = [ 'otf', 'ttf', 'woff', 'woff2' ];\n\nexport const FONT_WEIGHTS = {\n\t100: _x( 'Thin', 'font weight' ),\n\t200: _x( 'Extra-light', 'font weight' ),\n\t300: _x( 'Light', 'font weight' ),\n\t400: _x( 'Normal', 'font weight' ),\n\t500: _x( 'Medium', 'font weight' ),\n\t600: _x( 'Semi-bold', 'font weight' ),\n\t700: _x( 'Bold', 'font weight' ),\n\t800: _x( 'Extra-bold', 'font weight' ),\n\t900: _x( 'Black', 'font weight' ),\n};\n\nexport const FONT_STYLES = {\n\tnormal: _x( 'Normal', 'font style' ),\n\titalic: _x( 'Italic', 'font style' ),\n};\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGO,MAAMC,uBAAuB,GAAG,CAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAE;AAACC,OAAA,CAAAD,uBAAA,GAAAA,uBAAA;AAElE,MAAME,YAAY,GAAG;EAC3B,GAAG,EAAE,IAAAC,QAAE,EAAE,MAAM,EAAE,aAAc,CAAC;EAChC,GAAG,EAAE,IAAAA,QAAE,EAAE,aAAa,EAAE,aAAc,CAAC;EACvC,GAAG,EAAE,IAAAA,QAAE,EAAE,OAAO,EAAE,aAAc,CAAC;EACjC,GAAG,EAAE,IAAAA,QAAE,EAAE,QAAQ,EAAE,aAAc,CAAC;EAClC,GAAG,EAAE,IAAAA,QAAE,EAAE,QAAQ,EAAE,aAAc,CAAC;EAClC,GAAG,EAAE,IAAAA,QAAE,EAAE,WAAW,EAAE,aAAc,CAAC;EACrC,GAAG,EAAE,IAAAA,QAAE,EAAE,MAAM,EAAE,aAAc,CAAC;EAChC,GAAG,EAAE,IAAAA,QAAE,EAAE,YAAY,EAAE,aAAc,CAAC;EACtC,GAAG,EAAE,IAAAA,QAAE,EAAE,OAAO,EAAE,aAAc;AACjC,CAAC;AAACF,OAAA,CAAAC,YAAA,GAAAA,YAAA;AAEK,MAAME,WAAW,GAAG;EAC1BC,MAAM,EAAE,IAAAF,QAAE,EAAE,QAAQ,EAAE,YAAa,CAAC;EACpCG,MAAM,EAAE,IAAAH,QAAE,EAAE,QAAQ,EAAE,YAAa;AACpC,CAAC;AAACF,OAAA,CAAAG,WAAA,GAAAA,WAAA"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = filterFonts;
7
+ function filterFonts(fonts, filters) {
8
+ const {
9
+ category,
10
+ search
11
+ } = filters;
12
+ let filteredFonts = fonts || [];
13
+ if (category && category !== 'all') {
14
+ filteredFonts = filteredFonts.filter(font => font.category === category);
15
+ }
16
+ if (search) {
17
+ filteredFonts = filteredFonts.filter(font => font.name.toLowerCase().includes(search.toLowerCase()));
18
+ }
19
+ return filteredFonts;
20
+ }
21
+ //# sourceMappingURL=filter-fonts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["filterFonts","fonts","filters","category","search","filteredFonts","filter","font","name","toLowerCase","includes"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/filter-fonts.js"],"sourcesContent":["export default function filterFonts( fonts, filters ) {\n\tconst { category, search } = filters;\n\tlet filteredFonts = fonts || [];\n\n\tif ( category && category !== 'all' ) {\n\t\tfilteredFonts = filteredFonts.filter(\n\t\t\t( font ) => font.category === category\n\t\t);\n\t}\n\n\tif ( search ) {\n\t\tfilteredFonts = filteredFonts.filter( ( font ) =>\n\t\t\tfont.name.toLowerCase().includes( search.toLowerCase() )\n\t\t);\n\t}\n\n\treturn filteredFonts;\n}\n"],"mappings":";;;;;;AAAe,SAASA,WAAWA,CAAEC,KAAK,EAAEC,OAAO,EAAG;EACrD,MAAM;IAAEC,QAAQ;IAAEC;EAAO,CAAC,GAAGF,OAAO;EACpC,IAAIG,aAAa,GAAGJ,KAAK,IAAI,EAAE;EAE/B,IAAKE,QAAQ,IAAIA,QAAQ,KAAK,KAAK,EAAG;IACrCE,aAAa,GAAGA,aAAa,CAACC,MAAM,CACjCC,IAAI,IAAMA,IAAI,CAACJ,QAAQ,KAAKA,QAC/B,CAAC;EACF;EAEA,IAAKC,MAAM,EAAG;IACbC,aAAa,GAAGA,aAAa,CAACC,MAAM,CAAIC,IAAI,IAC3CA,IAAI,CAACC,IAAI,CAACC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAEN,MAAM,CAACK,WAAW,CAAC,CAAE,CACxD,CAAC;EACF;EAEA,OAAOJ,aAAa;AACrB"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getFontsOutline = getFontsOutline;
7
+ exports.isFontFontFaceInOutline = isFontFontFaceInOutline;
8
+ function getFontsOutline(fonts) {
9
+ return fonts.reduce((acc, font) => ({
10
+ ...acc,
11
+ [font.slug]: (font?.fontFace || []).reduce((faces, face) => ({
12
+ ...faces,
13
+ [`${face.fontStyle}-${face.fontWeight}`]: true
14
+ }), {})
15
+ }), {});
16
+ }
17
+ function isFontFontFaceInOutline(slug, face, outline) {
18
+ return outline[slug]?.[`${face.fontStyle}-${face.fontWeight}`] || false;
19
+ }
20
+ //# sourceMappingURL=fonts-outline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getFontsOutline","fonts","reduce","acc","font","slug","fontFace","faces","face","fontStyle","fontWeight","isFontFontFaceInOutline","outline"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/fonts-outline.js"],"sourcesContent":["export function getFontsOutline( fonts ) {\n\treturn fonts.reduce(\n\t\t( acc, font ) => ( {\n\t\t\t...acc,\n\t\t\t[ font.slug ]: ( font?.fontFace || [] ).reduce(\n\t\t\t\t( faces, face ) => ( {\n\t\t\t\t\t...faces,\n\t\t\t\t\t[ `${ face.fontStyle }-${ face.fontWeight }` ]: true,\n\t\t\t\t} ),\n\t\t\t\t{}\n\t\t\t),\n\t\t} ),\n\t\t{}\n\t);\n}\n\nexport function isFontFontFaceInOutline( slug, face, outline ) {\n\treturn (\n\t\toutline[ slug ]?.[ `${ face.fontStyle }-${ face.fontWeight }` ] || false\n\t);\n}\n"],"mappings":";;;;;;;AAAO,SAASA,eAAeA,CAAEC,KAAK,EAAG;EACxC,OAAOA,KAAK,CAACC,MAAM,CAClB,CAAEC,GAAG,EAAEC,IAAI,MAAQ;IAClB,GAAGD,GAAG;IACN,CAAEC,IAAI,CAACC,IAAI,GAAI,CAAED,IAAI,EAAEE,QAAQ,IAAI,EAAE,EAAGJ,MAAM,CAC7C,CAAEK,KAAK,EAAEC,IAAI,MAAQ;MACpB,GAAGD,KAAK;MACR,CAAG,GAAGC,IAAI,CAACC,SAAW,IAAID,IAAI,CAACE,UAAY,EAAC,GAAI;IACjD,CAAC,CAAE,EACH,CAAC,CACF;EACD,CAAC,CAAE,EACH,CAAC,CACF,CAAC;AACF;AAEO,SAASC,uBAAuBA,CAAEN,IAAI,EAAEG,IAAI,EAAEI,OAAO,EAAG;EAC9D,OACCA,OAAO,CAAEP,IAAI,CAAE,GAAK,GAAGG,IAAI,CAACC,SAAW,IAAID,IAAI,CAACE,UAAY,EAAC,CAAE,IAAI,KAAK;AAE1E"}
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getDisplaySrcFromFontFace = getDisplaySrcFromFontFace;
7
7
  exports.getFontFaceVariantName = getFontFaceVariantName;
8
- exports.getPreviewStyle = getPreviewStyle;
9
8
  exports.isUrlEncoded = isUrlEncoded;
10
9
  exports.loadFontFaceInBrowser = loadFontFaceInBrowser;
11
10
  exports.makeFormDataFromFontFamilies = makeFormDataFromFontFamilies;
@@ -13,6 +12,7 @@ exports.mergeFontFaces = mergeFontFaces;
13
12
  exports.mergeFontFamilies = mergeFontFamilies;
14
13
  exports.setUIValuesNeeded = setUIValuesNeeded;
15
14
  var _constants = require("./constants");
15
+ var _previewStyles = require("./preview-styles");
16
16
  /**
17
17
  * Internal dependencies
18
18
  */
@@ -94,7 +94,7 @@ async function loadFontFaceInBrowser(fontFace, source, addTo = 'all') {
94
94
  }
95
95
 
96
96
  // eslint-disable-next-line no-undef
97
- const newFont = new FontFace(fontFace.fontFamily, dataSource, {
97
+ const newFont = new FontFace((0, _previewStyles.formatFontFamily)(fontFace.fontFamily), dataSource, {
98
98
  style: fontFace.fontStyle,
99
99
  weight: fontFace.fontWeight
100
100
  });
@@ -123,56 +123,6 @@ function getDisplaySrcFromFontFace(input, urlPrefix) {
123
123
  }
124
124
  return src;
125
125
  }
126
- function findNearest(input, numbers) {
127
- // If the numbers array is empty, return null
128
- if (numbers.length === 0) {
129
- return null;
130
- }
131
- // Sort the array based on the absolute difference with the input
132
- numbers.sort((a, b) => Math.abs(input - a) - Math.abs(input - b));
133
- // Return the first element (which will be the nearest) from the sorted array
134
- return numbers[0];
135
- }
136
- function extractFontWeights(fontFaces) {
137
- const result = [];
138
- fontFaces.forEach(face => {
139
- const weights = String(face.fontWeight).split(' ');
140
- if (weights.length === 2) {
141
- const start = parseInt(weights[0]);
142
- const end = parseInt(weights[1]);
143
- for (let i = start; i <= end; i += 100) {
144
- result.push(i);
145
- }
146
- } else if (weights.length === 1) {
147
- result.push(parseInt(weights[0]));
148
- }
149
- });
150
- return result;
151
- }
152
- function getPreviewStyle(family) {
153
- const style = {
154
- fontFamily: family.fontFamily
155
- };
156
- if (!Array.isArray(family.fontFace)) {
157
- style.fontWeight = '400';
158
- style.fontStyle = 'normal';
159
- return style;
160
- }
161
- if (family.fontFace) {
162
- //get all the font faces with normal style
163
- const normalFaces = family.fontFace.filter(face => face.fontStyle.toLowerCase() === 'normal');
164
- if (normalFaces.length > 0) {
165
- style.fontStyle = 'normal';
166
- const normalWeights = extractFontWeights(normalFaces);
167
- const nearestWeight = findNearest(400, normalWeights);
168
- style.fontWeight = String(nearestWeight) || '400';
169
- } else {
170
- style.fontStyle = family.fontFace.length && family.fontFace[0].fontStyle || 'normal';
171
- style.fontWeight = family.fontFace.length && String(family.fontFace[0].fontWeight) || '400';
172
- }
173
- }
174
- return style;
175
- }
176
126
  function makeFormDataFromFontFamilies(fontFamilies) {
177
127
  const formData = new FormData();
178
128
  const newFontFamilies = fontFamilies.map((family, familyIndex) => {
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","setUIValuesNeeded","font","extraValues","name","fontFamily","slug","isUrlEncoded","url","decodeURIComponent","getFontFaceVariantName","face","weightName","FONT_WEIGHTS","fontWeight","styleName","fontStyle","FONT_STYLES","mergeFontFaces","existing","incoming","map","Map","set","Array","from","values","mergeFontFamilies","has","fontFace","incomingFontFaces","restIncoming","existingFont","get","mergedFontFaces","loadFontFaceInBrowser","source","addTo","dataSource","File","arrayBuffer","newFont","FontFace","style","weight","loadedFace","load","document","fonts","add","iframeDocument","querySelector","contentDocument","getDisplaySrcFromFontFace","input","urlPrefix","src","isArray","startsWith","replace","encodeURI","findNearest","numbers","length","sort","a","b","Math","abs","extractFontWeights","fontFaces","result","forEach","weights","String","split","start","parseInt","end","i","push","getPreviewStyle","family","normalFaces","filter","toLowerCase","normalWeights","nearestWeight","makeFormDataFromFontFamilies","fontFamilies","formData","FormData","newFontFamilies","familyIndex","faceIndex","file","fileId","append","faceWithoutFileProperty","newFace","uploadedFile","JSON","stringify"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { FONT_WEIGHTS, FONT_STYLES } from './constants';\n\nexport function setUIValuesNeeded( font, extraValues = {} ) {\n\tif ( ! font.name && ( font.fontFamily || font.slug ) ) {\n\t\tfont.name = font.fontFamily || font.slug;\n\t}\n\treturn {\n\t\t...font,\n\t\t...extraValues,\n\t};\n}\n\nexport function isUrlEncoded( url ) {\n\tif ( typeof url !== 'string' ) {\n\t\treturn false;\n\t}\n\treturn url !== decodeURIComponent( url );\n}\n\nexport function getFontFaceVariantName( face ) {\n\tconst weightName = FONT_WEIGHTS[ face.fontWeight ] || face.fontWeight;\n\tconst styleName =\n\t\tface.fontStyle === 'normal'\n\t\t\t? ''\n\t\t\t: FONT_STYLES[ face.fontStyle ] || face.fontStyle;\n\treturn `${ weightName } ${ styleName }`;\n}\n\nexport function mergeFontFaces( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\tfor ( const face of existing ) {\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\tfor ( const face of incoming ) {\n\t\t// This will overwrite if the src already exists, keeping it unique.\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\treturn Array.from( map.values() );\n}\n\nexport function mergeFontFamilies( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\t// Add the existing array to the map.\n\tfor ( const font of existing ) {\n\t\tmap.set( font.slug, { ...font } );\n\t}\n\t// Add the incoming array to the map, overwriting existing values excepting fontFace that need to be merged.\n\tfor ( const font of incoming ) {\n\t\tif ( map.has( font.slug ) ) {\n\t\t\tconst { fontFace: incomingFontFaces, ...restIncoming } = font;\n\t\t\tconst existingFont = map.get( font.slug );\n\t\t\t// Merge the fontFaces existing with the incoming fontFaces.\n\t\t\tconst mergedFontFaces = mergeFontFaces(\n\t\t\t\texistingFont.fontFace,\n\t\t\t\tincomingFontFaces\n\t\t\t);\n\t\t\t// Except for the fontFace key all the other keys are overwritten with the incoming values.\n\t\t\tmap.set( font.slug, {\n\t\t\t\t...restIncoming,\n\t\t\t\tfontFace: mergedFontFaces,\n\t\t\t} );\n\t\t} else {\n\t\t\tmap.set( font.slug, { ...font } );\n\t\t}\n\t}\n\treturn Array.from( map.values() );\n}\n\n/*\n * Loads the font face from a URL and adds it to the browser.\n * It also adds it to the iframe document.\n */\nexport async function loadFontFaceInBrowser( fontFace, source, addTo = 'all' ) {\n\tlet dataSource;\n\n\tif ( typeof source === 'string' ) {\n\t\tdataSource = `url(${ source })`;\n\t\t// eslint-disable-next-line no-undef\n\t} else if ( source instanceof File ) {\n\t\tdataSource = await source.arrayBuffer();\n\t}\n\n\t// eslint-disable-next-line no-undef\n\tconst newFont = new FontFace( fontFace.fontFamily, dataSource, {\n\t\tstyle: fontFace.fontStyle,\n\t\tweight: fontFace.fontWeight,\n\t} );\n\n\tconst loadedFace = await newFont.load();\n\n\tif ( addTo === 'document' || addTo === 'all' ) {\n\t\tdocument.fonts.add( loadedFace );\n\t}\n\n\tif ( addTo === 'iframe' || addTo === 'all' ) {\n\t\tconst iframeDocument = document.querySelector(\n\t\t\t'iframe[name=\"editor-canvas\"]'\n\t\t).contentDocument;\n\t\tiframeDocument.fonts.add( loadedFace );\n\t}\n}\n\nexport function getDisplaySrcFromFontFace( input, urlPrefix ) {\n\tlet src;\n\tif ( Array.isArray( input ) ) {\n\t\tsrc = input[ 0 ];\n\t} else {\n\t\tsrc = input;\n\t}\n\t// If it is a theme font, we need to make the url absolute\n\tif ( src.startsWith( 'file:.' ) && urlPrefix ) {\n\t\tsrc = src.replace( 'file:.', urlPrefix );\n\t}\n\tif ( ! isUrlEncoded( src ) ) {\n\t\tsrc = encodeURI( src );\n\t}\n\treturn src;\n}\n\nfunction findNearest( input, numbers ) {\n\t// If the numbers array is empty, return null\n\tif ( numbers.length === 0 ) {\n\t\treturn null;\n\t}\n\t// Sort the array based on the absolute difference with the input\n\tnumbers.sort( ( a, b ) => Math.abs( input - a ) - Math.abs( input - b ) );\n\t// Return the first element (which will be the nearest) from the sorted array\n\treturn numbers[ 0 ];\n}\n\nfunction extractFontWeights( fontFaces ) {\n\tconst result = [];\n\n\tfontFaces.forEach( ( face ) => {\n\t\tconst weights = String( face.fontWeight ).split( ' ' );\n\n\t\tif ( weights.length === 2 ) {\n\t\t\tconst start = parseInt( weights[ 0 ] );\n\t\t\tconst end = parseInt( weights[ 1 ] );\n\n\t\t\tfor ( let i = start; i <= end; i += 100 ) {\n\t\t\t\tresult.push( i );\n\t\t\t}\n\t\t} else if ( weights.length === 1 ) {\n\t\t\tresult.push( parseInt( weights[ 0 ] ) );\n\t\t}\n\t} );\n\n\treturn result;\n}\n\nexport function getPreviewStyle( family ) {\n\tconst style = { fontFamily: family.fontFamily };\n\n\tif ( ! Array.isArray( family.fontFace ) ) {\n\t\tstyle.fontWeight = '400';\n\t\tstyle.fontStyle = 'normal';\n\t\treturn style;\n\t}\n\n\tif ( family.fontFace ) {\n\t\t//get all the font faces with normal style\n\t\tconst normalFaces = family.fontFace.filter(\n\t\t\t( face ) => face.fontStyle.toLowerCase() === 'normal'\n\t\t);\n\t\tif ( normalFaces.length > 0 ) {\n\t\t\tstyle.fontStyle = 'normal';\n\t\t\tconst normalWeights = extractFontWeights( normalFaces );\n\t\t\tconst nearestWeight = findNearest( 400, normalWeights );\n\t\t\tstyle.fontWeight = String( nearestWeight ) || '400';\n\t\t} else {\n\t\t\tstyle.fontStyle =\n\t\t\t\t( family.fontFace.length && family.fontFace[ 0 ].fontStyle ) ||\n\t\t\t\t'normal';\n\t\t\tstyle.fontWeight =\n\t\t\t\t( family.fontFace.length &&\n\t\t\t\t\tString( family.fontFace[ 0 ].fontWeight ) ) ||\n\t\t\t\t'400';\n\t\t}\n\t}\n\n\treturn style;\n}\n\nexport function makeFormDataFromFontFamilies( fontFamilies ) {\n\tconst formData = new FormData();\n\tconst newFontFamilies = fontFamilies.map( ( family, familyIndex ) => {\n\t\tif ( family?.fontFace ) {\n\t\t\tfamily.fontFace = family.fontFace.map( ( face, faceIndex ) => {\n\t\t\t\tif ( face.file ) {\n\t\t\t\t\t// Slugified file name because the it might contain spaces or characters treated differently on the server.\n\t\t\t\t\tconst fileId = `file-${ familyIndex }-${ faceIndex }`;\n\t\t\t\t\t// Add the files to the formData\n\t\t\t\t\tformData.append( fileId, face.file, face.file.name );\n\t\t\t\t\t// remove the file object from the face object the file is referenced by the uploadedFile key\n\t\t\t\t\tconst { file, ...faceWithoutFileProperty } = face;\n\t\t\t\t\tconst newFace = {\n\t\t\t\t\t\t...faceWithoutFileProperty,\n\t\t\t\t\t\tuploadedFile: fileId,\n\t\t\t\t\t};\n\t\t\t\t\treturn newFace;\n\t\t\t\t}\n\t\t\t\treturn face;\n\t\t\t} );\n\t\t}\n\t\treturn family;\n\t} );\n\tformData.append( 'fontFamilies', JSON.stringify( newFontFamilies ) );\n\treturn formData;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_constants","require","_previewStyles","setUIValuesNeeded","font","extraValues","name","fontFamily","slug","isUrlEncoded","url","decodeURIComponent","getFontFaceVariantName","face","weightName","FONT_WEIGHTS","fontWeight","styleName","fontStyle","FONT_STYLES","mergeFontFaces","existing","incoming","map","Map","set","Array","from","values","mergeFontFamilies","has","fontFace","incomingFontFaces","restIncoming","existingFont","get","mergedFontFaces","loadFontFaceInBrowser","source","addTo","dataSource","File","arrayBuffer","newFont","FontFace","formatFontFamily","style","weight","loadedFace","load","document","fonts","add","iframeDocument","querySelector","contentDocument","getDisplaySrcFromFontFace","input","urlPrefix","src","isArray","startsWith","replace","encodeURI","makeFormDataFromFontFamilies","fontFamilies","formData","FormData","newFontFamilies","family","familyIndex","faceIndex","file","fileId","append","faceWithoutFileProperty","newFace","uploadedFile","JSON","stringify"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { FONT_WEIGHTS, FONT_STYLES } from './constants';\nimport { formatFontFamily } from './preview-styles';\n\nexport function setUIValuesNeeded( font, extraValues = {} ) {\n\tif ( ! font.name && ( font.fontFamily || font.slug ) ) {\n\t\tfont.name = font.fontFamily || font.slug;\n\t}\n\treturn {\n\t\t...font,\n\t\t...extraValues,\n\t};\n}\n\nexport function isUrlEncoded( url ) {\n\tif ( typeof url !== 'string' ) {\n\t\treturn false;\n\t}\n\treturn url !== decodeURIComponent( url );\n}\n\nexport function getFontFaceVariantName( face ) {\n\tconst weightName = FONT_WEIGHTS[ face.fontWeight ] || face.fontWeight;\n\tconst styleName =\n\t\tface.fontStyle === 'normal'\n\t\t\t? ''\n\t\t\t: FONT_STYLES[ face.fontStyle ] || face.fontStyle;\n\treturn `${ weightName } ${ styleName }`;\n}\n\nexport function mergeFontFaces( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\tfor ( const face of existing ) {\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\tfor ( const face of incoming ) {\n\t\t// This will overwrite if the src already exists, keeping it unique.\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\treturn Array.from( map.values() );\n}\n\nexport function mergeFontFamilies( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\t// Add the existing array to the map.\n\tfor ( const font of existing ) {\n\t\tmap.set( font.slug, { ...font } );\n\t}\n\t// Add the incoming array to the map, overwriting existing values excepting fontFace that need to be merged.\n\tfor ( const font of incoming ) {\n\t\tif ( map.has( font.slug ) ) {\n\t\t\tconst { fontFace: incomingFontFaces, ...restIncoming } = font;\n\t\t\tconst existingFont = map.get( font.slug );\n\t\t\t// Merge the fontFaces existing with the incoming fontFaces.\n\t\t\tconst mergedFontFaces = mergeFontFaces(\n\t\t\t\texistingFont.fontFace,\n\t\t\t\tincomingFontFaces\n\t\t\t);\n\t\t\t// Except for the fontFace key all the other keys are overwritten with the incoming values.\n\t\t\tmap.set( font.slug, {\n\t\t\t\t...restIncoming,\n\t\t\t\tfontFace: mergedFontFaces,\n\t\t\t} );\n\t\t} else {\n\t\t\tmap.set( font.slug, { ...font } );\n\t\t}\n\t}\n\treturn Array.from( map.values() );\n}\n\n/*\n * Loads the font face from a URL and adds it to the browser.\n * It also adds it to the iframe document.\n */\nexport async function loadFontFaceInBrowser( fontFace, source, addTo = 'all' ) {\n\tlet dataSource;\n\n\tif ( typeof source === 'string' ) {\n\t\tdataSource = `url(${ source })`;\n\t\t// eslint-disable-next-line no-undef\n\t} else if ( source instanceof File ) {\n\t\tdataSource = await source.arrayBuffer();\n\t}\n\n\t// eslint-disable-next-line no-undef\n\tconst newFont = new FontFace(\n\t\tformatFontFamily( fontFace.fontFamily ),\n\t\tdataSource,\n\t\t{\n\t\t\tstyle: fontFace.fontStyle,\n\t\t\tweight: fontFace.fontWeight,\n\t\t}\n\t);\n\n\tconst loadedFace = await newFont.load();\n\n\tif ( addTo === 'document' || addTo === 'all' ) {\n\t\tdocument.fonts.add( loadedFace );\n\t}\n\n\tif ( addTo === 'iframe' || addTo === 'all' ) {\n\t\tconst iframeDocument = document.querySelector(\n\t\t\t'iframe[name=\"editor-canvas\"]'\n\t\t).contentDocument;\n\t\tiframeDocument.fonts.add( loadedFace );\n\t}\n}\n\nexport function getDisplaySrcFromFontFace( input, urlPrefix ) {\n\tlet src;\n\tif ( Array.isArray( input ) ) {\n\t\tsrc = input[ 0 ];\n\t} else {\n\t\tsrc = input;\n\t}\n\t// If it is a theme font, we need to make the url absolute\n\tif ( src.startsWith( 'file:.' ) && urlPrefix ) {\n\t\tsrc = src.replace( 'file:.', urlPrefix );\n\t}\n\tif ( ! isUrlEncoded( src ) ) {\n\t\tsrc = encodeURI( src );\n\t}\n\treturn src;\n}\n\nexport function makeFormDataFromFontFamilies( fontFamilies ) {\n\tconst formData = new FormData();\n\tconst newFontFamilies = fontFamilies.map( ( family, familyIndex ) => {\n\t\tif ( family?.fontFace ) {\n\t\t\tfamily.fontFace = family.fontFace.map( ( face, faceIndex ) => {\n\t\t\t\tif ( face.file ) {\n\t\t\t\t\t// Slugified file name because the it might contain spaces or characters treated differently on the server.\n\t\t\t\t\tconst fileId = `file-${ familyIndex }-${ faceIndex }`;\n\t\t\t\t\t// Add the files to the formData\n\t\t\t\t\tformData.append( fileId, face.file, face.file.name );\n\t\t\t\t\t// remove the file object from the face object the file is referenced by the uploadedFile key\n\t\t\t\t\tconst { file, ...faceWithoutFileProperty } = face;\n\t\t\t\t\tconst newFace = {\n\t\t\t\t\t\t...faceWithoutFileProperty,\n\t\t\t\t\t\tuploadedFile: fileId,\n\t\t\t\t\t};\n\t\t\t\t\treturn newFace;\n\t\t\t\t}\n\t\t\t\treturn face;\n\t\t\t} );\n\t\t}\n\t\treturn family;\n\t} );\n\tformData.append( 'fontFamilies', JSON.stringify( newFontFamilies ) );\n\treturn formData;\n}\n"],"mappings":";;;;;;;;;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIO,SAASE,iBAAiBA,CAAEC,IAAI,EAAEC,WAAW,GAAG,CAAC,CAAC,EAAG;EAC3D,IAAK,CAAED,IAAI,CAACE,IAAI,KAAMF,IAAI,CAACG,UAAU,IAAIH,IAAI,CAACI,IAAI,CAAE,EAAG;IACtDJ,IAAI,CAACE,IAAI,GAAGF,IAAI,CAACG,UAAU,IAAIH,IAAI,CAACI,IAAI;EACzC;EACA,OAAO;IACN,GAAGJ,IAAI;IACP,GAAGC;EACJ,CAAC;AACF;AAEO,SAASI,YAAYA,CAAEC,GAAG,EAAG;EACnC,IAAK,OAAOA,GAAG,KAAK,QAAQ,EAAG;IAC9B,OAAO,KAAK;EACb;EACA,OAAOA,GAAG,KAAKC,kBAAkB,CAAED,GAAI,CAAC;AACzC;AAEO,SAASE,sBAAsBA,CAAEC,IAAI,EAAG;EAC9C,MAAMC,UAAU,GAAGC,uBAAY,CAAEF,IAAI,CAACG,UAAU,CAAE,IAAIH,IAAI,CAACG,UAAU;EACrE,MAAMC,SAAS,GACdJ,IAAI,CAACK,SAAS,KAAK,QAAQ,GACxB,EAAE,GACFC,sBAAW,CAAEN,IAAI,CAACK,SAAS,CAAE,IAAIL,IAAI,CAACK,SAAS;EACnD,OAAQ,GAAGJ,UAAY,IAAIG,SAAW,EAAC;AACxC;AAEO,SAASG,cAAcA,CAAEC,QAAQ,GAAG,EAAE,EAAEC,QAAQ,GAAG,EAAE,EAAG;EAC9D,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAAC,CAAC;EACrB,KAAM,MAAMX,IAAI,IAAIQ,QAAQ,EAAG;IAC9BE,GAAG,CAACE,GAAG,CAAG,GAAGZ,IAAI,CAACG,UAAY,GAAGH,IAAI,CAACK,SAAW,EAAC,EAAEL,IAAK,CAAC;EAC3D;EACA,KAAM,MAAMA,IAAI,IAAIS,QAAQ,EAAG;IAC9B;IACAC,GAAG,CAACE,GAAG,CAAG,GAAGZ,IAAI,CAACG,UAAY,GAAGH,IAAI,CAACK,SAAW,EAAC,EAAEL,IAAK,CAAC;EAC3D;EACA,OAAOa,KAAK,CAACC,IAAI,CAAEJ,GAAG,CAACK,MAAM,CAAC,CAAE,CAAC;AAClC;AAEO,SAASC,iBAAiBA,CAAER,QAAQ,GAAG,EAAE,EAAEC,QAAQ,GAAG,EAAE,EAAG;EACjE,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAAC,CAAC;EACrB;EACA,KAAM,MAAMpB,IAAI,IAAIiB,QAAQ,EAAG;IAC9BE,GAAG,CAACE,GAAG,CAAErB,IAAI,CAACI,IAAI,EAAE;MAAE,GAAGJ;IAAK,CAAE,CAAC;EAClC;EACA;EACA,KAAM,MAAMA,IAAI,IAAIkB,QAAQ,EAAG;IAC9B,IAAKC,GAAG,CAACO,GAAG,CAAE1B,IAAI,CAACI,IAAK,CAAC,EAAG;MAC3B,MAAM;QAAEuB,QAAQ,EAAEC,iBAAiB;QAAE,GAAGC;MAAa,CAAC,GAAG7B,IAAI;MAC7D,MAAM8B,YAAY,GAAGX,GAAG,CAACY,GAAG,CAAE/B,IAAI,CAACI,IAAK,CAAC;MACzC;MACA,MAAM4B,eAAe,GAAGhB,cAAc,CACrCc,YAAY,CAACH,QAAQ,EACrBC,iBACD,CAAC;MACD;MACAT,GAAG,CAACE,GAAG,CAAErB,IAAI,CAACI,IAAI,EAAE;QACnB,GAAGyB,YAAY;QACfF,QAAQ,EAAEK;MACX,CAAE,CAAC;IACJ,CAAC,MAAM;MACNb,GAAG,CAACE,GAAG,CAAErB,IAAI,CAACI,IAAI,EAAE;QAAE,GAAGJ;MAAK,CAAE,CAAC;IAClC;EACD;EACA,OAAOsB,KAAK,CAACC,IAAI,CAAEJ,GAAG,CAACK,MAAM,CAAC,CAAE,CAAC;AAClC;;AAEA;AACA;AACA;AACA;AACO,eAAeS,qBAAqBA,CAAEN,QAAQ,EAAEO,MAAM,EAAEC,KAAK,GAAG,KAAK,EAAG;EAC9E,IAAIC,UAAU;EAEd,IAAK,OAAOF,MAAM,KAAK,QAAQ,EAAG;IACjCE,UAAU,GAAI,OAAOF,MAAQ,GAAE;IAC/B;EACD,CAAC,MAAM,IAAKA,MAAM,YAAYG,IAAI,EAAG;IACpCD,UAAU,GAAG,MAAMF,MAAM,CAACI,WAAW,CAAC,CAAC;EACxC;;EAEA;EACA,MAAMC,OAAO,GAAG,IAAIC,QAAQ,CAC3B,IAAAC,+BAAgB,EAAEd,QAAQ,CAACxB,UAAW,CAAC,EACvCiC,UAAU,EACV;IACCM,KAAK,EAAEf,QAAQ,CAACb,SAAS;IACzB6B,MAAM,EAAEhB,QAAQ,CAACf;EAClB,CACD,CAAC;EAED,MAAMgC,UAAU,GAAG,MAAML,OAAO,CAACM,IAAI,CAAC,CAAC;EAEvC,IAAKV,KAAK,KAAK,UAAU,IAAIA,KAAK,KAAK,KAAK,EAAG;IAC9CW,QAAQ,CAACC,KAAK,CAACC,GAAG,CAAEJ,UAAW,CAAC;EACjC;EAEA,IAAKT,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,KAAK,EAAG;IAC5C,MAAMc,cAAc,GAAGH,QAAQ,CAACI,aAAa,CAC5C,8BACD,CAAC,CAACC,eAAe;IACjBF,cAAc,CAACF,KAAK,CAACC,GAAG,CAAEJ,UAAW,CAAC;EACvC;AACD;AAEO,SAASQ,yBAAyBA,CAAEC,KAAK,EAAEC,SAAS,EAAG;EAC7D,IAAIC,GAAG;EACP,IAAKjC,KAAK,CAACkC,OAAO,CAAEH,KAAM,CAAC,EAAG;IAC7BE,GAAG,GAAGF,KAAK,CAAE,CAAC,CAAE;EACjB,CAAC,MAAM;IACNE,GAAG,GAAGF,KAAK;EACZ;EACA;EACA,IAAKE,GAAG,CAACE,UAAU,CAAE,QAAS,CAAC,IAAIH,SAAS,EAAG;IAC9CC,GAAG,GAAGA,GAAG,CAACG,OAAO,CAAE,QAAQ,EAAEJ,SAAU,CAAC;EACzC;EACA,IAAK,CAAEjD,YAAY,CAAEkD,GAAI,CAAC,EAAG;IAC5BA,GAAG,GAAGI,SAAS,CAAEJ,GAAI,CAAC;EACvB;EACA,OAAOA,GAAG;AACX;AAEO,SAASK,4BAA4BA,CAAEC,YAAY,EAAG;EAC5D,MAAMC,QAAQ,GAAG,IAAIC,QAAQ,CAAC,CAAC;EAC/B,MAAMC,eAAe,GAAGH,YAAY,CAAC1C,GAAG,CAAE,CAAE8C,MAAM,EAAEC,WAAW,KAAM;IACpE,IAAKD,MAAM,EAAEtC,QAAQ,EAAG;MACvBsC,MAAM,CAACtC,QAAQ,GAAGsC,MAAM,CAACtC,QAAQ,CAACR,GAAG,CAAE,CAAEV,IAAI,EAAE0D,SAAS,KAAM;QAC7D,IAAK1D,IAAI,CAAC2D,IAAI,EAAG;UAChB;UACA,MAAMC,MAAM,GAAI,QAAQH,WAAa,IAAIC,SAAW,EAAC;UACrD;UACAL,QAAQ,CAACQ,MAAM,CAAED,MAAM,EAAE5D,IAAI,CAAC2D,IAAI,EAAE3D,IAAI,CAAC2D,IAAI,CAAClE,IAAK,CAAC;UACpD;UACA,MAAM;YAAEkE,IAAI;YAAE,GAAGG;UAAwB,CAAC,GAAG9D,IAAI;UACjD,MAAM+D,OAAO,GAAG;YACf,GAAGD,uBAAuB;YAC1BE,YAAY,EAAEJ;UACf,CAAC;UACD,OAAOG,OAAO;QACf;QACA,OAAO/D,IAAI;MACZ,CAAE,CAAC;IACJ;IACA,OAAOwD,MAAM;EACd,CAAE,CAAC;EACHH,QAAQ,CAACQ,MAAM,CAAE,cAAc,EAAEI,IAAI,CAACC,SAAS,CAAEX,eAAgB,CAAE,CAAC;EACpE,OAAOF,QAAQ;AAChB"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.formatFontFamily = formatFontFamily;
7
+ exports.getFacePreviewStyle = getFacePreviewStyle;
8
+ exports.getFamilyPreviewStyle = getFamilyPreviewStyle;
9
+ function findNearest(input, numbers) {
10
+ // If the numbers array is empty, return null
11
+ if (numbers.length === 0) {
12
+ return null;
13
+ }
14
+ // Sort the array based on the absolute difference with the input
15
+ numbers.sort((a, b) => Math.abs(input - a) - Math.abs(input - b));
16
+ // Return the first element (which will be the nearest) from the sorted array
17
+ return numbers[0];
18
+ }
19
+ function extractFontWeights(fontFaces) {
20
+ const result = [];
21
+ fontFaces.forEach(face => {
22
+ const weights = String(face.fontWeight).split(' ');
23
+ if (weights.length === 2) {
24
+ const start = parseInt(weights[0]);
25
+ const end = parseInt(weights[1]);
26
+ for (let i = start; i <= end; i += 100) {
27
+ result.push(i);
28
+ }
29
+ } else if (weights.length === 1) {
30
+ result.push(parseInt(weights[0]));
31
+ }
32
+ });
33
+ return result;
34
+ }
35
+ function formatFontFamily(input) {
36
+ return input.split(',').map(font => {
37
+ font = font.trim(); // Remove any leading or trailing white spaces
38
+ // If the font doesn't have single quotes and contains a space, then add single quotes around it
39
+ if (!font.startsWith("'") && font.indexOf(' ') !== -1) {
40
+ return `'${font}'`;
41
+ }
42
+ return font; // Return font as is if no transformation is needed
43
+ }).join(', ');
44
+ }
45
+ function getFamilyPreviewStyle(family) {
46
+ const style = {
47
+ fontFamily: formatFontFamily(family.fontFamily)
48
+ };
49
+ if (!Array.isArray(family.fontFace)) {
50
+ style.fontWeight = '400';
51
+ style.fontStyle = 'normal';
52
+ return style;
53
+ }
54
+ if (family.fontFace) {
55
+ //get all the font faces with normal style
56
+ const normalFaces = family.fontFace.filter(face => face.fontStyle.toLowerCase() === 'normal');
57
+ if (normalFaces.length > 0) {
58
+ style.fontStyle = 'normal';
59
+ const normalWeights = extractFontWeights(normalFaces);
60
+ const nearestWeight = findNearest(400, normalWeights);
61
+ style.fontWeight = String(nearestWeight) || '400';
62
+ } else {
63
+ style.fontStyle = family.fontFace.length && family.fontFace[0].fontStyle || 'normal';
64
+ style.fontWeight = family.fontFace.length && String(family.fontFace[0].fontWeight) || '400';
65
+ }
66
+ }
67
+ return style;
68
+ }
69
+ function getFacePreviewStyle(face) {
70
+ return {
71
+ fontFamily: formatFontFamily(face.fontFamily),
72
+ fontStyle: face.fontStyle || 'normal',
73
+ fontWeight: face.fontWeight || '400'
74
+ };
75
+ }
76
+ //# sourceMappingURL=preview-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["findNearest","input","numbers","length","sort","a","b","Math","abs","extractFontWeights","fontFaces","result","forEach","face","weights","String","fontWeight","split","start","parseInt","end","i","push","formatFontFamily","map","font","trim","startsWith","indexOf","join","getFamilyPreviewStyle","family","style","fontFamily","Array","isArray","fontFace","fontStyle","normalFaces","filter","toLowerCase","normalWeights","nearestWeight","getFacePreviewStyle"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/preview-styles.js"],"sourcesContent":["function findNearest( input, numbers ) {\n\t// If the numbers array is empty, return null\n\tif ( numbers.length === 0 ) {\n\t\treturn null;\n\t}\n\t// Sort the array based on the absolute difference with the input\n\tnumbers.sort( ( a, b ) => Math.abs( input - a ) - Math.abs( input - b ) );\n\t// Return the first element (which will be the nearest) from the sorted array\n\treturn numbers[ 0 ];\n}\n\nfunction extractFontWeights( fontFaces ) {\n\tconst result = [];\n\n\tfontFaces.forEach( ( face ) => {\n\t\tconst weights = String( face.fontWeight ).split( ' ' );\n\n\t\tif ( weights.length === 2 ) {\n\t\t\tconst start = parseInt( weights[ 0 ] );\n\t\t\tconst end = parseInt( weights[ 1 ] );\n\n\t\t\tfor ( let i = start; i <= end; i += 100 ) {\n\t\t\t\tresult.push( i );\n\t\t\t}\n\t\t} else if ( weights.length === 1 ) {\n\t\t\tresult.push( parseInt( weights[ 0 ] ) );\n\t\t}\n\t} );\n\n\treturn result;\n}\n\nexport function formatFontFamily( input ) {\n\treturn input\n\t\t.split( ',' )\n\t\t.map( ( font ) => {\n\t\t\tfont = font.trim(); // Remove any leading or trailing white spaces\n\t\t\t// If the font doesn't have single quotes and contains a space, then add single quotes around it\n\t\t\tif ( ! font.startsWith( \"'\" ) && font.indexOf( ' ' ) !== -1 ) {\n\t\t\t\treturn `'${ font }'`;\n\t\t\t}\n\t\t\treturn font; // Return font as is if no transformation is needed\n\t\t} )\n\t\t.join( ', ' );\n}\n\nexport function getFamilyPreviewStyle( family ) {\n\tconst style = { fontFamily: formatFontFamily( family.fontFamily ) };\n\n\tif ( ! Array.isArray( family.fontFace ) ) {\n\t\tstyle.fontWeight = '400';\n\t\tstyle.fontStyle = 'normal';\n\t\treturn style;\n\t}\n\n\tif ( family.fontFace ) {\n\t\t//get all the font faces with normal style\n\t\tconst normalFaces = family.fontFace.filter(\n\t\t\t( face ) => face.fontStyle.toLowerCase() === 'normal'\n\t\t);\n\t\tif ( normalFaces.length > 0 ) {\n\t\t\tstyle.fontStyle = 'normal';\n\t\t\tconst normalWeights = extractFontWeights( normalFaces );\n\t\t\tconst nearestWeight = findNearest( 400, normalWeights );\n\t\t\tstyle.fontWeight = String( nearestWeight ) || '400';\n\t\t} else {\n\t\t\tstyle.fontStyle =\n\t\t\t\t( family.fontFace.length && family.fontFace[ 0 ].fontStyle ) ||\n\t\t\t\t'normal';\n\t\t\tstyle.fontWeight =\n\t\t\t\t( family.fontFace.length &&\n\t\t\t\t\tString( family.fontFace[ 0 ].fontWeight ) ) ||\n\t\t\t\t'400';\n\t\t}\n\t}\n\n\treturn style;\n}\n\nexport function getFacePreviewStyle( face ) {\n\treturn {\n\t\tfontFamily: formatFontFamily( face.fontFamily ),\n\t\tfontStyle: face.fontStyle || 'normal',\n\t\tfontWeight: face.fontWeight || '400',\n\t};\n}\n"],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.sortFontFaces = sortFontFaces;
7
+ function getNumericFontWeight(value) {
8
+ switch (value) {
9
+ case 'normal':
10
+ return 400;
11
+ case 'bold':
12
+ return 700;
13
+ case 'bolder':
14
+ return 500;
15
+ case 'lighter':
16
+ return 300;
17
+ default:
18
+ return parseInt(value, 10);
19
+ }
20
+ }
21
+ function sortFontFaces(faces) {
22
+ return faces.sort((a, b) => {
23
+ // Ensure 'normal' fontStyle is always first
24
+ if (a.fontStyle === 'normal' && b.fontStyle !== 'normal') return -1;
25
+ if (b.fontStyle === 'normal' && a.fontStyle !== 'normal') return 1;
26
+
27
+ // If both fontStyles are the same, sort by fontWeight
28
+ if (a.fontStyle === b.fontStyle) {
29
+ return getNumericFontWeight(a.fontWeight) - getNumericFontWeight(b.fontWeight);
30
+ }
31
+
32
+ // Sort other fontStyles alphabetically
33
+ return a.fontStyle.localeCompare(b.fontStyle);
34
+ });
35
+ }
36
+ //# sourceMappingURL=sort-font-faces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getNumericFontWeight","value","parseInt","sortFontFaces","faces","sort","a","b","fontStyle","fontWeight","localeCompare"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/sort-font-faces.js"],"sourcesContent":["function getNumericFontWeight( value ) {\n\tswitch ( value ) {\n\t\tcase 'normal':\n\t\t\treturn 400;\n\t\tcase 'bold':\n\t\t\treturn 700;\n\t\tcase 'bolder':\n\t\t\treturn 500;\n\t\tcase 'lighter':\n\t\t\treturn 300;\n\t\tdefault:\n\t\t\treturn parseInt( value, 10 );\n\t}\n}\n\nexport function sortFontFaces( faces ) {\n\treturn faces.sort( ( a, b ) => {\n\t\t// Ensure 'normal' fontStyle is always first\n\t\tif ( a.fontStyle === 'normal' && b.fontStyle !== 'normal' ) return -1;\n\t\tif ( b.fontStyle === 'normal' && a.fontStyle !== 'normal' ) return 1;\n\n\t\t// If both fontStyles are the same, sort by fontWeight\n\t\tif ( a.fontStyle === b.fontStyle ) {\n\t\t\treturn (\n\t\t\t\tgetNumericFontWeight( a.fontWeight ) -\n\t\t\t\tgetNumericFontWeight( b.fontWeight )\n\t\t\t);\n\t\t}\n\n\t\t// Sort other fontStyles alphabetically\n\t\treturn a.fontStyle.localeCompare( b.fontStyle );\n\t} );\n}\n"],"mappings":";;;;;;AAAA,SAASA,oBAAoBA,CAAEC,KAAK,EAAG;EACtC,QAASA,KAAK;IACb,KAAK,QAAQ;MACZ,OAAO,GAAG;IACX,KAAK,MAAM;MACV,OAAO,GAAG;IACX,KAAK,QAAQ;MACZ,OAAO,GAAG;IACX,KAAK,SAAS;MACb,OAAO,GAAG;IACX;MACC,OAAOC,QAAQ,CAAED,KAAK,EAAE,EAAG,CAAC;EAC9B;AACD;AAEO,SAASE,aAAaA,CAAEC,KAAK,EAAG;EACtC,OAAOA,KAAK,CAACC,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAM;IAC9B;IACA,IAAKD,CAAC,CAACE,SAAS,KAAK,QAAQ,IAAID,CAAC,CAACC,SAAS,KAAK,QAAQ,EAAG,OAAO,CAAC,CAAC;IACrE,IAAKD,CAAC,CAACC,SAAS,KAAK,QAAQ,IAAIF,CAAC,CAACE,SAAS,KAAK,QAAQ,EAAG,OAAO,CAAC;;IAEpE;IACA,IAAKF,CAAC,CAACE,SAAS,KAAKD,CAAC,CAACC,SAAS,EAAG;MAClC,OACCR,oBAAoB,CAAEM,CAAC,CAACG,UAAW,CAAC,GACpCT,oBAAoB,CAAEO,CAAC,CAACE,UAAW,CAAC;IAEtC;;IAEA;IACA,OAAOH,CAAC,CAACE,SAAS,CAACE,aAAa,CAAEH,CAAC,CAACC,SAAU,CAAC;EAChD,CAAE,CAAC;AACJ"}
@@ -27,7 +27,7 @@ function ScreenTypography() {
27
27
  className: "edit-site-global-styles-screen-typography"
28
28
  }, (0, _element.createElement)(_components.__experimentalVStack, {
29
29
  spacing: 6
30
- }, window.__experimentalFontLibrary && (0, _element.createElement)(_fontFamilies.default, null), (0, _element.createElement)(_typogrphyElements.default, null))));
30
+ }, !window.__experimentalDisableFontLibrary && (0, _element.createElement)(_fontFamilies.default, null), (0, _element.createElement)(_typogrphyElements.default, null))));
31
31
  }
32
32
  var _default = ScreenTypography;
33
33
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_typogrphyElements","_interopRequireDefault","_fontFamilies","_header","ScreenTypography","_element","createElement","Fragment","default","title","__","description","className","__experimentalVStack","spacing","window","__experimentalFontLibrary","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-typography.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalVStack as VStack } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport TypographyElements from './typogrphy-elements';\nimport FontFamilies from './font-families';\nimport ScreenHeader from './header';\n\nfunction ScreenTypography() {\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Typography' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Manage the typography settings for different elements.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<div className=\"edit-site-global-styles-screen-typography\">\n\t\t\t\t<VStack spacing={ 6 }>\n\t\t\t\t\t{ window.__experimentalFontLibrary && <FontFamilies /> }\n\t\t\t\t\t<TypographyElements />\n\t\t\t\t</VStack>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ScreenTypography;\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAKA,IAAAE,kBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,aAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,OAAA,GAAAF,sBAAA,CAAAH,OAAA;AAXA;AACA;AACA;;AAIA;AACA;AACA;;AAKA,SAASM,gBAAgBA,CAAA,EAAG;EAC3B,OACC,IAAAC,QAAA,CAAAC,aAAA,EAAAD,QAAA,CAAAE,QAAA,QACC,IAAAF,QAAA,CAAAC,aAAA,EAACH,OAAA,CAAAK,OAAY;IACZC,KAAK,EAAG,IAAAC,QAAE,EAAE,YAAa,CAAG;IAC5BC,WAAW,EAAG,IAAAD,QAAE,EACf,wDACD;EAAG,CACH,CAAC,EACF,IAAAL,QAAA,CAAAC,aAAA;IAAKM,SAAS,EAAC;EAA2C,GACzD,IAAAP,QAAA,CAAAC,aAAA,EAACP,WAAA,CAAAc,oBAAM;IAACC,OAAO,EAAG;EAAG,GAClBC,MAAM,CAACC,yBAAyB,IAAI,IAAAX,QAAA,CAAAC,aAAA,EAACJ,aAAA,CAAAM,OAAY,MAAE,CAAC,EACtD,IAAAH,QAAA,CAAAC,aAAA,EAACN,kBAAA,CAAAQ,OAAkB,MAAE,CACd,CACJ,CACJ,CAAC;AAEL;AAAC,IAAAS,QAAA,GAEcb,gBAAgB;AAAAc,OAAA,CAAAV,OAAA,GAAAS,QAAA"}
1
+ {"version":3,"names":["_i18n","require","_components","_typogrphyElements","_interopRequireDefault","_fontFamilies","_header","ScreenTypography","_element","createElement","Fragment","default","title","__","description","className","__experimentalVStack","spacing","window","__experimentalDisableFontLibrary","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-typography.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalVStack as VStack } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport TypographyElements from './typogrphy-elements';\nimport FontFamilies from './font-families';\nimport ScreenHeader from './header';\n\nfunction ScreenTypography() {\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Typography' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Manage the typography settings for different elements.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<div className=\"edit-site-global-styles-screen-typography\">\n\t\t\t\t<VStack spacing={ 6 }>\n\t\t\t\t\t{ ! window.__experimentalDisableFontLibrary && (\n\t\t\t\t\t\t<FontFamilies />\n\t\t\t\t\t) }\n\t\t\t\t\t<TypographyElements />\n\t\t\t\t</VStack>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ScreenTypography;\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAKA,IAAAE,kBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,aAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,OAAA,GAAAF,sBAAA,CAAAH,OAAA;AAXA;AACA;AACA;;AAIA;AACA;AACA;;AAKA,SAASM,gBAAgBA,CAAA,EAAG;EAC3B,OACC,IAAAC,QAAA,CAAAC,aAAA,EAAAD,QAAA,CAAAE,QAAA,QACC,IAAAF,QAAA,CAAAC,aAAA,EAACH,OAAA,CAAAK,OAAY;IACZC,KAAK,EAAG,IAAAC,QAAE,EAAE,YAAa,CAAG;IAC5BC,WAAW,EAAG,IAAAD,QAAE,EACf,wDACD;EAAG,CACH,CAAC,EACF,IAAAL,QAAA,CAAAC,aAAA;IAAKM,SAAS,EAAC;EAA2C,GACzD,IAAAP,QAAA,CAAAC,aAAA,EAACP,WAAA,CAAAc,oBAAM;IAACC,OAAO,EAAG;EAAG,GAClB,CAAEC,MAAM,CAACC,gCAAgC,IAC1C,IAAAX,QAAA,CAAAC,aAAA,EAACJ,aAAA,CAAAM,OAAY,MAAE,CACf,EACD,IAAAH,QAAA,CAAAC,aAAA,EAACN,kBAAA,CAAAQ,OAAkB,MAAE,CACd,CACJ,CACJ,CAAC;AAEL;AAAC,IAAAS,QAAA,GAEcb,gBAAgB;AAAAc,OAAA,CAAAV,OAAA,GAAAS,QAAA"}
@@ -17,6 +17,7 @@ var _keycodes = require("@wordpress/keycodes");
17
17
  var _coreData = require("@wordpress/core-data");
18
18
  var _useEditedEntityRecord = _interopRequireDefault(require("../../use-edited-entity-record"));
19
19
  var _store = require("../../../store");
20
+ var _constants = require("../../../utils/constants");
20
21
  /**
21
22
  * External dependencies
22
23
  */
@@ -30,10 +31,10 @@ var _store = require("../../../store");
30
31
  */
31
32
 
32
33
  const typeLabels = {
33
- wp_block: (0, _i18n.__)('Editing pattern:'),
34
- wp_navigation: (0, _i18n.__)('Editing navigation menu:'),
35
- wp_template: (0, _i18n.__)('Editing template:'),
36
- wp_template_part: (0, _i18n.__)('Editing template part:')
34
+ [_constants.PATTERN_TYPES.user]: (0, _i18n.__)('Editing pattern:'),
35
+ [_constants.NAVIGATION_POST_TYPE]: (0, _i18n.__)('Editing navigation menu:'),
36
+ [_constants.TEMPLATE_POST_TYPE]: (0, _i18n.__)('Editing template:'),
37
+ [_constants.TEMPLATE_PART_POST_TYPE]: (0, _i18n.__)('Editing template part:')
37
38
  };
38
39
  function DocumentActions() {
39
40
  const isPage = (0, _data.useSelect)(select => select(_store.store).isPage(), []);
@@ -113,20 +114,20 @@ function TemplateDocumentActions({
113
114
  }, (0, _i18n.__)('Document not found'));
114
115
  }
115
116
  let typeIcon = icon;
116
- if (record.type === 'wp_navigation') {
117
+ if (record.type === _constants.NAVIGATION_POST_TYPE) {
117
118
  typeIcon = _icons.navigation;
118
- } else if (record.type === 'wp_block') {
119
+ } else if (record.type === _constants.PATTERN_TYPES.user) {
119
120
  typeIcon = _icons.symbol;
120
121
  }
121
122
  return (0, _element.createElement)(BaseDocumentActions, {
122
123
  className: (0, _classnames.default)(className, {
123
- 'is-synced-entity': record.wp_pattern_sync_status !== 'unsynced'
124
+ 'is-synced-entity': record.wp_pattern_sync_status !== _constants.PATTERN_SYNC_TYPES.unsynced
124
125
  }),
125
126
  icon: typeIcon,
126
127
  onBack: onBack
127
128
  }, (0, _element.createElement)(_components.VisuallyHidden, {
128
129
  as: "span"
129
- }, (_typeLabels$record$ty = typeLabels[record.type]) !== null && _typeLabels$record$ty !== void 0 ? _typeLabels$record$ty : typeLabels.wp_template), getTitle());
130
+ }, (_typeLabels$record$ty = typeLabels[record.type]) !== null && _typeLabels$record$ty !== void 0 ? _typeLabels$record$ty : typeLabels[_constants.TEMPLATE_POST_TYPE]), getTitle());
130
131
  }
131
132
  function BaseDocumentActions({
132
133
  className,
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_classnames","_interopRequireDefault","_i18n","_data","_components","_blockEditor","_commands","_icons","_keycodes","_coreData","_useEditedEntityRecord","_store","typeLabels","wp_block","__","wp_navigation","wp_template","wp_template_part","DocumentActions","isPage","useSelect","select","editSiteStore","createElement","PageDocumentActions","TemplateDocumentActions","hasPageContentFocus","hasResolved","isFound","title","_hasPageContentFocus","getEditedPostContext","getEditedEntityRecord","hasFinishedResolution","coreStore","context","queryArgs","postType","postId","page","setHasPageContentFocus","useDispatch","hasEditedTemplate","setHasEditedTemplate","useState","prevHasPageContentFocus","useRef","useEffect","current","className","BaseDocumentActions","classnames","icon","pageIcon","onBack","_typeLabels$record$ty","isLoaded","record","getTitle","useEditedEntityRecord","typeIcon","type","navigationIcon","symbol","wp_pattern_sync_status","VisuallyHidden","as","children","open","openCommandCenter","commandsStore","Button","isRTL","chevronRightSmall","chevronLeftSmall","onClick","event","stopPropagation","__experimentalHStack","spacing","justify","BlockIcon","__experimentalText","size","displayShortcut","primary"],"sources":["@wordpress/edit-site/src/components/header-edit-mode/document-actions/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\tVisuallyHidden,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { BlockIcon } from '@wordpress/block-editor';\nimport { store as commandsStore } from '@wordpress/commands';\nimport {\n\tchevronLeftSmall,\n\tchevronRightSmall,\n\tpage as pageIcon,\n\tnavigation as navigationIcon,\n\tsymbol,\n} from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport useEditedEntityRecord from '../../use-edited-entity-record';\nimport { store as editSiteStore } from '../../../store';\n\nconst typeLabels = {\n\twp_block: __( 'Editing pattern:' ),\n\twp_navigation: __( 'Editing navigation menu:' ),\n\twp_template: __( 'Editing template:' ),\n\twp_template_part: __( 'Editing template part:' ),\n};\n\nexport default function DocumentActions() {\n\tconst isPage = useSelect(\n\t\t( select ) => select( editSiteStore ).isPage(),\n\t\t[]\n\t);\n\treturn isPage ? <PageDocumentActions /> : <TemplateDocumentActions />;\n}\n\nfunction PageDocumentActions() {\n\tconst { hasPageContentFocus, hasResolved, isFound, title } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\thasPageContentFocus: _hasPageContentFocus,\n\t\t\t\tgetEditedPostContext,\n\t\t\t} = select( editSiteStore );\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst context = getEditedPostContext();\n\t\t\tconst queryArgs = [ 'postType', context.postType, context.postId ];\n\t\t\tconst page = getEditedEntityRecord( ...queryArgs );\n\t\t\treturn {\n\t\t\t\thasPageContentFocus: _hasPageContentFocus(),\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\tisFound: !! page,\n\t\t\t\ttitle: page?.title,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { setHasPageContentFocus } = useDispatch( editSiteStore );\n\n\tconst [ hasEditedTemplate, setHasEditedTemplate ] = useState( false );\n\tconst prevHasPageContentFocus = useRef( false );\n\tuseEffect( () => {\n\t\tif ( prevHasPageContentFocus.current && ! hasPageContentFocus ) {\n\t\t\tsetHasEditedTemplate( true );\n\t\t}\n\t\tprevHasPageContentFocus.current = hasPageContentFocus;\n\t}, [ hasPageContentFocus ] );\n\n\tif ( ! hasResolved ) {\n\t\treturn null;\n\t}\n\n\tif ( ! isFound ) {\n\t\treturn (\n\t\t\t<div className=\"edit-site-document-actions\">\n\t\t\t\t{ __( 'Document not found' ) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn hasPageContentFocus ? (\n\t\t<BaseDocumentActions\n\t\t\tclassName={ classnames( 'is-page', {\n\t\t\t\t'is-animated': hasEditedTemplate,\n\t\t\t} ) }\n\t\t\ticon={ pageIcon }\n\t\t>\n\t\t\t{ title }\n\t\t</BaseDocumentActions>\n\t) : (\n\t\t<TemplateDocumentActions\n\t\t\tclassName=\"is-animated\"\n\t\t\tonBack={ () => setHasPageContentFocus( true ) }\n\t\t/>\n\t);\n}\n\nfunction TemplateDocumentActions( { className, onBack } ) {\n\tconst { isLoaded, record, getTitle, icon } = useEditedEntityRecord();\n\n\tif ( ! isLoaded ) {\n\t\treturn null;\n\t}\n\n\tif ( ! record ) {\n\t\treturn (\n\t\t\t<div className=\"edit-site-document-actions\">\n\t\t\t\t{ __( 'Document not found' ) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet typeIcon = icon;\n\tif ( record.type === 'wp_navigation' ) {\n\t\ttypeIcon = navigationIcon;\n\t} else if ( record.type === 'wp_block' ) {\n\t\ttypeIcon = symbol;\n\t}\n\n\treturn (\n\t\t<BaseDocumentActions\n\t\t\tclassName={ classnames( className, {\n\t\t\t\t'is-synced-entity':\n\t\t\t\t\trecord.wp_pattern_sync_status !== 'unsynced',\n\t\t\t} ) }\n\t\t\ticon={ typeIcon }\n\t\t\tonBack={ onBack }\n\t\t>\n\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t{ typeLabels[ record.type ] ?? typeLabels.wp_template }\n\t\t\t</VisuallyHidden>\n\t\t\t{ getTitle() }\n\t\t</BaseDocumentActions>\n\t);\n}\n\nfunction BaseDocumentActions( { className, icon, children, onBack } ) {\n\tconst { open: openCommandCenter } = useDispatch( commandsStore );\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'edit-site-document-actions', className ) }\n\t\t>\n\t\t\t{ onBack && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"edit-site-document-actions__back\"\n\t\t\t\t\ticon={ isRTL() ? chevronRightSmall : chevronLeftSmall }\n\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tonBack();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t<Button\n\t\t\t\tclassName=\"edit-site-document-actions__command\"\n\t\t\t\tonClick={ () => openCommandCenter() }\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"edit-site-document-actions__title\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\tjustify=\"center\"\n\t\t\t\t>\n\t\t\t\t\t<BlockIcon icon={ icon } />\n\t\t\t\t\t<Text size=\"body\" as=\"h1\">\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</Text>\n\t\t\t\t</HStack>\n\t\t\t\t<span className=\"edit-site-document-actions__shortcut\">\n\t\t\t\t\t{ displayShortcut.primary( 'k' ) }\n\t\t\t\t</span>\n\t\t\t</Button>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_classnames","_interopRequireDefault","_i18n","_data","_components","_blockEditor","_commands","_icons","_keycodes","_coreData","_useEditedEntityRecord","_store","_constants","typeLabels","PATTERN_TYPES","user","__","NAVIGATION_POST_TYPE","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","DocumentActions","isPage","useSelect","select","editSiteStore","createElement","PageDocumentActions","TemplateDocumentActions","hasPageContentFocus","hasResolved","isFound","title","_hasPageContentFocus","getEditedPostContext","getEditedEntityRecord","hasFinishedResolution","coreStore","context","queryArgs","postType","postId","page","setHasPageContentFocus","useDispatch","hasEditedTemplate","setHasEditedTemplate","useState","prevHasPageContentFocus","useRef","useEffect","current","className","BaseDocumentActions","classnames","icon","pageIcon","onBack","_typeLabels$record$ty","isLoaded","record","getTitle","useEditedEntityRecord","typeIcon","type","navigationIcon","symbol","wp_pattern_sync_status","PATTERN_SYNC_TYPES","unsynced","VisuallyHidden","as","children","open","openCommandCenter","commandsStore","Button","isRTL","chevronRightSmall","chevronLeftSmall","onClick","event","stopPropagation","__experimentalHStack","spacing","justify","BlockIcon","__experimentalText","size","displayShortcut","primary"],"sources":["@wordpress/edit-site/src/components/header-edit-mode/document-actions/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\tVisuallyHidden,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { BlockIcon } from '@wordpress/block-editor';\nimport { store as commandsStore } from '@wordpress/commands';\nimport {\n\tchevronLeftSmall,\n\tchevronRightSmall,\n\tpage as pageIcon,\n\tnavigation as navigationIcon,\n\tsymbol,\n} from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport useEditedEntityRecord from '../../use-edited-entity-record';\nimport { store as editSiteStore } from '../../../store';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_TYPES,\n\tPATTERN_SYNC_TYPES,\n} from '../../../utils/constants';\n\nconst typeLabels = {\n\t[ PATTERN_TYPES.user ]: __( 'Editing pattern:' ),\n\t[ NAVIGATION_POST_TYPE ]: __( 'Editing navigation menu:' ),\n\t[ TEMPLATE_POST_TYPE ]: __( 'Editing template:' ),\n\t[ TEMPLATE_PART_POST_TYPE ]: __( 'Editing template part:' ),\n};\n\nexport default function DocumentActions() {\n\tconst isPage = useSelect(\n\t\t( select ) => select( editSiteStore ).isPage(),\n\t\t[]\n\t);\n\treturn isPage ? <PageDocumentActions /> : <TemplateDocumentActions />;\n}\n\nfunction PageDocumentActions() {\n\tconst { hasPageContentFocus, hasResolved, isFound, title } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\thasPageContentFocus: _hasPageContentFocus,\n\t\t\t\tgetEditedPostContext,\n\t\t\t} = select( editSiteStore );\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst context = getEditedPostContext();\n\t\t\tconst queryArgs = [ 'postType', context.postType, context.postId ];\n\t\t\tconst page = getEditedEntityRecord( ...queryArgs );\n\t\t\treturn {\n\t\t\t\thasPageContentFocus: _hasPageContentFocus(),\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\tisFound: !! page,\n\t\t\t\ttitle: page?.title,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { setHasPageContentFocus } = useDispatch( editSiteStore );\n\n\tconst [ hasEditedTemplate, setHasEditedTemplate ] = useState( false );\n\tconst prevHasPageContentFocus = useRef( false );\n\tuseEffect( () => {\n\t\tif ( prevHasPageContentFocus.current && ! hasPageContentFocus ) {\n\t\t\tsetHasEditedTemplate( true );\n\t\t}\n\t\tprevHasPageContentFocus.current = hasPageContentFocus;\n\t}, [ hasPageContentFocus ] );\n\n\tif ( ! hasResolved ) {\n\t\treturn null;\n\t}\n\n\tif ( ! isFound ) {\n\t\treturn (\n\t\t\t<div className=\"edit-site-document-actions\">\n\t\t\t\t{ __( 'Document not found' ) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn hasPageContentFocus ? (\n\t\t<BaseDocumentActions\n\t\t\tclassName={ classnames( 'is-page', {\n\t\t\t\t'is-animated': hasEditedTemplate,\n\t\t\t} ) }\n\t\t\ticon={ pageIcon }\n\t\t>\n\t\t\t{ title }\n\t\t</BaseDocumentActions>\n\t) : (\n\t\t<TemplateDocumentActions\n\t\t\tclassName=\"is-animated\"\n\t\t\tonBack={ () => setHasPageContentFocus( true ) }\n\t\t/>\n\t);\n}\n\nfunction TemplateDocumentActions( { className, onBack } ) {\n\tconst { isLoaded, record, getTitle, icon } = useEditedEntityRecord();\n\n\tif ( ! isLoaded ) {\n\t\treturn null;\n\t}\n\n\tif ( ! record ) {\n\t\treturn (\n\t\t\t<div className=\"edit-site-document-actions\">\n\t\t\t\t{ __( 'Document not found' ) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet typeIcon = icon;\n\tif ( record.type === NAVIGATION_POST_TYPE ) {\n\t\ttypeIcon = navigationIcon;\n\t} else if ( record.type === PATTERN_TYPES.user ) {\n\t\ttypeIcon = symbol;\n\t}\n\n\treturn (\n\t\t<BaseDocumentActions\n\t\t\tclassName={ classnames( className, {\n\t\t\t\t'is-synced-entity':\n\t\t\t\t\trecord.wp_pattern_sync_status !==\n\t\t\t\t\tPATTERN_SYNC_TYPES.unsynced,\n\t\t\t} ) }\n\t\t\ticon={ typeIcon }\n\t\t\tonBack={ onBack }\n\t\t>\n\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t{ typeLabels[ record.type ] ??\n\t\t\t\t\ttypeLabels[ TEMPLATE_POST_TYPE ] }\n\t\t\t</VisuallyHidden>\n\t\t\t{ getTitle() }\n\t\t</BaseDocumentActions>\n\t);\n}\n\nfunction BaseDocumentActions( { className, icon, children, onBack } ) {\n\tconst { open: openCommandCenter } = useDispatch( commandsStore );\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'edit-site-document-actions', className ) }\n\t\t>\n\t\t\t{ onBack && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"edit-site-document-actions__back\"\n\t\t\t\t\ticon={ isRTL() ? chevronRightSmall : chevronLeftSmall }\n\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tonBack();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t<Button\n\t\t\t\tclassName=\"edit-site-document-actions__command\"\n\t\t\t\tonClick={ () => openCommandCenter() }\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"edit-site-document-actions__title\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\tjustify=\"center\"\n\t\t\t\t>\n\t\t\t\t\t<BlockIcon icon={ icon } />\n\t\t\t\t\t<Text size=\"body\" as=\"h1\">\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</Text>\n\t\t\t\t</HStack>\n\t\t\t\t<span className=\"edit-site-document-actions__shortcut\">\n\t\t\t\t\t{ displayShortcut.primary( 'k' ) }\n\t\t\t\t</span>\n\t\t\t</Button>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
@@ -44,7 +44,9 @@ const {
44
44
  const preventDefault = event => {
45
45
  event.preventDefault();
46
46
  };
47
- function HeaderEditMode() {
47
+ function HeaderEditMode({
48
+ setListViewToggleElement
49
+ }) {
48
50
  const inserterButton = (0, _element.useRef)();
49
51
  const {
50
52
  deviceType,
@@ -200,6 +202,7 @@ function HeaderEditMode() {
200
202
  /* translators: button label text should, if possible, be under 16 characters. */,
201
203
  label: (0, _i18n.__)('List View'),
202
204
  onClick: toggleListView,
205
+ ref: setListViewToggleElement,
203
206
  shortcut: listViewShortcut,
204
207
  showTooltip: !showIconLabels,
205
208
  variant: showIconLabels ? 'tertiary' : undefined,