@wordpress/edit-site 5.34.0 → 6.0.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 (977) hide show
  1. package/CHANGELOG.md +16 -3
  2. package/build/components/add-new-page/index.js +33 -27
  3. package/build/components/add-new-page/index.js.map +1 -1
  4. package/build/components/add-new-pattern/index.js +95 -78
  5. package/build/components/add-new-pattern/index.js.map +1 -1
  6. package/build/components/add-new-template/add-custom-generic-template-modal-content.js +35 -30
  7. package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  8. package/build/components/add-new-template/add-custom-template-modal-content.js +119 -95
  9. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  10. package/build/components/add-new-template/index.js +89 -73
  11. package/build/components/add-new-template/index.js.map +1 -1
  12. package/build/components/add-new-template/utils.js +36 -17
  13. package/build/components/add-new-template/utils.js.map +1 -1
  14. package/build/components/app/index.js +13 -5
  15. package/build/components/app/index.js.map +1 -1
  16. package/build/components/block-editor/block-inspector-button.js +5 -4
  17. package/build/components/block-editor/block-inspector-button.js.map +1 -1
  18. package/build/components/block-editor/use-editor-iframe-props.js +88 -0
  19. package/build/components/block-editor/use-editor-iframe-props.js.map +1 -0
  20. package/build/components/canvas-loader/index.js +13 -12
  21. package/build/components/canvas-loader/index.js.map +1 -1
  22. package/build/components/dataviews-actions/index.js +49 -0
  23. package/build/components/dataviews-actions/index.js.map +1 -0
  24. package/build/components/editor/index.js +107 -140
  25. package/build/components/editor/index.js.map +1 -1
  26. package/build/components/editor-canvas-container/index.js +27 -29
  27. package/build/components/editor-canvas-container/index.js.map +1 -1
  28. package/build/components/error-boundary/index.js +2 -2
  29. package/build/components/error-boundary/index.js.map +1 -1
  30. package/build/components/error-boundary/warning.js +13 -11
  31. package/build/components/error-boundary/warning.js.map +1 -1
  32. package/build/components/global-styles/background-panel.js +19 -6
  33. package/build/components/global-styles/background-panel.js.map +1 -1
  34. package/build/components/global-styles/block-preview-panel.js +19 -17
  35. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  36. package/build/components/global-styles/color-indicator-wrapper.js +4 -4
  37. package/build/components/global-styles/color-indicator-wrapper.js.map +1 -1
  38. package/build/components/global-styles/color-palette-panel.js +32 -28
  39. package/build/components/global-styles/color-palette-panel.js.map +1 -1
  40. package/build/components/global-styles/dimensions-panel.js +2 -2
  41. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  42. package/build/components/global-styles/font-families.js +55 -39
  43. package/build/components/global-styles/font-families.js.map +1 -1
  44. package/build/components/global-styles/font-family-item.js +17 -13
  45. package/build/components/global-styles/font-family-item.js.map +1 -1
  46. package/build/components/global-styles/font-library-modal/collection-font-variant.js +25 -22
  47. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  48. package/build/components/global-styles/font-library-modal/context.js +7 -30
  49. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  50. package/build/components/global-styles/font-library-modal/font-card.js +24 -16
  51. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
  52. package/build/components/global-styles/font-library-modal/font-collection.js +195 -152
  53. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  54. package/build/components/global-styles/font-library-modal/font-demo.js +14 -12
  55. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  56. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +29 -20
  57. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  58. package/build/components/global-styles/font-library-modal/index.js +41 -36
  59. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  60. package/build/components/global-styles/font-library-modal/installed-fonts.js +153 -109
  61. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  62. package/build/components/global-styles/font-library-modal/library-font-details.js +16 -14
  63. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  64. package/build/components/global-styles/font-library-modal/library-font-variant.js +25 -22
  65. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  66. package/build/components/global-styles/font-library-modal/upload-fonts.js +40 -34
  67. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  68. package/build/components/global-styles/font-library-modal/utils/index.js +3 -3
  69. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  70. package/build/components/global-styles/gradients-palette-panel.js +41 -38
  71. package/build/components/global-styles/gradients-palette-panel.js.map +1 -1
  72. package/build/components/global-styles/header.js +37 -28
  73. package/build/components/global-styles/header.js.map +1 -1
  74. package/build/components/global-styles/highlighted-colors.js +3 -4
  75. package/build/components/global-styles/highlighted-colors.js.map +1 -1
  76. package/build/components/global-styles/hooks.js +11 -20
  77. package/build/components/global-styles/hooks.js.map +1 -1
  78. package/build/components/global-styles/icon-with-current-color.js +4 -4
  79. package/build/components/global-styles/icon-with-current-color.js.map +1 -1
  80. package/build/components/global-styles/navigation-button.js +15 -11
  81. package/build/components/global-styles/navigation-button.js.map +1 -1
  82. package/build/components/global-styles/palette.js +39 -32
  83. package/build/components/global-styles/palette.js.map +1 -1
  84. package/build/components/global-styles/preset-colors.js +28 -0
  85. package/build/components/global-styles/preset-colors.js.map +1 -0
  86. package/build/components/global-styles/preview-colors.js +23 -25
  87. package/build/components/global-styles/preview-colors.js.map +1 -1
  88. package/build/components/global-styles/preview-iframe.js +34 -29
  89. package/build/components/global-styles/preview-iframe.js.map +1 -1
  90. package/build/components/global-styles/preview-styles.js +95 -90
  91. package/build/components/global-styles/preview-styles.js.map +1 -1
  92. package/build/components/global-styles/root-menu.js +28 -21
  93. package/build/components/global-styles/root-menu.js.map +1 -1
  94. package/build/components/global-styles/screen-background.js +6 -4
  95. package/build/components/global-styles/screen-background.js.map +1 -1
  96. package/build/components/global-styles/screen-block-list.js +33 -27
  97. package/build/components/global-styles/screen-block-list.js.map +1 -1
  98. package/build/components/global-styles/screen-block.js +62 -53
  99. package/build/components/global-styles/screen-block.js.map +1 -1
  100. package/build/components/global-styles/screen-color-palette.js +29 -19
  101. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  102. package/build/components/global-styles/screen-colors.js +18 -17
  103. package/build/components/global-styles/screen-colors.js.map +1 -1
  104. package/build/components/global-styles/screen-css.js +20 -14
  105. package/build/components/global-styles/screen-css.js.map +1 -1
  106. package/build/components/global-styles/screen-layout.js +9 -4
  107. package/build/components/global-styles/screen-layout.js.map +1 -1
  108. package/build/components/global-styles/screen-revisions/index.js +52 -42
  109. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  110. package/build/components/global-styles/screen-revisions/revisions-buttons.js +82 -71
  111. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  112. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +1 -0
  113. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  114. package/build/components/global-styles/screen-root.js +76 -42
  115. package/build/components/global-styles/screen-root.js.map +1 -1
  116. package/build/components/global-styles/screen-shadows.js +22 -0
  117. package/build/components/global-styles/screen-shadows.js.map +1 -0
  118. package/build/components/global-styles/screen-style-variations.js +14 -9
  119. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  120. package/build/components/global-styles/screen-typography-element.js +50 -45
  121. package/build/components/global-styles/screen-typography-element.js.map +1 -1
  122. package/build/components/global-styles/screen-typography.js +15 -11
  123. package/build/components/global-styles/screen-typography.js.map +1 -1
  124. package/build/components/global-styles/shadow-utils.js +230 -0
  125. package/build/components/global-styles/shadow-utils.js.map +1 -0
  126. package/build/components/global-styles/shadows-edit-panel.js +458 -0
  127. package/build/components/global-styles/shadows-edit-panel.js.map +1 -0
  128. package/build/components/global-styles/shadows-panel.js +128 -0
  129. package/build/components/global-styles/shadows-panel.js.map +1 -0
  130. package/build/components/global-styles/style-variations-container.js +67 -18
  131. package/build/components/global-styles/style-variations-container.js.map +1 -1
  132. package/build/components/global-styles/subtitle.js +5 -4
  133. package/build/components/global-styles/subtitle.js.map +1 -1
  134. package/build/components/global-styles/typography-elements.js +53 -45
  135. package/build/components/global-styles/typography-elements.js.map +1 -1
  136. package/build/components/global-styles/typography-example.js +16 -10
  137. package/build/components/global-styles/typography-example.js.map +1 -1
  138. package/build/components/global-styles/typography-panel.js +2 -2
  139. package/build/components/global-styles/typography-panel.js.map +1 -1
  140. package/build/components/global-styles/typography-preview.js +5 -4
  141. package/build/components/global-styles/typography-preview.js.map +1 -1
  142. package/build/components/global-styles/ui.js +124 -89
  143. package/build/components/global-styles/ui.js.map +1 -1
  144. package/build/components/global-styles/utils.js +28 -0
  145. package/build/components/global-styles/utils.js.map +1 -1
  146. package/build/components/global-styles/variations/variation.js +36 -25
  147. package/build/components/global-styles/variations/variation.js.map +1 -1
  148. package/build/components/global-styles/variations/variations-color.js +19 -14
  149. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  150. package/build/components/global-styles/variations/variations-panel.js +27 -17
  151. package/build/components/global-styles/variations/variations-panel.js.map +1 -1
  152. package/build/components/global-styles/variations/variations-typography.js +37 -31
  153. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  154. package/build/components/global-styles-renderer/index.js +5 -1
  155. package/build/components/global-styles-renderer/index.js.map +1 -1
  156. package/build/components/global-styles-sidebar/default-sidebar.js +56 -0
  157. package/build/components/global-styles-sidebar/default-sidebar.js.map +1 -0
  158. package/build/components/{sidebar-edit-mode/global-styles-sidebar.js → global-styles-sidebar/index.js} +37 -26
  159. package/build/components/global-styles-sidebar/index.js.map +1 -0
  160. package/build/components/layout/index.js +113 -99
  161. package/build/components/layout/index.js.map +1 -1
  162. package/build/components/layout/router.js +110 -75
  163. package/build/components/layout/router.js.map +1 -1
  164. package/build/components/media/index.js +2 -2
  165. package/build/components/media/index.js.map +1 -1
  166. package/build/components/{header-edit-mode/more-menu → more-menu}/index.js +7 -3
  167. package/build/components/more-menu/index.js.map +1 -0
  168. package/build/components/{header-edit-mode/more-menu → more-menu}/site-export.js +5 -4
  169. package/build/components/more-menu/site-export.js.map +1 -0
  170. package/build/components/{header-edit-mode/more-menu → more-menu}/welcome-guide-menu-item.js +5 -4
  171. package/build/components/more-menu/welcome-guide-menu-item.js.map +1 -0
  172. package/build/components/page/header.js +24 -20
  173. package/build/components/page/header.js.map +1 -1
  174. package/build/components/page/index.js +14 -12
  175. package/build/components/page/index.js.map +1 -1
  176. package/build/components/page-pages/index.js +136 -66
  177. package/build/components/page-pages/index.js.map +1 -1
  178. package/build/components/page-patterns/delete-category-menu-item.js +23 -20
  179. package/build/components/page-patterns/delete-category-menu-item.js.map +1 -1
  180. package/build/components/page-patterns/header.js +47 -32
  181. package/build/components/page-patterns/header.js.map +1 -1
  182. package/build/components/page-patterns/index.js +120 -125
  183. package/build/components/page-patterns/index.js.map +1 -1
  184. package/build/components/page-patterns/rename-category-menu-item.js +14 -11
  185. package/build/components/page-patterns/rename-category-menu-item.js.map +1 -1
  186. package/build/components/page-patterns/use-patterns.js +7 -6
  187. package/build/components/page-patterns/use-patterns.js.map +1 -1
  188. package/build/components/page-templates/index.js +83 -72
  189. package/build/components/page-templates/index.js.map +1 -1
  190. package/build/components/pagination/index.js +51 -42
  191. package/build/components/pagination/index.js.map +1 -1
  192. package/build/components/plugin-template-setting-panel/index.js +4 -2
  193. package/build/components/plugin-template-setting-panel/index.js.map +1 -1
  194. package/build/components/resizable-frame/index.js +48 -34
  195. package/build/components/resizable-frame/index.js.map +1 -1
  196. package/build/components/revisions/index.js +31 -22
  197. package/build/components/revisions/index.js.map +1 -1
  198. package/build/components/routes/link.js +5 -4
  199. package/build/components/routes/link.js.map +1 -1
  200. package/build/components/save-button/index.js +5 -4
  201. package/build/components/save-button/index.js.map +1 -1
  202. package/build/components/save-hub/index.js +12 -11
  203. package/build/components/save-hub/index.js.map +1 -1
  204. package/build/components/save-panel/index.js +36 -30
  205. package/build/components/save-panel/index.js.map +1 -1
  206. package/build/components/sidebar/index.js +68 -35
  207. package/build/components/sidebar/index.js.map +1 -1
  208. package/build/components/sidebar-button/index.js +4 -4
  209. package/build/components/sidebar-button/index.js.map +1 -1
  210. package/build/components/sidebar-dataviews/add-new-view.js +56 -48
  211. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  212. package/build/components/sidebar-dataviews/custom-dataviews-list.js +106 -89
  213. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  214. package/build/components/sidebar-dataviews/dataview-item.js +14 -12
  215. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
  216. package/build/components/sidebar-dataviews/default-views.js +48 -0
  217. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  218. package/build/components/sidebar-dataviews/index.js +21 -22
  219. package/build/components/sidebar-dataviews/index.js.map +1 -1
  220. package/build/components/sidebar-navigation-item/index.js +32 -28
  221. package/build/components/sidebar-navigation-item/index.js.map +1 -1
  222. package/build/components/sidebar-navigation-screen/index.js +56 -70
  223. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  224. package/build/components/sidebar-navigation-screen-details-footer/index.js +24 -17
  225. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  226. package/build/components/sidebar-navigation-screen-details-panel/index.js +9 -7
  227. package/build/components/sidebar-navigation-screen-details-panel/index.js.map +1 -1
  228. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js +5 -4
  229. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js.map +1 -1
  230. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +7 -7
  231. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
  232. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js +5 -4
  233. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js.map +1 -1
  234. package/build/components/sidebar-navigation-screen-global-styles/index.js +57 -45
  235. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  236. package/build/components/sidebar-navigation-screen-main/index.js +45 -22
  237. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  238. package/build/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js +5 -4
  239. package/build/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -1
  240. package/build/components/sidebar-navigation-screen-navigation-menu/index.js +20 -12
  241. package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  242. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js +61 -35
  243. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  244. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +10 -8
  245. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  246. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +42 -36
  247. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  248. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +18 -12
  249. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  250. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  251. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  252. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +36 -22
  253. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  254. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +48 -40
  255. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  256. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +12 -9
  257. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  258. package/build/components/sidebar-navigation-screen-patterns/category-item.js +12 -10
  259. package/build/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -1
  260. package/build/components/sidebar-navigation-screen-patterns/index.js +62 -77
  261. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  262. package/build/components/sidebar-navigation-screen-templates-browse/content.js +17 -17
  263. package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  264. package/build/components/sidebar-navigation-screen-templates-browse/index.js +8 -5
  265. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  266. package/build/components/site-hub/index.js +83 -74
  267. package/build/components/site-hub/index.js.map +1 -1
  268. package/build/components/site-icon/index.js +9 -8
  269. package/build/components/site-icon/index.js.map +1 -1
  270. package/build/components/style-book/index.js +122 -103
  271. package/build/components/style-book/index.js.map +1 -1
  272. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +10 -30
  273. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  274. package/build/components/table/index.js +23 -15
  275. package/build/components/table/index.js.map +1 -1
  276. package/build/components/template-part-converter/convert-to-regular.js +5 -4
  277. package/build/components/template-part-converter/convert-to-regular.js.map +1 -1
  278. package/build/components/template-part-converter/convert-to-template-part.js +23 -17
  279. package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
  280. package/build/components/template-part-converter/index.js +30 -11
  281. package/build/components/template-part-converter/index.js.map +1 -1
  282. package/build/components/welcome-guide/editor.js +20 -15
  283. package/build/components/welcome-guide/editor.js.map +1 -1
  284. package/build/components/welcome-guide/image.js +13 -12
  285. package/build/components/welcome-guide/image.js.map +1 -1
  286. package/build/components/welcome-guide/index.js +4 -2
  287. package/build/components/welcome-guide/index.js.map +1 -1
  288. package/build/components/welcome-guide/page.js +18 -13
  289. package/build/components/welcome-guide/page.js.map +1 -1
  290. package/build/components/welcome-guide/styles.js +45 -28
  291. package/build/components/welcome-guide/styles.js.map +1 -1
  292. package/build/components/welcome-guide/template.js +18 -13
  293. package/build/components/welcome-guide/template.js.map +1 -1
  294. package/build/deprecated.js +4 -4
  295. package/build/deprecated.js.map +1 -1
  296. package/build/hooks/commands/use-common-commands.js +12 -24
  297. package/build/hooks/commands/use-common-commands.js.map +1 -1
  298. package/build/hooks/commands/use-edit-mode-commands.js +2 -116
  299. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  300. package/build/hooks/index.js +0 -1
  301. package/build/hooks/index.js.map +1 -1
  302. package/build/hooks/push-changes-to-global-styles/index.js +25 -16
  303. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  304. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +7 -3
  305. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  306. package/build/index.js +3 -3
  307. package/build/index.js.map +1 -1
  308. package/build/store/private-actions.js +7 -1
  309. package/build/store/private-actions.js.map +1 -1
  310. package/build/store/selectors.js +2 -2
  311. package/build/store/selectors.js.map +1 -1
  312. package/build/utils/template-part-create.js +0 -62
  313. package/build/utils/template-part-create.js.map +1 -1
  314. package/build/utils/use-activate-theme.js +9 -7
  315. package/build/utils/use-activate-theme.js.map +1 -1
  316. package/build-module/components/add-new-page/index.js +34 -27
  317. package/build-module/components/add-new-page/index.js.map +1 -1
  318. package/build-module/components/add-new-pattern/index.js +98 -78
  319. package/build-module/components/add-new-pattern/index.js.map +1 -1
  320. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js +36 -30
  321. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  322. package/build-module/components/add-new-template/add-custom-template-modal-content.js +121 -95
  323. package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  324. package/build-module/components/add-new-template/index.js +91 -73
  325. package/build-module/components/add-new-template/index.js.map +1 -1
  326. package/build-module/components/add-new-template/utils.js +36 -17
  327. package/build-module/components/add-new-template/utils.js.map +1 -1
  328. package/build-module/components/app/index.js +15 -6
  329. package/build-module/components/app/index.js.map +1 -1
  330. package/build-module/components/block-editor/block-inspector-button.js +5 -4
  331. package/build-module/components/block-editor/block-inspector-button.js.map +1 -1
  332. package/build-module/components/block-editor/use-editor-iframe-props.js +80 -0
  333. package/build-module/components/block-editor/use-editor-iframe-props.js.map +1 -0
  334. package/build-module/components/canvas-loader/index.js +14 -13
  335. package/build-module/components/canvas-loader/index.js.map +1 -1
  336. package/build-module/components/dataviews-actions/index.js +41 -0
  337. package/build-module/components/dataviews-actions/index.js.map +1 -0
  338. package/build-module/components/editor/index.js +113 -144
  339. package/build-module/components/editor/index.js.map +1 -1
  340. package/build-module/components/editor-canvas-container/index.js +29 -30
  341. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  342. package/build-module/components/error-boundary/index.js +2 -2
  343. package/build-module/components/error-boundary/index.js.map +1 -1
  344. package/build-module/components/error-boundary/warning.js +13 -11
  345. package/build-module/components/error-boundary/warning.js.map +1 -1
  346. package/build-module/components/global-styles/background-panel.js +18 -6
  347. package/build-module/components/global-styles/background-panel.js.map +1 -1
  348. package/build-module/components/global-styles/block-preview-panel.js +19 -17
  349. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  350. package/build-module/components/global-styles/color-indicator-wrapper.js +4 -4
  351. package/build-module/components/global-styles/color-indicator-wrapper.js.map +1 -1
  352. package/build-module/components/global-styles/color-palette-panel.js +32 -28
  353. package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
  354. package/build-module/components/global-styles/dimensions-panel.js +2 -2
  355. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  356. package/build-module/components/global-styles/font-families.js +58 -40
  357. package/build-module/components/global-styles/font-families.js.map +1 -1
  358. package/build-module/components/global-styles/font-family-item.js +18 -13
  359. package/build-module/components/global-styles/font-family-item.js.map +1 -1
  360. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +26 -22
  361. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  362. package/build-module/components/global-styles/font-library-modal/context.js +7 -30
  363. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  364. package/build-module/components/global-styles/font-library-modal/font-card.js +25 -16
  365. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
  366. package/build-module/components/global-styles/font-library-modal/font-collection.js +198 -153
  367. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  368. package/build-module/components/global-styles/font-library-modal/font-demo.js +14 -12
  369. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  370. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +30 -20
  371. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  372. package/build-module/components/global-styles/font-library-modal/index.js +42 -36
  373. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  374. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +157 -111
  375. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  376. package/build-module/components/global-styles/font-library-modal/library-font-details.js +18 -14
  377. package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  378. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +26 -22
  379. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  380. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +42 -35
  381. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  382. package/build-module/components/global-styles/font-library-modal/utils/index.js +3 -3
  383. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  384. package/build-module/components/global-styles/gradients-palette-panel.js +42 -38
  385. package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -1
  386. package/build-module/components/global-styles/header.js +38 -28
  387. package/build-module/components/global-styles/header.js.map +1 -1
  388. package/build-module/components/global-styles/highlighted-colors.js +3 -4
  389. package/build-module/components/global-styles/highlighted-colors.js.map +1 -1
  390. package/build-module/components/global-styles/hooks.js +11 -20
  391. package/build-module/components/global-styles/hooks.js.map +1 -1
  392. package/build-module/components/global-styles/icon-with-current-color.js +4 -4
  393. package/build-module/components/global-styles/icon-with-current-color.js.map +1 -1
  394. package/build-module/components/global-styles/navigation-button.js +16 -11
  395. package/build-module/components/global-styles/navigation-button.js.map +1 -1
  396. package/build-module/components/global-styles/palette.js +42 -34
  397. package/build-module/components/global-styles/palette.js.map +1 -1
  398. package/build-module/components/global-styles/preset-colors.js +21 -0
  399. package/build-module/components/global-styles/preset-colors.js.map +1 -0
  400. package/build-module/components/global-styles/preview-colors.js +23 -25
  401. package/build-module/components/global-styles/preview-colors.js.map +1 -1
  402. package/build-module/components/global-styles/preview-iframe.js +36 -29
  403. package/build-module/components/global-styles/preview-iframe.js.map +1 -1
  404. package/build-module/components/global-styles/preview-styles.js +96 -90
  405. package/build-module/components/global-styles/preview-styles.js.map +1 -1
  406. package/build-module/components/global-styles/root-menu.js +31 -22
  407. package/build-module/components/global-styles/root-menu.js.map +1 -1
  408. package/build-module/components/global-styles/screen-background.js +8 -4
  409. package/build-module/components/global-styles/screen-background.js.map +1 -1
  410. package/build-module/components/global-styles/screen-block-list.js +35 -27
  411. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  412. package/build-module/components/global-styles/screen-block.js +64 -53
  413. package/build-module/components/global-styles/screen-block.js.map +1 -1
  414. package/build-module/components/global-styles/screen-color-palette.js +31 -19
  415. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  416. package/build-module/components/global-styles/screen-colors.js +20 -17
  417. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  418. package/build-module/components/global-styles/screen-css.js +22 -14
  419. package/build-module/components/global-styles/screen-css.js.map +1 -1
  420. package/build-module/components/global-styles/screen-layout.js +11 -4
  421. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  422. package/build-module/components/global-styles/screen-revisions/index.js +54 -42
  423. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  424. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +83 -71
  425. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  426. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +1 -0
  427. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  428. package/build-module/components/global-styles/screen-root.js +78 -42
  429. package/build-module/components/global-styles/screen-root.js.map +1 -1
  430. package/build-module/components/global-styles/screen-shadows.js +13 -0
  431. package/build-module/components/global-styles/screen-shadows.js.map +1 -0
  432. package/build-module/components/global-styles/screen-style-variations.js +16 -9
  433. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  434. package/build-module/components/global-styles/screen-typography-element.js +52 -45
  435. package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
  436. package/build-module/components/global-styles/screen-typography.js +17 -11
  437. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  438. package/build-module/components/global-styles/shadow-utils.js +221 -0
  439. package/build-module/components/global-styles/shadow-utils.js.map +1 -0
  440. package/build-module/components/global-styles/shadows-edit-panel.js +452 -0
  441. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -0
  442. package/build-module/components/global-styles/shadows-panel.js +121 -0
  443. package/build-module/components/global-styles/shadows-panel.js.map +1 -0
  444. package/build-module/components/global-styles/style-variations-container.js +68 -19
  445. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  446. package/build-module/components/global-styles/subtitle.js +5 -4
  447. package/build-module/components/global-styles/subtitle.js.map +1 -1
  448. package/build-module/components/global-styles/typography-elements.js +54 -45
  449. package/build-module/components/global-styles/typography-elements.js.map +1 -1
  450. package/build-module/components/global-styles/typography-example.js +16 -9
  451. package/build-module/components/global-styles/typography-example.js.map +1 -1
  452. package/build-module/components/global-styles/typography-panel.js +2 -2
  453. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  454. package/build-module/components/global-styles/typography-preview.js +5 -4
  455. package/build-module/components/global-styles/typography-preview.js.map +1 -1
  456. package/build-module/components/global-styles/ui.js +126 -89
  457. package/build-module/components/global-styles/ui.js.map +1 -1
  458. package/build-module/components/global-styles/utils.js +27 -0
  459. package/build-module/components/global-styles/utils.js.map +1 -1
  460. package/build-module/components/global-styles/variations/variation.js +35 -24
  461. package/build-module/components/global-styles/variations/variation.js.map +1 -1
  462. package/build-module/components/global-styles/variations/variations-color.js +21 -15
  463. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  464. package/build-module/components/global-styles/variations/variations-panel.js +28 -18
  465. package/build-module/components/global-styles/variations/variations-panel.js.map +1 -1
  466. package/build-module/components/global-styles/variations/variations-typography.js +38 -31
  467. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  468. package/build-module/components/global-styles-renderer/index.js +5 -1
  469. package/build-module/components/global-styles-renderer/index.js.map +1 -1
  470. package/build-module/components/global-styles-sidebar/default-sidebar.js +51 -0
  471. package/build-module/components/global-styles-sidebar/default-sidebar.js.map +1 -0
  472. package/build-module/components/{sidebar-edit-mode/global-styles-sidebar.js → global-styles-sidebar/index.js} +38 -26
  473. package/build-module/components/global-styles-sidebar/index.js.map +1 -0
  474. package/build-module/components/layout/index.js +116 -100
  475. package/build-module/components/layout/index.js.map +1 -1
  476. package/build-module/components/layout/router.js +110 -76
  477. package/build-module/components/layout/router.js.map +1 -1
  478. package/build-module/components/media/index.js +2 -2
  479. package/build-module/components/media/index.js.map +1 -1
  480. package/build-module/components/{header-edit-mode/more-menu → more-menu}/index.js +9 -3
  481. package/build-module/components/more-menu/index.js.map +1 -0
  482. package/build-module/components/{header-edit-mode/more-menu → more-menu}/site-export.js +5 -4
  483. package/build-module/components/more-menu/site-export.js.map +1 -0
  484. package/build-module/components/{header-edit-mode/more-menu → more-menu}/welcome-guide-menu-item.js +5 -4
  485. package/build-module/components/more-menu/welcome-guide-menu-item.js.map +1 -0
  486. package/build-module/components/page/header.js +25 -19
  487. package/build-module/components/page/header.js.map +1 -1
  488. package/build-module/components/page/index.js +16 -13
  489. package/build-module/components/page/index.js.map +1 -1
  490. package/build-module/components/page-pages/index.js +141 -69
  491. package/build-module/components/page-pages/index.js.map +1 -1
  492. package/build-module/components/page-patterns/delete-category-menu-item.js +25 -20
  493. package/build-module/components/page-patterns/delete-category-menu-item.js.map +1 -1
  494. package/build-module/components/page-patterns/header.js +48 -32
  495. package/build-module/components/page-patterns/header.js.map +1 -1
  496. package/build-module/components/page-patterns/index.js +121 -125
  497. package/build-module/components/page-patterns/index.js.map +1 -1
  498. package/build-module/components/page-patterns/rename-category-menu-item.js +16 -11
  499. package/build-module/components/page-patterns/rename-category-menu-item.js.map +1 -1
  500. package/build-module/components/page-patterns/use-patterns.js +7 -6
  501. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  502. package/build-module/components/page-templates/index.js +85 -72
  503. package/build-module/components/page-templates/index.js.map +1 -1
  504. package/build-module/components/pagination/index.js +52 -42
  505. package/build-module/components/pagination/index.js.map +1 -1
  506. package/build-module/components/plugin-template-setting-panel/index.js +4 -2
  507. package/build-module/components/plugin-template-setting-panel/index.js.map +1 -1
  508. package/build-module/components/resizable-frame/index.js +51 -35
  509. package/build-module/components/resizable-frame/index.js.map +1 -1
  510. package/build-module/components/revisions/index.js +31 -21
  511. package/build-module/components/revisions/index.js.map +1 -1
  512. package/build-module/components/routes/link.js +5 -4
  513. package/build-module/components/routes/link.js.map +1 -1
  514. package/build-module/components/save-button/index.js +5 -4
  515. package/build-module/components/save-button/index.js.map +1 -1
  516. package/build-module/components/save-hub/index.js +12 -11
  517. package/build-module/components/save-hub/index.js.map +1 -1
  518. package/build-module/components/save-panel/index.js +37 -30
  519. package/build-module/components/save-panel/index.js.map +1 -1
  520. package/build-module/components/sidebar/index.js +69 -36
  521. package/build-module/components/sidebar/index.js.map +1 -1
  522. package/build-module/components/sidebar-button/index.js +4 -4
  523. package/build-module/components/sidebar-button/index.js.map +1 -1
  524. package/build-module/components/sidebar-dataviews/add-new-view.js +58 -48
  525. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  526. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +108 -89
  527. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  528. package/build-module/components/sidebar-dataviews/dataview-item.js +15 -12
  529. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  530. package/build-module/components/sidebar-dataviews/default-views.js +49 -1
  531. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  532. package/build-module/components/sidebar-dataviews/index.js +23 -22
  533. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  534. package/build-module/components/sidebar-navigation-item/index.js +33 -28
  535. package/build-module/components/sidebar-navigation-item/index.js.map +1 -1
  536. package/build-module/components/sidebar-navigation-screen/index.js +58 -70
  537. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  538. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +25 -17
  539. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  540. package/build-module/components/sidebar-navigation-screen-details-panel/index.js +10 -7
  541. package/build-module/components/sidebar-navigation-screen-details-panel/index.js.map +1 -1
  542. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js +5 -4
  543. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js.map +1 -1
  544. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +7 -7
  545. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
  546. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js +5 -4
  547. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js.map +1 -1
  548. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +59 -45
  549. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  550. package/build-module/components/sidebar-navigation-screen-main/index.js +47 -22
  551. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  552. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js +5 -4
  553. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -1
  554. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js +20 -12
  555. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  556. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js +63 -35
  557. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  558. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +10 -8
  559. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  560. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +43 -36
  561. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  562. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +19 -12
  563. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  564. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  565. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  566. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +36 -22
  567. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  568. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +50 -40
  569. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  570. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +14 -9
  571. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  572. package/build-module/components/sidebar-navigation-screen-patterns/category-item.js +12 -10
  573. package/build-module/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -1
  574. package/build-module/components/sidebar-navigation-screen-patterns/index.js +64 -77
  575. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  576. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +18 -17
  577. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  578. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +8 -5
  579. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  580. package/build-module/components/site-hub/index.js +85 -75
  581. package/build-module/components/site-hub/index.js.map +1 -1
  582. package/build-module/components/site-icon/index.js +9 -8
  583. package/build-module/components/site-icon/index.js.map +1 -1
  584. package/build-module/components/style-book/index.js +122 -102
  585. package/build-module/components/style-book/index.js.map +1 -1
  586. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +10 -30
  587. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  588. package/build-module/components/table/index.js +24 -15
  589. package/build-module/components/table/index.js.map +1 -1
  590. package/build-module/components/template-part-converter/convert-to-regular.js +5 -4
  591. package/build-module/components/template-part-converter/convert-to-regular.js.map +1 -1
  592. package/build-module/components/template-part-converter/convert-to-template-part.js +25 -16
  593. package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
  594. package/build-module/components/template-part-converter/index.js +30 -11
  595. package/build-module/components/template-part-converter/index.js.map +1 -1
  596. package/build-module/components/welcome-guide/editor.js +22 -15
  597. package/build-module/components/welcome-guide/editor.js.map +1 -1
  598. package/build-module/components/welcome-guide/image.js +14 -12
  599. package/build-module/components/welcome-guide/image.js.map +1 -1
  600. package/build-module/components/welcome-guide/index.js +6 -2
  601. package/build-module/components/welcome-guide/index.js.map +1 -1
  602. package/build-module/components/welcome-guide/page.js +20 -13
  603. package/build-module/components/welcome-guide/page.js.map +1 -1
  604. package/build-module/components/welcome-guide/styles.js +47 -28
  605. package/build-module/components/welcome-guide/styles.js.map +1 -1
  606. package/build-module/components/welcome-guide/template.js +20 -13
  607. package/build-module/components/welcome-guide/template.js.map +1 -1
  608. package/build-module/deprecated.js +4 -4
  609. package/build-module/deprecated.js.map +1 -1
  610. package/build-module/hooks/commands/use-common-commands.js +12 -23
  611. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  612. package/build-module/hooks/commands/use-edit-mode-commands.js +4 -118
  613. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  614. package/build-module/hooks/index.js +0 -1
  615. package/build-module/hooks/index.js.map +1 -1
  616. package/build-module/hooks/push-changes-to-global-styles/index.js +27 -16
  617. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  618. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +6 -2
  619. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  620. package/build-module/index.js +3 -3
  621. package/build-module/index.js.map +1 -1
  622. package/build-module/store/private-actions.js +7 -1
  623. package/build-module/store/private-actions.js.map +1 -1
  624. package/build-module/store/selectors.js +2 -2
  625. package/build-module/store/selectors.js.map +1 -1
  626. package/build-module/utils/template-part-create.js +0 -52
  627. package/build-module/utils/template-part-create.js.map +1 -1
  628. package/build-module/utils/use-activate-theme.js +9 -7
  629. package/build-module/utils/use-activate-theme.js.map +1 -1
  630. package/build-style/style-rtl.css +486 -981
  631. package/build-style/style.css +486 -981
  632. package/package.json +44 -47
  633. package/src/components/add-new-pattern/index.js +46 -37
  634. package/src/components/add-new-template/index.js +4 -2
  635. package/src/components/add-new-template/utils.js +77 -39
  636. package/src/components/app/index.js +5 -2
  637. package/src/components/block-editor/style.scss +4 -139
  638. package/src/components/block-editor/use-editor-iframe-props.js +79 -0
  639. package/src/components/canvas-loader/index.js +5 -2
  640. package/src/components/dataviews-actions/index.js +43 -0
  641. package/src/components/editor/index.js +129 -215
  642. package/src/components/editor/style.scss +2 -17
  643. package/src/components/editor-canvas-container/index.js +30 -35
  644. package/src/components/editor-canvas-container/style.scss +16 -0
  645. package/src/components/global-styles/background-panel.js +20 -4
  646. package/src/components/global-styles/color-indicator-wrapper.js +2 -2
  647. package/src/components/global-styles/color-palette-panel.js +3 -4
  648. package/src/components/global-styles/font-families.js +25 -18
  649. package/src/components/global-styles/font-family-item.js +2 -2
  650. package/src/components/global-styles/font-library-modal/collection-font-variant.js +2 -1
  651. package/src/components/global-styles/font-library-modal/context.js +6 -44
  652. package/src/components/global-styles/font-library-modal/font-collection.js +3 -5
  653. package/src/components/global-styles/font-library-modal/installed-fonts.js +42 -12
  654. package/src/components/global-styles/font-library-modal/library-font-variant.js +2 -1
  655. package/src/components/global-styles/font-library-modal/upload-fonts.js +1 -4
  656. package/src/components/global-styles/font-library-modal/utils/index.js +1 -1
  657. package/src/components/global-styles/gradients-palette-panel.js +1 -4
  658. package/src/components/global-styles/hooks.js +10 -36
  659. package/src/components/global-styles/icon-with-current-color.js +2 -2
  660. package/src/components/global-styles/palette.js +9 -18
  661. package/src/components/global-styles/preset-colors.js +18 -0
  662. package/src/components/global-styles/preview-colors.js +4 -7
  663. package/src/components/global-styles/root-menu.js +16 -12
  664. package/src/components/global-styles/screen-block.js +1 -1
  665. package/src/components/global-styles/screen-color-palette.js +4 -4
  666. package/src/components/global-styles/screen-colors.js +0 -2
  667. package/src/components/global-styles/screen-layout.js +9 -2
  668. package/src/components/global-styles/screen-revisions/index.js +6 -0
  669. package/src/components/global-styles/screen-revisions/revisions-buttons.js +2 -2
  670. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +1 -0
  671. package/src/components/global-styles/screen-shadows.js +13 -0
  672. package/src/components/global-styles/screen-typography.js +1 -1
  673. package/src/components/global-styles/shadow-utils.js +158 -0
  674. package/src/components/global-styles/shadows-edit-panel.js +555 -0
  675. package/src/components/global-styles/shadows-panel.js +147 -0
  676. package/src/components/global-styles/stories/index.story.js +2 -1
  677. package/src/components/global-styles/style-variations-container.js +73 -10
  678. package/src/components/global-styles/style.scss +54 -5
  679. package/src/components/global-styles/test/shadow-utils.spec.js +251 -0
  680. package/src/components/global-styles/test/utils.spec.js +59 -0
  681. package/src/components/global-styles/typography-example.js +2 -1
  682. package/src/components/global-styles/ui.js +15 -7
  683. package/src/components/global-styles/utils.js +27 -0
  684. package/src/components/global-styles/variations/style.scss +17 -30
  685. package/src/components/global-styles/variations/variation.js +15 -10
  686. package/src/components/global-styles/variations/variations-color.js +7 -9
  687. package/src/components/global-styles/variations/variations-panel.js +16 -5
  688. package/src/components/global-styles/variations/variations-typography.js +2 -1
  689. package/src/components/global-styles-renderer/index.js +7 -1
  690. package/src/components/{sidebar-edit-mode/global-styles-sidebar.js → global-styles-sidebar/index.js} +7 -2
  691. package/src/components/{sidebar-edit-mode → global-styles-sidebar}/style.scss +0 -11
  692. package/src/components/layout/index.js +10 -10
  693. package/src/components/layout/router.js +96 -61
  694. package/src/components/layout/style.scss +10 -6
  695. package/src/components/{header-edit-mode/more-menu → more-menu}/index.js +1 -1
  696. package/src/components/page/header.js +17 -13
  697. package/src/components/page/index.js +3 -7
  698. package/src/components/page/style.scss +21 -7
  699. package/src/components/page-pages/index.js +162 -68
  700. package/src/components/page-pages/style.scss +14 -10
  701. package/src/components/page-patterns/delete-category-menu-item.js +1 -2
  702. package/src/components/page-patterns/header.js +45 -33
  703. package/src/components/page-patterns/index.js +25 -81
  704. package/src/components/page-patterns/style.scss +21 -14
  705. package/src/components/page-patterns/use-patterns.js +13 -6
  706. package/src/components/page-templates/index.js +10 -29
  707. package/src/components/pagination/index.js +2 -2
  708. package/src/components/resizable-frame/index.js +17 -5
  709. package/src/components/revisions/index.js +2 -1
  710. package/src/components/save-panel/index.js +5 -7
  711. package/src/components/sidebar/index.js +61 -37
  712. package/src/components/sidebar-button/index.js +2 -5
  713. package/src/components/sidebar-dataviews/add-new-view.js +5 -5
  714. package/src/components/sidebar-dataviews/custom-dataviews-list.js +5 -7
  715. package/src/components/sidebar-dataviews/dataview-item.js +6 -9
  716. package/src/components/sidebar-dataviews/default-views.js +61 -1
  717. package/src/components/sidebar-dataviews/index.js +4 -9
  718. package/src/components/sidebar-navigation-item/index.js +10 -10
  719. package/src/components/sidebar-navigation-screen/index.js +7 -31
  720. package/src/components/sidebar-navigation-screen/style.scss +11 -9
  721. package/src/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +2 -2
  722. package/src/components/sidebar-navigation-screen-global-styles/index.js +10 -3
  723. package/src/components/sidebar-navigation-screen-main/index.js +14 -4
  724. package/src/components/sidebar-navigation-screen-navigation-menu/index.js +6 -1
  725. package/src/components/sidebar-navigation-screen-navigation-menu/more-menu.js +18 -1
  726. package/src/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +3 -0
  727. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  728. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +8 -4
  729. package/src/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +6 -13
  730. package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +0 -61
  731. package/src/components/sidebar-navigation-screen-patterns/category-item.js +5 -3
  732. package/src/components/sidebar-navigation-screen-patterns/index.js +8 -29
  733. package/src/components/sidebar-navigation-screen-templates-browse/content.js +1 -1
  734. package/src/components/sidebar-navigation-screen-templates-browse/index.js +3 -2
  735. package/src/components/site-hub/index.js +14 -15
  736. package/src/components/site-hub/style.scss +46 -9
  737. package/src/components/site-icon/index.js +2 -2
  738. package/src/components/style-book/index.js +8 -7
  739. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +18 -23
  740. package/src/components/template-part-converter/convert-to-template-part.js +4 -1
  741. package/src/components/template-part-converter/index.js +16 -3
  742. package/src/hooks/commands/use-common-commands.js +12 -23
  743. package/src/hooks/commands/use-edit-mode-commands.js +4 -118
  744. package/src/hooks/index.js +0 -1
  745. package/src/hooks/push-changes-to-global-styles/index.js +2 -1
  746. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +7 -2
  747. package/src/index.js +1 -1
  748. package/src/store/private-actions.js +9 -1
  749. package/src/store/selectors.js +2 -2
  750. package/src/style.scss +1 -17
  751. package/src/utils/template-part-create.js +0 -67
  752. package/src/utils/use-activate-theme.js +5 -5
  753. package/build/components/block-editor/editor-canvas.js +0 -153
  754. package/build/components/block-editor/editor-canvas.js.map +0 -1
  755. package/build/components/block-editor/resizable-editor.js +0 -86
  756. package/build/components/block-editor/resizable-editor.js.map +0 -1
  757. package/build/components/block-editor/resize-handle.js +0 -57
  758. package/build/components/block-editor/resize-handle.js.map +0 -1
  759. package/build/components/block-editor/site-editor-canvas.js +0 -95
  760. package/build/components/block-editor/site-editor-canvas.js.map +0 -1
  761. package/build/components/code-editor/index.js +0 -111
  762. package/build/components/code-editor/index.js.map +0 -1
  763. package/build/components/create-template-part-modal/index.js +0 -151
  764. package/build/components/create-template-part-modal/index.js.map +0 -1
  765. package/build/components/global-styles/global-styles-provider.js +0 -129
  766. package/build/components/global-styles/global-styles-provider.js.map +0 -1
  767. package/build/components/header-edit-mode/document-tools/index.js +0 -68
  768. package/build/components/header-edit-mode/document-tools/index.js.map +0 -1
  769. package/build/components/header-edit-mode/index.js +0 -150
  770. package/build/components/header-edit-mode/index.js.map +0 -1
  771. package/build/components/header-edit-mode/more-menu/index.js.map +0 -1
  772. package/build/components/header-edit-mode/more-menu/site-export.js.map +0 -1
  773. package/build/components/header-edit-mode/more-menu/welcome-guide-menu-item.js.map +0 -1
  774. package/build/components/page-patterns/dataviews-pattern-actions.js +0 -387
  775. package/build/components/page-patterns/dataviews-pattern-actions.js.map +0 -1
  776. package/build/components/pattern-modal/duplicate.js +0 -70
  777. package/build/components/pattern-modal/duplicate.js.map +0 -1
  778. package/build/components/pattern-modal/index.js +0 -23
  779. package/build/components/pattern-modal/index.js.map +0 -1
  780. package/build/components/pattern-modal/rename.js +0 -45
  781. package/build/components/pattern-modal/rename.js.map +0 -1
  782. package/build/components/rename-post-menu-item/index.js +0 -109
  783. package/build/components/rename-post-menu-item/index.js.map +0 -1
  784. package/build/components/sidebar-edit-mode/default-sidebar.js +0 -52
  785. package/build/components/sidebar-edit-mode/default-sidebar.js.map +0 -1
  786. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +0 -1
  787. package/build/components/sidebar-edit-mode/index.js +0 -147
  788. package/build/components/sidebar-edit-mode/index.js.map +0 -1
  789. package/build/components/sidebar-edit-mode/page-panels/index.js +0 -129
  790. package/build/components/sidebar-edit-mode/page-panels/index.js.map +0 -1
  791. package/build/components/sidebar-edit-mode/page-panels/page-content.js +0 -34
  792. package/build/components/sidebar-edit-mode/page-panels/page-content.js.map +0 -1
  793. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +0 -46
  794. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +0 -1
  795. package/build/components/sidebar-edit-mode/settings-header/index.js +0 -42
  796. package/build/components/sidebar-edit-mode/settings-header/index.js.map +0 -1
  797. package/build/components/sidebar-edit-mode/template-panel/hooks.js +0 -86
  798. package/build/components/sidebar-edit-mode/template-panel/hooks.js.map +0 -1
  799. package/build/components/sidebar-edit-mode/template-panel/index.js +0 -127
  800. package/build/components/sidebar-edit-mode/template-panel/index.js.map +0 -1
  801. package/build/components/sidebar-navigation-screen-page/index.js +0 -163
  802. package/build/components/sidebar-navigation-screen-page/index.js.map +0 -1
  803. package/build/components/sidebar-navigation-screen-page/page-details.js +0 -127
  804. package/build/components/sidebar-navigation-screen-page/page-details.js.map +0 -1
  805. package/build/components/sidebar-navigation-screen-page/status-label.js +0 -65
  806. package/build/components/sidebar-navigation-screen-page/status-label.js.map +0 -1
  807. package/build/components/sidebar-navigation-screen-pattern/index.js +0 -72
  808. package/build/components/sidebar-navigation-screen-pattern/index.js.map +0 -1
  809. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +0 -38
  810. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +0 -1
  811. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list.js +0 -29
  812. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list.js.map +0 -1
  813. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +0 -37
  814. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +0 -1
  815. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +0 -45
  816. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +0 -1
  817. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +0 -88
  818. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +0 -1
  819. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +0 -29
  820. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +0 -1
  821. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +0 -138
  822. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +0 -1
  823. package/build/components/sidebar-navigation-screen-template/home-template-details.js +0 -110
  824. package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +0 -1
  825. package/build/components/sidebar-navigation-screen-template/index.js +0 -118
  826. package/build/components/sidebar-navigation-screen-template/index.js.map +0 -1
  827. package/build/components/sidebar-navigation-screen-template/template-areas.js +0 -117
  828. package/build/components/sidebar-navigation-screen-template/template-areas.js.map +0 -1
  829. package/build/components/start-template-options/index.js +0 -191
  830. package/build/components/start-template-options/index.js.map +0 -1
  831. package/build/components/template-actions/index.js +0 -131
  832. package/build/components/template-actions/index.js.map +0 -1
  833. package/build/hooks/components.js +0 -10
  834. package/build/hooks/components.js.map +0 -1
  835. package/build/utils/get-is-list-page.js +0 -28
  836. package/build/utils/get-is-list-page.js.map +0 -1
  837. package/build/utils/math.js +0 -98
  838. package/build/utils/math.js.map +0 -1
  839. package/build-module/components/block-editor/editor-canvas.js +0 -145
  840. package/build-module/components/block-editor/editor-canvas.js.map +0 -1
  841. package/build-module/components/block-editor/resizable-editor.js +0 -79
  842. package/build-module/components/block-editor/resizable-editor.js.map +0 -1
  843. package/build-module/components/block-editor/resize-handle.js +0 -50
  844. package/build-module/components/block-editor/resize-handle.js.map +0 -1
  845. package/build-module/components/block-editor/site-editor-canvas.js +0 -86
  846. package/build-module/components/block-editor/site-editor-canvas.js.map +0 -1
  847. package/build-module/components/code-editor/index.js +0 -103
  848. package/build-module/components/code-editor/index.js.map +0 -1
  849. package/build-module/components/create-template-part-modal/index.js +0 -143
  850. package/build-module/components/create-template-part-modal/index.js.map +0 -1
  851. package/build-module/components/global-styles/global-styles-provider.js +0 -120
  852. package/build-module/components/global-styles/global-styles-provider.js.map +0 -1
  853. package/build-module/components/header-edit-mode/document-tools/index.js +0 -61
  854. package/build-module/components/header-edit-mode/document-tools/index.js.map +0 -1
  855. package/build-module/components/header-edit-mode/index.js +0 -142
  856. package/build-module/components/header-edit-mode/index.js.map +0 -1
  857. package/build-module/components/header-edit-mode/more-menu/index.js.map +0 -1
  858. package/build-module/components/header-edit-mode/more-menu/site-export.js.map +0 -1
  859. package/build-module/components/header-edit-mode/more-menu/welcome-guide-menu-item.js.map +0 -1
  860. package/build-module/components/page-patterns/dataviews-pattern-actions.js +0 -380
  861. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +0 -1
  862. package/build-module/components/pattern-modal/duplicate.js +0 -62
  863. package/build-module/components/pattern-modal/duplicate.js.map +0 -1
  864. package/build-module/components/pattern-modal/index.js +0 -14
  865. package/build-module/components/pattern-modal/index.js.map +0 -1
  866. package/build-module/components/pattern-modal/rename.js +0 -37
  867. package/build-module/components/pattern-modal/rename.js.map +0 -1
  868. package/build-module/components/rename-post-menu-item/index.js +0 -102
  869. package/build-module/components/rename-post-menu-item/index.js.map +0 -1
  870. package/build-module/components/sidebar-edit-mode/default-sidebar.js +0 -45
  871. package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +0 -1
  872. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +0 -1
  873. package/build-module/components/sidebar-edit-mode/index.js +0 -138
  874. package/build-module/components/sidebar-edit-mode/index.js.map +0 -1
  875. package/build-module/components/sidebar-edit-mode/page-panels/index.js +0 -121
  876. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +0 -1
  877. package/build-module/components/sidebar-edit-mode/page-panels/page-content.js +0 -27
  878. package/build-module/components/sidebar-edit-mode/page-panels/page-content.js.map +0 -1
  879. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +0 -39
  880. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +0 -1
  881. package/build-module/components/sidebar-edit-mode/settings-header/index.js +0 -35
  882. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +0 -1
  883. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js +0 -79
  884. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js.map +0 -1
  885. package/build-module/components/sidebar-edit-mode/template-panel/index.js +0 -119
  886. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +0 -1
  887. package/build-module/components/sidebar-navigation-screen-page/index.js +0 -155
  888. package/build-module/components/sidebar-navigation-screen-page/index.js.map +0 -1
  889. package/build-module/components/sidebar-navigation-screen-page/page-details.js +0 -120
  890. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +0 -1
  891. package/build-module/components/sidebar-navigation-screen-page/status-label.js +0 -57
  892. package/build-module/components/sidebar-navigation-screen-page/status-label.js.map +0 -1
  893. package/build-module/components/sidebar-navigation-screen-pattern/index.js +0 -64
  894. package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +0 -1
  895. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +0 -30
  896. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +0 -1
  897. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list.js +0 -20
  898. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list.js.map +0 -1
  899. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +0 -29
  900. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +0 -1
  901. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +0 -36
  902. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +0 -1
  903. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +0 -80
  904. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +0 -1
  905. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +0 -22
  906. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +0 -1
  907. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +0 -130
  908. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +0 -1
  909. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +0 -103
  910. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +0 -1
  911. package/build-module/components/sidebar-navigation-screen-template/index.js +0 -110
  912. package/build-module/components/sidebar-navigation-screen-template/index.js.map +0 -1
  913. package/build-module/components/sidebar-navigation-screen-template/template-areas.js +0 -109
  914. package/build-module/components/sidebar-navigation-screen-template/template-areas.js.map +0 -1
  915. package/build-module/components/start-template-options/index.js +0 -184
  916. package/build-module/components/start-template-options/index.js.map +0 -1
  917. package/build-module/components/template-actions/index.js +0 -123
  918. package/build-module/components/template-actions/index.js.map +0 -1
  919. package/build-module/hooks/components.js +0 -7
  920. package/build-module/hooks/components.js.map +0 -1
  921. package/build-module/utils/get-is-list-page.js +0 -22
  922. package/build-module/utils/get-is-list-page.js.map +0 -1
  923. package/build-module/utils/math.js +0 -92
  924. package/build-module/utils/math.js.map +0 -1
  925. package/src/components/block-editor/editor-canvas.js +0 -178
  926. package/src/components/block-editor/resizable-editor.js +0 -82
  927. package/src/components/block-editor/resize-handle.js +0 -66
  928. package/src/components/block-editor/site-editor-canvas.js +0 -107
  929. package/src/components/code-editor/index.js +0 -94
  930. package/src/components/code-editor/style.scss +0 -95
  931. package/src/components/create-template-part-modal/index.js +0 -199
  932. package/src/components/create-template-part-modal/style.scss +0 -69
  933. package/src/components/global-styles/global-styles-provider.js +0 -162
  934. package/src/components/header-edit-mode/document-tools/index.js +0 -68
  935. package/src/components/header-edit-mode/index.js +0 -190
  936. package/src/components/header-edit-mode/style.scss +0 -201
  937. package/src/components/page-patterns/dataviews-pattern-actions.js +0 -439
  938. package/src/components/pattern-modal/duplicate.js +0 -55
  939. package/src/components/pattern-modal/index.js +0 -19
  940. package/src/components/pattern-modal/rename.js +0 -30
  941. package/src/components/rename-post-menu-item/index.js +0 -138
  942. package/src/components/sidebar-edit-mode/index.js +0 -173
  943. package/src/components/sidebar-edit-mode/page-panels/index.js +0 -133
  944. package/src/components/sidebar-edit-mode/page-panels/page-content.js +0 -29
  945. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +0 -61
  946. package/src/components/sidebar-edit-mode/settings-header/index.js +0 -43
  947. package/src/components/sidebar-edit-mode/settings-header/style.scss +0 -14
  948. package/src/components/sidebar-edit-mode/template-panel/hooks.js +0 -114
  949. package/src/components/sidebar-edit-mode/template-panel/index.js +0 -134
  950. package/src/components/sidebar-edit-mode/template-panel/style.scss +0 -16
  951. package/src/components/sidebar-navigation-screen-page/index.js +0 -204
  952. package/src/components/sidebar-navigation-screen-page/page-details.js +0 -161
  953. package/src/components/sidebar-navigation-screen-page/status-label.js +0 -71
  954. package/src/components/sidebar-navigation-screen-page/style.scss +0 -69
  955. package/src/components/sidebar-navigation-screen-pattern/index.js +0 -63
  956. package/src/components/sidebar-navigation-screen-pattern/style.scss +0 -26
  957. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +0 -31
  958. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list.js +0 -21
  959. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +0 -33
  960. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +0 -36
  961. package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +0 -98
  962. package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +0 -32
  963. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +0 -205
  964. package/src/components/sidebar-navigation-screen-template/home-template-details.js +0 -144
  965. package/src/components/sidebar-navigation-screen-template/index.js +0 -133
  966. package/src/components/sidebar-navigation-screen-template/style.scss +0 -53
  967. package/src/components/sidebar-navigation-screen-template/template-areas.js +0 -135
  968. package/src/components/start-template-options/index.js +0 -231
  969. package/src/components/start-template-options/style.scss +0 -55
  970. package/src/components/template-actions/index.js +0 -165
  971. package/src/hooks/components.js +0 -11
  972. package/src/utils/get-is-list-page.js +0 -25
  973. package/src/utils/math.js +0 -93
  974. package/src/utils/test/template-part-create.js +0 -63
  975. /package/src/components/{sidebar-edit-mode → global-styles-sidebar}/default-sidebar.js +0 -0
  976. /package/src/components/{header-edit-mode/more-menu → more-menu}/site-export.js +0 -0
  977. /package/src/components/{header-edit-mode/more-menu → more-menu}/welcome-guide-menu-item.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_coreData","_data","_element","_i18n","_icons","_lockUnlock","_context","_fontCard","_interopRequireDefault","_libraryFontVariant","_sortFontFaces","ProgressBar","unlock","componentsPrivateApis","InstalledFonts","baseCustomFonts","libraryFontSelected","baseThemeFonts","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","fontFamiliesHasChanges","notice","setNotice","fontFamilies","useContext","FontLibraryContext","isConfirmDeleteOpen","setIsConfirmDeleteOpen","useState","customFontFamilyId","source","id","canUserDelete","useSelect","select","canUser","coreStore","shouldDisplayDeleteButton","handleUninstallClick","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","sortFontFaces","getFontCardVariantsText","variantsInstalled","variantsActive","slug","sprintf","__","useEffect","_react","createElement","className","Fragment","__experimentalNavigatorProvider","initialPath","__experimentalNavigatorScreen","path","__experimentalVStack","spacing","Notice","status","type","onRemove","message","role","map","key","default","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","Flex","justify","__experimentalNavigatorToParentButton","icon","chevronLeft","size","label","__experimentalHeading","level","name","__experimentalSpacer","margin","__experimentalText","face","i","__experimentalHStack","Button","isDestructive","variant","disabled","__experimentalIsFocusable","navigator","useNavigator","handleConfirmUninstall","goBack","error","handleCancelUninstall","__experimentalConfirmDialog","cancelButtonText","confirmButtonText","onCancel","onConfirm","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tNotice,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { chevronLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\tbaseThemeFonts,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tisInstalling,\n\t\tsaveFontFamilies,\n\t\tgetFontFacesActivated,\n\t\tfontFamiliesHasChanges,\n\t\tnotice,\n\t\tsetNotice,\n\t\tfontFamilies,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\tconst customFontFamilyId =\n\t\tlibraryFontSelected?.source === 'custom' && libraryFontSelected?.id;\n\n\tconst canUserDelete = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\treturn (\n\t\t\t\tcustomFontFamilyId &&\n\t\t\t\tcanUser( 'delete', 'font-families', customFontFamilyId )\n\t\t\t);\n\t\t},\n\t\t[ customFontFamilyId ]\n\t);\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected &&\n\t\tlibraryFontSelected?.source !== 'theme' &&\n\t\tcanUserDelete;\n\n\tconst handleUninstallClick = () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst getFontFacesToDisplay = ( font ) => {\n\t\tif ( ! font ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! font.fontFace || ! font.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( font.fontFace );\n\t};\n\n\tconst getFontCardVariantsText = ( font ) => {\n\t\tconst variantsInstalled =\n\t\t\tfont?.fontFace?.length > 0 ? font.fontFace.length : 1;\n\t\tconst variantsActive = getFontFacesActivated(\n\t\t\tfont.slug,\n\t\t\tfont.source\n\t\t).length;\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Active font variants, 2: Total font variants. */\n\t\t\t__( '%1$s/%2$s variants active' ),\n\t\t\tvariantsActive,\n\t\t\tvariantsInstalled\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\thandleSetLibraryFontSelected( libraryFontSelected );\n\t\trefreshLibrary();\n\t}, [] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isResolvingLibrary && (\n\t\t\t\t<div className=\"font-library-modal__loading\">\n\t\t\t\t\t<ProgressBar />\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! isResolvingLibrary && (\n\t\t\t\t<>\n\t\t\t\t\t<NavigatorProvider\n\t\t\t\t\t\tinitialPath={\n\t\t\t\t\t\t\tlibraryFontSelected ? '/fontFamily' : '/'\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t\t\t<VStack spacing=\"8\">\n\t\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Installed Fonts' ) }\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'/fontFamily'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Theme Fonts' ) }\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'/fontFamily'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t\t\t<ConfirmDeleteDialog\n\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetIsOpen={ setIsConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetNotice={ setNotice }\n\t\t\t\t\t\t\t\tuninstallFontFamily={ uninstallFontFamily }\n\t\t\t\t\t\t\t\thandleSetLibraryFontSelected={\n\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t\t\t<NavigatorToParentButton\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\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( null );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\t\t/>\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{ libraryFontSelected?.name }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\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<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t\t\t{ getFontFacesToDisplay(\n\t\t\t\t\t\t\t\t\tlibraryFontSelected\n\t\t\t\t\t\t\t\t).map( ( face, i ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\t\t\t\t\t</NavigatorProvider>\n\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsaveFontFamilies( fontFamilies );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisOpen,\n\tsetIsOpen,\n\tsetNotice,\n\tuninstallFontFamily,\n\thandleSetLibraryFontSelected,\n} ) {\n\tconst navigator = useNavigator();\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\t\tsetIsOpen( false );\n\t\ttry {\n\t\t\tawait uninstallFontFamily( font );\n\t\t\tnavigator.goBack();\n\t\t\thandleSetLibraryFontSelected( null );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error uninstalling the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsOpen( false );\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t>\n\t\t\t{ font &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\" font and all its variants and assets?'\n\t\t\t\t\t),\n\t\t\t\t\tfont.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_coreData","_data","_element","_i18n","_icons","_blockEditor","_context","_fontCard","_interopRequireDefault","_libraryFontVariant","_sortFontFaces","_utils","_lockUnlock","_jsxRuntime","useGlobalSetting","unlock","blockEditorPrivateApis","InstalledFonts","baseCustomFonts","libraryFontSelected","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","notice","setNotice","fontFamilies","useContext","FontLibraryContext","isConfirmDeleteOpen","setIsConfirmDeleteOpen","useState","baseFontFamilies","undefined","globalStylesId","useSelect","select","__experimentalGetCurrentGlobalStylesId","coreStore","globalStyles","useEntityRecord","fontFamiliesHasChanges","edits","settings","typography","themeFonts","theme","map","f","setUIValuesNeeded","source","sort","a","b","name","localeCompare","themeFontsSlugs","Set","slug","baseThemeFonts","concat","filter","has","customFontFamilyId","id","canUserDelete","canUser","shouldDisplayDeleteButton","handleUninstallClick","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","sortFontFaces","getFontCardVariantsText","variantsInstalled","variantsActive","sprintf","__","useEffect","jsxs","className","children","jsx","ProgressBar","Fragment","__experimentalNavigatorProvider","initialPath","__experimentalNavigatorScreen","path","__experimentalVStack","spacing","Notice","status","type","onRemove","message","role","default","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","Flex","justify","__experimentalNavigatorToParentButton","icon","chevronLeft","size","label","__experimentalHeading","level","__experimentalSpacer","margin","__experimentalText","face","i","__experimentalHStack","Button","isDestructive","variant","disabled","__experimentalIsFocusable","navigator","useNavigator","handleConfirmUninstall","goBack","error","handleCancelUninstall","__experimentalConfirmDialog","cancelButtonText","confirmButtonText","onCancel","onConfirm","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tNotice,\n\tProgressBar,\n} from '@wordpress/components';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { chevronLeft } from '@wordpress/icons';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\nimport { setUIValuesNeeded } from './utils';\nimport { unlock } from '../../../lock-unlock';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tisInstalling,\n\t\tsaveFontFamilies,\n\t\tgetFontFacesActivated,\n\t\tnotice,\n\t\tsetNotice,\n\t\tfontFamilies,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\tconst globalStylesId = useSelect( ( select ) => {\n\t\tconst { __experimentalGetCurrentGlobalStylesId } = select( coreStore );\n\t\treturn __experimentalGetCurrentGlobalStylesId();\n\t} );\n\n\tconst globalStyles = useEntityRecord(\n\t\t'root',\n\t\t'globalStyles',\n\t\tglobalStylesId\n\t);\n\tconst fontFamiliesHasChanges =\n\t\t!! globalStyles?.edits?.settings?.typography?.fontFamilies;\n\n\tconst themeFonts = fontFamilies?.theme\n\t\t? fontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\tconst themeFontsSlugs = new Set( themeFonts.map( ( f ) => f.slug ) );\n\tconst baseThemeFonts = baseFontFamilies?.theme\n\t\t? themeFonts.concat(\n\t\t\t\tbaseFontFamilies.theme\n\t\t\t\t\t.filter( ( f ) => ! themeFontsSlugs.has( f.slug ) )\n\t\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t )\n\t\t: [];\n\n\tconst customFontFamilyId =\n\t\tlibraryFontSelected?.source === 'custom' && libraryFontSelected?.id;\n\n\tconst canUserDelete = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\treturn (\n\t\t\t\tcustomFontFamilyId &&\n\t\t\t\tcanUser( 'delete', 'font-families', customFontFamilyId )\n\t\t\t);\n\t\t},\n\t\t[ customFontFamilyId ]\n\t);\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected &&\n\t\tlibraryFontSelected?.source !== 'theme' &&\n\t\tcanUserDelete;\n\n\tconst handleUninstallClick = () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst getFontFacesToDisplay = ( font ) => {\n\t\tif ( ! font ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! font.fontFace || ! font.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( font.fontFace );\n\t};\n\n\tconst getFontCardVariantsText = ( font ) => {\n\t\tconst variantsInstalled =\n\t\t\tfont?.fontFace?.length > 0 ? font.fontFace.length : 1;\n\t\tconst variantsActive = getFontFacesActivated(\n\t\t\tfont.slug,\n\t\t\tfont.source\n\t\t).length;\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Active font variants, 2: Total font variants. */\n\t\t\t__( '%1$s/%2$s variants active' ),\n\t\t\tvariantsActive,\n\t\t\tvariantsInstalled\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\thandleSetLibraryFontSelected( libraryFontSelected );\n\t\trefreshLibrary();\n\t}, [] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isResolvingLibrary && (\n\t\t\t\t<div className=\"font-library-modal__loading\">\n\t\t\t\t\t<ProgressBar />\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! isResolvingLibrary && (\n\t\t\t\t<>\n\t\t\t\t\t<NavigatorProvider\n\t\t\t\t\t\tinitialPath={\n\t\t\t\t\t\t\tlibraryFontSelected ? '/fontFamily' : '/'\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t\t\t<VStack spacing=\"8\">\n\t\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Installed Fonts' ) }\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Theme Fonts' ) }\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t\t\t<ConfirmDeleteDialog\n\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetIsOpen={ setIsConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetNotice={ setNotice }\n\t\t\t\t\t\t\t\tuninstallFontFamily={ uninstallFontFamily }\n\t\t\t\t\t\t\t\thandleSetLibraryFontSelected={\n\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t\t\t<NavigatorToParentButton\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\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( null );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\t\t/>\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{ libraryFontSelected?.name }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\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<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t\t\t{ getFontFacesToDisplay(\n\t\t\t\t\t\t\t\t\tlibraryFontSelected\n\t\t\t\t\t\t\t\t).map( ( face, i ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\t\t\t\t\t</NavigatorProvider>\n\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsaveFontFamilies( fontFamilies );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisOpen,\n\tsetIsOpen,\n\tsetNotice,\n\tuninstallFontFamily,\n\thandleSetLibraryFontSelected,\n} ) {\n\tconst navigator = useNavigator();\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\t\tsetIsOpen( false );\n\t\ttry {\n\t\t\tawait uninstallFontFamily( font );\n\t\t\tnavigator.goBack();\n\t\t\thandleSetLibraryFontSelected( null );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error uninstalling the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsOpen( false );\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t>\n\t\t\t{ font &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\" font and all its variants and assets?'\n\t\t\t\t\t),\n\t\t\t\t\tfont.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":"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","ignoreList":[]}
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var _react = require("react");
9
8
  var _components = require("@wordpress/components");
10
9
  var _libraryFontVariant = _interopRequireDefault(require("./library-font-variant"));
11
10
  var _sortFontFaces = require("./utils/sort-font-faces");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
12
  /**
13
13
  * WordPress dependencies
14
14
  */
@@ -25,19 +25,21 @@ function LibraryFontDetails({
25
25
  fontStyle: 'normal',
26
26
  fontWeight: '400'
27
27
  }];
28
- return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.__experimentalSpacer, {
29
- margin: 4
30
- }), (0, _react.createElement)(_components.__experimentalVStack, {
31
- spacing: 0
32
- }, (0, _react.createElement)(_components.__experimentalSpacer, {
33
- margin: 8
34
- }), fontFaces.map((face, i) => (0, _react.createElement)(_libraryFontVariant.default, {
35
- font: font,
36
- face: face,
37
- key: `face${i}`
38
- }))), (0, _react.createElement)(_components.__experimentalSpacer, {
39
- margin: 8
40
- }));
28
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
29
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalSpacer, {
30
+ margin: 4
31
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
32
+ spacing: 0,
33
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalSpacer, {
34
+ margin: 8
35
+ }), fontFaces.map((face, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_libraryFontVariant.default, {
36
+ font: font,
37
+ face: face
38
+ }, `face${i}`))]
39
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalSpacer, {
40
+ margin: 8
41
+ })]
42
+ });
41
43
  }
