@wordpress/edit-site 5.18.1-next.5a1d1283.0 → 5.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-pattern/index.js +62 -1
  3. package/build/components/add-new-pattern/index.js.map +1 -1
  4. package/build/components/add-new-template/index.js +3 -2
  5. package/build/components/add-new-template/index.js.map +1 -1
  6. package/build/components/add-new-template/new-template.js +6 -1
  7. package/build/components/add-new-template/new-template.js.map +1 -1
  8. package/build/components/add-new-template/utils.js +6 -1
  9. package/build/components/add-new-template/utils.js.map +1 -1
  10. package/build/components/app/index.js +2 -7
  11. package/build/components/app/index.js.map +1 -1
  12. package/build/components/block-editor/back-button.js +3 -2
  13. package/build/components/block-editor/back-button.js.map +1 -1
  14. package/build/components/block-editor/editor-canvas.js +20 -16
  15. package/build/components/block-editor/editor-canvas.js.map +1 -1
  16. package/build/components/block-editor/site-editor-canvas.js +1 -3
  17. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  18. package/build/components/block-editor/use-site-editor-settings.js +8 -4
  19. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  20. package/build/components/canvas-loader/index.js +18 -1
  21. package/build/components/canvas-loader/index.js.map +1 -1
  22. package/build/components/editor/index.js +3 -8
  23. package/build/components/editor/index.js.map +1 -1
  24. package/build/components/global-styles/dimensions-panel.js +5 -4
  25. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  26. package/build/components/global-styles/font-families.js +68 -0
  27. package/build/components/global-styles/font-families.js.map +1 -0
  28. package/build/components/global-styles/font-family-item.js +47 -0
  29. package/build/components/global-styles/font-family-item.js.map +1 -0
  30. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +31 -0
  31. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -0
  32. package/build/components/global-styles/font-library-modal/context.js +285 -0
  33. package/build/components/global-styles/font-library-modal/context.js.map +1 -0
  34. package/build/components/global-styles/font-library-modal/font-card.js +58 -0
  35. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -0
  36. package/build/components/global-styles/font-library-modal/font-demo.js +69 -0
  37. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -0
  38. package/build/components/global-styles/font-library-modal/font-variant.js +51 -0
  39. package/build/components/global-styles/font-library-modal/font-variant.js.map +1 -0
  40. package/build/components/global-styles/font-library-modal/fonts-grid.js +54 -0
  41. package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -0
  42. package/build/components/global-styles/font-library-modal/index.js +47 -0
  43. package/build/components/global-styles/font-library-modal/index.js.map +1 -0
  44. package/build/components/global-styles/font-library-modal/installed-fonts.js +128 -0
  45. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -0
  46. package/build/components/global-styles/font-library-modal/library-font-card.js +44 -0
  47. package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -0
  48. package/build/components/global-styles/font-library-modal/library-font-details.js +43 -0
  49. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -0
  50. package/build/components/global-styles/font-library-modal/library-font-variant.js +59 -0
  51. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -0
  52. package/build/components/global-styles/font-library-modal/local-fonts.js +143 -0
  53. package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -0
  54. package/build/components/global-styles/font-library-modal/resolvers.js +37 -0
  55. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -0
  56. package/build/components/global-styles/font-library-modal/tab-layout.js +45 -0
  57. package/build/components/global-styles/font-library-modal/tab-layout.js.map +1 -0
  58. package/build/components/global-styles/font-library-modal/utils/constants.js +37 -0
  59. package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -0
  60. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +58 -0
  61. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -0
  62. package/build/components/global-styles/font-library-modal/utils/index.js +205 -0
  63. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -0
  64. package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js +22 -0
  65. package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -0
  66. package/build/components/global-styles/font-library-modal/utils/toggleFont.js +92 -0
  67. package/build/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -0
  68. package/build/components/global-styles/global-styles-provider.js +7 -12
  69. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  70. package/build/components/global-styles/screen-block.js +34 -21
  71. package/build/components/global-styles/screen-block.js.map +1 -1
  72. package/build/components/global-styles/screen-revisions/index.js +1 -3
  73. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  74. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
  75. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  76. package/build/components/global-styles/screen-typography.js +4 -72
  77. package/build/components/global-styles/screen-typography.js.map +1 -1
  78. package/build/components/global-styles/style-variations-container.js +3 -5
  79. package/build/components/global-styles/style-variations-container.js.map +1 -1
  80. package/build/components/global-styles/typogrphy-elements.js +96 -0
  81. package/build/components/global-styles/typogrphy-elements.js.map +1 -0
  82. package/build/components/page-patterns/duplicate-menu-item.js +52 -16
  83. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
  84. package/build/components/page-patterns/grid-item.js +46 -20
  85. package/build/components/page-patterns/grid-item.js.map +1 -1
  86. package/build/components/page-patterns/header.js +3 -7
  87. package/build/components/page-patterns/header.js.map +1 -1
  88. package/build/components/page-patterns/index.js +3 -3
  89. package/build/components/page-patterns/index.js.map +1 -1
  90. package/build/components/page-patterns/patterns-list.js +7 -7
  91. package/build/components/page-patterns/patterns-list.js.map +1 -1
  92. package/build/components/page-patterns/rename-menu-item.js +6 -5
  93. package/build/components/page-patterns/rename-menu-item.js.map +1 -1
  94. package/build/components/page-patterns/search-items.js +8 -2
  95. package/build/components/page-patterns/search-items.js.map +1 -1
  96. package/build/components/page-patterns/use-patterns.js +53 -27
  97. package/build/components/page-patterns/use-patterns.js.map +1 -1
  98. package/build/components/page-patterns/utils.js +1 -20
  99. package/build/components/page-patterns/utils.js.map +1 -1
  100. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +33 -24
  101. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  102. package/build/components/sidebar-edit-mode/page-panels/hooks.js +64 -0
  103. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -0
  104. package/build/components/sidebar-edit-mode/page-panels/index.js +1 -4
  105. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  106. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
  107. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  108. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +56 -0
  109. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -0
  110. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js +91 -0
  111. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -0
  112. package/build/components/sidebar-edit-mode/template-panel/index.js +11 -9
  113. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  114. package/build/components/sidebar-edit-mode/template-panel/last-revision.js +6 -4
  115. package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
  116. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +211 -0
  117. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -0
  118. package/build/components/sidebar-navigation-screen/index.js +6 -4
  119. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  120. package/build/components/sidebar-navigation-screen-details-footer/index.js +32 -4
  121. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  122. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +4 -2
  123. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
  124. package/build/components/sidebar-navigation-screen-global-styles/index.js +4 -31
  125. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  126. package/build/components/sidebar-navigation-screen-page/index.js +3 -3
  127. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  128. package/build/components/sidebar-navigation-screen-pattern/index.js +18 -8
  129. package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  130. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +34 -5
  131. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  132. package/build/components/sidebar-navigation-screen-patterns/index.js +7 -35
  133. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  134. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +38 -4
  135. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  136. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -1
  137. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  138. package/build/components/sidebar-navigation-screen-template/index.js +2 -2
  139. package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
  140. package/build/components/sidebar-navigation-screen-templates/index.js +1 -1
  141. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  142. package/build/components/template-actions/index.js +7 -4
  143. package/build/components/template-actions/index.js.map +1 -1
  144. package/build/components/template-actions/rename-menu-item.js +3 -2
  145. package/build/components/template-actions/rename-menu-item.js.map +1 -1
  146. package/build/components/welcome-guide/styles.js +2 -2
  147. package/build/components/welcome-guide/styles.js.map +1 -1
  148. package/build/hooks/push-changes-to-global-styles/index.js +5 -37
  149. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  150. package/build/store/actions.js +29 -6
  151. package/build/store/actions.js.map +1 -1
  152. package/build/utils/constants.js +45 -2
  153. package/build/utils/constants.js.map +1 -1
  154. package/build/utils/is-template-removable.js +6 -1
  155. package/build/utils/is-template-removable.js.map +1 -1
  156. package/build/utils/is-template-revertable.js +6 -1
  157. package/build/utils/is-template-revertable.js.map +1 -1
  158. package/build-module/components/add-new-pattern/index.js +66 -5
  159. package/build-module/components/add-new-pattern/index.js.map +1 -1
  160. package/build-module/components/add-new-template/index.js +3 -2
  161. package/build-module/components/add-new-template/index.js.map +1 -1
  162. package/build-module/components/add-new-template/new-template.js +6 -1
  163. package/build-module/components/add-new-template/new-template.js.map +1 -1
  164. package/build-module/components/add-new-template/utils.js +6 -1
  165. package/build-module/components/add-new-template/utils.js.map +1 -1
  166. package/build-module/components/app/index.js +2 -7
  167. package/build-module/components/app/index.js.map +1 -1
  168. package/build-module/components/block-editor/back-button.js +3 -2
  169. package/build-module/components/block-editor/back-button.js.map +1 -1
  170. package/build-module/components/block-editor/editor-canvas.js +21 -17
  171. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  172. package/build-module/components/block-editor/site-editor-canvas.js +3 -5
  173. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  174. package/build-module/components/block-editor/use-site-editor-settings.js +8 -4
  175. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  176. package/build-module/components/canvas-loader/index.js +18 -1
  177. package/build-module/components/canvas-loader/index.js.map +1 -1
  178. package/build-module/components/editor/index.js +3 -8
  179. package/build-module/components/editor/index.js.map +1 -1
  180. package/build-module/components/global-styles/dimensions-panel.js +5 -4
  181. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  182. package/build-module/components/global-styles/font-families.js +58 -0
  183. package/build-module/components/global-styles/font-families.js.map +1 -0
  184. package/build-module/components/global-styles/font-family-item.js +40 -0
  185. package/build-module/components/global-styles/font-family-item.js.map +1 -0
  186. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js +23 -0
  187. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -0
  188. package/build-module/components/global-styles/font-library-modal/context.js +276 -0
  189. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -0
  190. package/build-module/components/global-styles/font-library-modal/font-card.js +49 -0
  191. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -0
  192. package/build-module/components/global-styles/font-library-modal/font-demo.js +62 -0
  193. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -0
  194. package/build-module/components/global-styles/font-library-modal/font-variant.js +42 -0
  195. package/build-module/components/global-styles/font-library-modal/font-variant.js.map +1 -0
  196. package/build-module/components/global-styles/font-library-modal/fonts-grid.js +47 -0
  197. package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +1 -0
  198. package/build-module/components/global-styles/font-library-modal/index.js +38 -0
  199. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -0
  200. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +120 -0
  201. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -0
  202. package/build-module/components/global-styles/font-library-modal/library-font-card.js +36 -0
  203. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -0
  204. package/build-module/components/global-styles/font-library-modal/library-font-details.js +34 -0
  205. package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -0
  206. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +50 -0
  207. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -0
  208. package/build-module/components/global-styles/font-library-modal/local-fonts.js +135 -0
  209. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -0
  210. package/build-module/components/global-styles/font-library-modal/resolvers.js +28 -0
  211. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -0
  212. package/build-module/components/global-styles/font-library-modal/tab-layout.js +37 -0
  213. package/build-module/components/global-styles/font-library-modal/tab-layout.js.map +1 -0
  214. package/build-module/components/global-styles/font-library-modal/utils/constants.js +26 -0
  215. package/build-module/components/global-styles/font-library-modal/utils/constants.js.map +1 -0
  216. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +52 -0
  217. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -0
  218. package/build-module/components/global-styles/font-library-modal/utils/index.js +190 -0
  219. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -0
  220. package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js +16 -0
  221. package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -0
  222. package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js +86 -0
  223. package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -0
  224. package/build-module/components/global-styles/global-styles-provider.js +7 -12
  225. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  226. package/build-module/components/global-styles/screen-block.js +34 -21
  227. package/build-module/components/global-styles/screen-block.js.map +1 -1
  228. package/build-module/components/global-styles/screen-revisions/index.js +1 -3
  229. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  230. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
  231. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  232. package/build-module/components/global-styles/screen-typography.js +6 -74
  233. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  234. package/build-module/components/global-styles/style-variations-container.js +3 -5
  235. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  236. package/build-module/components/global-styles/typogrphy-elements.js +87 -0
  237. package/build-module/components/global-styles/typogrphy-elements.js.map +1 -0
  238. package/build-module/components/page-patterns/duplicate-menu-item.js +51 -16
  239. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
  240. package/build-module/components/page-patterns/grid-item.js +47 -21
  241. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  242. package/build-module/components/page-patterns/header.js +3 -7
  243. package/build-module/components/page-patterns/header.js.map +1 -1
  244. package/build-module/components/page-patterns/index.js +3 -3
  245. package/build-module/components/page-patterns/index.js.map +1 -1
  246. package/build-module/components/page-patterns/patterns-list.js +7 -7
  247. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  248. package/build-module/components/page-patterns/rename-menu-item.js +6 -5
  249. package/build-module/components/page-patterns/rename-menu-item.js.map +1 -1
  250. package/build-module/components/page-patterns/search-items.js +8 -2
  251. package/build-module/components/page-patterns/search-items.js.map +1 -1
  252. package/build-module/components/page-patterns/use-patterns.js +54 -28
  253. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  254. package/build-module/components/page-patterns/utils.js +0 -11
  255. package/build-module/components/page-patterns/utils.js.map +1 -1
  256. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +34 -27
  257. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  258. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +54 -0
  259. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -0
  260. package/build-module/components/sidebar-edit-mode/page-panels/index.js +1 -4
  261. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  262. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
  263. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  264. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +49 -0
  265. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -0
  266. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js +85 -0
  267. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -0
  268. package/build-module/components/sidebar-edit-mode/template-panel/index.js +12 -10
  269. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  270. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +8 -6
  271. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
  272. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +202 -0
  273. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -0
  274. package/build-module/components/sidebar-navigation-screen/index.js +6 -4
  275. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  276. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +32 -5
  277. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  278. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +4 -2
  279. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
  280. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +6 -33
  281. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  282. package/build-module/components/sidebar-navigation-screen-page/index.js +3 -3
  283. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  284. package/build-module/components/sidebar-navigation-screen-pattern/index.js +19 -9
  285. package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  286. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +34 -5
  287. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  288. package/build-module/components/sidebar-navigation-screen-patterns/index.js +10 -38
  289. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  290. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +38 -4
  291. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  292. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +3 -2
  293. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  294. package/build-module/components/sidebar-navigation-screen-template/index.js +2 -2
  295. package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
  296. package/build-module/components/sidebar-navigation-screen-templates/index.js +1 -1
  297. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  298. package/build-module/components/template-actions/index.js +7 -4
  299. package/build-module/components/template-actions/index.js.map +1 -1
  300. package/build-module/components/template-actions/rename-menu-item.js +3 -2
  301. package/build-module/components/template-actions/rename-menu-item.js.map +1 -1
  302. package/build-module/components/welcome-guide/styles.js +2 -2
  303. package/build-module/components/welcome-guide/styles.js.map +1 -1
  304. package/build-module/hooks/push-changes-to-global-styles/index.js +5 -37
  305. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  306. package/build-module/store/actions.js +30 -7
  307. package/build-module/store/actions.js.map +1 -1
  308. package/build-module/utils/constants.js +35 -1
  309. package/build-module/utils/constants.js.map +1 -1
  310. package/build-module/utils/is-template-removable.js +6 -1
  311. package/build-module/utils/is-template-removable.js.map +1 -1
  312. package/build-module/utils/is-template-revertable.js +6 -1
  313. package/build-module/utils/is-template-revertable.js.map +1 -1
  314. package/build-style/style-rtl.css +244 -37
  315. package/build-style/style.css +244 -37
  316. package/lib/inflate.js +4082 -0
  317. package/lib/lib-font.browser.js +3831 -0
  318. package/lib/unbrotli.js +2679 -0
  319. package/package.json +40 -40
  320. package/src/components/add-new-pattern/index.js +83 -5
  321. package/src/components/add-new-template/index.js +3 -2
  322. package/src/components/add-new-template/new-template.js +6 -1
  323. package/src/components/add-new-template/utils.js +12 -3
  324. package/src/components/app/index.js +9 -12
  325. package/src/components/block-editor/back-button.js +6 -2
  326. package/src/components/block-editor/editor-canvas.js +31 -19
  327. package/src/components/block-editor/site-editor-canvas.js +2 -10
  328. package/src/components/block-editor/style.scss +88 -1
  329. package/src/components/block-editor/use-site-editor-settings.js +26 -19
  330. package/src/components/canvas-loader/index.js +12 -1
  331. package/src/components/canvas-loader/style.scss +1 -1
  332. package/src/components/editor/index.js +3 -8
  333. package/src/components/global-styles/dimensions-panel.js +8 -4
  334. package/src/components/global-styles/font-families.js +71 -0
  335. package/src/components/global-styles/font-family-item.js +44 -0
  336. package/src/components/global-styles/font-library-modal/confirm-delete-dialog.js +33 -0
  337. package/src/components/global-styles/font-library-modal/context.js +347 -0
  338. package/src/components/global-styles/font-library-modal/font-card.js +70 -0
  339. package/src/components/global-styles/font-library-modal/font-demo.js +57 -0
  340. package/src/components/global-styles/font-library-modal/font-variant.js +53 -0
  341. package/src/components/global-styles/font-library-modal/fonts-grid.js +55 -0
  342. package/src/components/global-styles/font-library-modal/index.js +42 -0
  343. package/src/components/global-styles/font-library-modal/installed-fonts.js +174 -0
  344. package/src/components/global-styles/font-library-modal/library-font-card.js +40 -0
  345. package/src/components/global-styles/font-library-modal/library-font-details.js +46 -0
  346. package/src/components/global-styles/font-library-modal/library-font-variant.js +54 -0
  347. package/src/components/global-styles/font-library-modal/local-fonts.js +160 -0
  348. package/src/components/global-styles/font-library-modal/resolvers.js +29 -0
  349. package/src/components/global-styles/font-library-modal/style.scss +113 -0
  350. package/src/components/global-styles/font-library-modal/tab-layout.js +50 -0
  351. package/src/components/global-styles/font-library-modal/utils/constants.js +31 -0
  352. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +58 -0
  353. package/src/components/global-styles/font-library-modal/utils/index.js +213 -0
  354. package/src/components/global-styles/font-library-modal/utils/make-families-from-faces.js +15 -0
  355. package/src/components/global-styles/font-library-modal/utils/test/getDisplaySrcFromFontFace.spec.js +53 -0
  356. package/src/components/global-styles/font-library-modal/utils/test/getFontFaceVariantName.spec.js +30 -0
  357. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +240 -0
  358. package/src/components/global-styles/font-library-modal/utils/test/getPreviewStyle.spec.js +121 -0
  359. package/src/components/global-styles/font-library-modal/utils/test/isUrlEncoded.spec.js +31 -0
  360. package/src/components/global-styles/font-library-modal/utils/test/makeFamiliesFromFaces.spec.js +57 -0
  361. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamilies.spec.js +62 -0
  362. package/src/components/global-styles/font-library-modal/utils/test/mergeFontFaces.spec.js +56 -0
  363. package/src/components/global-styles/font-library-modal/utils/test/mergeFontFamilies.spec.js +108 -0
  364. package/src/components/global-styles/font-library-modal/utils/test/setUIValuesNeeded.spec.js +41 -0
  365. package/src/components/global-styles/font-library-modal/utils/test/toggleFont.spec.js +141 -0
  366. package/src/components/global-styles/font-library-modal/utils/toggleFont.js +90 -0
  367. package/src/components/global-styles/global-styles-provider.js +2 -7
  368. package/src/components/global-styles/screen-block.js +42 -20
  369. package/src/components/global-styles/screen-revisions/index.js +0 -2
  370. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
  371. package/src/components/global-styles/screen-typography.js +7 -95
  372. package/src/components/global-styles/style-variations-container.js +0 -2
  373. package/src/components/global-styles/typogrphy-elements.js +110 -0
  374. package/src/components/list/style.scss +2 -0
  375. package/src/components/page-patterns/duplicate-menu-item.js +63 -20
  376. package/src/components/page-patterns/grid-item.js +77 -30
  377. package/src/components/page-patterns/header.js +3 -12
  378. package/src/components/page-patterns/index.js +3 -3
  379. package/src/components/page-patterns/patterns-list.js +7 -7
  380. package/src/components/page-patterns/rename-menu-item.js +18 -7
  381. package/src/components/page-patterns/search-items.js +14 -2
  382. package/src/components/page-patterns/style.scss +1 -5
  383. package/src/components/page-patterns/use-patterns.js +67 -33
  384. package/src/components/page-patterns/utils.js +0 -19
  385. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +47 -33
  386. package/src/components/sidebar-edit-mode/page-panels/hooks.js +83 -0
  387. package/src/components/sidebar-edit-mode/page-panels/index.js +0 -4
  388. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +2 -0
  389. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +44 -0
  390. package/src/components/sidebar-edit-mode/page-panels/style.scss +41 -10
  391. package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +82 -0
  392. package/src/components/sidebar-edit-mode/template-panel/index.js +28 -24
  393. package/src/components/sidebar-edit-mode/template-panel/last-revision.js +19 -15
  394. package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +270 -0
  395. package/src/components/sidebar-navigation-screen/index.js +4 -9
  396. package/src/components/sidebar-navigation-screen/style.scss +7 -1
  397. package/src/components/sidebar-navigation-screen-details-footer/index.js +38 -10
  398. package/src/components/sidebar-navigation-screen-details-footer/style.scss +10 -3
  399. package/src/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +2 -0
  400. package/src/components/sidebar-navigation-screen-global-styles/index.js +6 -44
  401. package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +0 -4
  402. package/src/components/sidebar-navigation-screen-page/index.js +3 -3
  403. package/src/components/sidebar-navigation-screen-pattern/index.js +20 -7
  404. package/src/components/sidebar-navigation-screen-pattern/style.scss +0 -3
  405. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +46 -13
  406. package/src/components/sidebar-navigation-screen-patterns/index.js +14 -49
  407. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +48 -6
  408. package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +3 -5
  409. package/src/components/sidebar-navigation-screen-template/index.js +2 -4
  410. package/src/components/sidebar-navigation-screen-templates/index.js +1 -1
  411. package/src/components/template-actions/index.js +14 -8
  412. package/src/components/template-actions/rename-menu-item.js +15 -4
  413. package/src/components/welcome-guide/styles.js +2 -2
  414. package/src/hooks/push-changes-to-global-styles/index.js +6 -49
  415. package/src/store/actions.js +39 -13
  416. package/src/style.scss +1 -1
  417. package/src/utils/constants.js +38 -3
  418. package/src/utils/is-template-removable.js +8 -1
  419. package/src/utils/is-template-revertable.js +8 -1
  420. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -30
  421. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +0 -1
  422. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -23
  423. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +0 -1
  424. package/src/components/sidebar-navigation-screen-global-styles/style.scss +0 -12
  425. package/src/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -24
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _element = require("@wordpress/element");
9
+ var _i18n = require("@wordpress/i18n");
10
+ var _components = require("@wordpress/components");
11
+ var _constants = require("./utils/constants");
12
+ var _context = require("./context");
13
+ var _libFont = require("../../../../lib/lib-font.browser");
14
+ var _makeFamiliesFromFaces = _interopRequireDefault(require("./utils/make-families-from-faces"));
15
+ var _utils = require("./utils");
16
+ /**
17
+ * WordPress dependencies
18
+ */
19
+
20
+ /**
21
+ * Internal dependencies
22
+ */
23
+
24
+ function LocalFonts() {
25
+ const {
26
+ installFonts
27
+ } = (0, _element.useContext)(_context.FontLibraryContext);
28
+ const handleDropZone = files => {
29
+ handleFilesUpload(files);
30
+ };
31
+ const onFilesUpload = event => {
32
+ handleFilesUpload(event.target.files);
33
+ };
34
+
35
+ /**
36
+ * Filters the selected files to only allow the ones with the allowed extensions
37
+ *
38
+ * @param {Array} files The files to be filtered
39
+ * @return {void}
40
+ */
41
+ const handleFilesUpload = files => {
42
+ const uniqueFilenames = new Set();
43
+ const selectedFiles = [...files];
44
+ const allowedFiles = selectedFiles.filter(file => {
45
+ if (uniqueFilenames.has(file.name)) {
46
+ return false; // Discard duplicates
47
+ }
48
+ // Eliminates files that are not allowed
49
+ const fileExtension = file.name.split('.').pop().toLowerCase();
50
+ if (_constants.ALLOWED_FILE_EXTENSIONS.includes(fileExtension)) {
51
+ uniqueFilenames.add(file.name);
52
+ return true; // Keep file if the extension is allowed
53
+ }
54
+
55
+ return false; // Discard file extension not allowed
56
+ });
57
+
58
+ if (allowedFiles.length > 0) {
59
+ loadFiles(allowedFiles);
60
+ }
61
+ };
62
+
63
+ /**
64
+ * Loads the selected files and reads the font metadata
65
+ *
66
+ * @param {Array} files The files to be loaded
67
+ * @return {void}
68
+ */
69
+ const loadFiles = async files => {
70
+ const fontFacesLoaded = await Promise.all(files.map(async fontFile => {
71
+ const fontFaceData = await getFontFaceMetadata(fontFile);
72
+ await (0, _utils.loadFontFaceInBrowser)(fontFaceData, fontFaceData.file, 'all');
73
+ return fontFaceData;
74
+ }));
75
+ await handleInstall(fontFacesLoaded);
76
+ };
77
+
78
+ // Create a function to read the file as array buffer
79
+ async function readFileAsArrayBuffer(file) {
80
+ return new Promise((resolve, reject) => {
81
+ const reader = new window.FileReader();
82
+ reader.readAsArrayBuffer(file);
83
+ reader.onload = () => resolve(reader.result);
84
+ reader.onerror = reject;
85
+ });
86
+ }
87
+ const getFontFaceMetadata = async fontFile => {
88
+ const buffer = await readFileAsArrayBuffer(fontFile);
89
+ const fontObj = new _libFont.Font('Uploaded Font');
90
+ fontObj.fromDataBuffer(buffer, fontFile.name);
91
+ // Assuming that fromDataBuffer triggers onload event and returning a Promise
92
+ const onloadEvent = await new Promise(resolve => fontObj.onload = resolve);
93
+ const font = onloadEvent.detail.font;
94
+ const {
95
+ name
96
+ } = font.opentype.tables;
97
+ const fontName = name.get(16) || name.get(1);
98
+ const isItalic = name.get(2).toLowerCase().includes('italic');
99
+ const fontWeight = font.opentype.tables['OS/2'].usWeightClass || 'normal';
100
+ const isVariable = !!font.opentype.tables.fvar;
101
+ const weightAxis = isVariable && font.opentype.tables.fvar.axes.find(({
102
+ tag
103
+ }) => tag === 'wght');
104
+ const weightRange = weightAxis ? `${weightAxis.minValue} ${weightAxis.maxValue}` : null;
105
+ return {
106
+ file: fontFile,
107
+ fontFamily: fontName,
108
+ fontStyle: isItalic ? 'italic' : 'normal',
109
+ fontWeight: weightRange || fontWeight
110
+ };
111
+ };
112
+
113
+ /**
114
+ * Creates the font family definition and sends it to the server
115
+ *
116
+ * @param {Array} fontFaces The font faces to be installed
117
+ * @return {void}
118
+ */
119
+ const handleInstall = async fontFaces => {
120
+ const fontFamilies = (0, _makeFamiliesFromFaces.default)(fontFaces);
121
+ await installFonts(fontFamilies);
122
+ };
123
+ return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.__experimentalText, {
124
+ className: "font-library-modal__subtitle"
125
+ }, (0, _i18n.__)('Upload Fonts')), (0, _element.createElement)(_components.__experimentalSpacer, {
126
+ margin: 2
127
+ }), (0, _element.createElement)(_components.DropZone, {
128
+ onFilesDrop: handleDropZone
129
+ }), (0, _element.createElement)(_components.FormFileUpload, {
130
+ accept: _constants.ALLOWED_FILE_EXTENSIONS.map(ext => `.${ext}`).join(','),
131
+ multiple: true,
132
+ onChange: onFilesUpload,
133
+ render: ({
134
+ openFileDialog
135
+ }) => (0, _element.createElement)(_components.Button, {
136
+ className: "font-library-modal__upload-area",
137
+ onClick: openFileDialog
138
+ }, (0, _element.createElement)("span", null, (0, _i18n.__)('Drag and drop your font files here.')))
139
+ }));
140
+ }
141
+ var _default = LocalFonts;
142
+ exports.default = _default;
143
+ //# sourceMappingURL=local-fonts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_element","require","_i18n","_components","_constants","_context","_libFont","_makeFamiliesFromFaces","_interopRequireDefault","_utils","LocalFonts","installFonts","useContext","FontLibraryContext","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","uniqueFilenames","Set","selectedFiles","allowedFiles","filter","file","has","name","fileExtension","split","pop","toLowerCase","ALLOWED_FILE_EXTENSIONS","includes","add","length","loadFiles","fontFacesLoaded","Promise","all","map","fontFile","fontFaceData","getFontFaceMetadata","loadFontFaceInBrowser","handleInstall","readFileAsArrayBuffer","resolve","reject","reader","window","FileReader","readAsArrayBuffer","onload","result","onerror","buffer","fontObj","Font","fromDataBuffer","onloadEvent","font","detail","opentype","tables","fontName","get","isItalic","fontWeight","usWeightClass","isVariable","fvar","weightAxis","axes","find","tag","weightRange","minValue","maxValue","fontFamily","fontStyle","fontFaces","fontFamilies","makeFamiliesFromFaces","createElement","Fragment","__experimentalText","className","__","__experimentalSpacer","margin","DropZone","onFilesDrop","FormFileUpload","accept","ext","join","multiple","onChange","render","openFileDialog","Button","onClick","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/local-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropZone,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\tFormFileUpload,\n} from '@wordpress/components';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_FILE_EXTENSIONS } from './utils/constants';\nimport { FontLibraryContext } from './context';\nimport { Font } from '../../../../lib/lib-font.browser';\nimport makeFamiliesFromFaces from './utils/make-families-from-faces';\nimport { loadFontFaceInBrowser } from './utils';\n\nfunction LocalFonts() {\n\tconst { installFonts } = useContext( FontLibraryContext );\n\n\tconst handleDropZone = ( files ) => {\n\t\thandleFilesUpload( files );\n\t};\n\tconst onFilesUpload = ( event ) => {\n\t\thandleFilesUpload( event.target.files );\n\t};\n\n\t/**\n\t * Filters the selected files to only allow the ones with the allowed extensions\n\t *\n\t * @param {Array} files The files to be filtered\n\t * @return {void}\n\t */\n\tconst handleFilesUpload = ( files ) => {\n\t\tconst uniqueFilenames = new Set();\n\t\tconst selectedFiles = [ ...files ];\n\t\tconst allowedFiles = selectedFiles.filter( ( file ) => {\n\t\t\tif ( uniqueFilenames.has( file.name ) ) {\n\t\t\t\treturn false; // Discard duplicates\n\t\t\t}\n\t\t\t// Eliminates files that are not allowed\n\t\t\tconst fileExtension = file.name.split( '.' ).pop().toLowerCase();\n\t\t\tif ( ALLOWED_FILE_EXTENSIONS.includes( fileExtension ) ) {\n\t\t\t\tuniqueFilenames.add( file.name );\n\t\t\t\treturn true; // Keep file if the extension is allowed\n\t\t\t}\n\t\t\treturn false; // Discard file extension not allowed\n\t\t} );\n\t\tif ( allowedFiles.length > 0 ) {\n\t\t\tloadFiles( allowedFiles );\n\t\t}\n\t};\n\n\t/**\n\t * Loads the selected files and reads the font metadata\n\t *\n\t * @param {Array} files The files to be loaded\n\t * @return {void}\n\t */\n\tconst loadFiles = async ( files ) => {\n\t\tconst fontFacesLoaded = await Promise.all(\n\t\t\tfiles.map( async ( fontFile ) => {\n\t\t\t\tconst fontFaceData = await getFontFaceMetadata( fontFile );\n\t\t\t\tawait loadFontFaceInBrowser(\n\t\t\t\t\tfontFaceData,\n\t\t\t\t\tfontFaceData.file,\n\t\t\t\t\t'all'\n\t\t\t\t);\n\t\t\t\treturn fontFaceData;\n\t\t\t} )\n\t\t);\n\t\tawait handleInstall( fontFacesLoaded );\n\t};\n\n\t// Create a function to read the file as array buffer\n\tasync function readFileAsArrayBuffer( file ) {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tconst reader = new window.FileReader();\n\t\t\treader.readAsArrayBuffer( file );\n\t\t\treader.onload = () => resolve( reader.result );\n\t\t\treader.onerror = reject;\n\t\t} );\n\t}\n\n\tconst getFontFaceMetadata = async ( fontFile ) => {\n\t\tconst buffer = await readFileAsArrayBuffer( fontFile );\n\t\tconst fontObj = new Font( 'Uploaded Font' );\n\t\tfontObj.fromDataBuffer( buffer, fontFile.name );\n\t\t// Assuming that fromDataBuffer triggers onload event and returning a Promise\n\t\tconst onloadEvent = await new Promise(\n\t\t\t( resolve ) => ( fontObj.onload = resolve )\n\t\t);\n\t\tconst font = onloadEvent.detail.font;\n\t\tconst { name } = font.opentype.tables;\n\t\tconst fontName = name.get( 16 ) || name.get( 1 );\n\t\tconst isItalic = name.get( 2 ).toLowerCase().includes( 'italic' );\n\t\tconst fontWeight =\n\t\t\tfont.opentype.tables[ 'OS/2' ].usWeightClass || 'normal';\n\t\tconst isVariable = !! font.opentype.tables.fvar;\n\t\tconst weightAxis =\n\t\t\tisVariable &&\n\t\t\tfont.opentype.tables.fvar.axes.find(\n\t\t\t\t( { tag } ) => tag === 'wght'\n\t\t\t);\n\t\tconst weightRange = weightAxis\n\t\t\t? `${ weightAxis.minValue } ${ weightAxis.maxValue }`\n\t\t\t: null;\n\t\treturn {\n\t\t\tfile: fontFile,\n\t\t\tfontFamily: fontName,\n\t\t\tfontStyle: isItalic ? 'italic' : 'normal',\n\t\t\tfontWeight: weightRange || fontWeight,\n\t\t};\n\t};\n\n\t/**\n\t * Creates the font family definition and sends it to the server\n\t *\n\t * @param {Array} fontFaces The font faces to be installed\n\t * @return {void}\n\t */\n\tconst handleInstall = async ( fontFaces ) => {\n\t\tconst fontFamilies = makeFamiliesFromFaces( fontFaces );\n\t\tawait installFonts( fontFamilies );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t{ __( 'Upload Fonts' ) }\n\t\t\t</Text>\n\t\t\t<Spacer margin={ 2 } />\n\t\t\t<DropZone onFilesDrop={ handleDropZone } />\n\t\t\t<FormFileUpload\n\t\t\t\taccept={ ALLOWED_FILE_EXTENSIONS.map(\n\t\t\t\t\t( ext ) => `.${ ext }`\n\t\t\t\t).join( ',' ) }\n\t\t\t\tmultiple={ true }\n\t\t\t\tonChange={ onFilesUpload }\n\t\t\t\trender={ ( { openFileDialog } ) => (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"font-library-modal__upload-area\"\n\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t{ __( 'Drag and drop your font files here.' ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default LocalFonts;\n"],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.fetchInstallFonts = fetchInstallFonts;
8
+ exports.fetchUninstallFonts = fetchUninstallFonts;
9
+ var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
10
+ /**
11
+ * WordPress dependencies
12
+ *
13
+ */
14
+ /**
15
+ * WordPress dependencies
16
+ */
17
+
18
+ async function fetchInstallFonts(data) {
19
+ const config = {
20
+ path: '/wp/v2/fonts',
21
+ method: 'POST',
22
+ body: data
23
+ };
24
+ return (0, _apiFetch.default)(config);
25
+ }
26
+ async function fetchUninstallFonts(fonts) {
27
+ const data = {
28
+ fontFamilies: fonts
29
+ };
30
+ const config = {
31
+ path: '/wp/v2/fonts',
32
+ method: 'DELETE',
33
+ data
34
+ };
35
+ return (0, _apiFetch.default)(config);
36
+ }
37
+ //# sourceMappingURL=resolvers.js.map
@@ -0,0 +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"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _element = require("@wordpress/element");
8
+ var _components = require("@wordpress/components");
9
+ var _icons = require("@wordpress/icons");
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+
14
+ function TabLayout({
15
+ title,
16
+ description,
17
+ handleBack,
18
+ children,
19
+ footer
20
+ }) {
21
+ return (0, _element.createElement)("div", {
22
+ className: "font-library-modal__tab-layout"
23
+ }, (0, _element.createElement)(_components.__experimentalSpacer, {
24
+ margin: 4
25
+ }), (0, _element.createElement)(_components.__experimentalVStack, {
26
+ spacing: 4,
27
+ justify: "space-between"
28
+ }, (0, _element.createElement)("header", null, (0, _element.createElement)(_components.__experimentalVStack, {
29
+ spacing: 2
30
+ }, (0, _element.createElement)(_components.__experimentalHStack, {
31
+ justify: "flex-start"
32
+ }, !!handleBack && (0, _element.createElement)(_components.Button, {
33
+ variant: "tertiary",
34
+ onClick: handleBack,
35
+ icon: _icons.chevronLeft,
36
+ isSmall: true
37
+ }), title && (0, _element.createElement)(_components.__experimentalHeading, {
38
+ level: 2,
39
+ size: 13,
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)));
42
+ }
43
+ var _default = TabLayout;
44
+ exports.default = _default;
45
+ //# sourceMappingURL=tab-layout.js.map
@@ -0,0 +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"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MODAL_TABS = exports.FONT_WEIGHTS = exports.FONT_STYLES = exports.ALLOWED_FILE_EXTENSIONS = void 0;
7
+ var _i18n = require("@wordpress/i18n");
8
+ /**
9
+ * WordPress dependencies
10
+ */
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
+ const ALLOWED_FILE_EXTENSIONS = ['otf', 'ttf', 'woff', 'woff2'];
19
+ exports.ALLOWED_FILE_EXTENSIONS = ALLOWED_FILE_EXTENSIONS;
20
+ const FONT_WEIGHTS = {
21
+ 100: (0, _i18n._x)('Thin', 'font weight'),
22
+ 200: (0, _i18n._x)('Extra-light', 'font weight'),
23
+ 300: (0, _i18n._x)('Light', 'font weight'),
24
+ 400: (0, _i18n._x)('Normal', 'font weight'),
25
+ 500: (0, _i18n._x)('Medium', 'font weight'),
26
+ 600: (0, _i18n._x)('Semi-bold', 'font weight'),
27
+ 700: (0, _i18n._x)('Bold', 'font weight'),
28
+ 800: (0, _i18n._x)('Extra-bold', 'font weight'),
29
+ 900: (0, _i18n._x)('Black', 'font weight')
30
+ };
31
+ exports.FONT_WEIGHTS = FONT_WEIGHTS;
32
+ const FONT_STYLES = {
33
+ normal: (0, _i18n._x)('Normal', 'font style'),
34
+ italic: (0, _i18n._x)('Italic', 'font style')
35
+ };
36
+ exports.FONT_STYLES = FONT_STYLES;
37
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +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"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = getIntersectingFontFaces;
7
+ /**
8
+ * Retrieves intersecting font faces between two sets of fonts.
9
+ *
10
+ * For each font in the `incoming` list, the function checks for a corresponding match
11
+ * in the `existing` list based on the `slug` property. If a match is found and both
12
+ * have `fontFace` properties, it further narrows down to matching font faces based on
13
+ * the `fontWeight` and `fontStyle`. The result includes the properties of the matched
14
+ * existing font but only with intersecting font faces.
15
+ *
16
+ * @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} incoming - The list of fonts to compare.
17
+ * @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} existing - The reference list of fonts.
18
+ *
19
+ * @return {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} An array of fonts from the `existing` list with intersecting font faces.
20
+ *
21
+ * @example
22
+ * const incomingFonts = [
23
+ * { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] },
24
+ * { slug: 'times-new', fontFace: [{ fontWeight: '700', fontStyle: 'italic' }] }
25
+ * ];
26
+ *
27
+ * const existingFonts = [
28
+ * { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }, { fontWeight: '700', fontStyle: 'italic' }] },
29
+ * { slug: 'helvetica', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }
30
+ * ];
31
+ *
32
+ * getIntersectingFontFaces(incomingFonts, existingFonts);
33
+ * // Returns:
34
+ * // [{ slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }]
35
+ */
36
+ function getIntersectingFontFaces(incoming, existing) {
37
+ const matches = [];
38
+ for (const incomingFont of incoming) {
39
+ const existingFont = existing.find(f => f.slug === incomingFont.slug);
40
+ if (existingFont) {
41
+ if (incomingFont?.fontFace) {
42
+ const matchingFaces = incomingFont.fontFace.filter(face => {
43
+ return (existingFont?.fontFace || []).find(f => {
44
+ return f.fontWeight === face.fontWeight && f.fontStyle === face.fontStyle;
45
+ });
46
+ });
47
+ matches.push({
48
+ ...existingFont,
49
+ fontFace: matchingFaces
50
+ });
51
+ } else {
52
+ matches.push(incomingFont);
53
+ }
54
+ }
55
+ }
56
+ return matches;
57
+ }
58
+ //# sourceMappingURL=get-intersecting-font-faces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getIntersectingFontFaces","incoming","existing","matches","incomingFont","existingFont","find","f","slug","fontFace","matchingFaces","filter","face","fontWeight","fontStyle","push"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js"],"sourcesContent":["/**\n * Retrieves intersecting font faces between two sets of fonts.\n *\n * For each font in the `incoming` list, the function checks for a corresponding match\n * in the `existing` list based on the `slug` property. If a match is found and both\n * have `fontFace` properties, it further narrows down to matching font faces based on\n * the `fontWeight` and `fontStyle`. The result includes the properties of the matched\n * existing font but only with intersecting font faces.\n *\n * @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} incoming - The list of fonts to compare.\n * @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} existing - The reference list of fonts.\n *\n * @return {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} An array of fonts from the `existing` list with intersecting font faces.\n *\n * @example\n * const incomingFonts = [\n * { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] },\n * { slug: 'times-new', fontFace: [{ fontWeight: '700', fontStyle: 'italic' }] }\n * ];\n *\n * const existingFonts = [\n * { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }, { fontWeight: '700', fontStyle: 'italic' }] },\n * { slug: 'helvetica', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }\n * ];\n *\n * getIntersectingFontFaces(incomingFonts, existingFonts);\n * // Returns:\n * // [{ slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }]\n */\nexport default function getIntersectingFontFaces( incoming, existing ) {\n\tconst matches = [];\n\n\tfor ( const incomingFont of incoming ) {\n\t\tconst existingFont = existing.find(\n\t\t\t( f ) => f.slug === incomingFont.slug\n\t\t);\n\n\t\tif ( existingFont ) {\n\t\t\tif ( incomingFont?.fontFace ) {\n\t\t\t\tconst matchingFaces = incomingFont.fontFace.filter(\n\t\t\t\t\t( face ) => {\n\t\t\t\t\t\treturn ( existingFont?.fontFace || [] ).find( ( f ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tf.fontWeight === face.fontWeight &&\n\t\t\t\t\t\t\t\tf.fontStyle === face.fontStyle\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tmatches.push( { ...existingFont, fontFace: matchingFaces } );\n\t\t\t} else {\n\t\t\t\tmatches.push( incomingFont );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn matches;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,wBAAwBA,CAAEC,QAAQ,EAAEC,QAAQ,EAAG;EACtE,MAAMC,OAAO,GAAG,EAAE;EAElB,KAAM,MAAMC,YAAY,IAAIH,QAAQ,EAAG;IACtC,MAAMI,YAAY,GAAGH,QAAQ,CAACI,IAAI,CAC/BC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAKJ,YAAY,CAACI,IAClC,CAAC;IAED,IAAKH,YAAY,EAAG;MACnB,IAAKD,YAAY,EAAEK,QAAQ,EAAG;QAC7B,MAAMC,aAAa,GAAGN,YAAY,CAACK,QAAQ,CAACE,MAAM,CAC/CC,IAAI,IAAM;UACX,OAAO,CAAEP,YAAY,EAAEI,QAAQ,IAAI,EAAE,EAAGH,IAAI,CAAIC,CAAC,IAAM;YACtD,OACCA,CAAC,CAACM,UAAU,KAAKD,IAAI,CAACC,UAAU,IAChCN,CAAC,CAACO,SAAS,KAAKF,IAAI,CAACE,SAAS;UAEhC,CAAE,CAAC;QACJ,CACD,CAAC;QACDX,OAAO,CAACY,IAAI,CAAE;UAAE,GAAGV,YAAY;UAAEI,QAAQ,EAAEC;QAAc,CAAE,CAAC;MAC7D,CAAC,MAAM;QACNP,OAAO,CAACY,IAAI,CAAEX,YAAa,CAAC;MAC7B;IACD;EACD;EAEA,OAAOD,OAAO;AACf"}
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getDisplaySrcFromFontFace = getDisplaySrcFromFontFace;
7
+ exports.getFontFaceVariantName = getFontFaceVariantName;
8
+ exports.getPreviewStyle = getPreviewStyle;
9
+ exports.isUrlEncoded = isUrlEncoded;
10
+ exports.loadFontFaceInBrowser = loadFontFaceInBrowser;
11
+ exports.makeFormDataFromFontFamilies = makeFormDataFromFontFamilies;
12
+ exports.mergeFontFaces = mergeFontFaces;
13
+ exports.mergeFontFamilies = mergeFontFamilies;
14
+ exports.setUIValuesNeeded = setUIValuesNeeded;
15
+ var _constants = require("./constants");
16
+ /**
17
+ * Internal dependencies
18
+ */
19
+
20
+ function setUIValuesNeeded(font, extraValues = {}) {
21
+ if (!font.name && (font.fontFamily || font.slug)) {
22
+ font.name = font.fontFamily || font.slug;
23
+ }
24
+ return {
25
+ ...font,
26
+ ...extraValues
27
+ };
28
+ }
29
+ function isUrlEncoded(url) {
30
+ if (typeof url !== 'string') {
31
+ return false;
32
+ }
33
+ return url !== decodeURIComponent(url);
34
+ }
35
+ function getFontFaceVariantName(face) {
36
+ const weightName = _constants.FONT_WEIGHTS[face.fontWeight] || face.fontWeight;
37
+ const styleName = face.fontStyle === 'normal' ? '' : _constants.FONT_STYLES[face.fontStyle] || face.fontStyle;
38
+ return `${weightName} ${styleName}`;
39
+ }
40
+ function mergeFontFaces(existing = [], incoming = []) {
41
+ const map = new Map();
42
+ for (const face of existing) {
43
+ map.set(`${face.fontWeight}${face.fontStyle}`, face);
44
+ }
45
+ for (const face of incoming) {
46
+ // This will overwrite if the src already exists, keeping it unique.
47
+ map.set(`${face.fontWeight}${face.fontStyle}`, face);
48
+ }
49
+ return Array.from(map.values());
50
+ }
51
+ function mergeFontFamilies(existing = [], incoming = []) {
52
+ const map = new Map();
53
+ // Add the existing array to the map.
54
+ for (const font of existing) {
55
+ map.set(font.slug, {
56
+ ...font
57
+ });
58
+ }
59
+ // Add the incoming array to the map, overwriting existing values excepting fontFace that need to be merged.
60
+ for (const font of incoming) {
61
+ if (map.has(font.slug)) {
62
+ const {
63
+ fontFace: incomingFontFaces,
64
+ ...restIncoming
65
+ } = font;
66
+ const existingFont = map.get(font.slug);
67
+ // Merge the fontFaces existing with the incoming fontFaces.
68
+ const mergedFontFaces = mergeFontFaces(existingFont.fontFace, incomingFontFaces);
69
+ // Except for the fontFace key all the other keys are overwritten with the incoming values.
70
+ map.set(font.slug, {
71
+ ...restIncoming,
72
+ fontFace: mergedFontFaces
73
+ });
74
+ } else {
75
+ map.set(font.slug, {
76
+ ...font
77
+ });
78
+ }
79
+ }
80
+ return Array.from(map.values());
81
+ }
82
+
83
+ /*
84
+ * Loads the font face from a URL and adds it to the browser.
85
+ * It also adds it to the iframe document.
86
+ */
87
+ async function loadFontFaceInBrowser(fontFace, source, addTo = 'all') {
88
+ let dataSource;
89
+ if (typeof source === 'string') {
90
+ dataSource = `url(${source})`;
91
+ // eslint-disable-next-line no-undef
92
+ } else if (source instanceof File) {
93
+ dataSource = await source.arrayBuffer();
94
+ }
95
+
96
+ // eslint-disable-next-line no-undef
97
+ const newFont = new FontFace(fontFace.fontFamily, dataSource, {
98
+ style: fontFace.fontStyle,
99
+ weight: fontFace.fontWeight
100
+ });
101
+ const loadedFace = await newFont.load();
102
+ if (addTo === 'document' || addTo === 'all') {
103
+ document.fonts.add(loadedFace);
104
+ }
105
+ if (addTo === 'iframe' || addTo === 'all') {
106
+ const iframeDocument = document.querySelector('iframe[name="editor-canvas"]').contentDocument;
107
+ iframeDocument.fonts.add(loadedFace);
108
+ }
109
+ }
110
+ function getDisplaySrcFromFontFace(input, urlPrefix) {
111
+ let src;
112
+ if (Array.isArray(input)) {
113
+ src = input[0];
114
+ } else {
115
+ src = input;
116
+ }
117
+ // If it is a theme font, we need to make the url absolute
118
+ if (src.startsWith('file:.') && urlPrefix) {
119
+ src = src.replace('file:.', urlPrefix);
120
+ }
121
+ if (!isUrlEncoded(src)) {
122
+ src = encodeURI(src);
123
+ }
124
+ return src;
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
+ function makeFormDataFromFontFamilies(fontFamilies) {
177
+ const formData = new FormData();
178
+ const newFontFamilies = fontFamilies.map((family, familyIndex) => {
179
+ if (family?.fontFace) {
180
+ family.fontFace = family.fontFace.map((face, faceIndex) => {
181
+ if (face.file) {
182
+ // Slugified file name because the it might contain spaces or characters treated differently on the server.
183
+ const fileId = `file-${familyIndex}-${faceIndex}`;
184
+ // Add the files to the formData
185
+ formData.append(fileId, face.file, face.file.name);
186
+ // remove the file object from the face object the file is referenced by the uploadedFile key
187
+ const {
188
+ file,
189
+ ...faceWithoutFileProperty
190
+ } = face;
191
+ const newFace = {
192
+ ...faceWithoutFileProperty,
193
+ uploadedFile: fileId
194
+ };
195
+ return newFace;
196
+ }
197
+ return face;
198
+ });
199
+ }
200
+ return family;
201
+ });
202
+ formData.append('fontFamilies', JSON.stringify(newFontFamilies));
203
+ return formData;
204
+ }
205
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = makeFamiliesFromFaces;
7
+ function makeFamiliesFromFaces(fontFaces) {
8
+ const fontFamiliesObject = fontFaces.reduce((acc, item) => {
9
+ if (!acc[item.fontFamily]) {
10
+ acc[item.fontFamily] = {
11
+ name: item.fontFamily,
12
+ fontFamily: item.fontFamily,
13
+ slug: item.fontFamily.replace(/\s+/g, '-').toLowerCase(),
14
+ fontFace: []
15
+ };
16
+ }
17
+ acc[item.fontFamily].fontFace.push(item);
18
+ return acc;
19
+ }, {});
20
+ return Object.values(fontFamiliesObject);
21
+ }
22
+ //# sourceMappingURL=make-families-from-faces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["makeFamiliesFromFaces","fontFaces","fontFamiliesObject","reduce","acc","item","fontFamily","name","slug","replace","toLowerCase","fontFace","push","Object","values"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/make-families-from-faces.js"],"sourcesContent":["export default function makeFamiliesFromFaces( fontFaces ) {\n\tconst fontFamiliesObject = fontFaces.reduce( ( acc, item ) => {\n\t\tif ( ! acc[ item.fontFamily ] ) {\n\t\t\tacc[ item.fontFamily ] = {\n\t\t\t\tname: item.fontFamily,\n\t\t\t\tfontFamily: item.fontFamily,\n\t\t\t\tslug: item.fontFamily.replace( /\\s+/g, '-' ).toLowerCase(),\n\t\t\t\tfontFace: [],\n\t\t\t};\n\t\t}\n\t\tacc[ item.fontFamily ].fontFace.push( item );\n\t\treturn acc;\n\t}, {} );\n\treturn Object.values( fontFamiliesObject );\n}\n"],"mappings":";;;;;;AAAe,SAASA,qBAAqBA,CAAEC,SAAS,EAAG;EAC1D,MAAMC,kBAAkB,GAAGD,SAAS,CAACE,MAAM,CAAE,CAAEC,GAAG,EAAEC,IAAI,KAAM;IAC7D,IAAK,CAAED,GAAG,CAAEC,IAAI,CAACC,UAAU,CAAE,EAAG;MAC/BF,GAAG,CAAEC,IAAI,CAACC,UAAU,CAAE,GAAG;QACxBC,IAAI,EAAEF,IAAI,CAACC,UAAU;QACrBA,UAAU,EAAED,IAAI,CAACC,UAAU;QAC3BE,IAAI,EAAEH,IAAI,CAACC,UAAU,CAACG,OAAO,CAAE,MAAM,EAAE,GAAI,CAAC,CAACC,WAAW,CAAC,CAAC;QAC1DC,QAAQ,EAAE;MACX,CAAC;IACF;IACAP,GAAG,CAAEC,IAAI,CAACC,UAAU,CAAE,CAACK,QAAQ,CAACC,IAAI,CAAEP,IAAK,CAAC;IAC5C,OAAOD,GAAG;EACX,CAAC,EAAE,CAAC,CAAE,CAAC;EACP,OAAOS,MAAM,CAACC,MAAM,CAAEZ,kBAAmB,CAAC;AAC3C"}