@wordpress/block-editor 12.4.0 → 12.6.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 (524) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +1 -0
  3. package/build/components/block-draggable/index.js +6 -3
  4. package/build/components/block-draggable/index.js.map +1 -1
  5. package/build/components/block-draggable/index.native.js +2 -2
  6. package/build/components/block-draggable/index.native.js.map +1 -1
  7. package/build/components/block-edit/edit.js +25 -13
  8. package/build/components/block-edit/edit.js.map +1 -1
  9. package/build/components/block-heading-level-dropdown/heading-level-icon.js +10 -2
  10. package/build/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
  11. package/build/components/block-heading-level-dropdown/index.native.js +4 -3
  12. package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
  13. package/build/components/block-list/block-outline.native.js +14 -18
  14. package/build/components/block-list/block-outline.native.js.map +1 -1
  15. package/build/components/block-list/block.native.js +21 -42
  16. package/build/components/block-list/block.native.js.map +1 -1
  17. package/build/components/block-lock/toolbar.js +25 -6
  18. package/build/components/block-lock/toolbar.js.map +1 -1
  19. package/build/components/block-mover/index.native.js +1 -1
  20. package/build/components/block-mover/index.native.js.map +1 -1
  21. package/build/components/block-parent-selector/index.js +8 -5
  22. package/build/components/block-parent-selector/index.js.map +1 -1
  23. package/build/components/block-removal-warning-modal/index.js +15 -25
  24. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  25. package/build/components/block-settings/button.native.js +2 -2
  26. package/build/components/block-settings/button.native.js.map +1 -1
  27. package/build/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +10 -11
  28. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -0
  29. package/build/components/block-toolbar/index.js +12 -8
  30. package/build/components/block-toolbar/index.js.map +1 -1
  31. package/build/components/block-toolbar/index.native.js +62 -3
  32. package/build/components/block-toolbar/index.native.js.map +1 -1
  33. package/build/components/block-tools/block-contextual-toolbar.js +7 -11
  34. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  35. package/build/components/colors-gradients/control.js +4 -2
  36. package/build/components/colors-gradients/control.js.map +1 -1
  37. package/build/components/dimensions-tool/aspect-ratio-tool.js +99 -0
  38. package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -0
  39. package/build/components/dimensions-tool/index.js +207 -0
  40. package/build/components/dimensions-tool/index.js.map +1 -0
  41. package/build/components/dimensions-tool/scale-tool.js +111 -0
  42. package/build/components/dimensions-tool/scale-tool.js.map +1 -0
  43. package/build/components/dimensions-tool/width-height-tool.js +125 -0
  44. package/build/components/dimensions-tool/width-height-tool.js.map +1 -0
  45. package/build/components/global-styles/color-panel.js +22 -16
  46. package/build/components/global-styles/color-panel.js.map +1 -1
  47. package/build/components/global-styles/dimensions-panel.js +13 -2
  48. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  49. package/build/components/global-styles/filters-panel.js +1 -1
  50. package/build/components/global-styles/filters-panel.js.map +1 -1
  51. package/build/components/global-styles/get-block-css-selector.js +4 -8
  52. package/build/components/global-styles/get-block-css-selector.js.map +1 -1
  53. package/build/components/global-styles/hooks.js +15 -25
  54. package/build/components/global-styles/hooks.js.map +1 -1
  55. package/build/components/global-styles/typography-panel.js +52 -5
  56. package/build/components/global-styles/typography-panel.js.map +1 -1
  57. package/build/components/global-styles/use-global-styles-output.js +12 -18
  58. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  59. package/build/components/global-styles/utils.js +6 -6
  60. package/build/components/global-styles/utils.js.map +1 -1
  61. package/build/components/iframe/index.js +36 -48
  62. package/build/components/iframe/index.js.map +1 -1
  63. package/build/components/iframe/use-compatibility-styles.js +5 -0
  64. package/build/components/iframe/use-compatibility-styles.js.map +1 -1
  65. package/build/components/image-editor/aspect-ratio-dropdown.js +1 -1
  66. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  67. package/build/components/image-editor/use-save-image.js +1 -2
  68. package/build/components/image-editor/use-save-image.js.map +1 -1
  69. package/build/components/image-size-control/index.js +6 -0
  70. package/build/components/image-size-control/index.js.map +1 -1
  71. package/build/components/index.js +9 -0
  72. package/build/components/index.js.map +1 -1
  73. package/build/components/inner-blocks/index.js +3 -1
  74. package/build/components/inner-blocks/index.js.map +1 -1
  75. package/build/components/inner-blocks/index.native.js +3 -1
  76. package/build/components/inner-blocks/index.native.js.map +1 -1
  77. package/build/components/inner-blocks/use-nested-settings-update.js +33 -7
  78. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  79. package/build/components/inserter/block-patterns-explorer/patterns-list.js +2 -2
  80. package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  81. package/build/components/inserter/block-patterns-tab.js +7 -35
  82. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  83. package/build/components/inserter/hooks/use-block-types-state.js +3 -4
  84. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  85. package/build/components/inserter/hooks/use-patterns-state.js +9 -3
  86. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  87. package/build/components/inserter/index.js +2 -4
  88. package/build/components/inserter/index.js.map +1 -1
  89. package/build/components/inserter/index.native.js +21 -32
  90. package/build/components/inserter/index.native.js.map +1 -1
  91. package/build/components/inserter/media-tab/hooks.js +2 -21
  92. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  93. package/build/components/inserter/reusable-block-rename-hint.js +82 -0
  94. package/build/components/inserter/reusable-block-rename-hint.js.map +1 -0
  95. package/build/components/inserter/reusable-blocks-tab.js +6 -2
  96. package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
  97. package/build/components/inserter/reusable-blocks-tab.native.js +2 -2
  98. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  99. package/build/components/inserter/tabs.native.js +1 -1
  100. package/build/components/inserter/tabs.native.js.map +1 -1
  101. package/build/components/inserter-draggable-blocks/index.js +9 -1
  102. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  103. package/build/components/link-control/constants.js +1 -1
  104. package/build/components/link-control/constants.js.map +1 -1
  105. package/build/components/link-control/index.js +21 -16
  106. package/build/components/link-control/index.js.map +1 -1
  107. package/build/components/link-control/search-create-button.js +5 -21
  108. package/build/components/link-control/search-create-button.js.map +1 -1
  109. package/build/components/link-control/search-input.js +4 -4
  110. package/build/components/link-control/search-input.js.map +1 -1
  111. package/build/components/link-control/search-item.js +13 -30
  112. package/build/components/link-control/search-item.js.map +1 -1
  113. package/build/components/link-control/search-results.js +2 -2
  114. package/build/components/link-control/search-results.js.map +1 -1
  115. package/build/components/link-control/settings-drawer.js +2 -3
  116. package/build/components/link-control/settings-drawer.js.map +1 -1
  117. package/build/components/list-view/appender.js +2 -6
  118. package/build/components/list-view/appender.js.map +1 -1
  119. package/build/components/list-view/use-list-view-client-ids.js +2 -2
  120. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  121. package/build/components/media-placeholder/index.native.js +65 -31
  122. package/build/components/media-placeholder/index.native.js.map +1 -1
  123. package/build/components/preview-options/index.js +2 -2
  124. package/build/components/preview-options/index.js.map +1 -1
  125. package/build/components/provider/index.js +5 -2
  126. package/build/components/provider/index.js.map +1 -1
  127. package/build/components/provider/use-block-sync.js +21 -0
  128. package/build/components/provider/use-block-sync.js.map +1 -1
  129. package/build/components/resolution-tool/index.js +55 -0
  130. package/build/components/resolution-tool/index.js.map +1 -0
  131. package/build/components/rich-text/content.js +0 -36
  132. package/build/components/rich-text/content.js.map +1 -1
  133. package/build/components/rich-text/get-rich-text-values.js +118 -0
  134. package/build/components/rich-text/get-rich-text-values.js.map +1 -0
  135. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
  136. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  137. package/build/components/spacing-sizes-control/input-controls/axial.js +6 -2
  138. package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  139. package/build/components/spacing-sizes-control/input-controls/separated.js +5 -1
  140. package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  141. package/build/components/spacing-sizes-control/input-controls/single.js +5 -1
  142. package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -1
  143. package/build/components/spacing-sizes-control/utils.js +1 -1
  144. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  145. package/build/components/url-input/index.js +4 -2
  146. package/build/components/url-input/index.js.map +1 -1
  147. package/build/components/use-block-display-information/index.js +7 -3
  148. package/build/components/use-block-display-information/index.js.map +1 -1
  149. package/build/components/use-block-drop-zone/index.native.js +49 -8
  150. package/build/components/use-block-drop-zone/index.native.js.map +1 -1
  151. package/build/components/use-setting/index.js +5 -9
  152. package/build/components/use-setting/index.js.map +1 -1
  153. package/build/components/writing-flow/use-tab-nav.js +10 -27
  154. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  155. package/build/components/writing-mode-control/index.js +70 -0
  156. package/build/components/writing-mode-control/index.js.map +1 -0
  157. package/build/hooks/behaviors.js +25 -20
  158. package/build/hooks/behaviors.js.map +1 -1
  159. package/build/hooks/margin.js +1 -1
  160. package/build/hooks/margin.js.map +1 -1
  161. package/build/hooks/padding.js +1 -1
  162. package/build/hooks/padding.js.map +1 -1
  163. package/build/hooks/supports.js +7 -1
  164. package/build/hooks/supports.js.map +1 -1
  165. package/build/hooks/typography.js +2 -1
  166. package/build/hooks/typography.js.map +1 -1
  167. package/build/hooks/utils.js +5 -9
  168. package/build/hooks/utils.js.map +1 -1
  169. package/build/private-apis.js +16 -3
  170. package/build/private-apis.js.map +1 -1
  171. package/build/private-apis.native.js +3 -0
  172. package/build/private-apis.native.js.map +1 -1
  173. package/build/store/actions.js +196 -2
  174. package/build/store/actions.js.map +1 -1
  175. package/build/store/defaults.js +1 -0
  176. package/build/store/defaults.js.map +1 -1
  177. package/build/store/index.js +10 -1
  178. package/build/store/index.js.map +1 -1
  179. package/build/store/private-actions.js +46 -40
  180. package/build/store/private-actions.js.map +1 -1
  181. package/build/store/private-selectors.js +8 -9
  182. package/build/store/private-selectors.js.map +1 -1
  183. package/build/store/reducer.js +22 -9
  184. package/build/store/reducer.js.map +1 -1
  185. package/build/store/selectors.js +52 -23
  186. package/build/store/selectors.js.map +1 -1
  187. package/build/utils/object.js +38 -2
  188. package/build/utils/object.js.map +1 -1
  189. package/build-module/components/block-draggable/index.js +6 -3
  190. package/build-module/components/block-draggable/index.js.map +1 -1
  191. package/build-module/components/block-draggable/index.native.js +2 -2
  192. package/build-module/components/block-draggable/index.native.js.map +1 -1
  193. package/build-module/components/block-edit/edit.js +27 -10
  194. package/build-module/components/block-edit/edit.js.map +1 -1
  195. package/build-module/components/block-heading-level-dropdown/heading-level-icon.js +9 -2
  196. package/build-module/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
  197. package/build-module/components/block-heading-level-dropdown/index.native.js +4 -3
  198. package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
  199. package/build-module/components/block-list/block-outline.native.js +14 -18
  200. package/build-module/components/block-list/block-outline.native.js.map +1 -1
  201. package/build-module/components/block-list/block.native.js +24 -43
  202. package/build-module/components/block-list/block.native.js.map +1 -1
  203. package/build-module/components/block-lock/toolbar.js +25 -7
  204. package/build-module/components/block-lock/toolbar.js.map +1 -1
  205. package/build-module/components/block-mover/index.native.js +3 -3
  206. package/build-module/components/block-mover/index.native.js.map +1 -1
  207. package/build-module/components/block-parent-selector/index.js +7 -5
  208. package/build-module/components/block-parent-selector/index.js.map +1 -1
  209. package/build-module/components/block-removal-warning-modal/index.js +17 -24
  210. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  211. package/build-module/components/block-settings/button.native.js +3 -3
  212. package/build-module/components/block-settings/button.native.js.map +1 -1
  213. package/build-module/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +13 -13
  214. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -0
  215. package/build-module/components/block-toolbar/index.js +12 -8
  216. package/build-module/components/block-toolbar/index.js.map +1 -1
  217. package/build-module/components/block-toolbar/index.native.js +60 -4
  218. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  219. package/build-module/components/block-tools/block-contextual-toolbar.js +8 -11
  220. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  221. package/build-module/components/colors-gradients/control.js +3 -2
  222. package/build-module/components/colors-gradients/control.js.map +1 -1
  223. package/build-module/components/dimensions-tool/aspect-ratio-tool.js +87 -0
  224. package/build-module/components/dimensions-tool/aspect-ratio-tool.js.map +1 -0
  225. package/build-module/components/dimensions-tool/index.js +195 -0
  226. package/build-module/components/dimensions-tool/index.js.map +1 -0
  227. package/build-module/components/dimensions-tool/scale-tool.js +103 -0
  228. package/build-module/components/dimensions-tool/scale-tool.js.map +1 -0
  229. package/build-module/components/dimensions-tool/width-height-tool.js +122 -0
  230. package/build-module/components/dimensions-tool/width-height-tool.js.map +1 -0
  231. package/build-module/components/global-styles/color-panel.js +22 -16
  232. package/build-module/components/global-styles/color-panel.js.map +1 -1
  233. package/build-module/components/global-styles/dimensions-panel.js +13 -2
  234. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  235. package/build-module/components/global-styles/filters-panel.js +2 -2
  236. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  237. package/build-module/components/global-styles/get-block-css-selector.js +4 -8
  238. package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
  239. package/build-module/components/global-styles/hooks.js +14 -24
  240. package/build-module/components/global-styles/hooks.js.map +1 -1
  241. package/build-module/components/global-styles/typography-panel.js +51 -5
  242. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  243. package/build-module/components/global-styles/use-global-styles-output.js +13 -18
  244. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  245. package/build-module/components/global-styles/utils.js +5 -5
  246. package/build-module/components/global-styles/utils.js.map +1 -1
  247. package/build-module/components/iframe/index.js +37 -49
  248. package/build-module/components/iframe/index.js.map +1 -1
  249. package/build-module/components/iframe/use-compatibility-styles.js +5 -0
  250. package/build-module/components/iframe/use-compatibility-styles.js.map +1 -1
  251. package/build-module/components/image-editor/aspect-ratio-dropdown.js +1 -1
  252. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  253. package/build-module/components/image-editor/use-save-image.js +1 -2
  254. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  255. package/build-module/components/image-size-control/index.js +5 -0
  256. package/build-module/components/image-size-control/index.js.map +1 -1
  257. package/build-module/components/index.js +1 -0
  258. package/build-module/components/index.js.map +1 -1
  259. package/build-module/components/inner-blocks/index.js +3 -1
  260. package/build-module/components/inner-blocks/index.js.map +1 -1
  261. package/build-module/components/inner-blocks/index.native.js +3 -1
  262. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  263. package/build-module/components/inner-blocks/use-nested-settings-update.js +30 -7
  264. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  265. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +2 -2
  266. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  267. package/build-module/components/inserter/block-patterns-tab.js +7 -33
  268. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  269. package/build-module/components/inserter/hooks/use-block-types-state.js +3 -4
  270. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  271. package/build-module/components/inserter/hooks/use-patterns-state.js +9 -3
  272. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  273. package/build-module/components/inserter/index.js +2 -4
  274. package/build-module/components/inserter/index.js.map +1 -1
  275. package/build-module/components/inserter/index.native.js +22 -33
  276. package/build-module/components/inserter/index.native.js.map +1 -1
  277. package/build-module/components/inserter/media-tab/hooks.js +2 -21
  278. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  279. package/build-module/components/inserter/reusable-block-rename-hint.js +67 -0
  280. package/build-module/components/inserter/reusable-block-rename-hint.js.map +1 -0
  281. package/build-module/components/inserter/reusable-blocks-tab.js +5 -2
  282. package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
  283. package/build-module/components/inserter/reusable-blocks-tab.native.js +2 -2
  284. package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  285. package/build-module/components/inserter/tabs.native.js +1 -1
  286. package/build-module/components/inserter/tabs.native.js.map +1 -1
  287. package/build-module/components/inserter-draggable-blocks/index.js +9 -2
  288. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  289. package/build-module/components/link-control/constants.js +1 -1
  290. package/build-module/components/link-control/constants.js.map +1 -1
  291. package/build-module/components/link-control/index.js +21 -16
  292. package/build-module/components/link-control/index.js.map +1 -1
  293. package/build-module/components/link-control/search-create-button.js +7 -20
  294. package/build-module/components/link-control/search-create-button.js.map +1 -1
  295. package/build-module/components/link-control/search-input.js +4 -4
  296. package/build-module/components/link-control/search-input.js.map +1 -1
  297. package/build-module/components/link-control/search-item.js +14 -28
  298. package/build-module/components/link-control/search-item.js.map +1 -1
  299. package/build-module/components/link-control/search-results.js +3 -3
  300. package/build-module/components/link-control/search-results.js.map +1 -1
  301. package/build-module/components/link-control/settings-drawer.js +4 -5
  302. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  303. package/build-module/components/list-view/appender.js +2 -6
  304. package/build-module/components/list-view/appender.js.map +1 -1
  305. package/build-module/components/list-view/use-list-view-client-ids.js +2 -2
  306. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  307. package/build-module/components/media-placeholder/index.native.js +66 -33
  308. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  309. package/build-module/components/preview-options/index.js +2 -2
  310. package/build-module/components/preview-options/index.js.map +1 -1
  311. package/build-module/components/provider/index.js +5 -2
  312. package/build-module/components/provider/index.js.map +1 -1
  313. package/build-module/components/provider/use-block-sync.js +21 -0
  314. package/build-module/components/provider/use-block-sync.js.map +1 -1
  315. package/build-module/components/resolution-tool/index.js +45 -0
  316. package/build-module/components/resolution-tool/index.js.map +1 -0
  317. package/build-module/components/rich-text/content.js +1 -36
  318. package/build-module/components/rich-text/content.js.map +1 -1
  319. package/build-module/components/rich-text/get-rich-text-values.js +105 -0
  320. package/build-module/components/rich-text/get-rich-text-values.js.map +1 -0
  321. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
  322. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  323. package/build-module/components/spacing-sizes-control/input-controls/axial.js +7 -3
  324. package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  325. package/build-module/components/spacing-sizes-control/input-controls/separated.js +6 -2
  326. package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  327. package/build-module/components/spacing-sizes-control/input-controls/single.js +6 -2
  328. package/build-module/components/spacing-sizes-control/input-controls/single.js.map +1 -1
  329. package/build-module/components/spacing-sizes-control/utils.js +1 -1
  330. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  331. package/build-module/components/url-input/index.js +4 -2
  332. package/build-module/components/url-input/index.js.map +1 -1
  333. package/build-module/components/use-block-display-information/index.js +7 -3
  334. package/build-module/components/use-block-display-information/index.js.map +1 -1
  335. package/build-module/components/use-block-drop-zone/index.native.js +50 -8
  336. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
  337. package/build-module/components/use-setting/index.js +5 -9
  338. package/build-module/components/use-setting/index.js.map +1 -1
  339. package/build-module/components/writing-flow/use-tab-nav.js +8 -26
  340. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  341. package/build-module/components/writing-mode-control/index.js +57 -0
  342. package/build-module/components/writing-mode-control/index.js.map +1 -0
  343. package/build-module/hooks/behaviors.js +26 -20
  344. package/build-module/hooks/behaviors.js.map +1 -1
  345. package/build-module/hooks/margin.js +1 -1
  346. package/build-module/hooks/margin.js.map +1 -1
  347. package/build-module/hooks/padding.js +1 -1
  348. package/build-module/hooks/padding.js.map +1 -1
  349. package/build-module/hooks/supports.js +7 -1
  350. package/build-module/hooks/supports.js.map +1 -1
  351. package/build-module/hooks/typography.js +2 -1
  352. package/build-module/hooks/typography.js.map +1 -1
  353. package/build-module/hooks/utils.js +6 -9
  354. package/build-module/hooks/utils.js.map +1 -1
  355. package/build-module/private-apis.js +11 -2
  356. package/build-module/private-apis.js.map +1 -1
  357. package/build-module/private-apis.native.js +2 -0
  358. package/build-module/private-apis.native.js.map +1 -1
  359. package/build-module/store/actions.js +193 -3
  360. package/build-module/store/actions.js.map +1 -1
  361. package/build-module/store/defaults.js +1 -0
  362. package/build-module/store/defaults.js.map +1 -1
  363. package/build-module/store/index.js +10 -1
  364. package/build-module/store/index.js.map +1 -1
  365. package/build-module/store/private-actions.js +45 -36
  366. package/build-module/store/private-actions.js.map +1 -1
  367. package/build-module/store/private-selectors.js +5 -5
  368. package/build-module/store/private-selectors.js.map +1 -1
  369. package/build-module/store/reducer.js +22 -9
  370. package/build-module/store/reducer.js.map +1 -1
  371. package/build-module/store/selectors.js +49 -21
  372. package/build-module/store/selectors.js.map +1 -1
  373. package/build-module/utils/object.js +34 -2
  374. package/build-module/utils/object.js.map +1 -1
  375. package/build-style/content-rtl.css +4 -0
  376. package/build-style/content.css +4 -0
  377. package/build-style/style-rtl.css +137 -129
  378. package/build-style/style.css +137 -129
  379. package/package.json +33 -32
  380. package/src/components/alignment-control/test/__snapshots__/index.js.snap +6 -6
  381. package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +5 -5
  382. package/src/components/block-controls/README.md +89 -0
  383. package/src/components/block-draggable/index.js +13 -4
  384. package/src/components/block-draggable/index.native.js +7 -3
  385. package/src/components/block-draggable/style.scss +1 -0
  386. package/src/components/block-draggable/test/index.native.js +0 -54
  387. package/src/components/block-edit/edit.js +26 -9
  388. package/src/components/block-edit/test/edit.js +1 -1
  389. package/src/components/block-heading-level-dropdown/heading-level-icon.js +6 -1
  390. package/src/components/block-heading-level-dropdown/index.native.js +8 -4
  391. package/src/components/block-inspector/style.scss +2 -1
  392. package/src/components/block-list/block-outline.native.js +26 -25
  393. package/src/components/block-list/block.native.js +24 -38
  394. package/src/components/block-list/block.native.scss +18 -40
  395. package/src/components/block-list/style.native.scss +3 -3
  396. package/src/components/block-lock/toolbar.js +34 -6
  397. package/src/components/block-mover/index.native.js +3 -3
  398. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +16 -6
  399. package/src/components/block-parent-selector/index.js +13 -8
  400. package/src/components/block-removal-warning-modal/index.js +17 -33
  401. package/src/components/block-settings/button.native.js +12 -6
  402. package/src/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +19 -18
  403. package/src/components/block-toolbar/index.js +11 -9
  404. package/src/components/block-toolbar/index.native.js +86 -6
  405. package/src/components/{block-mobile-toolbar/test/block-actions-menu.native.js → block-toolbar/test/block-toolbar-menu.native.js} +20 -54
  406. package/src/components/block-toolbar/test/index.native.js +42 -0
  407. package/src/components/block-tools/block-contextual-toolbar.js +5 -11
  408. package/src/components/block-tools/style.scss +73 -26
  409. package/src/components/button-block-appender/styles.native.scss +2 -2
  410. package/src/components/caption/README.md +49 -0
  411. package/src/components/colors-gradients/control.js +3 -2
  412. package/src/components/default-block-appender/content.scss +11 -0
  413. package/src/components/dimensions-tool/aspect-ratio-tool.js +124 -0
  414. package/src/components/dimensions-tool/index.js +212 -0
  415. package/src/components/dimensions-tool/scale-tool.js +124 -0
  416. package/src/components/dimensions-tool/stories/aspect-ratio-tool.js +52 -0
  417. package/src/components/dimensions-tool/stories/index.js +54 -0
  418. package/src/components/dimensions-tool/stories/scale-tool.js +48 -0
  419. package/src/components/dimensions-tool/stories/width-height-tool.js +54 -0
  420. package/src/components/dimensions-tool/test/index.js +641 -0
  421. package/src/components/dimensions-tool/width-height-tool.js +113 -0
  422. package/src/components/font-family/README.md +71 -0
  423. package/src/components/global-styles/color-panel.js +24 -17
  424. package/src/components/global-styles/dimensions-panel.js +8 -2
  425. package/src/components/global-styles/filters-panel.js +2 -2
  426. package/src/components/global-styles/get-block-css-selector.js +5 -9
  427. package/src/components/global-styles/hooks.js +22 -26
  428. package/src/components/global-styles/typography-panel.js +57 -5
  429. package/src/components/global-styles/use-global-styles-output.js +36 -18
  430. package/src/components/global-styles/utils.js +15 -6
  431. package/src/components/iframe/index.js +30 -56
  432. package/src/components/iframe/use-compatibility-styles.js +5 -0
  433. package/src/components/image-editor/aspect-ratio-dropdown.js +1 -1
  434. package/src/components/image-editor/use-save-image.js +0 -1
  435. package/src/components/image-size-control/index.js +6 -0
  436. package/src/components/index.js +1 -0
  437. package/src/components/inner-blocks/README.md +10 -0
  438. package/src/components/inner-blocks/index.js +4 -0
  439. package/src/components/inner-blocks/index.native.js +4 -0
  440. package/src/components/inner-blocks/use-nested-settings-update.js +32 -5
  441. package/src/components/inserter/block-patterns-explorer/patterns-list.js +8 -2
  442. package/src/components/inserter/block-patterns-tab.js +8 -56
  443. package/src/components/inserter/hooks/use-block-types-state.js +3 -4
  444. package/src/components/inserter/hooks/use-patterns-state.js +35 -19
  445. package/src/components/inserter/index.js +2 -3
  446. package/src/components/inserter/index.native.js +17 -36
  447. package/src/components/inserter/media-tab/hooks.js +2 -22
  448. package/src/components/inserter/reusable-block-rename-hint.js +69 -0
  449. package/src/components/inserter/reusable-blocks-tab.js +5 -1
  450. package/src/components/inserter/reusable-blocks-tab.native.js +2 -2
  451. package/src/components/inserter/style.native.scss +10 -15
  452. package/src/components/inserter/style.scss +28 -0
  453. package/src/components/inserter/tabs.native.js +5 -1
  454. package/src/components/inserter-draggable-blocks/index.js +13 -2
  455. package/src/components/link-control/constants.js +1 -1
  456. package/src/components/link-control/index.js +36 -29
  457. package/src/components/link-control/search-create-button.js +8 -26
  458. package/src/components/link-control/search-input.js +4 -3
  459. package/src/components/link-control/search-item.js +21 -43
  460. package/src/components/link-control/search-results.js +48 -46
  461. package/src/components/link-control/settings-drawer.js +6 -5
  462. package/src/components/link-control/style.scss +58 -123
  463. package/src/components/link-control/test/index.js +161 -123
  464. package/src/components/list-view/appender.js +5 -6
  465. package/src/components/list-view/style.scss +1 -2
  466. package/src/components/list-view/use-list-view-client-ids.js +2 -2
  467. package/src/components/media-placeholder/index.native.js +108 -59
  468. package/src/components/media-placeholder/styles.native.scss +59 -24
  469. package/src/components/media-replace-flow/test/index.js +1 -1
  470. package/src/components/panel-color-settings/README.md +98 -0
  471. package/src/components/preview-options/README.md +18 -17
  472. package/src/components/preview-options/index.js +2 -2
  473. package/src/components/provider/index.js +9 -2
  474. package/src/components/provider/test/use-block-sync.js +21 -6
  475. package/src/components/provider/use-block-sync.js +19 -0
  476. package/src/components/recursion-provider/README.md +101 -0
  477. package/src/components/resolution-tool/index.js +56 -0
  478. package/src/components/resolution-tool/stories/index.js +48 -0
  479. package/src/components/rich-text/content.js +1 -46
  480. package/src/components/rich-text/get-rich-text-values.js +105 -0
  481. package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
  482. package/src/components/spacing-sizes-control/input-controls/axial.js +17 -2
  483. package/src/components/spacing-sizes-control/input-controls/separated.js +17 -2
  484. package/src/components/spacing-sizes-control/input-controls/single.js +12 -2
  485. package/src/components/spacing-sizes-control/utils.js +1 -1
  486. package/src/components/text-transform-control/README.md +44 -0
  487. package/src/components/url-input/index.js +2 -0
  488. package/src/components/use-block-display-information/index.js +12 -5
  489. package/src/components/use-block-drop-zone/index.native.js +65 -28
  490. package/src/components/use-setting/index.js +8 -8
  491. package/src/components/writing-flow/use-tab-nav.js +10 -33
  492. package/src/components/writing-mode-control/index.js +68 -0
  493. package/src/components/writing-mode-control/style.scss +18 -0
  494. package/src/hooks/behaviors.js +25 -16
  495. package/src/hooks/margin.js +4 -1
  496. package/src/hooks/padding.js +4 -1
  497. package/src/hooks/supports.js +7 -0
  498. package/src/hooks/typography.js +2 -0
  499. package/src/hooks/utils.js +8 -7
  500. package/src/private-apis.js +13 -1
  501. package/src/private-apis.native.js +2 -0
  502. package/src/store/actions.js +195 -3
  503. package/src/store/defaults.js +1 -0
  504. package/src/store/index.js +10 -0
  505. package/src/store/private-actions.js +39 -39
  506. package/src/store/private-selectors.js +5 -8
  507. package/src/store/reducer.js +22 -9
  508. package/src/store/selectors.js +87 -25
  509. package/src/store/test/actions.js +114 -0
  510. package/src/store/test/private-actions.js +56 -0
  511. package/src/store/test/private-selectors.js +5 -5
  512. package/src/store/test/reducer.js +14 -7
  513. package/src/store/test/selectors.js +1 -1
  514. package/src/utils/object.js +32 -2
  515. package/src/utils/test/object.js +36 -0
  516. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +0 -1
  517. package/build/components/block-mobile-toolbar/index.native.js +0 -135
  518. package/build/components/block-mobile-toolbar/index.native.js.map +0 -1
  519. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +0 -1
  520. package/build-module/components/block-mobile-toolbar/index.native.js +0 -116
  521. package/build-module/components/block-mobile-toolbar/index.native.js.map +0 -1
  522. package/src/components/block-mobile-toolbar/index.native.js +0 -127
  523. package/src/components/block-mobile-toolbar/style.native.scss +0 -16
  524. /package/src/components/{block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap → block-toolbar/test/__snapshots__/block-toolbar-menu.native.js.snap} +0 -0
