@wordpress/edit-site 5.18.0 → 5.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-pattern/index.js +62 -1
  3. package/build/components/add-new-pattern/index.js.map +1 -1
  4. package/build/components/add-new-template/index.js +3 -2
  5. package/build/components/add-new-template/index.js.map +1 -1
  6. package/build/components/add-new-template/new-template.js +6 -1
  7. package/build/components/add-new-template/new-template.js.map +1 -1
  8. package/build/components/add-new-template/utils.js +6 -1
  9. package/build/components/add-new-template/utils.js.map +1 -1
  10. package/build/components/app/index.js +2 -7
  11. package/build/components/app/index.js.map +1 -1
  12. package/build/components/block-editor/back-button.js +3 -2
  13. package/build/components/block-editor/back-button.js.map +1 -1
  14. package/build/components/block-editor/editor-canvas.js +20 -16
  15. package/build/components/block-editor/editor-canvas.js.map +1 -1
  16. package/build/components/block-editor/site-editor-canvas.js +1 -3
  17. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  18. package/build/components/block-editor/use-site-editor-settings.js +8 -4
  19. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  20. package/build/components/canvas-loader/index.js +18 -1
  21. package/build/components/canvas-loader/index.js.map +1 -1
  22. package/build/components/editor/index.js +3 -8
  23. package/build/components/editor/index.js.map +1 -1
  24. package/build/components/global-styles/dimensions-panel.js +5 -4
  25. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  26. package/build/components/global-styles/font-families.js +68 -0
  27. package/build/components/global-styles/font-families.js.map +1 -0
  28. package/build/components/global-styles/font-family-item.js +47 -0
  29. package/build/components/global-styles/font-family-item.js.map +1 -0
  30. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +31 -0
  31. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -0
  32. package/build/components/global-styles/font-library-modal/context.js +285 -0
  33. package/build/components/global-styles/font-library-modal/context.js.map +1 -0
  34. package/build/components/global-styles/font-library-modal/font-card.js +58 -0
  35. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -0
  36. package/build/components/global-styles/font-library-modal/font-demo.js +69 -0
  37. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -0
  38. package/build/components/global-styles/font-library-modal/font-variant.js +51 -0
  39. package/build/components/global-styles/font-library-modal/font-variant.js.map +1 -0
  40. package/build/components/global-styles/font-library-modal/fonts-grid.js +54 -0
  41. package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -0
  42. package/build/components/global-styles/font-library-modal/index.js +47 -0
  43. package/build/components/global-styles/font-library-modal/index.js.map +1 -0
  44. package/build/components/global-styles/font-library-modal/installed-fonts.js +128 -0
  45. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -0
  46. package/build/components/global-styles/font-library-modal/library-font-card.js +44 -0
  47. package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -0
  48. package/build/components/global-styles/font-library-modal/library-font-details.js +43 -0
  49. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -0
  50. package/build/components/global-styles/font-library-modal/library-font-variant.js +59 -0
  51. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -0
  52. package/build/components/global-styles/font-library-modal/local-fonts.js +143 -0
  53. package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -0
  54. package/build/components/global-styles/font-library-modal/resolvers.js +37 -0
  55. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -0
  56. package/build/components/global-styles/font-library-modal/tab-layout.js +45 -0
  57. package/build/components/global-styles/font-library-modal/tab-layout.js.map +1 -0
  58. package/build/components/global-styles/font-library-modal/utils/constants.js +37 -0
  59. package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -0
  60. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +58 -0
  61. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -0
  62. package/build/components/global-styles/font-library-modal/utils/index.js +205 -0
  63. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -0
  64. package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js +22 -0
  65. package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -0
  66. package/build/components/global-styles/font-library-modal/utils/toggleFont.js +92 -0
  67. package/build/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -0
  68. package/build/components/global-styles/global-styles-provider.js +7 -12
  69. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  70. package/build/components/global-styles/screen-block.js +34 -21
  71. package/build/components/global-styles/screen-block.js.map +1 -1
  72. package/build/components/global-styles/screen-revisions/index.js +1 -3
  73. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  74. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
  75. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  76. package/build/components/global-styles/screen-typography.js +4 -72
  77. package/build/components/global-styles/screen-typography.js.map +1 -1
  78. package/build/components/global-styles/style-variations-container.js +3 -5
  79. package/build/components/global-styles/style-variations-container.js.map +1 -1
  80. package/build/components/global-styles/typogrphy-elements.js +96 -0
  81. package/build/components/global-styles/typogrphy-elements.js.map +1 -0
  82. package/build/components/page-patterns/duplicate-menu-item.js +52 -16
  83. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
  84. package/build/components/page-patterns/grid-item.js +46 -20
  85. package/build/components/page-patterns/grid-item.js.map +1 -1
  86. package/build/components/page-patterns/header.js +3 -7
  87. package/build/components/page-patterns/header.js.map +1 -1
  88. package/build/components/page-patterns/index.js +3 -3
  89. package/build/components/page-patterns/index.js.map +1 -1
  90. package/build/components/page-patterns/patterns-list.js +7 -7
  91. package/build/components/page-patterns/patterns-list.js.map +1 -1
  92. package/build/components/page-patterns/rename-menu-item.js +6 -5
  93. package/build/components/page-patterns/rename-menu-item.js.map +1 -1
  94. package/build/components/page-patterns/search-items.js +8 -2
  95. package/build/components/page-patterns/search-items.js.map +1 -1
  96. package/build/components/page-patterns/use-patterns.js +53 -27
  97. package/build/components/page-patterns/use-patterns.js.map +1 -1
  98. package/build/components/page-patterns/utils.js +1 -20
  99. package/build/components/page-patterns/utils.js.map +1 -1
  100. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +33 -24
  101. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  102. package/build/components/sidebar-edit-mode/page-panels/hooks.js +64 -0
  103. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -0
  104. package/build/components/sidebar-edit-mode/page-panels/index.js +1 -4
  105. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  106. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
  107. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  108. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +56 -0
  109. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -0
  110. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js +91 -0
  111. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -0
  112. package/build/components/sidebar-edit-mode/template-panel/index.js +11 -9
  113. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  114. package/build/components/sidebar-edit-mode/template-panel/last-revision.js +6 -4
  115. package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
  116. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +211 -0
  117. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -0
  118. package/build/components/sidebar-navigation-screen/index.js +6 -4
  119. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  120. package/build/components/sidebar-navigation-screen-details-footer/index.js +32 -4
  121. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  122. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +4 -2
  123. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
  124. package/build/components/sidebar-navigation-screen-global-styles/index.js +4 -31
  125. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  126. package/build/components/sidebar-navigation-screen-page/index.js +3 -3
  127. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  128. package/build/components/sidebar-navigation-screen-pattern/index.js +18 -8
  129. package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  130. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +34 -5
  131. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  132. package/build/components/sidebar-navigation-screen-patterns/index.js +7 -35
  133. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  134. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +38 -4
  135. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  136. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -1
  137. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  138. package/build/components/sidebar-navigation-screen-template/index.js +2 -2
  139. package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
  140. package/build/components/sidebar-navigation-screen-templates/index.js +1 -1
  141. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  142. package/build/components/template-actions/index.js +7 -4
  143. package/build/components/template-actions/index.js.map +1 -1
  144. package/build/components/template-actions/rename-menu-item.js +3 -2
  145. package/build/components/template-actions/rename-menu-item.js.map +1 -1
  146. package/build/components/welcome-guide/styles.js +2 -2
  147. package/build/components/welcome-guide/styles.js.map +1 -1
  148. package/build/hooks/push-changes-to-global-styles/index.js +5 -37
  149. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  150. package/build/store/actions.js +29 -6
  151. package/build/store/actions.js.map +1 -1
  152. package/build/utils/constants.js +45 -2
  153. package/build/utils/constants.js.map +1 -1
  154. package/build/utils/is-template-removable.js +6 -1
  155. package/build/utils/is-template-removable.js.map +1 -1
  156. package/build/utils/is-template-revertable.js +6 -1
  157. package/build/utils/is-template-revertable.js.map +1 -1
  158. package/build-module/components/add-new-pattern/index.js +66 -5
  159. package/build-module/components/add-new-pattern/index.js.map +1 -1
  160. package/build-module/components/add-new-template/index.js +3 -2
  161. package/build-module/components/add-new-template/index.js.map +1 -1
  162. package/build-module/components/add-new-template/new-template.js +6 -1
  163. package/build-module/components/add-new-template/new-template.js.map +1 -1
  164. package/build-module/components/add-new-template/utils.js +6 -1
  165. package/build-module/components/add-new-template/utils.js.map +1 -1
  166. package/build-module/components/app/index.js +2 -7
  167. package/build-module/components/app/index.js.map +1 -1
  168. package/build-module/components/block-editor/back-button.js +3 -2
  169. package/build-module/components/block-editor/back-button.js.map +1 -1
  170. package/build-module/components/block-editor/editor-canvas.js +21 -17
  171. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  172. package/build-module/components/block-editor/site-editor-canvas.js +3 -5
  173. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  174. package/build-module/components/block-editor/use-site-editor-settings.js +8 -4
  175. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  176. package/build-module/components/canvas-loader/index.js +18 -1
  177. package/build-module/components/canvas-loader/index.js.map +1 -1
  178. package/build-module/components/editor/index.js +3 -8
  179. package/build-module/components/editor/index.js.map +1 -1
  180. package/build-module/components/global-styles/dimensions-panel.js +5 -4
  181. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  182. package/build-module/components/global-styles/font-families.js +58 -0
  183. package/build-module/components/global-styles/font-families.js.map +1 -0
  184. package/build-module/components/global-styles/font-family-item.js +40 -0
  185. package/build-module/components/global-styles/font-family-item.js.map +1 -0
  186. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js +23 -0
  187. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -0
  188. package/build-module/components/global-styles/font-library-modal/context.js +276 -0
  189. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -0
  190. package/build-module/components/global-styles/font-library-modal/font-card.js +49 -0
  191. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -0
  192. package/build-module/components/global-styles/font-library-modal/font-demo.js +62 -0
  193. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -0
  194. package/build-module/components/global-styles/font-library-modal/font-variant.js +42 -0
  195. package/build-module/components/global-styles/font-library-modal/font-variant.js.map +1 -0
  196. package/build-module/components/global-styles/font-library-modal/fonts-grid.js +47 -0
  197. package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +1 -0
  198. package/build-module/components/global-styles/font-library-modal/index.js +38 -0
  199. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -0
  200. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +120 -0
  201. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -0
  202. package/build-module/components/global-styles/font-library-modal/library-font-card.js +36 -0
  203. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -0
  204. package/build-module/components/global-styles/font-library-modal/library-font-details.js +34 -0
  205. package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -0
  206. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +50 -0
  207. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -0
  208. package/build-module/components/global-styles/font-library-modal/local-fonts.js +135 -0
  209. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -0
  210. package/build-module/components/global-styles/font-library-modal/resolvers.js +28 -0
  211. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -0
  212. package/build-module/components/global-styles/font-library-modal/tab-layout.js +37 -0
  213. package/build-module/components/global-styles/font-library-modal/tab-layout.js.map +1 -0
  214. package/build-module/components/global-styles/font-library-modal/utils/constants.js +26 -0
  215. package/build-module/components/global-styles/font-library-modal/utils/constants.js.map +1 -0
  216. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +52 -0
  217. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -0
  218. package/build-module/components/global-styles/font-library-modal/utils/index.js +190 -0
  219. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -0
  220. package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js +16 -0
  221. package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -0
  222. package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js +86 -0
  223. package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -0
  224. package/build-module/components/global-styles/global-styles-provider.js +7 -12
  225. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  226. package/build-module/components/global-styles/screen-block.js +34 -21
  227. package/build-module/components/global-styles/screen-block.js.map +1 -1
  228. package/build-module/components/global-styles/screen-revisions/index.js +1 -3
  229. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  230. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
  231. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  232. package/build-module/components/global-styles/screen-typography.js +6 -74
  233. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  234. package/build-module/components/global-styles/style-variations-container.js +3 -5
  235. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  236. package/build-module/components/global-styles/typogrphy-elements.js +87 -0
  237. package/build-module/components/global-styles/typogrphy-elements.js.map +1 -0
  238. package/build-module/components/page-patterns/duplicate-menu-item.js +51 -16
  239. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
  240. package/build-module/components/page-patterns/grid-item.js +47 -21
  241. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  242. package/build-module/components/page-patterns/header.js +3 -7
  243. package/build-module/components/page-patterns/header.js.map +1 -1
  244. package/build-module/components/page-patterns/index.js +3 -3
  245. package/build-module/components/page-patterns/index.js.map +1 -1
  246. package/build-module/components/page-patterns/patterns-list.js +7 -7
  247. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  248. package/build-module/components/page-patterns/rename-menu-item.js +6 -5
  249. package/build-module/components/page-patterns/rename-menu-item.js.map +1 -1
  250. package/build-module/components/page-patterns/search-items.js +8 -2
  251. package/build-module/components/page-patterns/search-items.js.map +1 -1
  252. package/build-module/components/page-patterns/use-patterns.js +54 -28
  253. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  254. package/build-module/components/page-patterns/utils.js +0 -11
  255. package/build-module/components/page-patterns/utils.js.map +1 -1
  256. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +34 -27
  257. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  258. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +54 -0
  259. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -0
  260. package/build-module/components/sidebar-edit-mode/page-panels/index.js +1 -4
  261. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  262. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
  263. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  264. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +49 -0
  265. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -0
  266. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js +85 -0
  267. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -0
  268. package/build-module/components/sidebar-edit-mode/template-panel/index.js +12 -10
  269. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  270. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +8 -6
  271. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
  272. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +202 -0
  273. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -0
  274. package/build-module/components/sidebar-navigation-screen/index.js +6 -4
  275. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  276. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +32 -5
  277. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  278. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +4 -2
  279. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
  280. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +6 -33
  281. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  282. package/build-module/components/sidebar-navigation-screen-page/index.js +3 -3
  283. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  284. package/build-module/components/sidebar-navigation-screen-pattern/index.js +19 -9
  285. package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  286. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +34 -5
  287. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  288. package/build-module/components/sidebar-navigation-screen-patterns/index.js +10 -38
  289. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  290. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +38 -4
  291. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  292. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +3 -2
  293. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  294. package/build-module/components/sidebar-navigation-screen-template/index.js +2 -2
  295. package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
  296. package/build-module/components/sidebar-navigation-screen-templates/index.js +1 -1
  297. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  298. package/build-module/components/template-actions/index.js +7 -4
  299. package/build-module/components/template-actions/index.js.map +1 -1
  300. package/build-module/components/template-actions/rename-menu-item.js +3 -2
  301. package/build-module/components/template-actions/rename-menu-item.js.map +1 -1
  302. package/build-module/components/welcome-guide/styles.js +2 -2
  303. package/build-module/components/welcome-guide/styles.js.map +1 -1
  304. package/build-module/hooks/push-changes-to-global-styles/index.js +5 -37
  305. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  306. package/build-module/store/actions.js +30 -7
  307. package/build-module/store/actions.js.map +1 -1
  308. package/build-module/utils/constants.js +35 -1
  309. package/build-module/utils/constants.js.map +1 -1
  310. package/build-module/utils/is-template-removable.js +6 -1
  311. package/build-module/utils/is-template-removable.js.map +1 -1
  312. package/build-module/utils/is-template-revertable.js +6 -1
  313. package/build-module/utils/is-template-revertable.js.map +1 -1
  314. package/build-style/style-rtl.css +244 -37
  315. package/build-style/style.css +244 -37
  316. package/lib/inflate.js +4082 -0
  317. package/lib/lib-font.browser.js +3831 -0
  318. package/lib/unbrotli.js +2679 -0
  319. package/package.json +40 -40
  320. package/src/components/add-new-pattern/index.js +83 -5
  321. package/src/components/add-new-template/index.js +3 -2
  322. package/src/components/add-new-template/new-template.js +6 -1
  323. package/src/components/add-new-template/utils.js +12 -3
  324. package/src/components/app/index.js +9 -12
  325. package/src/components/block-editor/back-button.js +6 -2
  326. package/src/components/block-editor/editor-canvas.js +31 -19
  327. package/src/components/block-editor/site-editor-canvas.js +2 -10
  328. package/src/components/block-editor/style.scss +88 -1
  329. package/src/components/block-editor/use-site-editor-settings.js +26 -19
  330. package/src/components/canvas-loader/index.js +12 -1
  331. package/src/components/canvas-loader/style.scss +1 -1
  332. package/src/components/editor/index.js +3 -8
  333. package/src/components/global-styles/dimensions-panel.js +8 -4
  334. package/src/components/global-styles/font-families.js +71 -0
  335. package/src/components/global-styles/font-family-item.js +44 -0
  336. package/src/components/global-styles/font-library-modal/confirm-delete-dialog.js +33 -0
  337. package/src/components/global-styles/font-library-modal/context.js +347 -0
  338. package/src/components/global-styles/font-library-modal/font-card.js +70 -0
  339. package/src/components/global-styles/font-library-modal/font-demo.js +57 -0
  340. package/src/components/global-styles/font-library-modal/font-variant.js +53 -0
  341. package/src/components/global-styles/font-library-modal/fonts-grid.js +55 -0
  342. package/src/components/global-styles/font-library-modal/index.js +42 -0
  343. package/src/components/global-styles/font-library-modal/installed-fonts.js +174 -0
  344. package/src/components/global-styles/font-library-modal/library-font-card.js +40 -0
  345. package/src/components/global-styles/font-library-modal/library-font-details.js +46 -0
  346. package/src/components/global-styles/font-library-modal/library-font-variant.js +54 -0
  347. package/src/components/global-styles/font-library-modal/local-fonts.js +160 -0
  348. package/src/components/global-styles/font-library-modal/resolvers.js +29 -0
  349. package/src/components/global-styles/font-library-modal/style.scss +113 -0
  350. package/src/components/global-styles/font-library-modal/tab-layout.js +50 -0
  351. package/src/components/global-styles/font-library-modal/utils/constants.js +31 -0
  352. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +58 -0
  353. package/src/components/global-styles/font-library-modal/utils/index.js +213 -0
  354. package/src/components/global-styles/font-library-modal/utils/make-families-from-faces.js +15 -0
  355. package/src/components/global-styles/font-library-modal/utils/test/getDisplaySrcFromFontFace.spec.js +53 -0
  356. package/src/components/global-styles/font-library-modal/utils/test/getFontFaceVariantName.spec.js +30 -0
  357. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +240 -0
  358. package/src/components/global-styles/font-library-modal/utils/test/getPreviewStyle.spec.js +121 -0
  359. package/src/components/global-styles/font-library-modal/utils/test/isUrlEncoded.spec.js +31 -0
  360. package/src/components/global-styles/font-library-modal/utils/test/makeFamiliesFromFaces.spec.js +57 -0
  361. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamilies.spec.js +62 -0
  362. package/src/components/global-styles/font-library-modal/utils/test/mergeFontFaces.spec.js +56 -0
  363. package/src/components/global-styles/font-library-modal/utils/test/mergeFontFamilies.spec.js +108 -0
  364. package/src/components/global-styles/font-library-modal/utils/test/setUIValuesNeeded.spec.js +41 -0
  365. package/src/components/global-styles/font-library-modal/utils/test/toggleFont.spec.js +141 -0
  366. package/src/components/global-styles/font-library-modal/utils/toggleFont.js +90 -0
  367. package/src/components/global-styles/global-styles-provider.js +2 -7
  368. package/src/components/global-styles/screen-block.js +42 -20
  369. package/src/components/global-styles/screen-revisions/index.js +0 -2
  370. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
  371. package/src/components/global-styles/screen-typography.js +7 -95
  372. package/src/components/global-styles/style-variations-container.js +0 -2
  373. package/src/components/global-styles/typogrphy-elements.js +110 -0
  374. package/src/components/list/style.scss +2 -0
  375. package/src/components/page-patterns/duplicate-menu-item.js +63 -20
  376. package/src/components/page-patterns/grid-item.js +77 -30
  377. package/src/components/page-patterns/header.js +3 -12
  378. package/src/components/page-patterns/index.js +3 -3
  379. package/src/components/page-patterns/patterns-list.js +7 -7
  380. package/src/components/page-patterns/rename-menu-item.js +18 -7
  381. package/src/components/page-patterns/search-items.js +14 -2
  382. package/src/components/page-patterns/style.scss +1 -5
  383. package/src/components/page-patterns/use-patterns.js +67 -33
  384. package/src/components/page-patterns/utils.js +0 -19
  385. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +47 -33
  386. package/src/components/sidebar-edit-mode/page-panels/hooks.js +83 -0
  387. package/src/components/sidebar-edit-mode/page-panels/index.js +0 -4
  388. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +2 -0
  389. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +44 -0
  390. package/src/components/sidebar-edit-mode/page-panels/style.scss +41 -10
  391. package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +82 -0
  392. package/src/components/sidebar-edit-mode/template-panel/index.js +28 -24
  393. package/src/components/sidebar-edit-mode/template-panel/last-revision.js +19 -15
  394. package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +270 -0
  395. package/src/components/sidebar-navigation-screen/index.js +4 -9
  396. package/src/components/sidebar-navigation-screen/style.scss +7 -1
  397. package/src/components/sidebar-navigation-screen-details-footer/index.js +38 -10
  398. package/src/components/sidebar-navigation-screen-details-footer/style.scss +10 -3
  399. package/src/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +2 -0
  400. package/src/components/sidebar-navigation-screen-global-styles/index.js +6 -44
  401. package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +0 -4
  402. package/src/components/sidebar-navigation-screen-page/index.js +3 -3
  403. package/src/components/sidebar-navigation-screen-pattern/index.js +20 -7
  404. package/src/components/sidebar-navigation-screen-pattern/style.scss +0 -3
  405. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +46 -13
  406. package/src/components/sidebar-navigation-screen-patterns/index.js +14 -49
  407. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +48 -6
  408. package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +3 -5
  409. package/src/components/sidebar-navigation-screen-template/index.js +2 -4
  410. package/src/components/sidebar-navigation-screen-templates/index.js +1 -1
  411. package/src/components/template-actions/index.js +14 -8
  412. package/src/components/template-actions/rename-menu-item.js +15 -4
  413. package/src/components/welcome-guide/styles.js +2 -2
  414. package/src/hooks/push-changes-to-global-styles/index.js +6 -49
  415. package/src/store/actions.js +39 -13
  416. package/src/store/test/actions.js +0 -1
  417. package/src/store/test/reducer.js +0 -1
  418. package/src/style.scss +1 -1
  419. package/src/utils/constants.js +38 -3
  420. package/src/utils/is-template-removable.js +8 -1
  421. package/src/utils/is-template-revertable.js +8 -1
  422. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -30
  423. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +0 -1
  424. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -23
  425. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +0 -1
  426. package/src/components/sidebar-navigation-screen-global-styles/style.scss +0 -12
  427. package/src/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -24
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import { setUIValuesNeeded } from '../index';
5
+
6
+ describe( 'setUIValuesNeeded function', () => {
7
+ test( 'Should set name from fontFamily if name is missing', () => {
8
+ const font = { fontFamily: 'Arial' };
9
+ const result = setUIValuesNeeded( font );
10
+ expect( result.name ).toBe( 'Arial' );
11
+ } );
12
+
13
+ test( 'Should set name from slug if name and fontFamily are missing', () => {
14
+ const font = { slug: 'arial-slug' };
15
+ const result = setUIValuesNeeded( font );
16
+ expect( result.name ).toBe( 'arial-slug' );
17
+ } );
18
+
19
+ test( 'Should not overwrite name if it exists', () => {
20
+ const font = { name: 'ExistingName', fontFamily: 'Arial' };
21
+ const result = setUIValuesNeeded( font );
22
+ expect( result.name ).toBe( 'ExistingName' );
23
+ } );
24
+
25
+ test( 'Should merge extra values', () => {
26
+ const font = { name: 'Arial', slug: 'arial' };
27
+ const extraValues = { source: 'custom' };
28
+ const result = setUIValuesNeeded( font, extraValues );
29
+ expect( result ).toEqual( {
30
+ name: 'Arial',
31
+ slug: 'arial',
32
+ source: 'custom',
33
+ } );
34
+ } );
35
+
36
+ test( 'Should return the same object if no conditions met', () => {
37
+ const font = { randomProperty: 'randomValue' };
38
+ const result = setUIValuesNeeded( font );
39
+ expect( result ).toEqual( font );
40
+ } );
41
+ } );
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import { toggleFont } from '../toggleFont';
5
+
6
+ describe( 'toggleFont function', () => {
7
+ const initialCustomFonts = [
8
+ {
9
+ slug: 'font1',
10
+ fontFace: [
11
+ { fontWeight: '400', fontStyle: 'normal' },
12
+ { fontWeight: '700', fontStyle: 'italic' },
13
+ ],
14
+ },
15
+ ];
16
+
17
+ const newFont = { slug: 'font2', fontFace: [] };
18
+
19
+ // Basic Toggles
20
+ describe( 'Basic Toggles', () => {
21
+ it( 'should toggle the entire font family on/off', () => {
22
+ let updatedFonts = toggleFont( newFont, null, initialCustomFonts );
23
+ expect( updatedFonts ).toEqual( [
24
+ ...initialCustomFonts,
25
+ newFont,
26
+ ] );
27
+
28
+ updatedFonts = toggleFont( newFont, null, updatedFonts );
29
+ expect( updatedFonts ).toEqual( initialCustomFonts );
30
+ } );
31
+
32
+ it( 'should toggle a specific font face of an activated font family', () => {
33
+ const face = { fontWeight: '400', fontStyle: 'normal' };
34
+ let updatedFonts = toggleFont(
35
+ initialCustomFonts[ 0 ],
36
+ face,
37
+ initialCustomFonts
38
+ );
39
+ expect( updatedFonts[ 0 ].fontFace ).toEqual( [
40
+ { fontWeight: '700', fontStyle: 'italic' },
41
+ ] );
42
+
43
+ updatedFonts = toggleFont(
44
+ initialCustomFonts[ 0 ],
45
+ face,
46
+ updatedFonts
47
+ );
48
+ expect( updatedFonts[ 0 ].fontFace ).toEqual( [
49
+ { fontWeight: '700', fontStyle: 'italic' },
50
+ { fontWeight: '400', fontStyle: 'normal' },
51
+ ] );
52
+ } );
53
+
54
+ it( 'should toggle a specific font face of a non-activated font family', () => {
55
+ const face = { fontWeight: '500', fontStyle: 'normal' };
56
+ const updatedFonts = toggleFont(
57
+ newFont,
58
+ face,
59
+ initialCustomFonts
60
+ );
61
+ expect( updatedFonts ).toEqual( [
62
+ ...initialCustomFonts,
63
+ { ...newFont, fontFace: [ face ] },
64
+ ] );
65
+ } );
66
+ } );
67
+
68
+ // Edge Cases
69
+ describe( 'Edge Cases', () => {
70
+ it( 'should handle empty initial fonts', () => {
71
+ const updatedFonts = toggleFont( newFont, null, [] );
72
+ expect( updatedFonts ).toEqual( [ newFont ] );
73
+ } );
74
+
75
+ it( 'should deactivate font family when all font faces are deactivated', () => {
76
+ const face1 = { fontWeight: '400', fontStyle: 'normal' };
77
+ const face2 = { fontWeight: '700', fontStyle: 'italic' };
78
+ let updatedFonts = toggleFont(
79
+ initialCustomFonts[ 0 ],
80
+ face1,
81
+ initialCustomFonts
82
+ );
83
+ updatedFonts = toggleFont(
84
+ initialCustomFonts[ 0 ],
85
+ face2,
86
+ updatedFonts
87
+ );
88
+
89
+ expect( updatedFonts ).toEqual( [] );
90
+ } );
91
+
92
+ it( 'should not duplicate an already activated font face', () => {
93
+ const face = { fontWeight: '400', fontStyle: 'normal' };
94
+ const updatedFonts = toggleFont(
95
+ initialCustomFonts[ 0 ],
96
+ face,
97
+ initialCustomFonts
98
+ );
99
+ const furtherUpdatedFonts = toggleFont(
100
+ initialCustomFonts[ 0 ],
101
+ face,
102
+ updatedFonts
103
+ );
104
+
105
+ expect( furtherUpdatedFonts ).toHaveLength( 1 );
106
+ // Sort the font faces by fontWeight to ensure the order is consistent for the toEqual assertion.
107
+ expect(
108
+ furtherUpdatedFonts[ 0 ].fontFace.sort(
109
+ ( a, b ) => a.fontWeight - b.fontWeight
110
+ )
111
+ ).toEqual( initialCustomFonts[ 0 ].fontFace );
112
+ } );
113
+
114
+ it( 'should handle undefined or null fontFace gracefully', () => {
115
+ const fontWithoutFaces = { slug: 'font3' }; // no fontFace defined
116
+ const face = { fontWeight: '500', fontStyle: 'normal' };
117
+ const updatedFonts = toggleFont(
118
+ fontWithoutFaces,
119
+ face,
120
+ initialCustomFonts
121
+ );
122
+ expect( updatedFonts ).toEqual( [
123
+ ...initialCustomFonts,
124
+ { ...fontWithoutFaces, fontFace: [ face ] },
125
+ ] );
126
+ } );
127
+
128
+ it( 'should handle fonts with the same slug but different properties', () => {
129
+ const differentFontWithSameSlug = {
130
+ slug: 'font1',
131
+ displayName: 'Different Font with Same Slug',
132
+ };
133
+ const updatedFonts = toggleFont(
134
+ differentFontWithSameSlug,
135
+ null,
136
+ initialCustomFonts
137
+ );
138
+ expect( updatedFonts ).toEqual( [] );
139
+ } );
140
+ } );
141
+ } );
@@ -0,0 +1,90 @@
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 ) =>
53
+ f.fontWeight === face.fontWeight && f.fontStyle === face.fontStyle;
54
+
55
+ if ( ! activatedFont ) {
56
+ // If the font family is not active, activate the font family with the font variant
57
+ return [ ...initialfonts, { ...font, fontFace: [ face ] } ];
58
+ }
59
+
60
+ let newFontFaces = activatedFont.fontFace || [];
61
+
62
+ if ( newFontFaces.find( isFaceActivated ) ) {
63
+ // If the font variant is active, deactivate it
64
+ newFontFaces = newFontFaces.filter(
65
+ ( f ) => ! isFaceActivated( f )
66
+ );
67
+ } else {
68
+ // If the font variant is not active, activate it
69
+ newFontFaces = [ ...newFontFaces, face ];
70
+ }
71
+
72
+ // If there are no more font faces, deactivate the font family
73
+ if ( newFontFaces.length === 0 ) {
74
+ return initialfonts.filter( ( f ) => ! isFontActivated( f ) );
75
+ }
76
+
77
+ // Return updated fonts list with toggled font variant
78
+ return initialfonts.map( ( f ) =>
79
+ isFontActivated( f ) ? { ...f, fontFace: newFontFaces } : f
80
+ );
81
+ };
82
+
83
+ const activatedFont = getActivatedFont( initialfonts );
84
+
85
+ if ( ! face ) {
86
+ return toggleEntireFontFamily( activatedFont );
87
+ }
88
+
89
+ return toggleFontVariant( activatedFont );
90
+ }
@@ -31,7 +31,7 @@ export function mergeBaseAndUserConfigs( base, user ) {
31
31
  }
