@wordpress/block-editor 13.4.0 → 14.0.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 (331) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +11 -1
  3. package/build/components/block-breadcrumb/index.js +3 -1
  4. package/build/components/block-breadcrumb/index.js.map +1 -1
  5. package/build/components/block-draggable/index.js +2 -2
  6. package/build/components/block-draggable/index.js.map +1 -1
  7. package/build/components/block-list/use-block-props/use-block-refs.js +24 -32
  8. package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  9. package/build/components/block-mover/index.js +1 -2
  10. package/build/components/block-mover/index.js.map +1 -1
  11. package/build/components/block-popover/cover.js +1 -1
  12. package/build/components/block-popover/cover.js.map +1 -1
  13. package/build/components/block-popover/inbetween.js +2 -2
  14. package/build/components/block-popover/inbetween.js.map +1 -1
  15. package/build/components/block-popover/index.js +2 -2
  16. package/build/components/block-popover/index.js.map +1 -1
  17. package/build/components/block-tools/block-selection-button.js +1 -2
  18. package/build/components/block-tools/block-selection-button.js.map +1 -1
  19. package/build/components/block-tools/index.js +1 -1
  20. package/build/components/block-tools/index.js.map +1 -1
  21. package/build/components/block-tools/use-block-toolbar-popover-props.js +1 -1
  22. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  23. package/build/components/block-tools/zoom-out-mode-inserters.js +15 -16
  24. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  25. package/build/components/block-tools/zoom-out-toolbar.js +0 -1
  26. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  27. package/build/components/child-layout-control/index.js +3 -1
  28. package/build/components/child-layout-control/index.js.map +1 -1
  29. package/build/components/dimensions-tool/scale-tool.js +1 -0
  30. package/build/components/dimensions-tool/scale-tool.js.map +1 -1
  31. package/build/components/font-family/index.js +12 -0
  32. package/build/components/font-family/index.js.map +1 -1
  33. package/build/components/global-styles/background-panel.js +55 -51
  34. package/build/components/global-styles/background-panel.js.map +1 -1
  35. package/build/components/global-styles/image-settings-panel.js +1 -0
  36. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  37. package/build/components/global-styles/theme-file-uri-utils.js +0 -59
  38. package/build/components/global-styles/theme-file-uri-utils.js.map +1 -1
  39. package/build/components/global-styles/typography-panel.js +0 -1
  40. package/build/components/global-styles/typography-panel.js.map +1 -1
  41. package/build/components/global-styles/use-global-styles-output.js +58 -39
  42. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  43. package/build/components/global-styles/utils.js +96 -0
  44. package/build/components/global-styles/utils.js.map +1 -1
  45. package/build/components/grid/grid-item-movers.js +30 -26
  46. package/build/components/grid/grid-item-movers.js.map +1 -1
  47. package/build/components/grid/grid-item-resizer.js +14 -15
  48. package/build/components/grid/grid-item-resizer.js.map +1 -1
  49. package/build/components/grid/grid-visualizer.js +1 -1
  50. package/build/components/grid/grid-visualizer.js.map +1 -1
  51. package/build/components/grid/use-grid-layout-sync.js +56 -20
  52. package/build/components/grid/use-grid-layout-sync.js.map +1 -1
  53. package/build/components/iframe/index.js +4 -8
  54. package/build/components/iframe/index.js.map +1 -1
  55. package/build/components/inserter/category-tabs/index.js +29 -2
  56. package/build/components/inserter/category-tabs/index.js.map +1 -1
  57. package/build/components/inserter/menu.js +2 -2
  58. package/build/components/inserter/menu.js.map +1 -1
  59. package/build/components/line-height-control/index.js +0 -15
  60. package/build/components/line-height-control/index.js.map +1 -1
  61. package/build/components/link-control/search-input.js +0 -1
  62. package/build/components/link-control/search-input.js.map +1 -1
  63. package/build/components/media-replace-flow/index.js +3 -1
  64. package/build/components/media-replace-flow/index.js.map +1 -1
  65. package/build/components/resolution-tool/index.js +1 -0
  66. package/build/components/resolution-tool/index.js.map +1 -1
  67. package/build/components/skip-to-selected-block/index.js +4 -2
  68. package/build/components/skip-to-selected-block/index.js.map +1 -1
  69. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -6
  70. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  71. package/build/components/url-input/button.js +0 -1
  72. package/build/components/url-input/button.js.map +1 -1
  73. package/build/components/url-input/index.js +1 -11
  74. package/build/components/url-input/index.js.map +1 -1
  75. package/build/components/url-popover/link-editor.js +0 -1
  76. package/build/components/url-popover/link-editor.js.map +1 -1
  77. package/build/components/use-block-drop-zone/index.js +30 -4
  78. package/build/components/use-block-drop-zone/index.js.map +1 -1
  79. package/build/components/use-on-block-drop/index.js +3 -6
  80. package/build/components/use-on-block-drop/index.js.map +1 -1
  81. package/build/components/use-resize-canvas/index.js +1 -3
  82. package/build/components/use-resize-canvas/index.js.map +1 -1
  83. package/build/components/use-settings/index.js +2 -1
  84. package/build/components/use-settings/index.js.map +1 -1
  85. package/build/hooks/block-bindings.js +248 -36
  86. package/build/hooks/block-bindings.js.map +1 -1
  87. package/build/hooks/block-hooks.js +1 -0
  88. package/build/hooks/block-hooks.js.map +1 -1
  89. package/build/hooks/block-style-variation.js +2 -2
  90. package/build/hooks/block-style-variation.js.map +1 -1
  91. package/build/hooks/contrast-checker.js +6 -6
  92. package/build/hooks/contrast-checker.js.map +1 -1
  93. package/build/hooks/duotone.js +3 -3
  94. package/build/hooks/duotone.js.map +1 -1
  95. package/build/hooks/index.js +7 -1
  96. package/build/hooks/index.js.map +1 -1
  97. package/build/hooks/line-height.js +0 -1
  98. package/build/hooks/line-height.js.map +1 -1
  99. package/build/hooks/spacing-visualizer.js +1 -1
  100. package/build/hooks/spacing-visualizer.js.map +1 -1
  101. package/build/hooks/use-bindings-attributes.js +4 -0
  102. package/build/hooks/use-bindings-attributes.js.map +1 -1
  103. package/build/hooks/use-zoom-out.js +1 -1
  104. package/build/hooks/use-zoom-out.js.map +1 -1
  105. package/build/hooks/utils.js +20 -0
  106. package/build/hooks/utils.js.map +1 -1
  107. package/build/index.js +7 -0
  108. package/build/index.js.map +1 -1
  109. package/build/private-apis.js +0 -1
  110. package/build/private-apis.js.map +1 -1
  111. package/build/store/actions.js +9 -1
  112. package/build/store/actions.js.map +1 -1
  113. package/build/store/selectors.js +4 -4
  114. package/build/store/selectors.js.map +1 -1
  115. package/build/utils/get-editor-region.js +1 -1
  116. package/build/utils/get-editor-region.js.map +1 -1
  117. package/build/utils/get-px-from-css-unit.js +1 -1
  118. package/build/utils/get-px-from-css-unit.js.map +1 -1
  119. package/build-module/components/block-breadcrumb/index.js +4 -2
  120. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  121. package/build-module/components/block-draggable/index.js +3 -3
  122. package/build-module/components/block-draggable/index.js.map +1 -1
  123. package/build-module/components/block-list/use-block-props/use-block-refs.js +24 -34
  124. package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  125. package/build-module/components/block-mover/index.js +1 -2
  126. package/build-module/components/block-mover/index.js.map +1 -1
  127. package/build-module/components/block-popover/cover.js +1 -1
  128. package/build-module/components/block-popover/cover.js.map +1 -1
  129. package/build-module/components/block-popover/inbetween.js +1 -1
  130. package/build-module/components/block-popover/inbetween.js.map +1 -1
  131. package/build-module/components/block-popover/index.js +1 -1
  132. package/build-module/components/block-popover/index.js.map +1 -1
  133. package/build-module/components/block-tools/block-selection-button.js +1 -2
  134. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  135. package/build-module/components/block-tools/index.js +1 -1
  136. package/build-module/components/block-tools/index.js.map +1 -1
  137. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +1 -1
  138. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  139. package/build-module/components/block-tools/zoom-out-mode-inserters.js +16 -17
  140. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  141. package/build-module/components/block-tools/zoom-out-toolbar.js +0 -1
  142. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  143. package/build-module/components/child-layout-control/index.js +3 -1
  144. package/build-module/components/child-layout-control/index.js.map +1 -1
  145. package/build-module/components/dimensions-tool/scale-tool.js +1 -0
  146. package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
  147. package/build-module/components/font-family/index.js +11 -0
  148. package/build-module/components/font-family/index.js.map +1 -1
  149. package/build-module/components/global-styles/background-panel.js +55 -51
  150. package/build-module/components/global-styles/background-panel.js.map +1 -1
  151. package/build-module/components/global-styles/image-settings-panel.js +1 -0
  152. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  153. package/build-module/components/global-styles/theme-file-uri-utils.js +0 -58
  154. package/build-module/components/global-styles/theme-file-uri-utils.js.map +1 -1
  155. package/build-module/components/global-styles/typography-panel.js +0 -1
  156. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  157. package/build-module/components/global-styles/use-global-styles-output.js +57 -38
  158. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  159. package/build-module/components/global-styles/utils.js +92 -0
  160. package/build-module/components/global-styles/utils.js.map +1 -1
  161. package/build-module/components/grid/grid-item-movers.js +30 -26
  162. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  163. package/build-module/components/grid/grid-item-resizer.js +14 -15
  164. package/build-module/components/grid/grid-item-resizer.js.map +1 -1
  165. package/build-module/components/grid/grid-visualizer.js +1 -1
  166. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  167. package/build-module/components/grid/use-grid-layout-sync.js +56 -20
  168. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
  169. package/build-module/components/iframe/index.js +4 -8
  170. package/build-module/components/iframe/index.js.map +1 -1
  171. package/build-module/components/inserter/category-tabs/index.js +30 -3
  172. package/build-module/components/inserter/category-tabs/index.js.map +1 -1
  173. package/build-module/components/inserter/menu.js +2 -2
  174. package/build-module/components/inserter/menu.js.map +1 -1
  175. package/build-module/components/line-height-control/index.js +0 -14
  176. package/build-module/components/line-height-control/index.js.map +1 -1
  177. package/build-module/components/link-control/search-input.js +0 -1
  178. package/build-module/components/link-control/search-input.js.map +1 -1
  179. package/build-module/components/media-replace-flow/index.js +3 -1
  180. package/build-module/components/media-replace-flow/index.js.map +1 -1
  181. package/build-module/components/resolution-tool/index.js +1 -0
  182. package/build-module/components/resolution-tool/index.js.map +1 -1
  183. package/build-module/components/skip-to-selected-block/index.js +5 -3
  184. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  185. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -6
  186. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  187. package/build-module/components/url-input/button.js +0 -1
  188. package/build-module/components/url-input/button.js.map +1 -1
  189. package/build-module/components/url-input/index.js +1 -11
  190. package/build-module/components/url-input/index.js.map +1 -1
  191. package/build-module/components/url-popover/link-editor.js +0 -1
  192. package/build-module/components/url-popover/link-editor.js.map +1 -1
  193. package/build-module/components/use-block-drop-zone/index.js +30 -4
  194. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  195. package/build-module/components/use-on-block-drop/index.js +3 -6
  196. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  197. package/build-module/components/use-resize-canvas/index.js +1 -3
  198. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  199. package/build-module/components/use-settings/index.js +2 -1
  200. package/build-module/components/use-settings/index.js.map +1 -1
  201. package/build-module/hooks/block-bindings.js +253 -40
  202. package/build-module/hooks/block-bindings.js.map +1 -1
  203. package/build-module/hooks/block-hooks.js +1 -0
  204. package/build-module/hooks/block-hooks.js.map +1 -1
  205. package/build-module/hooks/block-style-variation.js +3 -3
  206. package/build-module/hooks/block-style-variation.js.map +1 -1
  207. package/build-module/hooks/contrast-checker.js +7 -7
  208. package/build-module/hooks/contrast-checker.js.map +1 -1
  209. package/build-module/hooks/duotone.js +4 -4
  210. package/build-module/hooks/duotone.js.map +1 -1
  211. package/build-module/hooks/index.js +2 -1
  212. package/build-module/hooks/index.js.map +1 -1
  213. package/build-module/hooks/line-height.js +0 -1
  214. package/build-module/hooks/line-height.js.map +1 -1
  215. package/build-module/hooks/spacing-visualizer.js +1 -1
  216. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  217. package/build-module/hooks/use-bindings-attributes.js +3 -0
  218. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  219. package/build-module/hooks/use-zoom-out.js +1 -1
  220. package/build-module/hooks/use-zoom-out.js.map +1 -1
  221. package/build-module/hooks/utils.js +19 -0
  222. package/build-module/hooks/utils.js.map +1 -1
  223. package/build-module/index.js +1 -1
  224. package/build-module/index.js.map +1 -1
  225. package/build-module/private-apis.js +1 -2
  226. package/build-module/private-apis.js.map +1 -1
  227. package/build-module/store/actions.js +9 -1
  228. package/build-module/store/actions.js.map +1 -1
  229. package/build-module/store/selectors.js +4 -4
  230. package/build-module/store/selectors.js.map +1 -1
  231. package/build-module/utils/get-editor-region.js +1 -1
  232. package/build-module/utils/get-editor-region.js.map +1 -1
  233. package/build-module/utils/get-px-from-css-unit.js +1 -1
  234. package/build-module/utils/get-px-from-css-unit.js.map +1 -1
  235. package/build-style/content-rtl.css +5 -12
  236. package/build-style/content.css +5 -12
  237. package/build-style/default-editor-styles-rtl.css +3 -0
  238. package/build-style/default-editor-styles.css +3 -0
  239. package/build-style/style-rtl.css +88 -46
  240. package/build-style/style.css +88 -46
  241. package/package.json +31 -31
  242. package/src/autocompleters/style.scss +4 -0
  243. package/src/components/block-breadcrumb/index.js +4 -2
  244. package/src/components/block-canvas/style.scss +1 -0
  245. package/src/components/block-draggable/index.js +3 -3
  246. package/src/components/block-list/use-block-props/use-block-refs.js +27 -43
  247. package/src/components/block-mover/index.js +5 -2
  248. package/src/components/block-popover/cover.js +1 -1
  249. package/src/components/block-popover/inbetween.js +1 -1
  250. package/src/components/block-popover/index.js +1 -1
  251. package/src/components/block-tools/block-selection-button.js +1 -2
  252. package/src/components/block-tools/index.js +5 -6
  253. package/src/components/block-tools/use-block-toolbar-popover-props.js +1 -1
  254. package/src/components/block-tools/zoom-out-mode-inserters.js +14 -18
  255. package/src/components/block-tools/zoom-out-toolbar.js +0 -1
  256. package/src/components/button-block-appender/content.scss +1 -1
  257. package/src/components/child-layout-control/index.js +2 -0
  258. package/src/components/color-palette/test/__snapshots__/control.js.snap +2 -2
  259. package/src/components/colors-gradients/test/control.js +3 -2
  260. package/src/components/dimensions-tool/scale-tool.js +1 -0
  261. package/src/components/font-family/README.md +8 -0
  262. package/src/components/font-family/index.js +16 -0
  263. package/src/components/font-family/stories/index.story.js +54 -0
  264. package/src/components/global-styles/background-panel.js +69 -61
  265. package/src/components/global-styles/image-settings-panel.js +1 -0
  266. package/src/components/global-styles/style.scss +0 -10
  267. package/src/components/global-styles/test/theme-file-uri-utils.js +1 -26
  268. package/src/components/global-styles/test/use-global-styles-output.js +49 -4
  269. package/src/components/global-styles/test/utils.js +120 -0
  270. package/src/components/global-styles/theme-file-uri-utils.js +0 -59
  271. package/src/components/global-styles/typography-panel.js +0 -1
  272. package/src/components/global-styles/use-global-styles-output.js +67 -48
  273. package/src/components/global-styles/utils.js +112 -0
  274. package/src/components/grid/grid-item-movers.js +46 -44
  275. package/src/components/grid/grid-item-resizer.js +11 -17
  276. package/src/components/grid/grid-visualizer.js +1 -1
  277. package/src/components/grid/style.scss +60 -10
  278. package/src/components/grid/use-grid-layout-sync.js +68 -14
  279. package/src/components/iframe/content.scss +2 -2
  280. package/src/components/iframe/index.js +3 -7
  281. package/src/components/inserter/category-tabs/index.js +35 -2
  282. package/src/components/inserter/menu.js +2 -2
  283. package/src/components/inserter/style.scss +16 -11
  284. package/src/components/inspector-controls/README.md +5 -0
  285. package/src/components/line-height-control/README.md +0 -8
  286. package/src/components/line-height-control/index.js +1 -21
  287. package/src/components/line-height-control/stories/index.story.js +0 -1
  288. package/src/components/line-height-control/test/index.js +1 -7
  289. package/src/components/link-control/search-input.js +0 -1
  290. package/src/components/media-replace-flow/README.md +7 -0
  291. package/src/components/media-replace-flow/index.js +3 -1
  292. package/src/components/resolution-tool/index.js +1 -0
  293. package/src/components/responsive-block-control/test/index.js +5 -1
  294. package/src/components/skip-to-selected-block/index.js +5 -3
  295. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -6
  296. package/src/components/tabbed-sidebar/style.scss +1 -19
  297. package/src/components/url-input/README.md +0 -5
  298. package/src/components/url-input/button.js +0 -1
  299. package/src/components/url-input/index.js +1 -15
  300. package/src/components/url-popover/link-editor.js +0 -1
  301. package/src/components/use-block-drop-zone/index.js +66 -14
  302. package/src/components/use-on-block-drop/index.js +1 -9
  303. package/src/components/use-resize-canvas/index.js +1 -3
  304. package/src/components/use-settings/index.js +2 -1
  305. package/src/hooks/block-bindings.js +303 -52
  306. package/src/hooks/block-bindings.scss +13 -2
  307. package/src/hooks/block-hooks.js +1 -0
  308. package/src/hooks/block-hooks.scss +1 -0
  309. package/src/hooks/block-style-variation.js +3 -3
  310. package/src/hooks/contrast-checker.js +7 -7
  311. package/src/hooks/duotone.js +4 -4
  312. package/src/hooks/index.js +2 -1
  313. package/src/hooks/line-height.js +0 -1
  314. package/src/hooks/spacing-visualizer.js +1 -1
  315. package/src/hooks/use-bindings-attributes.js +4 -0
  316. package/src/hooks/use-editor-wrapper-styles.native.scss +1 -0
  317. package/src/hooks/use-zoom-out.js +1 -1
  318. package/src/hooks/utils.js +14 -1
  319. package/src/index.js +1 -0
  320. package/src/private-apis.js +1 -2
  321. package/src/store/actions.js +13 -5
  322. package/src/store/selectors.js +4 -4
  323. package/src/style.scss +1 -1
  324. package/src/utils/get-editor-region.js +1 -1
  325. package/src/utils/get-px-from-css-unit.js +1 -1
  326. package/tsconfig.tsbuildinfo +1 -1
  327. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -30
  328. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +0 -1
  329. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -23
  330. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +0 -1
  331. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -25
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_element","_fontFamily","_interopRequireDefault","_fontAppearanceControl","_lineHeightControl","_letterSpacingControl","_textAlignmentControl","_textTransformControl","_textDecorationControl","_writingModeControl","_utils","_object","_typographyUtils","_jsxRuntime","MIN_TEXT_COLUMNS","MAX_TEXT_COLUMNS","useHasTypographyPanel","settings","hasFontFamily","useHasFontFamilyControl","hasLineHeight","useHasLineHeightControl","hasFontAppearance","useHasAppearanceControl","hasLetterSpacing","useHasLetterSpacingControl","hasTextAlign","useHasTextAlignmentControl","hasTextTransform","useHasTextTransformControl","hasTextDecoration","useHasTextDecorationControl","hasWritingMode","useHasWritingModeControl","hasTextColumns","useHasTextColumnsControl","hasFontSize","useHasFontSizeControl","typography","defaultFontSizes","fontSizes","default","length","theme","custom","customFontSize","some","key","fontFamilies","lineHeight","fontStyle","fontWeight","useAppearanceControlLabel","__","letterSpacing","textTransform","textAlign","textDecoration","writingMode","textColumns","getMergedFontSizes","_fontSizes$custom","_fontSizes$theme","_fontSizes$default","defaultFontSizesEnabled","TypographyToolsPanel","resetAllFilter","onChange","value","panelId","children","dropdownMenuProps","useToolsPanelDropdownMenuProps","resetAll","updatedValue","jsx","__experimentalToolsPanel","label","DEFAULT_CONTROLS","fontFamily","fontSize","fontAppearance","TypographyPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","getValueFromVariable","hasFontFamilyEnabled","fontFamilyFaces","useMemo","getMergedFontFamiliesAndFontFamilyFaces","setFontFamily","newValue","slug","find","f","setImmutably","undefined","resetFontFamily","hasFontSizeEnabled","disableCustomFontSizes","mergedFontSizes","setFontSize","metadata","actualValue","resetFontSize","hasAppearanceControl","appearanceControlLabel","hasFontStyles","hasFontWeights","nearestFontStyle","nearestFontWeight","findNearestStyleAndWeight","setFontAppearance","useCallback","newFontStyle","newFontWeight","resetFontAppearance","useEffect","hasLineHeightEnabled","setLineHeight","resetLineHeight","hasLetterSpacingControl","setLetterSpacing","resetLetterSpacing","hasTextColumnsControl","setTextColumns","resetTextColumns","hasTextTransformControl","setTextTransform","resetTextTransform","hasTextDecorationControl","setTextDecoration","resetTextDecoration","hasWritingModeControl","setWritingMode","resetWritingMode","hasTextAlignmentControl","setTextAlign","resetTextAlign","previousValue","jsxs","__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, useMemo, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FontFamilyControl from '../font-family';\nimport FontAppearanceControl from '../font-appearance-control';\nimport LineHeightControl from '../line-height-control';\nimport LetterSpacingControl from '../letter-spacing-control';\nimport TextAlignmentControl from '../text-alignment-control';\nimport TextTransformControl from '../text-transform-control';\nimport TextDecorationControl from '../text-decoration-control';\nimport WritingModeControl from '../writing-mode-control';\nimport { getValueFromVariable, useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\nimport {\n\tgetMergedFontFamiliesAndFontFamilyFaces,\n\tfindNearestStyleAndWeight,\n} from './typography-utils';\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 hasTextAlign = useHasTextAlignmentControl( 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\thasTextAlign ||\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 [ 'default', 'theme', 'custom' ].some(\n\t\t( key ) => settings?.typography?.fontFamilies?.[ key ]?.length\n\t);\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 useHasTextAlignmentControl( settings ) {\n\treturn settings?.typography?.textAlign;\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 dropdownMenuProps = useToolsPanelDropdownMenuProps();\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={ dropdownMenuProps }\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\ttextAlign: 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 fontFamily = decodeValue( inheritedValue?.typography?.fontFamily );\n\tconst { fontFamilies, fontFamilyFaces } = useMemo( () => {\n\t\treturn getMergedFontFamiliesAndFontFamilyFaces( settings, fontFamily );\n\t}, [ settings, fontFamily ] );\n\n\tconst setFontFamily = ( newValue ) => {\n\t\tconst slug = fontFamilies?.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 { nearestFontStyle, nearestFontWeight } = findNearestStyleAndWeight(\n\t\tfontFamilyFaces,\n\t\tfontStyle,\n\t\tfontWeight\n\t);\n\tconst setFontAppearance = useCallback(\n\t\t( { fontStyle: newFontStyle, fontWeight: newFontWeight } ) => {\n\t\t\t// Only update the font style and weight if they have changed.\n\t\t\tif ( newFontStyle !== fontStyle || newFontWeight !== fontWeight ) {\n\t\t\t\tonChange( {\n\t\t\t\t\t...value,\n\t\t\t\t\ttypography: {\n\t\t\t\t\t\t...value?.typography,\n\t\t\t\t\t\tfontStyle: newFontStyle || undefined,\n\t\t\t\t\t\tfontWeight: newFontWeight || undefined,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ fontStyle, fontWeight, onChange, value ]\n\t);\n\tconst hasFontAppearance = () =>\n\t\t!! value?.typography?.fontStyle || !! value?.typography?.fontWeight;\n\tconst resetFontAppearance = useCallback( () => {\n\t\tsetFontAppearance( {} );\n\t}, [ setFontAppearance ] );\n\n\t// Check if previous font style and weight values are available in the new font family.\n\tuseEffect( () => {\n\t\tif ( nearestFontStyle && nearestFontWeight ) {\n\t\t\tsetFontAppearance( {\n\t\t\t\tfontStyle: nearestFontStyle,\n\t\t\t\tfontWeight: nearestFontWeight,\n\t\t\t} );\n\t\t} else {\n\t\t\t// Reset font appearance if there are no available styles or weights.\n\t\t\tresetFontAppearance();\n\t\t}\n\t}, [\n\t\tnearestFontStyle,\n\t\tnearestFontWeight,\n\t\tresetFontAppearance,\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\t// Text Alignment\n\tconst hasTextAlignmentControl = useHasTextAlignmentControl( settings );\n\n\tconst textAlign = decodeValue( inheritedValue?.typography?.textAlign );\n\tconst setTextAlign = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textAlign' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextAlign = () => !! value?.typography?.textAlign;\n\tconst resetTextAlign = () => setTextAlign( 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={ fontFamilies }\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\tfontFamilyFaces={ fontFamilyFaces }\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{ 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\t{ hasTextAlignmentControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Text alignment' ) }\n\t\t\t\t\thasValue={ hasTextAlign }\n\t\t\t\t\tonDeselect={ resetTextAlign }\n\t\t\t\t\tisShownByDefault={ defaultControls.textAlign }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextAlignmentControl\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ setTextAlign }\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","_fontFamily","_interopRequireDefault","_fontAppearanceControl","_lineHeightControl","_letterSpacingControl","_textAlignmentControl","_textTransformControl","_textDecorationControl","_writingModeControl","_utils","_object","_typographyUtils","_jsxRuntime","MIN_TEXT_COLUMNS","MAX_TEXT_COLUMNS","useHasTypographyPanel","settings","hasFontFamily","useHasFontFamilyControl","hasLineHeight","useHasLineHeightControl","hasFontAppearance","useHasAppearanceControl","hasLetterSpacing","useHasLetterSpacingControl","hasTextAlign","useHasTextAlignmentControl","hasTextTransform","useHasTextTransformControl","hasTextDecoration","useHasTextDecorationControl","hasWritingMode","useHasWritingModeControl","hasTextColumns","useHasTextColumnsControl","hasFontSize","useHasFontSizeControl","typography","defaultFontSizes","fontSizes","default","length","theme","custom","customFontSize","some","key","fontFamilies","lineHeight","fontStyle","fontWeight","useAppearanceControlLabel","__","letterSpacing","textTransform","textAlign","textDecoration","writingMode","textColumns","getMergedFontSizes","_fontSizes$custom","_fontSizes$theme","_fontSizes$default","defaultFontSizesEnabled","TypographyToolsPanel","resetAllFilter","onChange","value","panelId","children","dropdownMenuProps","useToolsPanelDropdownMenuProps","resetAll","updatedValue","jsx","__experimentalToolsPanel","label","DEFAULT_CONTROLS","fontFamily","fontSize","fontAppearance","TypographyPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","getValueFromVariable","hasFontFamilyEnabled","fontFamilyFaces","useMemo","getMergedFontFamiliesAndFontFamilyFaces","setFontFamily","newValue","slug","find","f","setImmutably","undefined","resetFontFamily","hasFontSizeEnabled","disableCustomFontSizes","mergedFontSizes","setFontSize","metadata","actualValue","resetFontSize","hasAppearanceControl","appearanceControlLabel","hasFontStyles","hasFontWeights","nearestFontStyle","nearestFontWeight","findNearestStyleAndWeight","setFontAppearance","useCallback","newFontStyle","newFontWeight","resetFontAppearance","useEffect","hasLineHeightEnabled","setLineHeight","resetLineHeight","hasLetterSpacingControl","setLetterSpacing","resetLetterSpacing","hasTextColumnsControl","setTextColumns","resetTextColumns","hasTextTransformControl","setTextTransform","resetTextTransform","hasTextDecorationControl","setTextDecoration","resetTextDecoration","hasWritingModeControl","setWritingMode","resetWritingMode","hasTextAlignmentControl","setTextAlign","resetTextAlign","previousValue","jsxs","__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, useMemo, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FontFamilyControl from '../font-family';\nimport FontAppearanceControl from '../font-appearance-control';\nimport LineHeightControl from '../line-height-control';\nimport LetterSpacingControl from '../letter-spacing-control';\nimport TextAlignmentControl from '../text-alignment-control';\nimport TextTransformControl from '../text-transform-control';\nimport TextDecorationControl from '../text-decoration-control';\nimport WritingModeControl from '../writing-mode-control';\nimport { getValueFromVariable, useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\nimport {\n\tgetMergedFontFamiliesAndFontFamilyFaces,\n\tfindNearestStyleAndWeight,\n} from './typography-utils';\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 hasTextAlign = useHasTextAlignmentControl( 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\thasTextAlign ||\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 [ 'default', 'theme', 'custom' ].some(\n\t\t( key ) => settings?.typography?.fontFamilies?.[ key ]?.length\n\t);\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 useHasTextAlignmentControl( settings ) {\n\treturn settings?.typography?.textAlign;\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 dropdownMenuProps = useToolsPanelDropdownMenuProps();\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={ dropdownMenuProps }\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\ttextAlign: 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 fontFamily = decodeValue( inheritedValue?.typography?.fontFamily );\n\tconst { fontFamilies, fontFamilyFaces } = useMemo( () => {\n\t\treturn getMergedFontFamiliesAndFontFamilyFaces( settings, fontFamily );\n\t}, [ settings, fontFamily ] );\n\n\tconst setFontFamily = ( newValue ) => {\n\t\tconst slug = fontFamilies?.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 { nearestFontStyle, nearestFontWeight } = findNearestStyleAndWeight(\n\t\tfontFamilyFaces,\n\t\tfontStyle,\n\t\tfontWeight\n\t);\n\tconst setFontAppearance = useCallback(\n\t\t( { fontStyle: newFontStyle, fontWeight: newFontWeight } ) => {\n\t\t\t// Only update the font style and weight if they have changed.\n\t\t\tif ( newFontStyle !== fontStyle || newFontWeight !== fontWeight ) {\n\t\t\t\tonChange( {\n\t\t\t\t\t...value,\n\t\t\t\t\ttypography: {\n\t\t\t\t\t\t...value?.typography,\n\t\t\t\t\t\tfontStyle: newFontStyle || undefined,\n\t\t\t\t\t\tfontWeight: newFontWeight || undefined,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ fontStyle, fontWeight, onChange, value ]\n\t);\n\tconst hasFontAppearance = () =>\n\t\t!! value?.typography?.fontStyle || !! value?.typography?.fontWeight;\n\tconst resetFontAppearance = useCallback( () => {\n\t\tsetFontAppearance( {} );\n\t}, [ setFontAppearance ] );\n\n\t// Check if previous font style and weight values are available in the new font family.\n\tuseEffect( () => {\n\t\tif ( nearestFontStyle && nearestFontWeight ) {\n\t\t\tsetFontAppearance( {\n\t\t\t\tfontStyle: nearestFontStyle,\n\t\t\t\tfontWeight: nearestFontWeight,\n\t\t\t} );\n\t\t} else {\n\t\t\t// Reset font appearance if there are no available styles or weights.\n\t\t\tresetFontAppearance();\n\t\t}\n\t}, [\n\t\tnearestFontStyle,\n\t\tnearestFontWeight,\n\t\tresetFontAppearance,\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\t// Text Alignment\n\tconst hasTextAlignmentControl = useHasTextAlignmentControl( settings );\n\n\tconst textAlign = decodeValue( inheritedValue?.typography?.textAlign );\n\tconst setTextAlign = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textAlign' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextAlign = () => !! value?.typography?.textAlign;\n\tconst resetTextAlign = () => setTextAlign( 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={ fontFamilies }\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\tfontFamilyFaces={ fontFamilyFaces }\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{ 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__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\t{ hasTextAlignmentControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Text alignment' ) }\n\t\t\t\t\thasValue={ hasTextAlign }\n\t\t\t\t\tonDeselect={ resetTextAlign }\n\t\t\t\t\tisShownByDefault={ defaultControls.textAlign }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextAlignmentControl\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ setTextAlign }\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":[]}
@@ -29,7 +29,6 @@ var _store = require("../../store");
29
29
  var _definitions = require("../../layouts/definitions");
30
30
  var _object = require("../../utils/object");
31
31
  var _lockUnlock = require("../../lock-unlock");
32
- var _themeFileUriUtils = require("./theme-file-uri-utils");
33
32
  /**
34
33
  * WordPress dependencies
35
34
  */
@@ -55,16 +54,6 @@ const BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS = {
55
54
  const {
56
55
  kebabCase
57
56
  } = (0, _lockUnlock.unlock)(_components.privateApis);
58
- function compileStyleValue(uncompiledValue) {
59
- const VARIABLE_REFERENCE_PREFIX = 'var:';
60
- const VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE = '|';
61
- const VARIABLE_PATH_SEPARATOR_TOKEN_STYLE = '--';
62
- if (uncompiledValue?.startsWith?.(VARIABLE_REFERENCE_PREFIX)) {
63
- const variable = uncompiledValue.slice(VARIABLE_REFERENCE_PREFIX.length).split(VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE).join(VARIABLE_PATH_SEPARATOR_TOKEN_STYLE);
64
- return `var(--wp--${variable})`;
65
- }
66
- return uncompiledValue;
67
- }
68
57
 
69
58
  /**
70
59
  * Transform given preset tree into a set of style declarations.
@@ -290,31 +279,46 @@ function getStylesDeclarations(blockStyles = {}, selector = '', useRootPaddingAl
290
279
  return;
291
280
  }
292
281
  const cssProperty = name.startsWith('--') ? name : kebabCase(name);
293
- declarations.push(`${cssProperty}: ${compileStyleValue((0, _object.getValueFromObjectPath)(styleValue, [prop]))}`);
282
+ declarations.push(`${cssProperty}: ${(0, _utils.compileStyleValue)((0, _object.getValueFromObjectPath)(styleValue, [prop]))}`);
294
283
  });
295
284
  } else if ((0, _object.getValueFromObjectPath)(blockStyles, pathToValue, false)) {
296
285
  const cssProperty = key.startsWith('--') ? key : kebabCase(key);
297
- declarations.push(`${cssProperty}: ${compileStyleValue((0, _object.getValueFromObjectPath)(blockStyles, pathToValue))}`);
286
+ declarations.push(`${cssProperty}: ${(0, _utils.compileStyleValue)((0, _object.getValueFromObjectPath)(blockStyles, pathToValue))}`);
298
287
  }
299
288
  return declarations;
300
289
  }, []);
301
290
 
302
291
  /*
303
- * Set background defaults.
304
- * Applies to all background styles except the top-level site background.
292
+ * Preprocess background image values.
293
+ *
294
+ * Note: As we absorb more and more styles into the engine, we could simplify this function.
295
+ * A refactor is for the style engine to handle ref resolution (and possibly defaults)
296
+ * via a public util used internally and externally. Theme.json tree and defaults could be passed
297
+ * as options.
305
298
  */
306
- if (!isRoot && !!blockStyles.background) {
307
- blockStyles = {
308
- ...blockStyles,
309
- background: {
310
- ...blockStyles.background,
311
- ...(0, _background.setBackgroundStyleDefaults)(blockStyles.background)
312
- }
313
- };
314
- }
299
+ if (!!blockStyles.background) {
300
+ /*
301
+ * Resolve dynamic values before they are compiled by the style engine,
302
+ * which doesn't (yet) resolve dynamic values.
303
+ */
304
+ if (blockStyles.background?.backgroundImage) {
305
+ blockStyles.background.backgroundImage = (0, _utils.getResolvedValue)(blockStyles.background.backgroundImage, tree);
306
+ }
315
307
 
316
- // The goal is to move everything to server side generated engine styles
317
- // This is temporary as we absorb more and more styles into the engine.
308
+ /*
309
+ * Set default values for block background styles.
310
+ * Top-level styles are an exception as they are applied to the body.
311
+ */
312
+ if (!isRoot && !!blockStyles.background?.backgroundImage?.id) {
313
+ blockStyles = {
314
+ ...blockStyles,
315
+ background: {
316
+ ...blockStyles.background,
317
+ ...(0, _background.setBackgroundStyleDefaults)(blockStyles.background)
318
+ }
319
+ };
320
+ }
321
+ }
318
322
  const extraRules = (0, _styleEngine.getCSSRules)(blockStyles);
319
323
  extraRules.forEach(rule => {
320
324
  // Don't output padding properties if padding variables are set or if we're not editing a full template.
@@ -322,16 +326,7 @@ function getStylesDeclarations(blockStyles = {}, selector = '', useRootPaddingAl
322
326
  return;
323
327
  }
324
328
  const cssProperty = rule.key.startsWith('--') ? rule.key : kebabCase(rule.key);
325
- let ruleValue = rule.value;
326
- if (typeof ruleValue !== 'string' && ruleValue?.ref) {
327
- const refPath = ruleValue.ref.split('.');
328
- ruleValue = compileStyleValue((0, _object.getValueFromObjectPath)(tree, refPath));
329
- // Presence of another ref indicates a reference to another dynamic value.
330
- // Pointing to another dynamic value is not supported.
331
- if (!ruleValue || ruleValue?.ref) {
332
- return;
333
- }
334
- }
329
+ let ruleValue = (0, _utils.getResolvedValue)(rule.value, tree, null);
335
330
 
336
331
  // Calculate fluid typography rules where available.
337
332
  if (cssProperty === 'font-size') {
@@ -938,10 +933,16 @@ function updateConfigWithSeparator(config) {
938
933
  }
939
934
  function processCSSNesting(css, blockSelector) {
940
935
  let processedCSS = '';
936
+ if (!css || css.trim() === '') {
937
+ return processedCSS;
938
+ }
941
939
 
942
940
  // Split CSS nested rules.
943
941
  const parts = css.split('&');
944
942
  parts.forEach(part => {
943
+ if (!part || part.trim() === '') {
944
+ return;
945
+ }
945
946
  const isRootCss = !part.includes('{');
946
947
  if (isRootCss) {
947
948
  // If the part doesn't contain braces, it applies to the root level.
@@ -953,8 +954,27 @@ function processCSSNesting(css, blockSelector) {
953
954
  return;
954
955
  }
955
956
  const [nestedSelector, cssValue] = splittedPart;
956
- const combinedSelector = nestedSelector.startsWith(' ') ? (0, _utils.scopeSelector)(blockSelector, nestedSelector) : (0, _utils.appendToSelector)(blockSelector, nestedSelector);
957
- processedCSS += `:root :where(${combinedSelector}){${cssValue.trim()}}`;
957
+
958
+ // Handle pseudo elements such as ::before, ::after, etc. Regex will also
959
+ // capture any leading combinator such as >, +, or ~, as well as spaces.
960
+ // This allows pseudo elements as descendants e.g. `.parent ::before`.
961
+ const matches = nestedSelector.match(/([>+~\s]*::[a-zA-Z-]+)/);
962
+ const pseudoPart = matches ? matches[1] : '';
963
+ const withoutPseudoElement = matches ? nestedSelector.replace(pseudoPart, '').trim() : nestedSelector.trim();
964
+ let combinedSelector;
965
+ if (withoutPseudoElement === '') {
966
+ // Only contained a pseudo element to use the block selector to form
967
+ // the final `:root :where()` selector.
968
+ combinedSelector = blockSelector;
969
+ } else {
970
+ // If the nested selector is a descendant of the block scope it with the
971
+ // block selector. Otherwise append it to the block selector.
972
+ combinedSelector = nestedSelector.startsWith(' ') ? (0, _utils.scopeSelector)(blockSelector, withoutPseudoElement) : (0, _utils.appendToSelector)(blockSelector, withoutPseudoElement);
973
+ }
974
+
975
+ // Build final rule, re-adding any pseudo element outside the `:where()`
976
+ // to maintain valid CSS selector.
977
+ processedCSS += `:root :where(${combinedSelector})${pseudoPart}{${cssValue.trim()}}`;
958
978
  }
959
979
  });
960
980
  return processedCSS;
@@ -974,7 +994,6 @@ function processCSSNesting(css, blockSelector) {
974
994
  */
975
995
  function useGlobalStylesOutputWithConfig(mergedConfig = {}, disableRootPadding) {
976
996
  const [blockGap] = (0, _hooks.useGlobalSetting)('spacing.blockGap');
977
- mergedConfig = (0, _themeFileUriUtils.setThemeFileUris)(mergedConfig, mergedConfig?._links?.['wp:theme-file']);
978
997
  const hasBlockGapSupport = blockGap !== null;
979
998
  const hasFallbackGapSupport = !hasBlockGapSupport; // This setting isn't useful yet: it exists as a placeholder for a future explicit fallback styles support.
980
999
  const disableLayoutStyles = (0, _data.useSelect)(select => {