@@ -26,6 +26,8 @@ var _textTransformControl = _interopRequireDefault(require("../text-transform-co
26
26
 
27
27
  var _textDecorationControl = _interopRequireDefault(require("../text-decoration-control"));
28
28
 
29
+ var _writingModeControl = _interopRequireDefault(require("../writing-mode-control"));
30
+
29
31
  var _utils = require("./utils");
30
32
 
31
33
  var _object = require("../../utils/object");
@@ -47,9 +49,10 @@ function useHasTypographyPanel(settings) {
47
49
  const hasLetterSpacing = useHasLetterSpacingControl(settings);
48
50
  const hasTextTransform = useHasTextTransformControl(settings);
49
51
  const hasTextDecoration = useHasTextDecorationControl(settings);
52
+ const hasWritingMode = useHasWritingModeControl(settings);
50
53
  const hasTextColumns = useHasTextColumnsControl(settings);
51
54
  const hasFontSize = useHasFontSizeControl(settings);
52
- return hasFontFamily || hasLineHeight || hasFontAppearance || hasLetterSpacing || hasTextTransform || hasFontSize || hasTextDecoration || hasTextColumns;
55
+ return hasFontFamily || hasLineHeight || hasFontAppearance || hasLetterSpacing || hasTextTransform || hasFontSize || hasTextDecoration || hasWritingMode || hasTextColumns;
53
56
  }
54
57
 
55
58
  function useHasFontSizeControl(settings) {
@@ -106,10 +109,30 @@ function useHasTextDecorationControl(settings) {
106
109
  return settings?.typography?.textDecoration;
107
110
  }
108
111
 
112
+ function useHasWritingModeControl(settings) {
113
+ return settings?.typography?.writingMode;
114
+ }
115
+
109
116
  function useHasTextColumnsControl(settings) {
110
117
  return settings?.typography?.textColumns;
111
118
  }
112
119
 
120
+ function getUniqueFontSizesBySlug(settings) {
121
+ var _settings$typography$2, _fontSizesPerOrigin$c2, _fontSizesPerOrigin$t2, _fontSizesPerOrigin$d2;
122
+
123
+ const fontSizesPerOrigin = (_settings$typography$2 = settings?.typography?.fontSizes) !== null && _settings$typography$2 !== void 0 ? _settings$typography$2 : {};
124
+ const fontSizes = [].concat((_fontSizesPerOrigin$c2 = fontSizesPerOrigin?.custom) !== null && _fontSizesPerOrigin$c2 !== void 0 ? _fontSizesPerOrigin$c2 : []).concat((_fontSizesPerOrigin$t2 = fontSizesPerOrigin?.theme) !== null && _fontSizesPerOrigin$t2 !== void 0 ? _fontSizesPerOrigin$t2 : []).concat((_fontSizesPerOrigin$d2 = fontSizesPerOrigin.default) !== null && _fontSizesPerOrigin$d2 !== void 0 ? _fontSizesPerOrigin$d2 : []);
125
+ return fontSizes.reduce((acc, currentSize) => {
126
+ if (!acc.some(({
127
+ slug
128
+ }) => slug === currentSize.slug)) {
129
+ acc.push(currentSize);
130
+ }
131
+
132
+ return acc;
133
+ }, []);
134
+ }
135
+
113
136
  function TypographyToolsPanel({
114
137
  resetAllFilter,
115
138
  onChange,
@@ -137,6 +160,7 @@ const DEFAULT_CONTROLS = {
137
160
  letterSpacing: true,
138
161
  textTransform: true,
139
162
  textDecoration: true,
163
+ writingMode: true,
140
164
  textColumns: true
141
165
  };
142
166
 
@@ -149,7 +173,7 @@ function TypographyPanel({
149
173
  panelId,
150
174
  defaultControls = DEFAULT_CONTROLS
151
175
  }) {
152
- var _fontFamiliesPerOrigi4, _fontFamiliesPerOrigi5, _fontFamiliesPerOrigi6, _settings$typography$2, _fontSizesPerOrigin$c2, _fontSizesPerOrigin$t2, _fontSizesPerOrigin$d2;
176
+ var _fontFamiliesPerOrigi4, _fontFamiliesPerOrigi5, _fontFamiliesPerOrigi6;
153
177
 
154
178
  const decodeValue = rawValue => (0, _utils.getValueFromVariable)({
155
179
  settings
@@ -175,8 +199,7 @@ function TypographyPanel({
175
199
 
176
200
  const hasFontSizeEnabled = useHasFontSizeControl(settings);
177
201
  const disableCustomFontSizes = !settings?.typography?.customFontSize;
178
- const fontSizesPerOrigin = (_settings$typography$2 = settings?.typography?.fontSizes) !== null && _settings$typography$2 !== void 0 ? _settings$typography$2 : {};
179
- const fontSizes = [].concat((_fontSizesPerOrigin$c2 = fontSizesPerOrigin?.custom) !== null && _fontSizesPerOrigin$c2 !== void 0 ? _fontSizesPerOrigin$c2 : []).concat((_fontSizesPerOrigin$t2 = fontSizesPerOrigin?.theme) !== null && _fontSizesPerOrigin$t2 !== void 0 ? _fontSizesPerOrigin$t2 : []).concat((_fontSizesPerOrigin$d2 = fontSizesPerOrigin.default) !== null && _fontSizesPerOrigin$d2 !== void 0 ? _fontSizesPerOrigin$d2 : []);
202
+ const fontSizes = getUniqueFontSizesBySlug(settings);
180
203
  const fontSize = decodeValue(inheritedValue?.typography?.fontSize);
181
204
 
182
205
  const setFontSize = (newValue, metadata) => {
@@ -272,7 +295,19 @@ function TypographyPanel({
272
295
 
273
296
  const hasTextDecoration = () => !!value?.typography?.textDecoration;
274
297
 
275
- const resetTextDecoration = () => setTextDecoration(undefined);
298
+ const resetTextDecoration = () => setTextDecoration(undefined); // Text Orientation
299
+
300
+
301
+ const hasWritingModeControl = useHasWritingModeControl(settings);
302
+ const writingMode = decodeValue(inheritedValue?.typography?.writingMode);
303
+
304
+ const setWritingMode = newValue => {
305
+ onChange((0, _object.setImmutably)(value, ['typography', 'writingMode'], newValue || undefined));
306
+ };
307
+
308
+ const hasWritingMode = () => !!value?.typography?.writingMode;
309
+
310
+ const resetWritingMode = () => setWritingMode(undefined);
276
311
 
277
312
  const resetAllFilter = (0, _element.useCallback)(previousValue => {
278
313
  return { ...previousValue,
@@ -381,6 +416,18 @@ function TypographyPanel({
381
416
  onChange: setTextDecoration,
382
417
  size: "__unstable-large",
383
418
  __unstableInputWidth: "auto"
419
+ })), hasWritingModeControl && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
420
+ className: "single-column",
421
+ label: (0, _i18n.__)('Text orientation'),
422
+ hasValue: hasWritingMode,
423
+ onDeselect: resetWritingMode,
424
+ isShownByDefault: defaultControls.writingMode,
425
+ panelId: panelId
426
+ }, (0, _element.createElement)(_writingModeControl.default, {
427
+ value: writingMode,
428
+ onChange: setWritingMode,
429
+ size: "__unstable-large",
430
+ __nextHasNoMarginBottom: true
384
431
  })), hasTextTransformControl && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
385
432
  label: (0, _i18n.__)('Letter case'),
386
433
  hasValue: hasTextTransform,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/typography-panel.js"],"names":["MIN_TEXT_COLUMNS","MAX_TEXT_COLUMNS","useHasTypographyPanel","settings","hasFontFamily","useHasFontFamilyControl","hasLineHeight","useHasLineHeightControl","hasFontAppearance","useHasAppearanceControl","hasLetterSpacing","useHasLetterSpacingControl","hasTextTransform","useHasTextTransformControl","hasTextDecoration","useHasTextDecorationControl","hasTextColumns","useHasTextColumnsControl","hasFontSize","useHasFontSizeControl","disableCustomFontSizes","typography","customFontSize","fontSizesPerOrigin","fontSizes","concat","custom","theme","default","length","fontFamiliesPerOrigin","fontFamilies","sort","a","b","name","slug","localeCompare","lineHeight","hasFontStyles","fontStyle","hasFontWeights","fontWeight","useAppearanceControlLabel","letterSpacing","textTransform","textDecoration","textColumns","TypographyToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","DEFAULT_CONTROLS","fontFamily","fontSize","fontAppearance","TypographyPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","hasFontFamilyEnabled","setFontFamily","newValue","find","f","undefined","resetFontFamily","hasFontSizeEnabled","setFontSize","metadata","actualValue","resetFontSize","hasAppearanceControl","appearanceControlLabel","setFontAppearance","newFontStyle","newFontWeight","resetFontAppearance","hasLineHeightEnabled","setLineHeight","resetLineHeight","hasLetterSpacingControl","setLetterSpacing","resetLetterSpacing","hasTextColumnsControl","setTextColumns","resetTextColumns","hasTextTransformControl","setTextTransform","resetTextTransform","hasTextDecorationControl","setTextDecoration","resetTextDecoration","previousValue"],"mappings":";;;;;;;;;;AAUA;;AAPA;;AAMA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAtBA;AACA;AACA;;AAUA;AACA;AACA;AAUA,MAAMA,gBAAgB,GAAG,CAAzB;AACA,MAAMC,gBAAgB,GAAG,CAAzB;;AAEO,SAASC,qBAAT,CAAgCC,QAAhC,EAA2C;AACjD,QAAMC,aAAa,GAAGC,uBAAuB,CAAEF,QAAF,CAA7C;AACA,QAAMG,aAAa,GAAGC,uBAAuB,CAAEJ,QAAF,CAA7C;AACA,QAAMK,iBAAiB,GAAGC,uBAAuB,CAAEN,QAAF,CAAjD;AACA,QAAMO,gBAAgB,GAAGC,0BAA0B,CAAER,QAAF,CAAnD;AACA,QAAMS,gBAAgB,GAAGC,0BAA0B,CAAEV,QAAF,CAAnD;AACA,QAAMW,iBAAiB,GAAGC,2BAA2B,CAAEZ,QAAF,CAArD;AACA,QAAMa,cAAc,GAAGC,wBAAwB,CAAEd,QAAF,CAA/C;AACA,QAAMe,WAAW,GAAGC,qBAAqB,CAAEhB,QAAF,CAAzC;AAEA,SACCC,aAAa,IACbE,aADA,IAEAE,iBAFA,IAGAE,gBAHA,IAIAE,gBAJA,IAKAM,WALA,IAMAJ,iBANA,IAOAE,cARD;AAUA;;AAED,SAASG,qBAAT,CAAgChB,QAAhC,EAA2C;AAAA;;AAC1C,QAAMiB,sBAAsB,GAAG,CAAEjB,QAAQ,EAAEkB,UAAV,EAAsBC,cAAvD;AACA,QAAMC,kBAAkB,4BAAGpB,QAAQ,EAAEkB,UAAV,EAAsBG,SAAzB,yEAAsC,EAA9D;AACA,QAAMA,SAAS,GAAG,GAChBC,MADgB,0BACRF,kBAAkB,EAAEG,MADZ,yEACsB,EADtB,EAEhBD,MAFgB,0BAERF,kBAAkB,EAAEI,KAFZ,yEAEqB,EAFrB,EAGhBF,MAHgB,0BAGRF,kBAAkB,CAACK,OAHX,yEAGsB,EAHtB,CAAlB;AAIA,SAAO,CAAC,CAAEJ,SAAS,EAAEK,MAAd,IAAwB,CAAET,sBAAjC;AACA;;AAED,SAASf,uBAAT,CAAkCF,QAAlC,EAA6C;AAAA;;AAC5C,QAAM2B,qBAAqB,GAAG3B,QAAQ,EAAEkB,UAAV,EAAsBU,YAApD;AACA,QAAMA,YAAY,GAAG,GACnBN,MADmB,0BACXK,qBAAqB,EAAEJ,MADZ,yEACsB,EADtB,EAEnBD,MAFmB,2BAEXK,qBAAqB,EAAEH,KAFZ,2EAEqB,EAFrB,EAGnBF,MAHmB,2BAGXK,qBAAqB,EAAEF,OAHZ,2EAGuB,EAHvB,EAInBI,IAJmB,CAIb,CAAEC,CAAF,EAAKC,CAAL,KACN,CAAED,CAAC,EAAEE,IAAH,IAAWF,CAAC,EAAEG,IAAhB,EAAuBC,aAAvB,CAAsCH,CAAC,EAAEC,IAAH,IAAWF,CAAC,EAAEG,IAApD,CALmB,CAArB;AAOA,SAAO,CAAC,CAAEL,YAAY,EAAEF,MAAxB;AACA;;AAED,SAAStB,uBAAT,CAAkCJ,QAAlC,EAA6C;AAC5C,SAAOA,QAAQ,EAAEkB,UAAV,EAAsBiB,UAA7B;AACA;;AAED,SAAS7B,uBAAT,CAAkCN,QAAlC,EAA6C;AAC5C,QAAMoC,aAAa,GAAGpC,QAAQ,EAAEkB,UAAV,EAAsBmB,SAA5C;AACA,QAAMC,cAAc,GAAGtC,QAAQ,EAAEkB,UAAV,EAAsBqB,UAA7C;AACA,SAAOH,aAAa,IAAIE,cAAxB;AACA;;AAED,SAASE,yBAAT,CAAoCxC,QAApC,EAA+C;AAC9C,QAAMoC,aAAa,GAAGpC,QAAQ,EAAEkB,UAAV,EAAsBmB,SAA5C;AACA,QAAMC,cAAc,GAAGtC,QAAQ,EAAEkB,UAAV,EAAsBqB,UAA7C;;AACA,MAAK,CAAEH,aAAP,EAAuB;AACtB,WAAO,cAAI,aAAJ,CAAP;AACA;;AACD,MAAK,CAAEE,cAAP,EAAwB;AACvB,WAAO,cAAI,YAAJ,CAAP;AACA;;AACD,SAAO,cAAI,YAAJ,CAAP;AACA;;AAED,SAAS9B,0BAAT,CAAqCR,QAArC,EAAgD;AAC/C,SAAOA,QAAQ,EAAEkB,UAAV,EAAsBuB,aAA7B;AACA;;AAED,SAAS/B,0BAAT,CAAqCV,QAArC,EAAgD;AAC/C,SAAOA,QAAQ,EAAEkB,UAAV,EAAsBwB,aAA7B;AACA;;AAED,SAAS9B,2BAAT,CAAsCZ,QAAtC,EAAiD;AAChD,SAAOA,QAAQ,EAAEkB,UAAV,EAAsByB,cAA7B;AACA;;AAED,SAAS7B,wBAAT,CAAmCd,QAAnC,EAA8C;AAC7C,SAAOA,QAAQ,EAAEkB,UAAV,EAAsB0B,WAA7B;AACA;;AAED,SAASC,oBAAT,CAA+B;AAC9BC,EAAAA,cAD8B;AAE9BC,EAAAA,QAF8B;AAG9BC,EAAAA,KAH8B;AAI9BC,EAAAA,OAJ8B;AAK9BC,EAAAA;AAL8B,CAA/B,EAMI;AACH,QAAMC,QAAQ,GAAG,MAAM;AACtB,UAAMC,YAAY,GAAGN,cAAc,CAAEE,KAAF,CAAnC;AACAD,IAAAA,QAAQ,CAAEK,YAAF,CAAR;AACA,GAHD;;AAKA,SACC,4BAAC,oCAAD;AACC,IAAA,KAAK,EAAG,cAAI,YAAJ,CADT;AAEC,IAAA,QAAQ,EAAGD,QAFZ;AAGC,IAAA,OAAO,EAAGF;AAHX,KAKGC,QALH,CADD;AASA;;AAED,MAAMG,gBAAgB,GAAG;AACxBC,EAAAA,UAAU,EAAE,IADY;AAExBC,EAAAA,QAAQ,EAAE,IAFc;AAGxBC,EAAAA,cAAc,EAAE,IAHQ;AAIxBrB,EAAAA,UAAU,EAAE,IAJY;AAKxBM,EAAAA,aAAa,EAAE,IALS;AAMxBC,EAAAA,aAAa,EAAE,IANS;AAOxBC,EAAAA,cAAc,EAAE,IAPQ;AAQxBC,EAAAA,WAAW,EAAE;AARW,CAAzB;;AAWe,SAASa,eAAT,CAA0B;AACxCC,EAAAA,EAAE,EAAEC,OAAO,GAAGd,oBAD0B;AAExCG,EAAAA,KAFwC;AAGxCD,EAAAA,QAHwC;AAIxCa,EAAAA,cAAc,GAAGZ,KAJuB;AAKxChD,EAAAA,QALwC;AAMxCiD,EAAAA,OANwC;AAOxCY,EAAAA,eAAe,GAAGR;AAPsB,CAA1B,EAQX;AAAA;;AACH,QAAMS,WAAW,GAAKC,QAAF,IACnB,iCAAsB;AAAE/D,IAAAA;AAAF,GAAtB,EAAoC,EAApC,EAAwC+D,QAAxC,CADD,CADG,CAIH;;;AACA,QAAMC,oBAAoB,GAAG9D,uBAAuB,CAAEF,QAAF,CAApD;AACA,QAAM2B,qBAAqB,GAAG3B,QAAQ,EAAEkB,UAAV,EAAsBU,YAApD;AACA,QAAMA,YAAY,GAAG,GACnBN,MADmB,2BACXK,qBAAqB,EAAEJ,MADZ,2EACsB,EADtB,EAEnBD,MAFmB,2BAEXK,qBAAqB,EAAEH,KAFZ,2EAEqB,EAFrB,EAGnBF,MAHmB,2BAGXK,qBAAqB,EAAEF,OAHZ,2EAGuB,EAHvB,CAArB;AAIA,QAAM6B,UAAU,GAAGQ,WAAW,CAAEF,cAAc,EAAE1C,UAAhB,EAA4BoC,UAA9B,CAA9B;;AACA,QAAMW,aAAa,GAAKC,QAAF,IAAgB;AACrC,UAAMjC,IAAI,GAAGL,YAAY,EAAEuC,IAAd,CACZ,CAAE;AAAEb,MAAAA,UAAU,EAAEc;AAAd,KAAF,KAAyBA,CAAC,KAAKF,QADnB,GAEVjC,IAFH;AAGAc,IAAAA,QAAQ,CACP,0BACCC,KADD,EAEC,CAAE,YAAF,EAAgB,YAAhB,CAFD,EAGCf,IAAI,GACA,0BAA0BA,IAAM,EADhC,GAEDiC,QAAQ,IAAIG,SALhB,CADO,CAAR;AASA,GAbD;;AAcA,QAAMpE,aAAa,GAAG,MAAM,CAAC,CAAE+C,KAAK,EAAE9B,UAAP,EAAmBoC,UAAlD;;AACA,QAAMgB,eAAe,GAAG,MAAML,aAAa,CAAEI,SAAF,CAA3C,CA3BG,CA6BH;;;AACA,QAAME,kBAAkB,GAAGvD,qBAAqB,CAAEhB,QAAF,CAAhD;AACA,QAAMiB,sBAAsB,GAAG,CAAEjB,QAAQ,EAAEkB,UAAV,EAAsBC,cAAvD;AACA,QAAMC,kBAAkB,6BAAGpB,QAAQ,EAAEkB,UAAV,EAAsBG,SAAzB,2EAAsC,EAA9D;AACA,QAAMA,SAAS,GAAG,GAChBC,MADgB,2BACRF,kBAAkB,EAAEG,MADZ,2EACsB,EADtB,EAEhBD,MAFgB,2BAERF,kBAAkB,EAAEI,KAFZ,2EAEqB,EAFrB,EAGhBF,MAHgB,2BAGRF,kBAAkB,CAACK,OAHX,2EAGsB,EAHtB,CAAlB;AAIA,QAAM8B,QAAQ,GAAGO,WAAW,CAAEF,cAAc,EAAE1C,UAAhB,EAA4BqC,QAA9B,CAA5B;;AACA,QAAMiB,WAAW,GAAG,CAAEN,QAAF,EAAYO,QAAZ,KAA0B;AAC7C,UAAMC,WAAW,GAAG,CAAC,CAAED,QAAQ,EAAExC,IAAb,GAChB,wBAAwBwC,QAAQ,EAAExC,IAAM,EADxB,GAEjBiC,QAFH;AAIAnB,IAAAA,QAAQ,CACP,0BACCC,KADD,EAEC,CAAE,YAAF,EAAgB,UAAhB,CAFD,EAGC0B,WAAW,IAAIL,SAHhB,CADO,CAAR;AAOA,GAZD;;AAaA,QAAMtD,WAAW,GAAG,MAAM,CAAC,CAAEiC,KAAK,EAAE9B,UAAP,EAAmBqC,QAAhD;;AACA,QAAMoB,aAAa,GAAG,MAAMH,WAAW,CAAEH,SAAF,CAAvC,CApDG,CAsDH;;;AACA,QAAMO,oBAAoB,GAAGtE,uBAAuB,CAAEN,QAAF,CAApD;AACA,QAAM6E,sBAAsB,GAAGrC,yBAAyB,CAAExC,QAAF,CAAxD;AACA,QAAMoC,aAAa,GAAGpC,QAAQ,EAAEkB,UAAV,EAAsBmB,SAA5C;AACA,QAAMC,cAAc,GAAGtC,QAAQ,EAAEkB,UAAV,EAAsBqB,UAA7C;AACA,QAAMF,SAAS,GAAGyB,WAAW,CAAEF,cAAc,EAAE1C,UAAhB,EAA4BmB,SAA9B,CAA7B;AACA,QAAME,UAAU,GAAGuB,WAAW,CAAEF,cAAc,EAAE1C,UAAhB,EAA4BqB,UAA9B,CAA9B;;AACA,QAAMuC,iBAAiB,GAAG,CAAE;AAC3BzC,IAAAA,SAAS,EAAE0C,YADgB;AAE3BxC,IAAAA,UAAU,EAAEyC;AAFe,GAAF,KAGnB;AACNjC,IAAAA,QAAQ,CAAE,EACT,GAAGC,KADM;AAET9B,MAAAA,UAAU,EAAE,EACX,GAAG8B,KAAK,EAAE9B,UADC;AAEXmB,QAAAA,SAAS,EAAE0C,YAAY,IAAIV,SAFhB;AAGX9B,QAAAA,UAAU,EAAEyC,aAAa,IAAIX;AAHlB;AAFH,KAAF,CAAR;AAQA,GAZD;;AAaA,QAAMhE,iBAAiB,GAAG,MACzB,CAAC,CAAE2C,KAAK,EAAE9B,UAAP,EAAmBmB,SAAtB,IAAmC,CAAC,CAAEW,KAAK,EAAE9B,UAAP,EAAmBqB,UAD1D;;AAEA,QAAM0C,mBAAmB,GAAG,MAAM;AACjCH,IAAAA,iBAAiB,CAAE,EAAF,CAAjB;AACA,GAFD,CA5EG,CAgFH;;;AACA,QAAMI,oBAAoB,GAAG9E,uBAAuB,CAAEJ,QAAF,CAApD;AACA,QAAMmC,UAAU,GAAG2B,WAAW,CAAEF,cAAc,EAAE1C,UAAhB,EAA4BiB,UAA9B,CAA9B;;AACA,QAAMgD,aAAa,GAAKjB,QAAF,IAAgB;AACrCnB,IAAAA,QAAQ,CACP,0BACCC,KADD,EAEC,CAAE,YAAF,EAAgB,YAAhB,CAFD,EAGCkB,QAAQ,IAAIG,SAHb,CADO,CAAR;AAOA,GARD;;AASA,QAAMlE,aAAa,GAAG,MAAM6C,KAAK,EAAE9B,UAAP,EAAmBiB,UAAnB,KAAkCkC,SAA9D;;AACA,QAAMe,eAAe,GAAG,MAAMD,aAAa,CAAEd,SAAF,CAA3C,CA7FG,CA+FH;;;AACA,QAAMgB,uBAAuB,GAAG7E,0BAA0B,CAAER,QAAF,CAA1D;AACA,QAAMyC,aAAa,GAAGqB,WAAW,CAChCF,cAAc,EAAE1C,UAAhB,EAA4BuB,aADI,CAAjC;;AAGA,QAAM6C,gBAAgB,GAAKpB,QAAF,IAAgB;AACxCnB,IAAAA,QAAQ,CACP,0BACCC,KADD,EAEC,CAAE,YAAF,EAAgB,eAAhB,CAFD,EAGCkB,QAAQ,IAAIG,SAHb,CADO,CAAR;AAOA,GARD;;AASA,QAAM9D,gBAAgB,GAAG,MAAM,CAAC,CAAEyC,KAAK,EAAE9B,UAAP,EAAmBuB,aAArD;;AACA,QAAM8C,kBAAkB,GAAG,MAAMD,gBAAgB,CAAEjB,SAAF,CAAjD,CA9GG,CAgHH;;;AACA,QAAMmB,qBAAqB,GAAG1E,wBAAwB,CAAEd,QAAF,CAAtD;AACA,QAAM4C,WAAW,GAAGkB,WAAW,CAAEF,cAAc,EAAE1C,UAAhB,EAA4B0B,WAA9B,CAA/B;;AACA,QAAM6C,cAAc,GAAKvB,QAAF,IAAgB;AACtCnB,IAAAA,QAAQ,CACP,0BACCC,KADD,EAEC,CAAE,YAAF,EAAgB,aAAhB,CAFD,EAGCkB,QAAQ,IAAIG,SAHb,CADO,CAAR;AAOA,GARD;;AASA,QAAMxD,cAAc,GAAG,MAAM,CAAC,CAAEmC,KAAK,EAAE9B,UAAP,EAAmB0B,WAAnD;;AACA,QAAM8C,gBAAgB,GAAG,MAAMD,cAAc,CAAEpB,SAAF,CAA7C,CA7HG,CA+HH;;;AACA,QAAMsB,uBAAuB,GAAGjF,0BAA0B,CAAEV,QAAF,CAA1D;AACA,QAAM0C,aAAa,GAAGoB,WAAW,CAChCF,cAAc,EAAE1C,UAAhB,EAA4BwB,aADI,CAAjC;;AAGA,QAAMkD,gBAAgB,GAAK1B,QAAF,IAAgB;AACxCnB,IAAAA,QAAQ,CACP,0BACCC,KADD,EAEC,CAAE,YAAF,EAAgB,eAAhB,CAFD,EAGCkB,QAAQ,IAAIG,SAHb,CADO,CAAR;AAOA,GARD;;AASA,QAAM5D,gBAAgB,GAAG,MAAM,CAAC,CAAEuC,KAAK,EAAE9B,UAAP,EAAmBwB,aAArD;;AACA,QAAMmD,kBAAkB,GAAG,MAAMD,gBAAgB,CAAEvB,SAAF,CAAjD,CA9IG,CAgJH;;;AACA,QAAMyB,wBAAwB,GAAGlF,2BAA2B,CAAEZ,QAAF,CAA5D;AACA,QAAM2C,cAAc,GAAGmB,WAAW,CACjCF,cAAc,EAAE1C,UAAhB,EAA4ByB,cADK,CAAlC;;AAGA,QAAMoD,iBAAiB,GAAK7B,QAAF,IAAgB;AACzCnB,IAAAA,QAAQ,CACP,0BACCC,KADD,EAEC,CAAE,YAAF,EAAgB,gBAAhB,CAFD,EAGCkB,QAAQ,IAAIG,SAHb,CADO,CAAR;AAOA,GARD;;AASA,QAAM1D,iBAAiB,GAAG,MAAM,CAAC,CAAEqC,KAAK,EAAE9B,UAAP,EAAmByB,cAAtD;;AACA,QAAMqD,mBAAmB,GAAG,MAAMD,iBAAiB,CAAE1B,SAAF,CAAnD;;AAEA,QAAMvB,cAAc,GAAG,0BAAemD,aAAF,IAAqB;AACxD,WAAO,EACN,GAAGA,aADG;AAEN/E,MAAAA,UAAU,EAAE;AAFN,KAAP;AAIA,GALsB,EAKpB,EALoB,CAAvB;AAOA,SACC,4BAAC,OAAD;AACC,IAAA,cAAc,EAAG4B,cADlB;AAEC,IAAA,KAAK,EAAGE,KAFT;AAGC,IAAA,QAAQ,EAAGD,QAHZ;AAIC,IAAA,OAAO,EAAGE;AAJX,KAMGe,oBAAoB,IACrB,4BAAC,wCAAD;AACC,IAAA,KAAK,EAAG,cAAI,aAAJ,CADT;AAEC,IAAA,QAAQ,EAAG/D,aAFZ;AAGC,IAAA,UAAU,EAAGqE,eAHd;AAIC,IAAA,gBAAgB,EAAGT,eAAe,CAACP,UAJpC;AAKC,IAAA,OAAO,EAAGL;AALX,KAOC,4BAAC,mBAAD;AACC,IAAA,YAAY,EAAGrB,YADhB;AAEC,IAAA,KAAK,EAAG0B,UAFT;AAGC,IAAA,QAAQ,EAAGW,aAHZ;AAIC,IAAA,IAAI,EAAC,kBAJN;AAKC,IAAA,uBAAuB;AALxB,IAPD,CAPF,EAuBGM,kBAAkB,IACnB,4BAAC,wCAAD;AACC,IAAA,KAAK,EAAG,cAAI,WAAJ,CADT;AAEC,IAAA,QAAQ,EAAGxD,WAFZ;AAGC,IAAA,UAAU,EAAG4D,aAHd;AAIC,IAAA,gBAAgB,EAAGd,eAAe,CAACN,QAJpC;AAKC,IAAA,OAAO,EAAGN;AALX,KAOC,4BAAC,0BAAD;AACC,IAAA,KAAK,EAAGM,QADT;AAEC,IAAA,QAAQ,EAAGiB,WAFZ;AAGC,IAAA,SAAS,EAAGnD,SAHb;AAIC,IAAA,sBAAsB,EAAGJ,sBAJ1B;AAKC,IAAA,SAAS,EAAG,KALb;AAMC,IAAA,UAAU,MANX;AAOC,IAAA,IAAI,EAAC,kBAPN;AAQC,IAAA,uBAAuB;AARxB,IAPD,CAxBF,EA2CG2D,oBAAoB,IACrB,4BAAC,wCAAD;AACC,IAAA,SAAS,EAAC,eADX;AAEC,IAAA,KAAK,EAAGC,sBAFT;AAGC,IAAA,QAAQ,EAAGxE,iBAHZ;AAIC,IAAA,UAAU,EAAG4E,mBAJd;AAKC,IAAA,gBAAgB,EAAGpB,eAAe,CAACL,cALpC;AAMC,IAAA,OAAO,EAAGP;AANX,KAQC,4BAAC,8BAAD;AACC,IAAA,KAAK,EAAG;AACPZ,MAAAA,SADO;AAEPE,MAAAA;AAFO,KADT;AAKC,IAAA,QAAQ,EAAGuC,iBALZ;AAMC,IAAA,aAAa,EAAG1C,aANjB;AAOC,IAAA,cAAc,EAAGE,cAPlB;AAQC,IAAA,IAAI,EAAC,kBARN;AASC,IAAA,uBAAuB;AATxB,IARD,CA5CF,EAiEG4C,oBAAoB,IACrB,4BAAC,wCAAD;AACC,IAAA,SAAS,EAAC,eADX;AAEC,IAAA,KAAK,EAAG,cAAI,aAAJ,CAFT;AAGC,IAAA,QAAQ,EAAG/E,aAHZ;AAIC,IAAA,UAAU,EAAGiF,eAJd;AAKC,IAAA,gBAAgB,EAAGvB,eAAe,CAAC1B,UALpC;AAMC,IAAA,OAAO,EAAGc;AANX,KAQC,4BAAC,0BAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,oBAAoB,EAAC,MAFtB;AAGC,IAAA,KAAK,EAAGd,UAHT;AAIC,IAAA,QAAQ,EAAGgD,aAJZ;AAKC,IAAA,IAAI,EAAC;AALN,IARD,CAlEF,EAmFGE,uBAAuB,IACxB,4BAAC,wCAAD;AACC,IAAA,SAAS,EAAC,eADX;AAEC,IAAA,KAAK,EAAG,cAAI,gBAAJ,CAFT;AAGC,IAAA,QAAQ,EAAG9E,gBAHZ;AAIC,IAAA,UAAU,EAAGgF,kBAJd;AAKC,IAAA,gBAAgB,EAAG1B,eAAe,CAACpB,aALpC;AAMC,IAAA,OAAO,EAAGQ;AANX,KAQC,4BAAC,6BAAD;AACC,IAAA,KAAK,EAAGR,aADT;AAEC,IAAA,QAAQ,EAAG6C,gBAFZ;AAGC,IAAA,IAAI,EAAC,kBAHN;AAIC,IAAA,oBAAoB,EAAC;AAJtB,IARD,CApFF,EAoGGE,qBAAqB,IACtB,4BAAC,wCAAD;AACC,IAAA,SAAS,EAAC,eADX;AAEC,IAAA,KAAK,EAAG,cAAI,cAAJ,CAFT;AAGC,IAAA,QAAQ,EAAG3E,cAHZ;AAIC,IAAA,UAAU,EAAG6E,gBAJd;AAKC,IAAA,gBAAgB,EAAG7B,eAAe,CAACjB,WALpC;AAMC,IAAA,OAAO,EAAGK;AANX,KAQC,4BAAC,uCAAD;AACC,IAAA,KAAK,EAAG,cAAI,cAAJ,CADT;AAEC,IAAA,GAAG,EAAGnD,gBAFP;AAGC,IAAA,GAAG,EAAGD,gBAHP;AAIC,IAAA,QAAQ,EAAG4F,cAJZ;AAKC,IAAA,IAAI,EAAC,kBALN;AAMC,IAAA,YAAY,EAAC,QANd;AAOC,IAAA,KAAK,EAAG7C,WAPT;AAQC,IAAA,eAAe,EAAG;AARnB,IARD,CArGF,EAyHGkD,wBAAwB,IACzB,4BAAC,wCAAD;AACC,IAAA,SAAS,EAAC,eADX;AAEC,IAAA,KAAK,EAAG,cAAI,iBAAJ,CAFT;AAGC,IAAA,QAAQ,EAAGnF,iBAHZ;AAIC,IAAA,UAAU,EAAGqF,mBAJd;AAKC,IAAA,gBAAgB,EAAGnC,eAAe,CAAClB,cALpC;AAMC,IAAA,OAAO,EAAGM;AANX,KAQC,4BAAC,8BAAD;AACC,IAAA,KAAK,EAAGN,cADT;AAEC,IAAA,QAAQ,EAAGoD,iBAFZ;AAGC,IAAA,IAAI,EAAC,kBAHN;AAIC,IAAA,oBAAoB,EAAC;AAJtB,IARD,CA1HF,EA0IGJ,uBAAuB,IACxB,4BAAC,wCAAD;AACC,IAAA,KAAK,EAAG,cAAI,aAAJ,CADT;AAEC,IAAA,QAAQ,EAAGlF,gBAFZ;AAGC,IAAA,UAAU,EAAGoF,kBAHd;AAIC,IAAA,gBAAgB,EAAGhC,eAAe,CAACnB,aAJpC;AAKC,IAAA,OAAO,EAAGO;AALX,KAOC,4BAAC,6BAAD;AACC,IAAA,KAAK,EAAGP,aADT;AAEC,IAAA,QAAQ,EAAGkD,gBAFZ;AAGC,IAAA,QAAQ,MAHT;AAIC,IAAA,OAAO,MAJR;AAKC,IAAA,IAAI,EAAC,kBALN;AAMC,IAAA,uBAAuB;AANxB,IAPD,CA3IF,CADD;AA+JA","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 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 { getValueFromVariable } 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 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\thasTextColumns\n\t);\n}\n\nfunction useHasFontSizeControl( settings ) {\n\tconst disableCustomFontSizes = ! settings?.typography?.customFontSize;\n\tconst fontSizesPerOrigin = settings?.typography?.fontSizes ?? {};\n\tconst fontSizes = []\n\t\t.concat( fontSizesPerOrigin?.custom ?? [] )\n\t\t.concat( fontSizesPerOrigin?.theme ?? [] )\n\t\t.concat( fontSizesPerOrigin.default ?? [] );\n\treturn !! fontSizes?.length || ! disableCustomFontSizes;\n}\n\nfunction useHasFontFamilyControl( settings ) {\n\tconst fontFamiliesPerOrigin = settings?.typography?.fontFamilies;\n\tconst fontFamilies = []\n\t\t.concat( fontFamiliesPerOrigin?.custom ?? [] )\n\t\t.concat( fontFamiliesPerOrigin?.theme ?? [] )\n\t\t.concat( fontFamiliesPerOrigin?.default ?? [] )\n\t\t.sort( ( a, b ) =>\n\t\t\t( a?.name || a?.slug ).localeCompare( b?.name || a?.slug )\n\t\t);\n\treturn !! fontFamilies?.length;\n}\n\nfunction useHasLineHeightControl( settings ) {\n\treturn settings?.typography?.lineHeight;\n}\n\nfunction useHasAppearanceControl( settings ) {\n\tconst hasFontStyles = settings?.typography?.fontStyle;\n\tconst hasFontWeights = settings?.typography?.fontWeight;\n\treturn hasFontStyles || hasFontWeights;\n}\n\nfunction useAppearanceControlLabel( settings ) {\n\tconst hasFontStyles = settings?.typography?.fontStyle;\n\tconst hasFontWeights = settings?.typography?.fontWeight;\n\tif ( ! hasFontStyles ) {\n\t\treturn __( 'Font weight' );\n\t}\n\tif ( ! hasFontWeights ) {\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 useHasTextColumnsControl( settings ) {\n\treturn settings?.typography?.textColumns;\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>\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\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 fontFamiliesPerOrigin = settings?.typography?.fontFamilies;\n\tconst fontFamilies = []\n\t\t.concat( fontFamiliesPerOrigin?.custom ?? [] )\n\t\t.concat( fontFamiliesPerOrigin?.theme ?? [] )\n\t\t.concat( fontFamiliesPerOrigin?.default ?? [] );\n\tconst fontFamily = decodeValue( inheritedValue?.typography?.fontFamily );\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 fontSizesPerOrigin = settings?.typography?.fontSizes ?? {};\n\tconst fontSizes = []\n\t\t.concat( fontSizesPerOrigin?.custom ?? [] )\n\t\t.concat( fontSizesPerOrigin?.theme ?? [] )\n\t\t.concat( fontSizesPerOrigin.default ?? [] );\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\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={ 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={ __( '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={ fontSizes }\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\t__nextHasNoMarginBottom\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{ 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"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/typography-panel.js"],"names":["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","disableCustomFontSizes","typography","customFontSize","fontSizesPerOrigin","fontSizes","concat","custom","theme","default","length","fontFamiliesPerOrigin","fontFamilies","sort","a","b","name","slug","localeCompare","lineHeight","hasFontStyles","fontStyle","hasFontWeights","fontWeight","useAppearanceControlLabel","letterSpacing","textTransform","textDecoration","writingMode","textColumns","getUniqueFontSizesBySlug","reduce","acc","currentSize","some","push","TypographyToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","DEFAULT_CONTROLS","fontFamily","fontSize","fontAppearance","TypographyPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","hasFontFamilyEnabled","setFontFamily","newValue","find","f","undefined","resetFontFamily","hasFontSizeEnabled","setFontSize","metadata","actualValue","resetFontSize","hasAppearanceControl","appearanceControlLabel","setFontAppearance","newFontStyle","newFontWeight","resetFontAppearance","hasLineHeightEnabled","setLineHeight","resetLineHeight","hasLetterSpacingControl","setLetterSpacing","resetLetterSpacing","hasTextColumnsControl","setTextColumns","resetTextColumns","hasTextTransformControl","setTextTransform","resetTextTransform","hasTextDecorationControl","setTextDecoration","resetTextDecoration","hasWritingModeControl","setWritingMode","resetWritingMode","previousValue"],"mappings":"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","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 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 } 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\tconst disableCustomFontSizes = ! settings?.typography?.customFontSize;\n\tconst fontSizesPerOrigin = settings?.typography?.fontSizes ?? {};\n\tconst fontSizes = []\n\t\t.concat( fontSizesPerOrigin?.custom ?? [] )\n\t\t.concat( fontSizesPerOrigin?.theme ?? [] )\n\t\t.concat( fontSizesPerOrigin.default ?? [] );\n\treturn !! fontSizes?.length || ! disableCustomFontSizes;\n}\n\nfunction useHasFontFamilyControl( settings ) {\n\tconst fontFamiliesPerOrigin = settings?.typography?.fontFamilies;\n\tconst fontFamilies = []\n\t\t.concat( fontFamiliesPerOrigin?.custom ?? [] )\n\t\t.concat( fontFamiliesPerOrigin?.theme ?? [] )\n\t\t.concat( fontFamiliesPerOrigin?.default ?? [] )\n\t\t.sort( ( a, b ) =>\n\t\t\t( a?.name || a?.slug ).localeCompare( b?.name || a?.slug )\n\t\t);\n\treturn !! fontFamilies?.length;\n}\n\nfunction useHasLineHeightControl( settings ) {\n\treturn settings?.typography?.lineHeight;\n}\n\nfunction useHasAppearanceControl( settings ) {\n\tconst hasFontStyles = settings?.typography?.fontStyle;\n\tconst hasFontWeights = settings?.typography?.fontWeight;\n\treturn hasFontStyles || hasFontWeights;\n}\n\nfunction useAppearanceControlLabel( settings ) {\n\tconst hasFontStyles = settings?.typography?.fontStyle;\n\tconst hasFontWeights = settings?.typography?.fontWeight;\n\tif ( ! hasFontStyles ) {\n\t\treturn __( 'Font weight' );\n\t}\n\tif ( ! hasFontWeights ) {\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 fontSizesPerOrigin = settings?.typography?.fontSizes ?? {};\n\tconst fontSizes = []\n\t\t.concat( fontSizesPerOrigin?.custom ?? [] )\n\t\t.concat( fontSizesPerOrigin?.theme ?? [] )\n\t\t.concat( fontSizesPerOrigin.default ?? [] );\n\n\treturn fontSizes.reduce( ( acc, currentSize ) => {\n\t\tif ( ! acc.some( ( { slug } ) => slug === currentSize.slug ) ) {\n\t\t\tacc.push( currentSize );\n\t\t}\n\t\treturn acc;\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>\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 fontFamiliesPerOrigin = settings?.typography?.fontFamilies;\n\tconst fontFamilies = []\n\t\t.concat( fontFamiliesPerOrigin?.custom ?? [] )\n\t\t.concat( fontFamiliesPerOrigin?.theme ?? [] )\n\t\t.concat( fontFamiliesPerOrigin?.default ?? [] );\n\tconst fontFamily = decodeValue( inheritedValue?.typography?.fontFamily );\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 fontSizes = 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={ 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={ __( '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={ fontSizes }\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\t__nextHasNoMarginBottom\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"]}
@@ -14,8 +14,6 @@ exports.useGlobalStylesOutputWithConfig = useGlobalStylesOutputWithConfig;
14
14
 
15
15
  var _element = require("@wordpress/element");
16
16
 
17
- var _lodash = require("lodash");
18
-
19
17
  var _blocks = require("@wordpress/blocks");
20
18
 
21
19
  var _data = require("@wordpress/data");
@@ -42,10 +40,6 @@ var _definitions = require("../../layouts/definitions");
42
40
 
43
41
  var _object = require("../../utils/object");
44
42
 
45
- /**
46
- * External dependencies
47
- */
48
-
49
43
  /**
50
44
  * WordPress dependencies
51
45
  */
@@ -91,7 +85,7 @@ function getPresetsDeclarations(blockPresets = {}, mergedSettings) {
91
85
  valueFunc,
92
86
  cssVarInfix
93
87
  }) => {
94
- const presetByOrigin = (0, _lodash.get)(blockPresets, path, []);
88
+ const presetByOrigin = (0, _object.getValueFromObjectPath)(blockPresets, path, []);
95
89
  ['default', 'theme', 'custom'].forEach(origin => {
96
90
  if (presetByOrigin[origin]) {
97
91
  presetByOrigin[origin].forEach(value => {
@@ -125,7 +119,7 @@ function getPresetsClasses(blockSelector = '*', blockPresets = {}) {
125
119
  return declarations;
126
120
  }
127
121
 
128
- const presetByOrigin = (0, _lodash.get)(blockPresets, path, []);
122
+ const presetByOrigin = (0, _object.getValueFromObjectPath)(blockPresets, path, []);
129
123
  ['default', 'theme', 'custom'].forEach(origin => {
130
124
  if (presetByOrigin[origin]) {
131
125
  presetByOrigin[origin].forEach(({
@@ -151,7 +145,7 @@ function getPresetsClasses(blockSelector = '*', blockPresets = {}) {
151
145
  function getPresetsSvgFilters(blockPresets = {}) {
152
146
  return _utils.PRESET_METADATA.filter( // Duotone are the only type of filters for now.
153
147
  metadata => metadata.path.at(-1) === 'duotone').flatMap(metadata => {
154
- const presetByOrigin = (0, _lodash.get)(blockPresets, metadata.path, {});
148
+ const presetByOrigin = (0, _object.getValueFromObjectPath)(blockPresets, metadata.path, {});
155
149
  return ['default', 'theme'].filter(origin => presetByOrigin[origin]).flatMap(origin => presetByOrigin[origin].map(preset => (0, _element.renderToString)((0, _element.createElement)(_components.PresetDuotoneFilter, {
156
150
  preset: preset,
157
151
  key: preset.slug
@@ -292,7 +286,7 @@ function getStylesDeclarations(blockStyles = {}, selector = '', useRootPaddingAl
292
286
  return declarations;
293
287
  }
294
288
 
295
- const styleValue = (0, _lodash.get)(blockStyles, pathToValue); // Root-level padding styles don't currently support strings with CSS shorthand values.
289
+ const styleValue = (0, _object.getValueFromObjectPath)(blockStyles, pathToValue); // Root-level padding styles don't currently support strings with CSS shorthand values.
296
290
  // This may change: https://github.com/WordPress/gutenberg/issues/40132.
297
291
 
298
292
  if (key === '--wp--style--root--padding' && (typeof styleValue === 'string' || !useRootPaddingAlign)) {
@@ -303,18 +297,18 @@ function getStylesDeclarations(blockStyles = {}, selector = '', useRootPaddingAl
303
297
  Object.entries(properties).forEach(entry => {
304
298
  const [name, prop] = entry;
305
299
 
306
- if (!(0, _lodash.get)(styleValue, [prop], false)) {
300
+ if (!(0, _object.getValueFromObjectPath)(styleValue, [prop], false)) {
307
301
  // Do not create a declaration
308
302
  // for sub-properties that don't have any value.
309
303
  return;
310
304
  }
311
305
 
312
306
  const cssProperty = name.startsWith('--') ? name : (0, _object.kebabCase)(name);
313
- declarations.push(`${cssProperty}: ${compileStyleValue((0, _lodash.get)(styleValue, [prop]))}`);
307
+ declarations.push(`${cssProperty}: ${compileStyleValue((0, _object.getValueFromObjectPath)(styleValue, [prop]))}`);
314
308
  });
315
- } else if ((0, _lodash.get)(blockStyles, pathToValue, false)) {
309
+ } else if ((0, _object.getValueFromObjectPath)(blockStyles, pathToValue, false)) {
316
310
  const cssProperty = key.startsWith('--') ? key : (0, _object.kebabCase)(key);
317
- declarations.push(`${cssProperty}: ${compileStyleValue((0, _lodash.get)(blockStyles, pathToValue))}`);
311
+ declarations.push(`${cssProperty}: ${compileStyleValue((0, _object.getValueFromObjectPath)(blockStyles, pathToValue))}`);
318
312
  }
319
313
 
320
314
  return declarations;
@@ -333,7 +327,7 @@ function getStylesDeclarations(blockStyles = {}, selector = '', useRootPaddingAl
333
327
 
334
328
  if (typeof ruleValue !== 'string' && ruleValue?.ref) {
335
329
  const refPath = ruleValue.ref.split('.');
336
- ruleValue = (0, _lodash.get)(tree, refPath); // Presence of another ref indicates a reference to another dynamic value.
330
+ ruleValue = (0, _object.getValueFromObjectPath)(tree, refPath); // Presence of another ref indicates a reference to another dynamic value.
337
331
  // Pointing to another dynamic value is not supported.
338
332
 
339
333
  if (!ruleValue || ruleValue?.ref) {
@@ -565,15 +559,15 @@ const getNodesWithSettings = (tree, blockSelectors) => {
565
559
  }
566
560
 
567
561
  const pickPresets = treeToPickFrom => {
568
- const presets = {};
562
+ let presets = {};
569
563
 
570
564
  _utils.PRESET_METADATA.forEach(({
571
565
  path
572
566
  }) => {
573
- const value = (0, _lodash.get)(treeToPickFrom, path, false);
567
+ const value = (0, _object.getValueFromObjectPath)(treeToPickFrom, path, false);
574
568
 
575
569
  if (value !== false) {
576
- (0, _lodash.set)(presets, path, value);
570
+ presets = (0, _object.setImmutably)(presets, path, value);
577
571
  }
578
572
  });
579
573