@wordpress/block-editor 12.24.0 → 12.25.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 (510) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -1
  3. package/build/components/alignment-control/ui.js +3 -1
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/block-inspector/index.js +1 -1
  6. package/build/components/block-inspector/index.js.map +1 -1
  7. package/build/components/block-list/block.js +0 -9
  8. package/build/components/block-list/block.js.map +1 -1
  9. package/build/components/block-list/index.js +4 -3
  10. package/build/components/block-list/index.js.map +1 -1
  11. package/build/components/block-list/index.native.js +1 -9
  12. package/build/components/block-list/index.native.js.map +1 -1
  13. package/build/components/block-list/use-block-props/index.js +6 -6
  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 +17 -46
  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 +10 -14
  18. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  19. package/build/components/block-mover/index.native.js +3 -1
  20. package/build/components/block-mover/index.native.js.map +1 -1
  21. package/build/components/block-settings-menu/block-settings-dropdown.js +0 -25
  22. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  23. package/build/components/block-switcher/pattern-transformations-menu.js +3 -1
  24. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  25. package/build/components/block-switcher/use-transformed-patterns.js +6 -2
  26. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  27. package/build/components/block-switcher/utils.js +15 -5
  28. package/build/components/block-switcher/utils.js.map +1 -1
  29. package/build/components/block-toolbar/use-has-block-toolbar.js +14 -9
  30. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  31. package/build/components/block-tools/index.js +3 -1
  32. package/build/components/block-tools/index.js.map +1 -1
  33. package/build/components/block-tools/use-show-block-tools.js +2 -5
  34. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  35. package/build/components/block-tools/zoom-out-mode-inserters.js +5 -1
  36. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  37. package/build/components/block-variation-picker/index.js +3 -2
  38. package/build/components/block-variation-picker/index.js.map +1 -1
  39. package/build/components/block-variation-transforms/index.js +3 -1
  40. package/build/components/block-variation-transforms/index.js.map +1 -1
  41. package/build/components/floating-toolbar/index.native.js +9 -5
  42. package/build/components/floating-toolbar/index.native.js.map +1 -1
  43. package/build/components/global-styles/background-panel.js +1 -1
  44. package/build/components/global-styles/background-panel.js.map +1 -1
  45. package/build/components/global-styles/color-panel.js +3 -1
  46. package/build/components/global-styles/color-panel.js.map +1 -1
  47. package/build/components/global-styles/dimensions-panel.js +16 -0
  48. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  49. package/build/components/global-styles/hooks.js +3 -2
  50. package/build/components/global-styles/hooks.js.map +1 -1
  51. package/build/components/global-styles/typography-panel.js +23 -23
  52. package/build/components/global-styles/typography-panel.js.map +1 -1
  53. package/build/components/global-styles/use-global-styles-output.js +149 -132
  54. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  55. package/build/components/global-styles/utils.js +45 -0
  56. package/build/components/global-styles/utils.js.map +1 -1
  57. package/build/components/inner-blocks/index.js +16 -2
  58. package/build/components/inner-blocks/index.js.map +1 -1
  59. package/build/components/inserter/block-patterns-tab/index.js +12 -31
  60. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  61. package/build/components/inserter/block-types-tab.js +4 -0
  62. package/build/components/inserter/block-types-tab.js.map +1 -1
  63. package/build/components/inserter/category-tabs/index.js +56 -0
  64. package/build/components/inserter/category-tabs/index.js.map +1 -0
  65. package/build/components/inserter/media-tab/index.js +2 -2
  66. package/build/components/inserter/media-tab/index.js.map +1 -1
  67. package/build/components/inserter/media-tab/media-panel.js +0 -25
  68. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  69. package/build/components/inserter/media-tab/media-preview.js +13 -3
  70. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  71. package/build/components/inserter/media-tab/media-tab.js +15 -29
  72. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  73. package/build/components/inserter/menu.js +59 -69
  74. package/build/components/inserter/menu.js.map +1 -1
  75. package/build/components/inserter/tabs.js +6 -6
  76. package/build/components/inserter/tabs.js.map +1 -1
  77. package/build/components/line-height-control/index.js +6 -2
  78. package/build/components/line-height-control/index.js.map +1 -1
  79. package/build/components/link-control/search-item.js +9 -3
  80. package/build/components/link-control/search-item.js.map +1 -1
  81. package/build/components/list-view/block-select-button.js +5 -170
  82. package/build/components/list-view/block-select-button.js.map +1 -1
  83. package/build/components/list-view/block.js +166 -14
  84. package/build/components/list-view/block.js.map +1 -1
  85. package/build/components/list-view/index.js +1 -1
  86. package/build/components/list-view/index.js.map +1 -1
  87. package/build/components/list-view/use-list-view-drop-zone.js +1 -1
  88. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  89. package/build/components/list-view/utils.js +3 -1
  90. package/build/components/list-view/utils.js.map +1 -1
  91. package/build/components/media-placeholder/index.js +3 -3
  92. package/build/components/media-placeholder/index.js.map +1 -1
  93. package/build/components/navigable-toolbar/index.js +3 -1
  94. package/build/components/navigable-toolbar/index.js.map +1 -1
  95. package/build/components/provider/block-refs-provider.js +3 -4
  96. package/build/components/provider/block-refs-provider.js.map +1 -1
  97. package/build/components/provider/use-block-sync.js +3 -12
  98. package/build/components/provider/use-block-sync.js.map +1 -1
  99. package/build/components/rich-text/event-listeners/before-input-rules.js +93 -0
  100. package/build/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
  101. package/build/components/rich-text/event-listeners/delete.js +58 -0
  102. package/build/components/rich-text/event-listeners/delete.js.map +1 -0
  103. package/build/components/rich-text/event-listeners/enter.js +98 -0
  104. package/build/components/rich-text/event-listeners/enter.js.map +1 -0
  105. package/build/components/rich-text/event-listeners/firefox-compat.js +36 -0
  106. package/build/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
  107. package/build/components/rich-text/event-listeners/index.js +44 -0
  108. package/build/components/rich-text/event-listeners/index.js.map +1 -0
  109. package/build/components/rich-text/event-listeners/input-events.js +22 -0
  110. package/build/components/rich-text/event-listeners/input-events.js.map +1 -0
  111. package/build/components/rich-text/event-listeners/input-rules.js +135 -0
  112. package/build/components/rich-text/event-listeners/input-rules.js.map +1 -0
  113. package/build/components/rich-text/event-listeners/insert-replacement-text.js +33 -0
  114. package/build/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
  115. package/build/components/rich-text/event-listeners/paste-handler.js +146 -0
  116. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -0
  117. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js +27 -0
  118. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
  119. package/build/components/rich-text/event-listeners/shortcuts.js +22 -0
  120. package/build/components/rich-text/event-listeners/shortcuts.js.map +1 -0
  121. package/build/components/rich-text/event-listeners/undo-automatic-change.js +51 -0
  122. package/build/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
  123. package/build/components/rich-text/index.js +11 -31
  124. package/build/components/rich-text/index.js.map +1 -1
  125. package/build/components/rich-text/index.native.js +13 -3
  126. package/build/components/rich-text/index.native.js.map +1 -1
  127. package/build/components/rich-text/multiline.js +6 -2
  128. package/build/components/rich-text/multiline.js.map +1 -1
  129. package/build/components/rich-text/native/index.native.js +12 -0
  130. package/build/components/rich-text/native/index.native.js.map +1 -1
  131. package/build/components/rich-text/use-format-types.js +8 -4
  132. package/build/components/rich-text/use-format-types.js.map +1 -1
  133. package/build/components/segmented-text-control/index.js +62 -0
  134. package/build/components/segmented-text-control/index.js.map +1 -0
  135. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
  136. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  137. package/build/components/text-alignment-control/index.js +76 -0
  138. package/build/components/text-alignment-control/index.js.map +1 -0
  139. package/build/components/text-decoration-control/index.js +21 -25
  140. package/build/components/text-decoration-control/index.js.map +1 -1
  141. package/build/components/text-transform-control/index.js +18 -22
  142. package/build/components/text-transform-control/index.js.map +1 -1
  143. package/build/components/use-block-display-information/index.js +9 -3
  144. package/build/components/use-block-display-information/index.js.map +1 -1
  145. package/build/components/use-on-block-drop/index.js +3 -1
  146. package/build/components/use-on-block-drop/index.js.map +1 -1
  147. package/build/components/writing-flow/use-drag-selection.js +3 -1
  148. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  149. package/build/components/writing-flow/use-tab-nav.js +3 -1
  150. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  151. package/build/components/writing-mode-control/index.js +16 -20
  152. package/build/components/writing-mode-control/index.js.map +1 -1
  153. package/build/hooks/duotone.js +3 -1
  154. package/build/hooks/duotone.js.map +1 -1
  155. package/build/hooks/utils.js +11 -6
  156. package/build/hooks/utils.js.map +1 -1
  157. package/build/private-apis.js +4 -2
  158. package/build/private-apis.js.map +1 -1
  159. package/build/store/actions.js +32 -8
  160. package/build/store/actions.js.map +1 -1
  161. package/build/store/private-selectors.js +27 -6
  162. package/build/store/private-selectors.js.map +1 -1
  163. package/build/store/reducer.js +11 -8
  164. package/build/store/reducer.js.map +1 -1
  165. package/build/store/selectors.js +21 -7
  166. package/build/store/selectors.js.map +1 -1
  167. package/build/utils/object.js +17 -0
  168. package/build/utils/object.js.map +1 -1
  169. package/build/utils/order-inserter-block-items.js +6 -2
  170. package/build/utils/order-inserter-block-items.js.map +1 -1
  171. package/build/utils/pasting.js +6 -2
  172. package/build/utils/pasting.js.map +1 -1
  173. package/build-module/components/alignment-control/ui.js +3 -1
  174. package/build-module/components/alignment-control/ui.js.map +1 -1
  175. package/build-module/components/block-inspector/index.js +1 -1
  176. package/build-module/components/block-inspector/index.js.map +1 -1
  177. package/build-module/components/block-list/block.js +0 -9
  178. package/build-module/components/block-list/block.js.map +1 -1
  179. package/build-module/components/block-list/index.js +4 -3
  180. package/build-module/components/block-list/index.js.map +1 -1
  181. package/build-module/components/block-list/index.native.js +1 -9
  182. package/build-module/components/block-list/index.native.js.map +1 -1
  183. package/build-module/components/block-list/use-block-props/index.js +6 -6
  184. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  185. package/build-module/components/block-list/use-block-props/use-block-refs.js +19 -48
  186. package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  187. package/build-module/components/block-list/use-block-props/use-is-hovered.js +10 -14
  188. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  189. package/build-module/components/block-mover/index.native.js +3 -1
  190. package/build-module/components/block-mover/index.native.js.map +1 -1
  191. package/build-module/components/block-settings-menu/block-settings-dropdown.js +1 -26
  192. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  193. package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -1
  194. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  195. package/build-module/components/block-switcher/use-transformed-patterns.js +6 -2
  196. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  197. package/build-module/components/block-switcher/utils.js +15 -5
  198. package/build-module/components/block-switcher/utils.js.map +1 -1
  199. package/build-module/components/block-toolbar/use-has-block-toolbar.js +14 -9
  200. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  201. package/build-module/components/block-tools/index.js +3 -1
  202. package/build-module/components/block-tools/index.js.map +1 -1
  203. package/build-module/components/block-tools/use-show-block-tools.js +2 -5
  204. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  205. package/build-module/components/block-tools/zoom-out-mode-inserters.js +5 -1
  206. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  207. package/build-module/components/block-variation-picker/index.js +3 -2
  208. package/build-module/components/block-variation-picker/index.js.map +1 -1
  209. package/build-module/components/block-variation-transforms/index.js +3 -1
  210. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  211. package/build-module/components/floating-toolbar/index.native.js +9 -5
  212. package/build-module/components/floating-toolbar/index.native.js.map +1 -1
  213. package/build-module/components/global-styles/background-panel.js +1 -1
  214. package/build-module/components/global-styles/background-panel.js.map +1 -1
  215. package/build-module/components/global-styles/color-panel.js +3 -1
  216. package/build-module/components/global-styles/color-panel.js.map +1 -1
  217. package/build-module/components/global-styles/dimensions-panel.js +17 -1
  218. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  219. package/build-module/components/global-styles/hooks.js +3 -2
  220. package/build-module/components/global-styles/hooks.js.map +1 -1
  221. package/build-module/components/global-styles/typography-panel.js +24 -24
  222. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  223. package/build-module/components/global-styles/use-global-styles-output.js +149 -132
  224. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  225. package/build-module/components/global-styles/utils.js +44 -0
  226. package/build-module/components/global-styles/utils.js.map +1 -1
  227. package/build-module/components/inner-blocks/index.js +16 -2
  228. package/build-module/components/inner-blocks/index.js.map +1 -1
  229. package/build-module/components/inserter/block-patterns-tab/index.js +13 -32
  230. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  231. package/build-module/components/inserter/block-types-tab.js +4 -0
  232. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  233. package/build-module/components/inserter/category-tabs/index.js +49 -0
  234. package/build-module/components/inserter/category-tabs/index.js.map +1 -0
  235. package/build-module/components/inserter/media-tab/index.js +1 -1
  236. package/build-module/components/inserter/media-tab/index.js.map +1 -1
  237. package/build-module/components/inserter/media-tab/media-panel.js +0 -24
  238. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  239. package/build-module/components/inserter/media-tab/media-preview.js +13 -3
  240. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  241. package/build-module/components/inserter/media-tab/media-tab.js +17 -31
  242. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  243. package/build-module/components/inserter/menu.js +61 -71
  244. package/build-module/components/inserter/menu.js.map +1 -1
  245. package/build-module/components/inserter/tabs.js +6 -6
  246. package/build-module/components/inserter/tabs.js.map +1 -1
  247. package/build-module/components/line-height-control/index.js +6 -2
  248. package/build-module/components/line-height-control/index.js.map +1 -1
  249. package/build-module/components/link-control/search-item.js +9 -3
  250. package/build-module/components/link-control/search-item.js.map +1 -1
  251. package/build-module/components/list-view/block-select-button.js +7 -172
  252. package/build-module/components/list-view/block-select-button.js.map +1 -1
  253. package/build-module/components/list-view/block.js +167 -15
  254. package/build-module/components/list-view/block.js.map +1 -1
  255. package/build-module/components/list-view/index.js +1 -1
  256. package/build-module/components/list-view/index.js.map +1 -1
  257. package/build-module/components/list-view/use-list-view-drop-zone.js +1 -1
  258. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  259. package/build-module/components/list-view/utils.js +3 -1
  260. package/build-module/components/list-view/utils.js.map +1 -1
  261. package/build-module/components/media-placeholder/index.js +3 -3
  262. package/build-module/components/media-placeholder/index.js.map +1 -1
  263. package/build-module/components/navigable-toolbar/index.js +3 -1
  264. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  265. package/build-module/components/provider/block-refs-provider.js +3 -4
  266. package/build-module/components/provider/block-refs-provider.js.map +1 -1
  267. package/build-module/components/provider/use-block-sync.js +4 -13
  268. package/build-module/components/provider/use-block-sync.js.map +1 -1
  269. package/build-module/components/rich-text/event-listeners/before-input-rules.js +86 -0
  270. package/build-module/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
  271. package/build-module/components/rich-text/event-listeners/delete.js +51 -0
  272. package/build-module/components/rich-text/event-listeners/delete.js.map +1 -0
  273. package/build-module/components/rich-text/event-listeners/enter.js +92 -0
  274. package/build-module/components/rich-text/event-listeners/enter.js.map +1 -0
  275. package/build-module/components/rich-text/event-listeners/firefox-compat.js +29 -0
  276. package/build-module/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
  277. package/build-module/components/rich-text/event-listeners/index.js +36 -0
  278. package/build-module/components/rich-text/event-listeners/index.js.map +1 -0
  279. package/build-module/components/rich-text/event-listeners/input-events.js +15 -0
  280. package/build-module/components/rich-text/event-listeners/input-events.js.map +1 -0
  281. package/build-module/components/rich-text/event-listeners/input-rules.js +127 -0
  282. package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -0
  283. package/build-module/components/rich-text/event-listeners/insert-replacement-text.js +27 -0
  284. package/build-module/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
  285. package/build-module/components/rich-text/event-listeners/paste-handler.js +142 -0
  286. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -0
  287. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js +21 -0
  288. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
  289. package/build-module/components/rich-text/event-listeners/shortcuts.js +15 -0
  290. package/build-module/components/rich-text/event-listeners/shortcuts.js.map +1 -0
  291. package/build-module/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
  292. package/build-module/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
  293. package/build-module/components/rich-text/index.js +12 -32
  294. package/build-module/components/rich-text/index.js.map +1 -1
  295. package/build-module/components/rich-text/index.native.js +13 -3
  296. package/build-module/components/rich-text/index.native.js.map +1 -1
  297. package/build-module/components/rich-text/multiline.js +6 -2
  298. package/build-module/components/rich-text/multiline.js.map +1 -1
  299. package/build-module/components/rich-text/native/index.native.js +12 -0
  300. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  301. package/build-module/components/rich-text/use-format-types.js +8 -4
  302. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  303. package/build-module/components/segmented-text-control/index.js +55 -0
  304. package/build-module/components/segmented-text-control/index.js.map +1 -0
  305. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
  306. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  307. package/build-module/components/text-alignment-control/index.js +68 -0
  308. package/build-module/components/text-alignment-control/index.js.map +1 -0
  309. package/build-module/components/text-decoration-control/index.js +21 -25
  310. package/build-module/components/text-decoration-control/index.js.map +1 -1
  311. package/build-module/components/text-transform-control/index.js +18 -22
  312. package/build-module/components/text-transform-control/index.js.map +1 -1
  313. package/build-module/components/use-block-display-information/index.js +9 -3
  314. package/build-module/components/use-block-display-information/index.js.map +1 -1
  315. package/build-module/components/use-on-block-drop/index.js +3 -1
  316. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  317. package/build-module/components/writing-flow/use-drag-selection.js +3 -1
  318. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  319. package/build-module/components/writing-flow/use-tab-nav.js +3 -1
  320. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  321. package/build-module/components/writing-mode-control/index.js +16 -20
  322. package/build-module/components/writing-mode-control/index.js.map +1 -1
  323. package/build-module/hooks/duotone.js +3 -1
  324. package/build-module/hooks/duotone.js.map +1 -1
  325. package/build-module/hooks/utils.js +11 -6
  326. package/build-module/hooks/utils.js.map +1 -1
  327. package/build-module/private-apis.js +4 -2
  328. package/build-module/private-apis.js.map +1 -1
  329. package/build-module/store/actions.js +32 -8
  330. package/build-module/store/actions.js.map +1 -1
  331. package/build-module/store/private-selectors.js +27 -5
  332. package/build-module/store/private-selectors.js.map +1 -1
  333. package/build-module/store/reducer.js +11 -8
  334. package/build-module/store/reducer.js.map +1 -1
  335. package/build-module/store/selectors.js +21 -7
  336. package/build-module/store/selectors.js.map +1 -1
  337. package/build-module/utils/object.js +16 -0
  338. package/build-module/utils/object.js.map +1 -1
  339. package/build-module/utils/order-inserter-block-items.js +6 -2
  340. package/build-module/utils/order-inserter-block-items.js.map +1 -1
  341. package/build-module/utils/pasting.js +6 -2
  342. package/build-module/utils/pasting.js.map +1 -1
  343. package/build-style/content-rtl.css +41 -68
  344. package/build-style/content.css +41 -68
  345. package/build-style/style-rtl.css +100 -199
  346. package/build-style/style.css +100 -199
  347. package/package.json +31 -31
  348. package/src/components/alignment-control/ui.js +3 -1
  349. package/src/components/block-bindings-toolbar-indicator/style.scss +1 -4
  350. package/src/components/block-canvas/style.scss +1 -3
  351. package/src/components/block-draggable/test/helpers.native.js +8 -8
  352. package/src/components/block-inspector/index.js +1 -2
  353. package/src/components/block-list/block.js +2 -13
  354. package/src/components/block-list/content.scss +9 -1
  355. package/src/components/block-list/index.js +4 -4
  356. package/src/components/block-list/index.native.js +1 -6
  357. package/src/components/block-list/use-block-props/index.js +12 -4
  358. package/src/components/block-list/use-block-props/use-block-refs.js +17 -57
  359. package/src/components/block-list/use-block-props/use-is-hovered.js +11 -16
  360. package/src/components/block-mover/index.native.js +3 -1
  361. package/src/components/block-patterns-list/style.scss +1 -3
  362. package/src/components/block-preview/style.scss +13 -15
  363. package/src/components/block-settings-menu/block-settings-dropdown.js +1 -51
  364. package/src/components/block-switcher/pattern-transformations-menu.js +3 -1
  365. package/src/components/block-switcher/use-transformed-patterns.js +6 -2
  366. package/src/components/block-switcher/utils.js +14 -5
  367. package/src/components/block-toolbar/style.scss +8 -11
  368. package/src/components/block-toolbar/use-has-block-toolbar.js +21 -16
  369. package/src/components/block-tools/index.js +3 -1
  370. package/src/components/block-tools/use-show-block-tools.js +36 -48
  371. package/src/components/block-tools/zoom-out-mode-inserters.js +5 -1
  372. package/src/components/block-variation-picker/content.scss +22 -72
  373. package/src/components/block-variation-picker/index.js +3 -2
  374. package/src/components/block-variation-transforms/index.js +3 -1
  375. package/src/components/floating-toolbar/index.native.js +5 -2
  376. package/src/components/global-styles/background-panel.js +1 -3
  377. package/src/components/global-styles/color-panel.js +3 -1
  378. package/src/components/global-styles/dimensions-panel.js +18 -1
  379. package/src/components/global-styles/hooks.js +2 -0
  380. package/src/components/global-styles/test/utils.js +21 -0
  381. package/src/components/global-styles/typography-panel.js +27 -23
  382. package/src/components/global-styles/use-global-styles-output.js +211 -187
  383. package/src/components/global-styles/utils.js +55 -0
  384. package/src/components/inner-blocks/index.js +14 -1
  385. package/src/components/inserter/block-patterns-tab/index.js +15 -65
  386. package/src/components/inserter/block-types-tab.js +5 -0
  387. package/src/components/inserter/category-tabs/index.js +74 -0
  388. package/src/components/inserter/media-tab/index.js +1 -1
  389. package/src/components/inserter/media-tab/media-panel.js +0 -22
  390. package/src/components/inserter/media-tab/media-preview.js +15 -7
  391. package/src/components/inserter/media-tab/media-tab.js +44 -83
  392. package/src/components/inserter/menu.js +139 -117
  393. package/src/components/inserter/style.scss +90 -170
  394. package/src/components/inserter/tabs.js +5 -13
  395. package/src/components/line-height-control/index.js +6 -2
  396. package/src/components/link-control/search-item.js +9 -3
  397. package/src/components/list-view/block-select-button.js +73 -266
  398. package/src/components/list-view/block.js +218 -28
  399. package/src/components/list-view/index.js +1 -1
  400. package/src/components/list-view/style.scss +20 -28
  401. package/src/components/list-view/use-list-view-drop-zone.js +1 -1
  402. package/src/components/list-view/utils.js +3 -1
  403. package/src/components/media-placeholder/content.scss +0 -11
  404. package/src/components/media-placeholder/index.js +3 -3
  405. package/src/components/navigable-toolbar/index.js +3 -1
  406. package/src/components/provider/block-refs-provider.js +3 -8
  407. package/src/components/provider/test/use-block-sync.js +7 -0
  408. package/src/components/provider/use-block-sync.js +3 -20
  409. package/src/components/rich-text/event-listeners/before-input-rules.js +92 -0
  410. package/src/components/rich-text/event-listeners/delete.js +53 -0
  411. package/src/components/rich-text/event-listeners/enter.js +104 -0
  412. package/src/components/rich-text/event-listeners/firefox-compat.js +31 -0
  413. package/src/components/rich-text/event-listeners/index.js +56 -0
  414. package/src/components/rich-text/event-listeners/input-events.js +13 -0
  415. package/src/components/rich-text/event-listeners/input-rules.js +146 -0
  416. package/src/components/rich-text/event-listeners/insert-replacement-text.js +28 -0
  417. package/src/components/rich-text/event-listeners/paste-handler.js +169 -0
  418. package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +24 -0
  419. package/src/components/rich-text/event-listeners/shortcuts.js +13 -0
  420. package/src/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
  421. package/src/components/rich-text/index.js +7 -34
  422. package/src/components/rich-text/index.native.js +11 -0
  423. package/src/components/rich-text/multiline.js +6 -2
  424. package/src/components/rich-text/native/index.native.js +11 -0
  425. package/src/components/rich-text/use-format-types.js +6 -2
  426. package/src/components/segmented-text-control/index.js +63 -0
  427. package/src/components/{writing-mode-control → segmented-text-control}/style.scss +2 -5
  428. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -1
  429. package/src/components/text-alignment-control/index.js +91 -0
  430. package/src/components/text-alignment-control/stories/index.story.js +39 -0
  431. package/src/components/text-decoration-control/index.js +20 -33
  432. package/src/components/text-transform-control/index.js +17 -30
  433. package/src/components/use-block-display-information/index.js +9 -3
  434. package/src/components/use-on-block-drop/index.js +3 -1
  435. package/src/components/writing-flow/use-drag-selection.js +3 -1
  436. package/src/components/writing-flow/use-tab-nav.js +3 -1
  437. package/src/components/writing-mode-control/index.js +15 -28
  438. package/src/hooks/duotone.js +3 -1
  439. package/src/hooks/utils.js +16 -2
  440. package/src/private-apis.js +4 -2
  441. package/src/store/actions.js +36 -12
  442. package/src/store/private-selectors.js +28 -4
  443. package/src/store/reducer.js +13 -23
  444. package/src/store/selectors.js +20 -7
  445. package/src/style.scss +1 -2
  446. package/src/utils/object.js +16 -0
  447. package/src/utils/order-inserter-block-items.js +6 -2
  448. package/src/utils/pasting.js +6 -2
  449. package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -54
  450. package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +0 -1
  451. package/build/components/rich-text/use-before-input-rules.js +0 -98
  452. package/build/components/rich-text/use-before-input-rules.js.map +0 -1
  453. package/build/components/rich-text/use-delete.js +0 -64
  454. package/build/components/rich-text/use-delete.js.map +0 -1
  455. package/build/components/rich-text/use-enter.js +0 -109
  456. package/build/components/rich-text/use-enter.js.map +0 -1
  457. package/build/components/rich-text/use-firefox-compat.js +0 -44
  458. package/build/components/rich-text/use-firefox-compat.js.map +0 -1
  459. package/build/components/rich-text/use-input-events.js +0 -25
  460. package/build/components/rich-text/use-input-events.js.map +0 -1
  461. package/build/components/rich-text/use-input-rules.js +0 -139
  462. package/build/components/rich-text/use-input-rules.js.map +0 -1
  463. package/build/components/rich-text/use-insert-replacement-text.js +0 -38
  464. package/build/components/rich-text/use-insert-replacement-text.js.map +0 -1
  465. package/build/components/rich-text/use-paste-handler.js +0 -158
  466. package/build/components/rich-text/use-paste-handler.js.map +0 -1
  467. package/build/components/rich-text/use-remove-browser-shortcuts.js +0 -32
  468. package/build/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
  469. package/build/components/rich-text/use-shortcuts.js +0 -25
  470. package/build/components/rich-text/use-shortcuts.js.map +0 -1
  471. package/build/components/rich-text/use-undo-automatic-change.js +0 -53
  472. package/build/components/rich-text/use-undo-automatic-change.js.map +0 -1
  473. package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -47
  474. package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +0 -1
  475. package/build-module/components/rich-text/use-before-input-rules.js +0 -92
  476. package/build-module/components/rich-text/use-before-input-rules.js.map +0 -1
  477. package/build-module/components/rich-text/use-delete.js +0 -57
  478. package/build-module/components/rich-text/use-delete.js.map +0 -1
  479. package/build-module/components/rich-text/use-enter.js +0 -102
  480. package/build-module/components/rich-text/use-enter.js.map +0 -1
  481. package/build-module/components/rich-text/use-firefox-compat.js +0 -37
  482. package/build-module/components/rich-text/use-firefox-compat.js.map +0 -1
  483. package/build-module/components/rich-text/use-input-events.js +0 -18
  484. package/build-module/components/rich-text/use-input-events.js.map +0 -1
  485. package/build-module/components/rich-text/use-input-rules.js +0 -132
  486. package/build-module/components/rich-text/use-input-rules.js.map +0 -1
  487. package/build-module/components/rich-text/use-insert-replacement-text.js +0 -32
  488. package/build-module/components/rich-text/use-insert-replacement-text.js.map +0 -1
  489. package/build-module/components/rich-text/use-paste-handler.js +0 -152
  490. package/build-module/components/rich-text/use-paste-handler.js.map +0 -1
  491. package/build-module/components/rich-text/use-remove-browser-shortcuts.js +0 -26
  492. package/build-module/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
  493. package/build-module/components/rich-text/use-shortcuts.js +0 -18
  494. package/build-module/components/rich-text/use-shortcuts.js.map +0 -1
  495. package/build-module/components/rich-text/use-undo-automatic-change.js +0 -46
  496. package/build-module/components/rich-text/use-undo-automatic-change.js.map +0 -1
  497. package/src/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -55
  498. package/src/components/rich-text/use-before-input-rules.js +0 -99
  499. package/src/components/rich-text/use-delete.js +0 -59
  500. package/src/components/rich-text/use-enter.js +0 -110
  501. package/src/components/rich-text/use-firefox-compat.js +0 -39
  502. package/src/components/rich-text/use-input-events.js +0 -19
  503. package/src/components/rich-text/use-input-rules.js +0 -150
  504. package/src/components/rich-text/use-insert-replacement-text.js +0 -31
  505. package/src/components/rich-text/use-paste-handler.js +0 -180
  506. package/src/components/rich-text/use-remove-browser-shortcuts.js +0 -29
  507. package/src/components/rich-text/use-shortcuts.js +0 -19
  508. package/src/components/rich-text/use-undo-automatic-change.js +0 -46
  509. package/src/components/text-decoration-control/style.scss +0 -18
  510. package/src/components/text-transform-control/style.scss +0 -18
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_element","_getBlockSettings","_fontFamily","_interopRequireDefault","_fontAppearanceControl","_lineHeightControl","_letterSpacingControl","_textTransformControl","_textDecorationControl","_writingModeControl","_utils","_object","MIN_TEXT_COLUMNS","MAX_TEXT_COLUMNS","useHasTypographyPanel","settings","hasFontFamily","useHasFontFamilyControl","hasLineHeight","useHasLineHeightControl","hasFontAppearance","useHasAppearanceControl","hasLetterSpacing","useHasLetterSpacingControl","hasTextTransform","useHasTextTransformControl","hasTextDecoration","useHasTextDecorationControl","hasWritingMode","useHasWritingModeControl","hasTextColumns","useHasTextColumnsControl","hasFontSize","useHasFontSizeControl","hasOriginValue","typography","fontSizes","customFontSize","fontFamilies","lineHeight","fontStyle","fontWeight","useAppearanceControlLabel","__","letterSpacing","textTransform","textDecoration","writingMode","textColumns","getUniqueFontSizesBySlug","_settings$typography$","_overrideOrigins","overriddenFontSizes","overrideOrigins","uniqueSizes","currentSize","some","slug","push","TypographyToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","_react","createElement","__experimentalToolsPanel","label","dropdownMenuProps","TOOLSPANEL_DROPDOWNMENU_PROPS","DEFAULT_CONTROLS","fontFamily","fontSize","fontAppearance","TypographyPanel","as","Wrapper","inheritedValue","defaultControls","_settings$typography$2","decodeValue","rawValue","getValueFromVariable","hasFontFamilyEnabled","mergedFontFamilies","mergeOrigins","setFontFamily","newValue","find","f","setImmutably","undefined","resetFontFamily","hasFontSizeEnabled","disableCustomFontSizes","mergedFontSizes","setFontSize","metadata","actualValue","resetFontSize","hasAppearanceControl","appearanceControlLabel","hasFontStyles","hasFontWeights","setFontAppearance","newFontStyle","newFontWeight","resetFontAppearance","hasLineHeightEnabled","setLineHeight","resetLineHeight","hasLetterSpacingControl","setLetterSpacing","resetLetterSpacing","hasTextColumnsControl","setTextColumns","resetTextColumns","hasTextTransformControl","setTextTransform","resetTextTransform","hasTextDecorationControl","setTextDecoration","resetTextDecoration","hasWritingModeControl","setWritingMode","resetWritingMode","useCallback","previousValue","__experimentalToolsPanelItem","hasValue","onDeselect","isShownByDefault","default","size","__nextHasNoMarginBottom","FontSizePicker","withReset","withSlider","className","__unstableInputWidth","__experimentalNumberControl","max","min","spinControls","initialPosition","showNone","isBlock"],"sources":["@wordpress/block-editor/src/components/global-styles/typography-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFontSizePicker,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tmergeOrigins,\n\toverrideOrigins,\n\thasOriginValue,\n} from '../../store/get-block-settings';\nimport FontFamilyControl from '../font-family';\nimport FontAppearanceControl from '../font-appearance-control';\nimport LineHeightControl from '../line-height-control';\nimport LetterSpacingControl from '../letter-spacing-control';\nimport TextTransformControl from '../text-transform-control';\nimport TextDecorationControl from '../text-decoration-control';\nimport WritingModeControl from '../writing-mode-control';\nimport { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst MIN_TEXT_COLUMNS = 1;\nconst MAX_TEXT_COLUMNS = 6;\n\nexport function useHasTypographyPanel( settings ) {\n\tconst hasFontFamily = useHasFontFamilyControl( settings );\n\tconst hasLineHeight = useHasLineHeightControl( settings );\n\tconst hasFontAppearance = useHasAppearanceControl( settings );\n\tconst hasLetterSpacing = useHasLetterSpacingControl( settings );\n\tconst hasTextTransform = useHasTextTransformControl( settings );\n\tconst hasTextDecoration = useHasTextDecorationControl( settings );\n\tconst hasWritingMode = useHasWritingModeControl( settings );\n\tconst hasTextColumns = useHasTextColumnsControl( settings );\n\tconst hasFontSize = useHasFontSizeControl( settings );\n\n\treturn (\n\t\thasFontFamily ||\n\t\thasLineHeight ||\n\t\thasFontAppearance ||\n\t\thasLetterSpacing ||\n\t\thasTextTransform ||\n\t\thasFontSize ||\n\t\thasTextDecoration ||\n\t\thasWritingMode ||\n\t\thasTextColumns\n\t);\n}\n\nfunction useHasFontSizeControl( settings ) {\n\treturn (\n\t\thasOriginValue( settings?.typography?.fontSizes ) ||\n\t\tsettings?.typography?.customFontSize\n\t);\n}\n\nfunction useHasFontFamilyControl( settings ) {\n\treturn hasOriginValue( settings?.typography?.fontFamilies );\n}\n\nfunction useHasLineHeightControl( settings ) {\n\treturn settings?.typography?.lineHeight;\n}\n\nfunction useHasAppearanceControl( settings ) {\n\treturn settings?.typography?.fontStyle || settings?.typography?.fontWeight;\n}\n\nfunction useAppearanceControlLabel( settings ) {\n\tif ( ! settings?.typography?.fontStyle ) {\n\t\treturn __( 'Font weight' );\n\t}\n\tif ( ! settings?.typography?.fontWeight ) {\n\t\treturn __( 'Font style' );\n\t}\n\treturn __( 'Appearance' );\n}\n\nfunction useHasLetterSpacingControl( settings ) {\n\treturn settings?.typography?.letterSpacing;\n}\n\nfunction useHasTextTransformControl( settings ) {\n\treturn settings?.typography?.textTransform;\n}\n\nfunction useHasTextDecorationControl( settings ) {\n\treturn settings?.typography?.textDecoration;\n}\n\nfunction useHasWritingModeControl( settings ) {\n\treturn settings?.typography?.writingMode;\n}\n\nfunction useHasTextColumnsControl( settings ) {\n\treturn settings?.typography?.textColumns;\n}\n\nfunction getUniqueFontSizesBySlug( settings ) {\n\tconst fontSizes = settings?.typography?.fontSizes ?? {};\n\tconst overriddenFontSizes = overrideOrigins( fontSizes ) ?? [];\n\tconst uniqueSizes = [];\n\tfor ( const currentSize of overriddenFontSizes ) {\n\t\tif ( ! uniqueSizes.some( ( { slug } ) => slug === currentSize.slug ) ) {\n\t\t\tuniqueSizes.push( currentSize );\n\t\t}\n\t}\n\treturn uniqueSizes;\n}\n\nfunction TypographyToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Typography' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tfontFamily: true,\n\tfontSize: true,\n\tfontAppearance: true,\n\tlineHeight: true,\n\tletterSpacing: true,\n\ttextTransform: true,\n\ttextDecoration: true,\n\twritingMode: true,\n\ttextColumns: true,\n};\n\nexport default function TypographyPanel( {\n\tas: Wrapper = TypographyToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Font Family\n\tconst hasFontFamilyEnabled = useHasFontFamilyControl( settings );\n\tconst fontFamilies = settings?.typography?.fontFamilies ?? {};\n\tconst mergedFontFamilies = fontFamilies ? mergeOrigins( fontFamilies ) : [];\n\tconst fontFamily = decodeValue( inheritedValue?.typography?.fontFamily );\n\tconst setFontFamily = ( newValue ) => {\n\t\tconst slug = mergedFontFamilies?.find(\n\t\t\t( { fontFamily: f } ) => f === newValue\n\t\t)?.slug;\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'fontFamily' ],\n\t\t\t\tslug\n\t\t\t\t\t? `var:preset|font-family|${ slug }`\n\t\t\t\t\t: newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasFontFamily = () => !! value?.typography?.fontFamily;\n\tconst resetFontFamily = () => setFontFamily( undefined );\n\n\t// Font Size\n\tconst hasFontSizeEnabled = useHasFontSizeControl( settings );\n\tconst disableCustomFontSizes = ! settings?.typography?.customFontSize;\n\tconst mergedFontSizes = getUniqueFontSizesBySlug( settings );\n\n\tconst fontSize = decodeValue( inheritedValue?.typography?.fontSize );\n\tconst setFontSize = ( newValue, metadata ) => {\n\t\tconst actualValue = !! metadata?.slug\n\t\t\t? `var:preset|font-size|${ metadata?.slug }`\n\t\t\t: newValue;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'fontSize' ],\n\t\t\t\tactualValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasFontSize = () => !! value?.typography?.fontSize;\n\tconst resetFontSize = () => setFontSize( undefined );\n\n\t// Appearance\n\tconst hasAppearanceControl = useHasAppearanceControl( settings );\n\tconst appearanceControlLabel = useAppearanceControlLabel( settings );\n\tconst hasFontStyles = settings?.typography?.fontStyle;\n\tconst hasFontWeights = settings?.typography?.fontWeight;\n\tconst fontStyle = decodeValue( inheritedValue?.typography?.fontStyle );\n\tconst fontWeight = decodeValue( inheritedValue?.typography?.fontWeight );\n\tconst setFontAppearance = ( {\n\t\tfontStyle: newFontStyle,\n\t\tfontWeight: newFontWeight,\n\t} ) => {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\tfontStyle: newFontStyle || undefined,\n\t\t\t\tfontWeight: newFontWeight || undefined,\n\t\t\t},\n\t\t} );\n\t};\n\tconst hasFontAppearance = () =>\n\t\t!! value?.typography?.fontStyle || !! value?.typography?.fontWeight;\n\tconst resetFontAppearance = () => {\n\t\tsetFontAppearance( {} );\n\t};\n\n\t// Line Height\n\tconst hasLineHeightEnabled = useHasLineHeightControl( settings );\n\tconst lineHeight = decodeValue( inheritedValue?.typography?.lineHeight );\n\tconst setLineHeight = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'lineHeight' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLineHeight = () => value?.typography?.lineHeight !== undefined;\n\tconst resetLineHeight = () => setLineHeight( undefined );\n\n\t// Letter Spacing\n\tconst hasLetterSpacingControl = useHasLetterSpacingControl( settings );\n\tconst letterSpacing = decodeValue(\n\t\tinheritedValue?.typography?.letterSpacing\n\t);\n\tconst setLetterSpacing = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'letterSpacing' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLetterSpacing = () => !! value?.typography?.letterSpacing;\n\tconst resetLetterSpacing = () => setLetterSpacing( undefined );\n\n\t// Text Columns\n\tconst hasTextColumnsControl = useHasTextColumnsControl( settings );\n\tconst textColumns = decodeValue( inheritedValue?.typography?.textColumns );\n\tconst setTextColumns = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textColumns' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextColumns = () => !! value?.typography?.textColumns;\n\tconst resetTextColumns = () => setTextColumns( undefined );\n\n\t// Text Transform\n\tconst hasTextTransformControl = useHasTextTransformControl( settings );\n\tconst textTransform = decodeValue(\n\t\tinheritedValue?.typography?.textTransform\n\t);\n\tconst setTextTransform = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textTransform' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextTransform = () => !! value?.typography?.textTransform;\n\tconst resetTextTransform = () => setTextTransform( undefined );\n\n\t// Text Decoration\n\tconst hasTextDecorationControl = useHasTextDecorationControl( settings );\n\tconst textDecoration = decodeValue(\n\t\tinheritedValue?.typography?.textDecoration\n\t);\n\tconst setTextDecoration = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textDecoration' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextDecoration = () => !! value?.typography?.textDecoration;\n\tconst resetTextDecoration = () => setTextDecoration( undefined );\n\n\t// Text Orientation\n\tconst hasWritingModeControl = useHasWritingModeControl( settings );\n\tconst writingMode = decodeValue( inheritedValue?.typography?.writingMode );\n\tconst setWritingMode = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'writingMode' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasWritingMode = () => !! value?.typography?.writingMode;\n\tconst resetWritingMode = () => setWritingMode( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\ttypography: {},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasFontFamilyEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Font family' ) }\n\t\t\t\t\thasValue={ hasFontFamily }\n\t\t\t\t\tonDeselect={ resetFontFamily }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontFamily }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontFamilyControl\n\t\t\t\t\t\tfontFamilies={ mergedFontFamilies }\n\t\t\t\t\t\tvalue={ fontFamily }\n\t\t\t\t\t\tonChange={ setFontFamily }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasFontSizeEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Font size' ) }\n\t\t\t\t\thasValue={ hasFontSize }\n\t\t\t\t\tonDeselect={ resetFontSize }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontSize }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontSizePicker\n\t\t\t\t\t\tvalue={ fontSize }\n\t\t\t\t\t\tonChange={ setFontSize }\n\t\t\t\t\t\tfontSizes={ mergedFontSizes }\n\t\t\t\t\t\tdisableCustomFontSizes={ disableCustomFontSizes }\n\t\t\t\t\t\twithReset={ false }\n\t\t\t\t\t\twithSlider\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasAppearanceControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ appearanceControlLabel }\n\t\t\t\t\thasValue={ hasFontAppearance }\n\t\t\t\t\tonDeselect={ resetFontAppearance }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontAppearance }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontAppearanceControl\n\t\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t\tfontStyle,\n\t\t\t\t\t\t\tfontWeight,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ setFontAppearance }\n\t\t\t\t\t\thasFontStyles={ hasFontStyles }\n\t\t\t\t\t\thasFontWeights={ hasFontWeights }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasLineHeightEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Line height' ) }\n\t\t\t\t\thasValue={ hasLineHeight }\n\t\t\t\t\tonDeselect={ resetLineHeight }\n\t\t\t\t\tisShownByDefault={ defaultControls.lineHeight }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<LineHeightControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t\tvalue={ lineHeight }\n\t\t\t\t\t\tonChange={ setLineHeight }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasLetterSpacingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Letter spacing' ) }\n\t\t\t\t\thasValue={ hasLetterSpacing }\n\t\t\t\t\tonDeselect={ resetLetterSpacing }\n\t\t\t\t\tisShownByDefault={ defaultControls.letterSpacing }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<LetterSpacingControl\n\t\t\t\t\t\tvalue={ letterSpacing }\n\t\t\t\t\t\tonChange={ setLetterSpacing }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextColumnsControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Text columns' ) }\n\t\t\t\t\thasValue={ hasTextColumns }\n\t\t\t\t\tonDeselect={ resetTextColumns }\n\t\t\t\t\tisShownByDefault={ defaultControls.textColumns }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tlabel={ __( 'Text columns' ) }\n\t\t\t\t\t\tmax={ MAX_TEXT_COLUMNS }\n\t\t\t\t\t\tmin={ MIN_TEXT_COLUMNS }\n\t\t\t\t\t\tonChange={ setTextColumns }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\tspinControls=\"custom\"\n\t\t\t\t\t\tvalue={ textColumns }\n\t\t\t\t\t\tinitialPosition={ 1 }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextDecorationControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Text decoration' ) }\n\t\t\t\t\thasValue={ hasTextDecoration }\n\t\t\t\t\tonDeselect={ resetTextDecoration }\n\t\t\t\t\tisShownByDefault={ defaultControls.textDecoration }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextDecorationControl\n\t\t\t\t\t\tvalue={ textDecoration }\n\t\t\t\t\t\tonChange={ setTextDecoration }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasWritingModeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Text orientation' ) }\n\t\t\t\t\thasValue={ hasWritingMode }\n\t\t\t\t\tonDeselect={ resetWritingMode }\n\t\t\t\t\tisShownByDefault={ defaultControls.writingMode }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<WritingModeControl\n\t\t\t\t\t\tvalue={ writingMode }\n\t\t\t\t\t\tonChange={ setWritingMode }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextTransformControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Letter case' ) }\n\t\t\t\t\thasValue={ hasTextTransform }\n\t\t\t\t\tonDeselect={ resetTextTransform }\n\t\t\t\t\tisShownByDefault={ defaultControls.textTransform }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextTransformControl\n\t\t\t\t\t\tvalue={ textTransform }\n\t\t\t\t\t\tonChange={ setTextTransform }\n\t\t\t\t\t\tshowNone\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_element","_getBlockSettings","_fontFamily","_interopRequireDefault","_fontAppearanceControl","_lineHeightControl","_letterSpacingControl","_textTransformControl","_textDecorationControl","_writingModeControl","_utils","_object","MIN_TEXT_COLUMNS","MAX_TEXT_COLUMNS","useHasTypographyPanel","settings","hasFontFamily","useHasFontFamilyControl","hasLineHeight","useHasLineHeightControl","hasFontAppearance","useHasAppearanceControl","hasLetterSpacing","useHasLetterSpacingControl","hasTextTransform","useHasTextTransformControl","hasTextDecoration","useHasTextDecorationControl","hasWritingMode","useHasWritingModeControl","hasTextColumns","useHasTextColumnsControl","hasFontSize","useHasFontSizeControl","typography","defaultFontSizes","fontSizes","default","length","theme","custom","customFontSize","hasOriginValue","fontFamilies","lineHeight","fontStyle","fontWeight","useAppearanceControlLabel","__","letterSpacing","textTransform","textDecoration","writingMode","textColumns","getMergedFontSizes","_fontSizes$custom","_fontSizes$theme","_fontSizes$default","defaultFontSizesEnabled","TypographyToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","_react","createElement","__experimentalToolsPanel","label","dropdownMenuProps","TOOLSPANEL_DROPDOWNMENU_PROPS","DEFAULT_CONTROLS","fontFamily","fontSize","fontAppearance","TypographyPanel","as","Wrapper","inheritedValue","defaultControls","_settings$typography$","decodeValue","rawValue","getValueFromVariable","hasFontFamilyEnabled","mergedFontFamilies","mergeOrigins","setFontFamily","newValue","slug","find","f","setImmutably","undefined","resetFontFamily","hasFontSizeEnabled","disableCustomFontSizes","mergedFontSizes","setFontSize","metadata","actualValue","resetFontSize","hasAppearanceControl","appearanceControlLabel","hasFontStyles","hasFontWeights","setFontAppearance","newFontStyle","newFontWeight","resetFontAppearance","hasLineHeightEnabled","setLineHeight","resetLineHeight","hasLetterSpacingControl","setLetterSpacing","resetLetterSpacing","hasTextColumnsControl","setTextColumns","resetTextColumns","hasTextTransformControl","setTextTransform","resetTextTransform","hasTextDecorationControl","setTextDecoration","resetTextDecoration","hasWritingModeControl","setWritingMode","resetWritingMode","useCallback","previousValue","__experimentalToolsPanelItem","hasValue","onDeselect","isShownByDefault","size","__nextHasNoMarginBottom","FontSizePicker","withReset","withSlider","className","__unstableInputWidth","__experimentalNumberControl","max","min","spinControls","initialPosition","showNone","isBlock"],"sources":["@wordpress/block-editor/src/components/global-styles/typography-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFontSizePicker,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { mergeOrigins, hasOriginValue } from '../../store/get-block-settings';\nimport FontFamilyControl from '../font-family';\nimport FontAppearanceControl from '../font-appearance-control';\nimport LineHeightControl from '../line-height-control';\nimport LetterSpacingControl from '../letter-spacing-control';\nimport TextTransformControl from '../text-transform-control';\nimport TextDecorationControl from '../text-decoration-control';\nimport WritingModeControl from '../writing-mode-control';\nimport { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst MIN_TEXT_COLUMNS = 1;\nconst MAX_TEXT_COLUMNS = 6;\n\nexport function useHasTypographyPanel( settings ) {\n\tconst hasFontFamily = useHasFontFamilyControl( settings );\n\tconst hasLineHeight = useHasLineHeightControl( settings );\n\tconst hasFontAppearance = useHasAppearanceControl( settings );\n\tconst hasLetterSpacing = useHasLetterSpacingControl( settings );\n\tconst hasTextTransform = useHasTextTransformControl( settings );\n\tconst hasTextDecoration = useHasTextDecorationControl( settings );\n\tconst hasWritingMode = useHasWritingModeControl( settings );\n\tconst hasTextColumns = useHasTextColumnsControl( settings );\n\tconst hasFontSize = useHasFontSizeControl( settings );\n\n\treturn (\n\t\thasFontFamily ||\n\t\thasLineHeight ||\n\t\thasFontAppearance ||\n\t\thasLetterSpacing ||\n\t\thasTextTransform ||\n\t\thasFontSize ||\n\t\thasTextDecoration ||\n\t\thasWritingMode ||\n\t\thasTextColumns\n\t);\n}\n\nfunction useHasFontSizeControl( settings ) {\n\treturn (\n\t\t( settings?.typography?.defaultFontSizes !== false &&\n\t\t\tsettings?.typography?.fontSizes?.default?.length ) ||\n\t\tsettings?.typography?.fontSizes?.theme?.length ||\n\t\tsettings?.typography?.fontSizes?.custom?.length ||\n\t\tsettings?.typography?.customFontSize\n\t);\n}\n\nfunction useHasFontFamilyControl( settings ) {\n\treturn hasOriginValue( settings?.typography?.fontFamilies );\n}\n\nfunction useHasLineHeightControl( settings ) {\n\treturn settings?.typography?.lineHeight;\n}\n\nfunction useHasAppearanceControl( settings ) {\n\treturn settings?.typography?.fontStyle || settings?.typography?.fontWeight;\n}\n\nfunction useAppearanceControlLabel( settings ) {\n\tif ( ! settings?.typography?.fontStyle ) {\n\t\treturn __( 'Font weight' );\n\t}\n\tif ( ! settings?.typography?.fontWeight ) {\n\t\treturn __( 'Font style' );\n\t}\n\treturn __( 'Appearance' );\n}\n\nfunction useHasLetterSpacingControl( settings ) {\n\treturn settings?.typography?.letterSpacing;\n}\n\nfunction useHasTextTransformControl( settings ) {\n\treturn settings?.typography?.textTransform;\n}\n\nfunction useHasTextDecorationControl( settings ) {\n\treturn settings?.typography?.textDecoration;\n}\n\nfunction useHasWritingModeControl( settings ) {\n\treturn settings?.typography?.writingMode;\n}\n\nfunction useHasTextColumnsControl( settings ) {\n\treturn settings?.typography?.textColumns;\n}\n\n/**\n * Concatenate all the font sizes into a single list for the font size picker.\n *\n * @param {Object} settings The global styles settings.\n *\n * @return {Array} The merged font sizes.\n */\nfunction getMergedFontSizes( settings ) {\n\tconst fontSizes = settings?.typography?.fontSizes;\n\tconst defaultFontSizesEnabled = !! settings?.typography?.defaultFontSizes;\n\treturn [\n\t\t...( fontSizes?.custom ?? [] ),\n\t\t...( fontSizes?.theme ?? [] ),\n\t\t...( defaultFontSizesEnabled ? fontSizes?.default ?? [] : [] ),\n\t];\n}\n\nfunction TypographyToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Typography' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tfontFamily: true,\n\tfontSize: true,\n\tfontAppearance: true,\n\tlineHeight: true,\n\tletterSpacing: true,\n\ttextTransform: true,\n\ttextDecoration: true,\n\twritingMode: true,\n\ttextColumns: true,\n};\n\nexport default function TypographyPanel( {\n\tas: Wrapper = TypographyToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Font Family\n\tconst hasFontFamilyEnabled = useHasFontFamilyControl( settings );\n\tconst fontFamilies = settings?.typography?.fontFamilies ?? {};\n\tconst mergedFontFamilies = fontFamilies ? mergeOrigins( fontFamilies ) : [];\n\tconst fontFamily = decodeValue( inheritedValue?.typography?.fontFamily );\n\tconst setFontFamily = ( newValue ) => {\n\t\tconst slug = mergedFontFamilies?.find(\n\t\t\t( { fontFamily: f } ) => f === newValue\n\t\t)?.slug;\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'fontFamily' ],\n\t\t\t\tslug\n\t\t\t\t\t? `var:preset|font-family|${ slug }`\n\t\t\t\t\t: newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasFontFamily = () => !! value?.typography?.fontFamily;\n\tconst resetFontFamily = () => setFontFamily( undefined );\n\n\t// Font Size\n\tconst hasFontSizeEnabled = useHasFontSizeControl( settings );\n\tconst disableCustomFontSizes = ! settings?.typography?.customFontSize;\n\tconst mergedFontSizes = getMergedFontSizes( settings );\n\n\tconst fontSize = decodeValue( inheritedValue?.typography?.fontSize );\n\tconst setFontSize = ( newValue, metadata ) => {\n\t\tconst actualValue = !! metadata?.slug\n\t\t\t? `var:preset|font-size|${ metadata?.slug }`\n\t\t\t: newValue;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'fontSize' ],\n\t\t\t\tactualValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasFontSize = () => !! value?.typography?.fontSize;\n\tconst resetFontSize = () => setFontSize( undefined );\n\n\t// Appearance\n\tconst hasAppearanceControl = useHasAppearanceControl( settings );\n\tconst appearanceControlLabel = useAppearanceControlLabel( settings );\n\tconst hasFontStyles = settings?.typography?.fontStyle;\n\tconst hasFontWeights = settings?.typography?.fontWeight;\n\tconst fontStyle = decodeValue( inheritedValue?.typography?.fontStyle );\n\tconst fontWeight = decodeValue( inheritedValue?.typography?.fontWeight );\n\tconst setFontAppearance = ( {\n\t\tfontStyle: newFontStyle,\n\t\tfontWeight: newFontWeight,\n\t} ) => {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\tfontStyle: newFontStyle || undefined,\n\t\t\t\tfontWeight: newFontWeight || undefined,\n\t\t\t},\n\t\t} );\n\t};\n\tconst hasFontAppearance = () =>\n\t\t!! value?.typography?.fontStyle || !! value?.typography?.fontWeight;\n\tconst resetFontAppearance = () => {\n\t\tsetFontAppearance( {} );\n\t};\n\n\t// Line Height\n\tconst hasLineHeightEnabled = useHasLineHeightControl( settings );\n\tconst lineHeight = decodeValue( inheritedValue?.typography?.lineHeight );\n\tconst setLineHeight = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'lineHeight' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLineHeight = () => value?.typography?.lineHeight !== undefined;\n\tconst resetLineHeight = () => setLineHeight( undefined );\n\n\t// Letter Spacing\n\tconst hasLetterSpacingControl = useHasLetterSpacingControl( settings );\n\tconst letterSpacing = decodeValue(\n\t\tinheritedValue?.typography?.letterSpacing\n\t);\n\tconst setLetterSpacing = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'letterSpacing' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLetterSpacing = () => !! value?.typography?.letterSpacing;\n\tconst resetLetterSpacing = () => setLetterSpacing( undefined );\n\n\t// Text Columns\n\tconst hasTextColumnsControl = useHasTextColumnsControl( settings );\n\tconst textColumns = decodeValue( inheritedValue?.typography?.textColumns );\n\tconst setTextColumns = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textColumns' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextColumns = () => !! value?.typography?.textColumns;\n\tconst resetTextColumns = () => setTextColumns( undefined );\n\n\t// Text Transform\n\tconst hasTextTransformControl = useHasTextTransformControl( settings );\n\tconst textTransform = decodeValue(\n\t\tinheritedValue?.typography?.textTransform\n\t);\n\tconst setTextTransform = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textTransform' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextTransform = () => !! value?.typography?.textTransform;\n\tconst resetTextTransform = () => setTextTransform( undefined );\n\n\t// Text Decoration\n\tconst hasTextDecorationControl = useHasTextDecorationControl( settings );\n\tconst textDecoration = decodeValue(\n\t\tinheritedValue?.typography?.textDecoration\n\t);\n\tconst setTextDecoration = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textDecoration' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextDecoration = () => !! value?.typography?.textDecoration;\n\tconst resetTextDecoration = () => setTextDecoration( undefined );\n\n\t// Text Orientation\n\tconst hasWritingModeControl = useHasWritingModeControl( settings );\n\tconst writingMode = decodeValue( inheritedValue?.typography?.writingMode );\n\tconst setWritingMode = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'writingMode' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasWritingMode = () => !! value?.typography?.writingMode;\n\tconst resetWritingMode = () => setWritingMode( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\ttypography: {},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasFontFamilyEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Font' ) }\n\t\t\t\t\thasValue={ hasFontFamily }\n\t\t\t\t\tonDeselect={ resetFontFamily }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontFamily }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontFamilyControl\n\t\t\t\t\t\tfontFamilies={ mergedFontFamilies }\n\t\t\t\t\t\tvalue={ fontFamily }\n\t\t\t\t\t\tonChange={ setFontFamily }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasFontSizeEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\t\thasValue={ hasFontSize }\n\t\t\t\t\tonDeselect={ resetFontSize }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontSize }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontSizePicker\n\t\t\t\t\t\tvalue={ fontSize }\n\t\t\t\t\t\tonChange={ setFontSize }\n\t\t\t\t\t\tfontSizes={ mergedFontSizes }\n\t\t\t\t\t\tdisableCustomFontSizes={ disableCustomFontSizes }\n\t\t\t\t\t\twithReset={ false }\n\t\t\t\t\t\twithSlider\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasAppearanceControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ appearanceControlLabel }\n\t\t\t\t\thasValue={ hasFontAppearance }\n\t\t\t\t\tonDeselect={ resetFontAppearance }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontAppearance }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontAppearanceControl\n\t\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t\tfontStyle,\n\t\t\t\t\t\t\tfontWeight,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ setFontAppearance }\n\t\t\t\t\t\thasFontStyles={ hasFontStyles }\n\t\t\t\t\t\thasFontWeights={ hasFontWeights }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasLineHeightEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Line height' ) }\n\t\t\t\t\thasValue={ hasLineHeight }\n\t\t\t\t\tonDeselect={ resetLineHeight }\n\t\t\t\t\tisShownByDefault={ defaultControls.lineHeight }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<LineHeightControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t\tvalue={ lineHeight }\n\t\t\t\t\t\tonChange={ setLineHeight }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasLetterSpacingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Letter spacing' ) }\n\t\t\t\t\thasValue={ hasLetterSpacing }\n\t\t\t\t\tonDeselect={ resetLetterSpacing }\n\t\t\t\t\tisShownByDefault={ defaultControls.letterSpacing }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<LetterSpacingControl\n\t\t\t\t\t\tvalue={ letterSpacing }\n\t\t\t\t\t\tonChange={ setLetterSpacing }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextColumnsControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\thasValue={ hasTextColumns }\n\t\t\t\t\tonDeselect={ resetTextColumns }\n\t\t\t\t\tisShownByDefault={ defaultControls.textColumns }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tmax={ MAX_TEXT_COLUMNS }\n\t\t\t\t\t\tmin={ MIN_TEXT_COLUMNS }\n\t\t\t\t\t\tonChange={ setTextColumns }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\tspinControls=\"custom\"\n\t\t\t\t\t\tvalue={ textColumns }\n\t\t\t\t\t\tinitialPosition={ 1 }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextDecorationControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Decoration' ) }\n\t\t\t\t\thasValue={ hasTextDecoration }\n\t\t\t\t\tonDeselect={ resetTextDecoration }\n\t\t\t\t\tisShownByDefault={ defaultControls.textDecoration }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextDecorationControl\n\t\t\t\t\t\tvalue={ textDecoration }\n\t\t\t\t\t\tonChange={ setTextDecoration }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasWritingModeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Orientation' ) }\n\t\t\t\t\thasValue={ hasWritingMode }\n\t\t\t\t\tonDeselect={ resetWritingMode }\n\t\t\t\t\tisShownByDefault={ defaultControls.writingMode }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<WritingModeControl\n\t\t\t\t\t\tvalue={ writingMode }\n\t\t\t\t\t\tonChange={ setWritingMode }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextTransformControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Letter case' ) }\n\t\t\t\t\thasValue={ hasTextTransform }\n\t\t\t\t\tonDeselect={ resetTextTransform }\n\t\t\t\t\tisShownByDefault={ defaultControls.textTransform }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextTransformControl\n\t\t\t\t\t\tvalue={ textTransform }\n\t\t\t\t\t\tonChange={ setTextTransform }\n\t\t\t\t\t\tshowNone\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -582,7 +582,17 @@ const toCustomProperties = (tree, blockSelectors) => {
582
582
  return ruleset;
583
583
  };
