@wordpress/edit-site 6.2.0 → 6.4.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 (368) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/add-new-pattern/index.js +8 -2
  3. package/build/components/add-new-pattern/index.js.map +1 -1
  4. package/build/components/{add-new-page → add-new-post}/index.js +21 -17
  5. package/build/components/add-new-post/index.js.map +1 -0
  6. package/build/components/add-new-template/index.js +3 -1
  7. package/build/components/add-new-template/index.js.map +1 -1
  8. package/build/components/block-editor/use-site-editor-settings.js +6 -85
  9. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  10. package/build/components/editor/index.js +21 -3
  11. package/build/components/editor/index.js.map +1 -1
  12. package/build/components/global-styles/background-panel.js +0 -5
  13. package/build/components/global-styles/background-panel.js.map +1 -1
  14. package/build/components/global-styles/block-preview-panel.js +14 -5
  15. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  16. package/build/components/global-styles/font-families.js +42 -23
  17. package/build/components/global-styles/font-families.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/font-collection.js +13 -30
  19. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/index.js +4 -4
  21. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/installed-fonts.js +60 -12
  23. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  24. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +39 -0
  25. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
  26. package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +39 -0
  27. package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
  28. package/build/components/global-styles/font-sizes/font-size-preview.js +44 -0
  29. package/build/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
  30. package/build/components/global-styles/font-sizes/font-size.js +213 -0
  31. package/build/components/global-styles/font-sizes/font-size.js.map +1 -0
  32. package/build/components/global-styles/font-sizes/font-sizes-count.js +50 -0
  33. package/build/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
  34. package/build/components/global-styles/font-sizes/font-sizes.js +163 -0
  35. package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -0
  36. package/build/components/global-styles/font-sizes/rename-font-size-dialog.js +67 -0
  37. package/build/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
  38. package/build/components/global-styles/hooks.js +0 -40
  39. package/build/components/global-styles/hooks.js.map +1 -1
  40. package/build/components/global-styles/preview-typography.js +47 -0
  41. package/build/components/global-styles/preview-typography.js.map +1 -0
  42. package/build/components/global-styles/screen-block.js +17 -1
  43. package/build/components/global-styles/screen-block.js.map +1 -1
  44. package/build/components/global-styles/screen-layout.js +5 -1
  45. package/build/components/global-styles/screen-layout.js.map +1 -1
  46. package/build/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  47. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  48. package/build/components/global-styles/screen-style-variations.js +2 -2
  49. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  50. package/build/components/global-styles/screen-typography.js +3 -2
  51. package/build/components/global-styles/screen-typography.js.map +1 -1
  52. package/build/components/global-styles/shadows-edit-panel.js +1 -2
  53. package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
  54. package/build/components/global-styles/size-control/index.js +85 -0
  55. package/build/components/global-styles/size-control/index.js.map +1 -0
  56. package/build/components/global-styles/style-variations-container.js +8 -5
  57. package/build/components/global-styles/style-variations-container.js.map +1 -1
  58. package/build/components/global-styles/typography-elements.js +0 -2
  59. package/build/components/global-styles/typography-elements.js.map +1 -1
  60. package/build/components/global-styles/ui.js +8 -0
  61. package/build/components/global-styles/ui.js.map +1 -1
  62. package/build/components/global-styles/variations/variation.js +4 -4
  63. package/build/components/global-styles/variations/variation.js.map +1 -1
  64. package/build/components/global-styles/variations/variations-color.js +4 -3
  65. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  66. package/build/components/global-styles/variations/variations-typography.js +15 -29
  67. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  68. package/build/components/global-styles-sidebar/index.js +2 -2
  69. package/build/components/global-styles-sidebar/index.js.map +1 -1
  70. package/build/components/layout/index.js +22 -8
  71. package/build/components/layout/index.js.map +1 -1
  72. package/build/components/layout/router.js +30 -43
  73. package/build/components/layout/router.js.map +1 -1
  74. package/build/components/page-patterns/header.js +1 -1
  75. package/build/components/page-patterns/header.js.map +1 -1
  76. package/build/components/page-patterns/index.js +65 -49
  77. package/build/components/page-patterns/index.js.map +1 -1
  78. package/build/components/page-patterns/search-items.js +29 -4
  79. package/build/components/page-patterns/search-items.js.map +1 -1
  80. package/build/components/page-patterns/use-patterns.js +22 -55
  81. package/build/components/page-patterns/use-patterns.js.map +1 -1
  82. package/build/components/page-templates/index.js +56 -50
  83. package/build/components/page-templates/index.js.map +1 -1
  84. package/build/components/pagination/index.js +4 -4
  85. package/build/components/pagination/index.js.map +1 -1
  86. package/build/components/post-edit/index.js +105 -0
  87. package/build/components/post-edit/index.js.map +1 -0
  88. package/build/components/post-fields/index.js +314 -0
  89. package/build/components/post-fields/index.js.map +1 -0
  90. package/build/components/post-list/index.js +281 -0
  91. package/build/components/post-list/index.js.map +1 -0
  92. package/build/components/posts-app/index.js +11 -17
  93. package/build/components/posts-app/index.js.map +1 -1
  94. package/build/components/posts-app/router.js +85 -0
  95. package/build/components/posts-app/router.js.map +1 -0
  96. package/build/components/revisions/index.js +10 -7
  97. package/build/components/revisions/index.js.map +1 -1
  98. package/build/components/save-panel/index.js +1 -1
  99. package/build/components/save-panel/index.js.map +1 -1
  100. package/build/components/sidebar-dataviews/add-new-view.js +4 -1
  101. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  102. package/build/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
  103. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  104. package/build/components/sidebar-dataviews/default-views.js +119 -93
  105. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  106. package/build/components/sidebar-dataviews/index.js +44 -2
  107. package/build/components/sidebar-dataviews/index.js.map +1 -1
  108. package/build/components/sidebar-navigation-screen-global-styles/content.js +64 -0
  109. package/build/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
  110. package/build/components/sidebar-navigation-screen-global-styles/index.js +2 -47
  111. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  112. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +3 -2
  113. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  114. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +3 -2
  115. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  116. package/build/components/site-hub/index.js +81 -1
  117. package/build/components/site-hub/index.js.map +1 -1
  118. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -1
  119. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  120. package/build/hooks/push-changes-to-global-styles/index.js +2 -2
  121. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  122. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +65 -42
  123. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  124. package/build/index.js +10 -0
  125. package/build/index.js.map +1 -1
  126. package/build/posts.js +57 -2
  127. package/build/posts.js.map +1 -1
  128. package/build/store/private-actions.js +7 -2
  129. package/build/store/private-actions.js.map +1 -1
  130. package/build/store/selectors.js +34 -6
  131. package/build/store/selectors.js.map +1 -1
  132. package/build/utils/get-filtered-template-parts.js +64 -0
  133. package/build/utils/get-filtered-template-parts.js.map +1 -0
  134. package/build-module/components/add-new-pattern/index.js +8 -2
  135. package/build-module/components/add-new-pattern/index.js.map +1 -1
  136. package/build-module/components/{add-new-page → add-new-post}/index.js +21 -17
  137. package/build-module/components/add-new-post/index.js.map +1 -0
  138. package/build-module/components/add-new-template/index.js +3 -1
  139. package/build-module/components/add-new-template/index.js.map +1 -1
  140. package/build-module/components/block-editor/use-site-editor-settings.js +6 -85
  141. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  142. package/build-module/components/editor/index.js +21 -3
  143. package/build-module/components/editor/index.js.map +1 -1
  144. package/build-module/components/global-styles/background-panel.js +0 -5
  145. package/build-module/components/global-styles/background-panel.js.map +1 -1
  146. package/build-module/components/global-styles/block-preview-panel.js +14 -5
  147. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  148. package/build-module/components/global-styles/font-families.js +44 -25
  149. package/build-module/components/global-styles/font-families.js.map +1 -1
  150. package/build-module/components/global-styles/font-library-modal/font-collection.js +14 -31
  151. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  152. package/build-module/components/global-styles/font-library-modal/index.js +4 -4
  153. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  154. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +63 -15
  155. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  156. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +32 -0
  157. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
  158. package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +32 -0
  159. package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
  160. package/build-module/components/global-styles/font-sizes/font-size-preview.js +37 -0
  161. package/build-module/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
  162. package/build-module/components/global-styles/font-sizes/font-size.js +207 -0
  163. package/build-module/components/global-styles/font-sizes/font-size.js.map +1 -0
  164. package/build-module/components/global-styles/font-sizes/font-sizes-count.js +43 -0
  165. package/build-module/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
  166. package/build-module/components/global-styles/font-sizes/font-sizes.js +157 -0
  167. package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -0
  168. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js +61 -0
  169. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
  170. package/build-module/components/global-styles/hooks.js +0 -38
  171. package/build-module/components/global-styles/hooks.js.map +1 -1
  172. package/build-module/components/global-styles/preview-typography.js +39 -0
  173. package/build-module/components/global-styles/preview-typography.js.map +1 -0
  174. package/build-module/components/global-styles/screen-block.js +18 -1
  175. package/build-module/components/global-styles/screen-block.js.map +1 -1
  176. package/build-module/components/global-styles/screen-layout.js +5 -1
  177. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  178. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  179. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  180. package/build-module/components/global-styles/screen-style-variations.js +2 -2
  181. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  182. package/build-module/components/global-styles/screen-typography.js +3 -2
  183. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  184. package/build-module/components/global-styles/shadows-edit-panel.js +1 -2
  185. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
  186. package/build-module/components/global-styles/size-control/index.js +79 -0
  187. package/build-module/components/global-styles/size-control/index.js.map +1 -0
  188. package/build-module/components/global-styles/style-variations-container.js +9 -6
  189. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  190. package/build-module/components/global-styles/typography-elements.js +0 -2
  191. package/build-module/components/global-styles/typography-elements.js.map +1 -1
  192. package/build-module/components/global-styles/ui.js +8 -0
  193. package/build-module/components/global-styles/ui.js.map +1 -1
  194. package/build-module/components/global-styles/variations/variation.js +5 -5
  195. package/build-module/components/global-styles/variations/variation.js.map +1 -1
  196. package/build-module/components/global-styles/variations/variations-color.js +5 -4
  197. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  198. package/build-module/components/global-styles/variations/variations-typography.js +16 -30
  199. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  200. package/build-module/components/global-styles-sidebar/index.js +2 -2
  201. package/build-module/components/global-styles-sidebar/index.js.map +1 -1
  202. package/build-module/components/layout/index.js +20 -8
  203. package/build-module/components/layout/index.js.map +1 -1
  204. package/build-module/components/layout/router.js +30 -43
  205. package/build-module/components/layout/router.js.map +1 -1
  206. package/build-module/components/page-patterns/header.js +1 -1
  207. package/build-module/components/page-patterns/header.js.map +1 -1
  208. package/build-module/components/page-patterns/index.js +66 -50
  209. package/build-module/components/page-patterns/index.js.map +1 -1
  210. package/build-module/components/page-patterns/search-items.js +28 -4
  211. package/build-module/components/page-patterns/search-items.js.map +1 -1
  212. package/build-module/components/page-patterns/use-patterns.js +23 -56
  213. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  214. package/build-module/components/page-templates/index.js +58 -53
  215. package/build-module/components/page-templates/index.js.map +1 -1
  216. package/build-module/components/pagination/index.js +4 -4
  217. package/build-module/components/pagination/index.js.map +1 -1
  218. package/build-module/components/post-edit/index.js +98 -0
  219. package/build-module/components/post-edit/index.js.map +1 -0
  220. package/build-module/components/post-fields/index.js +306 -0
  221. package/build-module/components/post-fields/index.js.map +1 -0
  222. package/build-module/components/post-list/index.js +275 -0
  223. package/build-module/components/post-list/index.js.map +1 -0
  224. package/build-module/components/posts-app/index.js +11 -17
  225. package/build-module/components/posts-app/index.js.map +1 -1
  226. package/build-module/components/posts-app/router.js +77 -0
  227. package/build-module/components/posts-app/router.js.map +1 -0
  228. package/build-module/components/revisions/index.js +10 -7
  229. package/build-module/components/revisions/index.js.map +1 -1
  230. package/build-module/components/save-panel/index.js +1 -1
  231. package/build-module/components/save-panel/index.js.map +1 -1
  232. package/build-module/components/sidebar-dataviews/add-new-view.js +4 -1
  233. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  234. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
  235. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  236. package/build-module/components/sidebar-dataviews/default-views.js +117 -92
  237. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  238. package/build-module/components/sidebar-dataviews/index.js +47 -5
  239. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  240. package/build-module/components/sidebar-navigation-screen-global-styles/content.js +57 -0
  241. package/build-module/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
  242. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +2 -47
  243. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  244. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +3 -2
  245. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  246. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +3 -2
  247. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  248. package/build-module/components/site-hub/index.js +81 -1
  249. package/build-module/components/site-hub/index.js.map +1 -1
  250. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -1
  251. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  252. package/build-module/hooks/push-changes-to-global-styles/index.js +2 -2
  253. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  254. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +61 -38
  255. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  256. package/build-module/index.js +11 -2
  257. package/build-module/index.js.map +1 -1
  258. package/build-module/posts.js +57 -2
  259. package/build-module/posts.js.map +1 -1
  260. package/build-module/store/private-actions.js +7 -2
  261. package/build-module/store/private-actions.js.map +1 -1
  262. package/build-module/store/selectors.js +35 -7
  263. package/build-module/store/selectors.js.map +1 -1
  264. package/build-module/utils/get-filtered-template-parts.js +57 -0
  265. package/build-module/utils/get-filtered-template-parts.js.map +1 -0
  266. package/build-style/posts-rtl.css +668 -510
  267. package/build-style/posts.css +668 -510
  268. package/build-style/style-rtl.css +772 -702
  269. package/build-style/style.css +772 -702
  270. package/package.json +41 -41
  271. package/src/components/add-new-pattern/index.js +8 -2
  272. package/src/components/{add-new-page → add-new-post}/index.js +28 -22
  273. package/src/components/add-new-template/index.js +4 -1
  274. package/src/components/add-new-template/style.scss +4 -6
  275. package/src/components/block-editor/use-site-editor-settings.js +10 -101
  276. package/src/components/editor/index.js +21 -5
  277. package/src/components/global-styles/background-panel.js +0 -8
  278. package/src/components/global-styles/block-preview-panel.js +22 -9
  279. package/src/components/global-styles/font-families.js +66 -31
  280. package/src/components/global-styles/font-library-modal/font-collection.js +17 -32
  281. package/src/components/global-styles/font-library-modal/index.js +4 -2
  282. package/src/components/global-styles/font-library-modal/installed-fonts.js +94 -13
  283. package/src/components/global-styles/font-library-modal/style.scss +26 -10
  284. package/src/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +43 -0
  285. package/src/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +37 -0
  286. package/src/components/global-styles/font-sizes/font-size-preview.js +43 -0
  287. package/src/components/global-styles/font-sizes/font-size.js +250 -0
  288. package/src/components/global-styles/font-sizes/font-sizes-count.js +40 -0
  289. package/src/components/global-styles/font-sizes/font-sizes.js +263 -0
  290. package/src/components/global-styles/font-sizes/rename-font-size-dialog.js +70 -0
  291. package/src/components/global-styles/hooks.js +0 -41
  292. package/src/components/global-styles/preview-typography.js +39 -0
  293. package/src/components/global-styles/screen-block.js +20 -0
  294. package/src/components/global-styles/screen-layout.js +5 -1
  295. package/src/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  296. package/src/components/global-styles/screen-style-variations.js +2 -2
  297. package/src/components/global-styles/screen-typography.js +3 -2
  298. package/src/components/global-styles/shadows-edit-panel.js +1 -2
  299. package/src/components/global-styles/size-control/index.js +86 -0
  300. package/src/components/global-styles/style-variations-container.js +14 -7
  301. package/src/components/global-styles/style.scss +13 -3
  302. package/src/components/global-styles/typography-elements.js +0 -4
  303. package/src/components/global-styles/ui.js +10 -0
  304. package/src/components/global-styles/variations/variation.js +5 -5
  305. package/src/components/global-styles/variations/variations-color.js +6 -4
  306. package/src/components/global-styles/variations/variations-typography.js +15 -33
  307. package/src/components/global-styles-sidebar/index.js +2 -2
  308. package/src/components/layout/index.js +24 -4
  309. package/src/components/layout/router.js +29 -37
  310. package/src/components/layout/style.scss +38 -8
  311. package/src/components/page-patterns/header.js +1 -1
  312. package/src/components/page-patterns/index.js +62 -64
  313. package/src/components/page-patterns/search-items.js +37 -3
  314. package/src/components/page-patterns/style.scss +1 -8
  315. package/src/components/page-patterns/use-patterns.js +43 -82
  316. package/src/components/page-templates/index.js +67 -64
  317. package/src/components/page-templates/style.scss +6 -9
  318. package/src/components/pagination/index.js +4 -4
  319. package/src/components/post-edit/index.js +96 -0
  320. package/src/components/post-edit/style.scss +9 -0
  321. package/src/components/post-fields/index.js +345 -0
  322. package/src/components/post-list/index.js +326 -0
  323. package/src/components/{page-pages → post-list}/style.scss +25 -8
  324. package/src/components/posts-app/index.js +9 -11
  325. package/src/components/posts-app/router.js +69 -0
  326. package/src/components/revisions/index.js +9 -1
  327. package/src/components/save-panel/index.js +1 -1
  328. package/src/components/sidebar/style.scss +6 -0
  329. package/src/components/sidebar-dataviews/add-new-view.js +2 -1
  330. package/src/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
  331. package/src/components/sidebar-dataviews/default-views.js +131 -106
  332. package/src/components/sidebar-dataviews/index.js +39 -4
  333. package/src/components/sidebar-navigation-screen-global-styles/content.js +55 -0
  334. package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -54
  335. package/src/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +2 -1
  336. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +10 -2
  337. package/src/components/site-hub/index.js +84 -1
  338. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -2
  339. package/src/hooks/push-changes-to-global-styles/index.js +2 -2
  340. package/src/hooks/use-theme-style-variations/test/use-theme-style-variations-by-property.js +28 -24
  341. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +72 -47
  342. package/src/index.js +14 -1
  343. package/src/posts.js +63 -2
  344. package/src/posts.scss +9 -0
  345. package/src/store/private-actions.js +7 -3
  346. package/src/store/selectors.js +53 -14
  347. package/src/store/test/selectors.js +1 -26
  348. package/src/style.scss +2 -2
  349. package/src/utils/get-filtered-template-parts.js +61 -0
  350. package/src/utils/test/get-filtered-template-parts.js +127 -0
  351. package/build/components/add-new-page/index.js.map +0 -1
  352. package/build/components/global-styles/screen-background.js +0 -36
  353. package/build/components/global-styles/screen-background.js.map +0 -1
  354. package/build/components/page-pages/index.js +0 -473
  355. package/build/components/page-pages/index.js.map +0 -1
  356. package/build/components/table/index.js +0 -35
  357. package/build/components/table/index.js.map +0 -1
  358. package/build-module/components/add-new-page/index.js.map +0 -1
  359. package/build-module/components/global-styles/screen-background.js +0 -30
  360. package/build-module/components/global-styles/screen-background.js.map +0 -1
  361. package/build-module/components/page-pages/index.js +0 -465
  362. package/build-module/components/page-pages/index.js.map +0 -1
  363. package/build-module/components/table/index.js +0 -30
  364. package/build-module/components/table/index.js.map +0 -1
  365. package/src/components/global-styles/screen-background.js +0 -29
  366. package/src/components/page-pages/index.js +0 -564
  367. package/src/components/table/index.js +0 -33
  368. package/src/components/table/style.scss +0 -38
