@wordpress/block-editor 13.2.0 → 13.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 (538) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +0 -5
  3. package/build/components/alignment-control/ui.js +2 -2
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/block-alignment-control/ui.js +1 -1
  6. package/build/components/block-alignment-control/ui.js.map +1 -1
  7. package/build/components/block-alignment-control/ui.native.js +1 -1
  8. package/build/components/block-alignment-control/ui.native.js.map +1 -1
  9. package/build/components/block-breadcrumb/index.js +12 -1
  10. package/build/components/block-breadcrumb/index.js.map +1 -1
  11. package/build/components/block-inspector/index.js +6 -3
  12. package/build/components/block-inspector/index.js.map +1 -1
  13. package/build/components/block-list/use-block-props/index.js +3 -1
  14. package/build/components/block-list/use-block-props/index.js.map +1 -1
  15. package/build/components/block-list/use-block-props/use-block-refs.js +9 -2
  16. package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  17. package/build/components/block-list/use-block-props/use-is-hovered.js +25 -9
  18. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  19. package/build/components/block-list/use-in-between-inserter.js +3 -2
  20. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  21. package/build/components/block-lock/modal.js +2 -0
  22. package/build/components/block-lock/modal.js.map +1 -1
  23. package/build/components/block-lock/toolbar.js +0 -1
  24. package/build/components/block-lock/toolbar.js.map +1 -1
  25. package/build/components/block-mover/button.js +1 -1
  26. package/build/components/block-mover/button.js.map +1 -1
  27. package/build/components/block-mover/index.js +1 -1
  28. package/build/components/block-mover/index.js.map +1 -1
  29. package/build/components/block-pattern-setup/setup-toolbar.js +2 -2
  30. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  31. package/build/components/block-patterns-paging/index.js +5 -7
  32. package/build/components/block-patterns-paging/index.js.map +1 -1
  33. package/build/components/block-quick-navigation/index.js +20 -17
  34. package/build/components/block-quick-navigation/index.js.map +1 -1
  35. package/build/components/block-removal-warning-modal/index.js +2 -0
  36. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  37. package/build/components/block-rename/modal.js +4 -12
  38. package/build/components/block-rename/modal.js.map +1 -1
  39. package/build/components/block-switcher/index.js +1 -1
  40. package/build/components/block-switcher/index.js.map +1 -1
  41. package/build/components/block-switcher/pattern-transformations-menu.js +11 -12
  42. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  43. package/build/components/block-switcher/preview-block-popover.js +20 -17
  44. package/build/components/block-switcher/preview-block-popover.js.map +1 -1
  45. package/build/components/block-toolbar/shuffle.js +6 -2
  46. package/build/components/block-toolbar/shuffle.js.map +1 -1
  47. package/build/components/block-tools/block-selection-button.js +7 -58
  48. package/build/components/block-tools/block-selection-button.js.map +1 -1
  49. package/build/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  50. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  51. package/build/components/block-tools/index.js +14 -1
  52. package/build/components/block-tools/index.js.map +1 -1
  53. package/build/components/block-tools/use-show-block-tools.js +9 -8
  54. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  55. package/build/components/block-tools/zoom-out-mode-inserter-button.js +45 -0
  56. package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
  57. package/build/components/block-tools/zoom-out-mode-inserters.js +29 -28
  58. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  59. package/build/components/block-tools/zoom-out-popover.js +58 -0
  60. package/build/components/block-tools/zoom-out-popover.js.map +1 -0
  61. package/build/components/block-tools/zoom-out-toolbar.js +138 -0
  62. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -0
  63. package/build/components/button-block-appender/index.js +3 -1
  64. package/build/components/button-block-appender/index.js.map +1 -1
  65. package/build/components/child-layout-control/index.js +26 -18
  66. package/build/components/child-layout-control/index.js.map +1 -1
  67. package/build/components/date-format-picker/index.js +1 -1
  68. package/build/components/date-format-picker/index.js.map +1 -1
  69. package/build/components/default-block-appender/index.js +7 -4
  70. package/build/components/default-block-appender/index.js.map +1 -1
  71. package/build/components/dimensions-tool/index.js +6 -4
  72. package/build/components/dimensions-tool/index.js.map +1 -1
  73. package/build/components/font-appearance-control/index.js +22 -62
  74. package/build/components/font-appearance-control/index.js.map +1 -1
  75. package/build/components/global-styles/background-panel.js +185 -116
  76. package/build/components/global-styles/background-panel.js.map +1 -1
  77. package/build/components/global-styles/border-panel.js +2 -1
  78. package/build/components/global-styles/border-panel.js.map +1 -1
  79. package/build/components/global-styles/color-panel.js +2 -1
  80. package/build/components/global-styles/color-panel.js.map +1 -1
  81. package/build/components/global-styles/dimensions-panel.js +2 -1
  82. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  83. package/build/components/global-styles/filters-panel.js +2 -1
  84. package/build/components/global-styles/filters-panel.js.map +1 -1
  85. package/build/components/global-styles/hooks.js +13 -1
  86. package/build/components/global-styles/hooks.js.map +1 -1
  87. package/build/components/global-styles/image-settings-panel.js +2 -1
  88. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  89. package/build/components/global-styles/typography-panel.js +45 -24
  90. package/build/components/global-styles/typography-panel.js.map +1 -1
  91. package/build/components/global-styles/typography-utils.js +121 -0
  92. package/build/components/global-styles/typography-utils.js.map +1 -1
  93. package/build/components/global-styles/use-global-styles-output.js +47 -13
  94. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  95. package/build/components/global-styles/utils.js +17 -7
  96. package/build/components/global-styles/utils.js.map +1 -1
  97. package/build/components/grid/grid-item-movers.js +90 -48
  98. package/build/components/grid/grid-item-movers.js.map +1 -1
  99. package/build/components/grid/grid-item-resizer.js +2 -2
  100. package/build/components/grid/grid-item-resizer.js.map +1 -1
  101. package/build/components/grid/grid-visualizer.js +117 -37
  102. package/build/components/grid/grid-visualizer.js.map +1 -1
  103. package/build/components/grid/use-grid-layout-sync.js +60 -41
  104. package/build/components/grid/use-grid-layout-sync.js.map +1 -1
  105. package/build/components/index.js +1 -9
  106. package/build/components/index.js.map +1 -1
  107. package/build/components/inner-blocks/index.js +2 -2
  108. package/build/components/inner-blocks/index.js.map +1 -1
  109. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  110. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  111. package/build/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
  112. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  113. package/build/components/inserter/media-tab/media-panel.js +1 -0
  114. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  115. package/build/components/inserter/menu.js +26 -4
  116. package/build/components/inserter/menu.js.map +1 -1
  117. package/build/components/inserter/preview-panel.js +20 -3
  118. package/build/components/inserter/preview-panel.js.map +1 -1
  119. package/build/components/inserter/quick-inserter.js +2 -1
  120. package/build/components/inserter/quick-inserter.js.map +1 -1
  121. package/build/components/inserter-draggable-blocks/index.js +10 -3
  122. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  123. package/build/components/inspector-controls/block-support-tools-panel.js +2 -1
  124. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  125. package/build/components/inspector-controls-tabs/settings-tab.js +1 -2
  126. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  127. package/build/components/link-control/link-preview.js +1 -1
  128. package/build/components/link-control/link-preview.js.map +1 -1
  129. package/build/components/list-view/block-select-button.js +2 -6
  130. package/build/components/list-view/block-select-button.js.map +1 -1
  131. package/build/components/list-view/block.js +2 -2
  132. package/build/components/list-view/block.js.map +1 -1
  133. package/build/components/list-view/utils.js +3 -1
  134. package/build/components/list-view/utils.js.map +1 -1
  135. package/build/components/media-placeholder/index.js +19 -23
  136. package/build/components/media-placeholder/index.js.map +1 -1
  137. package/build/components/navigable-toolbar/index.js +3 -1
  138. package/build/components/navigable-toolbar/index.js.map +1 -1
  139. package/build/components/rich-text/format-toolbar/index.js +1 -1
  140. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  141. package/build/components/rich-text/index.js +1 -1
  142. package/build/components/rich-text/index.js.map +1 -1
  143. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
  144. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  145. package/build/components/tabbed-sidebar/index.js +66 -0
  146. package/build/components/tabbed-sidebar/index.js.map +1 -0
  147. package/build/components/url-popover/image-url-input-ui.js +3 -3
  148. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  149. package/build/components/url-popover/index.js +3 -0
  150. package/build/components/url-popover/index.js.map +1 -1
  151. package/build/hooks/background.js +26 -4
  152. package/build/hooks/background.js.map +1 -1
  153. package/build/hooks/block-hooks.js +11 -17
  154. package/build/hooks/block-hooks.js.map +1 -1
  155. package/build/hooks/block-style-variation.js +169 -4
  156. package/build/hooks/block-style-variation.js.map +1 -1
  157. package/build/hooks/duotone.js +16 -11
  158. package/build/hooks/duotone.js.map +1 -1
  159. package/build/hooks/grid-visualizer.js +62 -0
  160. package/build/hooks/grid-visualizer.js.map +1 -0
  161. package/build/hooks/index.js +15 -2
  162. package/build/hooks/index.js.map +1 -1
  163. package/build/hooks/layout-child.js +47 -23
  164. package/build/hooks/layout-child.js.map +1 -1
  165. package/build/hooks/position.js +4 -15
  166. package/build/hooks/position.js.map +1 -1
  167. package/build/hooks/use-bindings-attributes.js +96 -55
  168. package/build/hooks/use-bindings-attributes.js.map +1 -1
  169. package/build/hooks/utils.js +2 -0
  170. package/build/hooks/utils.js.map +1 -1
  171. package/build/layouts/constrained.js +50 -4
  172. package/build/layouts/constrained.js.map +1 -1
  173. package/build/layouts/grid.js +92 -51
  174. package/build/layouts/grid.js.map +1 -1
  175. package/build/private-apis.js +6 -4
  176. package/build/private-apis.js.map +1 -1
  177. package/build/store/actions.js +18 -1
  178. package/build/store/actions.js.map +1 -1
  179. package/build/store/defaults.js +0 -2
  180. package/build/store/defaults.js.map +1 -1
  181. package/build/store/defaults.native.js +0 -3
  182. package/build/store/defaults.native.js.map +1 -1
  183. package/build/store/private-keys.js +2 -1
  184. package/build/store/private-keys.js.map +1 -1
  185. package/build/store/reducer.js +19 -1
  186. package/build/store/reducer.js.map +1 -1
  187. package/build/store/selectors.js +13 -1
  188. package/build/store/selectors.js.map +1 -1
  189. package/build/utils/format-font-style.js +45 -0
  190. package/build/utils/format-font-style.js.map +1 -0
  191. package/build/utils/format-font-weight.js +68 -0
  192. package/build/utils/format-font-weight.js.map +1 -0
  193. package/build/utils/get-editor-region.js +34 -0
  194. package/build/utils/get-editor-region.js.map +1 -0
  195. package/build/utils/get-font-styles-and-weights.js +167 -0
  196. package/build/utils/get-font-styles-and-weights.js.map +1 -0
  197. package/build/utils/pasting.js +5 -13
  198. package/build/utils/pasting.js.map +1 -1
  199. package/build-module/components/alignment-control/ui.js +2 -2
  200. package/build-module/components/alignment-control/ui.js.map +1 -1
  201. package/build-module/components/block-alignment-control/ui.js +1 -1
  202. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  203. package/build-module/components/block-alignment-control/ui.native.js +1 -1
  204. package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
  205. package/build-module/components/block-breadcrumb/index.js +12 -1
  206. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  207. package/build-module/components/block-inspector/index.js +6 -3
  208. package/build-module/components/block-inspector/index.js.map +1 -1
  209. package/build-module/components/block-list/use-block-props/index.js +3 -1
  210. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  211. package/build-module/components/block-list/use-block-props/use-block-refs.js +11 -4
  212. package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  213. package/build-module/components/block-list/use-block-props/use-is-hovered.js +26 -9
  214. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  215. package/build-module/components/block-list/use-in-between-inserter.js +3 -2
  216. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  217. package/build-module/components/block-lock/modal.js +2 -0
  218. package/build-module/components/block-lock/modal.js.map +1 -1
  219. package/build-module/components/block-lock/toolbar.js +0 -1
  220. package/build-module/components/block-lock/toolbar.js.map +1 -1
  221. package/build-module/components/block-mover/button.js +1 -1
  222. package/build-module/components/block-mover/button.js.map +1 -1
  223. package/build-module/components/block-mover/index.js +1 -1
  224. package/build-module/components/block-mover/index.js.map +1 -1
  225. package/build-module/components/block-pattern-setup/setup-toolbar.js +2 -2
  226. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  227. package/build-module/components/block-patterns-paging/index.js +5 -7
  228. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  229. package/build-module/components/block-quick-navigation/index.js +20 -17
  230. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  231. package/build-module/components/block-removal-warning-modal/index.js +2 -0
  232. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  233. package/build-module/components/block-rename/modal.js +5 -13
  234. package/build-module/components/block-rename/modal.js.map +1 -1
  235. package/build-module/components/block-switcher/index.js +1 -1
  236. package/build-module/components/block-switcher/index.js.map +1 -1
  237. package/build-module/components/block-switcher/pattern-transformations-menu.js +12 -13
  238. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  239. package/build-module/components/block-switcher/preview-block-popover.js +20 -17
  240. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  241. package/build-module/components/block-toolbar/shuffle.js +6 -2
  242. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  243. package/build-module/components/block-tools/block-selection-button.js +10 -61
  244. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  245. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  246. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  247. package/build-module/components/block-tools/index.js +14 -1
  248. package/build-module/components/block-tools/index.js.map +1 -1
  249. package/build-module/components/block-tools/use-show-block-tools.js +9 -8
  250. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  251. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +37 -0
  252. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
  253. package/build-module/components/block-tools/zoom-out-mode-inserters.js +30 -29
  254. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  255. package/build-module/components/block-tools/zoom-out-popover.js +49 -0
  256. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -0
  257. package/build-module/components/block-tools/zoom-out-toolbar.js +131 -0
  258. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -0
  259. package/build-module/components/button-block-appender/index.js +3 -1
  260. package/build-module/components/button-block-appender/index.js.map +1 -1
  261. package/build-module/components/child-layout-control/index.js +27 -19
  262. package/build-module/components/child-layout-control/index.js.map +1 -1
  263. package/build-module/components/date-format-picker/index.js +2 -2
  264. package/build-module/components/date-format-picker/index.js.map +1 -1
  265. package/build-module/components/default-block-appender/index.js +7 -4
  266. package/build-module/components/default-block-appender/index.js.map +1 -1
  267. package/build-module/components/dimensions-tool/index.js +6 -4
  268. package/build-module/components/dimensions-tool/index.js.map +1 -1
  269. package/build-module/components/font-appearance-control/index.js +24 -62
  270. package/build-module/components/font-appearance-control/index.js.map +1 -1
  271. package/build-module/components/global-styles/background-panel.js +188 -119
  272. package/build-module/components/global-styles/background-panel.js.map +1 -1
  273. package/build-module/components/global-styles/border-panel.js +3 -2
  274. package/build-module/components/global-styles/border-panel.js.map +1 -1
  275. package/build-module/components/global-styles/color-panel.js +3 -2
  276. package/build-module/components/global-styles/color-panel.js.map +1 -1
  277. package/build-module/components/global-styles/dimensions-panel.js +3 -2
  278. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  279. package/build-module/components/global-styles/filters-panel.js +3 -2
  280. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  281. package/build-module/components/global-styles/hooks.js +13 -1
  282. package/build-module/components/global-styles/hooks.js.map +1 -1
  283. package/build-module/components/global-styles/image-settings-panel.js +3 -2
  284. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  285. package/build-module/components/global-styles/typography-panel.js +47 -26
  286. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  287. package/build-module/components/global-styles/typography-utils.js +117 -0
  288. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  289. package/build-module/components/global-styles/use-global-styles-output.js +47 -13
  290. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  291. package/build-module/components/global-styles/utils.js +15 -6
  292. package/build-module/components/global-styles/utils.js.map +1 -1
  293. package/build-module/components/grid/grid-item-movers.js +93 -50
  294. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  295. package/build-module/components/grid/grid-item-resizer.js +2 -2
  296. package/build-module/components/grid/grid-item-resizer.js.map +1 -1
  297. package/build-module/components/grid/grid-visualizer.js +118 -38
  298. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  299. package/build-module/components/grid/use-grid-layout-sync.js +61 -42
  300. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
  301. package/build-module/components/index.js +0 -5
  302. package/build-module/components/index.js.map +1 -1
  303. package/build-module/components/inner-blocks/index.js +2 -2
  304. package/build-module/components/inner-blocks/index.js.map +1 -1
  305. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  306. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  307. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
  308. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  309. package/build-module/components/inserter/media-tab/media-panel.js +1 -0
  310. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  311. package/build-module/components/inserter/menu.js +26 -4
  312. package/build-module/components/inserter/menu.js.map +1 -1
  313. package/build-module/components/inserter/preview-panel.js +20 -3
  314. package/build-module/components/inserter/preview-panel.js.map +1 -1
  315. package/build-module/components/inserter/quick-inserter.js +2 -1
  316. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  317. package/build-module/components/inserter-draggable-blocks/index.js +10 -3
  318. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  319. package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -2
  320. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  321. package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -2
  322. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  323. package/build-module/components/link-control/link-preview.js +1 -1
  324. package/build-module/components/link-control/link-preview.js.map +1 -1
  325. package/build-module/components/list-view/block-select-button.js +3 -7
  326. package/build-module/components/list-view/block-select-button.js.map +1 -1
  327. package/build-module/components/list-view/block.js +2 -2
  328. package/build-module/components/list-view/block.js.map +1 -1
  329. package/build-module/components/list-view/utils.js +3 -1
  330. package/build-module/components/list-view/utils.js.map +1 -1
  331. package/build-module/components/media-placeholder/index.js +19 -23
  332. package/build-module/components/media-placeholder/index.js.map +1 -1
  333. package/build-module/components/navigable-toolbar/index.js +3 -1
  334. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  335. package/build-module/components/rich-text/format-toolbar/index.js +1 -1
  336. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  337. package/build-module/components/rich-text/index.js +1 -1
  338. package/build-module/components/rich-text/index.js.map +1 -1
  339. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
  340. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  341. package/build-module/components/tabbed-sidebar/index.js +60 -0
  342. package/build-module/components/tabbed-sidebar/index.js.map +1 -0
  343. package/build-module/components/url-popover/image-url-input-ui.js +3 -3
  344. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  345. package/build-module/components/url-popover/index.js +3 -0
  346. package/build-module/components/url-popover/index.js.map +1 -1
  347. package/build-module/hooks/background.js +26 -4
  348. package/build-module/hooks/background.js.map +1 -1
  349. package/build-module/hooks/block-hooks.js +11 -17
  350. package/build-module/hooks/block-hooks.js.map +1 -1
  351. package/build-module/hooks/block-style-variation.js +168 -4
  352. package/build-module/hooks/block-style-variation.js.map +1 -1
  353. package/build-module/hooks/duotone.js +16 -11
  354. package/build-module/hooks/duotone.js.map +1 -1
  355. package/build-module/hooks/grid-visualizer.js +61 -0
  356. package/build-module/hooks/grid-visualizer.js.map +1 -0
  357. package/build-module/hooks/index.js +3 -0
  358. package/build-module/hooks/index.js.map +1 -1
  359. package/build-module/hooks/layout-child.js +47 -23
  360. package/build-module/hooks/layout-child.js.map +1 -1
  361. package/build-module/hooks/position.js +4 -15
  362. package/build-module/hooks/position.js.map +1 -1
  363. package/build-module/hooks/use-bindings-attributes.js +96 -56
  364. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  365. package/build-module/hooks/utils.js +2 -0
  366. package/build-module/hooks/utils.js.map +1 -1
  367. package/build-module/layouts/constrained.js +50 -4
  368. package/build-module/layouts/constrained.js.map +1 -1
  369. package/build-module/layouts/grid.js +92 -51
  370. package/build-module/layouts/grid.js.map +1 -1
  371. package/build-module/private-apis.js +8 -6
  372. package/build-module/private-apis.js.map +1 -1
  373. package/build-module/store/actions.js +15 -0
  374. package/build-module/store/actions.js.map +1 -1
  375. package/build-module/store/defaults.js +0 -2
  376. package/build-module/store/defaults.js.map +1 -1
  377. package/build-module/store/defaults.native.js +0 -3
  378. package/build-module/store/defaults.native.js.map +1 -1
  379. package/build-module/store/private-keys.js +1 -0
  380. package/build-module/store/private-keys.js.map +1 -1
  381. package/build-module/store/reducer.js +18 -1
  382. package/build-module/store/reducer.js.map +1 -1
  383. package/build-module/store/selectors.js +10 -0
  384. package/build-module/store/selectors.js.map +1 -1
  385. package/build-module/utils/format-font-style.js +39 -0
  386. package/build-module/utils/format-font-style.js.map +1 -0
  387. package/build-module/utils/format-font-weight.js +62 -0
  388. package/build-module/utils/format-font-weight.js.map +1 -0
  389. package/build-module/utils/get-editor-region.js +28 -0
  390. package/build-module/utils/get-editor-region.js.map +1 -0
  391. package/build-module/utils/get-font-styles-and-weights.js +160 -0
  392. package/build-module/utils/get-font-styles-and-weights.js.map +1 -0
  393. package/build-module/utils/pasting.js +5 -13
  394. package/build-module/utils/pasting.js.map +1 -1
  395. package/build-style/content-rtl.css +7 -6
  396. package/build-style/content.css +7 -6
  397. package/build-style/style-rtl.css +356 -181
  398. package/build-style/style.css +356 -181
  399. package/build-types/components/block-context/index.d.ts +2 -2
  400. package/build-types/components/block-context/index.d.ts.map +1 -1
  401. package/build-types/utils/dom.d.ts.map +1 -1
  402. package/package.json +32 -32
  403. package/src/components/alignment-control/ui.js +2 -2
  404. package/src/components/block-alignment-control/ui.js +1 -1
  405. package/src/components/block-alignment-control/ui.native.js +1 -1
  406. package/src/components/block-breadcrumb/index.js +16 -1
  407. package/src/components/block-context/README.md +4 -4
  408. package/src/components/block-inspector/index.js +8 -4
  409. package/src/components/block-list/content.scss +2 -16
  410. package/src/components/block-list/use-block-props/index.js +1 -1
  411. package/src/components/block-list/use-block-props/use-block-refs.js +19 -3
  412. package/src/components/block-list/use-block-props/use-is-hovered.js +26 -11
  413. package/src/components/block-list/use-in-between-inserter.js +5 -1
  414. package/src/components/block-lock/modal.js +10 -2
  415. package/src/components/block-lock/style.scss +4 -8
  416. package/src/components/block-lock/toolbar.js +0 -1
  417. package/src/components/block-mover/button.js +1 -1
  418. package/src/components/block-mover/index.js +1 -1
  419. package/src/components/block-pattern-setup/setup-toolbar.js +2 -2
  420. package/src/components/block-patterns-paging/index.js +8 -11
  421. package/src/components/block-patterns-paging/style.scss +0 -5
  422. package/src/components/block-quick-navigation/index.js +21 -28
  423. package/src/components/block-removal-warning-modal/index.js +10 -2
  424. package/src/components/block-rename/modal.js +2 -8
  425. package/src/components/block-switcher/index.js +1 -1
  426. package/src/components/block-switcher/pattern-transformations-menu.js +17 -15
  427. package/src/components/block-switcher/preview-block-popover.js +20 -14
  428. package/src/components/block-switcher/style.scss +8 -17
  429. package/src/components/block-switcher/test/index.js +6 -6
  430. package/src/components/block-toolbar/shuffle.js +9 -1
  431. package/src/components/block-toolbar/style.scss +1 -11
  432. package/src/components/block-tools/block-selection-button.js +11 -83
  433. package/src/components/block-tools/block-toolbar-breadcrumb.js +9 -4
  434. package/src/components/block-tools/index.js +21 -1
  435. package/src/components/block-tools/style.scss +23 -0
  436. package/src/components/block-tools/use-show-block-tools.js +21 -10
  437. package/src/components/block-tools/zoom-out-mode-inserter-button.js +47 -0
  438. package/src/components/block-tools/zoom-out-mode-inserters.js +44 -33
  439. package/src/components/block-tools/zoom-out-popover.js +50 -0
  440. package/src/components/block-tools/zoom-out-toolbar.js +140 -0
  441. package/src/components/button-block-appender/index.js +2 -1
  442. package/src/components/child-layout-control/index.js +41 -23
  443. package/src/components/date-format-picker/index.js +2 -2
  444. package/src/components/date-format-picker/style.scss +0 -9
  445. package/src/components/default-block-appender/index.js +11 -4
  446. package/src/components/dimensions-tool/index.js +97 -89
  447. package/src/components/font-appearance-control/index.js +24 -82
  448. package/src/components/font-appearance-control/style.scss +3 -5
  449. package/src/components/global-styles/background-panel.js +266 -167
  450. package/src/components/global-styles/border-panel.js +3 -2
  451. package/src/components/global-styles/color-panel.js +3 -2
  452. package/src/components/global-styles/dimensions-panel.js +3 -2
  453. package/src/components/global-styles/filters-panel.js +3 -2
  454. package/src/components/global-styles/hooks.js +14 -1
  455. package/src/components/global-styles/image-settings-panel.js +3 -2
  456. package/src/components/global-styles/style.scss +116 -19
  457. package/src/components/global-styles/test/typography-utils.js +594 -0
  458. package/src/components/global-styles/test/use-global-styles-output.js +3 -1
  459. package/src/components/global-styles/typography-panel.js +56 -27
  460. package/src/components/global-styles/typography-utils.js +159 -0
  461. package/src/components/global-styles/use-global-styles-output.js +45 -10
  462. package/src/components/global-styles/utils.js +17 -6
  463. package/src/components/grid/grid-item-movers.js +140 -86
  464. package/src/components/grid/grid-item-resizer.js +3 -2
  465. package/src/components/grid/grid-visualizer.js +172 -55
  466. package/src/components/grid/style.scss +157 -8
  467. package/src/components/grid/use-grid-layout-sync.js +88 -46
  468. package/src/components/iframe/content.scss +2 -1
  469. package/src/components/index.js +0 -5
  470. package/src/components/inner-blocks/index.js +6 -2
  471. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -16
  472. package/src/components/inserter/block-patterns-tab/patterns-filter.js +40 -44
  473. package/src/components/inserter/media-tab/media-panel.js +1 -0
  474. package/src/components/inserter/menu.js +47 -13
  475. package/src/components/inserter/preview-panel.js +27 -4
  476. package/src/components/inserter/quick-inserter.js +6 -1
  477. package/src/components/inserter/style.scss +58 -92
  478. package/src/components/inserter-draggable-blocks/index.js +11 -3
  479. package/src/components/inspector-controls/block-support-tools-panel.js +3 -3
  480. package/src/components/inspector-controls-tabs/settings-tab.js +0 -2
  481. package/src/components/inspector-controls-tabs/style.scss +0 -21
  482. package/src/components/link-control/link-preview.js +1 -1
  483. package/src/components/list-view/block-select-button.js +3 -13
  484. package/src/components/list-view/block.js +10 -3
  485. package/src/components/list-view/style.scss +2 -1
  486. package/src/components/list-view/utils.js +13 -2
  487. package/src/components/media-placeholder/index.js +22 -32
  488. package/src/components/navigable-toolbar/index.js +3 -1
  489. package/src/components/rich-text/format-toolbar/index.js +1 -1
  490. package/src/components/rich-text/index.js +1 -1
  491. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -2
  492. package/src/components/tabbed-sidebar/README.md +76 -0
  493. package/src/components/tabbed-sidebar/index.js +70 -0
  494. package/src/components/tabbed-sidebar/style.scss +53 -0
  495. package/src/components/url-popover/image-url-input-ui.js +3 -3
  496. package/src/components/url-popover/index.js +3 -0
  497. package/src/components/url-popover/style.scss +1 -0
  498. package/src/hooks/background.js +25 -10
  499. package/src/hooks/block-hooks.js +9 -16
  500. package/src/hooks/block-style-variation.js +202 -3
  501. package/src/hooks/duotone.js +16 -12
  502. package/src/hooks/grid-visualizer.js +62 -0
  503. package/src/hooks/index.js +3 -0
  504. package/src/hooks/layout-child.js +64 -39
  505. package/src/hooks/position.js +3 -20
  506. package/src/hooks/test/get-variation-styles-with-ref-values.js +91 -0
  507. package/src/hooks/use-bindings-attributes.js +107 -63
  508. package/src/hooks/utils.js +2 -0
  509. package/src/layouts/constrained.js +53 -4
  510. package/src/layouts/grid.js +148 -51
  511. package/src/private-apis.js +12 -7
  512. package/src/store/actions.js +15 -0
  513. package/src/store/defaults.js +0 -2
  514. package/src/store/defaults.native.js +0 -3
  515. package/src/store/private-keys.js +1 -0
  516. package/src/store/reducer.js +18 -0
  517. package/src/store/selectors.js +10 -0
  518. package/src/style.scss +1 -1
  519. package/src/utils/format-font-style.js +40 -0
  520. package/src/utils/format-font-weight.js +63 -0
  521. package/src/utils/get-editor-region.js +31 -0
  522. package/src/utils/get-font-styles-and-weights.js +191 -0
  523. package/src/utils/pasting.js +5 -12
  524. package/src/utils/test/format-font-style.js +34 -0
  525. package/src/utils/test/format-font-weight.js +66 -0
  526. package/src/utils/test/get-font-styles-and-weights.js +513 -0
  527. package/tsconfig.tsbuildinfo +1 -1
  528. package/build/components/inserter/reusable-block-rename-hint.js +0 -71
  529. package/build/components/inserter/reusable-block-rename-hint.js.map +0 -1
  530. package/build/components/inspector-controls-tabs/settings-tab-hint.js +0 -53
  531. package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
  532. package/build-module/components/inserter/reusable-block-rename-hint.js +0 -64
  533. package/build-module/components/inserter/reusable-block-rename-hint.js.map +0 -1
  534. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +0 -47
  535. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
  536. package/src/components/inserter/reusable-block-rename-hint.js +0 -69
  537. package/src/components/inspector-controls-tabs/settings-tab-hint.js +0 -52
  538. package/src/hooks/position.scss +0 -18