584
584
  exports.toCustomProperties = toCustomProperties;
585
- const toStyles = (tree, blockSelectors, hasBlockGapSupport, hasFallbackGapSupport, disableLayoutStyles = false, isTemplate = true) => {
585
+ const toStyles = (tree, blockSelectors, hasBlockGapSupport, hasFallbackGapSupport, disableLayoutStyles = false, isTemplate = true, styleOptions = undefined) => {
586
+ // These allow opting out of certain sets of styles.
587
+ const options = {
588
+ blockGap: true,
589
+ blockStyles: true,
590
+ layoutStyles: true,
591
+ marginReset: true,
592
+ presets: true,
593
+ rootPadding: true,
594
+ ...styleOptions
595
+ };
586
596
  const nodesWithStyles = getNodesWithStyles(tree, blockSelectors);
587
597
  const nodesWithSettings = getNodesWithSettings(tree, blockSelectors);
588
598
  const useRootPaddingAlign = tree?.settings?.useRootPaddingAwareAlignments;
@@ -590,161 +600,168 @@ const toStyles = (tree, blockSelectors, hasBlockGapSupport, hasFallbackGapSuppor
590
600
  contentSize,
591
601
  wideSize
592
602
  } = tree?.settings?.layout || {};
603
+ const hasBodyStyles = options.marginReset || options.rootPadding || options.layoutStyles;
593
604
  let ruleset = '';
594
- if (contentSize || wideSize) {
605
+ if (options.presets && (contentSize || wideSize)) {
595
606
  ruleset += `${_utils.ROOT_CSS_PROPERTIES_SELECTOR} {`;
596
607
  ruleset = contentSize ? ruleset + ` --wp--style--global--content-size: ${contentSize};` : ruleset;
597
608
  ruleset = wideSize ? ruleset + ` --wp--style--global--wide-size: ${wideSize};` : ruleset;
598
609
  ruleset += '}';
599
610
  }
600
-
601
- /*
602
- * Reset default browser margin on the body element.
603
- * This is set on the body selector **before** generating the ruleset
604
- * from the `theme.json`. This is to ensure that if the `theme.json` declares
605
- * `margin` in its `spacing` declaration for the `body` element then these
606
- * user-generated values take precedence in the CSS cascade.
607
- * @link https://github.com/WordPress/gutenberg/issues/36147.
608
- */
609
- ruleset += 'body {margin: 0;';
610
-
611
- // Root padding styles should only be output for full templates, not patterns or template parts.
612
- if (useRootPaddingAlign && isTemplate) {
611
+ if (hasBodyStyles) {
613
612
  /*
614
- * These rules reproduce the ones from https://github.com/WordPress/gutenberg/blob/79103f124925d1f457f627e154f52a56228ed5ad/lib/class-wp-theme-json-gutenberg.php#L2508
615
- * almost exactly, but for the selectors that target block wrappers in the front end. This code only runs in the editor, so it doesn't need those selectors.
613
+ * Reset default browser margin on the body element.
614
+ * This is set on the body selector **before** generating the ruleset
615
+ * from the `theme.json`. This is to ensure that if the `theme.json` declares
616
+ * `margin` in its `spacing` declaration for the `body` element then these
617
+ * user-generated values take precedence in the CSS cascade.
618
+ * @link https://github.com/WordPress/gutenberg/issues/36147.
616
619
  */
617
- ruleset += `padding-right: 0; padding-left: 0; padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom) }
618
- .has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }
619
- .has-global-padding :where(.has-global-padding:not(.wp-block-block)) { padding-right: 0; padding-left: 0; }
620
- .has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); }
621
- .has-global-padding :where(.has-global-padding:not(.wp-block-block)) > .alignfull { margin-right: 0; margin-left: 0; }
622
- .has-global-padding > .alignfull:where(:not(.has-global-padding):not(.is-layout-flex):not(.is-layout-grid)) > :where(.wp-block:not(.alignfull),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }
623
- .has-global-padding :where(.has-global-padding) > .alignfull:where(:not(.has-global-padding)) > :where(.wp-block:not(.alignfull),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: 0; padding-left: 0;`;
624
- }
625
- ruleset += '}';
626
- nodesWithStyles.forEach(({
627
- selector,
628
- duotoneSelector,
629
- styles,
630
- fallbackGapValue,
631
- hasLayoutSupport,
632
- featureSelectors,
633
- styleVariationSelectors
634
- }) => {
635
- // Process styles for block support features with custom feature level
636
- // CSS selectors set.
637
- if (featureSelectors) {
638
- const featureDeclarations = getFeatureDeclarations(featureSelectors, styles);
639
- Object.entries(featureDeclarations).forEach(([cssSelector, declarations]) => {
640
- if (declarations.length) {
641
- const rules = declarations.join(';');
642
- ruleset += `:where(${cssSelector}){${rules};}`;
643
- }
644
- });
620
+ ruleset += 'body {margin: 0;';
621
+
622
+ // Root padding styles should only be output for full templates, not patterns or template parts.
623
+ if (options.rootPadding && useRootPaddingAlign && isTemplate) {
624
+ /*
625
+ * These rules reproduce the ones from https://github.com/WordPress/gutenberg/blob/79103f124925d1f457f627e154f52a56228ed5ad/lib/class-wp-theme-json-gutenberg.php#L2508
626
+ * almost exactly, but for the selectors that target block wrappers in the front end. This code only runs in the editor, so it doesn't need those selectors.
627
+ */
628
+ ruleset += `padding-right: 0; padding-left: 0; padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom) }
629
+ .has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }
630
+ .has-global-padding :where(.has-global-padding:not(.wp-block-block)) { padding-right: 0; padding-left: 0; }
631
+ .has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); }
632
+ .has-global-padding :where(.has-global-padding:not(.wp-block-block)) > .alignfull { margin-right: 0; margin-left: 0; }
633
+ .has-global-padding > .alignfull:where(:not(.has-global-padding):not(.is-layout-flex):not(.is-layout-grid)) > :where(.wp-block:not(.alignfull),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }
634
+ .has-global-padding :where(.has-global-padding) > .alignfull:where(:not(.has-global-padding)) > :where(.wp-block:not(.alignfull),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: 0; padding-left: 0;`;
645
635
  }
646
- if (styleVariationSelectors) {
647
- Object.entries(styleVariationSelectors).forEach(([styleVariationName, styleVariationSelector]) => {
648
- const styleVariations = styles?.variations?.[styleVariationName];
649
- if (styleVariations) {
650
- // If the block uses any custom selectors for block support, add those first.
651
- if (featureSelectors) {
652
- const featureDeclarations = getFeatureDeclarations(featureSelectors, styleVariations);
653
- Object.entries(featureDeclarations).forEach(([baseSelector, declarations]) => {
654
- if (declarations.length) {
655
- const cssSelector = concatFeatureVariationSelectorString(baseSelector, styleVariationSelector);
656
- const rules = declarations.join(';');
657
- ruleset += `${cssSelector}{${rules};}`;
658
- }
659
- });
636
+ ruleset += '}';
637
+ }
638
+ if (options.blockStyles) {
639
+ nodesWithStyles.forEach(({
640
+ selector,
641
+ duotoneSelector,
642
+ styles,
643
+ fallbackGapValue,
644
+ hasLayoutSupport,
645
+ featureSelectors,
646
+ styleVariationSelectors
647
+ }) => {
648
+ // Process styles for block support features with custom feature level
649
+ // CSS selectors set.
650
+ if (featureSelectors) {
651
+ const featureDeclarations = getFeatureDeclarations(featureSelectors, styles);
652
+ Object.entries(featureDeclarations).forEach(([cssSelector, declarations]) => {
653
+ if (declarations.length) {
654
+ const rules = declarations.join(';');
655
+ ruleset += `:where(${cssSelector}){${rules};}`;
660
656
  }
657
+ });
658
+ }
659
+ if (styleVariationSelectors) {
660
+ Object.entries(styleVariationSelectors).forEach(([styleVariationName, styleVariationSelector]) => {
661
+ const styleVariations = styles?.variations?.[styleVariationName];
662
+ if (styleVariations) {
663
+ // If the block uses any custom selectors for block support, add those first.
664
+ if (featureSelectors) {
665
+ const featureDeclarations = getFeatureDeclarations(featureSelectors, styleVariations);
666
+ Object.entries(featureDeclarations).forEach(([baseSelector, declarations]) => {
667
+ if (declarations.length) {
668
+ const cssSelector = concatFeatureVariationSelectorString(baseSelector, styleVariationSelector);
669
+ const rules = declarations.join(';');
670
+ ruleset += `${cssSelector}{${rules};}`;
671
+ }
672
+ });
673
+ }
661
674
 
662
- // Otherwise add regular selectors.
663
- const styleVariationDeclarations = getStylesDeclarations(styleVariations, styleVariationSelector, useRootPaddingAlign, tree);
664
- if (styleVariationDeclarations.length) {
665
- ruleset += `${styleVariationSelector}{${styleVariationDeclarations.join(';')};}`;
675
+ // Otherwise add regular selectors.
676
+ const styleVariationDeclarations = getStylesDeclarations(styleVariations, styleVariationSelector, useRootPaddingAlign, tree);
677
+ if (styleVariationDeclarations.length) {
678
+ ruleset += `${styleVariationSelector}{${styleVariationDeclarations.join(';')};}`;
679
+ }
666
680
  }
667
- }
668
- });
669
- }
670
-
671
- // Process duotone styles.
672
- if (duotoneSelector) {
673
- const duotoneStyles = {};
674
- if (styles?.filter) {
675
- duotoneStyles.filter = styles.filter;
676
- delete styles.filter;
677
- }
678
- const duotoneDeclarations = getStylesDeclarations(duotoneStyles);
679
- if (duotoneDeclarations.length) {
680
- ruleset += `${duotoneSelector}{${duotoneDeclarations.join(';')};}`;
681
+ });
681
682
  }
682
- }
683
683
 
684
- // Process blockGap and layout styles.
685
- if (!disableLayoutStyles && (_utils.ROOT_BLOCK_SELECTOR === selector || hasLayoutSupport)) {
686
- ruleset += getLayoutStyles({
687
- style: styles,
688
- selector,
689
- hasBlockGapSupport,
690
- hasFallbackGapSupport,
691
- fallbackGapValue
692
- });
693
- }
684
+ // Process duotone styles.
685
+ if (duotoneSelector) {
686
+ const duotoneStyles = {};
687
+ if (styles?.filter) {
688
+ duotoneStyles.filter = styles.filter;
689
+ delete styles.filter;
690
+ }
691
+ const duotoneDeclarations = getStylesDeclarations(duotoneStyles);
692
+ if (duotoneDeclarations.length) {
693
+ ruleset += `${duotoneSelector}{${duotoneDeclarations.join(';')};}`;
694
+ }
695
+ }
694
696
 
695
- // Process the remaining block styles (they use either normal block class or __experimentalSelector).
696
- const declarations = getStylesDeclarations(styles, selector, useRootPaddingAlign, tree, isTemplate);
697
- if (declarations?.length) {
698
- ruleset += `:where(${selector}){${declarations.join(';')};}`;
699
- }
697
+ // Process blockGap and layout styles.
698
+ if (!disableLayoutStyles && (_utils.ROOT_BLOCK_SELECTOR === selector || hasLayoutSupport)) {
699
+ ruleset += getLayoutStyles({
700
+ style: styles,
701
+ selector,
702
+ hasBlockGapSupport,
703
+ hasFallbackGapSupport,
704
+ fallbackGapValue
705
+ });
706
+ }
700
707
 
701
- // Check for pseudo selector in `styles` and handle separately.
702
- const pseudoSelectorStyles = Object.entries(styles).filter(([key]) => key.startsWith(':'));
703
- if (pseudoSelectorStyles?.length) {
704
- pseudoSelectorStyles.forEach(([pseudoKey, pseudoStyle]) => {
705
- const pseudoDeclarations = getStylesDeclarations(pseudoStyle);
706
- if (!pseudoDeclarations?.length) {
707
- return;
708
- }
708
+ // Process the remaining block styles (they use either normal block class or __experimentalSelector).
709
+ const declarations = getStylesDeclarations(styles, selector, useRootPaddingAlign, tree, isTemplate);
710
+ if (declarations?.length) {
711
+ ruleset += `:where(${selector}){${declarations.join(';')};}`;
712
+ }
709
713
 
710
- // `selector` maybe provided in a form
711
- // where block level selectors have sub element
712
- // selectors appended to them as a comma separated
713
- // string.
714
- // e.g. `h1 a,h2 a,h3 a,h4 a,h5 a,h6 a`;
715
- // Split and append pseudo selector to create
716
- // the proper rules to target the elements.
717
- const _selector = selector.split(',').map(sel => sel + pseudoKey).join(',');
718
- const pseudoRule = `${_selector}{${pseudoDeclarations.join(';')};}`;
719
- ruleset += pseudoRule;
720
- });
721
- }
722
- });
714
+ // Check for pseudo selector in `styles` and handle separately.
715
+ const pseudoSelectorStyles = Object.entries(styles).filter(([key]) => key.startsWith(':'));
716
+ if (pseudoSelectorStyles?.length) {
717
+ pseudoSelectorStyles.forEach(([pseudoKey, pseudoStyle]) => {
718
+ const pseudoDeclarations = getStylesDeclarations(pseudoStyle);
719
+ if (!pseudoDeclarations?.length) {
720
+ return;
721
+ }
723
722
 
724
- /* Add alignment / layout styles */
725
- ruleset = ruleset + '.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }';
726
- ruleset = ruleset + '.wp-site-blocks > .alignright { float: right; margin-left: 2em; }';
727
- ruleset = ruleset + '.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }';
728
- if (hasBlockGapSupport) {
723
+ // `selector` maybe provided in a form
724
+ // where block level selectors have sub element
725
+ // selectors appended to them as a comma separated
726
+ // string.
727
+ // e.g. `h1 a,h2 a,h3 a,h4 a,h5 a,h6 a`;
728
+ // Split and append pseudo selector to create
729
+ // the proper rules to target the elements.
730
+ const _selector = selector.split(',').map(sel => sel + pseudoKey).join(',');
731
+ const pseudoRule = `${_selector}{${pseudoDeclarations.join(';')};}`;
732
+ ruleset += pseudoRule;
733
+ });
734
+ }
735
+ });
736
+ }
737
+ if (options.layoutStyles) {
738
+ /* Add alignment / layout styles */
739
+ ruleset = ruleset + '.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }';
740
+ ruleset = ruleset + '.wp-site-blocks > .alignright { float: right; margin-left: 2em; }';
741
+ ruleset = ruleset + '.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }';
742
+ }
743
+ if (options.blockGap && hasBlockGapSupport) {
729
744
  // Use fallback of `0.5em` just in case, however if there is blockGap support, there should nearly always be a real value.
730
745
  const gapValue = (0, _gap.getGapCSSValue)(tree?.styles?.spacing?.blockGap) || '0.5em';
731
746
  ruleset = ruleset + `:where(.wp-site-blocks) > * { margin-block-start: ${gapValue}; margin-block-end: 0; }`;
732
747
  ruleset = ruleset + ':where(.wp-site-blocks) > :first-child { margin-block-start: 0; }';
733
748
  ruleset = ruleset + ':where(.wp-site-blocks) > :last-child { margin-block-end: 0; }';
734
749
  }
735
- nodesWithSettings.forEach(({
736
- selector,
737
- presets
738
- }) => {
739
- if (_utils.ROOT_BLOCK_SELECTOR === selector || _utils.ROOT_CSS_PROPERTIES_SELECTOR === selector) {
740
- // Do not add extra specificity for top-level classes.
741
- selector = '';
742
- }
743
- const classes = getPresetsClasses(selector, presets);
744
- if (classes.length > 0) {
745
- ruleset += classes;
746
- }
747
- });
750
+ if (options.presets) {
751
+ nodesWithSettings.forEach(({
752
+ selector,
753
+ presets
754
+ }) => {
755
+ if (_utils.ROOT_BLOCK_SELECTOR === selector || _utils.ROOT_CSS_PROPERTIES_SELECTOR === selector) {
756
+ // Do not add extra specificity for top-level classes.
757
+ selector = '';
758
+ }
759
+ const classes = getPresetsClasses(selector, presets);
760
+ if (classes.length > 0) {
761
+ ruleset += classes;
762
+ }
763
+ });
764
+ }
748
765
  return ruleset;
749
766
  };
750
767
  exports.toStyles = toStyles;