@@ -0,0 +1,250 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
5
+ import { __, sprintf } from '@wordpress/i18n';
6
+ import {
7
+ __experimentalSpacer as Spacer,
8
+ __experimentalUseNavigator as useNavigator,
9
+ __experimentalView as View,
10
+ __experimentalHStack as HStack,
11
+ __experimentalVStack as VStack,
12
+ privateApis as componentsPrivateApis,
13
+ Button,
14
+ FlexItem,
15
+ ToggleControl,
16
+ } from '@wordpress/components';
17
+ import { moreVertical } from '@wordpress/icons';
18
+ import { useState } from '@wordpress/element';
19
+
20
+ /**
21
+ * Internal dependencies
22
+ */
23
+ import { unlock } from '../../../lock-unlock';
24
+ const {
25
+ DropdownMenuV2: DropdownMenu,
26
+ DropdownMenuItemV2: DropdownMenuItem,
27
+ DropdownMenuItemLabelV2: DropdownMenuItemLabel,
28
+ } = unlock( componentsPrivateApis );
29
+ const { useGlobalSetting } = unlock( blockEditorPrivateApis );
30
+ import ScreenHeader from '../header';
31
+ import FontSizePreview from './font-size-preview';
32
+ import ConfirmDeleteFontSizeDialog from './confirm-delete-font-size-dialog';
33
+ import RenameFontSizeDialog from './rename-font-size-dialog';
34
+ import SizeControl from '../size-control';
35
+
36
+ function FontSize() {
37
+ const [ isDeleteConfirmOpen, setIsDeleteConfirmOpen ] = useState( false );
38
+ const [ isRenameDialogOpen, setIsRenameDialogOpen ] = useState( false );
39
+
40
+ const {
41
+ params: { origin, slug },
42
+ goBack,
43
+ goTo,
44
+ } = useNavigator();
45
+
46
+ const [ fontSizes, setFontSizes ] = useGlobalSetting(
47
+ 'typography.fontSizes'
48
+ );
49
+
50
+ // Get the font sizes from the origin, default to empty array.
51
+ const sizes = fontSizes[ origin ] ?? [];
52
+
53
+ // Get the font size by slug.
54
+ const fontSize = sizes.find( ( size ) => size.slug === slug );
55
+
56
+ // Whether fluid is true or an object, set it to true, otherwise false.
57
+ const isFluid = !! fontSize.fluid ?? false;
58
+
59
+ // Whether custom fluid values are used.
60
+ const isCustomFluid = typeof fontSize.fluid === 'object';
61
+
62
+ const handleNameChange = ( value ) => {
63
+ updateFontSize( 'name', value );
64
+ };
65
+
66
+ const handleFontSizeChange = ( value ) => {
67
+ updateFontSize( 'size', value );
68
+ };
69
+
70
+ const handleFluidChange = ( value ) => {
71
+ updateFontSize( 'fluid', value );
72
+ };
73
+
74
+ const handleCustomFluidValues = ( value ) => {
75
+ if ( value ) {
76
+ // If custom values are used, init the values with the current ones.
77
+ updateFontSize( 'fluid', {
78
+ min: fontSize.size,
79
+ max: fontSize.size,
80
+ } );
81
+ } else {
82
+ // If custom fluid values are disabled, set fluid to true.
83
+ updateFontSize( 'fluid', true );
84
+ }
85
+ };
86
+
87
+ const handleMinChange = ( value ) => {
88
+ updateFontSize( 'fluid', { ...fontSize.fluid, min: value } );
89
+ };
90
+
91
+ const handleMaxChange = ( value ) => {
92
+ updateFontSize( 'fluid', { ...fontSize.fluid, max: value } );
93
+ };
94
+
95
+ const updateFontSize = ( key, value ) => {
96
+ const newFontSizes = sizes.map( ( size ) => {
97
+ if ( size.slug === slug ) {
98
+ return { ...size, [ key ]: value }; // Create a new object with updated key
99
+ }
100
+ return size;
101
+ } );
102
+
103
+ setFontSizes( {
104
+ ...fontSizes,
105
+ [ origin ]: newFontSizes,
106
+ } );
107
+ };
108
+
109
+ const handleRemoveFontSize = () => {
110
+ // Navigate to the font sizes list.
111
+ goBack();
112
+
113
+ const newFontSizes = sizes.filter( ( size ) => size.slug !== slug );
114
+ setFontSizes( {
115
+ ...fontSizes,
116
+ [ origin ]: newFontSizes,
117
+ } );
118
+ };
119
+
120
+ const toggleDeleteConfirm = () => {
121
+ setIsDeleteConfirmOpen( ! isDeleteConfirmOpen );
122
+ };
123
+
124
+ const toggleRenameDialog = () => {
125
+ setIsRenameDialogOpen( ! isRenameDialogOpen );
126
+ };
127
+
128
+ return (
129
+ <>
130
+ <ConfirmDeleteFontSizeDialog
131
+ fontSize={ fontSize }
132
+ isOpen={ isDeleteConfirmOpen }
133
+ toggleOpen={ toggleDeleteConfirm }
134
+ handleRemoveFontSize={ handleRemoveFontSize }
135
+ />
136
+
137
+ { isRenameDialogOpen && (
138
+ <RenameFontSizeDialog
139
+ fontSize={ fontSize }
140
+ toggleOpen={ toggleRenameDialog }
141
+ handleRename={ handleNameChange }
142
+ />
143
+ ) }
144
+
145
+ <VStack spacing={ 4 }>
146
+ <HStack justify="space-between" align="flex-start">
147
+ <ScreenHeader
148
+ title={ fontSize.name }
149
+ description={ sprintf(
150
+ /* translators: %s: font size preset name. */
151
+ __( 'Manage the font size %s.' ),
152
+ fontSize.name
153
+ ) }
154
+ onBack={ () => goTo( '/typography/font-sizes/' ) }
155
+ />
156
+ { origin === 'custom' && (
157
+ <FlexItem>
158
+ <Spacer
159
+ marginTop={ 3 }
160
+ marginBottom={ 0 }
161
+ paddingX={ 4 }
162
+ >
163
+ <DropdownMenu
164
+ trigger={
165
+ <Button
166
+ size="small"
167
+ icon={ moreVertical }
168
+ label={ __( 'Font size options' ) }
169
+ />
170
+ }
171
+ >
172
+ <DropdownMenuItem
173
+ onClick={ toggleRenameDialog }
174
+ >
175
+ <DropdownMenuItemLabel>
176
+ { __( 'Rename' ) }
177
+ </DropdownMenuItemLabel>
178
+ </DropdownMenuItem>
179
+ <DropdownMenuItem
180
+ onClick={ toggleDeleteConfirm }
181
+ >
182
+ <DropdownMenuItemLabel>
183
+ { __( 'Delete' ) }
184
+ </DropdownMenuItemLabel>
185
+ </DropdownMenuItem>
186
+ </DropdownMenu>
187
+ </Spacer>
188
+ </FlexItem>
189
+ ) }
190
+ </HStack>
191
+
192
+ <View>
193
+ <Spacer paddingX={ 4 }>
194
+ <VStack spacing={ 4 }>
195
+ <FlexItem>
196
+ <FontSizePreview fontSize={ fontSize } />
197
+ </FlexItem>
198
+
199
+ <SizeControl
200
+ label={ __( 'Size' ) }
201
+ value={ ! isCustomFluid ? fontSize.size : '' }
202
+ onChange={ handleFontSizeChange }
203
+ disabled={ isCustomFluid }
204
+ />
205
+
206
+ <ToggleControl
207
+ label={ __( 'Fluid typography' ) }
208
+ help={ __(
209
+ 'Scale the font size dynamically to fit the screen or viewport.'
210
+ ) }
211
+ checked={ isFluid }
212
+ onChange={ handleFluidChange }
213
+ __nextHasNoMarginBottom
214
+ />
215
+
216
+ { isFluid && (
217
+ <ToggleControl
218
+ label={ __( 'Custom fluid values' ) }
219
+ help={ __(
220
+ 'Set custom min and max values for the fluid font size.'
221
+ ) }
222
+ checked={ isCustomFluid }
223
+ onChange={ handleCustomFluidValues }
224
+ __nextHasNoMarginBottom
225
+ />
226
+ ) }
227
+
228
+ { isCustomFluid && (
229
+ <>
230
+ <SizeControl
231
+ label={ __( 'Minimum' ) }
232
+ value={ fontSize.fluid?.min }
233
+ onChange={ handleMinChange }
234
+ />
235
+ <SizeControl
236
+ label={ __( 'Maximum' ) }
237
+ value={ fontSize.fluid?.max }
238
+ onChange={ handleMaxChange }
239
+ />
240
+ </>
241
+ ) }
242
+ </VStack>
243
+ </Spacer>
244
+ </View>
245
+ </VStack>
246
+ </>
247
+ );
248
+ }
249
+
250
+ export default FontSize;
@@ -0,0 +1,40 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __, isRTL } 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 { Icon, chevronLeft, chevronRight } from '@wordpress/icons';
12
+
13
+ /**
14
+ * Internal dependencies
15
+ */
16
+ import Subtitle from '../subtitle';
17
+ import { NavigationButtonAsItem } from '../navigation-button';
18
+
19
+ function FontSizes() {
20
+ return (
21
+ <VStack spacing={ 2 }>
22
+ <HStack justify="space-between">
23
+ <Subtitle level={ 3 }>{ __( 'Font Sizes' ) }</Subtitle>
24
+ </HStack>
25
+ <ItemGroup isBordered isSeparated>
26
+ <NavigationButtonAsItem
27
+ path="/typography/font-sizes/"
28
+ aria-label={ __( 'Edit font size presets' ) }
29
+ >
30
+ <HStack direction="row">
31
+ <FlexItem>{ __( 'Font size presets' ) }</FlexItem>
32
+ <Icon icon={ isRTL() ? chevronLeft : chevronRight } />
33
+ </HStack>
34
+ </NavigationButtonAsItem>
35
+ </ItemGroup>
36
+ </VStack>
37
+ );
38
+ }
39
+
40
+ export default FontSizes;
@@ -0,0 +1,263 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
5
+ import { __, sprintf, isRTL } from '@wordpress/i18n';
6
+ import {
7
+ privateApis as componentsPrivateApis,
8
+ __experimentalSpacer as Spacer,
9
+ __experimentalView as View,
10
+ __experimentalItemGroup as ItemGroup,
11
+ __experimentalVStack as VStack,
12
+ __experimentalHStack as HStack,
13
+ FlexItem,
14
+ FlexBlock,
15
+ Button,
16
+ } from '@wordpress/components';
17
+ import {
18
+ Icon,
19
+ plus,
20
+ moreVertical,
21
+ chevronLeft,
22
+ chevronRight,
23
+ } from '@wordpress/icons';
24
+ import { useState } from '@wordpress/element';
25
+
26
+ /**
27
+ * Internal dependencies
28
+ */
29
+ import { unlock } from '../../../lock-unlock';
30
+ const {
31
+ DropdownMenuV2: DropdownMenu,
32
+ DropdownMenuItemV2: DropdownMenuItem,
33
+ DropdownMenuItemLabelV2: DropdownMenuItemLabel,
34
+ } = unlock( componentsPrivateApis );
35
+ const { useGlobalSetting } = unlock( blockEditorPrivateApis );
36
+ import Subtitle from '../subtitle';
37
+ import { NavigationButtonAsItem } from '../navigation-button';
38
+ import { getNewIndexFromPresets } from '../utils';
39
+ import ScreenHeader from '../header';
40
+ import ConfirmResetFontSizesDialog from './confirm-reset-font-sizes-dialog';
41
+
42
+ function FontSizeGroup( {
43
+ label,
44
+ origin,
45
+ sizes,
46
+ handleAddFontSize,
47
+ handleResetFontSizes,
48
+ } ) {
49
+ const [ isResetDialogOpen, setIsResetDialogOpen ] = useState( false );
50
+
51
+ const toggleResetDialog = () => setIsResetDialogOpen( ! isResetDialogOpen );
52
+
53
+ const resetDialogText =
54
+ origin === 'custom'
55
+ ? __(
56
+ 'Are you sure you want to remove all custom font size presets?'
57
+ )
58
+ : __(
59
+ 'Are you sure you want to reset all font size presets to their default values?'
60
+ );
61
+
62
+ return (
63
+ <>
64
+ { isResetDialogOpen && (
65
+ <ConfirmResetFontSizesDialog
66
+ text={ resetDialogText }
67
+ confirmButtonText={
68
+ origin === 'custom' ? __( 'Remove' ) : __( 'Reset' )
69
+ }
70
+ isOpen={ isResetDialogOpen }
71
+ toggleOpen={ toggleResetDialog }
72
+ onConfirm={ handleResetFontSizes }
73
+ />
74
+ ) }
75
+ <VStack spacing={ 4 }>
76
+ <HStack justify="space-between" align="center">
77
+ <Subtitle level={ 3 }>{ label }</Subtitle>
78
+ <FlexItem>
79
+ { origin === 'custom' && (
80
+ <Button
81
+ label={ __( 'Add font size' ) }
82
+ icon={ plus }
83
+ size="small"
84
+ onClick={ handleAddFontSize }
85
+ />
86
+ ) }
87
+ { !! handleResetFontSizes && (
88
+ <DropdownMenu
89
+ trigger={
90
+ <Button
91
+ size="small"
92
+ icon={ moreVertical }
93
+ label={ __(
94
+ 'Font size presets options'
95
+ ) }
96
+ />
97
+ }
98
+ >
99
+ <DropdownMenuItem onClick={ toggleResetDialog }>
100
+ <DropdownMenuItemLabel>
101
+ { origin === 'custom'
102
+ ? __( 'Remove font size presets' )
103
+ : __( 'Reset font size presets' ) }
104
+ </DropdownMenuItemLabel>
105
+ </DropdownMenuItem>
106
+ </DropdownMenu>
107
+ ) }
108
+ </FlexItem>
109
+ </HStack>
110
+
111
+ { !! sizes.length && (
112
+ <ItemGroup isBordered isSeparated>
113
+ { sizes.map( ( size ) => (
114
+ <NavigationButtonAsItem
115
+ key={ size.slug }
116
+ path={ `/typography/font-sizes/${ origin }/${ size.slug }` }
117
+ >
118
+ <HStack direction="row">
119
+ <FlexItem className="edit-site-font-size__item">
120
+ { size.name }
121
+ </FlexItem>
122
+ <FlexItem>
123
+ <HStack justify="flex-end">
124
+ <FlexBlock className="edit-site-font-size__item edit-site-font-size__item-value">
125
+ { size.size }
126
+ </FlexBlock>
127
+ <Icon
128
+ icon={
129
+ isRTL()
130
+ ? chevronLeft
131
+ : chevronRight
132
+ }
133
+ />
134
+ </HStack>
135
+ </FlexItem>
136
+ </HStack>
137
+ </NavigationButtonAsItem>
138
+ ) ) }
139
+ </ItemGroup>
140
+ ) }
141
+ </VStack>
142
+ </>
143
+ );
144
+ }
145
+
146
+ function FontSizes() {
147
+ const [ themeFontSizes, setThemeFontSizes ] = useGlobalSetting(
148
+ 'typography.fontSizes.theme'
149
+ );
150
+
151
+ const [ baseThemeFontSizes ] = useGlobalSetting(
152
+ 'typography.fontSizes.theme',
153
+ null,
154
+ 'base'
155
+ );
156
+ const [ defaultFontSizes, setDefaultFontSizes ] = useGlobalSetting(
157
+ 'typography.fontSizes.default'
158
+ );
159
+
160
+ const [ baseDefaultFontSizes ] = useGlobalSetting(
161
+ 'typography.fontSizes.default',
162
+ null,
163
+ 'base'
164
+ );
165
+
166
+ const [ customFontSizes = [], setCustomFontSizes ] = useGlobalSetting(
167
+ 'typography.fontSizes.custom'
168
+ );
169
+
170
+ const [ defaultFontSizesEnabled ] = useGlobalSetting(
171
+ 'typography.defaultFontSizes'
172
+ );
173
+
174
+ const handleAddFontSize = () => {
175
+ const index = getNewIndexFromPresets( customFontSizes, 'custom-' );
176
+ const newFontSize = {
177
+ /* translators: %d: font size index */
178
+ name: sprintf( __( 'New Font Size %d' ), index ),
179
+ size: '16px',
180
+ slug: `custom-${ index }`,
181
+ };
182
+
183
+ setCustomFontSizes( [ ...customFontSizes, newFontSize ] );
184
+ };
185
+
186
+ const hasSameSizeValues = ( arr1, arr2 ) =>
187
+ arr1.map( ( item ) => item.size ).join( '' ) ===
188
+ arr2.map( ( item ) => item.size ).join( '' );
189
+
190
+ return (
191
+ <VStack spacing={ 2 }>
192
+ <ScreenHeader
193
+ title={ __( 'Font size presets' ) }
194
+ description={ __(
195
+ 'Create and edit the presets used for font sizes across the site.'
196
+ ) }
197
+ />
198
+
199
+ <View>
200
+ <Spacer paddingX={ 4 }>
201
+ <VStack spacing={ 8 }>
202
+ { !! themeFontSizes?.length && (
203
+ <FontSizeGroup
204
+ label={ __( 'Theme' ) }
205
+ origin="theme"
206
+ sizes={ themeFontSizes }
207
+ baseSizes={ baseThemeFontSizes }
208
+ handleAddFontSize={ handleAddFontSize }
209
+ handleResetFontSizes={
210
+ hasSameSizeValues(
211
+ themeFontSizes,
212
+ baseThemeFontSizes
213
+ )
214
+ ? null
215
+ : () =>
216
+ setThemeFontSizes(
217
+ baseThemeFontSizes
218
+ )
219
+ }
220
+ />
221
+ ) }
222
+
223
+ { defaultFontSizesEnabled &&
224
+ !! defaultFontSizes?.length && (
225
+ <FontSizeGroup
226
+ label={ __( 'Default' ) }
227
+ origin="default"
228
+ sizes={ defaultFontSizes }
229
+ baseSizes={ baseDefaultFontSizes }
230
+ handleAddFontSize={ handleAddFontSize }
231
+ handleResetFontSizes={
232
+ hasSameSizeValues(
233
+ defaultFontSizes,
234
+ baseDefaultFontSizes
235
+ )
236
+ ? null
237
+ : () =>
238
+ setDefaultFontSizes(
239
+ baseDefaultFontSizes
240
+ )
241
+ }
242
+ />
243
+ ) }
244
+
245
+ <FontSizeGroup
246
+ label={ __( 'Custom' ) }
247
+ origin="custom"
248
+ sizes={ customFontSizes }
249
+ handleAddFontSize={ handleAddFontSize }
250
+ handleResetFontSizes={
251
+ customFontSizes.length > 0
252
+ ? () => setCustomFontSizes( [] )
253
+ : null
254
+ }
255
+ />
256
+ </VStack>
257
+ </Spacer>
258
+ </View>
259
+ </VStack>
260
+ );
261
+ }
262
+
263
+ export default FontSizes;
@@ -0,0 +1,70 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import {
5
+ __experimentalInputControl as InputControl,
6
+ __experimentalVStack as VStack,
7
+ __experimentalHStack as HStack,
8
+ Button,
9
+ Modal,
10
+ } from '@wordpress/components';
11
+ import { __ } from '@wordpress/i18n';
12
+ import { useState } from '@wordpress/element';
13
+
14
+ function RenameFontSizeDialog( { fontSize, toggleOpen, handleRename } ) {
15
+ const [ newName, setNewName ] = useState( fontSize.name );
16
+
17
+ const handleConfirm = () => {
18
+ // If the new name is not empty, call the handleRename function
19
+ if ( newName.trim() ) {
20
+ handleRename( newName );
21
+ }
22
+ toggleOpen();
23
+ };
24
+
25
+ return (
26
+ <Modal
27
+ onRequestClose={ toggleOpen }
28
+ focusOnMount="firstContentElement"
29
+ title={ __( 'Rename' ) }
30
+ size="small"
31
+ >
32
+ <form
33
+ onSubmit={ ( event ) => {
34
+ event.preventDefault();
35
+ handleConfirm();
36
+ toggleOpen();
37
+ } }
38
+ >
39
+ <VStack spacing="3">
40
+ <InputControl
41
+ __next40pxDefaultSize
42
+ autoComplete="off"
43
+ value={ newName }
44
+ onChange={ setNewName }
45
+ label={ __( 'Name' ) }
46
+ placeholder={ __( 'Font size preset name' ) }
47
+ />
48
+ <HStack justify="right">
49
+ <Button
50
+ __next40pxDefaultSize
51
+ variant="tertiary"
52
+ onClick={ toggleOpen }
53
+ >
54
+ { __( 'Cancel' ) }
55
+ </Button>
56
+ <Button
57
+ __next40pxDefaultSize
58
+ variant="primary"
59
+ type="submit"
60
+ >
61
+ { __( 'Save' ) }
62
+ </Button>
63
+ </HStack>
64
+ </VStack>
65
+ </form>
66
+ </Modal>
67
+ );
68
+ }
69
+
70
+ export default RenameFontSizeDialog;
@@ -9,12 +9,10 @@ import a11yPlugin from 'colord/plugins/a11y';
9
9
  */