42
44
  var _default = exports.default = LibraryFontDetails;
43
45
  //# sourceMappingURL=library-font-details.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_libraryFontVariant","_interopRequireDefault","_sortFontFaces","LibraryFontDetails","font","fontFaces","fontFace","length","sortFontFaces","fontFamily","fontStyle","fontWeight","_react","createElement","Fragment","__experimentalSpacer","margin","__experimentalVStack","spacing","map","face","i","default","key","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\n\nfunction LibraryFontDetails( { font } ) {\n\tconst fontFaces =\n\t\tfont.fontFace && font.fontFace.length\n\t\t\t? sortFontFaces( font.fontFace )\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\t\tfontWeight: '400',\n\t\t\t\t\t},\n\t\t\t ];\n\n\treturn (\n\t\t<>\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t{ fontFaces.map( ( face, i ) => (\n\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t\t<Spacer margin={ 8 } />\n\t\t</>\n\t);\n}\n\nexport default LibraryFontDetails;\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAQA,IAAAC,mBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAZA;AACA;AACA;;AAMA;AACA;AACA;;AAIA,SAASI,kBAAkBA,CAAE;EAAEC;AAAK,CAAC,EAAG;EACvC,MAAMC,SAAS,GACdD,IAAI,CAACE,QAAQ,IAAIF,IAAI,CAACE,QAAQ,CAACC,MAAM,GAClC,IAAAC,4BAAa,EAAEJ,IAAI,CAACE,QAAS,CAAC,GAC9B,CACA;IACCG,UAAU,EAAEL,IAAI,CAACK,UAAU;IAC3BC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE;EACb,CAAC,CACA;EAEL,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACf,WAAA,CAAAiB,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAAJ,MAAA,CAAAC,aAAA,EAACf,WAAA,CAAAmB,oBAAM;IAACC,OAAO,EAAG;EAAG,GACpB,IAAAN,MAAA,CAAAC,aAAA,EAACf,WAAA,CAAAiB,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACrBX,SAAS,CAACc,GAAG,CAAE,CAAEC,IAAI,EAAEC,CAAC,KACzB,IAAAT,MAAA,CAAAC,aAAA,EAACb,mBAAA,CAAAsB,OAAkB;IAClBlB,IAAI,EAAGA,IAAM;IACbgB,IAAI,EAAGA,IAAM;IACbG,GAAG,EAAI,OAAOF,CAAG;EAAG,CACpB,CACA,CACK,CAAC,EACT,IAAAT,MAAA,CAAAC,aAAA,EAACf,WAAA,CAAAiB,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CACrB,CAAC;AAEL;AAAC,IAAAQ,QAAA,GAAAC,OAAA,CAAAH,OAAA,GAEcnB,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_libraryFontVariant","_interopRequireDefault","_sortFontFaces","_jsxRuntime","LibraryFontDetails","font","fontFaces","fontFace","length","sortFontFaces","fontFamily","fontStyle","fontWeight","jsxs","Fragment","children","jsx","__experimentalSpacer","margin","__experimentalVStack","spacing","map","face","i","default","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\n\nfunction LibraryFontDetails( { font } ) {\n\tconst fontFaces =\n\t\tfont.fontFace && font.fontFace.length\n\t\t\t? sortFontFaces( font.fontFace )\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\t\tfontWeight: '400',\n\t\t\t\t\t},\n\t\t\t ];\n\n\treturn (\n\t\t<>\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t{ fontFaces.map( ( face, i ) => (\n\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t\t<Spacer margin={ 8 } />\n\t\t</>\n\t);\n}\n\nexport default LibraryFontDetails;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAQA,IAAAC,mBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAAwD,IAAAI,WAAA,GAAAJ,OAAA;AAZxD;AACA;AACA;;AAMA;AACA;AACA;;AAIA,SAASK,kBAAkBA,CAAE;EAAEC;AAAK,CAAC,EAAG;EACvC,MAAMC,SAAS,GACdD,IAAI,CAACE,QAAQ,IAAIF,IAAI,CAACE,QAAQ,CAACC,MAAM,GAClC,IAAAC,4BAAa,EAAEJ,IAAI,CAACE,QAAS,CAAC,GAC9B,CACA;IACCG,UAAU,EAAEL,IAAI,CAACK,UAAU;IAC3BC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE;EACb,CAAC,CACA;EAEL,oBACC,IAAAT,WAAA,CAAAU,IAAA,EAAAV,WAAA,CAAAW,QAAA;IAAAC,QAAA,gBACC,IAAAZ,WAAA,CAAAa,GAAA,EAAClB,WAAA,CAAAmB,oBAAM;MAACC,MAAM,EAAG;IAAG,CAAE,CAAC,eACvB,IAAAf,WAAA,CAAAU,IAAA,EAACf,WAAA,CAAAqB,oBAAM;MAACC,OAAO,EAAG,CAAG;MAAAL,QAAA,gBACpB,IAAAZ,WAAA,CAAAa,GAAA,EAAClB,WAAA,CAAAmB,oBAAM;QAACC,MAAM,EAAG;MAAG,CAAE,CAAC,EACrBZ,SAAS,CAACe,GAAG,CAAE,CAAEC,IAAI,EAAEC,CAAC,kBACzB,IAAApB,WAAA,CAAAa,GAAA,EAAChB,mBAAA,CAAAwB,OAAkB;QAClBnB,IAAI,EAAGA,IAAM;QACbiB,IAAI,EAAGA;MAAM,GACN,OAAOC,CAAG,EACjB,CACA,CAAC;IAAA,CACI,CAAC,eACT,IAAApB,WAAA,CAAAa,GAAA,EAAClB,WAAA,CAAAmB,oBAAM;MAACC,MAAM,EAAG;IAAG,CAAE,CAAC;EAAA,CACtB,CAAC;AAEL;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAEcpB,kBAAkB","ignoreList":[]}
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var _react = require("react");
9
8
  var _element = require("@wordpress/element");