32
32
 
33
33
  function useGlobalStylesUserConfig() {
34
- const { globalStylesId, isReady, settings, styles, behaviors } = useSelect(
34
+ const { globalStylesId, isReady, settings, styles } = useSelect(
35
35
  ( select ) => {
36
36
  const { getEditedEntityRecord, hasFinishedResolution } =
37
37
  select( coreStore );
@@ -65,7 +65,6 @@ function useGlobalStylesUserConfig() {
65
65
  isReady: hasResolved,
66
66
  settings: record?.settings,
67
67
  styles: record?.styles,
68
- behaviors: record?.behaviors,
69
68
  };
70
69
  },
71
70
  []
@@ -77,9 +76,8 @@ function useGlobalStylesUserConfig() {
77
76
  return {
78
77
  settings: settings ?? {},
79
78
  styles: styles ?? {},
80
- behaviors: behaviors ?? {},
81
79
  };
82
- }, [ settings, styles, behaviors ] );
80
+ }, [ settings, styles ] );
83
81
 
84
82
  const setConfig = useCallback(
85
83
  ( callback, options = {} ) => {
@@ -91,7 +89,6 @@ function useGlobalStylesUserConfig() {
91
89
  const currentConfig = {
92
90
  styles: record?.styles ?? {},
93
91
  settings: record?.settings ?? {},
94
- behaviors: record?.behaviors ?? {},
95
92
  };
96
93
  const updatedConfig = callback( currentConfig );
97
94
  editEntityRecord(
@@ -101,8 +98,6 @@ function useGlobalStylesUserConfig() {
101
98
  {
102
99
  styles: cleanEmptyObject( updatedConfig.styles ) || {},
103
100
  settings: cleanEmptyObject( updatedConfig.settings ) || {},
104
- behaviors:
105
- cleanEmptyObject( updatedConfig.behaviors ) || {},
106
101
  },
107
102
  options
108
103
  );
@@ -61,21 +61,20 @@ const {
61
61
  useHasDimensionsPanel,
62
62
  useHasTypographyPanel,
63
63
  useHasBorderPanel,
64
- __experimentalUseHasBehaviorsPanel: useHasBehaviorsPanel,
65
64
  useGlobalSetting,
66
65
  useSettingsForBlockElement,
67
66
  useHasColorPanel,
68
67
  useHasEffectsPanel,
69
68
  useHasFiltersPanel,
69
+ useHasImageSettingsPanel,
70
70
  useGlobalStyle,
71
- __experimentalUseGlobalBehaviors: useGlobalBehaviors,
72
- __experimentalBehaviorsPanel: StylesBehaviorsPanel,
73
71
  BorderPanel: StylesBorderPanel,
74
72
  ColorPanel: StylesColorPanel,
75
73
  TypographyPanel: StylesTypographyPanel,
76
74
  DimensionsPanel: StylesDimensionsPanel,
77
75
  EffectsPanel: StylesEffectsPanel,
78
76
  FiltersPanel: StylesFiltersPanel,
77
+ ImageSettingsPanel,
79
78
  AdvancedPanel: StylesAdvancedPanel,
80
79
  } = unlock( blockEditorPrivateApis );
81
80
 
@@ -92,11 +91,9 @@ function ScreenBlock( { name, variation } ) {
92
91
  const [ inheritedStyle, setStyle ] = useGlobalStyle( prefix, name, 'all', {
93
92
  shouldDecodeEncode: false,
94
93
  } );
94
+ const [ userSettings ] = useGlobalSetting( '', name, 'user' );
95
95
  const [ rawSettings, setSettings ] = useGlobalSetting( '', name );
96
96
  const settings = useSettingsForBlockElement( rawSettings, name );
97
- const { inheritedBehaviors, setBehavior } = useGlobalBehaviors( name );
98
- const { behavior } = useGlobalBehaviors( name, 'user' );
99
-
100
97
  const blockType = getBlockType( name );
101
98
 
102
99
  // Only allow `blockGap` support if serialization has not been skipped, to be sure global spacing can be applied.
@@ -115,11 +112,15 @@ function ScreenBlock( { name, variation } ) {
115
112
  const blockVariations = useBlockVariations( name );
116
113
  const hasTypographyPanel = useHasTypographyPanel( settings );
117
114
  const hasColorPanel = useHasColorPanel( settings );
118
- const hasBehaviorsPanel = useHasBehaviorsPanel( rawSettings, name );
119
115
  const hasBorderPanel = useHasBorderPanel( settings );
120
116
  const hasDimensionsPanel = useHasDimensionsPanel( settings );
121
117
  const hasEffectsPanel = useHasEffectsPanel( settings );
122
118
  const hasFiltersPanel = useHasFiltersPanel( settings );
119
+ const hasImageSettingsPanel = useHasImageSettingsPanel(
120
+ name,
121
+ userSettings,
122
+ settings
123
+ );
123
124
  const hasVariationsPanel = !! blockVariations?.length && ! variation;
124
125
  const { canEditCSS } = useSelect( ( select ) => {
125
126
  const { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =
@@ -150,21 +151,42 @@ function ScreenBlock( { name, variation } ) {
150
151
  const styleWithLayout = useMemo( () => {
151
152
  return {
152
153
  ...style,
153
- layout: settings.layout,
154
+ layout: userSettings.layout,
154
155
  };
155
- }, [ style, settings.layout ] );
156
+ }, [ style, userSettings.layout ] );
156
157
  const onChangeDimensions = ( newStyle ) => {
157
158
  const updatedStyle = { ...newStyle };
158
159
  delete updatedStyle.layout;
159
160
  setStyle( updatedStyle );
160
161
 
161
- if ( newStyle.layout !== settings.layout ) {
162
+ if ( newStyle.layout !== userSettings.layout ) {
162
163
  setSettings( {
163
- ...rawSettings,
164
+ ...userSettings,
164
165
  layout: newStyle.layout,
165
166
  } );
166
167
  }
167
168
  };
169
+ const onChangeLightbox = ( newSetting ) => {
170
+ // If the newSetting is undefined, this means that the user has deselected
171
+ // (reset) the lightbox setting.
172
+ if ( newSetting === undefined ) {
173
+ setSettings( {
174
+ ...rawSettings,
175
+ lightbox: undefined,
176
+ } );
177
+
178
+ // Otherwise, we simply set the lightbox setting to the new value but
179
+ // taking care of not overriding the other lightbox settings.
180
+ } else {
181
+ setSettings( {
182
+ ...rawSettings,
183
+ lightbox: {
184
+ ...rawSettings.lightbox,
185
+ ...newSetting,
186
+ },
187
+ } );
188
+ }
189
+ };
168
190
  const onChangeBorders = ( newStyle ) => {
169
191
  if ( ! newStyle?.border ) {
170
192
  setStyle( newStyle );
@@ -272,13 +294,21 @@ function ScreenBlock( { name, variation } ) {
272
294
  includeLayoutControls
273
295
  />
274
296
  ) }
297
+ { hasImageSettingsPanel && (
298
+ <ImageSettingsPanel
299
+ onChange={ onChangeLightbox }
300
+ value={ userSettings }
301
+ inheritedValue={ settings }
302
+ />
303
+ ) }
304
+
275
305
  { canEditCSS && (
276
306
  <PanelBody title={ __( 'Advanced' ) } initialOpen={ false }>
277
307
  <p>
278
308
  { sprintf(
279
309
  // translators: %s: is the name of a block e.g., 'Image' or 'Table'.
280
310
  __(
281
- 'Add your own CSS to customize the appearance of the %s block.'
311
+ '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.'
282
312
  ),
283
313
  blockType?.title
284
314
  ) }
@@ -288,14 +318,6 @@ function ScreenBlock( { name, variation } ) {
288
318
  onChange={ setStyle }
289
319
  inheritedValue={ inheritedStyle }
290
320
  />
291
- { hasBehaviorsPanel && (
292
- <StylesBehaviorsPanel
293
- value={ behavior }
294
- onChange={ setBehavior }
295
- behaviors={ inheritedBehaviors }
296
- blockName={ name }
297
- ></StylesBehaviorsPanel>
298
- ) }
299
321
  </PanelBody>
300
322
  ) }
301
323
  </>
@@ -71,7 +71,6 @@ function ScreenRevisions() {
71
71
  setUserConfig( () => ( {
72
72
  styles: revision?.styles,
73
73
  settings: revision?.settings,
74
- behaviors: revision?.behaviors,
75
74
  } ) );
76
75
  setIsLoadingRevisionWithUnsavedChanges( false );
77
76
  onCloseRevisions();
@@ -81,7 +80,6 @@ function ScreenRevisions() {
81
80
  setGlobalStylesRevision( {
82
81
  styles: revision?.styles || {},
83
82
  settings: revision?.settings || {},
84
- behaviors: revision?.behaviors || {},
85
83
  id: revision?.id,
86
84
  } );
87
85
  setSelectedRevisionId( revision?.id );
@@ -89,7 +89,6 @@ export default function useGlobalStylesRevisions() {
89
89
  id: 'unsaved',
90
90
  styles: userConfig?.styles,
91
91
  settings: userConfig?.settings,
92
- behaviors: userConfig?.behaviors,
93
92
  author: {
94
93
  name: currentUser?.name,
95
94
  avatar_urls: currentUser?.avatar_urls,
@@ -1,79 +1,17 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { __, sprintf } from '@wordpress/i18n';
5
- import {
6
- __experimentalItemGroup as ItemGroup,
7
- __experimentalVStack as VStack,
8
- __experimentalHStack as HStack,
9
- FlexItem,
10
- } from '@wordpress/components';
11
- import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
4
+ import { __ } from '@wordpress/i18n';
5
+ import { __experimentalVStack as VStack } from '@wordpress/components';
12
6
 
13
7
  /**
14
8
  * Internal dependencies
15
9
  */
10
+ import TypographyElements from './typogrphy-elements';
11
+ import FontFamilies from './font-families';
16
12
  import ScreenHeader from './header';
17
- import { NavigationButtonAsItem } from './navigation-button';
18
- import Subtitle from './subtitle';
19
- import { unlock } from '../../lock-unlock';
20
-
21
- const { useGlobalStyle } = unlock( blockEditorPrivateApis );
22
-
23
- function Item( { parentMenu, element, label } ) {
24
- const prefix =
25
- element === 'text' || ! element ? '' : `elements.${ element }.`;
26
- const extraStyles =
27
- element === 'link'
28
- ? {
29
- textDecoration: 'underline',
30
- }
31
- : {};
32
- const [ fontFamily ] = useGlobalStyle( prefix + 'typography.fontFamily' );
33
- const [ fontStyle ] = useGlobalStyle( prefix + 'typography.fontStyle' );
34
- const [ fontWeight ] = useGlobalStyle( prefix + 'typography.fontWeight' );
35
- const [ letterSpacing ] = useGlobalStyle(
36
- prefix + 'typography.letterSpacing'
37
- );
38
- const [ backgroundColor ] = useGlobalStyle( prefix + 'color.background' );
39
- const [ gradientValue ] = useGlobalStyle( prefix + 'color.gradient' );
40
- const [ color ] = useGlobalStyle( prefix + 'color.text' );
41
-
42
- const navigationButtonLabel = sprintf(
43
- // translators: %s: is a subset of Typography, e.g., 'text' or 'links'.
44
- __( 'Typography %s styles' ),
45
- label
46
- );
47
-
48
- return (
49
- <NavigationButtonAsItem
50
- path={ parentMenu + '/typography/' + element }
51
- aria-label={ navigationButtonLabel }
52
- >
53
- <HStack justify="flex-start">
54
- <FlexItem
55
- className="edit-site-global-styles-screen-typography__indicator"
56
- style={ {
57
- fontFamily: fontFamily ?? 'serif',
58
- background: gradientValue ?? backgroundColor,
59
- color,
60
- fontStyle,
61
- fontWeight,
62
- letterSpacing,
63
- ...extraStyles,
64
- } }
65
- >
66
- { __( 'Aa' ) }
67
- </FlexItem>
68
- <FlexItem>{ label }</FlexItem>
69
- </HStack>
70
- </NavigationButtonAsItem>
71
- );
72
- }
73
13
 
74
14
  function ScreenTypography() {
75
- const parentMenu = '';
76
-
77
15
  return (
78
16
  <>
79
17
  <ScreenHeader
@@ -83,35 +21,9 @@ function ScreenTypography() {
83
21
  ) }
84
22
  />
85
23
  <div className="edit-site-global-styles-screen-typography">
86
- <VStack spacing={ 3 }>
87
- <Subtitle level={ 3 }>{ __( 'Elements' ) }</Subtitle>
88
- <ItemGroup isBordered isSeparated>
89
- <Item
90
- parentMenu={ parentMenu }
91
- element="text"
92
- label={ __( 'Text' ) }
93
- />
94
- <Item
95
- parentMenu={ parentMenu }
96
- element="link"
97
- label={ __( 'Links' ) }
98
- />
99
- <Item
100
- parentMenu={ parentMenu }
101
- element="heading"
102
- label={ __( 'Headings' ) }
103
- />
104
- <Item
105
- parentMenu={ parentMenu }
106
- element="caption"
107
- label={ __( 'Captions' ) }
108
- />
109
- <Item
110
- parentMenu={ parentMenu }
111
- element="button"
112
- label={ __( 'Buttons' ) }
113
- />
114
- </ItemGroup>
24
+ <VStack spacing={ 6 }>
25
+ { window.__experimentalFontLibrary && <FontFamilies /> }
26
+ <TypographyElements />
115
27
  </VStack>
116
28
  </div>
117
29
  </>
@@ -113,13 +113,11 @@ export default function StyleVariationsContainer() {
113
113
  title: __( 'Default' ),
114
114
  settings: {},
115
115
  styles: {},
116
- behaviors: {},
117
116
  },
118
117
  ...( variations ?? [] ).map( ( variation ) => ( {
119
118
  ...variation,
120
119
  settings: variation.settings ?? {},
121
120
  styles: variation.styles ?? {},
122
- behaviors: variation.behaviors ?? {},
123
121
  } ) ),
124
122
  ];
125
123
  }, [ variations ] );