10
10
  import { store as blocksStore } from '@wordpress/blocks';
11
11
  import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
12
- import { __ } from '@wordpress/i18n';
13
12
 
14
13
  /**
15
14
  * Internal dependencies
16
15
  */
17
- import { useCurrentMergeThemeStyleVariationsWithUserConfig } from '../../hooks/use-theme-style-variations/use-theme-style-variations-by-property';
18
16
  import { unlock } from '../../lock-unlock';
19
17
  import { useSelect } from '@wordpress/data';
20
18
 
@@ -111,42 +109,3 @@ export function useSupportedStyles( name, element ) {
111
109
 
112
110
  return supportedPanels;
113
111
  }
114
-
115
- export function useColorVariations() {
116
- const colorVariations = useCurrentMergeThemeStyleVariationsWithUserConfig( {
117
- property: 'color',
118
- } );
119
- /*
120
- * Filter out variations with no settings or styles.
121
- */
122
- return colorVariations?.length
123
- ? colorVariations.filter( ( variation ) => {
124
- const { settings, styles, title } = variation;
125
- return (
126
- title === __( 'Default' ) || // Always preseve the default variation.
127
- Object.keys( settings ).length > 0 ||
128
- Object.keys( styles ).length > 0
129
- );
130
- } )
131
- : [];
132
- }
133
-
134
- export function useTypographyVariations() {
135
- const typographyVariations =
136
- useCurrentMergeThemeStyleVariationsWithUserConfig( {
137
- property: 'typography',
138
- } );
139
- /*
140
- * Filter out variations with no settings or styles.
141
- */
142
- return typographyVariations?.length
143
- ? typographyVariations.filter( ( variation ) => {
144
- const { settings, styles, title } = variation;
145
- return (
146
- title === __( 'Default' ) || // Always preseve the default variation.
147
- Object.keys( settings ).length > 0 ||
148
- Object.keys( styles ).length > 0
149
- );
150
- } )
151
- : [];
152
- }