10
9
  var _components = require("@wordpress/components");
11
10
  var _utils = require("./utils");
12
11
  var _context = require("./context");
13
12
  var _fontDemo = _interopRequireDefault(require("./font-demo"));
14
13
  var _lockUnlock = require("../../../lock-unlock");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
15
  /**
16
16
  * WordPress dependencies
17
17
  */
@@ -20,6 +20,9 @@ var _lockUnlock = require("../../../lock-unlock");
20
20
  * Internal dependencies
21
21
  */
22
22
 
23
+ const {
24
+ kebabCase
25
+ } = (0, _lockUnlock.unlock)(_components.privateApis);
23
26
  function LibraryFontVariant({
24
27
  face,
25
28
  font
@@ -37,28 +40,28 @@ function LibraryFontVariant({
37
40
  toggleActivateFont(font);
38
41
  };
39
42
  const displayName = font.name + ' ' + (0, _utils.getFontFaceVariantName)(face);
40
- const {
41
- kebabCase
42
- } = (0, _lockUnlock.unlock)(_components.privateApis);
43
43
  const checkboxId = kebabCase(`${font.slug}-${(0, _utils.getFontFaceVariantName)(face)}`);
44
- return (0, _react.createElement)("div", {
45
- className: "font-library-modal__font-card"
46
- }, (0, _react.createElement)(_components.Flex, {
47
- justify: "flex-start",
48
- align: "center",
49
- gap: "1rem"
50
- }, (0, _react.createElement)(_components.CheckboxControl, {
51
- checked: isInstalled,
52
- onChange: handleToggleActivation,
53
- __nextHasNoMarginBottom: true,
54
- id: checkboxId
55
- }), (0, _react.createElement)("label", {
56
- htmlFor: checkboxId
57
- }, (0, _react.createElement)(_fontDemo.default, {
58
- font: face,
59
- text: displayName,
60
- onClick: handleToggleActivation
61
- }))));
44
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
45
+ className: "font-library-modal__font-card",
46
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Flex, {
47
+ justify: "flex-start",
48
+ align: "center",
49
+ gap: "1rem",
50
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CheckboxControl, {
51
+ checked: isInstalled,
52
+ onChange: handleToggleActivation,
53
+ __nextHasNoMarginBottom: true,
54
+ id: checkboxId
55
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
56
+ htmlFor: checkboxId,
57
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_fontDemo.default, {
58
+ font: face,
59
+ text: displayName,
60
+ onClick: handleToggleActivation
61
+ })
62
+ })]
63
+ })
64
+ });
62
65
  }
