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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (687) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-pattern/index.js +65 -4
  3. package/build/components/add-new-pattern/index.js.map +1 -1
  4. package/build/components/add-new-template/index.js +3 -2
  5. package/build/components/add-new-template/index.js.map +1 -1
  6. package/build/components/add-new-template/new-template.js +6 -1
  7. package/build/components/add-new-template/new-template.js.map +1 -1
  8. package/build/components/add-new-template/utils.js +6 -1
  9. package/build/components/add-new-template/utils.js.map +1 -1
  10. package/build/components/app/index.js +2 -7
  11. package/build/components/app/index.js.map +1 -1
  12. package/build/components/block-editor/back-button.js +3 -2
  13. package/build/components/block-editor/back-button.js.map +1 -1
  14. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js +73 -0
  15. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +1 -0
  16. package/build/components/block-editor/block-editor-provider/index.js +31 -0
  17. package/build/components/block-editor/block-editor-provider/index.js.map +1 -0
  18. package/build/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
  19. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +1 -0
  20. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js +76 -0
  21. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +1 -0
  22. package/build/components/block-editor/editor-canvas.js +20 -16
  23. package/build/components/block-editor/editor-canvas.js.map +1 -1
  24. package/build/components/block-editor/index.js +2 -9
  25. package/build/components/block-editor/index.js.map +1 -1
  26. package/build/components/block-editor/site-editor-canvas.js +2 -4
  27. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  28. package/build/components/block-editor/use-site-editor-settings.js +8 -4
  29. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  30. package/build/components/canvas-loader/index.js +18 -1
  31. package/build/components/canvas-loader/index.js.map +1 -1
  32. package/build/components/create-template-part-modal/index.js +8 -12
  33. package/build/components/create-template-part-modal/index.js.map +1 -1
  34. package/build/components/editor/index.js +7 -9
  35. package/build/components/editor/index.js.map +1 -1
  36. package/build/components/global-styles/dimensions-panel.js +5 -4
  37. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  38. package/build/components/global-styles/font-families.js +68 -0
  39. package/build/components/global-styles/font-families.js.map +1 -0
  40. package/build/components/global-styles/font-family-item.js +47 -0
  41. package/build/components/global-styles/font-family-item.js.map +1 -0
  42. package/build/components/global-styles/font-library-modal/collection-font-details.js +49 -0
  43. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -0
  44. package/build/components/global-styles/font-library-modal/collection-font-variant.js +55 -0
  45. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -0
  46. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +31 -0
  47. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -0
  48. package/build/components/global-styles/font-library-modal/context.js +309 -0
  49. package/build/components/global-styles/font-library-modal/context.js.map +1 -0
  50. package/build/components/global-styles/font-library-modal/font-card.js +61 -0
  51. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -0
  52. package/build/components/global-styles/font-library-modal/font-collection.js +172 -0
  53. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -0
  54. package/build/components/global-styles/font-library-modal/font-demo.js +86 -0
  55. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -0
  56. package/build/components/global-styles/font-library-modal/font-variant.js +51 -0
  57. package/build/components/global-styles/font-library-modal/font-variant.js.map +1 -0
  58. package/build/components/global-styles/font-library-modal/fonts-grid.js +54 -0
  59. package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -0
  60. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +41 -0
  61. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -0
  62. package/build/components/global-styles/font-library-modal/index.js +65 -0
  63. package/build/components/global-styles/font-library-modal/index.js.map +1 -0
  64. package/build/components/global-styles/font-library-modal/installed-fonts.js +128 -0
  65. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -0
  66. package/build/components/global-styles/font-library-modal/library-font-card.js +39 -0
  67. package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -0
  68. package/build/components/global-styles/font-library-modal/library-font-details.js +44 -0
  69. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -0
  70. package/build/components/global-styles/font-library-modal/library-font-variant.js +59 -0
  71. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -0
  72. package/build/components/global-styles/font-library-modal/local-fonts.js +143 -0
  73. package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -0
  74. package/build/components/global-styles/font-library-modal/resolvers.js +53 -0
  75. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -0
  76. package/build/components/global-styles/font-library-modal/tab-layout.js +45 -0
  77. package/build/components/global-styles/font-library-modal/tab-layout.js.map +1 -0
  78. package/build/components/global-styles/font-library-modal/utils/constants.js +31 -0
  79. package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -0
  80. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js +21 -0
  81. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -0
  82. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js +20 -0
  83. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -0
  84. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +58 -0
  85. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -0
  86. package/build/components/global-styles/font-library-modal/utils/index.js +155 -0
  87. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -0
  88. package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js +22 -0
  89. package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -0
  90. package/build/components/global-styles/font-library-modal/utils/preview-styles.js +76 -0
  91. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -0
  92. package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js +36 -0
  93. package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -0
  94. package/build/components/global-styles/font-library-modal/utils/toggleFont.js +92 -0
  95. package/build/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -0
  96. package/build/components/global-styles/global-styles-provider.js +7 -12
  97. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  98. package/build/components/global-styles/screen-block.js +34 -21
  99. package/build/components/global-styles/screen-block.js.map +1 -1
  100. package/build/components/global-styles/screen-revisions/index.js +1 -3
  101. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  102. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
  103. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  104. package/build/components/global-styles/screen-typography.js +4 -72
  105. package/build/components/global-styles/screen-typography.js.map +1 -1
  106. package/build/components/global-styles/style-variations-container.js +3 -5
  107. package/build/components/global-styles/style-variations-container.js.map +1 -1
  108. package/build/components/global-styles/typogrphy-elements.js +96 -0
  109. package/build/components/global-styles/typogrphy-elements.js.map +1 -0
  110. package/build/components/header-edit-mode/document-actions/index.js +9 -8
  111. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  112. package/build/components/header-edit-mode/index.js +4 -1
  113. package/build/components/header-edit-mode/index.js.map +1 -1
  114. package/build/components/layout/index.js +5 -1
  115. package/build/components/layout/index.js.map +1 -1
  116. package/build/components/list/added-by.js +13 -8
  117. package/build/components/list/added-by.js.map +1 -1
  118. package/build/components/list/index.js +2 -1
  119. package/build/components/list/index.js.map +1 -1
  120. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -3
  121. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  122. package/build/components/page-patterns/duplicate-menu-item.js +56 -20
  123. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
  124. package/build/components/page-patterns/grid-item.js +48 -22
  125. package/build/components/page-patterns/grid-item.js.map +1 -1
  126. package/build/components/page-patterns/header.js +3 -7
  127. package/build/components/page-patterns/header.js.map +1 -1
  128. package/build/components/page-patterns/index.js +3 -3
  129. package/build/components/page-patterns/index.js.map +1 -1
  130. package/build/components/page-patterns/patterns-list.js +7 -7
  131. package/build/components/page-patterns/patterns-list.js.map +1 -1
  132. package/build/components/page-patterns/rename-menu-item.js +6 -5
  133. package/build/components/page-patterns/rename-menu-item.js.map +1 -1
  134. package/build/components/page-patterns/search-items.js +8 -2
  135. package/build/components/page-patterns/search-items.js.map +1 -1
  136. package/build/components/page-patterns/use-patterns.js +71 -51
  137. package/build/components/page-patterns/use-patterns.js.map +1 -1
  138. package/build/components/page-patterns/utils.js +1 -20
  139. package/build/components/page-patterns/utils.js.map +1 -1
  140. package/build/components/page-template-parts/add-new-template-part.js +3 -2
  141. package/build/components/page-template-parts/add-new-template-part.js.map +1 -1
  142. package/build/components/page-template-parts/index.js +2 -1
  143. package/build/components/page-template-parts/index.js.map +1 -1
  144. package/build/components/page-templates/index.js +3 -2
  145. package/build/components/page-templates/index.js.map +1 -1
  146. package/build/components/save-hub/index.js +2 -1
  147. package/build/components/save-hub/index.js.map +1 -1
  148. package/build/components/secondary-sidebar/list-view-sidebar.js +24 -17
  149. package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  150. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +53 -26
  151. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  152. package/build/components/sidebar-edit-mode/page-panels/hooks.js +65 -0
  153. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -0
  154. package/build/components/sidebar-edit-mode/page-panels/index.js +1 -4
  155. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  156. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
  157. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  158. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +56 -0
  159. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -0
  160. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js +91 -0
  161. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -0
  162. package/build/components/sidebar-edit-mode/settings-header/index.js +2 -6
  163. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  164. package/build/components/sidebar-edit-mode/template-panel/index.js +11 -9
  165. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  166. package/build/components/sidebar-edit-mode/template-panel/last-revision.js +6 -4
  167. package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
  168. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +218 -0
  169. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -0
  170. package/build/components/sidebar-navigation-screen/index.js +6 -4
  171. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  172. package/build/components/sidebar-navigation-screen-details-footer/index.js +32 -4
  173. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  174. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +4 -2
  175. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
  176. package/build/components/sidebar-navigation-screen-global-styles/index.js +4 -31
  177. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  178. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
  179. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
  180. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +2 -1
  181. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  182. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
  183. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  184. package/build/components/sidebar-navigation-screen-page/index.js +3 -3
  185. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  186. package/build/components/sidebar-navigation-screen-page/page-details.js +2 -1
  187. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  188. package/build/components/sidebar-navigation-screen-pages/index.js +5 -4
  189. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  190. package/build/components/sidebar-navigation-screen-pattern/index.js +20 -9
  191. package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  192. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +3 -2
  193. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  194. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -1
  195. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  196. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
  197. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  198. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +41 -11
  199. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  200. package/build/components/sidebar-navigation-screen-patterns/index.js +9 -37
  201. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  202. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +44 -5
  203. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  204. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +7 -2
  205. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  206. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -1
  207. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  208. package/build/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
  209. package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  210. package/build/components/sidebar-navigation-screen-template/index.js +2 -2
  211. package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
  212. package/build/components/sidebar-navigation-screen-templates/index.js +5 -4
  213. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  214. package/build/components/sidebar-navigation-screen-templates-browse/index.js +3 -2
  215. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  216. package/build/components/start-template-options/index.js +20 -2
  217. package/build/components/start-template-options/index.js.map +1 -1
  218. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -4
  219. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  220. package/build/components/sync-state-with-url/use-sync-path-with-url.js +4 -3
  221. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  222. package/build/components/template-actions/index.js +8 -4
  223. package/build/components/template-actions/index.js.map +1 -1
  224. package/build/components/template-actions/rename-menu-item.js +9 -3
  225. package/build/components/template-actions/rename-menu-item.js.map +1 -1
  226. package/build/components/welcome-guide/styles.js +2 -2
  227. package/build/components/welcome-guide/styles.js.map +1 -1
  228. package/build/hooks/commands/use-edit-mode-commands.js +4 -3
  229. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  230. package/build/hooks/navigation-menu-edit.js +2 -1
  231. package/build/hooks/navigation-menu-edit.js.map +1 -1
  232. package/build/hooks/push-changes-to-global-styles/index.js +5 -37
  233. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  234. package/build/hooks/template-part-edit.js +2 -1
  235. package/build/hooks/template-part-edit.js.map +1 -1
  236. package/build/store/actions.js +38 -14
  237. package/build/store/actions.js.map +1 -1
  238. package/build/store/constants.js +1 -9
  239. package/build/store/constants.js.map +1 -1
  240. package/build/store/private-actions.js +21 -1
  241. package/build/store/private-actions.js.map +1 -1
  242. package/build/store/private-selectors.js +23 -0
  243. package/build/store/private-selectors.js.map +1 -1
  244. package/build/store/reducer.js +19 -1
  245. package/build/store/reducer.js.map +1 -1
  246. package/build/store/selectors.js +3 -2
  247. package/build/store/selectors.js.map +1 -1
  248. package/build/utils/constants.js +64 -2
  249. package/build/utils/constants.js.map +1 -1
  250. package/build/utils/is-template-removable.js +6 -1
  251. package/build/utils/is-template-removable.js.map +1 -1
  252. package/build/utils/is-template-revertable.js +6 -1
  253. package/build/utils/is-template-revertable.js.map +1 -1
  254. package/build/utils/template-part-create.js +6 -1
  255. package/build/utils/template-part-create.js.map +1 -1
  256. package/build-module/components/add-new-pattern/index.js +69 -8
  257. package/build-module/components/add-new-pattern/index.js.map +1 -1
  258. package/build-module/components/add-new-template/index.js +3 -2
  259. package/build-module/components/add-new-template/index.js.map +1 -1
  260. package/build-module/components/add-new-template/new-template.js +6 -1
  261. package/build-module/components/add-new-template/new-template.js.map +1 -1
  262. package/build-module/components/add-new-template/utils.js +6 -1
  263. package/build-module/components/add-new-template/utils.js.map +1 -1
  264. package/build-module/components/app/index.js +2 -7
  265. package/build-module/components/app/index.js.map +1 -1
  266. package/build-module/components/block-editor/back-button.js +3 -2
  267. package/build-module/components/block-editor/back-button.js.map +1 -1
  268. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js +65 -0
  269. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +1 -0
  270. package/build-module/components/block-editor/block-editor-provider/index.js +23 -0
  271. package/build-module/components/block-editor/block-editor-provider/index.js.map +1 -0
  272. package/build-module/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
  273. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +1 -0
  274. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js +70 -0
  275. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +1 -0
  276. package/build-module/components/block-editor/editor-canvas.js +21 -17
  277. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  278. package/build-module/components/block-editor/index.js +1 -8
  279. package/build-module/components/block-editor/index.js.map +1 -1
  280. package/build-module/components/block-editor/site-editor-canvas.js +5 -7
  281. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  282. package/build-module/components/block-editor/use-site-editor-settings.js +8 -4
  283. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  284. package/build-module/components/canvas-loader/index.js +18 -1
  285. package/build-module/components/canvas-loader/index.js.map +1 -1
  286. package/build-module/components/create-template-part-modal/index.js +8 -12
  287. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  288. package/build-module/components/editor/index.js +7 -9
  289. package/build-module/components/editor/index.js.map +1 -1
  290. package/build-module/components/global-styles/dimensions-panel.js +5 -4
  291. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  292. package/build-module/components/global-styles/font-families.js +58 -0
  293. package/build-module/components/global-styles/font-families.js.map +1 -0
  294. package/build-module/components/global-styles/font-family-item.js +40 -0
  295. package/build-module/components/global-styles/font-family-item.js.map +1 -0
  296. package/build-module/components/global-styles/font-library-modal/collection-font-details.js +40 -0
  297. package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +1 -0
  298. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +45 -0
  299. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -0
  300. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js +23 -0
  301. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -0
  302. package/build-module/components/global-styles/font-library-modal/context.js +300 -0
  303. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -0
  304. package/build-module/components/global-styles/font-library-modal/font-card.js +52 -0
  305. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -0
  306. package/build-module/components/global-styles/font-library-modal/font-collection.js +164 -0
  307. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -0
  308. package/build-module/components/global-styles/font-library-modal/font-demo.js +79 -0
  309. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -0
  310. package/build-module/components/global-styles/font-library-modal/font-variant.js +42 -0
  311. package/build-module/components/global-styles/font-library-modal/font-variant.js.map +1 -0
  312. package/build-module/components/global-styles/font-library-modal/fonts-grid.js +47 -0
  313. package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +1 -0
  314. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +33 -0
  315. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -0
  316. package/build-module/components/global-styles/font-library-modal/index.js +57 -0
  317. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -0
  318. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +120 -0
  319. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -0
  320. package/build-module/components/global-styles/font-library-modal/library-font-card.js +31 -0
  321. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -0
  322. package/build-module/components/global-styles/font-library-modal/library-font-details.js +35 -0
  323. package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -0
  324. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +50 -0
  325. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -0
  326. package/build-module/components/global-styles/font-library-modal/local-fonts.js +135 -0
  327. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -0
  328. package/build-module/components/global-styles/font-library-modal/resolvers.js +42 -0
  329. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -0
  330. package/build-module/components/global-styles/font-library-modal/tab-layout.js +37 -0
  331. package/build-module/components/global-styles/font-library-modal/tab-layout.js.map +1 -0
  332. package/build-module/components/global-styles/font-library-modal/utils/constants.js +21 -0
  333. package/build-module/components/global-styles/font-library-modal/utils/constants.js.map +1 -0
  334. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js +15 -0
  335. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -0
  336. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js +13 -0
  337. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -0
  338. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +52 -0
  339. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -0
  340. package/build-module/components/global-styles/font-library-modal/utils/index.js +141 -0
  341. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -0
  342. package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js +16 -0
  343. package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -0
  344. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +68 -0
  345. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -0
  346. package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js +30 -0
  347. package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -0
  348. package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js +86 -0
  349. package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -0
  350. package/build-module/components/global-styles/global-styles-provider.js +7 -12
  351. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  352. package/build-module/components/global-styles/screen-block.js +34 -21
  353. package/build-module/components/global-styles/screen-block.js.map +1 -1
  354. package/build-module/components/global-styles/screen-revisions/index.js +1 -3
  355. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  356. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
  357. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  358. package/build-module/components/global-styles/screen-typography.js +6 -74
  359. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  360. package/build-module/components/global-styles/style-variations-container.js +3 -5
  361. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  362. package/build-module/components/global-styles/typogrphy-elements.js +87 -0
  363. package/build-module/components/global-styles/typogrphy-elements.js.map +1 -0
  364. package/build-module/components/header-edit-mode/document-actions/index.js +9 -8
  365. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  366. package/build-module/components/header-edit-mode/index.js +4 -1
  367. package/build-module/components/header-edit-mode/index.js.map +1 -1
  368. package/build-module/components/layout/index.js +5 -1
  369. package/build-module/components/layout/index.js.map +1 -1
  370. package/build-module/components/list/added-by.js +13 -8
  371. package/build-module/components/list/added-by.js.map +1 -1
  372. package/build-module/components/list/index.js +2 -1
  373. package/build-module/components/list/index.js.map +1 -1
  374. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -3
  375. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  376. package/build-module/components/page-patterns/duplicate-menu-item.js +55 -20
  377. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
  378. package/build-module/components/page-patterns/grid-item.js +49 -23
  379. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  380. package/build-module/components/page-patterns/header.js +3 -7
  381. package/build-module/components/page-patterns/header.js.map +1 -1
  382. package/build-module/components/page-patterns/index.js +3 -3
  383. package/build-module/components/page-patterns/index.js.map +1 -1
  384. package/build-module/components/page-patterns/patterns-list.js +7 -7
  385. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  386. package/build-module/components/page-patterns/rename-menu-item.js +6 -5
  387. package/build-module/components/page-patterns/rename-menu-item.js.map +1 -1
  388. package/build-module/components/page-patterns/search-items.js +8 -2
  389. package/build-module/components/page-patterns/search-items.js.map +1 -1
  390. package/build-module/components/page-patterns/use-patterns.js +71 -52
  391. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  392. package/build-module/components/page-patterns/utils.js +0 -11
  393. package/build-module/components/page-patterns/utils.js.map +1 -1
  394. package/build-module/components/page-template-parts/add-new-template-part.js +3 -2
  395. package/build-module/components/page-template-parts/add-new-template-part.js.map +1 -1
  396. package/build-module/components/page-template-parts/index.js +2 -1
  397. package/build-module/components/page-template-parts/index.js.map +1 -1
  398. package/build-module/components/page-templates/index.js +3 -2
  399. package/build-module/components/page-templates/index.js.map +1 -1
  400. package/build-module/components/save-hub/index.js +2 -1
  401. package/build-module/components/save-hub/index.js.map +1 -1
  402. package/build-module/components/secondary-sidebar/list-view-sidebar.js +26 -19
  403. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  404. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +54 -29
  405. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  406. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +55 -0
  407. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -0
  408. package/build-module/components/sidebar-edit-mode/page-panels/index.js +1 -4
  409. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  410. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
  411. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  412. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +49 -0
  413. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -0
  414. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js +85 -0
  415. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -0
  416. package/build-module/components/sidebar-edit-mode/settings-header/index.js +2 -6
  417. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  418. package/build-module/components/sidebar-edit-mode/template-panel/index.js +12 -10
  419. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  420. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +8 -6
  421. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
  422. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +209 -0
  423. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -0
  424. package/build-module/components/sidebar-navigation-screen/index.js +6 -4
  425. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  426. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +32 -5
  427. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  428. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +4 -2
  429. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
  430. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +6 -33
  431. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  432. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
  433. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
  434. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +3 -1
  435. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  436. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
  437. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  438. package/build-module/components/sidebar-navigation-screen-page/index.js +3 -3
  439. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  440. package/build-module/components/sidebar-navigation-screen-page/page-details.js +2 -1
  441. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  442. package/build-module/components/sidebar-navigation-screen-pages/index.js +5 -4
  443. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  444. package/build-module/components/sidebar-navigation-screen-pattern/index.js +21 -10
  445. package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  446. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +3 -2
  447. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  448. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -1
  449. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  450. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
  451. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  452. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +41 -11
  453. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  454. package/build-module/components/sidebar-navigation-screen-patterns/index.js +12 -40
  455. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  456. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +44 -5
  457. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  458. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +7 -2
  459. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  460. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +3 -2
  461. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  462. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
  463. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  464. package/build-module/components/sidebar-navigation-screen-template/index.js +2 -2
  465. package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
  466. package/build-module/components/sidebar-navigation-screen-templates/index.js +5 -4
  467. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  468. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +3 -2
  469. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  470. package/build-module/components/start-template-options/index.js +20 -2
  471. package/build-module/components/start-template-options/index.js.map +1 -1
  472. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -4
  473. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  474. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +4 -3
  475. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  476. package/build-module/components/template-actions/index.js +8 -4
  477. package/build-module/components/template-actions/index.js.map +1 -1
  478. package/build-module/components/template-actions/rename-menu-item.js +9 -3
  479. package/build-module/components/template-actions/rename-menu-item.js.map +1 -1
  480. package/build-module/components/welcome-guide/styles.js +2 -2
  481. package/build-module/components/welcome-guide/styles.js.map +1 -1
  482. package/build-module/hooks/commands/use-edit-mode-commands.js +4 -3
  483. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  484. package/build-module/hooks/navigation-menu-edit.js +2 -1
  485. package/build-module/hooks/navigation-menu-edit.js.map +1 -1
  486. package/build-module/hooks/push-changes-to-global-styles/index.js +5 -37
  487. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  488. package/build-module/hooks/template-part-edit.js +2 -1
  489. package/build-module/hooks/template-part-edit.js.map +1 -1
  490. package/build-module/store/actions.js +39 -16
  491. package/build-module/store/actions.js.map +1 -1
  492. package/build-module/store/constants.js +0 -4
  493. package/build-module/store/constants.js.map +1 -1
  494. package/build-module/store/private-actions.js +19 -0
  495. package/build-module/store/private-actions.js.map +1 -1
  496. package/build-module/store/private-selectors.js +22 -0
  497. package/build-module/store/private-selectors.js.map +1 -1
  498. package/build-module/store/reducer.js +18 -1
  499. package/build-module/store/reducer.js.map +1 -1
  500. package/build-module/store/selectors.js +3 -3
  501. package/build-module/store/selectors.js.map +1 -1
  502. package/build-module/utils/constants.js +51 -1
  503. package/build-module/utils/constants.js.map +1 -1
  504. package/build-module/utils/is-template-removable.js +6 -1
  505. package/build-module/utils/is-template-removable.js.map +1 -1
  506. package/build-module/utils/is-template-revertable.js +6 -1
  507. package/build-module/utils/is-template-revertable.js.map +1 -1
  508. package/build-module/utils/template-part-create.js +6 -1
  509. package/build-module/utils/template-part-create.js.map +1 -1
  510. package/build-style/style-rtl.css +267 -37
  511. package/build-style/style.css +267 -37
  512. package/lib/inflate.js +4082 -0
  513. package/lib/lib-font.browser.js +3831 -0
  514. package/lib/unbrotli.js +2679 -0
  515. package/package.json +40 -40
  516. package/src/components/add-new-pattern/index.js +86 -8
  517. package/src/components/add-new-template/index.js +3 -2
  518. package/src/components/add-new-template/new-template.js +6 -1
  519. package/src/components/add-new-template/utils.js +12 -3
  520. package/src/components/app/index.js +9 -12
  521. package/src/components/block-editor/back-button.js +6 -2
  522. package/src/components/block-editor/block-editor-provider/default-block-editor-provider.js +70 -0
  523. package/src/components/block-editor/block-editor-provider/index.js +29 -0
  524. package/src/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
  525. package/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js +87 -0
  526. package/src/components/block-editor/block-editor-provider/use-page-content-blocks.js +77 -0
  527. package/src/components/block-editor/editor-canvas.js +31 -19
  528. package/src/components/block-editor/index.js +1 -14
  529. package/src/components/block-editor/site-editor-canvas.js +7 -12
  530. package/src/components/block-editor/style.scss +88 -1
  531. package/src/components/block-editor/use-site-editor-settings.js +26 -19
  532. package/src/components/canvas-loader/index.js +12 -1
  533. package/src/components/canvas-loader/style.scss +1 -1
  534. package/src/components/create-template-part-modal/index.js +11 -12
  535. package/src/components/editor/index.js +9 -10
  536. package/src/components/global-styles/dimensions-panel.js +8 -4
  537. package/src/components/global-styles/font-families.js +71 -0
  538. package/src/components/global-styles/font-family-item.js +44 -0
  539. package/src/components/global-styles/font-library-modal/collection-font-details.js +56 -0
  540. package/src/components/global-styles/font-library-modal/collection-font-variant.js +45 -0
  541. package/src/components/global-styles/font-library-modal/confirm-delete-dialog.js +33 -0
  542. package/src/components/global-styles/font-library-modal/context.js +378 -0
  543. package/src/components/global-styles/font-library-modal/font-card.js +75 -0
  544. package/src/components/global-styles/font-library-modal/font-collection.js +257 -0
  545. package/src/components/global-styles/font-library-modal/font-demo.js +83 -0
  546. package/src/components/global-styles/font-library-modal/font-variant.js +53 -0
  547. package/src/components/global-styles/font-library-modal/fonts-grid.js +55 -0
  548. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +50 -0
  549. package/src/components/global-styles/font-library-modal/index.js +67 -0
  550. package/src/components/global-styles/font-library-modal/installed-fonts.js +174 -0
  551. package/src/components/global-styles/font-library-modal/library-font-card.js +33 -0
  552. package/src/components/global-styles/font-library-modal/library-font-details.js +45 -0
  553. package/src/components/global-styles/font-library-modal/library-font-variant.js +54 -0
  554. package/src/components/global-styles/font-library-modal/local-fonts.js +160 -0
  555. package/src/components/global-styles/font-library-modal/resolvers.js +45 -0
  556. package/src/components/global-styles/font-library-modal/style.scss +139 -0
  557. package/src/components/global-styles/font-library-modal/tab-layout.js +50 -0
  558. package/src/components/global-styles/font-library-modal/utils/constants.js +23 -0
  559. package/src/components/global-styles/font-library-modal/utils/filter-fonts.js +18 -0
  560. package/src/components/global-styles/font-library-modal/utils/fonts-outline.js +21 -0
  561. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +58 -0
  562. package/src/components/global-styles/font-library-modal/utils/index.js +153 -0
  563. package/src/components/global-styles/font-library-modal/utils/make-families-from-faces.js +15 -0
  564. package/src/components/global-styles/font-library-modal/utils/preview-styles.js +86 -0
  565. package/src/components/global-styles/font-library-modal/utils/sort-font-faces.js +33 -0
  566. package/src/components/global-styles/font-library-modal/utils/test/filter-fonts.spec.js +69 -0
  567. package/src/components/global-styles/font-library-modal/utils/test/fonts-outline.spec.js +109 -0
  568. package/src/components/global-styles/font-library-modal/utils/test/getDisplaySrcFromFontFace.spec.js +53 -0
  569. package/src/components/global-styles/font-library-modal/utils/test/getFontFaceVariantName.spec.js +30 -0
  570. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +240 -0
  571. package/src/components/global-styles/font-library-modal/utils/test/isUrlEncoded.spec.js +31 -0
  572. package/src/components/global-styles/font-library-modal/utils/test/makeFamiliesFromFaces.spec.js +57 -0
  573. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamilies.spec.js +62 -0
  574. package/src/components/global-styles/font-library-modal/utils/test/mergeFontFaces.spec.js +56 -0
  575. package/src/components/global-styles/font-library-modal/utils/test/mergeFontFamilies.spec.js +108 -0
  576. package/src/components/global-styles/font-library-modal/utils/test/preview-styles.spec.js +161 -0
  577. package/src/components/global-styles/font-library-modal/utils/test/setUIValuesNeeded.spec.js +41 -0
  578. package/src/components/global-styles/font-library-modal/utils/test/sort-font-faces.js +74 -0
  579. package/src/components/global-styles/font-library-modal/utils/test/toggleFont.spec.js +141 -0
  580. package/src/components/global-styles/font-library-modal/utils/toggleFont.js +90 -0
  581. package/src/components/global-styles/global-styles-provider.js +2 -7
  582. package/src/components/global-styles/screen-block.js +42 -20
  583. package/src/components/global-styles/screen-revisions/index.js +0 -2
  584. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
  585. package/src/components/global-styles/screen-typography.js +9 -95
  586. package/src/components/global-styles/style-variations-container.js +0 -2
  587. package/src/components/global-styles/typogrphy-elements.js +110 -0
  588. package/src/components/header-edit-mode/document-actions/index.js +17 -8
  589. package/src/components/header-edit-mode/index.js +2 -1
  590. package/src/components/layout/index.js +10 -1
  591. package/src/components/list/added-by.js +29 -11
  592. package/src/components/list/index.js +7 -1
  593. package/src/components/list/style.scss +2 -0
  594. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -8
  595. package/src/components/page-patterns/duplicate-menu-item.js +67 -24
  596. package/src/components/page-patterns/grid-item.js +80 -33
  597. package/src/components/page-patterns/header.js +3 -12
  598. package/src/components/page-patterns/index.js +3 -3
  599. package/src/components/page-patterns/patterns-list.js +7 -7
  600. package/src/components/page-patterns/rename-menu-item.js +18 -7
  601. package/src/components/page-patterns/search-items.js +20 -2
  602. package/src/components/page-patterns/style.scss +1 -5
  603. package/src/components/page-patterns/use-patterns.js +217 -127
  604. package/src/components/page-patterns/utils.js +0 -19
  605. package/src/components/page-template-parts/add-new-template-part.js +5 -2
  606. package/src/components/page-template-parts/index.js +2 -1
  607. package/src/components/page-templates/index.js +3 -2
  608. package/src/components/save-hub/index.js +2 -1
  609. package/src/components/secondary-sidebar/list-view-sidebar.js +31 -26
  610. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +94 -52
  611. package/src/components/sidebar-edit-mode/page-panels/hooks.js +88 -0
  612. package/src/components/sidebar-edit-mode/page-panels/index.js +0 -4
  613. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +2 -0
  614. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +44 -0
  615. package/src/components/sidebar-edit-mode/page-panels/style.scss +46 -9
  616. package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +82 -0
  617. package/src/components/sidebar-edit-mode/settings-header/index.js +4 -7
  618. package/src/components/sidebar-edit-mode/template-panel/index.js +28 -24
  619. package/src/components/sidebar-edit-mode/template-panel/last-revision.js +19 -15
  620. package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +277 -0
  621. package/src/components/sidebar-navigation-screen/index.js +4 -9
  622. package/src/components/sidebar-navigation-screen/style.scss +7 -1
  623. package/src/components/sidebar-navigation-screen-details-footer/index.js +38 -10
  624. package/src/components/sidebar-navigation-screen-details-footer/style.scss +10 -3
  625. package/src/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +2 -0
  626. package/src/components/sidebar-navigation-screen-global-styles/index.js +6 -44
  627. package/src/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
  628. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +3 -1
  629. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
  630. package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +0 -4
  631. package/src/components/sidebar-navigation-screen-page/index.js +3 -3
  632. package/src/components/sidebar-navigation-screen-page/page-details.js +2 -1
  633. package/src/components/sidebar-navigation-screen-pages/index.js +5 -4
  634. package/src/components/sidebar-navigation-screen-pattern/index.js +22 -8
  635. package/src/components/sidebar-navigation-screen-pattern/style.scss +0 -3
  636. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +8 -2
  637. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +7 -1
  638. package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
  639. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +63 -20
  640. package/src/components/sidebar-navigation-screen-patterns/index.js +20 -51
  641. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +61 -6
  642. package/src/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +12 -2
  643. package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +3 -5
  644. package/src/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
  645. package/src/components/sidebar-navigation-screen-template/index.js +2 -4
  646. package/src/components/sidebar-navigation-screen-templates/index.js +5 -4
  647. package/src/components/sidebar-navigation-screen-templates-browse/index.js +6 -2
  648. package/src/components/start-template-options/index.js +39 -2
  649. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +10 -4
  650. package/src/components/sync-state-with-url/use-sync-path-with-url.js +8 -3
  651. package/src/components/template-actions/index.js +15 -8
  652. package/src/components/template-actions/rename-menu-item.js +21 -5
  653. package/src/components/welcome-guide/styles.js +2 -2
  654. package/src/hooks/commands/use-edit-mode-commands.js +4 -3
  655. package/src/hooks/navigation-menu-edit.js +2 -1
  656. package/src/hooks/push-changes-to-global-styles/index.js +6 -49
  657. package/src/hooks/template-part-edit.js +2 -1
  658. package/src/store/actions.js +56 -22
  659. package/src/store/constants.js +0 -5
  660. package/src/store/private-actions.js +19 -0
  661. package/src/store/private-selectors.js +22 -0
  662. package/src/store/reducer.js +18 -0
  663. package/src/store/selectors.js +6 -3
  664. package/src/store/test/reducer.js +18 -0
  665. package/src/style.scss +1 -1
  666. package/src/utils/constants.js +54 -3
  667. package/src/utils/is-template-removable.js +8 -1
  668. package/src/utils/is-template-revertable.js +8 -1
  669. package/src/utils/template-part-create.js +6 -1
  670. package/build/components/block-editor/get-block-editor-provider.js +0 -35
  671. package/build/components/block-editor/get-block-editor-provider.js.map +0 -1
  672. package/build/components/block-editor/providers/default-block-editor-provider.js +0 -49
  673. package/build/components/block-editor/providers/default-block-editor-provider.js.map +0 -1
  674. package/build/components/block-editor/providers/navigation-block-editor-provider.js.map +0 -1
  675. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -30
  676. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +0 -1
  677. package/build-module/components/block-editor/get-block-editor-provider.js +0 -28
  678. package/build-module/components/block-editor/get-block-editor-provider.js.map +0 -1
  679. package/build-module/components/block-editor/providers/default-block-editor-provider.js +0 -41
  680. package/build-module/components/block-editor/providers/default-block-editor-provider.js.map +0 -1
  681. package/build-module/components/block-editor/providers/navigation-block-editor-provider.js.map +0 -1
  682. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -23
  683. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +0 -1
  684. package/src/components/block-editor/get-block-editor-provider.js +0 -29
  685. package/src/components/block-editor/providers/default-block-editor-provider.js +0 -44
  686. package/src/components/sidebar-navigation-screen-global-styles/style.scss +0 -12
  687. package/src/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -24
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import { FONT_WEIGHTS, FONT_STYLES } from './constants';
5
+ import { formatFontFamily } from './preview-styles';
6
+ export function setUIValuesNeeded(font, extraValues = {}) {
7
+ if (!font.name && (font.fontFamily || font.slug)) {
8
+ font.name = font.fontFamily || font.slug;
9
+ }
10
+ return {
11
+ ...font,
12
+ ...extraValues
13
+ };
14
+ }
15
+ export function isUrlEncoded(url) {
16
+ if (typeof url !== 'string') {
17
+ return false;
18
+ }
19
+ return url !== decodeURIComponent(url);
20
+ }
21
+ export function getFontFaceVariantName(face) {
22
+ const weightName = FONT_WEIGHTS[face.fontWeight] || face.fontWeight;
23
+ const styleName = face.fontStyle === 'normal' ? '' : FONT_STYLES[face.fontStyle] || face.fontStyle;
24
+ return `${weightName} ${styleName}`;
25
+ }
26
+ export function mergeFontFaces(existing = [], incoming = []) {
27
+ const map = new Map();
28
+ for (const face of existing) {
29
+ map.set(`${face.fontWeight}${face.fontStyle}`, face);
30
+ }
31
+ for (const face of incoming) {
32
+ // This will overwrite if the src already exists, keeping it unique.
33
+ map.set(`${face.fontWeight}${face.fontStyle}`, face);
34
+ }
35
+ return Array.from(map.values());
36
+ }
37
+ export function mergeFontFamilies(existing = [], incoming = []) {
38
+ const map = new Map();
39
+ // Add the existing array to the map.
40
+ for (const font of existing) {
41
+ map.set(font.slug, {
42
+ ...font
43
+ });
44
+ }
45
+ // Add the incoming array to the map, overwriting existing values excepting fontFace that need to be merged.
46
+ for (const font of incoming) {
47
+ if (map.has(font.slug)) {
48
+ const {
49
+ fontFace: incomingFontFaces,
50
+ ...restIncoming
51
+ } = font;
52
+ const existingFont = map.get(font.slug);
53
+ // Merge the fontFaces existing with the incoming fontFaces.
54
+ const mergedFontFaces = mergeFontFaces(existingFont.fontFace, incomingFontFaces);
55
+ // Except for the fontFace key all the other keys are overwritten with the incoming values.
56
+ map.set(font.slug, {
57
+ ...restIncoming,
58
+ fontFace: mergedFontFaces
59
+ });
60
+ } else {
61
+ map.set(font.slug, {
62
+ ...font
63
+ });
64
+ }
65
+ }
66
+ return Array.from(map.values());
67
+ }
68
+
69
+ /*
70
+ * Loads the font face from a URL and adds it to the browser.
71
+ * It also adds it to the iframe document.
72
+ */
73
+ export async function loadFontFaceInBrowser(fontFace, source, addTo = 'all') {
74
+ let dataSource;
75
+ if (typeof source === 'string') {
76
+ dataSource = `url(${source})`;
77
+ // eslint-disable-next-line no-undef
78
+ } else if (source instanceof File) {
79
+ dataSource = await source.arrayBuffer();
80
+ }
81
+
82
+ // eslint-disable-next-line no-undef
83
+ const newFont = new FontFace(formatFontFamily(fontFace.fontFamily), dataSource, {
84
+ style: fontFace.fontStyle,
85
+ weight: fontFace.fontWeight
86
+ });
87
+ const loadedFace = await newFont.load();
88
+ if (addTo === 'document' || addTo === 'all') {
89
+ document.fonts.add(loadedFace);
90
+ }
91
+ if (addTo === 'iframe' || addTo === 'all') {
92
+ const iframeDocument = document.querySelector('iframe[name="editor-canvas"]').contentDocument;
93
+ iframeDocument.fonts.add(loadedFace);
94
+ }
95
+ }
96
+ export function getDisplaySrcFromFontFace(input, urlPrefix) {
97
+ let src;
98
+ if (Array.isArray(input)) {
99
+ src = input[0];
100
+ } else {
101
+ src = input;
102
+ }
103
+ // If it is a theme font, we need to make the url absolute
104
+ if (src.startsWith('file:.') && urlPrefix) {
105
+ src = src.replace('file:.', urlPrefix);
106
+ }
107
+ if (!isUrlEncoded(src)) {
108
+ src = encodeURI(src);
109
+ }
110
+ return src;
111
+ }
112
+ export function makeFormDataFromFontFamilies(fontFamilies) {
113
+ const formData = new FormData();
114
+ const newFontFamilies = fontFamilies.map((family, familyIndex) => {
115
+ if (family?.fontFace) {
116
+ family.fontFace = family.fontFace.map((face, faceIndex) => {
117
+ if (face.file) {
118
+ // Slugified file name because the it might contain spaces or characters treated differently on the server.
119
+ const fileId = `file-${familyIndex}-${faceIndex}`;
120
+ // Add the files to the formData
121
+ formData.append(fileId, face.file, face.file.name);
122
+ // remove the file object from the face object the file is referenced by the uploadedFile key
123
+ const {
124
+ file,
125
+ ...faceWithoutFileProperty
126
+ } = face;
127
+ const newFace = {
128
+ ...faceWithoutFileProperty,
129
+ uploadedFile: fileId
130
+ };
131
+ return newFace;
132
+ }
133
+ return face;
134
+ });
135
+ }
136
+ return family;
137
+ });
138
+ formData.append('fontFamilies', JSON.stringify(newFontFamilies));
139
+ return formData;
140
+ }
141
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FONT_WEIGHTS","FONT_STYLES","formatFontFamily","setUIValuesNeeded","font","extraValues","name","fontFamily","slug","isUrlEncoded","url","decodeURIComponent","getFontFaceVariantName","face","weightName","fontWeight","styleName","fontStyle","mergeFontFaces","existing","incoming","map","Map","set","Array","from","values","mergeFontFamilies","has","fontFace","incomingFontFaces","restIncoming","existingFont","get","mergedFontFaces","loadFontFaceInBrowser","source","addTo","dataSource","File","arrayBuffer","newFont","FontFace","style","weight","loadedFace","load","document","fonts","add","iframeDocument","querySelector","contentDocument","getDisplaySrcFromFontFace","input","urlPrefix","src","isArray","startsWith","replace","encodeURI","makeFormDataFromFontFamilies","fontFamilies","formData","FormData","newFontFamilies","family","familyIndex","faceIndex","file","fileId","append","faceWithoutFileProperty","newFace","uploadedFile","JSON","stringify"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { FONT_WEIGHTS, FONT_STYLES } from './constants';\nimport { formatFontFamily } from './preview-styles';\n\nexport function setUIValuesNeeded( font, extraValues = {} ) {\n\tif ( ! font.name && ( font.fontFamily || font.slug ) ) {\n\t\tfont.name = font.fontFamily || font.slug;\n\t}\n\treturn {\n\t\t...font,\n\t\t...extraValues,\n\t};\n}\n\nexport function isUrlEncoded( url ) {\n\tif ( typeof url !== 'string' ) {\n\t\treturn false;\n\t}\n\treturn url !== decodeURIComponent( url );\n}\n\nexport function getFontFaceVariantName( face ) {\n\tconst weightName = FONT_WEIGHTS[ face.fontWeight ] || face.fontWeight;\n\tconst styleName =\n\t\tface.fontStyle === 'normal'\n\t\t\t? ''\n\t\t\t: FONT_STYLES[ face.fontStyle ] || face.fontStyle;\n\treturn `${ weightName } ${ styleName }`;\n}\n\nexport function mergeFontFaces( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\tfor ( const face of existing ) {\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\tfor ( const face of incoming ) {\n\t\t// This will overwrite if the src already exists, keeping it unique.\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\treturn Array.from( map.values() );\n}\n\nexport function mergeFontFamilies( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\t// Add the existing array to the map.\n\tfor ( const font of existing ) {\n\t\tmap.set( font.slug, { ...font } );\n\t}\n\t// Add the incoming array to the map, overwriting existing values excepting fontFace that need to be merged.\n\tfor ( const font of incoming ) {\n\t\tif ( map.has( font.slug ) ) {\n\t\t\tconst { fontFace: incomingFontFaces, ...restIncoming } = font;\n\t\t\tconst existingFont = map.get( font.slug );\n\t\t\t// Merge the fontFaces existing with the incoming fontFaces.\n\t\t\tconst mergedFontFaces = mergeFontFaces(\n\t\t\t\texistingFont.fontFace,\n\t\t\t\tincomingFontFaces\n\t\t\t);\n\t\t\t// Except for the fontFace key all the other keys are overwritten with the incoming values.\n\t\t\tmap.set( font.slug, {\n\t\t\t\t...restIncoming,\n\t\t\t\tfontFace: mergedFontFaces,\n\t\t\t} );\n\t\t} else {\n\t\t\tmap.set( font.slug, { ...font } );\n\t\t}\n\t}\n\treturn Array.from( map.values() );\n}\n\n/*\n * Loads the font face from a URL and adds it to the browser.\n * It also adds it to the iframe document.\n */\nexport async function loadFontFaceInBrowser( fontFace, source, addTo = 'all' ) {\n\tlet dataSource;\n\n\tif ( typeof source === 'string' ) {\n\t\tdataSource = `url(${ source })`;\n\t\t// eslint-disable-next-line no-undef\n\t} else if ( source instanceof File ) {\n\t\tdataSource = await source.arrayBuffer();\n\t}\n\n\t// eslint-disable-next-line no-undef\n\tconst newFont = new FontFace(\n\t\tformatFontFamily( fontFace.fontFamily ),\n\t\tdataSource,\n\t\t{\n\t\t\tstyle: fontFace.fontStyle,\n\t\t\tweight: fontFace.fontWeight,\n\t\t}\n\t);\n\n\tconst loadedFace = await newFont.load();\n\n\tif ( addTo === 'document' || addTo === 'all' ) {\n\t\tdocument.fonts.add( loadedFace );\n\t}\n\n\tif ( addTo === 'iframe' || addTo === 'all' ) {\n\t\tconst iframeDocument = document.querySelector(\n\t\t\t'iframe[name=\"editor-canvas\"]'\n\t\t).contentDocument;\n\t\tiframeDocument.fonts.add( loadedFace );\n\t}\n}\n\nexport function getDisplaySrcFromFontFace( input, urlPrefix ) {\n\tlet src;\n\tif ( Array.isArray( input ) ) {\n\t\tsrc = input[ 0 ];\n\t} else {\n\t\tsrc = input;\n\t}\n\t// If it is a theme font, we need to make the url absolute\n\tif ( src.startsWith( 'file:.' ) && urlPrefix ) {\n\t\tsrc = src.replace( 'file:.', urlPrefix );\n\t}\n\tif ( ! isUrlEncoded( src ) ) {\n\t\tsrc = encodeURI( src );\n\t}\n\treturn src;\n}\n\nexport function makeFormDataFromFontFamilies( fontFamilies ) {\n\tconst formData = new FormData();\n\tconst newFontFamilies = fontFamilies.map( ( family, familyIndex ) => {\n\t\tif ( family?.fontFace ) {\n\t\t\tfamily.fontFace = family.fontFace.map( ( face, faceIndex ) => {\n\t\t\t\tif ( face.file ) {\n\t\t\t\t\t// Slugified file name because the it might contain spaces or characters treated differently on the server.\n\t\t\t\t\tconst fileId = `file-${ familyIndex }-${ faceIndex }`;\n\t\t\t\t\t// Add the files to the formData\n\t\t\t\t\tformData.append( fileId, face.file, face.file.name );\n\t\t\t\t\t// remove the file object from the face object the file is referenced by the uploadedFile key\n\t\t\t\t\tconst { file, ...faceWithoutFileProperty } = face;\n\t\t\t\t\tconst newFace = {\n\t\t\t\t\t\t...faceWithoutFileProperty,\n\t\t\t\t\t\tuploadedFile: fileId,\n\t\t\t\t\t};\n\t\t\t\t\treturn newFace;\n\t\t\t\t}\n\t\t\t\treturn face;\n\t\t\t} );\n\t\t}\n\t\treturn family;\n\t} );\n\tformData.append( 'fontFamilies', JSON.stringify( newFontFamilies ) );\n\treturn formData;\n}\n"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export default function makeFamiliesFromFaces(fontFaces) {
2
+ const fontFamiliesObject = fontFaces.reduce((acc, item) => {
3
+ if (!acc[item.fontFamily]) {
4
+ acc[item.fontFamily] = {
5
+ name: item.fontFamily,
6
+ fontFamily: item.fontFamily,
7
+ slug: item.fontFamily.replace(/\s+/g, '-').toLowerCase(),
8
+ fontFace: []
9
+ };
10
+ }
11
+ acc[item.fontFamily].fontFace.push(item);
12
+ return acc;
13
+ }, {});
14
+ return Object.values(fontFamiliesObject);
15
+ }
16
+ //# sourceMappingURL=make-families-from-faces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["makeFamiliesFromFaces","fontFaces","fontFamiliesObject","reduce","acc","item","fontFamily","name","slug","replace","toLowerCase","fontFace","push","Object","values"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/make-families-from-faces.js"],"sourcesContent":["export default function makeFamiliesFromFaces( fontFaces ) {\n\tconst fontFamiliesObject = fontFaces.reduce( ( acc, item ) => {\n\t\tif ( ! acc[ item.fontFamily ] ) {\n\t\t\tacc[ item.fontFamily ] = {\n\t\t\t\tname: item.fontFamily,\n\t\t\t\tfontFamily: item.fontFamily,\n\t\t\t\tslug: item.fontFamily.replace( /\\s+/g, '-' ).toLowerCase(),\n\t\t\t\tfontFace: [],\n\t\t\t};\n\t\t}\n\t\tacc[ item.fontFamily ].fontFace.push( item );\n\t\treturn acc;\n\t}, {} );\n\treturn Object.values( fontFamiliesObject );\n}\n"],"mappings":"AAAA,eAAe,SAASA,qBAAqBA,CAAEC,SAAS,EAAG;EAC1D,MAAMC,kBAAkB,GAAGD,SAAS,CAACE,MAAM,CAAE,CAAEC,GAAG,EAAEC,IAAI,KAAM;IAC7D,IAAK,CAAED,GAAG,CAAEC,IAAI,CAACC,UAAU,CAAE,EAAG;MAC/BF,GAAG,CAAEC,IAAI,CAACC,UAAU,CAAE,GAAG;QACxBC,IAAI,EAAEF,IAAI,CAACC,UAAU;QACrBA,UAAU,EAAED,IAAI,CAACC,UAAU;QAC3BE,IAAI,EAAEH,IAAI,CAACC,UAAU,CAACG,OAAO,CAAE,MAAM,EAAE,GAAI,CAAC,CAACC,WAAW,CAAC,CAAC;QAC1DC,QAAQ,EAAE;MACX,CAAC;IACF;IACAP,GAAG,CAAEC,IAAI,CAACC,UAAU,CAAE,CAACK,QAAQ,CAACC,IAAI,CAAEP,IAAK,CAAC;IAC5C,OAAOD,GAAG;EACX,CAAC,EAAE,CAAC,CAAE,CAAC;EACP,OAAOS,MAAM,CAACC,MAAM,CAAEZ,kBAAmB,CAAC;AAC3C"}
@@ -0,0 +1,68 @@
1
+ function findNearest(input, numbers) {
2
+ // If the numbers array is empty, return null
3
+ if (numbers.length === 0) {
4
+ return null;
5
+ }
6
+ // Sort the array based on the absolute difference with the input
7
+ numbers.sort((a, b) => Math.abs(input - a) - Math.abs(input - b));
8
+ // Return the first element (which will be the nearest) from the sorted array
9
+ return numbers[0];
10
+ }
11
+ function extractFontWeights(fontFaces) {
12
+ const result = [];
13
+ fontFaces.forEach(face => {
14
+ const weights = String(face.fontWeight).split(' ');
15
+ if (weights.length === 2) {
16
+ const start = parseInt(weights[0]);
17
+ const end = parseInt(weights[1]);
18
+ for (let i = start; i <= end; i += 100) {
19
+ result.push(i);
20
+ }
21
+ } else if (weights.length === 1) {
22
+ result.push(parseInt(weights[0]));
23
+ }
24
+ });
25
+ return result;
26
+ }
27
+ export function formatFontFamily(input) {
28
+ return input.split(',').map(font => {
29
+ font = font.trim(); // Remove any leading or trailing white spaces
30
+ // If the font doesn't have single quotes and contains a space, then add single quotes around it
31
+ if (!font.startsWith("'") && font.indexOf(' ') !== -1) {
32
+ return `'${font}'`;
33
+ }
34
+ return font; // Return font as is if no transformation is needed
35
+ }).join(', ');
36
+ }
37
+ export function getFamilyPreviewStyle(family) {
38
+ const style = {
39
+ fontFamily: formatFontFamily(family.fontFamily)
40
+ };
41
+ if (!Array.isArray(family.fontFace)) {
42
+ style.fontWeight = '400';
43
+ style.fontStyle = 'normal';
44
+ return style;
45
+ }
46
+ if (family.fontFace) {
47
+ //get all the font faces with normal style
48
+ const normalFaces = family.fontFace.filter(face => face.fontStyle.toLowerCase() === 'normal');
49
+ if (normalFaces.length > 0) {
50
+ style.fontStyle = 'normal';
51
+ const normalWeights = extractFontWeights(normalFaces);
52
+ const nearestWeight = findNearest(400, normalWeights);
53
+ style.fontWeight = String(nearestWeight) || '400';
54
+ } else {
55
+ style.fontStyle = family.fontFace.length && family.fontFace[0].fontStyle || 'normal';
56
+ style.fontWeight = family.fontFace.length && String(family.fontFace[0].fontWeight) || '400';
57
+ }
58
+ }
59
+ return style;
60
+ }
61
+ export function getFacePreviewStyle(face) {
62
+ return {
63
+ fontFamily: formatFontFamily(face.fontFamily),
64
+ fontStyle: face.fontStyle || 'normal',
65
+ fontWeight: face.fontWeight || '400'
66
+ };
67
+ }
68
+ //# sourceMappingURL=preview-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["findNearest","input","numbers","length","sort","a","b","Math","abs","extractFontWeights","fontFaces","result","forEach","face","weights","String","fontWeight","split","start","parseInt","end","i","push","formatFontFamily","map","font","trim","startsWith","indexOf","join","getFamilyPreviewStyle","family","style","fontFamily","Array","isArray","fontFace","fontStyle","normalFaces","filter","toLowerCase","normalWeights","nearestWeight","getFacePreviewStyle"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/preview-styles.js"],"sourcesContent":["function findNearest( input, numbers ) {\n\t// If the numbers array is empty, return null\n\tif ( numbers.length === 0 ) {\n\t\treturn null;\n\t}\n\t// Sort the array based on the absolute difference with the input\n\tnumbers.sort( ( a, b ) => Math.abs( input - a ) - Math.abs( input - b ) );\n\t// Return the first element (which will be the nearest) from the sorted array\n\treturn numbers[ 0 ];\n}\n\nfunction extractFontWeights( fontFaces ) {\n\tconst result = [];\n\n\tfontFaces.forEach( ( face ) => {\n\t\tconst weights = String( face.fontWeight ).split( ' ' );\n\n\t\tif ( weights.length === 2 ) {\n\t\t\tconst start = parseInt( weights[ 0 ] );\n\t\t\tconst end = parseInt( weights[ 1 ] );\n\n\t\t\tfor ( let i = start; i <= end; i += 100 ) {\n\t\t\t\tresult.push( i );\n\t\t\t}\n\t\t} else if ( weights.length === 1 ) {\n\t\t\tresult.push( parseInt( weights[ 0 ] ) );\n\t\t}\n\t} );\n\n\treturn result;\n}\n\nexport function formatFontFamily( input ) {\n\treturn input\n\t\t.split( ',' )\n\t\t.map( ( font ) => {\n\t\t\tfont = font.trim(); // Remove any leading or trailing white spaces\n\t\t\t// If the font doesn't have single quotes and contains a space, then add single quotes around it\n\t\t\tif ( ! font.startsWith( \"'\" ) && font.indexOf( ' ' ) !== -1 ) {\n\t\t\t\treturn `'${ font }'`;\n\t\t\t}\n\t\t\treturn font; // Return font as is if no transformation is needed\n\t\t} )\n\t\t.join( ', ' );\n}\n\nexport function getFamilyPreviewStyle( family ) {\n\tconst style = { fontFamily: formatFontFamily( family.fontFamily ) };\n\n\tif ( ! Array.isArray( family.fontFace ) ) {\n\t\tstyle.fontWeight = '400';\n\t\tstyle.fontStyle = 'normal';\n\t\treturn style;\n\t}\n\n\tif ( family.fontFace ) {\n\t\t//get all the font faces with normal style\n\t\tconst normalFaces = family.fontFace.filter(\n\t\t\t( face ) => face.fontStyle.toLowerCase() === 'normal'\n\t\t);\n\t\tif ( normalFaces.length > 0 ) {\n\t\t\tstyle.fontStyle = 'normal';\n\t\t\tconst normalWeights = extractFontWeights( normalFaces );\n\t\t\tconst nearestWeight = findNearest( 400, normalWeights );\n\t\t\tstyle.fontWeight = String( nearestWeight ) || '400';\n\t\t} else {\n\t\t\tstyle.fontStyle =\n\t\t\t\t( family.fontFace.length && family.fontFace[ 0 ].fontStyle ) ||\n\t\t\t\t'normal';\n\t\t\tstyle.fontWeight =\n\t\t\t\t( family.fontFace.length &&\n\t\t\t\t\tString( family.fontFace[ 0 ].fontWeight ) ) ||\n\t\t\t\t'400';\n\t\t}\n\t}\n\n\treturn style;\n}\n\nexport function getFacePreviewStyle( face ) {\n\treturn {\n\t\tfontFamily: formatFontFamily( face.fontFamily ),\n\t\tfontStyle: face.fontStyle || 'normal',\n\t\tfontWeight: face.fontWeight || '400',\n\t};\n}\n"],"mappings":"AAAA,SAASA,WAAWA,CAAEC,KAAK,EAAEC,OAAO,EAAG;EACtC;EACA,IAAKA,OAAO,CAACC,MAAM,KAAK,CAAC,EAAG;IAC3B,OAAO,IAAI;EACZ;EACA;EACAD,OAAO,CAACE,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAMC,IAAI,CAACC,GAAG,CAAEP,KAAK,GAAGI,CAAE,CAAC,GAAGE,IAAI,CAACC,GAAG,CAAEP,KAAK,GAAGK,CAAE,CAAE,CAAC;EACzE;EACA,OAAOJ,OAAO,CAAE,CAAC,CAAE;AACpB;AAEA,SAASO,kBAAkBA,CAAEC,SAAS,EAAG;EACxC,MAAMC,MAAM,GAAG,EAAE;EAEjBD,SAAS,CAACE,OAAO,CAAIC,IAAI,IAAM;IAC9B,MAAMC,OAAO,GAAGC,MAAM,CAAEF,IAAI,CAACG,UAAW,CAAC,CAACC,KAAK,CAAE,GAAI,CAAC;IAEtD,IAAKH,OAAO,CAACX,MAAM,KAAK,CAAC,EAAG;MAC3B,MAAMe,KAAK,GAAGC,QAAQ,CAAEL,OAAO,CAAE,CAAC,CAAG,CAAC;MACtC,MAAMM,GAAG,GAAGD,QAAQ,CAAEL,OAAO,CAAE,CAAC,CAAG,CAAC;MAEpC,KAAM,IAAIO,CAAC,GAAGH,KAAK,EAAEG,CAAC,IAAID,GAAG,EAAEC,CAAC,IAAI,GAAG,EAAG;QACzCV,MAAM,CAACW,IAAI,CAAED,CAAE,CAAC;MACjB;IACD,CAAC,MAAM,IAAKP,OAAO,CAACX,MAAM,KAAK,CAAC,EAAG;MAClCQ,MAAM,CAACW,IAAI,CAAEH,QAAQ,CAAEL,OAAO,CAAE,CAAC,CAAG,CAAE,CAAC;IACxC;EACD,CAAE,CAAC;EAEH,OAAOH,MAAM;AACd;AAEA,OAAO,SAASY,gBAAgBA,CAAEtB,KAAK,EAAG;EACzC,OAAOA,KAAK,CACVgB,KAAK,CAAE,GAAI,CAAC,CACZO,GAAG,CAAIC,IAAI,IAAM;IACjBA,IAAI,GAAGA,IAAI,CAACC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB;IACA,IAAK,CAAED,IAAI,CAACE,UAAU,CAAE,GAAI,CAAC,IAAIF,IAAI,CAACG,OAAO,CAAE,GAAI,CAAC,KAAK,CAAC,CAAC,EAAG;MAC7D,OAAQ,IAAIH,IAAM,GAAE;IACrB;IACA,OAAOA,IAAI,CAAC,CAAC;EACd,CAAE,CAAC,CACFI,IAAI,CAAE,IAAK,CAAC;AACf;AAEA,OAAO,SAASC,qBAAqBA,CAAEC,MAAM,EAAG;EAC/C,MAAMC,KAAK,GAAG;IAAEC,UAAU,EAAEV,gBAAgB,CAAEQ,MAAM,CAACE,UAAW;EAAE,CAAC;EAEnE,IAAK,CAAEC,KAAK,CAACC,OAAO,CAAEJ,MAAM,CAACK,QAAS,CAAC,EAAG;IACzCJ,KAAK,CAAChB,UAAU,GAAG,KAAK;IACxBgB,KAAK,CAACK,SAAS,GAAG,QAAQ;IAC1B,OAAOL,KAAK;EACb;EAEA,IAAKD,MAAM,CAACK,QAAQ,EAAG;IACtB;IACA,MAAME,WAAW,GAAGP,MAAM,CAACK,QAAQ,CAACG,MAAM,CACvC1B,IAAI,IAAMA,IAAI,CAACwB,SAAS,CAACG,WAAW,CAAC,CAAC,KAAK,QAC9C,CAAC;IACD,IAAKF,WAAW,CAACnC,MAAM,GAAG,CAAC,EAAG;MAC7B6B,KAAK,CAACK,SAAS,GAAG,QAAQ;MAC1B,MAAMI,aAAa,GAAGhC,kBAAkB,CAAE6B,WAAY,CAAC;MACvD,MAAMI,aAAa,GAAG1C,WAAW,CAAE,GAAG,EAAEyC,aAAc,CAAC;MACvDT,KAAK,CAAChB,UAAU,GAAGD,MAAM,CAAE2B,aAAc,CAAC,IAAI,KAAK;IACpD,CAAC,MAAM;MACNV,KAAK,CAACK,SAAS,GACZN,MAAM,CAACK,QAAQ,CAACjC,MAAM,IAAI4B,MAAM,CAACK,QAAQ,CAAE,CAAC,CAAE,CAACC,SAAS,IAC1D,QAAQ;MACTL,KAAK,CAAChB,UAAU,GACbe,MAAM,CAACK,QAAQ,CAACjC,MAAM,IACvBY,MAAM,CAAEgB,MAAM,CAACK,QAAQ,CAAE,CAAC,CAAE,CAACpB,UAAW,CAAC,IAC1C,KAAK;IACP;EACD;EAEA,OAAOgB,KAAK;AACb;AAEA,OAAO,SAASW,mBAAmBA,CAAE9B,IAAI,EAAG;EAC3C,OAAO;IACNoB,UAAU,EAAEV,gBAAgB,CAAEV,IAAI,CAACoB,UAAW,CAAC;IAC/CI,SAAS,EAAExB,IAAI,CAACwB,SAAS,IAAI,QAAQ;IACrCrB,UAAU,EAAEH,IAAI,CAACG,UAAU,IAAI;EAChC,CAAC;AACF"}
@@ -0,0 +1,30 @@
1
+ function getNumericFontWeight(value) {
2
+ switch (value) {
3
+ case 'normal':
4
+ return 400;
5
+ case 'bold':
6
+ return 700;
7
+ case 'bolder':
8
+ return 500;
9
+ case 'lighter':
10
+ return 300;
11
+ default:
12
+ return parseInt(value, 10);
13
+ }
14
+ }
15
+ export function sortFontFaces(faces) {
16
+ return faces.sort((a, b) => {
17
+ // Ensure 'normal' fontStyle is always first
18
+ if (a.fontStyle === 'normal' && b.fontStyle !== 'normal') return -1;
19
+ if (b.fontStyle === 'normal' && a.fontStyle !== 'normal') return 1;
20
+
21
+ // If both fontStyles are the same, sort by fontWeight
22
+ if (a.fontStyle === b.fontStyle) {
23
+ return getNumericFontWeight(a.fontWeight) - getNumericFontWeight(b.fontWeight);
24
+ }
25
+
26
+ // Sort other fontStyles alphabetically
27
+ return a.fontStyle.localeCompare(b.fontStyle);
28
+ });
29
+ }
30
+ //# sourceMappingURL=sort-font-faces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getNumericFontWeight","value","parseInt","sortFontFaces","faces","sort","a","b","fontStyle","fontWeight","localeCompare"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/sort-font-faces.js"],"sourcesContent":["function getNumericFontWeight( value ) {\n\tswitch ( value ) {\n\t\tcase 'normal':\n\t\t\treturn 400;\n\t\tcase 'bold':\n\t\t\treturn 700;\n\t\tcase 'bolder':\n\t\t\treturn 500;\n\t\tcase 'lighter':\n\t\t\treturn 300;\n\t\tdefault:\n\t\t\treturn parseInt( value, 10 );\n\t}\n}\n\nexport function sortFontFaces( faces ) {\n\treturn faces.sort( ( a, b ) => {\n\t\t// Ensure 'normal' fontStyle is always first\n\t\tif ( a.fontStyle === 'normal' && b.fontStyle !== 'normal' ) return -1;\n\t\tif ( b.fontStyle === 'normal' && a.fontStyle !== 'normal' ) return 1;\n\n\t\t// If both fontStyles are the same, sort by fontWeight\n\t\tif ( a.fontStyle === b.fontStyle ) {\n\t\t\treturn (\n\t\t\t\tgetNumericFontWeight( a.fontWeight ) -\n\t\t\t\tgetNumericFontWeight( b.fontWeight )\n\t\t\t);\n\t\t}\n\n\t\t// Sort other fontStyles alphabetically\n\t\treturn a.fontStyle.localeCompare( b.fontStyle );\n\t} );\n}\n"],"mappings":"AAAA,SAASA,oBAAoBA,CAAEC,KAAK,EAAG;EACtC,QAASA,KAAK;IACb,KAAK,QAAQ;MACZ,OAAO,GAAG;IACX,KAAK,MAAM;MACV,OAAO,GAAG;IACX,KAAK,QAAQ;MACZ,OAAO,GAAG;IACX,KAAK,SAAS;MACb,OAAO,GAAG;IACX;MACC,OAAOC,QAAQ,CAAED,KAAK,EAAE,EAAG,CAAC;EAC9B;AACD;AAEA,OAAO,SAASE,aAAaA,CAAEC,KAAK,EAAG;EACtC,OAAOA,KAAK,CAACC,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAM;IAC9B;IACA,IAAKD,CAAC,CAACE,SAAS,KAAK,QAAQ,IAAID,CAAC,CAACC,SAAS,KAAK,QAAQ,EAAG,OAAO,CAAC,CAAC;IACrE,IAAKD,CAAC,CAACC,SAAS,KAAK,QAAQ,IAAIF,CAAC,CAACE,SAAS,KAAK,QAAQ,EAAG,OAAO,CAAC;;IAEpE;IACA,IAAKF,CAAC,CAACE,SAAS,KAAKD,CAAC,CAACC,SAAS,EAAG;MAClC,OACCR,oBAAoB,CAAEM,CAAC,CAACG,UAAW,CAAC,GACpCT,oBAAoB,CAAEO,CAAC,CAACE,UAAW,CAAC;IAEtC;;IAEA;IACA,OAAOH,CAAC,CAACE,SAAS,CAACE,aAAa,CAAEH,CAAC,CAACC,SAAU,CAAC;EAChD,CAAE,CAAC;AACJ"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Toggles the activation of a given font or font variant within a list of custom fonts.
3
+ *
4
+ * - If only the font is provided (without face), the entire font family's activation is toggled.
5
+ * - If both font and face are provided, the activation of the specific font variant is toggled.
6
+ *
7
+ * @param {Object} font - The font to be toggled.
8
+ * @param {string} font.slug - The unique identifier for the font.
9
+ * @param {Array} [font.fontFace] - The list of font variants (faces) associated with the font.
10
+ *
11
+ * @param {Object} [face] - The specific font variant to be toggled.
12
+ * @param {string} face.fontWeight - The weight of the font variant.
13
+ * @param {string} face.fontStyle - The style of the font variant.
14
+ *
15
+ * @param {Array} initialfonts - The initial list of custom fonts.
16
+ *
17
+ * @return {Array} - The updated list of custom fonts with the font/font variant toggled.
18
+ *
19
+ * @example
20
+ * const customFonts = [
21
+ * { slug: 'roboto', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }
22
+ * ];
23
+ *
24
+ * toggleFont({ slug: 'roboto' }, null, customFonts);
25
+ * // This will remove 'roboto' from customFonts
26
+ *
27
+ * toggleFont({ slug: 'roboto' }, { fontWeight: '400', fontStyle: 'normal' }, customFonts);
28
+ * // This will remove the specified face from 'roboto' in customFonts
29
+ *
30
+ * toggleFont({ slug: 'roboto' }, { fontWeight: '500', fontStyle: 'normal' }, customFonts);
31
+ * // This will add the specified face to 'roboto' in customFonts
32
+ */
33
+ export function toggleFont(font, face, initialfonts) {
34
+ // Helper to check if a font is activated based on its slug
35
+ const isFontActivated = f => f.slug === font.slug;
36
+
37
+ // Helper to get the activated font from a list of fonts
38
+ const getActivatedFont = fonts => fonts.find(isFontActivated);
39
+
40
+ // Toggle the activation status of an entire font family
41
+ const toggleEntireFontFamily = activatedFont => {
42
+ if (!activatedFont) {
43
+ // If the font is not active, activate the entire font family
44
+ return [...initialfonts, font];
45
+ }
46
+ // If the font is already active, deactivate the entire font family
47
+ return initialfonts.filter(f => !isFontActivated(f));
48
+ };
49
+
50
+ // Toggle the activation status of a specific font variant
51
+ const toggleFontVariant = activatedFont => {
52
+ const isFaceActivated = f => f.fontWeight === face.fontWeight && f.fontStyle === face.fontStyle;
53
+ if (!activatedFont) {
54
+ // If the font family is not active, activate the font family with the font variant
55
+ return [...initialfonts, {
56
+ ...font,
57
+ fontFace: [face]
58
+ }];
59
+ }
60
+ let newFontFaces = activatedFont.fontFace || [];
61
+ if (newFontFaces.find(isFaceActivated)) {
62
+ // If the font variant is active, deactivate it
63
+ newFontFaces = newFontFaces.filter(f => !isFaceActivated(f));
64
+ } else {
65
+ // If the font variant is not active, activate it
66
+ newFontFaces = [...newFontFaces, face];
67
+ }
68
+
69
+ // If there are no more font faces, deactivate the font family
70
+ if (newFontFaces.length === 0) {
71
+ return initialfonts.filter(f => !isFontActivated(f));
72
+ }
73
+
74
+ // Return updated fonts list with toggled font variant
75
+ return initialfonts.map(f => isFontActivated(f) ? {
76
+ ...f,
77
+ fontFace: newFontFaces
78
+ } : f);
79
+ };
80
+ const activatedFont = getActivatedFont(initialfonts);
81
+ if (!face) {
82
+ return toggleEntireFontFamily(activatedFont);
83
+ }
84
+ return toggleFontVariant(activatedFont);
85
+ }
86
+ //# sourceMappingURL=toggleFont.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["toggleFont","font","face","initialfonts","isFontActivated","f","slug","getActivatedFont","fonts","find","toggleEntireFontFamily","activatedFont","filter","toggleFontVariant","isFaceActivated","fontWeight","fontStyle","fontFace","newFontFaces","length","map"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/toggleFont.js"],"sourcesContent":["/**\n * Toggles the activation of a given font or font variant within a list of custom fonts.\n *\n * - If only the font is provided (without face), the entire font family's activation is toggled.\n * - If both font and face are provided, the activation of the specific font variant is toggled.\n *\n * @param {Object} font - The font to be toggled.\n * @param {string} font.slug - The unique identifier for the font.\n * @param {Array} [font.fontFace] - The list of font variants (faces) associated with the font.\n *\n * @param {Object} [face] - The specific font variant to be toggled.\n * @param {string} face.fontWeight - The weight of the font variant.\n * @param {string} face.fontStyle - The style of the font variant.\n *\n * @param {Array} initialfonts - The initial list of custom fonts.\n *\n * @return {Array} - The updated list of custom fonts with the font/font variant toggled.\n *\n * @example\n * const customFonts = [\n * { slug: 'roboto', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }\n * ];\n *\n * toggleFont({ slug: 'roboto' }, null, customFonts);\n * // This will remove 'roboto' from customFonts\n *\n * toggleFont({ slug: 'roboto' }, { fontWeight: '400', fontStyle: 'normal' }, customFonts);\n * // This will remove the specified face from 'roboto' in customFonts\n *\n * toggleFont({ slug: 'roboto' }, { fontWeight: '500', fontStyle: 'normal' }, customFonts);\n * // This will add the specified face to 'roboto' in customFonts\n */\nexport function toggleFont( font, face, initialfonts ) {\n\t// Helper to check if a font is activated based on its slug\n\tconst isFontActivated = ( f ) => f.slug === font.slug;\n\n\t// Helper to get the activated font from a list of fonts\n\tconst getActivatedFont = ( fonts ) => fonts.find( isFontActivated );\n\n\t// Toggle the activation status of an entire font family\n\tconst toggleEntireFontFamily = ( activatedFont ) => {\n\t\tif ( ! activatedFont ) {\n\t\t\t// If the font is not active, activate the entire font family\n\t\t\treturn [ ...initialfonts, font ];\n\t\t}\n\t\t// If the font is already active, deactivate the entire font family\n\t\treturn initialfonts.filter( ( f ) => ! isFontActivated( f ) );\n\t};\n\n\t// Toggle the activation status of a specific font variant\n\tconst toggleFontVariant = ( activatedFont ) => {\n\t\tconst isFaceActivated = ( f ) =>\n\t\t\tf.fontWeight === face.fontWeight && f.fontStyle === face.fontStyle;\n\n\t\tif ( ! activatedFont ) {\n\t\t\t// If the font family is not active, activate the font family with the font variant\n\t\t\treturn [ ...initialfonts, { ...font, fontFace: [ face ] } ];\n\t\t}\n\n\t\tlet newFontFaces = activatedFont.fontFace || [];\n\n\t\tif ( newFontFaces.find( isFaceActivated ) ) {\n\t\t\t// If the font variant is active, deactivate it\n\t\t\tnewFontFaces = newFontFaces.filter(\n\t\t\t\t( f ) => ! isFaceActivated( f )\n\t\t\t);\n\t\t} else {\n\t\t\t// If the font variant is not active, activate it\n\t\t\tnewFontFaces = [ ...newFontFaces, face ];\n\t\t}\n\n\t\t// If there are no more font faces, deactivate the font family\n\t\tif ( newFontFaces.length === 0 ) {\n\t\t\treturn initialfonts.filter( ( f ) => ! isFontActivated( f ) );\n\t\t}\n\n\t\t// Return updated fonts list with toggled font variant\n\t\treturn initialfonts.map( ( f ) =>\n\t\t\tisFontActivated( f ) ? { ...f, fontFace: newFontFaces } : f\n\t\t);\n\t};\n\n\tconst activatedFont = getActivatedFont( initialfonts );\n\n\tif ( ! face ) {\n\t\treturn toggleEntireFontFamily( activatedFont );\n\t}\n\n\treturn toggleFontVariant( activatedFont );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,UAAUA,CAAEC,IAAI,EAAEC,IAAI,EAAEC,YAAY,EAAG;EACtD;EACA,MAAMC,eAAe,GAAKC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAKL,IAAI,CAACK,IAAI;;EAErD;EACA,MAAMC,gBAAgB,GAAKC,KAAK,IAAMA,KAAK,CAACC,IAAI,CAAEL,eAAgB,CAAC;;EAEnE;EACA,MAAMM,sBAAsB,GAAKC,aAAa,IAAM;IACnD,IAAK,CAAEA,aAAa,EAAG;MACtB;MACA,OAAO,CAAE,GAAGR,YAAY,EAAEF,IAAI,CAAE;IACjC;IACA;IACA,OAAOE,YAAY,CAACS,MAAM,CAAIP,CAAC,IAAM,CAAED,eAAe,CAAEC,CAAE,CAAE,CAAC;EAC9D,CAAC;;EAED;EACA,MAAMQ,iBAAiB,GAAKF,aAAa,IAAM;IAC9C,MAAMG,eAAe,GAAKT,CAAC,IAC1BA,CAAC,CAACU,UAAU,KAAKb,IAAI,CAACa,UAAU,IAAIV,CAAC,CAACW,SAAS,KAAKd,IAAI,CAACc,SAAS;IAEnE,IAAK,CAAEL,aAAa,EAAG;MACtB;MACA,OAAO,CAAE,GAAGR,YAAY,EAAE;QAAE,GAAGF,IAAI;QAAEgB,QAAQ,EAAE,CAAEf,IAAI;MAAG,CAAC,CAAE;IAC5D;IAEA,IAAIgB,YAAY,GAAGP,aAAa,CAACM,QAAQ,IAAI,EAAE;IAE/C,IAAKC,YAAY,CAACT,IAAI,CAAEK,eAAgB,CAAC,EAAG;MAC3C;MACAI,YAAY,GAAGA,YAAY,CAACN,MAAM,CAC/BP,CAAC,IAAM,CAAES,eAAe,CAAET,CAAE,CAC/B,CAAC;IACF,CAAC,MAAM;MACN;MACAa,YAAY,GAAG,CAAE,GAAGA,YAAY,EAAEhB,IAAI,CAAE;IACzC;;IAEA;IACA,IAAKgB,YAAY,CAACC,MAAM,KAAK,CAAC,EAAG;MAChC,OAAOhB,YAAY,CAACS,MAAM,CAAIP,CAAC,IAAM,CAAED,eAAe,CAAEC,CAAE,CAAE,CAAC;IAC9D;;IAEA;IACA,OAAOF,YAAY,CAACiB,GAAG,CAAIf,CAAC,IAC3BD,eAAe,CAAEC,CAAE,CAAC,GAAG;MAAE,GAAGA,CAAC;MAAEY,QAAQ,EAAEC;IAAa,CAAC,GAAGb,CAC3D,CAAC;EACF,CAAC;EAED,MAAMM,aAAa,GAAGJ,gBAAgB,CAAEJ,YAAa,CAAC;EAEtD,IAAK,CAAED,IAAI,EAAG;IACb,OAAOQ,sBAAsB,CAAEC,aAAc,CAAC;EAC/C;EAEA,OAAOE,iBAAiB,CAAEF,aAAc,CAAC;AAC1C"}
@@ -34,8 +34,7 @@ function useGlobalStylesUserConfig() {
34
34
  globalStylesId,
35
35
  isReady,
36
36
  settings,
37
- styles,
38
- behaviors
37
+ styles
39
38
  } = useSelect(select => {
40
39
  const {
41
40
  getEditedEntityRecord,
@@ -51,8 +50,7 @@ function useGlobalStylesUserConfig() {
51
50
  globalStylesId: _globalStylesId,
52
51
  isReady: hasResolved,
53
52
  settings: record?.settings,
54
- styles: record?.styles,
55
- behaviors: record?.behaviors
53
+ styles: record?.styles
56
54
  };
57
55
  }, []);
58
56
  const {
@@ -64,23 +62,20 @@ function useGlobalStylesUserConfig() {
64
62
  const config = useMemo(() => {
65
63
  return {
66
64
  settings: settings !== null && settings !== void 0 ? settings : {},
67
- styles: styles !== null && styles !== void 0 ? styles : {},
68
- behaviors: behaviors !== null && behaviors !== void 0 ? behaviors : {}
65
+ styles: styles !== null && styles !== void 0 ? styles : {}
69
66
  };
70
- }, [settings, styles, behaviors]);
67
+ }, [settings, styles]);
71
68
  const setConfig = useCallback((callback, options = {}) => {
72
- var _record$styles, _record$settings, _record$behaviors;
69
+ var _record$styles, _record$settings;
73
70
  const record = getEditedEntityRecord('root', 'globalStyles', globalStylesId);
74
71
  const currentConfig = {
75
72
  styles: (_record$styles = record?.styles) !== null && _record$styles !== void 0 ? _record$styles : {},
76
- settings: (_record$settings = record?.settings) !== null && _record$settings !== void 0 ? _record$settings : {},
77
- behaviors: (_record$behaviors = record?.behaviors) !== null && _record$behaviors !== void 0 ? _record$behaviors : {}
73
+ settings: (_record$settings = record?.settings) !== null && _record$settings !== void 0 ? _record$settings : {}
78
74
  };
79
75
  const updatedConfig = callback(currentConfig);
80
76
  editEntityRecord('root', 'globalStyles', globalStylesId, {
81
77
  styles: cleanEmptyObject(updatedConfig.styles) || {},
82
- settings: cleanEmptyObject(updatedConfig.settings) || {},
83
- behaviors: cleanEmptyObject(updatedConfig.behaviors) || {}
78
+ settings: cleanEmptyObject(updatedConfig.settings) || {}
84
79
  }, options);
85
80
  }, [globalStylesId]);
86
81
  return [isReady, config, setConfig];
@@ -1 +1 @@
1
- {"version":3,"names":["deepmerge","isPlainObject","useMemo","useCallback","useSelect","useDispatch","store","coreStore","privateApis","blockEditorPrivateApis","unlock","GlobalStylesContext","cleanEmptyObject","mergeBaseAndUserConfigs","base","user","isMergeableObject","useGlobalStylesUserConfig","globalStylesId","isReady","settings","styles","behaviors","select","getEditedEntityRecord","hasFinishedResolution","_globalStylesId","__experimentalGetCurrentGlobalStylesId","record","undefined","hasResolved","editEntityRecord","config","setConfig","callback","options","_record$styles","_record$settings","_record$behaviors","currentConfig","updatedConfig","useGlobalStylesBaseConfig","baseConfig","__experimentalGetCurrentThemeBaseGlobalStyles","useGlobalStylesContext","isUserConfigReady","userConfig","setUserConfig","isBaseConfigReady","mergedConfig","context","merged","GlobalStylesProvider","children","createElement","Provider","value"],"sources":["@wordpress/edit-site/src/components/global-styles/global-styles-provider.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport deepmerge from 'deepmerge';\nimport { isPlainObject } from 'is-plain-object';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { GlobalStylesContext, cleanEmptyObject } = unlock(\n\tblockEditorPrivateApis\n);\n\nexport function mergeBaseAndUserConfigs( base, user ) {\n\treturn deepmerge( base, user, {\n\t\t// We only pass as arrays the presets,\n\t\t// in which case we want the new array of values\n\t\t// to override the old array (no merging).\n\t\tisMergeableObject: isPlainObject,\n\t} );\n}\n\nfunction useGlobalStylesUserConfig() {\n\tconst { globalStylesId, isReady, settings, styles, behaviors } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _globalStylesId =\n\t\t\t\tselect( coreStore ).__experimentalGetCurrentGlobalStylesId();\n\t\t\tconst record = _globalStylesId\n\t\t\t\t? getEditedEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId\n\t\t\t\t )\n\t\t\t\t: undefined;\n\n\t\t\tlet hasResolved = false;\n\t\t\tif (\n\t\t\t\thasFinishedResolution(\n\t\t\t\t\t'__experimentalGetCurrentGlobalStylesId'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\thasResolved = _globalStylesId\n\t\t\t\t\t? hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t ] )\n\t\t\t\t\t: true;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tglobalStylesId: _globalStylesId,\n\t\t\t\tisReady: hasResolved,\n\t\t\t\tsettings: record?.settings,\n\t\t\t\tstyles: record?.styles,\n\t\t\t\tbehaviors: record?.behaviors,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst config = useMemo( () => {\n\t\treturn {\n\t\t\tsettings: settings ?? {},\n\t\t\tstyles: styles ?? {},\n\t\t\tbehaviors: behaviors ?? {},\n\t\t};\n\t}, [ settings, styles, behaviors ] );\n\n\tconst setConfig = useCallback(\n\t\t( callback, options = {} ) => {\n\t\t\tconst record = getEditedEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId\n\t\t\t);\n\t\t\tconst currentConfig = {\n\t\t\t\tstyles: record?.styles ?? {},\n\t\t\t\tsettings: record?.settings ?? {},\n\t\t\t\tbehaviors: record?.behaviors ?? {},\n\t\t\t};\n\t\t\tconst updatedConfig = callback( currentConfig );\n\t\t\teditEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t{\n\t\t\t\t\tstyles: cleanEmptyObject( updatedConfig.styles ) || {},\n\t\t\t\t\tsettings: cleanEmptyObject( updatedConfig.settings ) || {},\n\t\t\t\t\tbehaviors:\n\t\t\t\t\t\tcleanEmptyObject( updatedConfig.behaviors ) || {},\n\t\t\t\t},\n\t\t\t\toptions\n\t\t\t);\n\t\t},\n\t\t[ globalStylesId ]\n\t);\n\n\treturn [ isReady, config, setConfig ];\n}\n\nfunction useGlobalStylesBaseConfig() {\n\tconst baseConfig = useSelect( ( select ) => {\n\t\treturn select(\n\t\t\tcoreStore\n\t\t).__experimentalGetCurrentThemeBaseGlobalStyles();\n\t}, [] );\n\n\treturn [ !! baseConfig, baseConfig ];\n}\n\nfunction useGlobalStylesContext() {\n\tconst [ isUserConfigReady, userConfig, setUserConfig ] =\n\t\tuseGlobalStylesUserConfig();\n\tconst [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! baseConfig || ! userConfig ) {\n\t\t\treturn {};\n\t\t}\n\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t}, [ userConfig, baseConfig ] );\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tisReady: isUserConfigReady && isBaseConfigReady,\n\t\t\tuser: userConfig,\n\t\t\tbase: baseConfig,\n\t\t\tmerged: mergedConfig,\n\t\t\tsetUserConfig,\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tuserConfig,\n\t\tbaseConfig,\n\t\tsetUserConfig,\n\t\tisUserConfigReady,\n\t\tisBaseConfigReady,\n\t] );\n\n\treturn context;\n}\n\nexport function GlobalStylesProvider( { children } ) {\n\tconst context = useGlobalStylesContext();\n\tif ( ! context.isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,SAAS,MAAM,WAAW;AACjC,SAASC,aAAa,QAAQ,iBAAiB;;AAE/C;AACA;AACA;AACA,SAASC,OAAO,EAAEC,WAAW,QAAQ,oBAAoB;AACzD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,WAAW,IAAIC,sBAAsB,QAAQ,yBAAyB;;AAE/E;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC,mBAAmB;EAAEC;AAAiB,CAAC,GAAGF,MAAM,CACvDD,sBACD,CAAC;AAED,OAAO,SAASI,uBAAuBA,CAAEC,IAAI,EAAEC,IAAI,EAAG;EACrD,OAAOf,SAAS,CAAEc,IAAI,EAAEC,IAAI,EAAE;IAC7B;IACA;IACA;IACAC,iBAAiB,EAAEf;EACpB,CAAE,CAAC;AACJ;AAEA,SAASgB,yBAAyBA,CAAA,EAAG;EACpC,MAAM;IAAEC,cAAc;IAAEC,OAAO;IAAEC,QAAQ;IAAEC,MAAM;IAAEC;EAAU,CAAC,GAAGlB,SAAS,CACvEmB,MAAM,IAAM;IACb,MAAM;MAAEC,qBAAqB;MAAEC;IAAsB,CAAC,GACrDF,MAAM,CAAEhB,SAAU,CAAC;IACpB,MAAMmB,eAAe,GACpBH,MAAM,CAAEhB,SAAU,CAAC,CAACoB,sCAAsC,CAAC,CAAC;IAC7D,MAAMC,MAAM,GAAGF,eAAe,GAC3BF,qBAAqB,CACrB,MAAM,EACN,cAAc,EACdE,eACA,CAAC,GACDG,SAAS;IAEZ,IAAIC,WAAW,GAAG,KAAK;IACvB,IACCL,qBAAqB,CACpB,wCACD,CAAC,EACA;MACDK,WAAW,GAAGJ,eAAe,GAC1BD,qBAAqB,CAAE,uBAAuB,EAAE,CAChD,MAAM,EACN,cAAc,EACdC,eAAe,CACb,CAAC,GACH,IAAI;IACR;IAEA,OAAO;MACNR,cAAc,EAAEQ,eAAe;MAC/BP,OAAO,EAAEW,WAAW;MACpBV,QAAQ,EAAEQ,MAAM,EAAER,QAAQ;MAC1BC,MAAM,EAAEO,MAAM,EAAEP,MAAM;MACtBC,SAAS,EAAEM,MAAM,EAAEN;IACpB,CAAC;EACF,CAAC,EACD,EACD,CAAC;EAED,MAAM;IAAEE;EAAsB,CAAC,GAAGpB,SAAS,CAAEG,SAAU,CAAC;EACxD,MAAM;IAAEwB;EAAiB,CAAC,GAAG1B,WAAW,CAAEE,SAAU,CAAC;EACrD,MAAMyB,MAAM,GAAG9B,OAAO,CAAE,MAAM;IAC7B,OAAO;MACNkB,QAAQ,EAAEA,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,CAAC,CAAC;MACxBC,MAAM,EAAEA,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,CAAC,CAAC;MACpBC,SAAS,EAAEA,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,CAAC;IAC1B,CAAC;EACF,CAAC,EAAE,CAAEF,QAAQ,EAAEC,MAAM,EAAEC,SAAS,CAAG,CAAC;EAEpC,MAAMW,SAAS,GAAG9B,WAAW,CAC5B,CAAE+B,QAAQ,EAAEC,OAAO,GAAG,CAAC,CAAC,KAAM;IAAA,IAAAC,cAAA,EAAAC,gBAAA,EAAAC,iBAAA;IAC7B,MAAMV,MAAM,GAAGJ,qBAAqB,CACnC,MAAM,EACN,cAAc,EACdN,cACD,CAAC;IACD,MAAMqB,aAAa,GAAG;MACrBlB,MAAM,GAAAe,cAAA,GAAER,MAAM,EAAEP,MAAM,cAAAe,cAAA,cAAAA,cAAA,GAAI,CAAC,CAAC;MAC5BhB,QAAQ,GAAAiB,gBAAA,GAAET,MAAM,EAAER,QAAQ,cAAAiB,gBAAA,cAAAA,gBAAA,GAAI,CAAC,CAAC;MAChCf,SAAS,GAAAgB,iBAAA,GAAEV,MAAM,EAAEN,SAAS,cAAAgB,iBAAA,cAAAA,iBAAA,GAAI,CAAC;IAClC,CAAC;IACD,MAAME,aAAa,GAAGN,QAAQ,CAAEK,aAAc,CAAC;IAC/CR,gBAAgB,CACf,MAAM,EACN,cAAc,EACdb,cAAc,EACd;MACCG,MAAM,EAAET,gBAAgB,CAAE4B,aAAa,CAACnB,MAAO,CAAC,IAAI,CAAC,CAAC;MACtDD,QAAQ,EAAER,gBAAgB,CAAE4B,aAAa,CAACpB,QAAS,CAAC,IAAI,CAAC,CAAC;MAC1DE,SAAS,EACRV,gBAAgB,CAAE4B,aAAa,CAAClB,SAAU,CAAC,IAAI,CAAC;IAClD,CAAC,EACDa,OACD,CAAC;EACF,CAAC,EACD,CAAEjB,cAAc,CACjB,CAAC;EAED,OAAO,CAAEC,OAAO,EAAEa,MAAM,EAAEC,SAAS,CAAE;AACtC;AAEA,SAASQ,yBAAyBA,CAAA,EAAG;EACpC,MAAMC,UAAU,GAAGtC,SAAS,CAAImB,MAAM,IAAM;IAC3C,OAAOA,MAAM,CACZhB,SACD,CAAC,CAACoC,6CAA6C,CAAC,CAAC;EAClD,CAAC,EAAE,EAAG,CAAC;EAEP,OAAO,CAAE,CAAC,CAAED,UAAU,EAAEA,UAAU,CAAE;AACrC;AAEA,SAASE,sBAAsBA,CAAA,EAAG;EACjC,MAAM,CAAEC,iBAAiB,EAAEC,UAAU,EAAEC,aAAa,CAAE,GACrD9B,yBAAyB,CAAC,CAAC;EAC5B,MAAM,CAAE+B,iBAAiB,EAAEN,UAAU,CAAE,GAAGD,yBAAyB,CAAC,CAAC;EACrE,MAAMQ,YAAY,GAAG/C,OAAO,CAAE,MAAM;IACnC,IAAK,CAAEwC,UAAU,IAAI,CAAEI,UAAU,EAAG;MACnC,OAAO,CAAC,CAAC;IACV;IACA,OAAOjC,uBAAuB,CAAE6B,UAAU,EAAEI,UAAW,CAAC;EACzD,CAAC,EAAE,CAAEA,UAAU,EAAEJ,UAAU,CAAG,CAAC;EAC/B,MAAMQ,OAAO,GAAGhD,OAAO,CAAE,MAAM;IAC9B,OAAO;MACNiB,OAAO,EAAE0B,iBAAiB,IAAIG,iBAAiB;MAC/CjC,IAAI,EAAE+B,UAAU;MAChBhC,IAAI,EAAE4B,UAAU;MAChBS,MAAM,EAAEF,YAAY;MACpBF;IACD,CAAC;EACF,CAAC,EAAE,CACFE,YAAY,EACZH,UAAU,EACVJ,UAAU,EACVK,aAAa,EACbF,iBAAiB,EACjBG,iBAAiB,CAChB,CAAC;EAEH,OAAOE,OAAO;AACf;AAEA,OAAO,SAASE,oBAAoBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACpD,MAAMH,OAAO,GAAGN,sBAAsB,CAAC,CAAC;EACxC,IAAK,CAAEM,OAAO,CAAC/B,OAAO,EAAG;IACxB,OAAO,IAAI;EACZ;EAEA,OACCmC,aAAA,CAAC3C,mBAAmB,CAAC4C,QAAQ;IAACC,KAAK,EAAGN;EAAS,GAC5CG,QAC2B,CAAC;AAEjC"}
1
+ {"version":3,"names":["deepmerge","isPlainObject","useMemo","useCallback","useSelect","useDispatch","store","coreStore","privateApis","blockEditorPrivateApis","unlock","GlobalStylesContext","cleanEmptyObject","mergeBaseAndUserConfigs","base","user","isMergeableObject","useGlobalStylesUserConfig","globalStylesId","isReady","settings","styles","select","getEditedEntityRecord","hasFinishedResolution","_globalStylesId","__experimentalGetCurrentGlobalStylesId","record","undefined","hasResolved","editEntityRecord","config","setConfig","callback","options","_record$styles","_record$settings","currentConfig","updatedConfig","useGlobalStylesBaseConfig","baseConfig","__experimentalGetCurrentThemeBaseGlobalStyles","useGlobalStylesContext","isUserConfigReady","userConfig","setUserConfig","isBaseConfigReady","mergedConfig","context","merged","GlobalStylesProvider","children","createElement","Provider","value"],"sources":["@wordpress/edit-site/src/components/global-styles/global-styles-provider.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport deepmerge from 'deepmerge';\nimport { isPlainObject } from 'is-plain-object';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { GlobalStylesContext, cleanEmptyObject } = unlock(\n\tblockEditorPrivateApis\n);\n\nexport function mergeBaseAndUserConfigs( base, user ) {\n\treturn deepmerge( base, user, {\n\t\t// We only pass as arrays the presets,\n\t\t// in which case we want the new array of values\n\t\t// to override the old array (no merging).\n\t\tisMergeableObject: isPlainObject,\n\t} );\n}\n\nfunction useGlobalStylesUserConfig() {\n\tconst { globalStylesId, isReady, settings, styles } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _globalStylesId =\n\t\t\t\tselect( coreStore ).__experimentalGetCurrentGlobalStylesId();\n\t\t\tconst record = _globalStylesId\n\t\t\t\t? getEditedEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId\n\t\t\t\t )\n\t\t\t\t: undefined;\n\n\t\t\tlet hasResolved = false;\n\t\t\tif (\n\t\t\t\thasFinishedResolution(\n\t\t\t\t\t'__experimentalGetCurrentGlobalStylesId'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\thasResolved = _globalStylesId\n\t\t\t\t\t? hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t ] )\n\t\t\t\t\t: true;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tglobalStylesId: _globalStylesId,\n\t\t\t\tisReady: hasResolved,\n\t\t\t\tsettings: record?.settings,\n\t\t\t\tstyles: record?.styles,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst config = useMemo( () => {\n\t\treturn {\n\t\t\tsettings: settings ?? {},\n\t\t\tstyles: styles ?? {},\n\t\t};\n\t}, [ settings, styles ] );\n\n\tconst setConfig = useCallback(\n\t\t( callback, options = {} ) => {\n\t\t\tconst record = getEditedEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId\n\t\t\t);\n\t\t\tconst currentConfig = {\n\t\t\t\tstyles: record?.styles ?? {},\n\t\t\t\tsettings: record?.settings ?? {},\n\t\t\t};\n\t\t\tconst updatedConfig = callback( currentConfig );\n\t\t\teditEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t{\n\t\t\t\t\tstyles: cleanEmptyObject( updatedConfig.styles ) || {},\n\t\t\t\t\tsettings: cleanEmptyObject( updatedConfig.settings ) || {},\n\t\t\t\t},\n\t\t\t\toptions\n\t\t\t);\n\t\t},\n\t\t[ globalStylesId ]\n\t);\n\n\treturn [ isReady, config, setConfig ];\n}\n\nfunction useGlobalStylesBaseConfig() {\n\tconst baseConfig = useSelect( ( select ) => {\n\t\treturn select(\n\t\t\tcoreStore\n\t\t).__experimentalGetCurrentThemeBaseGlobalStyles();\n\t}, [] );\n\n\treturn [ !! baseConfig, baseConfig ];\n}\n\nfunction useGlobalStylesContext() {\n\tconst [ isUserConfigReady, userConfig, setUserConfig ] =\n\t\tuseGlobalStylesUserConfig();\n\tconst [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! baseConfig || ! userConfig ) {\n\t\t\treturn {};\n\t\t}\n\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t}, [ userConfig, baseConfig ] );\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tisReady: isUserConfigReady && isBaseConfigReady,\n\t\t\tuser: userConfig,\n\t\t\tbase: baseConfig,\n\t\t\tmerged: mergedConfig,\n\t\t\tsetUserConfig,\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tuserConfig,\n\t\tbaseConfig,\n\t\tsetUserConfig,\n\t\tisUserConfigReady,\n\t\tisBaseConfigReady,\n\t] );\n\n\treturn context;\n}\n\nexport function GlobalStylesProvider( { children } ) {\n\tconst context = useGlobalStylesContext();\n\tif ( ! context.isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"],"mappings":"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"}
@@ -52,21 +52,20 @@ const {
52
52
  useHasDimensionsPanel,
53
53
  useHasTypographyPanel,
54
54
  useHasBorderPanel,
55
- __experimentalUseHasBehaviorsPanel: useHasBehaviorsPanel,
56
55
  useGlobalSetting,
57
56
  useSettingsForBlockElement,
58
57
  useHasColorPanel,
59
58
  useHasEffectsPanel,
60
59
  useHasFiltersPanel,
60
+ useHasImageSettingsPanel,
61
61
  useGlobalStyle,
62
- __experimentalUseGlobalBehaviors: useGlobalBehaviors,
63
- __experimentalBehaviorsPanel: StylesBehaviorsPanel,
64
62
  BorderPanel: StylesBorderPanel,
65
63
  ColorPanel: StylesColorPanel,
66
64
  TypographyPanel: StylesTypographyPanel,
67
65
  DimensionsPanel: StylesDimensionsPanel,
68
66
  EffectsPanel: StylesEffectsPanel,
69
67
  FiltersPanel: StylesFiltersPanel,
68
+ ImageSettingsPanel,
70
69
  AdvancedPanel: StylesAdvancedPanel
71
70
  } = unlock(blockEditorPrivateApis);
72
71
  function ScreenBlock({
@@ -84,15 +83,9 @@ function ScreenBlock({
84
83
  const [inheritedStyle, setStyle] = useGlobalStyle(prefix, name, 'all', {
85
84
  shouldDecodeEncode: false
86
85
  });
86
+ const [userSettings] = useGlobalSetting('', name, 'user');
87
87
  const [rawSettings, setSettings] = useGlobalSetting('', name);
88
88
  const settings = useSettingsForBlockElement(rawSettings, name);
89
- const {
90
- inheritedBehaviors,
91
- setBehavior
92
- } = useGlobalBehaviors(name);
93
- const {
94
- behavior
95
- } = useGlobalBehaviors(name, 'user');
96
89
  const blockType = getBlockType(name);
97
90
 
98
91
  // Only allow `blockGap` support if serialization has not been skipped, to be sure global spacing can be applied.
@@ -102,11 +95,11 @@ function ScreenBlock({
102
95
  const blockVariations = useBlockVariations(name);
103
96
  const hasTypographyPanel = useHasTypographyPanel(settings);
104
97
  const hasColorPanel = useHasColorPanel(settings);
105
- const hasBehaviorsPanel = useHasBehaviorsPanel(rawSettings, name);
106
98
  const hasBorderPanel = useHasBorderPanel(settings);
107
99
  const hasDimensionsPanel = useHasDimensionsPanel(settings);
108
100
  const hasEffectsPanel = useHasEffectsPanel(settings);
109
101
  const hasFiltersPanel = useHasFiltersPanel(settings);
102
+ const hasImageSettingsPanel = useHasImageSettingsPanel(name, userSettings, settings);
110
103
  const hasVariationsPanel = !!blockVariations?.length && !variation;
111
104
  const {
112
105
  canEditCSS
@@ -135,22 +128,43 @@ function ScreenBlock({
135
128
  const styleWithLayout = useMemo(() => {
136
129
  return {
137
130
  ...style,
138
- layout: settings.layout
131
+ layout: userSettings.layout
139
132
  };
140
- }, [style, settings.layout]);
133
+ }, [style, userSettings.layout]);
141
134
  const onChangeDimensions = newStyle => {
142
135
  const updatedStyle = {
143
136
  ...newStyle
144
137
  };
145
138
  delete updatedStyle.layout;
146
139
  setStyle(updatedStyle);
147
- if (newStyle.layout !== settings.layout) {
140
+ if (newStyle.layout !== userSettings.layout) {
148
141
  setSettings({
149
- ...rawSettings,
142
+ ...userSettings,
150
143
  layout: newStyle.layout
151
144
  });
152
145
  }
153
146
  };
147
+ const onChangeLightbox = newSetting => {
148
+ // If the newSetting is undefined, this means that the user has deselected
149
+ // (reset) the lightbox setting.
150
+ if (newSetting === undefined) {
151
+ setSettings({
152
+ ...rawSettings,
153
+ lightbox: undefined
154
+ });
155
+
156
+ // Otherwise, we simply set the lightbox setting to the new value but
157
+ // taking care of not overriding the other lightbox settings.
158
+ } else {
159
+ setSettings({
160
+ ...rawSettings,
161
+ lightbox: {
162
+ ...rawSettings.lightbox,
163
+ ...newSetting
164
+ }
165
+ });
166
+ }
167
+ };
154
168
  const onChangeBorders = newStyle => {
155
169
  if (!newStyle?.border) {
156
170
  setStyle(newStyle);
@@ -243,20 +257,19 @@ function ScreenBlock({
243
257
  },
244
258
 
245
259
  includeLayoutControls: true
260
+ }), hasImageSettingsPanel && createElement(ImageSettingsPanel, {
261
+ onChange: onChangeLightbox,
262
+ value: userSettings,
263
+ inheritedValue: settings
246
264
  }), canEditCSS && createElement(PanelBody, {
247
265
  title: __('Advanced'),
248
266
  initialOpen: false
249
267
  }, createElement("p", null, sprintf(
250
268
  // translators: %s: is the name of a block e.g., 'Image' or 'Table'.
251
- __('Add your own CSS to customize the appearance of the %s block.'), blockType?.title)), createElement(StylesAdvancedPanel, {
269
+ __('Add your own CSS to customize the appearance of the %s block. You do not need to include a CSS selector, just add the property and value.'), blockType?.title)), createElement(StylesAdvancedPanel, {
252
270
  value: style,
253
271
  onChange: setStyle,
254
272
  inheritedValue: inheritedStyle
255
- }), hasBehaviorsPanel && createElement(StylesBehaviorsPanel, {
256
- value: behavior,
257
- onChange: setBehavior,
258
- behaviors: inheritedBehaviors,
259
- blockName: name
260
273
  })));
261
274
  }
262
275
  export default ScreenBlock;