@wordpress/block-editor 11.4.0 → 11.5.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 (288) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/components/block-inspector/index.js +11 -10
  3. package/build/components/block-inspector/index.js.map +1 -1
  4. package/build/components/block-inspector/useBlockInspectorAnimationSettings.js +46 -0
  5. package/build/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -0
  6. package/build/components/block-lock/modal.js +1 -0
  7. package/build/components/block-lock/modal.js.map +1 -1
  8. package/build/components/block-settings-menu/block-settings-dropdown.js +2 -2
  9. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  10. package/build/components/block-styles/index.js +2 -1
  11. package/build/components/block-styles/index.js.map +1 -1
  12. package/build/components/child-layout-control/index.js +107 -0
  13. package/build/components/child-layout-control/index.js.map +1 -0
  14. package/build/components/date-format-picker/index.js +3 -3
  15. package/build/components/date-format-picker/index.js.map +1 -1
  16. package/build/components/global-styles/dimensions-panel.js +594 -0
  17. package/build/components/global-styles/dimensions-panel.js.map +1 -0
  18. package/build/components/global-styles/hooks.js +72 -36
  19. package/build/components/global-styles/hooks.js.map +1 -1
  20. package/build/components/global-styles/index.js +20 -6
  21. package/build/components/global-styles/index.js.map +1 -1
  22. package/build/components/global-styles/typography-panel.js +25 -12
  23. package/build/components/global-styles/typography-panel.js.map +1 -1
  24. package/build/components/global-styles/use-global-styles-output.js +1 -1
  25. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  26. package/build/components/global-styles/utils.js +2 -0
  27. package/build/components/global-styles/utils.js.map +1 -1
  28. package/build/components/index.native.js +23 -0
  29. package/build/components/index.native.js.map +1 -1
  30. package/build/components/inserter/media-tab/hooks.js +10 -11
  31. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  32. package/build/components/inserter/media-tab/media-list.js +5 -108
  33. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  34. package/build/components/inserter/media-tab/media-preview.js +242 -0
  35. package/build/components/inserter/media-tab/media-preview.js.map +1 -0
  36. package/build/components/inspector-controls/block-support-tools-panel.js +1 -1
  37. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  38. package/build/components/inspector-controls/fill.js +38 -9
  39. package/build/components/inspector-controls/fill.js.map +1 -1
  40. package/build/components/link-control/settings-drawer.js +1 -1
  41. package/build/components/link-control/settings-drawer.js.map +1 -1
  42. package/build/components/link-control/settings.js +1 -0
  43. package/build/components/link-control/settings.js.map +1 -1
  44. package/build/components/list-view/block.js +17 -3
  45. package/build/components/list-view/block.js.map +1 -1
  46. package/build/components/list-view/branch.js +2 -2
  47. package/build/components/list-view/branch.js.map +1 -1
  48. package/build/components/list-view/expander.js +2 -1
  49. package/build/components/list-view/expander.js.map +1 -1
  50. package/build/components/list-view/leaf.js +10 -6
  51. package/build/components/list-view/leaf.js.map +1 -1
  52. package/build/components/list-view/use-list-view-scroll-into-view.js +51 -0
  53. package/build/components/list-view/use-list-view-scroll-into-view.js.map +1 -0
  54. package/build/components/off-canvas-editor/appender.js +5 -10
  55. package/build/components/off-canvas-editor/appender.js.map +1 -1
  56. package/build/components/off-canvas-editor/branch.js +1 -0
  57. package/build/components/off-canvas-editor/branch.js.map +1 -1
  58. package/build/components/off-canvas-editor/index.js +7 -3
  59. package/build/components/off-canvas-editor/index.js.map +1 -1
  60. package/build/components/off-canvas-editor/leaf-more-menu.js +34 -4
  61. package/build/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
  62. package/build/components/off-canvas-editor/link-ui.js +1 -0
  63. package/build/components/off-canvas-editor/link-ui.js.map +1 -1
  64. package/build/components/responsive-block-control/index.js +1 -0
  65. package/build/components/responsive-block-control/index.js.map +1 -1
  66. package/build/components/rich-text/index.js +9 -43
  67. package/build/components/rich-text/index.js.map +1 -1
  68. package/build/components/rich-text/use-delete.js +73 -0
  69. package/build/components/rich-text/use-delete.js.map +1 -0
  70. package/build/components/rich-text/use-input-rules.js +14 -6
  71. package/build/components/rich-text/use-input-rules.js.map +1 -1
  72. package/build/components/writing-flow/use-selection-observer.js +4 -1
  73. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  74. package/build/hooks/align.js +3 -1
  75. package/build/hooks/align.js.map +1 -1
  76. package/build/hooks/dimensions.js +72 -190
  77. package/build/hooks/dimensions.js.map +1 -1
  78. package/build/hooks/duotone.js +94 -25
  79. package/build/hooks/duotone.js.map +1 -1
  80. package/build/hooks/gap.js +0 -202
  81. package/build/hooks/gap.js.map +1 -1
  82. package/build/hooks/layout.js +14 -5
  83. package/build/hooks/layout.js.map +1 -1
  84. package/build/hooks/margin.js +7 -163
  85. package/build/hooks/margin.js.map +1 -1
  86. package/build/hooks/padding.js +7 -163
  87. package/build/hooks/padding.js.map +1 -1
  88. package/build/hooks/typography.js +50 -65
  89. package/build/hooks/typography.js.map +1 -1
  90. package/build/hooks/utils.js +75 -0
  91. package/build/hooks/utils.js.map +1 -1
  92. package/build/layouts/flex.js +1 -0
  93. package/build/layouts/flex.js.map +1 -1
  94. package/build/store/actions.js +24 -12
  95. package/build/store/actions.js.map +1 -1
  96. package/build/store/defaults.js +28 -1
  97. package/build/store/defaults.js.map +1 -1
  98. package/build/store/reducer.js +53 -47
  99. package/build/store/reducer.js.map +1 -1
  100. package/build/store/selectors.js +5 -1
  101. package/build/store/selectors.js.map +1 -1
  102. package/build/utils/parse-css-unit-to-px.js +36 -3
  103. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  104. package/build-module/components/block-inspector/index.js +9 -9
  105. package/build-module/components/block-inspector/index.js.map +1 -1
  106. package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js +37 -0
  107. package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -0
  108. package/build-module/components/block-lock/modal.js +1 -0
  109. package/build-module/components/block-lock/modal.js.map +1 -1
  110. package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -2
  111. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  112. package/build-module/components/block-styles/index.js +2 -1
  113. package/build-module/components/block-styles/index.js.map +1 -1
  114. package/build-module/components/child-layout-control/index.js +98 -0
  115. package/build-module/components/child-layout-control/index.js.map +1 -0
  116. package/build-module/components/date-format-picker/index.js +4 -4
  117. package/build-module/components/date-format-picker/index.js.map +1 -1
  118. package/build-module/components/global-styles/dimensions-panel.js +574 -0
  119. package/build-module/components/global-styles/dimensions-panel.js.map +1 -0
  120. package/build-module/components/global-styles/hooks.js +71 -33
  121. package/build-module/components/global-styles/hooks.js.map +1 -1
  122. package/build-module/components/global-styles/index.js +2 -1
  123. package/build-module/components/global-styles/index.js.map +1 -1
  124. package/build-module/components/global-styles/typography-panel.js +26 -11
  125. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  126. package/build-module/components/global-styles/use-global-styles-output.js +1 -1
  127. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  128. package/build-module/components/global-styles/utils.js +2 -0
  129. package/build-module/components/global-styles/utils.js.map +1 -1
  130. package/build-module/components/index.native.js +2 -1
  131. package/build-module/components/index.native.js.map +1 -1
  132. package/build-module/components/inserter/media-tab/hooks.js +10 -11
  133. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  134. package/build-module/components/inserter/media-tab/media-list.js +6 -105
  135. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  136. package/build-module/components/inserter/media-tab/media-preview.js +222 -0
  137. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -0
  138. package/build-module/components/inspector-controls/block-support-tools-panel.js +1 -1
  139. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  140. package/build-module/components/inspector-controls/fill.js +39 -9
  141. package/build-module/components/inspector-controls/fill.js.map +1 -1
  142. package/build-module/components/link-control/settings-drawer.js +1 -1
  143. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  144. package/build-module/components/link-control/settings.js +1 -0
  145. package/build-module/components/link-control/settings.js.map +1 -1
  146. package/build-module/components/list-view/block.js +16 -3
  147. package/build-module/components/list-view/block.js.map +1 -1
  148. package/build-module/components/list-view/branch.js +2 -2
  149. package/build-module/components/list-view/branch.js.map +1 -1
  150. package/build-module/components/list-view/expander.js +2 -1
  151. package/build-module/components/list-view/expander.js.map +1 -1
  152. package/build-module/components/list-view/leaf.js +8 -4
  153. package/build-module/components/list-view/leaf.js.map +1 -1
  154. package/build-module/components/list-view/use-list-view-scroll-into-view.js +42 -0
  155. package/build-module/components/list-view/use-list-view-scroll-into-view.js.map +1 -0
  156. package/build-module/components/off-canvas-editor/appender.js +5 -10
  157. package/build-module/components/off-canvas-editor/appender.js.map +1 -1
  158. package/build-module/components/off-canvas-editor/branch.js +1 -0
  159. package/build-module/components/off-canvas-editor/branch.js.map +1 -1
  160. package/build-module/components/off-canvas-editor/index.js +7 -3
  161. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  162. package/build-module/components/off-canvas-editor/leaf-more-menu.js +36 -7
  163. package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
  164. package/build-module/components/off-canvas-editor/link-ui.js +1 -0
  165. package/build-module/components/off-canvas-editor/link-ui.js.map +1 -1
  166. package/build-module/components/responsive-block-control/index.js +1 -0
  167. package/build-module/components/responsive-block-control/index.js.map +1 -1
  168. package/build-module/components/rich-text/index.js +9 -43
  169. package/build-module/components/rich-text/index.js.map +1 -1
  170. package/build-module/components/rich-text/use-delete.js +62 -0
  171. package/build-module/components/rich-text/use-delete.js.map +1 -0
  172. package/build-module/components/rich-text/use-input-rules.js +14 -6
  173. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  174. package/build-module/components/writing-flow/use-selection-observer.js +4 -1
  175. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  176. package/build-module/hooks/align.js +3 -1
  177. package/build-module/hooks/align.js.map +1 -1
  178. package/build-module/hooks/dimensions.js +75 -187
  179. package/build-module/hooks/dimensions.js.map +1 -1
  180. package/build-module/hooks/duotone.js +86 -24
  181. package/build-module/hooks/duotone.js.map +1 -1
  182. package/build-module/hooks/gap.js +0 -183
  183. package/build-module/hooks/gap.js.map +1 -1
  184. package/build-module/hooks/layout.js +14 -5
  185. package/build-module/hooks/layout.js.map +1 -1
  186. package/build-module/hooks/margin.js +4 -143
  187. package/build-module/hooks/margin.js.map +1 -1
  188. package/build-module/hooks/padding.js +4 -143
  189. package/build-module/hooks/padding.js.map +1 -1
  190. package/build-module/hooks/typography.js +52 -65
  191. package/build-module/hooks/typography.js.map +1 -1
  192. package/build-module/hooks/utils.js +70 -0
  193. package/build-module/hooks/utils.js.map +1 -1
  194. package/build-module/layouts/flex.js +1 -0
  195. package/build-module/layouts/flex.js.map +1 -1
  196. package/build-module/store/actions.js +24 -12
  197. package/build-module/store/actions.js.map +1 -1
  198. package/build-module/store/defaults.js +28 -1
  199. package/build-module/store/defaults.js.map +1 -1
  200. package/build-module/store/reducer.js +53 -45
  201. package/build-module/store/reducer.js.map +1 -1
  202. package/build-module/store/selectors.js +5 -1
  203. package/build-module/store/selectors.js.map +1 -1
  204. package/build-module/utils/parse-css-unit-to-px.js +36 -3
  205. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  206. package/build-style/style-rtl.css +33 -21
  207. package/build-style/style.css +33 -21
  208. package/package.json +31 -31
  209. package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +24 -24
  210. package/src/components/block-inspector/index.js +11 -14
  211. package/src/components/block-inspector/useBlockInspectorAnimationSettings.js +53 -0
  212. package/src/components/block-lock/modal.js +1 -0
  213. package/src/components/block-lock/style.scss +0 -9
  214. package/src/components/block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap +20 -20
  215. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +15 -15
  216. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -1
  217. package/src/components/block-styles/index.js +5 -1
  218. package/src/components/child-layout-control/index.js +106 -0
  219. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
  220. package/src/components/date-format-picker/index.js +6 -8
  221. package/src/components/date-format-picker/style.scss +0 -5
  222. package/src/components/global-styles/dimensions-panel.js +627 -0
  223. package/src/components/global-styles/hooks.js +88 -45
  224. package/src/components/global-styles/index.js +5 -1
  225. package/src/components/global-styles/typography-panel.js +33 -8
  226. package/src/components/global-styles/use-global-styles-output.js +4 -3
  227. package/src/components/global-styles/utils.js +2 -0
  228. package/src/components/index.native.js +5 -0
  229. package/src/components/inner-blocks/test/__snapshots__/index.js.snap +1 -1
  230. package/src/components/inserter/media-tab/hooks.js +9 -8
  231. package/src/components/inserter/media-tab/media-list.js +3 -122
  232. package/src/components/inserter/media-tab/media-preview.js +268 -0
  233. package/src/components/inserter/style.scss +22 -0
  234. package/src/components/inserter/test/__snapshots__/index.native.js.snap +15 -15
  235. package/src/components/inspector-controls/block-support-tools-panel.js +0 -1
  236. package/src/components/inspector-controls/fill.js +32 -8
  237. package/src/components/link-control/settings-drawer.js +2 -1
  238. package/src/components/link-control/settings.js +1 -0
  239. package/src/components/link-control/style.scss +18 -8
  240. package/src/components/link-control/test/index.js +3 -3
  241. package/src/components/list-view/block.js +19 -1
  242. package/src/components/list-view/branch.js +1 -2
  243. package/src/components/list-view/expander.js +1 -0
  244. package/src/components/list-view/leaf.js +43 -29
  245. package/src/components/list-view/use-list-view-scroll-into-view.js +48 -0
  246. package/src/components/media-replace-flow/style.scss +7 -9
  247. package/src/components/off-canvas-editor/appender.js +13 -16
  248. package/src/components/off-canvas-editor/branch.js +1 -0
  249. package/src/components/off-canvas-editor/index.js +8 -2
  250. package/src/components/off-canvas-editor/leaf-more-menu.js +57 -15
  251. package/src/components/off-canvas-editor/link-ui.js +1 -0
  252. package/src/components/responsive-block-control/index.js +1 -0
  253. package/src/components/rich-text/index.js +8 -44
  254. package/src/components/rich-text/use-delete.js +59 -0
  255. package/src/components/rich-text/use-input-rules.js +13 -5
  256. package/src/components/spacing-sizes-control/style.scss +1 -1
  257. package/src/components/url-popover/stories/index.js +1 -0
  258. package/src/components/writing-flow/use-selection-observer.js +5 -1
  259. package/src/hooks/align.js +1 -1
  260. package/src/hooks/dimensions.js +85 -269
  261. package/src/hooks/duotone.js +100 -30
  262. package/src/hooks/gap.js +0 -208
  263. package/src/hooks/layout.js +19 -6
  264. package/src/hooks/margin.js +1 -164
  265. package/src/hooks/padding.js +1 -163
  266. package/src/hooks/test/__snapshots__/align.native.js.snap +24 -24
  267. package/src/hooks/test/duotone.js +102 -0
  268. package/src/hooks/typography.js +66 -88
  269. package/src/hooks/utils.js +90 -0
  270. package/src/layouts/flex.js +1 -0
  271. package/src/store/actions.js +12 -4
  272. package/src/store/defaults.js +14 -1
  273. package/src/store/reducer.js +68 -43
  274. package/src/store/selectors.js +8 -1
  275. package/src/store/test/actions.js +4 -2
  276. package/src/utils/parse-css-unit-to-px.js +35 -5
  277. package/src/utils/test/parse-css-unit-to-px.js +12 -0
  278. package/tsconfig.tsbuildinfo +1 -1
  279. package/build/hooks/child-layout.js +0 -213
  280. package/build/hooks/child-layout.js.map +0 -1
  281. package/build/hooks/min-height.js +0 -139
  282. package/build/hooks/min-height.js.map +0 -1
  283. package/build-module/hooks/child-layout.js +0 -193
  284. package/build-module/hooks/child-layout.js.map +0 -1
  285. package/build-module/hooks/min-height.js +0 -116
  286. package/build-module/hooks/min-height.js.map +0 -1
  287. package/src/hooks/child-layout.js +0 -195
  288. package/src/hooks/min-height.js +0 -104