63
66
  var _default = exports.default = LibraryFontVariant;
64
67
  //# sourceMappingURL=library-font-variant.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_components","_utils","_context","_fontDemo","_interopRequireDefault","_lockUnlock","LibraryFontVariant","face","font","isFontActivated","toggleActivateFont","useContext","FontLibraryContext","isInstalled","fontFace","length","slug","fontStyle","fontWeight","source","handleToggleActivation","displayName","name","getFontFaceVariantName","kebabCase","unlock","componentsPrivateApis","checkboxId","_react","createElement","className","Flex","justify","align","gap","CheckboxControl","checked","onChange","__nextHasNoMarginBottom","id","htmlFor","default","text","onClick","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-variant.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\tCheckboxControl,\n\tFlex,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { getFontFaceVariantName } from './utils';\nimport { FontLibraryContext } from './context';\nimport FontDemo from './font-demo';\nimport { unlock } from '../../../lock-unlock';\n\nfunction LibraryFontVariant( { face, font } ) {\n\tconst { isFontActivated, toggleActivateFont } =\n\t\tuseContext( FontLibraryContext );\n\n\tconst isInstalled =\n\t\tfont?.fontFace?.length > 0\n\t\t\t? isFontActivated(\n\t\t\t\t\tfont.slug,\n\t\t\t\t\tface.fontStyle,\n\t\t\t\t\tface.fontWeight,\n\t\t\t\t\tfont.source\n\t\t\t )\n\t\t\t: isFontActivated( font.slug, null, null, font.source );\n\n\tconst handleToggleActivation = () => {\n\t\tif ( font?.fontFace?.length > 0 ) {\n\t\t\ttoggleActivateFont( font, face );\n\t\t\treturn;\n\t\t}\n\t\ttoggleActivateFont( font );\n\t};\n\n\tconst displayName = font.name + ' ' + getFontFaceVariantName( face );\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\tconst checkboxId = kebabCase(\n\t\t`${ font.slug }-${ getFontFaceVariantName( face ) }`\n\t);\n\n\treturn (\n\t\t<div className=\"font-library-modal__font-card\">\n\t\t\t<Flex justify=\"flex-start\" align=\"center\" gap=\"1rem\">\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tchecked={ isInstalled }\n\t\t\t\t\tonChange={ handleToggleActivation }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tid={ checkboxId }\n\t\t\t\t/>\n\t\t\t\t<label htmlFor={ checkboxId }>\n\t\t\t\t\t<FontDemo\n\t\t\t\t\t\tfont={ face }\n\t\t\t\t\t\ttext={ displayName }\n\t\t\t\t\t\tonClick={ handleToggleActivation }\n\t\t\t\t\t/>\n\t\t\t\t</label>\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default LibraryFontVariant;\n"],"mappings":";;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AASA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAhBA;AACA;AACA;;AAQA;AACA;AACA;;AAMA,SAASO,kBAAkBA,CAAE;EAAEC,IAAI;EAAEC;AAAK,CAAC,EAAG;EAC7C,MAAM;IAAEC,eAAe;IAAEC;EAAmB,CAAC,GAC5C,IAAAC,mBAAU,EAAEC,2BAAmB,CAAC;EAEjC,MAAMC,WAAW,GAChBL,IAAI,EAAEM,QAAQ,EAAEC,MAAM,GAAG,CAAC,GACvBN,eAAe,CACfD,IAAI,CAACQ,IAAI,EACTT,IAAI,CAACU,SAAS,EACdV,IAAI,CAACW,UAAU,EACfV,IAAI,CAACW,MACL,CAAC,GACDV,eAAe,CAAED,IAAI,CAACQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAER,IAAI,CAACW,MAAO,CAAC;EAEzD,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;IACpC,IAAKZ,IAAI,EAAEM,QAAQ,EAAEC,MAAM,GAAG,CAAC,EAAG;MACjCL,kBAAkB,CAAEF,IAAI,EAAED,IAAK,CAAC;MAChC;IACD;IACAG,kBAAkB,CAAEF,IAAK,CAAC;EAC3B,CAAC;EAED,MAAMa,WAAW,GAAGb,IAAI,CAACc,IAAI,GAAG,GAAG,GAAG,IAAAC,6BAAsB,EAAEhB,IAAK,CAAC;EACpE,MAAM;IAAEiB;EAAU,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;EACrD,MAAMC,UAAU,GAAGH,SAAS,CAC1B,GAAGhB,IAAI,CAACQ,IAAM,IAAI,IAAAO,6BAAsB,EAAEhB,IAAK,CAAG,EACpD,CAAC;EAED,OACC,IAAAqB,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAA+B,GAC7C,IAAAF,MAAA,CAAAC,aAAA,EAAC7B,WAAA,CAAA+B,IAAI;IAACC,OAAO,EAAC,YAAY;IAACC,KAAK,EAAC,QAAQ;IAACC,GAAG,EAAC;EAAM,GACnD,IAAAN,MAAA,CAAAC,aAAA,EAAC7B,WAAA,CAAAmC,eAAe;IACfC,OAAO,EAAGvB,WAAa;IACvBwB,QAAQ,EAAGjB,sBAAwB;IACnCkB,uBAAuB;IACvBC,EAAE,EAAGZ;EAAY,CACjB,CAAC,EACF,IAAAC,MAAA,CAAAC,aAAA;IAAOW,OAAO,EAAGb;EAAY,GAC5B,IAAAC,MAAA,CAAAC,aAAA,EAAC1B,SAAA,CAAAsC,OAAQ;IACRjC,IAAI,EAAGD,IAAM;IACbmC,IAAI,EAAGrB,WAAa;IACpBsB,OAAO,EAAGvB;EAAwB,CAClC,CACK,CACF,CACF,CAAC;AAER;AAAC,IAAAwB,QAAA,GAAAC,OAAA,CAAAJ,OAAA,GAEcnC,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["_element","require","_components","_utils","_context","_fontDemo","_interopRequireDefault","_lockUnlock","_jsxRuntime","kebabCase","unlock","componentsPrivateApis","LibraryFontVariant","face","font","isFontActivated","toggleActivateFont","useContext","FontLibraryContext","isInstalled","fontFace","length","slug","fontStyle","fontWeight","source","handleToggleActivation","displayName","name","getFontFaceVariantName","checkboxId","jsx","className","children","jsxs","Flex","justify","align","gap","CheckboxControl","checked","onChange","__nextHasNoMarginBottom","id","htmlFor","default","text","onClick","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-variant.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\tCheckboxControl,\n\tFlex,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { getFontFaceVariantName } from './utils';\nimport { FontLibraryContext } from './context';\nimport FontDemo from './font-demo';\nimport { unlock } from '../../../lock-unlock';\n\nconst { kebabCase } = unlock( componentsPrivateApis );\n\nfunction LibraryFontVariant( { face, font } ) {\n\tconst { isFontActivated, toggleActivateFont } =\n\t\tuseContext( FontLibraryContext );\n\n\tconst isInstalled =\n\t\tfont?.fontFace?.length > 0\n\t\t\t? isFontActivated(\n\t\t\t\t\tfont.slug,\n\t\t\t\t\tface.fontStyle,\n\t\t\t\t\tface.fontWeight,\n\t\t\t\t\tfont.source\n\t\t\t )\n\t\t\t: isFontActivated( font.slug, null, null, font.source );\n\n\tconst handleToggleActivation = () => {\n\t\tif ( font?.fontFace?.length > 0 ) {\n\t\t\ttoggleActivateFont( font, face );\n\t\t\treturn;\n\t\t}\n\t\ttoggleActivateFont( font );\n\t};\n\n\tconst displayName = font.name + ' ' + getFontFaceVariantName( face );\n\tconst checkboxId = kebabCase(\n\t\t`${ font.slug }-${ getFontFaceVariantName( face ) }`\n\t);\n\n\treturn (\n\t\t<div className=\"font-library-modal__font-card\">\n\t\t\t<Flex justify=\"flex-start\" align=\"center\" gap=\"1rem\">\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tchecked={ isInstalled }\n\t\t\t\t\tonChange={ handleToggleActivation }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tid={ checkboxId }\n\t\t\t\t/>\n\t\t\t\t<label htmlFor={ checkboxId }>\n\t\t\t\t\t<FontDemo\n\t\t\t\t\t\tfont={ face }\n\t\t\t\t\t\ttext={ displayName }\n\t\t\t\t\t\tonClick={ handleToggleActivation }\n\t\t\t\t\t/>\n\t\t\t\t</label>\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default LibraryFontVariant;\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AASA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAA8C,IAAAO,WAAA,GAAAP,OAAA;AAhB9C;AACA;AACA;;AAQA;AACA;AACA;;AAMA,MAAM;EAAEQ;AAAU,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAErD,SAASC,kBAAkBA,CAAE;EAAEC,IAAI;EAAEC;AAAK,CAAC,EAAG;EAC7C,MAAM;IAAEC,eAAe;IAAEC;EAAmB,CAAC,GAC5C,IAAAC,mBAAU,EAAEC,2BAAmB,CAAC;EAEjC,MAAMC,WAAW,GAChBL,IAAI,EAAEM,QAAQ,EAAEC,MAAM,GAAG,CAAC,GACvBN,eAAe,CACfD,IAAI,CAACQ,IAAI,EACTT,IAAI,CAACU,SAAS,EACdV,IAAI,CAACW,UAAU,EACfV,IAAI,CAACW,MACL,CAAC,GACDV,eAAe,CAAED,IAAI,CAACQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAER,IAAI,CAACW,MAAO,CAAC;EAEzD,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;IACpC,IAAKZ,IAAI,EAAEM,QAAQ,EAAEC,MAAM,GAAG,CAAC,EAAG;MACjCL,kBAAkB,CAAEF,IAAI,EAAED,IAAK,CAAC;MAChC;IACD;IACAG,kBAAkB,CAAEF,IAAK,CAAC;EAC3B,CAAC;EAED,MAAMa,WAAW,GAAGb,IAAI,CAACc,IAAI,GAAG,GAAG,GAAG,IAAAC,6BAAsB,EAAEhB,IAAK,CAAC;EACpE,MAAMiB,UAAU,GAAGrB,SAAS,CAC1B,GAAGK,IAAI,CAACQ,IAAM,IAAI,IAAAO,6BAAsB,EAAEhB,IAAK,CAAG,EACpD,CAAC;EAED,oBACC,IAAAL,WAAA,CAAAuB,GAAA;IAAKC,SAAS,EAAC,+BAA+B;IAAAC,QAAA,eAC7C,IAAAzB,WAAA,CAAA0B,IAAA,EAAChC,WAAA,CAAAiC,IAAI;MAACC,OAAO,EAAC,YAAY;MAACC,KAAK,EAAC,QAAQ;MAACC,GAAG,EAAC,MAAM;MAAAL,QAAA,gBACnD,IAAAzB,WAAA,CAAAuB,GAAA,EAAC7B,WAAA,CAAAqC,eAAe;QACfC,OAAO,EAAGrB,WAAa;QACvBsB,QAAQ,EAAGf,sBAAwB;QACnCgB,uBAAuB;QACvBC,EAAE,EAAGb;MAAY,CACjB,CAAC,eACF,IAAAtB,WAAA,CAAAuB,GAAA;QAAOa,OAAO,EAAGd,UAAY;QAAAG,QAAA,eAC5B,IAAAzB,WAAA,CAAAuB,GAAA,EAAC1B,SAAA,CAAAwC,OAAQ;UACR/B,IAAI,EAAGD,IAAM;UACbiC,IAAI,EAAGnB,WAAa;UACpBoB,OAAO,EAAGrB;QAAwB,CAClC;MAAC,CACI,CAAC;IAAA,CACH;EAAC,CACH,CAAC;AAER;AAAC,IAAAsB,QAAA,GAAAC,OAAA,CAAAJ,OAAA,GAEcjC,kBAAkB","ignoreList":[]}
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var _react = require("react");
9
8
  var _i18n = require("@wordpress/i18n");