@@ -4,6 +4,10 @@
4
4
  import {
5
5
  getTypographyFontSizeValue,
6
6
  getFluidTypographyOptionsFromSettings,
7
+ getMergedFontFamiliesAndFontFamilyFaces,
8
+ findNearestFontWeight,
9
+ findNearestFontStyle,
10
+ findNearestStyleAndWeight,
7
11
  } from '../typography-utils';
8
12
 
9
13
  describe( 'typography utils', () => {
@@ -682,6 +686,596 @@ describe( 'typography utils', () => {
682
686
  } );
683
687
  } );
684
688
 
689
+ describe( 'getMergedFontFamiliesAndFontFamilyFaces', () => {
690
+ [
691
+ {
692
+ message:
693
+ 'should return empty arrays when settings and fontFamily are empty',
694
+ settings: {},
695
+ fontFamily: '',
696
+ expected: {
697
+ fontFamilies: [],
698
+ fontFamilyFaces: [],
699
+ },
700
+ },
701
+
702
+ {
703
+ message:
704
+ 'should return empty arrays when only settings is `undefined`',
705
+ settings: undefined,
706
+ fontFamily: 'ABeeZee, sans-serif',
707
+ expected: {
708
+ fontFamilies: [],
709
+ fontFamilyFaces: [],
710
+ },
711
+ },
712
+
713
+ {
714
+ message:
715
+ 'should return fontFamilies array and an empty fontFamilyFaces array when fontfamily is empty',
716
+ settings: {
717
+ typography: {
718
+ fontFamilies: {
719
+ custom: [
720
+ {
721
+ name: 'ABeeZee',
722
+ slug: 'abeezee',
723
+ fontFamily: 'ABeeZee, sans-serif',
724
+ fontFace: [
725
+ {
726
+ src: 'http://www.wordpress.org/wp-content/uploads/fonts/esDT31xSG-6AGleN2tCkkJUCGpG-GQ.woff2',
727
+ fontWeight: '400',
728
+ fontStyle: 'italic',
729
+ fontFamily: 'ABeeZee',
730
+ },
731
+ ],
732
+ },
733
+ ],
734
+ },
735
+ },
736
+ },
737
+ fontFamily: '',
738
+ expected: {
739
+ fontFamilies: [
740
+ {
741
+ fontFace: [
742
+ {
743
+ fontFamily: 'ABeeZee',
744
+ fontStyle: 'italic',
745
+ fontWeight: '400',
746
+ src: 'http://www.wordpress.org/wp-content/uploads/fonts/esDT31xSG-6AGleN2tCkkJUCGpG-GQ.woff2',
747
+ },
748
+ ],
749
+ fontFamily: 'ABeeZee, sans-serif',
750
+ name: 'ABeeZee',
751
+ slug: 'abeezee',
752
+ },
753
+ ],
754
+ fontFamilyFaces: [],
755
+ },
756
+ },
757
+
758
+ {
759
+ message:
760
+ 'should return font families and font faces when both settings and fontFamily are defined',
761
+ settings: {
762
+ typography: {
763
+ fontFamilies: {
764
+ theme: [
765
+ {
766
+ fontFace: [
767
+ {
768
+ fontFamily: 'PT Sans',
769
+ fontStyle: 'normal',
770
+ fontWeight: '400',
771
+ src: [
772
+ 'file:./assets/fonts/pt-sans_normal_400.ttf',
773
+ ],
774
+ },
775
+ {
776
+ fontFamily: 'PT Sans',
777
+ fontStyle: 'normal',
778
+ fontWeight: '700',
779
+ src: [
780
+ 'file:./assets/fonts/pt-sans_normal_700.ttf',
781
+ ],
782
+ },
783
+ {
784
+ fontFamily: 'PT Sans',
785
+ fontStyle: 'italic',
786
+ fontWeight: '400',
787
+ src: [
788
+ 'file:./assets/fonts/pt-sans_italic_400.ttf',
789
+ ],
790
+ },
791
+ {
792
+ fontFamily: 'PT Sans',
793
+ fontStyle: 'italic',
794
+ fontWeight: '700',
795
+ src: [
796
+ 'file:./assets/fonts/pt-sans_italic_700.ttf',
797
+ ],
798
+ },
799
+ ],
800
+ fontFamily: 'PT Sans',
801
+ name: 'PT Sans',
802
+ slug: 'pt-sans',
803
+ },
804
+ ],
805
+ custom: [
806
+ {
807
+ name: 'ABeeZee',
808
+ slug: 'abeezee',
809
+ fontFamily: 'ABeeZee, sans-serif',
810
+ fontFace: [
811
+ {
812
+ src: 'http://www.wordpress.org/wp-content/uploads/fonts/esDT31xSG-6AGleN2tCkkJUCGpG-GQ.woff2',
813
+ fontWeight: '400',
814
+ fontStyle: 'italic',
815
+ fontFamily: 'ABeeZee',
816
+ },
817
+ ],
818
+ },
819
+ ],
820
+ },
821
+ },
822
+ },
823
+ fontFamily: 'ABeeZee, sans-serif',
824
+ expected: {
825
+ fontFamilyFaces: [
826
+ {
827
+ fontFamily: 'ABeeZee',
828
+ fontStyle: 'italic',
829
+ fontWeight: '400',
830
+ src: 'http://www.wordpress.org/wp-content/uploads/fonts/esDT31xSG-6AGleN2tCkkJUCGpG-GQ.woff2',
831
+ },
832
+ ],
833
+ fontFamilies: [
834
+ {
835
+ fontFace: [
836
+ {
837
+ fontFamily: 'PT Sans',
838
+ fontStyle: 'normal',
839
+ fontWeight: '400',
840
+ src: [
841
+ 'file:./assets/fonts/pt-sans_normal_400.ttf',
842
+ ],
843
+ },
844
+ {
845
+ fontFamily: 'PT Sans',
846
+ fontStyle: 'normal',
847
+ fontWeight: '700',
848
+ src: [
849
+ 'file:./assets/fonts/pt-sans_normal_700.ttf',
850
+ ],
851
+ },
852
+ {
853
+ fontFamily: 'PT Sans',
854
+ fontStyle: 'italic',
855
+ fontWeight: '400',
856
+ src: [
857
+ 'file:./assets/fonts/pt-sans_italic_400.ttf',
858
+ ],
859
+ },
860
+ {
861
+ fontFamily: 'PT Sans',
862
+ fontStyle: 'italic',
863
+ fontWeight: '700',
864
+ src: [
865
+ 'file:./assets/fonts/pt-sans_italic_700.ttf',
866
+ ],
867
+ },
868
+ ],
869
+ fontFamily: 'PT Sans',
870
+ name: 'PT Sans',
871
+ slug: 'pt-sans',
872
+ },
873
+ {
874
+ fontFace: [
875
+ {
876
+ fontFamily: 'ABeeZee',
877
+ fontStyle: 'italic',
878
+ fontWeight: '400',
879
+ src: 'http://www.wordpress.org/wp-content/uploads/fonts/esDT31xSG-6AGleN2tCkkJUCGpG-GQ.woff2',
880
+ },
881
+ ],
882
+ fontFamily: 'ABeeZee, sans-serif',
883
+ name: 'ABeeZee',
884
+ slug: 'abeezee',
885
+ },
886
+ ],
887
+ },
888
+ },
889
+ ].forEach( ( { message, settings, fontFamily, expected } ) => {
890
+ it( `${ message }`, () => {
891
+ expect(
892
+ getMergedFontFamiliesAndFontFamilyFaces(
893
+ settings,
894
+ fontFamily
895
+ )
896
+ ).toEqual( expected );
897
+ } );
898
+ } );
899
+ } );
900
+
901
+ describe( 'findNearestFontWeight', () => {
902
+ [
903
+ {
904
+ message:
905
+ 'should return empty string when newFontWeightValue is `undefined`',
906
+ availableFontWeights: undefined,
907
+ newFontWeightValue: undefined,
908
+ expected: '',
909
+ },
910
+ {
911
+ message:
912
+ 'should return newFontWeightValue value when availableFontWeights is empty',
913
+ availableFontWeights: [],
914
+ newFontWeightValue: '300',
915
+ expected: '300',
916
+ },
917
+ {
918
+ message: 'should return correct nearest higher font weight',
919
+ availableFontWeights: [
920
+ { name: 'Regular', value: '400' },
921
+ { name: 'Bold', value: '700' },
922
+ { name: 'Black', value: '900' },
923
+ ],
924
+ newFontWeightValue: '300',
925
+ expected: '400',
926
+ },
927
+ {
928
+ message: 'should return correct nearest lower font weight',
929
+ availableFontWeights: [
930
+ { name: 'Thin', value: '100' },
931
+ { name: 'Light', value: '300' },
932
+ { name: 'Regular', value: '400' },
933
+ ],
934
+ newFontWeightValue: '900',
935
+ expected: '400',
936
+ },
937
+ ].forEach(
938
+ ( {
939
+ message,
940
+ availableFontWeights,
941
+ newFontWeightValue,
942
+ expected,
943
+ } ) => {
944
+ it( `${ message }`, () => {
945
+ expect(
946
+ findNearestFontWeight(
947
+ availableFontWeights,
948
+ newFontWeightValue
949
+ )
950
+ ).toEqual( expected );
951
+ } );
952
+ }
953
+ );
954
+ } );
955
+
956
+ describe( 'findNearestFontStyle', () => {
957
+ [
958
+ {
959
+ message:
960
+ 'should return empty string when newFontStyleValue is `undefined`',
961
+ availableFontStyles: undefined,
962
+ newFontStyleValue: undefined,
963
+ expected: '',
964
+ },
965
+ {
966
+ message:
967
+ 'should return newFontStyleValue value when availableFontStyles is empty',
968
+ availableFontStyles: [],
969
+ newFontStyleValue: 'italic',
970
+ expected: 'italic',
971
+ },
972
+ {
973
+ message:
974
+ 'should return empty string if there is no new font style available',
975
+ availableFontStyles: [ { name: 'Normal', value: 'normal' } ],
976
+ newFontStyleValue: 'italic',
977
+ expected: '',
978
+ },
979
+ {
980
+ message:
981
+ 'should return empty string if the new font style is invalid',
982
+ availableFontStyles: [
983
+ { name: 'Regular', value: 'normal' },
984
+ { name: 'Italic', value: 'italic' },
985
+ ],
986
+ newFontStyleValue: 'not-valid',
987
+ expected: '',
988
+ },
989
+ {
990
+ message: 'should return italic if oblique is not available',
991
+ availableFontStyles: [
992
+ { name: 'Regular', value: 'normal' },
993
+ { name: 'Italic', value: 'italic' },
994
+ ],
995
+ newFontStyleValue: 'oblique',
996
+ expected: 'italic',
997
+ },
998
+ {
999
+ message: 'should return normal if normal is available',
1000
+ availableFontStyles: [
1001
+ { name: 'Regular', value: 'normal' },
1002
+ { name: 'Italic', value: 'italic' },
1003
+ ],
1004
+ newFontStyleValue: 'normal',
1005
+ expected: 'normal',
1006
+ },
1007
+ ].forEach(
1008
+ ( {
1009
+ message,
1010
+ availableFontStyles,
1011
+ newFontStyleValue,
1012
+ expected,
1013
+ } ) => {
1014
+ it( `${ message }`, () => {
1015
+ expect(
1016
+ findNearestFontStyle(
1017
+ availableFontStyles,
1018
+ newFontStyleValue
1019
+ )
1020
+ ).toEqual( expected );
1021
+ } );
1022
+ }
1023
+ );
1024
+ } );
1025
+
1026
+ describe( 'findNearestStyleAndWeight', () => {
1027
+ [
1028
+ {
1029
+ message: 'should return empty object when all values are empty',
1030
+ fontFamilyFaces: [],
1031
+ fontStyle: undefined,
1032
+ fontWeight: undefined,
1033
+ expected: {},
1034
+ },
1035
+ {
1036
+ message:
1037
+ 'should return original fontStyle and fontWeight when fontFamilyFaces is empty',
1038
+ fontFamilyFaces: [],
1039
+ fontStyle: 'italic',
1040
+ fontWeight: '700',
1041
+ expected: {
1042
+ nearestFontStyle: 'italic',
1043
+ nearestFontWeight: '700',
1044
+ },
1045
+ },
1046
+ {
1047
+ message:
1048
+ 'should return undefined values if both fontStyle and fontWeight are not available',
1049
+ fontFamilyFaces: [
1050
+ {
1051
+ fontFamily: 'ABeeZee',
1052
+ fontStyle: 'italic',
1053
+ fontWeight: '400',
1054
+ src: [
1055
+ 'file:./assets/fonts/esDT31xSG-6AGleN2tCkkJUCGpG-GQ.woff2',
1056
+ ],
1057
+ },
1058
+ ],
1059
+ fontStyle: undefined,
1060
+ fontWeight: undefined,
1061
+ expected: {
1062
+ nearestFontStyle: undefined,
1063
+ nearestFontWeight: undefined,
1064
+ },
1065
+ },
1066
+ {
1067
+ message:
1068
+ 'should return nearest fontStyle and fontWeight for normal/400',
1069
+ fontFamilyFaces: [
1070
+ {
1071
+ fontFamily: 'IBM Plex Mono',
1072
+ fontStyle: 'normal',
1073
+ fontWeight: '400',
1074
+ src: [
1075
+ 'file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2',
1076
+ ],
1077
+ },
1078
+ {
1079
+ fontFamily: 'IBM Plex Mono',
1080
+ fontStyle: 'italic',
1081
+ fontWeight: '400',
1082
+ src: [
1083
+ 'file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Italic.woff2',
1084
+ ],
1085
+ },
1086
+ {
1087
+ fontFamily: 'IBM Plex Mono',
1088
+ fontStyle: 'normal',
1089
+ fontWeight: '700',
1090
+ src: [
1091
+ 'file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2',
1092
+ ],
1093
+ },
1094
+ ],
1095
+ fontStyle: 'normal',
1096
+ fontWeight: '400',
1097
+ expected: {
1098
+ nearestFontStyle: 'normal',
1099
+ nearestFontWeight: '400',
1100
+ },
1101
+ },
1102
+ {
1103
+ message:
1104
+ 'should return nearest fontStyle and fontWeight for normal/100',
1105
+ fontFamilyFaces: [
1106
+ {
1107
+ fontFamily: 'IBM Plex Mono',
1108
+ fontStyle: 'normal',
1109
+ fontWeight: '400',
1110
+ src: [
1111
+ 'file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2',
1112
+ ],
1113
+ },
1114
+ {
1115
+ fontFamily: 'IBM Plex Mono',
1116
+ fontStyle: 'italic',
1117
+ fontWeight: '400',
1118
+ src: [
1119
+ 'file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Italic.woff2',
1120
+ ],
1121
+ },
1122
+ {
1123
+ fontFamily: 'IBM Plex Mono',
1124
+ fontStyle: 'normal',
1125
+ fontWeight: '700',
1126
+ src: [
1127
+ 'file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2',
1128
+ ],
1129
+ },
1130
+ ],
1131
+ fontStyle: 'normal',
1132
+ fontWeight: '100',
1133
+ expected: {
1134
+ nearestFontStyle: 'normal',
1135
+ nearestFontWeight: '400',
1136
+ },
1137
+ },
1138
+ {
1139
+ message:
1140
+ 'should return nearest fontStyle and fontWeight for italic/900',
1141
+ fontFamilyFaces: [
1142
+ {
1143
+ fontFamily: 'IBM Plex Mono',
1144
+ fontStyle: 'normal',
1145
+ fontWeight: '400',
1146
+ src: [
1147
+ 'file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2',
1148
+ ],
1149
+ },
1150
+ {
1151
+ fontFamily: 'IBM Plex Mono',
1152
+ fontStyle: 'italic',
1153
+ fontWeight: '400',
1154
+ src: [
1155
+ 'file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Italic.woff2',
1156
+ ],
1157
+ },
1158
+ {
1159
+ fontFamily: 'IBM Plex Mono',
1160
+ fontStyle: 'normal',
1161
+ fontWeight: '700',
1162
+ src: [
1163
+ 'file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2',
1164
+ ],
1165
+ },
1166
+ ],
1167
+ fontStyle: 'italic',
1168
+ fontWeight: '900',
1169
+ expected: {
1170
+ nearestFontStyle: 'italic',
1171
+ nearestFontWeight: '700',
1172
+ },
1173
+ },
1174
+ {
1175
+ message:
1176
+ 'should return nearest fontStyle and fontWeight for oblique/600',
1177
+ fontFamilyFaces: [
1178
+ {
1179
+ fontFamily: 'IBM Plex Mono',
1180
+ fontStyle: 'normal',
1181
+ fontWeight: '400',
1182
+ src: [
1183
+ 'file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2',
1184
+ ],
1185
+ },
1186
+ {
1187
+ fontFamily: 'IBM Plex Mono',
1188
+ fontStyle: 'italic',
1189
+ fontWeight: '700',
1190
+ src: [
1191
+ 'file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2',
1192
+ ],
1193
+ },
1194
+ ],
1195
+ fontStyle: 'oblique',
1196
+ fontWeight: '600',
1197
+ expected: {
1198
+ nearestFontStyle: 'italic',
1199
+ nearestFontWeight: '700',
1200
+ },
1201
+ },
1202
+ {
1203
+ message:
1204
+ 'should return nearest fontStyle and fontWeight for 300 font weight and empty font style',
1205
+ fontFamilyFaces: [
1206
+ {
1207
+ fontFamily: 'IBM Plex Mono',
1208
+ fontStyle: 'normal',
1209
+ fontWeight: '400',
1210
+ src: [
1211
+ 'file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2',
1212
+ ],
1213
+ },
1214
+ {
1215
+ fontFamily: 'IBM Plex Mono',
1216
+ fontStyle: 'italic',
1217
+ fontWeight: '700',
1218
+ src: [
1219
+ 'file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2',
1220
+ ],
1221
+ },
1222
+ ],
1223
+ fontStyle: undefined,
1224
+ fontWeight: '300',
1225
+ expected: {
1226
+ nearestFontStyle: 'normal',
1227
+ nearestFontWeight: '400',
1228
+ },
1229
+ },
1230
+ {
1231
+ message:
1232
+ 'should return nearest fontStyle and fontWeight for oblique font style and empty font weight',
1233
+ fontFamilyFaces: [
1234
+ {
1235
+ fontFamily: 'IBM Plex Mono',
1236
+ fontStyle: 'normal',
1237
+ fontWeight: '400',
1238
+ src: [
1239
+ 'file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2',
1240
+ ],
1241
+ },
1242
+ {
1243
+ fontFamily: 'IBM Plex Mono',
1244
+ fontStyle: 'italic',
1245
+ fontWeight: '700',
1246
+ src: [
1247
+ 'file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2',
1248
+ ],
1249
+ },
1250
+ ],
1251
+ fontStyle: 'oblique',
1252
+ fontWeight: undefined,
1253
+ expected: {
1254
+ nearestFontStyle: 'italic',
1255
+ nearestFontWeight: '400',
1256
+ },
1257
+ },
1258
+ ].forEach(
1259
+ ( {
1260
+ message,
1261
+ fontFamilyFaces,
1262
+ fontStyle,
1263
+ fontWeight,
1264
+ expected,
1265
+ } ) => {
1266
+ it( `${ message }`, () => {
1267
+ expect(
1268
+ findNearestStyleAndWeight(
1269
+ fontFamilyFaces,
1270
+ fontStyle,
1271
+ fontWeight
1272
+ )
1273
+ ).toEqual( expected );
1274
+ } );
1275
+ }
1276
+ );
1277
+ } );
1278
+
685
1279
  describe( 'typography utils', () => {
686
1280
  [
687
1281
  {
@@ -107,6 +107,7 @@ describe( 'global styles renderer', () => {
107
107
  },
108
108
  },
109
109
  selector: ROOT_BLOCK_SELECTOR,
110
+ skipSelectorWrapper: true,
110
111
  },
111
112
  {
112
113
  styles: {
@@ -128,6 +129,7 @@ describe( 'global styles renderer', () => {
128
129
  },
129
130
  },
130
131
  selector: ELEMENTS.link,
132
+ skipSelectorWrapper: true,
131
133
  },
132
134
  {
133
135
  styles: {
@@ -480,7 +482,7 @@ describe( 'global styles renderer', () => {
480
482
  };
481
483
 
482
484
  expect( toStyles( tree, blockSelectors ) ).toEqual(
483
- ':where(body) {margin: 0;}.is-layout-flow > .alignleft { float: left; margin-inline-start: 0; margin-inline-end: 2em; }.is-layout-flow > .alignright { float: right; margin-inline-start: 2em; margin-inline-end: 0; }.is-layout-flow > .aligncenter { margin-left: auto !important; margin-right: auto !important; }.is-layout-constrained > .alignleft { float: left; margin-inline-start: 0; margin-inline-end: 2em; }.is-layout-constrained > .alignright { float: right; margin-inline-start: 2em; margin-inline-end: 0; }.is-layout-constrained > .aligncenter { margin-left: auto !important; margin-right: auto !important; }.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: var(--wp--style--global--content-size); margin-left: auto !important; margin-right: auto !important; }.is-layout-constrained > .alignwide { max-width: var(--wp--style--global--wide-size); }body .is-layout-flex { display:flex; }.is-layout-flex { flex-wrap: wrap; align-items: center; }.is-layout-flex > :is(*, div) { margin: 0; }body .is-layout-grid { display:grid; }.is-layout-grid > :is(*, div) { margin: 0; }:root :where(body){background-color: red;margin: 10px;padding: 10px;}:root :where(a:where(:not(.wp-element-button))){color: blue;}a:where(:not(.wp-element-button)):hover{color: orange;}a:where(:not(.wp-element-button)):focus{color: orange;}:root :where(h1){font-size: 42px;}:root :where(.wp-block-group){margin-top: 10px;margin-right: 20px;margin-bottom: 30px;margin-left: 40px;padding-top: 11px;padding-right: 22px;padding-bottom: 33px;padding-left: 44px;}:root :where(h1,h2,h3,h4,h5,h6){color: orange;}:root :where(h1 a:where(:not(.wp-element-button)),h2 a:where(:not(.wp-element-button)),h3 a:where(:not(.wp-element-button)),h4 a:where(:not(.wp-element-button)),h5 a:where(:not(.wp-element-button)),h6 a:where(:not(.wp-element-button))){color: hotpink;}h1 a:where(:not(.wp-element-button)):hover,h2 a:where(:not(.wp-element-button)):hover,h3 a:where(:not(.wp-element-button)):hover,h4 a:where(:not(.wp-element-button)):hover,h5 a:where(:not(.wp-element-button)):hover,h6 a:where(:not(.wp-element-button)):hover{color: red;}h1 a:where(:not(.wp-element-button)):focus,h2 a:where(:not(.wp-element-button)):focus,h3 a:where(:not(.wp-element-button)):focus,h4 a:where(:not(.wp-element-button)):focus,h5 a:where(:not(.wp-element-button)):focus,h6 a:where(:not(.wp-element-button)):focus{color: red;}:root :where(.wp-block-image img, .wp-block-image .wp-crop-area){border-radius: 9999px;}:root :where(.wp-block-image){color: red;}.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }.has-white-color{color: var(--wp--preset--color--white) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}h1.has-blue-color,h2.has-blue-color,h3.has-blue-color,h4.has-blue-color,h5.has-blue-color,h6.has-blue-color{color: var(--wp--preset--color--blue) !important;}h1.has-blue-background-color,h2.has-blue-background-color,h3.has-blue-background-color,h4.has-blue-background-color,h5.has-blue-background-color,h6.has-blue-background-color{background-color: var(--wp--preset--color--blue) !important;}h1.has-blue-border-color,h2.has-blue-border-color,h3.has-blue-border-color,h4.has-blue-border-color,h5.has-blue-border-color,h6.has-blue-border-color{border-color: var(--wp--preset--color--blue) !important;}'
485
+ ':where(body) {margin: 0;}.is-layout-flow > .alignleft { float: left; margin-inline-start: 0; margin-inline-end: 2em; }.is-layout-flow > .alignright { float: right; margin-inline-start: 2em; margin-inline-end: 0; }.is-layout-flow > .aligncenter { margin-left: auto !important; margin-right: auto !important; }.is-layout-constrained > .alignleft { float: left; margin-inline-start: 0; margin-inline-end: 2em; }.is-layout-constrained > .alignright { float: right; margin-inline-start: 2em; margin-inline-end: 0; }.is-layout-constrained > .aligncenter { margin-left: auto !important; margin-right: auto !important; }.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: var(--wp--style--global--content-size); margin-left: auto !important; margin-right: auto !important; }.is-layout-constrained > .alignwide { max-width: var(--wp--style--global--wide-size); }body .is-layout-flex { display:flex; }.is-layout-flex { flex-wrap: wrap; align-items: center; }.is-layout-flex > :is(*, div) { margin: 0; }body .is-layout-grid { display:grid; }.is-layout-grid > :is(*, div) { margin: 0; }body{background-color: red;margin: 10px;padding: 10px;}a:where(:not(.wp-element-button)){color: blue;}:root :where(a:where(:not(.wp-element-button)):hover){color: orange;}:root :where(a:where(:not(.wp-element-button)):focus){color: orange;}h1{font-size: 42px;}:root :where(.wp-block-group){margin-top: 10px;margin-right: 20px;margin-bottom: 30px;margin-left: 40px;padding-top: 11px;padding-right: 22px;padding-bottom: 33px;padding-left: 44px;}:root :where(h1,h2,h3,h4,h5,h6){color: orange;}:root :where(h1 a:where(:not(.wp-element-button)),h2 a:where(:not(.wp-element-button)),h3 a:where(:not(.wp-element-button)),h4 a:where(:not(.wp-element-button)),h5 a:where(:not(.wp-element-button)),h6 a:where(:not(.wp-element-button))){color: hotpink;}:root :where(h1 a:where(:not(.wp-element-button)):hover,h2 a:where(:not(.wp-element-button)):hover,h3 a:where(:not(.wp-element-button)):hover,h4 a:where(:not(.wp-element-button)):hover,h5 a:where(:not(.wp-element-button)):hover,h6 a:where(:not(.wp-element-button)):hover){color: red;}:root :where(h1 a:where(:not(.wp-element-button)):focus,h2 a:where(:not(.wp-element-button)):focus,h3 a:where(:not(.wp-element-button)):focus,h4 a:where(:not(.wp-element-button)):focus,h5 a:where(:not(.wp-element-button)):focus,h6 a:where(:not(.wp-element-button)):focus){color: red;}:root :where(.wp-block-image img, .wp-block-image .wp-crop-area){border-radius: 9999px;}:root :where(.wp-block-image){color: red;}.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }.has-white-color{color: var(--wp--preset--color--white) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}h1.has-blue-color,h2.has-blue-color,h3.has-blue-color,h4.has-blue-color,h5.has-blue-color,h6.has-blue-color{color: var(--wp--preset--color--blue) !important;}h1.has-blue-background-color,h2.has-blue-background-color,h3.has-blue-background-color,h4.has-blue-background-color,h5.has-blue-background-color,h6.has-blue-background-color{background-color: var(--wp--preset--color--blue) !important;}h1.has-blue-border-color,h2.has-blue-border-color,h3.has-blue-border-color,h4.has-blue-border-color,h5.has-blue-border-color,h6.has-blue-border-color{border-color: var(--wp--preset--color--blue) !important;}'
484
486
  );
485
487
  } );
486
488