@@ -21,7 +21,7 @@ const EMPTY_CONFIG = {
21
21
  settings: {},
22
22
  styles: {}
23
23
  };
24
- const VALID_SETTINGS = ['appearanceTools', 'useRootPaddingAwareAlignments', 'border.color', 'border.radius', 'border.style', 'border.width', 'shadow.presets', 'shadow.defaultPresets', 'color.background', 'color.custom', 'color.customDuotone', 'color.customGradient', 'color.defaultDuotone', 'color.defaultGradients', 'color.defaultPalette', 'color.duotone', 'color.gradients', 'color.link', 'color.palette', 'color.text', 'custom', 'dimensions.minHeight', 'layout.contentSize', 'layout.definitions', 'layout.wideSize', 'position.fixed', 'position.sticky', 'spacing.customSpacingSize', 'spacing.spacingSizes', 'spacing.spacingScale', 'spacing.blockGap', 'spacing.margin', 'spacing.padding', 'spacing.units', 'typography.fuild', 'typography.customFontSize', 'typography.dropCap', 'typography.fontFamilies', 'typography.fontSizes', 'typography.fontStyle', 'typography.fontWeight', 'typography.letterSpacing', 'typography.lineHeight', 'typography.textDecoration', 'typography.textTransform'];
24
+ const VALID_SETTINGS = ['appearanceTools', 'useRootPaddingAwareAlignments', 'border.color', 'border.radius', 'border.style', 'border.width', 'shadow.presets', 'shadow.defaultPresets', 'color.background', 'color.custom', 'color.customDuotone', 'color.customGradient', 'color.defaultDuotone', 'color.defaultGradients', 'color.defaultPalette', 'color.duotone', 'color.gradients', 'color.link', 'color.palette', 'color.text', 'custom', 'dimensions.minHeight', 'layout.contentSize', 'layout.definitions', 'layout.wideSize', 'position.fixed', 'position.sticky', 'spacing.customSpacingSize', 'spacing.spacingSizes', 'spacing.spacingScale', 'spacing.blockGap', 'spacing.margin', 'spacing.padding', 'spacing.units', 'typography.fluid', 'typography.customFontSize', 'typography.dropCap', 'typography.fontFamilies', 'typography.fontSizes', 'typography.fontStyle', 'typography.fontWeight', 'typography.letterSpacing', 'typography.lineHeight', 'typography.textDecoration', 'typography.textTransform'];
25
25
  export const useGlobalStylesReset = () => {
26
26
  const {
27
27
  user: config,
@@ -126,50 +126,88 @@ export function useGlobalStyle(path, blockName) {
126
126
 
127
127
  return [result, setStyle];
128
128
  }
129
- export function useSupportedStyles(name, element) {
130
- const {
131
- supportedPanels
132
- } = useSelect(select => {
133
- return {
134
- supportedPanels: unlock(select(blocksStore)).getSupportedStyles(name, element)
135
- };
136
- }, [name, element]);
137
- return supportedPanels;
138
- }
139
129
  /**
140
- * Given a settings object and a list of supported panels,
141
- * returns a new settings object with the unsupported panels removed.
130
+ * React hook that overrides a global settings object with block and element specific settings.
142
131
  *
143
- * @param {Object} settings Settings object.
144
- * @param {string[]} supports Supported style panels.
132
+ * @param {Object} parentSettings Settings object.
133
+ * @param {blockName?} blockName Block name.
134
+ * @param {element?} element Element name.
145
135
  *
146
136
  * @return {Object} Merge of settings and supports.
147
137
  */
148
138
 
149
- export function overrideSettingsWithSupports(settings, supports) {
150
- const updatedSettings = { ...settings
151
- };
139
+ export function useSettingsForBlockElement(parentSettings, blockName, element) {
140
+ const {
141
+ supportedStyles,
142
+ supports
143
+ } = useSelect(select => {
144
+ var _select$getBlockType;
152
145
 
153
- if (!supports.includes('fontSize')) {
154
- updatedSettings.typography = { ...updatedSettings.typography,
155
- fontSizes: {},
156
- customFontSize: false
146
+ return {
147
+ supportedStyles: unlock(select(blocksStore)).getSupportedStyles(blockName, element),
148
+ supports: (_select$getBlockType = select(blocksStore).getBlockType(blockName)) === null || _select$getBlockType === void 0 ? void 0 : _select$getBlockType.supports
157
149
  };
158
- }
159
-
160
- if (!supports.includes('fontFamily')) {
161
- updatedSettings.typography = { ...updatedSettings.typography,
162
- fontFamilies: {}
150
+ }, [blockName, element]);
151
+ return useMemo(() => {
152
+ const updatedSettings = { ...parentSettings
163
153
  };
164
- }
165
154
 
166
- ['lineHeight', 'fontStyle', 'fontWeight', 'letterSpacing', 'textTransform'].forEach(key => {
167
- if (!supports.includes(key)) {
155
+ if (!supportedStyles.includes('fontSize')) {
156
+ updatedSettings.typography = { ...updatedSettings.typography,
157
+ fontSizes: {},
158
+ customFontSize: false
159
+ };
160
+ }
161
+
162
+ if (!supportedStyles.includes('fontFamily')) {
168
163
  updatedSettings.typography = { ...updatedSettings.typography,
169
- [key]: false
164
+ fontFamilies: {}
170
165
  };
171
166
  }
172
- });
173
- return updatedSettings;
167
+
168
+ ['lineHeight', 'fontStyle', 'fontWeight', 'letterSpacing', 'textTransform', 'textDecoration'].forEach(key => {
169
+ if (!supportedStyles.includes(key)) {
170
+ updatedSettings.typography = { ...updatedSettings.typography,
171
+ [key]: false
172
+ };
173
+ }
174
+ });
175
+ ['contentSize', 'wideSize'].forEach(key => {
176
+ if (!supportedStyles.includes(key)) {
177
+ updatedSettings.layout = { ...updatedSettings.layout,
178
+ [key]: false
179
+ };
180
+ }
181
+ });
182
+ ['padding', 'margin', 'blockGap'].forEach(key => {
183
+ var _supports$spacing, _supports$spacing2, _supports$spacing3, _supports$spacing3$ke;
184
+
185
+ if (!supportedStyles.includes(key)) {
186
+ updatedSettings.spacing = { ...updatedSettings.spacing,
187
+ [key]: false
188
+ };
189
+ }
190
+
191
+ const sides = Array.isArray(supports === null || supports === void 0 ? void 0 : (_supports$spacing = supports.spacing) === null || _supports$spacing === void 0 ? void 0 : _supports$spacing[key]) ? supports === null || supports === void 0 ? void 0 : (_supports$spacing2 = supports.spacing) === null || _supports$spacing2 === void 0 ? void 0 : _supports$spacing2[key] : supports === null || supports === void 0 ? void 0 : (_supports$spacing3 = supports.spacing) === null || _supports$spacing3 === void 0 ? void 0 : (_supports$spacing3$ke = _supports$spacing3[key]) === null || _supports$spacing3$ke === void 0 ? void 0 : _supports$spacing3$ke.sides;
192
+
193
+ if (sides !== null && sides !== void 0 && sides.length) {
194
+ var _updatedSettings$spac;
195
+
196
+ updatedSettings.spacing = { ...updatedSettings.spacing,
197
+ [key]: { ...((_updatedSettings$spac = updatedSettings.spacing) === null || _updatedSettings$spac === void 0 ? void 0 : _updatedSettings$spac[key]),
198
+ sides
199
+ }
200
+ };
201
+ }
202
+ });
203
+
204
+ if (!supportedStyles.includes('minHeight')) {
205
+ updatedSettings.dimensions = { ...updatedSettings.dimensions,
206
+ minHeight: false
207
+ };
208
+ }
209
+
210
+ return updatedSettings;
211
+ }, [parentSettings, supportedStyles, supports]);
174
212
  }
175
213
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/hooks.js"],"names":["fastDeepEqual","get","set","useContext","useCallback","useMemo","useSelect","store","blocksStore","getValueFromVariable","getPresetVariableFromValue","GlobalStylesContext","unlock","EMPTY_CONFIG","settings","styles","VALID_SETTINGS","useGlobalStylesReset","user","config","setUserConfig","canReset","useGlobalSetting","propertyPath","blockName","source","configs","appendedBlockPath","appendedPropertyPath","contextualPath","globalPath","sourceKey","settingValue","configToUse","result","forEach","setting","value","setSetting","newValue","currentConfig","newUserConfig","JSON","parse","stringify","useGlobalStyle","path","shouldDecodeEncode","merged","mergedConfig","base","baseConfig","userConfig","appendedPath","finalPath","setStyle","rawResult","useSupportedStyles","name","element","supportedPanels","select","getSupportedStyles","overrideSettingsWithSupports","supports","updatedSettings","includes","typography","fontSizes","customFontSize","fontFamilies","key"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\nimport { get, set } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useContext, useCallback, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable, getPresetVariableFromValue } from './utils';\nimport { GlobalStylesContext } from './context';\nimport { unlock } from '../../lock-unlock';\n\nconst EMPTY_CONFIG = { settings: {}, styles: {} };\n\nconst VALID_SETTINGS = [\n\t'appearanceTools',\n\t'useRootPaddingAwareAlignments',\n\t'border.color',\n\t'border.radius',\n\t'border.style',\n\t'border.width',\n\t'shadow.presets',\n\t'shadow.defaultPresets',\n\t'color.background',\n\t'color.custom',\n\t'color.customDuotone',\n\t'color.customGradient',\n\t'color.defaultDuotone',\n\t'color.defaultGradients',\n\t'color.defaultPalette',\n\t'color.duotone',\n\t'color.gradients',\n\t'color.link',\n\t'color.palette',\n\t'color.text',\n\t'custom',\n\t'dimensions.minHeight',\n\t'layout.contentSize',\n\t'layout.definitions',\n\t'layout.wideSize',\n\t'position.fixed',\n\t'position.sticky',\n\t'spacing.customSpacingSize',\n\t'spacing.spacingSizes',\n\t'spacing.spacingScale',\n\t'spacing.blockGap',\n\t'spacing.margin',\n\t'spacing.padding',\n\t'spacing.units',\n\t'typography.fuild',\n\t'typography.customFontSize',\n\t'typography.dropCap',\n\t'typography.fontFamilies',\n\t'typography.fontSizes',\n\t'typography.fontStyle',\n\t'typography.fontWeight',\n\t'typography.letterSpacing',\n\t'typography.lineHeight',\n\t'typography.textDecoration',\n\t'typography.textTransform',\n];\n\nexport const useGlobalStylesReset = () => {\n\tconst { user: config, setUserConfig } = useContext( GlobalStylesContext );\n\tconst canReset = !! config && ! fastDeepEqual( config, EMPTY_CONFIG );\n\treturn [\n\t\tcanReset,\n\t\tuseCallback(\n\t\t\t() => setUserConfig( () => EMPTY_CONFIG ),\n\t\t\t[ setUserConfig ]\n\t\t),\n\t];\n};\n\nexport function useGlobalSetting( propertyPath, blockName, source = 'all' ) {\n\tconst { setUserConfig, ...configs } = useContext( GlobalStylesContext );\n\n\tconst appendedBlockPath = blockName ? '.blocks.' + blockName : '';\n\tconst appendedPropertyPath = propertyPath ? '.' + propertyPath : '';\n\tconst contextualPath = `settings${ appendedBlockPath }${ appendedPropertyPath }`;\n\tconst globalPath = `settings${ appendedPropertyPath }`;\n\tconst sourceKey = source === 'all' ? 'merged' : source;\n\n\tconst settingValue = useMemo( () => {\n\t\tconst configToUse = configs[ sourceKey ];\n\t\tif ( ! configToUse ) {\n\t\t\tthrow 'Unsupported source';\n\t\t}\n\n\t\tif ( propertyPath ) {\n\t\t\treturn (\n\t\t\t\tget( configToUse, contextualPath ) ??\n\t\t\t\tget( configToUse, globalPath )\n\t\t\t);\n\t\t}\n\n\t\tconst result = {};\n\t\tVALID_SETTINGS.forEach( ( setting ) => {\n\t\t\tconst value =\n\t\t\t\tget(\n\t\t\t\t\tconfigToUse,\n\t\t\t\t\t`settings${ appendedBlockPath }.${ setting }`\n\t\t\t\t) ?? get( configToUse, `settings.${ setting }` );\n\t\t\tif ( value ) {\n\t\t\t\tset( result, setting, value );\n\t\t\t}\n\t\t} );\n\t\treturn result;\n\t}, [\n\t\tconfigs,\n\t\tsourceKey,\n\t\tpropertyPath,\n\t\tcontextualPath,\n\t\tglobalPath,\n\t\tappendedBlockPath,\n\t] );\n\n\tconst setSetting = ( newValue ) => {\n\t\tsetUserConfig( ( currentConfig ) => {\n\t\t\t// Deep clone `currentConfig` to avoid mutating it later.\n\t\t\tconst newUserConfig = JSON.parse( JSON.stringify( currentConfig ) );\n\t\t\tset( newUserConfig, contextualPath, newValue );\n\n\t\t\treturn newUserConfig;\n\t\t} );\n\t};\n\n\treturn [ settingValue, setSetting ];\n}\n\nexport function useGlobalStyle(\n\tpath,\n\tblockName,\n\tsource = 'all',\n\t{ shouldDecodeEncode = true } = {}\n) {\n\tconst {\n\t\tmerged: mergedConfig,\n\t\tbase: baseConfig,\n\t\tuser: userConfig,\n\t\tsetUserConfig,\n\t} = useContext( GlobalStylesContext );\n\tconst appendedPath = path ? '.' + path : '';\n\tconst finalPath = ! blockName\n\t\t? `styles${ appendedPath }`\n\t\t: `styles.blocks.${ blockName }${ appendedPath }`;\n\n\tconst setStyle = ( newValue ) => {\n\t\tsetUserConfig( ( currentConfig ) => {\n\t\t\t// Deep clone `currentConfig` to avoid mutating it later.\n\t\t\tconst newUserConfig = JSON.parse( JSON.stringify( currentConfig ) );\n\t\t\tset(\n\t\t\t\tnewUserConfig,\n\t\t\t\tfinalPath,\n\t\t\t\tshouldDecodeEncode\n\t\t\t\t\t? getPresetVariableFromValue(\n\t\t\t\t\t\t\tmergedConfig.settings,\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\tnewValue\n\t\t\t\t\t )\n\t\t\t\t\t: newValue\n\t\t\t);\n\t\t\treturn newUserConfig;\n\t\t} );\n\t};\n\n\tlet rawResult, result;\n\tswitch ( source ) {\n\t\tcase 'all':\n\t\t\trawResult =\n\t\t\t\t// The stlyes.css path is allowed to be empty, so don't revert to base if undefined.\n\t\t\t\tfinalPath === 'styles.css'\n\t\t\t\t\t? get( userConfig, finalPath )\n\t\t\t\t\t: get( mergedConfig, finalPath );\n\t\t\tresult = shouldDecodeEncode\n\t\t\t\t? getValueFromVariable( mergedConfig, blockName, rawResult )\n\t\t\t\t: rawResult;\n\t\t\tbreak;\n\t\tcase 'user':\n\t\t\trawResult = get( userConfig, finalPath );\n\t\t\tresult = shouldDecodeEncode\n\t\t\t\t? getValueFromVariable( mergedConfig, blockName, rawResult )\n\t\t\t\t: rawResult;\n\t\t\tbreak;\n\t\tcase 'base':\n\t\t\trawResult = get( baseConfig, finalPath );\n\t\t\tresult = shouldDecodeEncode\n\t\t\t\t? getValueFromVariable( baseConfig, blockName, rawResult )\n\t\t\t\t: rawResult;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow 'Unsupported source';\n\t}\n\n\treturn [ result, setStyle ];\n}\n\nexport function useSupportedStyles( name, element ) {\n\tconst { supportedPanels } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tsupportedPanels: unlock(\n\t\t\t\t\tselect( blocksStore )\n\t\t\t\t).getSupportedStyles( name, element ),\n\t\t\t};\n\t\t},\n\t\t[ name, element ]\n\t);\n\n\treturn supportedPanels;\n}\n\n/**\n * Given a settings object and a list of supported panels,\n * returns a new settings object with the unsupported panels removed.\n *\n * @param {Object} settings Settings object.\n * @param {string[]} supports Supported style panels.\n *\n * @return {Object} Merge of settings and supports.\n */\nexport function overrideSettingsWithSupports( settings, supports ) {\n\tconst updatedSettings = { ...settings };\n\n\tif ( ! supports.includes( 'fontSize' ) ) {\n\t\tupdatedSettings.typography = {\n\t\t\t...updatedSettings.typography,\n\t\t\tfontSizes: {},\n\t\t\tcustomFontSize: false,\n\t\t};\n\t}\n\n\tif ( ! supports.includes( 'fontFamily' ) ) {\n\t\tupdatedSettings.typography = {\n\t\t\t...updatedSettings.typography,\n\t\t\tfontFamilies: {},\n\t\t};\n\t}\n\n\t[\n\t\t'lineHeight',\n\t\t'fontStyle',\n\t\t'fontWeight',\n\t\t'letterSpacing',\n\t\t'textTransform',\n\t].forEach( ( key ) => {\n\t\tif ( ! supports.includes( key ) ) {\n\t\t\tupdatedSettings.typography = {\n\t\t\t\t...updatedSettings.typography,\n\t\t\t\t[ key ]: false,\n\t\t\t};\n\t\t}\n\t} );\n\n\treturn updatedSettings;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/hooks.js"],"names":["fastDeepEqual","get","set","useContext","useCallback","useMemo","useSelect","store","blocksStore","getValueFromVariable","getPresetVariableFromValue","GlobalStylesContext","unlock","EMPTY_CONFIG","settings","styles","VALID_SETTINGS","useGlobalStylesReset","user","config","setUserConfig","canReset","useGlobalSetting","propertyPath","blockName","source","configs","appendedBlockPath","appendedPropertyPath","contextualPath","globalPath","sourceKey","settingValue","configToUse","result","forEach","setting","value","setSetting","newValue","currentConfig","newUserConfig","JSON","parse","stringify","useGlobalStyle","path","shouldDecodeEncode","merged","mergedConfig","base","baseConfig","userConfig","appendedPath","finalPath","setStyle","rawResult","useSettingsForBlockElement","parentSettings","element","supportedStyles","supports","select","getSupportedStyles","getBlockType","updatedSettings","includes","typography","fontSizes","customFontSize","fontFamilies","key","layout","spacing","sides","Array","isArray","length","dimensions","minHeight"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\nimport { get, set } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useContext, useCallback, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable, getPresetVariableFromValue } from './utils';\nimport { GlobalStylesContext } from './context';\nimport { unlock } from '../../lock-unlock';\n\nconst EMPTY_CONFIG = { settings: {}, styles: {} };\n\nconst VALID_SETTINGS = [\n\t'appearanceTools',\n\t'useRootPaddingAwareAlignments',\n\t'border.color',\n\t'border.radius',\n\t'border.style',\n\t'border.width',\n\t'shadow.presets',\n\t'shadow.defaultPresets',\n\t'color.background',\n\t'color.custom',\n\t'color.customDuotone',\n\t'color.customGradient',\n\t'color.defaultDuotone',\n\t'color.defaultGradients',\n\t'color.defaultPalette',\n\t'color.duotone',\n\t'color.gradients',\n\t'color.link',\n\t'color.palette',\n\t'color.text',\n\t'custom',\n\t'dimensions.minHeight',\n\t'layout.contentSize',\n\t'layout.definitions',\n\t'layout.wideSize',\n\t'position.fixed',\n\t'position.sticky',\n\t'spacing.customSpacingSize',\n\t'spacing.spacingSizes',\n\t'spacing.spacingScale',\n\t'spacing.blockGap',\n\t'spacing.margin',\n\t'spacing.padding',\n\t'spacing.units',\n\t'typography.fluid',\n\t'typography.customFontSize',\n\t'typography.dropCap',\n\t'typography.fontFamilies',\n\t'typography.fontSizes',\n\t'typography.fontStyle',\n\t'typography.fontWeight',\n\t'typography.letterSpacing',\n\t'typography.lineHeight',\n\t'typography.textDecoration',\n\t'typography.textTransform',\n];\n\nexport const useGlobalStylesReset = () => {\n\tconst { user: config, setUserConfig } = useContext( GlobalStylesContext );\n\tconst canReset = !! config && ! fastDeepEqual( config, EMPTY_CONFIG );\n\treturn [\n\t\tcanReset,\n\t\tuseCallback(\n\t\t\t() => setUserConfig( () => EMPTY_CONFIG ),\n\t\t\t[ setUserConfig ]\n\t\t),\n\t];\n};\n\nexport function useGlobalSetting( propertyPath, blockName, source = 'all' ) {\n\tconst { setUserConfig, ...configs } = useContext( GlobalStylesContext );\n\n\tconst appendedBlockPath = blockName ? '.blocks.' + blockName : '';\n\tconst appendedPropertyPath = propertyPath ? '.' + propertyPath : '';\n\tconst contextualPath = `settings${ appendedBlockPath }${ appendedPropertyPath }`;\n\tconst globalPath = `settings${ appendedPropertyPath }`;\n\tconst sourceKey = source === 'all' ? 'merged' : source;\n\n\tconst settingValue = useMemo( () => {\n\t\tconst configToUse = configs[ sourceKey ];\n\t\tif ( ! configToUse ) {\n\t\t\tthrow 'Unsupported source';\n\t\t}\n\n\t\tif ( propertyPath ) {\n\t\t\treturn (\n\t\t\t\tget( configToUse, contextualPath ) ??\n\t\t\t\tget( configToUse, globalPath )\n\t\t\t);\n\t\t}\n\n\t\tconst result = {};\n\t\tVALID_SETTINGS.forEach( ( setting ) => {\n\t\t\tconst value =\n\t\t\t\tget(\n\t\t\t\t\tconfigToUse,\n\t\t\t\t\t`settings${ appendedBlockPath }.${ setting }`\n\t\t\t\t) ?? get( configToUse, `settings.${ setting }` );\n\t\t\tif ( value ) {\n\t\t\t\tset( result, setting, value );\n\t\t\t}\n\t\t} );\n\t\treturn result;\n\t}, [\n\t\tconfigs,\n\t\tsourceKey,\n\t\tpropertyPath,\n\t\tcontextualPath,\n\t\tglobalPath,\n\t\tappendedBlockPath,\n\t] );\n\n\tconst setSetting = ( newValue ) => {\n\t\tsetUserConfig( ( currentConfig ) => {\n\t\t\t// Deep clone `currentConfig` to avoid mutating it later.\n\t\t\tconst newUserConfig = JSON.parse( JSON.stringify( currentConfig ) );\n\t\t\tset( newUserConfig, contextualPath, newValue );\n\n\t\t\treturn newUserConfig;\n\t\t} );\n\t};\n\n\treturn [ settingValue, setSetting ];\n}\n\nexport function useGlobalStyle(\n\tpath,\n\tblockName,\n\tsource = 'all',\n\t{ shouldDecodeEncode = true } = {}\n) {\n\tconst {\n\t\tmerged: mergedConfig,\n\t\tbase: baseConfig,\n\t\tuser: userConfig,\n\t\tsetUserConfig,\n\t} = useContext( GlobalStylesContext );\n\tconst appendedPath = path ? '.' + path : '';\n\tconst finalPath = ! blockName\n\t\t? `styles${ appendedPath }`\n\t\t: `styles.blocks.${ blockName }${ appendedPath }`;\n\n\tconst setStyle = ( newValue ) => {\n\t\tsetUserConfig( ( currentConfig ) => {\n\t\t\t// Deep clone `currentConfig` to avoid mutating it later.\n\t\t\tconst newUserConfig = JSON.parse( JSON.stringify( currentConfig ) );\n\t\t\tset(\n\t\t\t\tnewUserConfig,\n\t\t\t\tfinalPath,\n\t\t\t\tshouldDecodeEncode\n\t\t\t\t\t? getPresetVariableFromValue(\n\t\t\t\t\t\t\tmergedConfig.settings,\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\tnewValue\n\t\t\t\t\t )\n\t\t\t\t\t: newValue\n\t\t\t);\n\t\t\treturn newUserConfig;\n\t\t} );\n\t};\n\n\tlet rawResult, result;\n\tswitch ( source ) {\n\t\tcase 'all':\n\t\t\trawResult =\n\t\t\t\t// The stlyes.css path is allowed to be empty, so don't revert to base if undefined.\n\t\t\t\tfinalPath === 'styles.css'\n\t\t\t\t\t? get( userConfig, finalPath )\n\t\t\t\t\t: get( mergedConfig, finalPath );\n\t\t\tresult = shouldDecodeEncode\n\t\t\t\t? getValueFromVariable( mergedConfig, blockName, rawResult )\n\t\t\t\t: rawResult;\n\t\t\tbreak;\n\t\tcase 'user':\n\t\t\trawResult = get( userConfig, finalPath );\n\t\t\tresult = shouldDecodeEncode\n\t\t\t\t? getValueFromVariable( mergedConfig, blockName, rawResult )\n\t\t\t\t: rawResult;\n\t\t\tbreak;\n\t\tcase 'base':\n\t\t\trawResult = get( baseConfig, finalPath );\n\t\t\tresult = shouldDecodeEncode\n\t\t\t\t? getValueFromVariable( baseConfig, blockName, rawResult )\n\t\t\t\t: rawResult;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow 'Unsupported source';\n\t}\n\n\treturn [ result, setStyle ];\n}\n\n/**\n * React hook that overrides a global settings object with block and element specific settings.\n *\n * @param {Object} parentSettings Settings object.\n * @param {blockName?} blockName Block name.\n * @param {element?} element Element name.\n *\n * @return {Object} Merge of settings and supports.\n */\nexport function useSettingsForBlockElement(\n\tparentSettings,\n\tblockName,\n\telement\n) {\n\tconst { supportedStyles, supports } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tsupportedStyles: unlock(\n\t\t\t\t\tselect( blocksStore )\n\t\t\t\t).getSupportedStyles( blockName, element ),\n\t\t\t\tsupports:\n\t\t\t\t\tselect( blocksStore ).getBlockType( blockName )?.supports,\n\t\t\t};\n\t\t},\n\t\t[ blockName, element ]\n\t);\n\n\treturn useMemo( () => {\n\t\tconst updatedSettings = { ...parentSettings };\n\n\t\tif ( ! supportedStyles.includes( 'fontSize' ) ) {\n\t\t\tupdatedSettings.typography = {\n\t\t\t\t...updatedSettings.typography,\n\t\t\t\tfontSizes: {},\n\t\t\t\tcustomFontSize: false,\n\t\t\t};\n\t\t}\n\n\t\tif ( ! supportedStyles.includes( 'fontFamily' ) ) {\n\t\t\tupdatedSettings.typography = {\n\t\t\t\t...updatedSettings.typography,\n\t\t\t\tfontFamilies: {},\n\t\t\t};\n\t\t}\n\n\t\t[\n\t\t\t'lineHeight',\n\t\t\t'fontStyle',\n\t\t\t'fontWeight',\n\t\t\t'letterSpacing',\n\t\t\t'textTransform',\n\t\t\t'textDecoration',\n\t\t].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.typography = {\n\t\t\t\t\t...updatedSettings.typography,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t[ 'contentSize', 'wideSize' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.layout = {\n\t\t\t\t\t...updatedSettings.layout,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t[ 'padding', 'margin', 'blockGap' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.spacing = {\n\t\t\t\t\t...updatedSettings.spacing,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst sides = Array.isArray( supports?.spacing?.[ key ] )\n\t\t\t\t? supports?.spacing?.[ key ]\n\t\t\t\t: supports?.spacing?.[ key ]?.sides;\n\t\t\tif ( sides?.length ) {\n\t\t\t\tupdatedSettings.spacing = {\n\t\t\t\t\t...updatedSettings.spacing,\n\t\t\t\t\t[ key ]: {\n\t\t\t\t\t\t...updatedSettings.spacing?.[ key ],\n\t\t\t\t\t\tsides,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\tif ( ! supportedStyles.includes( 'minHeight' ) ) {\n\t\t\tupdatedSettings.dimensions = {\n\t\t\t\t...updatedSettings.dimensions,\n\t\t\t\tminHeight: false,\n\t\t\t};\n\t\t}\n\n\t\treturn updatedSettings;\n\t}, [ parentSettings, supportedStyles, supports ] );\n}\n"]}
@@ -1,5 +1,6 @@
1
- export { useGlobalStylesReset, useGlobalSetting, useGlobalStyle, overrideSettingsWithSupports } from './hooks';
1
+ export { useGlobalStylesReset, useGlobalSetting, useGlobalStyle, useSettingsForBlockElement } from './hooks';
2
2
  export { useGlobalStylesOutput } from './use-global-styles-output';
3
3
  export { GlobalStylesContext } from './context';
4
4
  export { default as TypographyPanel, useHasTypographyPanel } from './typography-panel';
5
+ export { default as DimensionsPanel, useHasDimensionsPanel } from './dimensions-panel';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/index.js"],"names":["useGlobalStylesReset","useGlobalSetting","useGlobalStyle","overrideSettingsWithSupports","useGlobalStylesOutput","GlobalStylesContext","default","TypographyPanel","useHasTypographyPanel"],"mappings":"AAAA,SACCA,oBADD,EAECC,gBAFD,EAGCC,cAHD,EAICC,4BAJD,QAKO,SALP;AAMA,SAASC,qBAAT,QAAsC,4BAAtC;AACA,SAASC,mBAAT,QAAoC,WAApC;AACA,SACCC,OAAO,IAAIC,eADZ,EAECC,qBAFD,QAGO,oBAHP","sourcesContent":["export {\n\tuseGlobalStylesReset,\n\tuseGlobalSetting,\n\tuseGlobalStyle,\n\toverrideSettingsWithSupports,\n} from './hooks';\nexport { useGlobalStylesOutput } from './use-global-styles-output';\nexport { GlobalStylesContext } from './context';\nexport {\n\tdefault as TypographyPanel,\n\tuseHasTypographyPanel,\n} from './typography-panel';\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/index.js"],"names":["useGlobalStylesReset","useGlobalSetting","useGlobalStyle","useSettingsForBlockElement","useGlobalStylesOutput","GlobalStylesContext","default","TypographyPanel","useHasTypographyPanel","DimensionsPanel","useHasDimensionsPanel"],"mappings":"AAAA,SACCA,oBADD,EAECC,gBAFD,EAGCC,cAHD,EAICC,0BAJD,QAKO,SALP;AAMA,SAASC,qBAAT,QAAsC,4BAAtC;AACA,SAASC,mBAAT,QAAoC,WAApC;AACA,SACCC,OAAO,IAAIC,eADZ,EAECC,qBAFD,QAGO,oBAHP;AAIA,SACCF,OAAO,IAAIG,eADZ,EAECC,qBAFD,QAGO,oBAHP","sourcesContent":["export {\n\tuseGlobalStylesReset,\n\tuseGlobalSetting,\n\tuseGlobalStyle,\n\tuseSettingsForBlockElement,\n} from './hooks';\nexport { useGlobalStylesOutput } from './use-global-styles-output';\nexport { GlobalStylesContext } from './context';\nexport {\n\tdefault as TypographyPanel,\n\tuseHasTypographyPanel,\n} from './typography-panel';\nexport {\n\tdefault as DimensionsPanel,\n\tuseHasDimensionsPanel,\n} from './dimensions-panel';\n"]}
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import { createElement } from "@wordpress/element";
3
2
 
4
3
  /**
@@ -6,6 +5,7 @@ import { createElement } from "@wordpress/element";
6
5
  */
7
6
  import { FontSizePicker, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
8
7
  import { __ } from '@wordpress/i18n';
8
+ import { useCallback } from '@wordpress/element';
9
9
  /**
10
10
  * Internal dependencies
11
11
  */
@@ -95,11 +95,24 @@ function useHasTextDecorationControl(settings) {
95
95
  }
96
96
 
97
97
  function TypographyToolsPanel(_ref3) {
98
- let { ...props
98
+ let {
99
+ resetAllFilter,
100
+ onChange,
101
+ value,
102
+ panelId,
103
+ children
99
104
  } = _ref3;
100
- return createElement(ToolsPanel, _extends({
101
- label: __('Typography')
102
- }, props));
105
+
106
+ const resetAll = () => {
107
+ const updatedValue = resetAllFilter(value);
108
+ onChange(updatedValue);
109
+ };
110
+
111
+ return createElement(ToolsPanel, {
112
+ label: __('Typography'),
113
+ resetAll: resetAll,
114
+ panelId: panelId
115
+ }, children);
103
116
  }
104
117
 
105
118
  const DEFAULT_CONTROLS = {
@@ -293,14 +306,16 @@ export default function TypographyPanel(_ref4) {
293
306
 
294
307
  const resetTextDecoration = () => setTextDecoration(undefined);
295
308
 
296
- const resetAll = () => {
297
- onChange({ ...value,
309
+ const resetAllFilter = useCallback(previousValue => {
310
+ return { ...previousValue,
298
311
  typography: {}
299
- });
300
- };
301
-
312
+ };
313
+ }, []);
302
314
  return createElement(Wrapper, {
303
- resetAll: resetAll
315
+ resetAllFilter: resetAllFilter,
316
+ value: value,
317
+ onChange: onChange,
318
+ panelId: panelId
304
319
  }, hasFontFamilyEnabled && createElement(ToolsPanelItem, {
305
320
  label: __('Font family'),
306
321
  hasValue: hasFontFamily,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/typography-panel.js"],"names":["FontSizePicker","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__","FontFamilyControl","FontAppearanceControl","LineHeightControl","LetterSpacingControl","TextTransformControl","TextDecorationControl","getValueFromVariable","useHasTypographyPanel","settings","hasFontFamily","useHasFontFamilyControl","hasLineHeight","useHasLineHeightControl","hasFontAppearance","useHasAppearanceControl","hasLetterSpacing","useHasLetterSpacingControl","hasTextTransform","useHasTextTransformControl","hasTextDecoration","useHasTextDecorationControl","hasFontSize","useHasFontSizeControl","disableCustomFontSizes","typography","customFontSize","fontSizesPerOrigin","fontSizes","custom","theme","default","length","fontFamiliesPerOrigin","fontFamilies","lineHeight","hasFontStyles","fontStyle","hasFontWeights","fontWeight","useAppearanceControlLabel","letterSpacing","textTransform","textDecoration","TypographyToolsPanel","props","DEFAULT_CONTROLS","fontFamily","fontSize","fontAppearance","TypographyPanel","as","Wrapper","value","onChange","inheritedValue","panelId","defaultControls","decodeValue","rawValue","hasFontFamilyEnabled","setFontFamily","newValue","slug","find","f","resetFontFamily","undefined","hasFontSizeEnabled","setFontSize","metadata","actualValue","resetFontSize","hasAppearanceControl","appearanceControlLabel","setFontAppearance","newFontStyle","newFontWeight","resetFontAppearance","hasLineHeightEnabled","setLineHeight","resetLineHeight","hasLetterSpacingControl","setLetterSpacing","resetLetterSpacing","hasTextTransformControl","setTextTransform","resetTextTransform","hasTextDecorationControl","setTextDecoration","resetTextDecoration","resetAll"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFontSizePicker,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\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';\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 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);\n}\n\nfunction useHasFontSizeControl( settings ) {\n\tconst disableCustomFontSizes = ! settings?.typography?.customFontSize;\n\tconst fontSizesPerOrigin = settings?.typography?.fontSizes ?? {};\n\tconst fontSizes =\n\t\tfontSizesPerOrigin?.custom ??\n\t\tfontSizesPerOrigin?.theme ??\n\t\tfontSizesPerOrigin.default;\n\treturn !! fontSizes?.length || ! disableCustomFontSizes;\n}\n\nfunction useHasFontFamilyControl( settings ) {\n\tconst fontFamiliesPerOrigin = settings?.typography?.fontFamilies;\n\tconst fontFamilies =\n\t\tfontFamiliesPerOrigin?.custom ??\n\t\tfontFamiliesPerOrigin?.theme ??\n\t\tfontFamiliesPerOrigin?.default;\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 TypographyToolsPanel( { ...props } ) {\n\treturn <ToolsPanel label={ __( 'Typography' ) } { ...props } />;\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};\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\tfontFamiliesPerOrigin?.custom ??\n\t\tfontFamiliesPerOrigin?.theme ??\n\t\tfontFamiliesPerOrigin?.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\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\tfontFamily: slug\n\t\t\t\t\t? `var:preset|font-family|${ slug }`\n\t\t\t\t\t: newValue,\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\tfontSizesPerOrigin?.custom ??\n\t\tfontSizesPerOrigin?.theme ??\n\t\tfontSizesPerOrigin.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\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\tfontSize: actualValue,\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,\n\t\t\t\tfontWeight: newFontWeight,\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\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\tlineHeight: newValue,\n\t\t\t},\n\t\t} );\n\t};\n\tconst hasLineHeight = () => !! value?.typography?.lineHeight;\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\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\tletterSpacing: newValue,\n\t\t\t},\n\t\t} );\n\t};\n\tconst hasLetterSpacing = () => !! value?.typography?.letterSpacing;\n\tconst resetLetterSpacing = () => setLetterSpacing( 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\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\ttextTransform: newValue,\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\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\ttextDecoration: newValue,\n\t\t\t},\n\t\t} );\n\t};\n\tconst hasTextDecoration = () => !! value?.typography?.textDecoration;\n\tconst resetTextDecoration = () => setTextDecoration( undefined );\n\n\tconst resetAll = () => {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\ttypography: {},\n\t\t} );\n\t};\n\n\treturn (\n\t\t<Wrapper resetAll={ resetAll }>\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{ 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":["FontSizePicker","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__","useCallback","FontFamilyControl","FontAppearanceControl","LineHeightControl","LetterSpacingControl","TextTransformControl","TextDecorationControl","getValueFromVariable","useHasTypographyPanel","settings","hasFontFamily","useHasFontFamilyControl","hasLineHeight","useHasLineHeightControl","hasFontAppearance","useHasAppearanceControl","hasLetterSpacing","useHasLetterSpacingControl","hasTextTransform","useHasTextTransformControl","hasTextDecoration","useHasTextDecorationControl","hasFontSize","useHasFontSizeControl","disableCustomFontSizes","typography","customFontSize","fontSizesPerOrigin","fontSizes","custom","theme","default","length","fontFamiliesPerOrigin","fontFamilies","lineHeight","hasFontStyles","fontStyle","hasFontWeights","fontWeight","useAppearanceControlLabel","letterSpacing","textTransform","textDecoration","TypographyToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","DEFAULT_CONTROLS","fontFamily","fontSize","fontAppearance","TypographyPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","hasFontFamilyEnabled","setFontFamily","newValue","slug","find","f","resetFontFamily","undefined","hasFontSizeEnabled","setFontSize","metadata","actualValue","resetFontSize","hasAppearanceControl","appearanceControlLabel","setFontAppearance","newFontStyle","newFontWeight","resetFontAppearance","hasLineHeightEnabled","setLineHeight","resetLineHeight","hasLetterSpacingControl","setLetterSpacing","resetLetterSpacing","hasTextTransformControl","setTextTransform","resetTextTransform","hasTextDecorationControl","setTextDecoration","resetTextDecoration","previousValue"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFontSizePicker,\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';\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 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);\n}\n\nfunction useHasFontSizeControl( settings ) {\n\tconst disableCustomFontSizes = ! settings?.typography?.customFontSize;\n\tconst fontSizesPerOrigin = settings?.typography?.fontSizes ?? {};\n\tconst fontSizes =\n\t\tfontSizesPerOrigin?.custom ??\n\t\tfontSizesPerOrigin?.theme ??\n\t\tfontSizesPerOrigin.default;\n\treturn !! fontSizes?.length || ! disableCustomFontSizes;\n}\n\nfunction useHasFontFamilyControl( settings ) {\n\tconst fontFamiliesPerOrigin = settings?.typography?.fontFamilies;\n\tconst fontFamilies =\n\t\tfontFamiliesPerOrigin?.custom ??\n\t\tfontFamiliesPerOrigin?.theme ??\n\t\tfontFamiliesPerOrigin?.default;\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 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};\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\tfontFamiliesPerOrigin?.custom ??\n\t\tfontFamiliesPerOrigin?.theme ??\n\t\tfontFamiliesPerOrigin?.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\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\tfontFamily: slug\n\t\t\t\t\t? `var:preset|font-family|${ slug }`\n\t\t\t\t\t: newValue,\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\tfontSizesPerOrigin?.custom ??\n\t\tfontSizesPerOrigin?.theme ??\n\t\tfontSizesPerOrigin.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\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\tfontSize: actualValue,\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,\n\t\t\t\tfontWeight: newFontWeight,\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\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\tlineHeight: newValue,\n\t\t\t},\n\t\t} );\n\t};\n\tconst hasLineHeight = () => !! value?.typography?.lineHeight;\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\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\tletterSpacing: newValue,\n\t\t\t},\n\t\t} );\n\t};\n\tconst hasLetterSpacing = () => !! value?.typography?.letterSpacing;\n\tconst resetLetterSpacing = () => setLetterSpacing( 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\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\ttextTransform: newValue,\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\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\ttextDecoration: newValue,\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{ 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"]}
@@ -690,7 +690,7 @@ export const toStyles = function (tree, blockSelectors, hasBlockGapSupport, hasF
690
690
  const duotoneDeclarations = getStylesDeclarations(duotoneStyles);
691
691
 
692
692
  if (duotoneDeclarations.length > 0) {
693
- ruleset = ruleset + `${duotoneSelector}{${duotoneDeclarations.join(';')};}`;
693
+ ruleset = ruleset + `${scopeSelector(selector, duotoneSelector)}{${duotoneDeclarations.join(';')};}`;
694
694
  }
695
695
  } // Process blockGap and layout styles.
696
696