10
9
  var _components = require("@wordpress/components");
11
10
  var _element = require("@wordpress/element");
@@ -14,7 +13,7 @@ var _context = require("./context");
14
13
  var _libFont = require("../../../../lib/lib-font.browser");
15
14
  var _makeFamiliesFromFaces = _interopRequireDefault(require("./utils/make-families-from-faces"));
16
15
  var _utils = require("./utils");
17
- var _lockUnlock = require("../../../lock-unlock");
16
+ var _jsxRuntime = require("react/jsx-runtime");
18
17
  /**
19
18
  * WordPress dependencies
20
19
  */
@@ -23,9 +22,6 @@ var _lockUnlock = require("../../../lock-unlock");
23
22
  * Internal dependencies
24
23
  */
25
24
 
26
- const {
27
- ProgressBar
28
- } = (0, _lockUnlock.unlock)(_components.privateApis);
29
25
  function UploadFonts() {
30
26
  const {
31
27
  installFonts,
@@ -177,35 +173,45 @@ function UploadFonts() {
177
173
  }
178
174
  setIsUploading(false);
179
175
  };
180
- return (0, _react.createElement)("div", {
181
- className: "font-library-modal__tabpanel-layout"
182
- }, (0, _react.createElement)(_components.DropZone, {
183
- onFilesDrop: handleDropZone
184
- }), (0, _react.createElement)(_components.__experimentalVStack, {
185
- className: "font-library-modal__local-fonts"
186
- }, notice && (0, _react.createElement)(_components.Notice, {
187
- status: notice.type,
188
- __unstableHTML: true,
189
- onRemove: () => setNotice(null)
190
- }, notice.message, notice.errors && (0, _react.createElement)("ul", null, notice.errors.map((error, index) => (0, _react.createElement)("li", {
191
- key: index
192
- }, error)))), isUploading && (0, _react.createElement)(_components.FlexItem, null, (0, _react.createElement)("div", {
193
- className: "font-library-modal__upload-area"
194
- }, (0, _react.createElement)(ProgressBar, null))), !isUploading && (0, _react.createElement)(_components.FormFileUpload, {
195
- accept: _constants.ALLOWED_FILE_EXTENSIONS.map(ext => `.${ext}`).join(','),
196
- multiple: true,
197
- onChange: onFilesUpload,
198
- render: ({
199
- openFileDialog
200
- }) => (0, _react.createElement)(_components.Button, {
201
- className: "font-library-modal__upload-area",
202
- onClick: openFileDialog
203
- }, (0, _i18n.__)('Upload font'))
204
- }), (0, _react.createElement)(_components.__experimentalSpacer, {
205
- margin: 2
206
- }), (0, _react.createElement)(_components.__experimentalText, {
207
- className: "font-library-modal__upload-area__text"
208
- }, (0, _i18n.__)('Uploaded fonts appear in your library and can be used in your theme. Supported formats: .ttf, .otf, .woff, and .woff2.'))));
176
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
177
+ className: "font-library-modal__tabpanel-layout",
178
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.DropZone, {
179
+ onFilesDrop: handleDropZone
180
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
181
+ className: "font-library-modal__local-fonts",
182
+ children: [notice && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Notice, {
183
+ status: notice.type,
184
+ __unstableHTML: true,
185
+ onRemove: () => setNotice(null),
186
+ children: [notice.message, notice.errors && /*#__PURE__*/(0, _jsxRuntime.jsx)("ul", {
187
+ children: notice.errors.map((error, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
188
+ children: error
189
+ }, index))
190
+ })]
191
+ }), isUploading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
192
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
193
+ className: "font-library-modal__upload-area",
194
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ProgressBar, {})
195
+ })
196
+ }), !isUploading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FormFileUpload, {
197
+ accept: _constants.ALLOWED_FILE_EXTENSIONS.map(ext => `.${ext}`).join(','),
198
+ multiple: true,
199
+ onChange: onFilesUpload,
200
+ render: ({
201
+ openFileDialog
202
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
203
+ className: "font-library-modal__upload-area",
204
+ onClick: openFileDialog,
205
+ children: (0, _i18n.__)('Upload font')
206
+ })
207
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalSpacer, {
208
+ margin: 2
209
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalText, {
210
+ className: "font-library-modal__upload-area__text",
211
+ children: (0, _i18n.__)('Uploaded fonts appear in your library and can be used in your theme. Supported formats: .ttf, .otf, .woff, and .woff2.')
212
+ })]
213
+ })]
214
+ });
209
215
  }
210
216
  var _default = exports.default = UploadFonts;
211
217
  //# sourceMappingURL=upload-fonts.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_element","_constants","_context","_libFont","_makeFamiliesFromFaces","_interopRequireDefault","_utils","_lockUnlock","ProgressBar","unlock","componentsPrivateApis","UploadFonts","installFonts","notice","setNotice","useContext","FontLibraryContext","isUploading","setIsUploading","useState","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","uniqueFilenames","Set","selectedFiles","hasInvalidFiles","checkFilesPromises","map","file","isFont","isFontFile","has","name","fileExtension","split","pop","toLowerCase","ALLOWED_FILE_EXTENSIONS","includes","add","allowedFiles","Promise","all","filter","length","loadFiles","message","__","type","fontFacesLoaded","fontFile","fontFaceData","getFontFaceMetadata","loadFontFaceInBrowser","handleInstall","font","Font","buffer","readFileAsArrayBuffer","fromDataBuffer","error","resolve","reject","reader","window","FileReader","readAsArrayBuffer","onload","result","onerror","fontObj","onloadEvent","detail","opentype","tables","fontName","get","isItalic","fontWeight","usWeightClass","isVariable","fvar","weightAxis","axes","find","tag","weightRange","minValue","maxValue","fontFamily","fontStyle","fontFaces","fontFamilies","makeFamiliesFromFaces","errors","installationErrors","_react","createElement","className","DropZone","onFilesDrop","__experimentalVStack","Notice","status","__unstableHTML","onRemove","index","key","FlexItem","FormFileUpload","accept","ext","join","multiple","onChange","render","openFileDialog","Button","onClick","__experimentalSpacer","margin","__experimentalText","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/upload-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tButton,\n\tDropZone,\n\tNotice,\n\tFormFileUpload,\n\tFlexItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useContext, useState } 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';\nimport { unlock } from '../../../lock-unlock';\n\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction UploadFonts() {\n\tconst { installFonts, notice, setNotice } =\n\t\tuseContext( FontLibraryContext );\n\tconst [ isUploading, setIsUploading ] = useState( false );\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 = async ( files ) => {\n\t\tsetNotice( null );\n\t\tsetIsUploading( true );\n\t\tconst uniqueFilenames = new Set();\n\t\tconst selectedFiles = [ ...files ];\n\t\tlet hasInvalidFiles = false;\n\n\t\t// Use map to create a promise for each file check, then filter with Promise.all.\n\t\tconst checkFilesPromises = selectedFiles.map( async ( file ) => {\n\t\t\tconst isFont = await isFontFile( file );\n\t\t\tif ( ! isFont ) {\n\t\t\t\thasInvalidFiles = true;\n\t\t\t\treturn null; // Return null for invalid files.\n\t\t\t}\n\t\t\t// Check for duplicates\n\t\t\tif ( uniqueFilenames.has( file.name ) ) {\n\t\t\t\treturn null; // Return null for duplicates.\n\t\t\t}\n\t\t\t// Check if the file extension is 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 file; // Return the file if it passes all checks.\n\t\t\t}\n\t\t\treturn null; // Return null for disallowed file extensions.\n\t\t} );\n\n\t\t// Filter out the nulls after all promises have resolved.\n\t\tconst allowedFiles = ( await Promise.all( checkFilesPromises ) ).filter(\n\t\t\t( file ) => null !== file\n\t\t);\n\n\t\tif ( allowedFiles.length > 0 ) {\n\t\t\tloadFiles( allowedFiles );\n\t\t} else {\n\t\t\tconst message = hasInvalidFiles\n\t\t\t\t? __( 'Sorry, you are not allowed to upload this file type.' )\n\t\t\t\t: __( 'No fonts found to install.' );\n\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage,\n\t\t\t} );\n\t\t\tsetIsUploading( false );\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\thandleInstall( fontFacesLoaded );\n\t};\n\n\t/**\n\t * Checks if a file is a valid Font file.\n\t *\n\t * @param {File} file The file to be checked.\n\t * @return {boolean} Whether the file is a valid font file.\n\t */\n\tasync function isFontFile( file ) {\n\t\tconst font = new Font( 'Uploaded Font' );\n\t\ttry {\n\t\t\tconst buffer = await readFileAsArrayBuffer( file );\n\t\t\tawait font.fromDataBuffer( buffer, 'font' );\n\t\t\treturn true;\n\t\t} catch ( error ) {\n\t\t\treturn false;\n\t\t}\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\n\t\ttry {\n\t\t\tawait installFonts( fontFamilies );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t\terrors: error?.installationErrors,\n\t\t\t} );\n\t\t}\n\n\t\tsetIsUploading( false );\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t<DropZone onFilesDrop={ handleDropZone } />\n\t\t\t<VStack className=\"font-library-modal__local-fonts\">\n\t\t\t\t{ notice && (\n\t\t\t\t\t<Notice\n\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t__unstableHTML\n\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t{ notice.errors && (\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t{ notice.errors.map( ( error, index ) => (\n\t\t\t\t\t\t\t\t\t<li key={ index }>{ error }</li>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Notice>\n\t\t\t\t) }\n\t\t\t\t{ isUploading && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<div className=\"font-library-modal__upload-area\">\n\t\t\t\t\t\t\t<ProgressBar />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ ! isUploading && (\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\taccept={ ALLOWED_FILE_EXTENSIONS.map(\n\t\t\t\t\t\t\t( ext ) => `.${ ext }`\n\t\t\t\t\t\t).join( ',' ) }\n\t\t\t\t\t\tmultiple\n\t\t\t\t\t\tonChange={ onFilesUpload }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__upload-area\"\n\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Upload font' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t<Text className=\"font-library-modal__upload-area__text\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Uploaded fonts appear in your library and can be used in your theme. Supported formats: .ttf, .otf, .woff, and .woff2.'\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default UploadFonts;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_components","_element","_constants","_context","_libFont","_makeFamiliesFromFaces","_interopRequireDefault","_utils","_jsxRuntime","UploadFonts","installFonts","notice","setNotice","useContext","FontLibraryContext","isUploading","setIsUploading","useState","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","uniqueFilenames","Set","selectedFiles","hasInvalidFiles","checkFilesPromises","map","file","isFont","isFontFile","has","name","fileExtension","split","pop","toLowerCase","ALLOWED_FILE_EXTENSIONS","includes","add","allowedFiles","Promise","all","filter","length","loadFiles","message","__","type","fontFacesLoaded","fontFile","fontFaceData","getFontFaceMetadata","loadFontFaceInBrowser","handleInstall","font","Font","buffer","readFileAsArrayBuffer","fromDataBuffer","error","resolve","reject","reader","window","FileReader","readAsArrayBuffer","onload","result","onerror","fontObj","onloadEvent","detail","opentype","tables","fontName","get","isItalic","fontWeight","usWeightClass","isVariable","fvar","weightAxis","axes","find","tag","weightRange","minValue","maxValue","fontFamily","fontStyle","fontFaces","fontFamilies","makeFamiliesFromFaces","errors","installationErrors","jsxs","className","children","jsx","DropZone","onFilesDrop","__experimentalVStack","Notice","status","__unstableHTML","onRemove","index","FlexItem","ProgressBar","FormFileUpload","accept","ext","join","multiple","onChange","render","openFileDialog","Button","onClick","__experimentalSpacer","margin","__experimentalText","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/upload-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tButton,\n\tDropZone,\n\tNotice,\n\tFormFileUpload,\n\tFlexItem,\n\tProgressBar,\n} from '@wordpress/components';\nimport { useContext, useState } 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 UploadFonts() {\n\tconst { installFonts, notice, setNotice } =\n\t\tuseContext( FontLibraryContext );\n\tconst [ isUploading, setIsUploading ] = useState( false );\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 = async ( files ) => {\n\t\tsetNotice( null );\n\t\tsetIsUploading( true );\n\t\tconst uniqueFilenames = new Set();\n\t\tconst selectedFiles = [ ...files ];\n\t\tlet hasInvalidFiles = false;\n\n\t\t// Use map to create a promise for each file check, then filter with Promise.all.\n\t\tconst checkFilesPromises = selectedFiles.map( async ( file ) => {\n\t\t\tconst isFont = await isFontFile( file );\n\t\t\tif ( ! isFont ) {\n\t\t\t\thasInvalidFiles = true;\n\t\t\t\treturn null; // Return null for invalid files.\n\t\t\t}\n\t\t\t// Check for duplicates\n\t\t\tif ( uniqueFilenames.has( file.name ) ) {\n\t\t\t\treturn null; // Return null for duplicates.\n\t\t\t}\n\t\t\t// Check if the file extension is 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 file; // Return the file if it passes all checks.\n\t\t\t}\n\t\t\treturn null; // Return null for disallowed file extensions.\n\t\t} );\n\n\t\t// Filter out the nulls after all promises have resolved.\n\t\tconst allowedFiles = ( await Promise.all( checkFilesPromises ) ).filter(\n\t\t\t( file ) => null !== file\n\t\t);\n\n\t\tif ( allowedFiles.length > 0 ) {\n\t\t\tloadFiles( allowedFiles );\n\t\t} else {\n\t\t\tconst message = hasInvalidFiles\n\t\t\t\t? __( 'Sorry, you are not allowed to upload this file type.' )\n\t\t\t\t: __( 'No fonts found to install.' );\n\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage,\n\t\t\t} );\n\t\t\tsetIsUploading( false );\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\thandleInstall( fontFacesLoaded );\n\t};\n\n\t/**\n\t * Checks if a file is a valid Font file.\n\t *\n\t * @param {File} file The file to be checked.\n\t * @return {boolean} Whether the file is a valid font file.\n\t */\n\tasync function isFontFile( file ) {\n\t\tconst font = new Font( 'Uploaded Font' );\n\t\ttry {\n\t\t\tconst buffer = await readFileAsArrayBuffer( file );\n\t\t\tawait font.fromDataBuffer( buffer, 'font' );\n\t\t\treturn true;\n\t\t} catch ( error ) {\n\t\t\treturn false;\n\t\t}\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\n\t\ttry {\n\t\t\tawait installFonts( fontFamilies );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t\terrors: error?.installationErrors,\n\t\t\t} );\n\t\t}\n\n\t\tsetIsUploading( false );\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t<DropZone onFilesDrop={ handleDropZone } />\n\t\t\t<VStack className=\"font-library-modal__local-fonts\">\n\t\t\t\t{ notice && (\n\t\t\t\t\t<Notice\n\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t__unstableHTML\n\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t{ notice.errors && (\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t{ notice.errors.map( ( error, index ) => (\n\t\t\t\t\t\t\t\t\t<li key={ index }>{ error }</li>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Notice>\n\t\t\t\t) }\n\t\t\t\t{ isUploading && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<div className=\"font-library-modal__upload-area\">\n\t\t\t\t\t\t\t<ProgressBar />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ ! isUploading && (\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\taccept={ ALLOWED_FILE_EXTENSIONS.map(\n\t\t\t\t\t\t\t( ext ) => `.${ ext }`\n\t\t\t\t\t\t).join( ',' ) }\n\t\t\t\t\t\tmultiple\n\t\t\t\t\t\tonChange={ onFilesUpload }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__upload-area\"\n\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Upload font' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t<Text className=\"font-library-modal__upload-area__text\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Uploaded fonts appear in your library and can be used in your theme. Supported formats: .ttf, .otf, .woff, and .woff2.'\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default UploadFonts;\n"],"mappings":"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","ignoreList":[]}
@@ -35,6 +35,9 @@ var _previewStyles = require("./preview-styles");
35
35
  const {
36
36
  File
37
37
  } = window;
38
+ const {
39
+ kebabCase
40
+ } = (0, _lockUnlock.unlock)(_components.privateApis);
38
41
  function setUIValuesNeeded(font, extraValues = {}) {
39
42
  if (!font.name && (font.fontFamily || font.slug)) {
40
43
  font.name = font.fontFamily || font.slug;
@@ -179,9 +182,6 @@ function getDisplaySrcFromFontFace(input) {
179
182
  }
180
183
  function makeFontFamilyFormData(fontFamily) {
181
184
  const formData = new FormData();
182
- const {
183
- kebabCase
184
- } = (0, _lockUnlock.unlock)(_components.privateApis);
185
185
  const {
186
186
  fontFace,
187
187
  category,
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_constants","_lockUnlock","_resolvers","_previewStyles","File","window","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","arrayBuffer","newFont","FontFace","formatFontFaceName","style","weight","loadedFace","load","document","fonts","add","iframeDocument","querySelector","contentDocument","unloadFontFaceInBrowser","removeFrom","unloadFontFace","forEach","f","family","delete","getDisplaySrcFromFontFace","input","src","isArray","startsWith","encodeURI","makeFontFamilyFormData","formData","FormData","kebabCase","unlock","componentsPrivateApis","category","familyWithValidParameters","fontFamilySettings","append","JSON","stringify","makeFontFacesFormData","fontFacesFormData","item","faceIndex","file","files","key","fileId","push","length","batchInstallFontFaces","fontFamilyId","fontFacesData","responses","faceData","response","fetchInstallFontFace","status","value","error","reason","results","errors","successes","result","index","id","data","message","downloadFontFaceAssets","Promise","all","fetch","Request","then","ok","Error","blob","filename","split","pop","type","checkFontFaceInstalled","collection","findIndex","collectionFontFace"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { FONT_WEIGHTS, FONT_STYLES } from './constants';\nimport { unlock } from '../../../../lock-unlock';\nimport { fetchInstallFontFace } from '../resolvers';\nimport { formatFontFaceName } from './preview-styles';\n\n/**\n * Browser dependencies\n */\nconst { File } = window;\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} else {\n\t\treturn;\n\t}\n\n\tconst newFont = new window.FontFace(\n\t\tformatFontFaceName( 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\n/*\n * Unloads the font face and remove it from the browser.\n * It also removes it from the iframe document.\n *\n * Note that Font faces that were added to the set using the CSS @font-face rule\n * remain connected to the corresponding CSS, and cannot be deleted.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet/delete.\n */\nexport function unloadFontFaceInBrowser( fontFace, removeFrom = 'all' ) {\n\tconst unloadFontFace = ( fonts ) => {\n\t\tfonts.forEach( ( f ) => {\n\t\t\tif (\n\t\t\t\tf.family === formatFontFaceName( fontFace?.fontFamily ) &&\n\t\t\t\tf.weight === fontFace?.fontWeight &&\n\t\t\t\tf.style === fontFace?.fontStyle\n\t\t\t) {\n\t\t\t\tfonts.delete( f );\n\t\t\t}\n\t\t} );\n\t};\n\n\tif ( removeFrom === 'document' || removeFrom === 'all' ) {\n\t\tunloadFontFace( document.fonts );\n\t}\n\n\tif ( removeFrom === 'iframe' || removeFrom === 'all' ) {\n\t\tconst iframeDocument = document.querySelector(\n\t\t\t'iframe[name=\"editor-canvas\"]'\n\t\t).contentDocument;\n\t\tunloadFontFace( iframeDocument.fonts );\n\t}\n}\n\n/**\n * Retrieves the display source from a font face src.\n *\n * @param {string|string[]} input - The font face src.\n * @return {string|undefined} The display source or undefined if the input is invalid.\n */\nexport function getDisplaySrcFromFontFace( input ) {\n\tif ( ! input ) {\n\t\treturn;\n\t}\n\n\tlet src;\n\tif ( Array.isArray( input ) ) {\n\t\tsrc = input[ 0 ];\n\t} else {\n\t\tsrc = input;\n\t}\n\t// It's expected theme fonts will already be loaded in the browser.\n\tif ( src.startsWith( 'file:.' ) ) {\n\t\treturn;\n\t}\n\tif ( ! isUrlEncoded( src ) ) {\n\t\tsrc = encodeURI( src );\n\t}\n\treturn src;\n}\n\nexport function makeFontFamilyFormData( fontFamily ) {\n\tconst formData = new FormData();\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\n\tconst { fontFace, category, ...familyWithValidParameters } = fontFamily;\n\tconst fontFamilySettings = {\n\t\t...familyWithValidParameters,\n\t\tslug: kebabCase( fontFamily.slug ),\n\t};\n\n\tformData.append(\n\t\t'font_family_settings',\n\t\tJSON.stringify( fontFamilySettings )\n\t);\n\treturn formData;\n}\n\nexport function makeFontFacesFormData( font ) {\n\tif ( font?.fontFace ) {\n\t\tconst fontFacesFormData = font.fontFace.map( ( item, faceIndex ) => {\n\t\t\tconst face = { ...item };\n\t\t\tconst formData = new FormData();\n\t\t\tif ( face.file ) {\n\t\t\t\t// Normalize to an array, since face.file may be a single file or an array of files.\n\t\t\t\tconst files = Array.isArray( face.file )\n\t\t\t\t\t? face.file\n\t\t\t\t\t: [ face.file ];\n\t\t\t\tconst src = [];\n\n\t\t\t\tfiles.forEach( ( file, key ) => {\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-${ faceIndex }-${ key }`;\n\t\t\t\t\t// Add the files to the formData\n\t\t\t\t\tformData.append( fileId, file, file.name );\n\t\t\t\t\tsrc.push( fileId );\n\t\t\t\t} );\n\n\t\t\t\tface.src = src.length === 1 ? src[ 0 ] : src;\n\t\t\t\tdelete face.file;\n\n\t\t\t\tformData.append( 'font_face_settings', JSON.stringify( face ) );\n\t\t\t} else {\n\t\t\t\tformData.append( 'font_face_settings', JSON.stringify( face ) );\n\t\t\t}\n\t\t\treturn formData;\n\t\t} );\n\n\t\treturn fontFacesFormData;\n\t}\n}\n\nexport async function batchInstallFontFaces( fontFamilyId, fontFacesData ) {\n\tconst responses = [];\n\n\t/*\n\t * Uses the same response format as Promise.allSettled, but executes requests in sequence to work\n\t * around a race condition that can cause an error when the fonts directory doesn't exist yet.\n\t */\n\tfor ( const faceData of fontFacesData ) {\n\t\ttry {\n\t\t\tconst response = await fetchInstallFontFace(\n\t\t\t\tfontFamilyId,\n\t\t\t\tfaceData\n\t\t\t);\n\t\t\tresponses.push( { status: 'fulfilled', value: response } );\n\t\t} catch ( error ) {\n\t\t\tresponses.push( { status: 'rejected', reason: error } );\n\t\t}\n\t}\n\n\tconst results = {\n\t\terrors: [],\n\t\tsuccesses: [],\n\t};\n\n\tresponses.forEach( ( result, index ) => {\n\t\tif ( result.status === 'fulfilled' ) {\n\t\t\tconst response = result.value;\n\t\t\tif ( response.id ) {\n\t\t\t\tresults.successes.push( response );\n\t\t\t} else {\n\t\t\t\tresults.errors.push( {\n\t\t\t\t\tdata: fontFacesData[ index ],\n\t\t\t\t\tmessage: `Error: ${ response.message }`,\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\t\t\t// Handle network errors or other fetch-related errors\n\t\t\tresults.errors.push( {\n\t\t\t\tdata: fontFacesData[ index ],\n\t\t\t\tmessage: result.reason.message,\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn results;\n}\n\n/*\n * Downloads a font face asset from a URL to the client and returns a File object.\n */\nexport async function downloadFontFaceAssets( src ) {\n\t// Normalize to an array, since `src` could be a string or array.\n\tsrc = Array.isArray( src ) ? src : [ src ];\n\n\tconst files = await Promise.all(\n\t\tsrc.map( async ( url ) => {\n\t\t\treturn fetch( new Request( url ) )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( ! response.ok ) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Error downloading font face asset from ${ url }. Server responded with status: ${ response.status }`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn response.blob();\n\t\t\t\t} )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tconst filename = url.split( '/' ).pop();\n\t\t\t\t\tconst file = new File( [ blob ], filename, {\n\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t} );\n\t\t\t\t\treturn file;\n\t\t\t\t} );\n\t\t} )\n\t);\n\n\t// If we only have one file return it (not the array). Otherwise return all of them in the array.\n\treturn files.length === 1 ? files[ 0 ] : files;\n}\n\n/*\n * Determine if a given Font Face is present in a given collection.\n * We determine that a font face has been installed by comparing the fontWeight and fontStyle\n *\n * @param {Object} fontFace The Font Face to seek\n * @param {Array} collection The Collection to seek in\n * @returns True if the font face is found in the collection. Otherwise False.\n */\nexport function checkFontFaceInstalled( fontFace, collection ) {\n\treturn (\n\t\t-1 !==\n\t\tcollection.findIndex( ( collectionFontFace ) => {\n\t\t\treturn (\n\t\t\t\tcollectionFontFace.fontWeight === fontFace.fontWeight &&\n\t\t\t\tcollectionFontFace.fontStyle === fontFace.fontStyle\n\t\t\t);\n\t\t} )\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_constants","_lockUnlock","_resolvers","_previewStyles","File","window","kebabCase","unlock","componentsPrivateApis","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","arrayBuffer","newFont","FontFace","formatFontFaceName","style","weight","loadedFace","load","document","fonts","add","iframeDocument","querySelector","contentDocument","unloadFontFaceInBrowser","removeFrom","unloadFontFace","forEach","f","family","delete","getDisplaySrcFromFontFace","input","src","isArray","startsWith","encodeURI","makeFontFamilyFormData","formData","FormData","category","familyWithValidParameters","fontFamilySettings","append","JSON","stringify","makeFontFacesFormData","fontFacesFormData","item","faceIndex","file","files","key","fileId","push","length","batchInstallFontFaces","fontFamilyId","fontFacesData","responses","faceData","response","fetchInstallFontFace","status","value","error","reason","results","errors","successes","result","index","id","data","message","downloadFontFaceAssets","Promise","all","fetch","Request","then","ok","Error","blob","filename","split","pop","type","checkFontFaceInstalled","collection","findIndex","collectionFontFace"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { FONT_WEIGHTS, FONT_STYLES } from './constants';\nimport { unlock } from '../../../../lock-unlock';\nimport { fetchInstallFontFace } from '../resolvers';\nimport { formatFontFaceName } from './preview-styles';\n\n/**\n * Browser dependencies\n */\nconst { File } = window;\nconst { kebabCase } = unlock( componentsPrivateApis );\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} else {\n\t\treturn;\n\t}\n\n\tconst newFont = new window.FontFace(\n\t\tformatFontFaceName( 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\n/*\n * Unloads the font face and remove it from the browser.\n * It also removes it from the iframe document.\n *\n * Note that Font faces that were added to the set using the CSS @font-face rule\n * remain connected to the corresponding CSS, and cannot be deleted.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet/delete.\n */\nexport function unloadFontFaceInBrowser( fontFace, removeFrom = 'all' ) {\n\tconst unloadFontFace = ( fonts ) => {\n\t\tfonts.forEach( ( f ) => {\n\t\t\tif (\n\t\t\t\tf.family === formatFontFaceName( fontFace?.fontFamily ) &&\n\t\t\t\tf.weight === fontFace?.fontWeight &&\n\t\t\t\tf.style === fontFace?.fontStyle\n\t\t\t) {\n\t\t\t\tfonts.delete( f );\n\t\t\t}\n\t\t} );\n\t};\n\n\tif ( removeFrom === 'document' || removeFrom === 'all' ) {\n\t\tunloadFontFace( document.fonts );\n\t}\n\n\tif ( removeFrom === 'iframe' || removeFrom === 'all' ) {\n\t\tconst iframeDocument = document.querySelector(\n\t\t\t'iframe[name=\"editor-canvas\"]'\n\t\t).contentDocument;\n\t\tunloadFontFace( iframeDocument.fonts );\n\t}\n}\n\n/**\n * Retrieves the display source from a font face src.\n *\n * @param {string|string[]} input - The font face src.\n * @return {string|undefined} The display source or undefined if the input is invalid.\n */\nexport function getDisplaySrcFromFontFace( input ) {\n\tif ( ! input ) {\n\t\treturn;\n\t}\n\n\tlet src;\n\tif ( Array.isArray( input ) ) {\n\t\tsrc = input[ 0 ];\n\t} else {\n\t\tsrc = input;\n\t}\n\t// It's expected theme fonts will already be loaded in the browser.\n\tif ( src.startsWith( 'file:.' ) ) {\n\t\treturn;\n\t}\n\tif ( ! isUrlEncoded( src ) ) {\n\t\tsrc = encodeURI( src );\n\t}\n\treturn src;\n}\n\nexport function makeFontFamilyFormData( fontFamily ) {\n\tconst formData = new FormData();\n\n\tconst { fontFace, category, ...familyWithValidParameters } = fontFamily;\n\tconst fontFamilySettings = {\n\t\t...familyWithValidParameters,\n\t\tslug: kebabCase( fontFamily.slug ),\n\t};\n\n\tformData.append(\n\t\t'font_family_settings',\n\t\tJSON.stringify( fontFamilySettings )\n\t);\n\treturn formData;\n}\n\nexport function makeFontFacesFormData( font ) {\n\tif ( font?.fontFace ) {\n\t\tconst fontFacesFormData = font.fontFace.map( ( item, faceIndex ) => {\n\t\t\tconst face = { ...item };\n\t\t\tconst formData = new FormData();\n\t\t\tif ( face.file ) {\n\t\t\t\t// Normalize to an array, since face.file may be a single file or an array of files.\n\t\t\t\tconst files = Array.isArray( face.file )\n\t\t\t\t\t? face.file\n\t\t\t\t\t: [ face.file ];\n\t\t\t\tconst src = [];\n\n\t\t\t\tfiles.forEach( ( file, key ) => {\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-${ faceIndex }-${ key }`;\n\t\t\t\t\t// Add the files to the formData\n\t\t\t\t\tformData.append( fileId, file, file.name );\n\t\t\t\t\tsrc.push( fileId );\n\t\t\t\t} );\n\n\t\t\t\tface.src = src.length === 1 ? src[ 0 ] : src;\n\t\t\t\tdelete face.file;\n\n\t\t\t\tformData.append( 'font_face_settings', JSON.stringify( face ) );\n\t\t\t} else {\n\t\t\t\tformData.append( 'font_face_settings', JSON.stringify( face ) );\n\t\t\t}\n\t\t\treturn formData;\n\t\t} );\n\n\t\treturn fontFacesFormData;\n\t}\n}\n\nexport async function batchInstallFontFaces( fontFamilyId, fontFacesData ) {\n\tconst responses = [];\n\n\t/*\n\t * Uses the same response format as Promise.allSettled, but executes requests in sequence to work\n\t * around a race condition that can cause an error when the fonts directory doesn't exist yet.\n\t */\n\tfor ( const faceData of fontFacesData ) {\n\t\ttry {\n\t\t\tconst response = await fetchInstallFontFace(\n\t\t\t\tfontFamilyId,\n\t\t\t\tfaceData\n\t\t\t);\n\t\t\tresponses.push( { status: 'fulfilled', value: response } );\n\t\t} catch ( error ) {\n\t\t\tresponses.push( { status: 'rejected', reason: error } );\n\t\t}\n\t}\n\n\tconst results = {\n\t\terrors: [],\n\t\tsuccesses: [],\n\t};\n\n\tresponses.forEach( ( result, index ) => {\n\t\tif ( result.status === 'fulfilled' ) {\n\t\t\tconst response = result.value;\n\t\t\tif ( response.id ) {\n\t\t\t\tresults.successes.push( response );\n\t\t\t} else {\n\t\t\t\tresults.errors.push( {\n\t\t\t\t\tdata: fontFacesData[ index ],\n\t\t\t\t\tmessage: `Error: ${ response.message }`,\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\t\t\t// Handle network errors or other fetch-related errors\n\t\t\tresults.errors.push( {\n\t\t\t\tdata: fontFacesData[ index ],\n\t\t\t\tmessage: result.reason.message,\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn results;\n}\n\n/*\n * Downloads a font face asset from a URL to the client and returns a File object.\n */\nexport async function downloadFontFaceAssets( src ) {\n\t// Normalize to an array, since `src` could be a string or array.\n\tsrc = Array.isArray( src ) ? src : [ src ];\n\n\tconst files = await Promise.all(\n\t\tsrc.map( async ( url ) => {\n\t\t\treturn fetch( new Request( url ) )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( ! response.ok ) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Error downloading font face asset from ${ url }. Server responded with status: ${ response.status }`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn response.blob();\n\t\t\t\t} )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tconst filename = url.split( '/' ).pop();\n\t\t\t\t\tconst file = new File( [ blob ], filename, {\n\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t} );\n\t\t\t\t\treturn file;\n\t\t\t\t} );\n\t\t} )\n\t);\n\n\t// If we only have one file return it (not the array). Otherwise return all of them in the array.\n\treturn files.length === 1 ? files[ 0 ] : files;\n}\n\n/*\n * Determine if a given Font Face is present in a given collection.\n * We determine that a font face has been installed by comparing the fontWeight and fontStyle\n *\n * @param {Object} fontFace The Font Face to seek\n * @param {Array} collection The Collection to seek in\n * @returns True if the font face is found in the collection. Otherwise False.\n */\nexport function checkFontFaceInstalled( fontFace, collection ) {\n\treturn (\n\t\t-1 !==\n\t\tcollection.findIndex( ( collectionFontFace ) => {\n\t\t\treturn (\n\t\t\t\tcollectionFontFace.fontWeight === fontFace.fontWeight &&\n\t\t\t\tcollectionFontFace.fontStyle === fontFace.fontStyle\n\t\t\t);\n\t\t} )\n\t);\n}\n"],"mappings":"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","ignoreList":[]}