@wordpress/edit-site 5.0.0 → 5.2.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 (262) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/LICENSE.md +1 -1
  3. package/build/components/add-new-template/new-template-part.js +21 -1
  4. package/build/components/add-new-template/new-template-part.js.map +1 -1
  5. package/build/components/add-new-template/utils.js +9 -1
  6. package/build/components/add-new-template/utils.js.map +1 -1
  7. package/build/components/block-editor/editor-canvas.js +0 -1
  8. package/build/components/block-editor/editor-canvas.js.map +1 -1
  9. package/build/components/block-editor/index.js +17 -52
  10. package/build/components/block-editor/index.js.map +1 -1
  11. package/build/components/block-editor/resize-handle.js +2 -1
  12. package/build/components/block-editor/resize-handle.js.map +1 -1
  13. package/build/components/editor/index.js +5 -17
  14. package/build/components/editor/index.js.map +1 -1
  15. package/build/components/global-styles/block-preview-panel.js +27 -6
  16. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  17. package/build/components/global-styles/border-panel.js +5 -5
  18. package/build/components/global-styles/border-panel.js.map +1 -1
  19. package/build/components/global-styles/context-menu.js +9 -1
  20. package/build/components/global-styles/context-menu.js.map +1 -1
  21. package/build/components/global-styles/custom-css.js +1 -0
  22. package/build/components/global-styles/custom-css.js.map +1 -1
  23. package/build/components/global-styles/dimensions-panel.js +16 -11
  24. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  25. package/build/components/global-styles/global-styles-provider.js +3 -2
  26. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  27. package/build/components/global-styles/screen-background-color.js +6 -6
  28. package/build/components/global-styles/screen-background-color.js.map +1 -1
  29. package/build/components/global-styles/screen-block-list.js +4 -1
  30. package/build/components/global-styles/screen-block-list.js.map +1 -1
  31. package/build/components/global-styles/screen-block.js +2 -6
  32. package/build/components/global-styles/screen-block.js.map +1 -1
  33. package/build/components/global-styles/screen-border.js +12 -2
  34. package/build/components/global-styles/screen-border.js.map +1 -1
  35. package/build/components/global-styles/screen-button-color.js +3 -4
  36. package/build/components/global-styles/screen-button-color.js.map +1 -1
  37. package/build/components/global-styles/screen-colors.js +53 -25
  38. package/build/components/global-styles/screen-colors.js.map +1 -1
  39. package/build/components/global-styles/screen-heading-color.js +9 -10
  40. package/build/components/global-styles/screen-heading-color.js.map +1 -1
  41. package/build/components/global-styles/screen-layout.js +12 -2
  42. package/build/components/global-styles/screen-layout.js.map +1 -1
  43. package/build/components/global-styles/screen-link-color.js +8 -8
  44. package/build/components/global-styles/screen-link-color.js.map +1 -1
  45. package/build/components/global-styles/screen-root.js +7 -2
  46. package/build/components/global-styles/screen-root.js.map +1 -1
  47. package/build/components/global-styles/screen-text-color.js +4 -4
  48. package/build/components/global-styles/screen-text-color.js.map +1 -1
  49. package/build/components/global-styles/screen-typography.js +11 -1
  50. package/build/components/global-styles/screen-typography.js.map +1 -1
  51. package/build/components/global-styles/screen-variations.js +71 -0
  52. package/build/components/global-styles/screen-variations.js.map +1 -0
  53. package/build/components/global-styles/typography-panel.js +9 -8
  54. package/build/components/global-styles/typography-panel.js.map +1 -1
  55. package/build/components/global-styles/typography-utils.js +17 -5
  56. package/build/components/global-styles/typography-utils.js.map +1 -1
  57. package/build/components/global-styles/ui.js +85 -18
  58. package/build/components/global-styles/ui.js.map +1 -1
  59. package/build/components/global-styles/use-global-styles-output.js +119 -33
  60. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  61. package/build/components/global-styles/utils.js +60 -3
  62. package/build/components/global-styles/utils.js.map +1 -1
  63. package/build/components/global-styles/variations-panel.js +85 -0
  64. package/build/components/global-styles/variations-panel.js.map +1 -0
  65. package/build/components/header-edit-mode/document-actions/index.js +10 -41
  66. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  67. package/build/components/layout/index.js +129 -87
  68. package/build/components/layout/index.js.map +1 -1
  69. package/build/components/sidebar/index.js +5 -1
  70. package/build/components/sidebar/index.js.map +1 -1
  71. package/build/components/sidebar-edit-mode/index.js +3 -1
  72. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  73. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js +2 -0
  74. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js.map +1 -1
  75. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js +10 -0
  76. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js.map +1 -1
  77. package/build/components/sidebar-navigation-screen-main/index.js +1 -31
  78. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  79. package/build/components/sidebar-navigation-screen-templates/index.js +3 -22
  80. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  81. package/build/components/site-hub/index.js +149 -0
  82. package/build/components/site-hub/index.js.map +1 -0
  83. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +54 -0
  84. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -0
  85. package/build/components/template-details/edit-template-title.js +1 -0
  86. package/build/components/template-details/edit-template-title.js.map +1 -1
  87. package/build/components/template-details/template-part-area-selector.js +1 -0
  88. package/build/components/template-details/template-part-area-selector.js.map +1 -1
  89. package/build/components/use-edited-entity-record/index.js +60 -0
  90. package/build/components/use-edited-entity-record/index.js.map +1 -0
  91. package/build/hooks/index.js +2 -0
  92. package/build/hooks/index.js.map +1 -1
  93. package/build/hooks/push-changes-to-global-styles/index.js +144 -0
  94. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -0
  95. package/build/index.js +5 -0
  96. package/build/index.js.map +1 -1
  97. package/build/store/reducer.js +1 -1
  98. package/build/store/reducer.js.map +1 -1
  99. package/build-module/components/add-new-template/new-template-part.js +20 -1
  100. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  101. package/build-module/components/add-new-template/utils.js +5 -0
  102. package/build-module/components/add-new-template/utils.js.map +1 -1
  103. package/build-module/components/block-editor/editor-canvas.js +0 -1
  104. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  105. package/build-module/components/block-editor/index.js +19 -50
  106. package/build-module/components/block-editor/index.js.map +1 -1
  107. package/build-module/components/block-editor/resize-handle.js +2 -1
  108. package/build-module/components/block-editor/resize-handle.js.map +1 -1
  109. package/build-module/components/editor/index.js +2 -13
  110. package/build-module/components/editor/index.js.map +1 -1
  111. package/build-module/components/global-styles/block-preview-panel.js +26 -6
  112. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  113. package/build-module/components/global-styles/border-panel.js +5 -5
  114. package/build-module/components/global-styles/border-panel.js.map +1 -1
  115. package/build-module/components/global-styles/context-menu.js +7 -1
  116. package/build-module/components/global-styles/context-menu.js.map +1 -1
  117. package/build-module/components/global-styles/custom-css.js +1 -0
  118. package/build-module/components/global-styles/custom-css.js.map +1 -1
  119. package/build-module/components/global-styles/dimensions-panel.js +16 -11
  120. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  121. package/build-module/components/global-styles/global-styles-provider.js +3 -2
  122. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  123. package/build-module/components/global-styles/screen-background-color.js +6 -6
  124. package/build-module/components/global-styles/screen-background-color.js.map +1 -1
  125. package/build-module/components/global-styles/screen-block-list.js +3 -1
  126. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  127. package/build-module/components/global-styles/screen-block.js +2 -5
  128. package/build-module/components/global-styles/screen-block.js.map +1 -1
  129. package/build-module/components/global-styles/screen-border.js +10 -2
  130. package/build-module/components/global-styles/screen-border.js.map +1 -1
  131. package/build-module/components/global-styles/screen-button-color.js +3 -4
  132. package/build-module/components/global-styles/screen-button-color.js.map +1 -1
  133. package/build-module/components/global-styles/screen-colors.js +51 -25
  134. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  135. package/build-module/components/global-styles/screen-heading-color.js +9 -10
  136. package/build-module/components/global-styles/screen-heading-color.js.map +1 -1
  137. package/build-module/components/global-styles/screen-layout.js +10 -2
  138. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  139. package/build-module/components/global-styles/screen-link-color.js +8 -8
  140. package/build-module/components/global-styles/screen-link-color.js.map +1 -1
  141. package/build-module/components/global-styles/screen-root.js +8 -3
  142. package/build-module/components/global-styles/screen-root.js.map +1 -1
  143. package/build-module/components/global-styles/screen-text-color.js +4 -4
  144. package/build-module/components/global-styles/screen-text-color.js.map +1 -1
  145. package/build-module/components/global-styles/screen-typography.js +9 -1
  146. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  147. package/build-module/components/global-styles/screen-variations.js +54 -0
  148. package/build-module/components/global-styles/screen-variations.js.map +1 -0
  149. package/build-module/components/global-styles/typography-panel.js +9 -8
  150. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  151. package/build-module/components/global-styles/typography-utils.js +17 -5
  152. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  153. package/build-module/components/global-styles/ui.js +84 -19
  154. package/build-module/components/global-styles/ui.js.map +1 -1
  155. package/build-module/components/global-styles/use-global-styles-output.js +121 -35
  156. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  157. package/build-module/components/global-styles/utils.js +56 -3
  158. package/build-module/components/global-styles/utils.js.map +1 -1
  159. package/build-module/components/global-styles/variations-panel.js +68 -0
  160. package/build-module/components/global-styles/variations-panel.js.map +1 -0
  161. package/build-module/components/header-edit-mode/document-actions/index.js +10 -38
  162. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  163. package/build-module/components/layout/index.js +129 -88
  164. package/build-module/components/layout/index.js.map +1 -1
  165. package/build-module/components/sidebar/index.js +4 -1
  166. package/build-module/components/sidebar/index.js.map +1 -1
  167. package/build-module/components/sidebar-edit-mode/index.js +3 -1
  168. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  169. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js +2 -0
  170. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js.map +1 -1
  171. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js +11 -1
  172. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js.map +1 -1
  173. package/build-module/components/sidebar-navigation-screen-main/index.js +2 -27
  174. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  175. package/build-module/components/sidebar-navigation-screen-templates/index.js +5 -23
  176. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  177. package/build-module/components/site-hub/index.js +127 -0
  178. package/build-module/components/site-hub/index.js.map +1 -0
  179. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +43 -0
  180. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -0
  181. package/build-module/components/template-details/edit-template-title.js +1 -0
  182. package/build-module/components/template-details/edit-template-title.js.map +1 -1
  183. package/build-module/components/template-details/template-part-area-selector.js +1 -0
  184. package/build-module/components/template-details/template-part-area-selector.js.map +1 -1
  185. package/build-module/components/use-edited-entity-record/index.js +48 -0
  186. package/build-module/components/use-edited-entity-record/index.js.map +1 -0
  187. package/build-module/hooks/index.js +1 -0
  188. package/build-module/hooks/index.js.map +1 -1
  189. package/build-module/hooks/push-changes-to-global-styles/index.js +132 -0
  190. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -0
  191. package/build-module/index.js +4 -0
  192. package/build-module/index.js.map +1 -1
  193. package/build-module/store/reducer.js +1 -1
  194. package/build-module/store/reducer.js.map +1 -1
  195. package/build-style/style-rtl.css +190 -125
  196. package/build-style/style.css +190 -125
  197. package/package.json +30 -29
  198. package/src/components/add-new-template/new-template-part.js +23 -1
  199. package/src/components/add-new-template/utils.js +14 -0
  200. package/src/components/block-editor/editor-canvas.js +0 -1
  201. package/src/components/block-editor/index.js +14 -59
  202. package/src/components/block-editor/resize-handle.js +6 -2
  203. package/src/components/block-editor/style.scss +43 -7
  204. package/src/components/editor/index.js +2 -17
  205. package/src/components/global-styles/block-preview-panel.js +37 -10
  206. package/src/components/global-styles/border-panel.js +8 -5
  207. package/src/components/global-styles/context-menu.js +6 -0
  208. package/src/components/global-styles/custom-css.js +1 -0
  209. package/src/components/global-styles/dimensions-panel.js +32 -15
  210. package/src/components/global-styles/global-styles-provider.js +11 -5
  211. package/src/components/global-styles/screen-background-color.js +12 -6
  212. package/src/components/global-styles/screen-block-list.js +6 -1
  213. package/src/components/global-styles/screen-block.js +1 -4
  214. package/src/components/global-styles/screen-border.js +8 -3
  215. package/src/components/global-styles/screen-button-color.js +2 -4
  216. package/src/components/global-styles/screen-colors.js +84 -20
  217. package/src/components/global-styles/screen-heading-color.js +8 -10
  218. package/src/components/global-styles/screen-layout.js +11 -3
  219. package/src/components/global-styles/screen-link-color.js +19 -8
  220. package/src/components/global-styles/screen-root.js +34 -27
  221. package/src/components/global-styles/screen-text-color.js +7 -4
  222. package/src/components/global-styles/screen-typography.js +13 -3
  223. package/src/components/global-styles/screen-variations.js +47 -0
  224. package/src/components/global-styles/style.scss +9 -0
  225. package/src/components/global-styles/test/typography-utils.js +72 -23
  226. package/src/components/global-styles/test/use-global-styles-output.js +1 -1
  227. package/src/components/global-styles/typography-panel.js +31 -8
  228. package/src/components/global-styles/typography-utils.js +24 -4
  229. package/src/components/global-styles/ui.js +101 -13
  230. package/src/components/global-styles/use-global-styles-output.js +137 -14
  231. package/src/components/global-styles/utils.js +56 -3
  232. package/src/components/global-styles/variations-panel.js +78 -0
  233. package/src/components/header-edit-mode/document-actions/index.js +18 -37
  234. package/src/components/header-edit-mode/style.scss +1 -0
  235. package/src/components/layout/index.js +217 -172
  236. package/src/components/layout/style.scss +98 -66
  237. package/src/components/list/style.scss +1 -8
  238. package/src/components/sidebar/index.js +4 -1
  239. package/src/components/sidebar-edit-mode/index.js +1 -1
  240. package/src/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js +2 -0
  241. package/src/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js +10 -0
  242. package/src/components/sidebar-edit-mode/navigation-menu-sidebar/style.scss +4 -0
  243. package/src/components/sidebar-navigation-screen/style.scss +2 -4
  244. package/src/components/sidebar-navigation-screen-main/index.js +1 -29
  245. package/src/components/sidebar-navigation-screen-templates/index.js +9 -27
  246. package/src/components/site-hub/index.js +161 -0
  247. package/src/components/site-hub/style.scss +31 -0
  248. package/src/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +40 -0
  249. package/src/components/template-details/edit-template-title.js +1 -0
  250. package/src/components/template-details/template-part-area-selector.js +1 -0
  251. package/src/components/use-edited-entity-record/index.js +37 -0
  252. package/src/hooks/index.js +1 -0
  253. package/src/hooks/push-changes-to-global-styles/index.js +162 -0
  254. package/src/hooks/push-changes-to-global-styles/style.scss +4 -0
  255. package/src/index.js +2 -0
  256. package/src/store/reducer.js +1 -1
  257. package/src/style.scss +2 -0
  258. package/build/components/site-title/index.js +0 -55
  259. package/build/components/site-title/index.js.map +0 -1
  260. package/build-module/components/site-title/index.js +0 -43
  261. package/build-module/components/site-title/index.js.map +0 -1
  262. package/src/components/site-title/index.js +0 -39
@@ -14,7 +14,9 @@ import { useHasBorderPanel } from './border-panel';
14
14
  import { useHasColorPanel } from './color-utils';
15
15
  import { useHasDimensionsPanel } from './dimensions-panel';
16
16
  import { useHasTypographyPanel } from './typography-panel';
17
+ import { useHasVariationsPanel } from './variations-panel';
17
18
  import { NavigationButtonAsItem } from './navigation-button';
19
+ import { ScreenVariations } from './screen-variations';
18
20
 
19
21
  function ContextMenu(_ref) {
20
22
  let {
@@ -26,6 +28,7 @@ function ContextMenu(_ref) {
26
28
  const hasBorderPanel = useHasBorderPanel(name);
27
29
  const hasDimensionsPanel = useHasDimensionsPanel(name);
28
30
  const hasLayoutPanel = hasDimensionsPanel;
31
+ const hasVariationsPanel = useHasVariationsPanel(name, parentMenu);
29
32
  return createElement(ItemGroup, null, hasTypographyPanel && createElement(NavigationButtonAsItem, {
30
33
  icon: typography,
31
34
  path: parentMenu + '/typography',
@@ -42,7 +45,10 @@ function ContextMenu(_ref) {
42
45
  icon: layout,
43
46
  path: parentMenu + '/layout',
44
47
  "aria-label": __('Layout styles')
45
- }, __('Layout')));
48
+ }, __('Layout')), hasVariationsPanel && createElement(ScreenVariations, {
49
+ name: name,
50
+ path: parentMenu
51
+ }));
46
52
  }
47
53
 
48
54
  export default ContextMenu;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/context-menu.js"],"names":["__experimentalItemGroup","ItemGroup","typography","border","color","layout","__","useHasBorderPanel","useHasColorPanel","useHasDimensionsPanel","useHasTypographyPanel","NavigationButtonAsItem","ContextMenu","name","parentMenu","hasTypographyPanel","hasColorPanel","hasBorderPanel","hasDimensionsPanel","hasLayoutPanel"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,uBAAuB,IAAIC,SAApC,QAAqD,uBAArD;AACA,SAASC,UAAT,EAAqBC,MAArB,EAA6BC,KAA7B,EAAoCC,MAApC,QAAkD,kBAAlD;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,SAASC,iBAAT,QAAkC,gBAAlC;AACA,SAASC,gBAAT,QAAiC,eAAjC;AACA,SAASC,qBAAT,QAAsC,oBAAtC;AACA,SAASC,qBAAT,QAAsC,oBAAtC;AACA,SAASC,sBAAT,QAAuC,qBAAvC;;AAEA,SAASC,WAAT,OAAkD;AAAA,MAA5B;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,UAAU,GAAG;AAArB,GAA4B;AACjD,QAAMC,kBAAkB,GAAGL,qBAAqB,CAAEG,IAAF,CAAhD;AACA,QAAMG,aAAa,GAAGR,gBAAgB,CAAEK,IAAF,CAAtC;AACA,QAAMI,cAAc,GAAGV,iBAAiB,CAAEM,IAAF,CAAxC;AACA,QAAMK,kBAAkB,GAAGT,qBAAqB,CAAEI,IAAF,CAAhD;AACA,QAAMM,cAAc,GAAGD,kBAAvB;AAEA,SACC,cAAC,SAAD,QACGH,kBAAkB,IACnB,cAAC,sBAAD;AACC,IAAA,IAAI,EAAGb,UADR;AAEC,IAAA,IAAI,EAAGY,UAAU,GAAG,aAFrB;AAGC,kBAAaR,EAAE,CAAE,mBAAF;AAHhB,KAKGA,EAAE,CAAE,YAAF,CALL,CAFF,EAUGU,aAAa,IACd,cAAC,sBAAD;AACC,IAAA,IAAI,EAAGZ,KADR;AAEC,IAAA,IAAI,EAAGU,UAAU,GAAG,SAFrB;AAGC,kBAAaR,EAAE,CAAE,eAAF;AAHhB,KAKGA,EAAE,CAAE,QAAF,CALL,CAXF,EAmBGW,cAAc,IACf,cAAC,sBAAD;AACC,IAAA,IAAI,EAAGd,MADR;AAEC,IAAA,IAAI,EAAGW,UAAU,GAAG,SAFrB;AAGC,kBAAaR,EAAE,CAAE,eAAF;AAHhB,KAKGA,EAAE,CAAE,QAAF,CALL,CApBF,EA4BGa,cAAc,IACf,cAAC,sBAAD;AACC,IAAA,IAAI,EAAGd,MADR;AAEC,IAAA,IAAI,EAAGS,UAAU,GAAG,SAFrB;AAGC,kBAAaR,EAAE,CAAE,eAAF;AAHhB,KAKGA,EAAE,CAAE,QAAF,CALL,CA7BF,CADD;AAwCA;;AAED,eAAeM,WAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\nimport { typography, border, color, layout } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useHasBorderPanel } from './border-panel';\nimport { useHasColorPanel } from './color-utils';\nimport { useHasDimensionsPanel } from './dimensions-panel';\nimport { useHasTypographyPanel } from './typography-panel';\nimport { NavigationButtonAsItem } from './navigation-button';\n\nfunction ContextMenu( { name, parentMenu = '' } ) {\n\tconst hasTypographyPanel = useHasTypographyPanel( name );\n\tconst hasColorPanel = useHasColorPanel( name );\n\tconst hasBorderPanel = useHasBorderPanel( name );\n\tconst hasDimensionsPanel = useHasDimensionsPanel( name );\n\tconst hasLayoutPanel = hasDimensionsPanel;\n\n\treturn (\n\t\t<ItemGroup>\n\t\t\t{ hasTypographyPanel && (\n\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\ticon={ typography }\n\t\t\t\t\tpath={ parentMenu + '/typography' }\n\t\t\t\t\taria-label={ __( 'Typography styles' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Typography' ) }\n\t\t\t\t</NavigationButtonAsItem>\n\t\t\t) }\n\t\t\t{ hasColorPanel && (\n\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\ticon={ color }\n\t\t\t\t\tpath={ parentMenu + '/colors' }\n\t\t\t\t\taria-label={ __( 'Colors styles' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Colors' ) }\n\t\t\t\t</NavigationButtonAsItem>\n\t\t\t) }\n\t\t\t{ hasBorderPanel && (\n\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\ticon={ border }\n\t\t\t\t\tpath={ parentMenu + '/border' }\n\t\t\t\t\taria-label={ __( 'Border styles' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Border' ) }\n\t\t\t\t</NavigationButtonAsItem>\n\t\t\t) }\n\t\t\t{ hasLayoutPanel && (\n\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\ticon={ layout }\n\t\t\t\t\tpath={ parentMenu + '/layout' }\n\t\t\t\t\taria-label={ __( 'Layout styles' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Layout' ) }\n\t\t\t\t</NavigationButtonAsItem>\n\t\t\t) }\n\t\t</ItemGroup>\n\t);\n}\n\nexport default ContextMenu;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/context-menu.js"],"names":["__experimentalItemGroup","ItemGroup","typography","border","color","layout","__","useHasBorderPanel","useHasColorPanel","useHasDimensionsPanel","useHasTypographyPanel","useHasVariationsPanel","NavigationButtonAsItem","ScreenVariations","ContextMenu","name","parentMenu","hasTypographyPanel","hasColorPanel","hasBorderPanel","hasDimensionsPanel","hasLayoutPanel","hasVariationsPanel"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,uBAAuB,IAAIC,SAApC,QAAqD,uBAArD;AACA,SAASC,UAAT,EAAqBC,MAArB,EAA6BC,KAA7B,EAAoCC,MAApC,QAAkD,kBAAlD;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,SAASC,iBAAT,QAAkC,gBAAlC;AACA,SAASC,gBAAT,QAAiC,eAAjC;AACA,SAASC,qBAAT,QAAsC,oBAAtC;AACA,SAASC,qBAAT,QAAsC,oBAAtC;AACA,SAASC,qBAAT,QAAsC,oBAAtC;AACA,SAASC,sBAAT,QAAuC,qBAAvC;AACA,SAASC,gBAAT,QAAiC,qBAAjC;;AAEA,SAASC,WAAT,OAAkD;AAAA,MAA5B;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,UAAU,GAAG;AAArB,GAA4B;AACjD,QAAMC,kBAAkB,GAAGP,qBAAqB,CAAEK,IAAF,CAAhD;AACA,QAAMG,aAAa,GAAGV,gBAAgB,CAAEO,IAAF,CAAtC;AACA,QAAMI,cAAc,GAAGZ,iBAAiB,CAAEQ,IAAF,CAAxC;AACA,QAAMK,kBAAkB,GAAGX,qBAAqB,CAAEM,IAAF,CAAhD;AACA,QAAMM,cAAc,GAAGD,kBAAvB;AACA,QAAME,kBAAkB,GAAGX,qBAAqB,CAAEI,IAAF,EAAQC,UAAR,CAAhD;AAEA,SACC,cAAC,SAAD,QACGC,kBAAkB,IACnB,cAAC,sBAAD;AACC,IAAA,IAAI,EAAGf,UADR;AAEC,IAAA,IAAI,EAAGc,UAAU,GAAG,aAFrB;AAGC,kBAAaV,EAAE,CAAE,mBAAF;AAHhB,KAKGA,EAAE,CAAE,YAAF,CALL,CAFF,EAUGY,aAAa,IACd,cAAC,sBAAD;AACC,IAAA,IAAI,EAAGd,KADR;AAEC,IAAA,IAAI,EAAGY,UAAU,GAAG,SAFrB;AAGC,kBAAaV,EAAE,CAAE,eAAF;AAHhB,KAKGA,EAAE,CAAE,QAAF,CALL,CAXF,EAmBGa,cAAc,IACf,cAAC,sBAAD;AACC,IAAA,IAAI,EAAGhB,MADR;AAEC,IAAA,IAAI,EAAGa,UAAU,GAAG,SAFrB;AAGC,kBAAaV,EAAE,CAAE,eAAF;AAHhB,KAKGA,EAAE,CAAE,QAAF,CALL,CApBF,EA4BGe,cAAc,IACf,cAAC,sBAAD;AACC,IAAA,IAAI,EAAGhB,MADR;AAEC,IAAA,IAAI,EAAGW,UAAU,GAAG,SAFrB;AAGC,kBAAaV,EAAE,CAAE,eAAF;AAHhB,KAKGA,EAAE,CAAE,QAAF,CALL,CA7BF,EAqCGgB,kBAAkB,IACnB,cAAC,gBAAD;AAAkB,IAAA,IAAI,EAAGP,IAAzB;AAAgC,IAAA,IAAI,EAAGC;AAAvC,IAtCF,CADD;AA2CA;;AAED,eAAeF,WAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\nimport { typography, border, color, layout } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useHasBorderPanel } from './border-panel';\nimport { useHasColorPanel } from './color-utils';\nimport { useHasDimensionsPanel } from './dimensions-panel';\nimport { useHasTypographyPanel } from './typography-panel';\nimport { useHasVariationsPanel } from './variations-panel';\nimport { NavigationButtonAsItem } from './navigation-button';\nimport { ScreenVariations } from './screen-variations';\n\nfunction ContextMenu( { name, parentMenu = '' } ) {\n\tconst hasTypographyPanel = useHasTypographyPanel( name );\n\tconst hasColorPanel = useHasColorPanel( name );\n\tconst hasBorderPanel = useHasBorderPanel( name );\n\tconst hasDimensionsPanel = useHasDimensionsPanel( name );\n\tconst hasLayoutPanel = hasDimensionsPanel;\n\tconst hasVariationsPanel = useHasVariationsPanel( name, parentMenu );\n\n\treturn (\n\t\t<ItemGroup>\n\t\t\t{ hasTypographyPanel && (\n\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\ticon={ typography }\n\t\t\t\t\tpath={ parentMenu + '/typography' }\n\t\t\t\t\taria-label={ __( 'Typography styles' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Typography' ) }\n\t\t\t\t</NavigationButtonAsItem>\n\t\t\t) }\n\t\t\t{ hasColorPanel && (\n\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\ticon={ color }\n\t\t\t\t\tpath={ parentMenu + '/colors' }\n\t\t\t\t\taria-label={ __( 'Colors styles' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Colors' ) }\n\t\t\t\t</NavigationButtonAsItem>\n\t\t\t) }\n\t\t\t{ hasBorderPanel && (\n\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\ticon={ border }\n\t\t\t\t\tpath={ parentMenu + '/border' }\n\t\t\t\t\taria-label={ __( 'Border styles' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Border' ) }\n\t\t\t\t</NavigationButtonAsItem>\n\t\t\t) }\n\t\t\t{ hasLayoutPanel && (\n\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\ticon={ layout }\n\t\t\t\t\tpath={ parentMenu + '/layout' }\n\t\t\t\t\taria-label={ __( 'Layout styles' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Layout' ) }\n\t\t\t\t</NavigationButtonAsItem>\n\t\t\t) }\n\t\t\t{ hasVariationsPanel && (\n\t\t\t\t<ScreenVariations name={ name } path={ parentMenu } />\n\t\t\t) }\n\t\t</ItemGroup>\n\t);\n}\n\nexport default ContextMenu;\n"]}
@@ -33,6 +33,7 @@ function CustomCSSControl() {
33
33
 
34
34
  const originalThemeCustomCSS = themeCSS && customCSS && themeCustomCSS !== customCSS ? themeCSS : undefined;
35
35
  return createElement(Fragment, null, createElement(TextareaControl, {
36
+ __nextHasNoMarginBottom: true,
36
37
  value: (customCSS === null || customCSS === void 0 ? void 0 : customCSS.replace(ignoreThemeCustomCSS, '')) || themeCustomCSS,
37
38
  onChange: value => handleOnChange(value),
38
39
  rows: 15,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/custom-css.js"],"names":["TextareaControl","Panel","PanelBody","__","useStyle","CustomCSSControl","customCSS","setCustomCSS","themeCSS","ignoreThemeCustomCSS","themeCustomCSS","undefined","handleOnChange","value","originalThemeCustomCSS","replace"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,eAAT,EAA0BC,KAA1B,EAAiCC,SAAjC,QAAkD,uBAAlD;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,SAASC,QAAT,QAAyB,SAAzB;;AAEA,SAASC,gBAAT,GAA4B;AAC3B,QAAM,CAAEC,SAAF,EAAaC,YAAb,IAA8BH,QAAQ,CAAE,KAAF,CAA5C;AACA,QAAM,CAAEI,QAAF,IAAeJ,QAAQ,CAAE,KAAF,EAAS,IAAT,EAAe,MAAf,CAA7B;AACA,QAAMK,oBAAoB,GAAG,4BAA7B,CAH2B,CAK3B;AACA;AACA;;AACA,QAAMC,cAAc,GACnB,CAAEJ,SAAF,IAAeE,QAAf,GACI,MAAML,EAAE,CACT,wBADS,CAEN,QAAQK,QAAU,QAAQL,EAAE,CAAE,sBAAF,CAA4B,KAH9D,GAIGQ,SALJ;;AAOA,WAASC,cAAT,CAAyBC,KAAzB,EAAiC;AAChC;AACA;AACA,QAAKL,QAAQ,IAAIK,KAAK,KAAK,EAA3B,EAAgC;AAC/BN,MAAAA,YAAY,CAAEE,oBAAF,CAAZ;AACA;AACA;;AACDF,IAAAA,YAAY,CAAEM,KAAF,CAAZ;AACA;;AAED,QAAMC,sBAAsB,GAC3BN,QAAQ,IAAIF,SAAZ,IAAyBI,cAAc,KAAKJ,SAA5C,GACGE,QADH,GAEGG,SAHJ;AAKA,SACC,8BACC,cAAC,eAAD;AACC,IAAA,KAAK,EACJ,CAAAL,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAES,OAAX,CAAoBN,oBAApB,EAA0C,EAA1C,MACAC,cAHF;AAKC,IAAA,QAAQ,EAAKG,KAAF,IAAaD,cAAc,CAAEC,KAAF,CALvC;AAMC,IAAA,IAAI,EAAG,EANR;AAOC,IAAA,SAAS,EAAC,2CAPX;AAQC,IAAA,UAAU,EAAG,KARd;AASC,IAAA,IAAI,EAAGV,EAAE,CACR,6HADQ;AATV,IADD,EAcGW,sBAAsB,IACvB,cAAC,KAAD,QACC,cAAC,SAAD;AACC,IAAA,KAAK,EAAGX,EAAE,CAAE,2BAAF,CADX;AAEC,IAAA,WAAW,EAAG;AAFf,KAIC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGW,sBADH,CAJD,CADD,CAfF,CADD;AA6BA;;AAED,eAAeT,gBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { TextareaControl, Panel, PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useStyle } from './hooks';\n\nfunction CustomCSSControl() {\n\tconst [ customCSS, setCustomCSS ] = useStyle( 'css' );\n\tconst [ themeCSS ] = useStyle( 'css', null, 'base' );\n\tconst ignoreThemeCustomCSS = '/* IgnoreThemeCustomCSS */';\n\n\t// If there is custom css from theme.json show it in the edit box\n\t// so the user can selectively overwrite it, rather than have the user CSS\n\t// completely overwrite the theme CSS by default.\n\tconst themeCustomCSS =\n\t\t! customCSS && themeCSS\n\t\t\t? `/* ${ __(\n\t\t\t\t\t'Theme Custom CSS start'\n\t\t\t ) } */\\n${ themeCSS }\\n/* ${ __( 'Theme Custom CSS end' ) } */`\n\t\t\t: undefined;\n\n\tfunction handleOnChange( value ) {\n\t\t// If there is theme custom CSS, but the user clears the input box then save the\n\t\t// ignoreThemeCustomCSS string so that the theme custom CSS is not re-applied.\n\t\tif ( themeCSS && value === '' ) {\n\t\t\tsetCustomCSS( ignoreThemeCustomCSS );\n\t\t\treturn;\n\t\t}\n\t\tsetCustomCSS( value );\n\t}\n\n\tconst originalThemeCustomCSS =\n\t\tthemeCSS && customCSS && themeCustomCSS !== customCSS\n\t\t\t? themeCSS\n\t\t\t: undefined;\n\n\treturn (\n\t\t<>\n\t\t\t<TextareaControl\n\t\t\t\tvalue={\n\t\t\t\t\tcustomCSS?.replace( ignoreThemeCustomCSS, '' ) ||\n\t\t\t\t\tthemeCustomCSS\n\t\t\t\t}\n\t\t\t\tonChange={ ( value ) => handleOnChange( value ) }\n\t\t\t\trows={ 15 }\n\t\t\t\tclassName=\"edit-site-global-styles__custom-css-input\"\n\t\t\t\tspellCheck={ false }\n\t\t\t\thelp={ __(\n\t\t\t\t\t\"Enter your custom CSS in the textarea and preview in the editor. Changes won't take effect until you've saved the template.\"\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t{ originalThemeCustomCSS && (\n\t\t\t\t<Panel>\n\t\t\t\t\t<PanelBody\n\t\t\t\t\t\ttitle={ __( 'Original Theme Custom CSS' ) }\n\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t<pre className=\"edit-site-global-styles__custom-css-theme-css\">\n\t\t\t\t\t\t\t{ originalThemeCustomCSS }\n\t\t\t\t\t\t</pre>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</Panel>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default CustomCSSControl;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/custom-css.js"],"names":["TextareaControl","Panel","PanelBody","__","useStyle","CustomCSSControl","customCSS","setCustomCSS","themeCSS","ignoreThemeCustomCSS","themeCustomCSS","undefined","handleOnChange","value","originalThemeCustomCSS","replace"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,eAAT,EAA0BC,KAA1B,EAAiCC,SAAjC,QAAkD,uBAAlD;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,SAASC,QAAT,QAAyB,SAAzB;;AAEA,SAASC,gBAAT,GAA4B;AAC3B,QAAM,CAAEC,SAAF,EAAaC,YAAb,IAA8BH,QAAQ,CAAE,KAAF,CAA5C;AACA,QAAM,CAAEI,QAAF,IAAeJ,QAAQ,CAAE,KAAF,EAAS,IAAT,EAAe,MAAf,CAA7B;AACA,QAAMK,oBAAoB,GAAG,4BAA7B,CAH2B,CAK3B;AACA;AACA;;AACA,QAAMC,cAAc,GACnB,CAAEJ,SAAF,IAAeE,QAAf,GACI,MAAML,EAAE,CACT,wBADS,CAEN,QAAQK,QAAU,QAAQL,EAAE,CAAE,sBAAF,CAA4B,KAH9D,GAIGQ,SALJ;;AAOA,WAASC,cAAT,CAAyBC,KAAzB,EAAiC;AAChC;AACA;AACA,QAAKL,QAAQ,IAAIK,KAAK,KAAK,EAA3B,EAAgC;AAC/BN,MAAAA,YAAY,CAAEE,oBAAF,CAAZ;AACA;AACA;;AACDF,IAAAA,YAAY,CAAEM,KAAF,CAAZ;AACA;;AAED,QAAMC,sBAAsB,GAC3BN,QAAQ,IAAIF,SAAZ,IAAyBI,cAAc,KAAKJ,SAA5C,GACGE,QADH,GAEGG,SAHJ;AAKA,SACC,8BACC,cAAC,eAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EACJ,CAAAL,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAES,OAAX,CAAoBN,oBAApB,EAA0C,EAA1C,MACAC,cAJF;AAMC,IAAA,QAAQ,EAAKG,KAAF,IAAaD,cAAc,CAAEC,KAAF,CANvC;AAOC,IAAA,IAAI,EAAG,EAPR;AAQC,IAAA,SAAS,EAAC,2CARX;AASC,IAAA,UAAU,EAAG,KATd;AAUC,IAAA,IAAI,EAAGV,EAAE,CACR,6HADQ;AAVV,IADD,EAeGW,sBAAsB,IACvB,cAAC,KAAD,QACC,cAAC,SAAD;AACC,IAAA,KAAK,EAAGX,EAAE,CAAE,2BAAF,CADX;AAEC,IAAA,WAAW,EAAG;AAFf,KAIC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGW,sBADH,CAJD,CADD,CAhBF,CADD;AA8BA;;AAED,eAAeT,gBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { TextareaControl, Panel, PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useStyle } from './hooks';\n\nfunction CustomCSSControl() {\n\tconst [ customCSS, setCustomCSS ] = useStyle( 'css' );\n\tconst [ themeCSS ] = useStyle( 'css', null, 'base' );\n\tconst ignoreThemeCustomCSS = '/* IgnoreThemeCustomCSS */';\n\n\t// If there is custom css from theme.json show it in the edit box\n\t// so the user can selectively overwrite it, rather than have the user CSS\n\t// completely overwrite the theme CSS by default.\n\tconst themeCustomCSS =\n\t\t! customCSS && themeCSS\n\t\t\t? `/* ${ __(\n\t\t\t\t\t'Theme Custom CSS start'\n\t\t\t ) } */\\n${ themeCSS }\\n/* ${ __( 'Theme Custom CSS end' ) } */`\n\t\t\t: undefined;\n\n\tfunction handleOnChange( value ) {\n\t\t// If there is theme custom CSS, but the user clears the input box then save the\n\t\t// ignoreThemeCustomCSS string so that the theme custom CSS is not re-applied.\n\t\tif ( themeCSS && value === '' ) {\n\t\t\tsetCustomCSS( ignoreThemeCustomCSS );\n\t\t\treturn;\n\t\t}\n\t\tsetCustomCSS( value );\n\t}\n\n\tconst originalThemeCustomCSS =\n\t\tthemeCSS && customCSS && themeCustomCSS !== customCSS\n\t\t\t? themeCSS\n\t\t\t: undefined;\n\n\treturn (\n\t\t<>\n\t\t\t<TextareaControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tvalue={\n\t\t\t\t\tcustomCSS?.replace( ignoreThemeCustomCSS, '' ) ||\n\t\t\t\t\tthemeCustomCSS\n\t\t\t\t}\n\t\t\t\tonChange={ ( value ) => handleOnChange( value ) }\n\t\t\t\trows={ 15 }\n\t\t\t\tclassName=\"edit-site-global-styles__custom-css-input\"\n\t\t\t\tspellCheck={ false }\n\t\t\t\thelp={ __(\n\t\t\t\t\t\"Enter your custom CSS in the textarea and preview in the editor. Changes won't take effect until you've saved the template.\"\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t{ originalThemeCustomCSS && (\n\t\t\t\t<Panel>\n\t\t\t\t\t<PanelBody\n\t\t\t\t\t\ttitle={ __( 'Original Theme Custom CSS' ) }\n\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t<pre className=\"edit-site-global-styles__custom-css-theme-css\">\n\t\t\t\t\t\t\t{ originalThemeCustomCSS }\n\t\t\t\t\t\t</pre>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</Panel>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default CustomCSSControl;\n"]}
@@ -163,7 +163,8 @@ function useWideSizeProps(name) {
163
163
 
164
164
 
165
165
  function usePaddingProps(name) {
166
- const [rawPadding, setRawPadding] = useStyle('spacing.padding', name);
166
+ let variationPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
167
+ const [rawPadding, setRawPadding] = useStyle(variationPath + 'spacing.padding', name);
167
168
  const paddingValues = splitStyleValue(rawPadding);
168
169
  const paddingSides = useCustomSides(name, 'padding');
169
170
  const isAxialPadding = paddingSides && paddingSides.some(side => AXIAL_SIDES.includes(side));
@@ -175,7 +176,7 @@ function usePaddingProps(name) {
175
176
 
176
177
  const resetPaddingValue = () => setPaddingValues({});
177
178
 
178
- const [userSetPaddingValue] = useStyle('spacing.padding', name, 'user'); // The `hasPaddingValue` check does not need a parsed value, as `userSetPaddingValue` will be `undefined` if not set.
179
+ const [userSetPaddingValue] = useStyle(variationPath + 'spacing.padding', name, 'user'); // The `hasPaddingValue` check does not need a parsed value, as `userSetPaddingValue` will be `undefined` if not set.
179
180
 
180
181
  const hasPaddingValue = () => !!userSetPaddingValue;
181
182
 
@@ -191,7 +192,8 @@ function usePaddingProps(name) {
191
192
 
192
193
 
193
194
  function useMarginProps(name) {
194
- const [rawMargin, setRawMargin] = useStyle('spacing.margin', name);
195
+ let variationPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
196
+ const [rawMargin, setRawMargin] = useStyle(variationPath + 'spacing.margin', name);
195
197
  const marginValues = splitStyleValue(rawMargin);
196
198
  const marginSides = useCustomSides(name, 'margin');
197
199
  const isAxialMargin = marginSides && marginSides.some(side => AXIAL_SIDES.includes(side));
@@ -217,14 +219,15 @@ function useMarginProps(name) {
217
219
 
218
220
 
219
221
  function useBlockGapProps(name) {
220
- const [gapValue, setGapValue] = useStyle('spacing.blockGap', name);
222
+ let variationPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
223
+ const [gapValue, setGapValue] = useStyle(variationPath + 'spacing.blockGap', name);
221
224
  const gapValues = splitGapValue(gapValue);
222
225
  const gapSides = useCustomSides(name, 'blockGap');
223
226
  const isAxialGap = gapSides && gapSides.some(side => AXIAL_SIDES.includes(side));
224
227
 
225
228
  const resetGapValue = () => setGapValue(undefined);
226
229
 
227
- const [userSetGapValue] = useStyle('spacing.blockGap', name, 'user');
230
+ const [userSetGapValue] = useStyle(variationPath + 'spacing.blockGap', name, 'user');
228
231
 
229
232
  const hasGapValue = () => !!userSetGapValue;
230
233
 
@@ -258,7 +261,8 @@ function useBlockGapProps(name) {
258
261
 
259
262
 
260
263
  function useMinHeightProps(name) {
261
- const [minHeightValue, setMinHeightValue] = useStyle('dimensions.minHeight', name);
264
+ let variationPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
265
+ const [minHeightValue, setMinHeightValue] = useStyle(variationPath + 'dimensions.minHeight', name);
262
266
 
263
267
  const resetMinHeightValue = () => setMinHeightValue(undefined);
264
268
 
@@ -274,7 +278,8 @@ function useMinHeightProps(name) {
274
278
 
275
279
  export default function DimensionsPanel(_ref) {
276
280
  let {
277
- name
281
+ name,
282
+ variationPath = ''
278
283
  } = _ref;
279
284
  const showContentSizeControl = useHasContentSize(name);
280
285
  const showWideSizeControl = useHasWideSize(name);
@@ -308,7 +313,7 @@ export default function DimensionsPanel(_ref) {
308
313
  setPaddingValues,
309
314
  resetPaddingValue,
310
315
  hasPaddingValue
311
- } = usePaddingProps(name); // Props for managing `spacing.margin`.
316
+ } = usePaddingProps(name, variationPath); // Props for managing `spacing.margin`.
312
317
 
313
318
  const {
314
319
  marginValues,
@@ -317,7 +322,7 @@ export default function DimensionsPanel(_ref) {
317
322
  setMarginValues,
318
323
  resetMarginValue,
319
324
  hasMarginValue
320
- } = useMarginProps(name); // Props for managing `spacing.blockGap`.
325
+ } = useMarginProps(name, variationPath); // Props for managing `spacing.blockGap`.
321
326
 
322
327
  const {
323
328
  gapValue,
@@ -328,14 +333,14 @@ export default function DimensionsPanel(_ref) {
328
333
  setGapValues,
329
334
  resetGapValue,
330
335
  hasGapValue
331
- } = useBlockGapProps(name); // Props for managing `dimensions.minHeight`.
336
+ } = useBlockGapProps(name, variationPath); // Props for managing `dimensions.minHeight`.
332
337
 
333
338
  const {
334
339
  minHeightValue,
335
340
  setMinHeightValue,
336
341
  resetMinHeightValue,
337
342
  hasMinHeightValue
338
- } = useMinHeightProps(name);
343
+ } = useMinHeightProps(name, variationPath);
339
344
 
340
345
  const resetAll = () => {
341
346
  resetPaddingValue();
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/dimensions-panel.js"],"names":["classnames","__","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalBoxControl","BoxControl","__experimentalHStack","HStack","__experimentalUnitControl","UnitControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalView","View","__experimentalUseCustomSides","useCustomSides","__experimentalHeightControl","HeightControl","__experimentalSpacingSizesControl","SpacingSizesControl","Icon","positionCenter","stretchWide","getSupportedGlobalStylesPanels","useSetting","useStyle","AXIAL_SIDES","useHasDimensionsPanel","name","hasContentSize","useHasContentSize","hasWideSize","useHasWideSize","hasPadding","useHasPadding","hasMargin","useHasMargin","hasGap","useHasGap","hasMinHeight","useHasMinHeight","supports","settings","includes","useHasSpacingPresets","length","filterValuesBySides","values","sides","filteredValues","forEach","side","top","bottom","left","right","splitStyleValue","value","splitGapValue","useContentSizeProps","contentSizeValue","setContentSizeValue","userSetContentSizeValue","hasUserSetContentSizeValue","resetContentSizeValue","useWideSizeProps","wideSizeValue","setWideSizeValue","userSetWideSizeValue","hasUserSetWideSizeValue","resetWideSizeValue","usePaddingProps","rawPadding","setRawPadding","paddingValues","paddingSides","isAxialPadding","some","setPaddingValues","newPaddingValues","padding","resetPaddingValue","userSetPaddingValue","hasPaddingValue","useMarginProps","rawMargin","setRawMargin","marginValues","marginSides","isAxialMargin","setMarginValues","newMarginValues","margin","resetMarginValue","hasMarginValue","Object","keys","useBlockGapProps","gapValue","setGapValue","gapValues","gapSides","isAxialGap","resetGapValue","undefined","userSetGapValue","hasGapValue","setGapValues","nextBoxGapValue","hasOwnProperty","useMinHeightProps","minHeightValue","setMinHeightValue","resetMinHeightValue","hasMinHeightValue","DimensionsPanel","showContentSizeControl","showWideSizeControl","showPaddingControl","showMarginControl","showGapControl","showMinHeightControl","showSpacingPresetsControl","units","availableUnits","resetAll","nextContentSize","nextWideSize"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalBoxControl as BoxControl,\n\t__experimentalHStack as HStack,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalView as View,\n} from '@wordpress/components';\nimport {\n\t__experimentalUseCustomSides as useCustomSides,\n\t__experimentalHeightControl as HeightControl,\n\t__experimentalSpacingSizesControl as SpacingSizesControl,\n} from '@wordpress/block-editor';\nimport { Icon, positionCenter, stretchWide } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getSupportedGlobalStylesPanels, useSetting, useStyle } from './hooks';\n\nconst AXIAL_SIDES = [ 'horizontal', 'vertical' ];\n\nexport function useHasDimensionsPanel( name ) {\n\tconst hasContentSize = useHasContentSize( name );\n\tconst hasWideSize = useHasWideSize( name );\n\tconst hasPadding = useHasPadding( name );\n\tconst hasMargin = useHasMargin( name );\n\tconst hasGap = useHasGap( name );\n\tconst hasMinHeight = useHasMinHeight( name );\n\n\treturn (\n\t\thasContentSize ||\n\t\thasWideSize ||\n\t\thasPadding ||\n\t\thasMargin ||\n\t\thasGap ||\n\t\thasMinHeight\n\t);\n}\n\nfunction useHasContentSize( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'layout.contentSize', name );\n\n\treturn settings && supports.includes( 'contentSize' );\n}\n\nfunction useHasWideSize( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'layout.wideSize', name );\n\n\treturn settings && supports.includes( 'wideSize' );\n}\n\nfunction useHasPadding( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'spacing.padding', name );\n\n\treturn settings && supports.includes( 'padding' );\n}\n\nfunction useHasMargin( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'spacing.margin', name );\n\n\treturn settings && supports.includes( 'margin' );\n}\n\nfunction useHasGap( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'spacing.blockGap', name );\n\n\treturn settings && supports.includes( 'blockGap' );\n}\n\nfunction useHasMinHeight( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'dimensions.minHeight', name );\n\n\treturn settings && supports.includes( 'minHeight' );\n}\n\nfunction useHasSpacingPresets() {\n\tconst [ settings ] = useSetting( 'spacing.spacingSizes' );\n\n\treturn settings && settings.length > 0;\n}\n\nfunction filterValuesBySides( values, sides ) {\n\tif ( ! sides ) {\n\t\t// If no custom side configuration all sides are opted into by default.\n\t\treturn values;\n\t}\n\n\t// Only include sides opted into within filtered values.\n\tconst filteredValues = {};\n\tsides.forEach( ( side ) => {\n\t\tif ( side === 'vertical' ) {\n\t\t\tfilteredValues.top = values.top;\n\t\t\tfilteredValues.bottom = values.bottom;\n\t\t}\n\t\tif ( side === 'horizontal' ) {\n\t\t\tfilteredValues.left = values.left;\n\t\t\tfilteredValues.right = values.right;\n\t\t}\n\t\tfilteredValues[ side ] = values[ side ];\n\t} );\n\n\treturn filteredValues;\n}\n\nfunction splitStyleValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// Convert to value for individual sides for BoxControl.\n\t\treturn {\n\t\t\ttop: value,\n\t\t\tright: value,\n\t\t\tbottom: value,\n\t\t\tleft: value,\n\t\t};\n\t}\n\n\treturn value;\n}\n\nfunction splitGapValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// If the value is a string, treat it as a single side (top) for the spacing controls.\n\t\treturn {\n\t\t\ttop: value,\n\t\t};\n\t}\n\n\tif ( value ) {\n\t\treturn {\n\t\t\t...value,\n\t\t\tright: value?.left,\n\t\t\tbottom: value?.top,\n\t\t};\n\t}\n\n\treturn value;\n}\n\n// Props for managing `layout.contentSize`.\nfunction useContentSizeProps( name ) {\n\tconst [ contentSizeValue, setContentSizeValue ] = useSetting(\n\t\t'layout.contentSize',\n\t\tname\n\t);\n\tconst [ userSetContentSizeValue ] = useSetting(\n\t\t'layout.contentSize',\n\t\tname,\n\t\t'user'\n\t);\n\tconst hasUserSetContentSizeValue = () => !! userSetContentSizeValue;\n\tconst resetContentSizeValue = () => setContentSizeValue( '' );\n\treturn {\n\t\tcontentSizeValue,\n\t\tsetContentSizeValue,\n\t\thasUserSetContentSizeValue,\n\t\tresetContentSizeValue,\n\t};\n}\n\n// Props for managing `layout.wideSize`.\nfunction useWideSizeProps( name ) {\n\tconst [ wideSizeValue, setWideSizeValue ] = useSetting(\n\t\t'layout.wideSize',\n\t\tname\n\t);\n\tconst [ userSetWideSizeValue ] = useSetting(\n\t\t'layout.wideSize',\n\t\tname,\n\t\t'user'\n\t);\n\tconst hasUserSetWideSizeValue = () => !! userSetWideSizeValue;\n\tconst resetWideSizeValue = () => setWideSizeValue( '' );\n\treturn {\n\t\twideSizeValue,\n\t\tsetWideSizeValue,\n\t\thasUserSetWideSizeValue,\n\t\tresetWideSizeValue,\n\t};\n}\n\n// Props for managing `spacing.padding`.\nfunction usePaddingProps( name ) {\n\tconst [ rawPadding, setRawPadding ] = useStyle( 'spacing.padding', name );\n\tconst paddingValues = splitStyleValue( rawPadding );\n\tconst paddingSides = useCustomSides( name, 'padding' );\n\tconst isAxialPadding =\n\t\tpaddingSides &&\n\t\tpaddingSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\n\tconst setPaddingValues = ( newPaddingValues ) => {\n\t\tconst padding = filterValuesBySides( newPaddingValues, paddingSides );\n\t\tsetRawPadding( padding );\n\t};\n\tconst resetPaddingValue = () => setPaddingValues( {} );\n\tconst [ userSetPaddingValue ] = useStyle( 'spacing.padding', name, 'user' );\n\t// The `hasPaddingValue` check does not need a parsed value, as `userSetPaddingValue` will be `undefined` if not set.\n\tconst hasPaddingValue = () => !! userSetPaddingValue;\n\n\treturn {\n\t\tpaddingValues,\n\t\tpaddingSides,\n\t\tisAxialPadding,\n\t\tsetPaddingValues,\n\t\tresetPaddingValue,\n\t\thasPaddingValue,\n\t};\n}\n\n// Props for managing `spacing.margin`.\nfunction useMarginProps( name ) {\n\tconst [ rawMargin, setRawMargin ] = useStyle( 'spacing.margin', name );\n\tconst marginValues = splitStyleValue( rawMargin );\n\tconst marginSides = useCustomSides( name, 'margin' );\n\tconst isAxialMargin =\n\t\tmarginSides &&\n\t\tmarginSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\n\tconst setMarginValues = ( newMarginValues ) => {\n\t\tconst margin = filterValuesBySides( newMarginValues, marginSides );\n\t\tsetRawMargin( margin );\n\t};\n\tconst resetMarginValue = () => setMarginValues( {} );\n\tconst hasMarginValue = () =>\n\t\t!! marginValues && Object.keys( marginValues ).length;\n\n\treturn {\n\t\tmarginValues,\n\t\tmarginSides,\n\t\tisAxialMargin,\n\t\tsetMarginValues,\n\t\tresetMarginValue,\n\t\thasMarginValue,\n\t};\n}\n\n// Props for managing `spacing.blockGap`.\nfunction useBlockGapProps( name ) {\n\tconst [ gapValue, setGapValue ] = useStyle( 'spacing.blockGap', name );\n\tconst gapValues = splitGapValue( gapValue );\n\tconst gapSides = useCustomSides( name, 'blockGap' );\n\tconst isAxialGap =\n\t\tgapSides && gapSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst resetGapValue = () => setGapValue( undefined );\n\tconst [ userSetGapValue ] = useStyle( 'spacing.blockGap', name, 'user' );\n\tconst hasGapValue = () => !! userSetGapValue;\n\tconst setGapValues = ( nextBoxGapValue ) => {\n\t\tif ( ! nextBoxGapValue ) {\n\t\t\tsetGapValue( null );\n\t\t}\n\t\t// If axial gap is not enabled, treat the 'top' value as the shorthand gap value.\n\t\tif ( ! isAxialGap && nextBoxGapValue?.hasOwnProperty( 'top' ) ) {\n\t\t\tsetGapValue( nextBoxGapValue.top );\n\t\t} else {\n\t\t\tsetGapValue( {\n\t\t\t\ttop: nextBoxGapValue?.top,\n\t\t\t\tleft: nextBoxGapValue?.left,\n\t\t\t} );\n\t\t}\n\t};\n\treturn {\n\t\tgapValue,\n\t\tgapValues,\n\t\tgapSides,\n\t\tisAxialGap,\n\t\tsetGapValue,\n\t\tsetGapValues,\n\t\tresetGapValue,\n\t\thasGapValue,\n\t};\n}\n\n// Props for managing `dimensions.minHeight`.\nfunction useMinHeightProps( name ) {\n\tconst [ minHeightValue, setMinHeightValue ] = useStyle(\n\t\t'dimensions.minHeight',\n\t\tname\n\t);\n\tconst resetMinHeightValue = () => setMinHeightValue( undefined );\n\tconst hasMinHeightValue = () => !! minHeightValue;\n\treturn {\n\t\tminHeightValue,\n\t\tsetMinHeightValue,\n\t\tresetMinHeightValue,\n\t\thasMinHeightValue,\n\t};\n}\n\nexport default function DimensionsPanel( { name } ) {\n\tconst showContentSizeControl = useHasContentSize( name );\n\tconst showWideSizeControl = useHasWideSize( name );\n\tconst showPaddingControl = useHasPadding( name );\n\tconst showMarginControl = useHasMargin( name );\n\tconst showGapControl = useHasGap( name );\n\tconst showMinHeightControl = useHasMinHeight( name );\n\tconst showSpacingPresetsControl = useHasSpacingPresets();\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units', name )[ 0 ] || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t],\n\t} );\n\n\t// Props for managing `layout.contentSize`.\n\tconst {\n\t\tcontentSizeValue,\n\t\tsetContentSizeValue,\n\t\thasUserSetContentSizeValue,\n\t\tresetContentSizeValue,\n\t} = useContentSizeProps( name );\n\n\t// Props for managing `layout.wideSize`.\n\tconst {\n\t\twideSizeValue,\n\t\tsetWideSizeValue,\n\t\thasUserSetWideSizeValue,\n\t\tresetWideSizeValue,\n\t} = useWideSizeProps( name );\n\n\t// Props for managing `spacing.padding`.\n\tconst {\n\t\tpaddingValues,\n\t\tpaddingSides,\n\t\tisAxialPadding,\n\t\tsetPaddingValues,\n\t\tresetPaddingValue,\n\t\thasPaddingValue,\n\t} = usePaddingProps( name );\n\n\t// Props for managing `spacing.margin`.\n\tconst {\n\t\tmarginValues,\n\t\tmarginSides,\n\t\tisAxialMargin,\n\t\tsetMarginValues,\n\t\tresetMarginValue,\n\t\thasMarginValue,\n\t} = useMarginProps( name );\n\n\t// Props for managing `spacing.blockGap`.\n\tconst {\n\t\tgapValue,\n\t\tgapValues,\n\t\tgapSides,\n\t\tisAxialGap,\n\t\tsetGapValue,\n\t\tsetGapValues,\n\t\tresetGapValue,\n\t\thasGapValue,\n\t} = useBlockGapProps( name );\n\n\t// Props for managing `dimensions.minHeight`.\n\tconst {\n\t\tminHeightValue,\n\t\tsetMinHeightValue,\n\t\tresetMinHeightValue,\n\t\thasMinHeightValue,\n\t} = useMinHeightProps( name );\n\n\tconst resetAll = () => {\n\t\tresetPaddingValue();\n\t\tresetMarginValue();\n\t\tresetGapValue();\n\t\tresetContentSizeValue();\n\t\tresetWideSizeValue();\n\t};\n\n\treturn (\n\t\t<ToolsPanel label={ __( 'Dimensions' ) } resetAll={ resetAll }>\n\t\t\t{ ( showContentSizeControl || showWideSizeControl ) && (\n\t\t\t\t<span className=\"span-columns\">\n\t\t\t\t\t{ __( 'Set the width of the main content area.' ) }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t\t{ showContentSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Content size' ) }\n\t\t\t\t\thasValue={ hasUserSetContentSizeValue }\n\t\t\t\t\tonDeselect={ resetContentSizeValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Content' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ contentSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextContentSize ) => {\n\t\t\t\t\t\t\t\tsetContentSizeValue( nextContentSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ positionCenter } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showWideSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Wide size' ) }\n\t\t\t\t\thasValue={ hasUserSetWideSizeValue }\n\t\t\t\t\tonDeselect={ resetWideSizeValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Wide' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ wideSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextWideSize ) => {\n\t\t\t\t\t\t\t\tsetWideSizeValue( nextWideSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showPaddingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasPaddingValue }\n\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\tonDeselect={ resetPaddingValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialPadding }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialPadding }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMarginControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMarginValue }\n\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\tonDeselect={ resetMarginValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialMargin }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialMargin }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showGapControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasGapValue }\n\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\tonDeselect={ resetGapValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl &&\n\t\t\t\t\t\t( isAxialGap ? (\n\t\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tsides={ gapSides }\n\t\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\t\tsplitOnAxis={ isAxialGap }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValue }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tvalue={ gapValue }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\tsides={ isAxialGap ? gapSides : [ 'top' ] } // Use 'top' as the shorthand property in non-axial configurations.\n\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialGap }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMinHeightControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMinHeightValue }\n\t\t\t\t\tlabel={ __( 'Min. height' ) }\n\t\t\t\t\tonDeselect={ resetMinHeightValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<HeightControl\n\t\t\t\t\t\tlabel={ __( 'Min. height' ) }\n\t\t\t\t\t\tvalue={ minHeightValue }\n\t\t\t\t\t\tonChange={ setMinHeightValue }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</ToolsPanel>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/dimensions-panel.js"],"names":["classnames","__","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalBoxControl","BoxControl","__experimentalHStack","HStack","__experimentalUnitControl","UnitControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalView","View","__experimentalUseCustomSides","useCustomSides","__experimentalHeightControl","HeightControl","__experimentalSpacingSizesControl","SpacingSizesControl","Icon","positionCenter","stretchWide","getSupportedGlobalStylesPanels","useSetting","useStyle","AXIAL_SIDES","useHasDimensionsPanel","name","hasContentSize","useHasContentSize","hasWideSize","useHasWideSize","hasPadding","useHasPadding","hasMargin","useHasMargin","hasGap","useHasGap","hasMinHeight","useHasMinHeight","supports","settings","includes","useHasSpacingPresets","length","filterValuesBySides","values","sides","filteredValues","forEach","side","top","bottom","left","right","splitStyleValue","value","splitGapValue","useContentSizeProps","contentSizeValue","setContentSizeValue","userSetContentSizeValue","hasUserSetContentSizeValue","resetContentSizeValue","useWideSizeProps","wideSizeValue","setWideSizeValue","userSetWideSizeValue","hasUserSetWideSizeValue","resetWideSizeValue","usePaddingProps","variationPath","rawPadding","setRawPadding","paddingValues","paddingSides","isAxialPadding","some","setPaddingValues","newPaddingValues","padding","resetPaddingValue","userSetPaddingValue","hasPaddingValue","useMarginProps","rawMargin","setRawMargin","marginValues","marginSides","isAxialMargin","setMarginValues","newMarginValues","margin","resetMarginValue","hasMarginValue","Object","keys","useBlockGapProps","gapValue","setGapValue","gapValues","gapSides","isAxialGap","resetGapValue","undefined","userSetGapValue","hasGapValue","setGapValues","nextBoxGapValue","hasOwnProperty","useMinHeightProps","minHeightValue","setMinHeightValue","resetMinHeightValue","hasMinHeightValue","DimensionsPanel","showContentSizeControl","showWideSizeControl","showPaddingControl","showMarginControl","showGapControl","showMinHeightControl","showSpacingPresetsControl","units","availableUnits","resetAll","nextContentSize","nextWideSize"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalBoxControl as BoxControl,\n\t__experimentalHStack as HStack,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalView as View,\n} from '@wordpress/components';\nimport {\n\t__experimentalUseCustomSides as useCustomSides,\n\t__experimentalHeightControl as HeightControl,\n\t__experimentalSpacingSizesControl as SpacingSizesControl,\n} from '@wordpress/block-editor';\nimport { Icon, positionCenter, stretchWide } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getSupportedGlobalStylesPanels, useSetting, useStyle } from './hooks';\n\nconst AXIAL_SIDES = [ 'horizontal', 'vertical' ];\n\nexport function useHasDimensionsPanel( name ) {\n\tconst hasContentSize = useHasContentSize( name );\n\tconst hasWideSize = useHasWideSize( name );\n\tconst hasPadding = useHasPadding( name );\n\tconst hasMargin = useHasMargin( name );\n\tconst hasGap = useHasGap( name );\n\tconst hasMinHeight = useHasMinHeight( name );\n\n\treturn (\n\t\thasContentSize ||\n\t\thasWideSize ||\n\t\thasPadding ||\n\t\thasMargin ||\n\t\thasGap ||\n\t\thasMinHeight\n\t);\n}\n\nfunction useHasContentSize( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'layout.contentSize', name );\n\n\treturn settings && supports.includes( 'contentSize' );\n}\n\nfunction useHasWideSize( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'layout.wideSize', name );\n\n\treturn settings && supports.includes( 'wideSize' );\n}\n\nfunction useHasPadding( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'spacing.padding', name );\n\n\treturn settings && supports.includes( 'padding' );\n}\n\nfunction useHasMargin( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'spacing.margin', name );\n\n\treturn settings && supports.includes( 'margin' );\n}\n\nfunction useHasGap( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'spacing.blockGap', name );\n\n\treturn settings && supports.includes( 'blockGap' );\n}\n\nfunction useHasMinHeight( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'dimensions.minHeight', name );\n\n\treturn settings && supports.includes( 'minHeight' );\n}\n\nfunction useHasSpacingPresets() {\n\tconst [ settings ] = useSetting( 'spacing.spacingSizes' );\n\n\treturn settings && settings.length > 0;\n}\n\nfunction filterValuesBySides( values, sides ) {\n\tif ( ! sides ) {\n\t\t// If no custom side configuration all sides are opted into by default.\n\t\treturn values;\n\t}\n\n\t// Only include sides opted into within filtered values.\n\tconst filteredValues = {};\n\tsides.forEach( ( side ) => {\n\t\tif ( side === 'vertical' ) {\n\t\t\tfilteredValues.top = values.top;\n\t\t\tfilteredValues.bottom = values.bottom;\n\t\t}\n\t\tif ( side === 'horizontal' ) {\n\t\t\tfilteredValues.left = values.left;\n\t\t\tfilteredValues.right = values.right;\n\t\t}\n\t\tfilteredValues[ side ] = values[ side ];\n\t} );\n\n\treturn filteredValues;\n}\n\nfunction splitStyleValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// Convert to value for individual sides for BoxControl.\n\t\treturn {\n\t\t\ttop: value,\n\t\t\tright: value,\n\t\t\tbottom: value,\n\t\t\tleft: value,\n\t\t};\n\t}\n\n\treturn value;\n}\n\nfunction splitGapValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// If the value is a string, treat it as a single side (top) for the spacing controls.\n\t\treturn {\n\t\t\ttop: value,\n\t\t};\n\t}\n\n\tif ( value ) {\n\t\treturn {\n\t\t\t...value,\n\t\t\tright: value?.left,\n\t\t\tbottom: value?.top,\n\t\t};\n\t}\n\n\treturn value;\n}\n\n// Props for managing `layout.contentSize`.\nfunction useContentSizeProps( name ) {\n\tconst [ contentSizeValue, setContentSizeValue ] = useSetting(\n\t\t'layout.contentSize',\n\t\tname\n\t);\n\tconst [ userSetContentSizeValue ] = useSetting(\n\t\t'layout.contentSize',\n\t\tname,\n\t\t'user'\n\t);\n\tconst hasUserSetContentSizeValue = () => !! userSetContentSizeValue;\n\tconst resetContentSizeValue = () => setContentSizeValue( '' );\n\treturn {\n\t\tcontentSizeValue,\n\t\tsetContentSizeValue,\n\t\thasUserSetContentSizeValue,\n\t\tresetContentSizeValue,\n\t};\n}\n\n// Props for managing `layout.wideSize`.\nfunction useWideSizeProps( name ) {\n\tconst [ wideSizeValue, setWideSizeValue ] = useSetting(\n\t\t'layout.wideSize',\n\t\tname\n\t);\n\tconst [ userSetWideSizeValue ] = useSetting(\n\t\t'layout.wideSize',\n\t\tname,\n\t\t'user'\n\t);\n\tconst hasUserSetWideSizeValue = () => !! userSetWideSizeValue;\n\tconst resetWideSizeValue = () => setWideSizeValue( '' );\n\treturn {\n\t\twideSizeValue,\n\t\tsetWideSizeValue,\n\t\thasUserSetWideSizeValue,\n\t\tresetWideSizeValue,\n\t};\n}\n\n// Props for managing `spacing.padding`.\nfunction usePaddingProps( name, variationPath = '' ) {\n\tconst [ rawPadding, setRawPadding ] = useStyle(\n\t\tvariationPath + 'spacing.padding',\n\t\tname\n\t);\n\tconst paddingValues = splitStyleValue( rawPadding );\n\tconst paddingSides = useCustomSides( name, 'padding' );\n\tconst isAxialPadding =\n\t\tpaddingSides &&\n\t\tpaddingSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\n\tconst setPaddingValues = ( newPaddingValues ) => {\n\t\tconst padding = filterValuesBySides( newPaddingValues, paddingSides );\n\t\tsetRawPadding( padding );\n\t};\n\tconst resetPaddingValue = () => setPaddingValues( {} );\n\tconst [ userSetPaddingValue ] = useStyle(\n\t\tvariationPath + 'spacing.padding',\n\t\tname,\n\t\t'user'\n\t);\n\t// The `hasPaddingValue` check does not need a parsed value, as `userSetPaddingValue` will be `undefined` if not set.\n\tconst hasPaddingValue = () => !! userSetPaddingValue;\n\n\treturn {\n\t\tpaddingValues,\n\t\tpaddingSides,\n\t\tisAxialPadding,\n\t\tsetPaddingValues,\n\t\tresetPaddingValue,\n\t\thasPaddingValue,\n\t};\n}\n\n// Props for managing `spacing.margin`.\nfunction useMarginProps( name, variationPath = '' ) {\n\tconst [ rawMargin, setRawMargin ] = useStyle(\n\t\tvariationPath + 'spacing.margin',\n\t\tname\n\t);\n\tconst marginValues = splitStyleValue( rawMargin );\n\tconst marginSides = useCustomSides( name, 'margin' );\n\tconst isAxialMargin =\n\t\tmarginSides &&\n\t\tmarginSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\n\tconst setMarginValues = ( newMarginValues ) => {\n\t\tconst margin = filterValuesBySides( newMarginValues, marginSides );\n\t\tsetRawMargin( margin );\n\t};\n\tconst resetMarginValue = () => setMarginValues( {} );\n\tconst hasMarginValue = () =>\n\t\t!! marginValues && Object.keys( marginValues ).length;\n\n\treturn {\n\t\tmarginValues,\n\t\tmarginSides,\n\t\tisAxialMargin,\n\t\tsetMarginValues,\n\t\tresetMarginValue,\n\t\thasMarginValue,\n\t};\n}\n\n// Props for managing `spacing.blockGap`.\nfunction useBlockGapProps( name, variationPath = '' ) {\n\tconst [ gapValue, setGapValue ] = useStyle(\n\t\tvariationPath + 'spacing.blockGap',\n\t\tname\n\t);\n\tconst gapValues = splitGapValue( gapValue );\n\tconst gapSides = useCustomSides( name, 'blockGap' );\n\tconst isAxialGap =\n\t\tgapSides && gapSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst resetGapValue = () => setGapValue( undefined );\n\tconst [ userSetGapValue ] = useStyle(\n\t\tvariationPath + 'spacing.blockGap',\n\t\tname,\n\t\t'user'\n\t);\n\tconst hasGapValue = () => !! userSetGapValue;\n\tconst setGapValues = ( nextBoxGapValue ) => {\n\t\tif ( ! nextBoxGapValue ) {\n\t\t\tsetGapValue( null );\n\t\t}\n\t\t// If axial gap is not enabled, treat the 'top' value as the shorthand gap value.\n\t\tif ( ! isAxialGap && nextBoxGapValue?.hasOwnProperty( 'top' ) ) {\n\t\t\tsetGapValue( nextBoxGapValue.top );\n\t\t} else {\n\t\t\tsetGapValue( {\n\t\t\t\ttop: nextBoxGapValue?.top,\n\t\t\t\tleft: nextBoxGapValue?.left,\n\t\t\t} );\n\t\t}\n\t};\n\treturn {\n\t\tgapValue,\n\t\tgapValues,\n\t\tgapSides,\n\t\tisAxialGap,\n\t\tsetGapValue,\n\t\tsetGapValues,\n\t\tresetGapValue,\n\t\thasGapValue,\n\t};\n}\n\n// Props for managing `dimensions.minHeight`.\nfunction useMinHeightProps( name, variationPath = '' ) {\n\tconst [ minHeightValue, setMinHeightValue ] = useStyle(\n\t\tvariationPath + 'dimensions.minHeight',\n\t\tname\n\t);\n\tconst resetMinHeightValue = () => setMinHeightValue( undefined );\n\tconst hasMinHeightValue = () => !! minHeightValue;\n\treturn {\n\t\tminHeightValue,\n\t\tsetMinHeightValue,\n\t\tresetMinHeightValue,\n\t\thasMinHeightValue,\n\t};\n}\n\nexport default function DimensionsPanel( { name, variationPath = '' } ) {\n\tconst showContentSizeControl = useHasContentSize( name );\n\tconst showWideSizeControl = useHasWideSize( name );\n\tconst showPaddingControl = useHasPadding( name );\n\tconst showMarginControl = useHasMargin( name );\n\tconst showGapControl = useHasGap( name );\n\tconst showMinHeightControl = useHasMinHeight( name );\n\tconst showSpacingPresetsControl = useHasSpacingPresets();\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units', name )[ 0 ] || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t],\n\t} );\n\n\t// Props for managing `layout.contentSize`.\n\tconst {\n\t\tcontentSizeValue,\n\t\tsetContentSizeValue,\n\t\thasUserSetContentSizeValue,\n\t\tresetContentSizeValue,\n\t} = useContentSizeProps( name );\n\n\t// Props for managing `layout.wideSize`.\n\tconst {\n\t\twideSizeValue,\n\t\tsetWideSizeValue,\n\t\thasUserSetWideSizeValue,\n\t\tresetWideSizeValue,\n\t} = useWideSizeProps( name );\n\n\t// Props for managing `spacing.padding`.\n\tconst {\n\t\tpaddingValues,\n\t\tpaddingSides,\n\t\tisAxialPadding,\n\t\tsetPaddingValues,\n\t\tresetPaddingValue,\n\t\thasPaddingValue,\n\t} = usePaddingProps( name, variationPath );\n\n\t// Props for managing `spacing.margin`.\n\tconst {\n\t\tmarginValues,\n\t\tmarginSides,\n\t\tisAxialMargin,\n\t\tsetMarginValues,\n\t\tresetMarginValue,\n\t\thasMarginValue,\n\t} = useMarginProps( name, variationPath );\n\n\t// Props for managing `spacing.blockGap`.\n\tconst {\n\t\tgapValue,\n\t\tgapValues,\n\t\tgapSides,\n\t\tisAxialGap,\n\t\tsetGapValue,\n\t\tsetGapValues,\n\t\tresetGapValue,\n\t\thasGapValue,\n\t} = useBlockGapProps( name, variationPath );\n\n\t// Props for managing `dimensions.minHeight`.\n\tconst {\n\t\tminHeightValue,\n\t\tsetMinHeightValue,\n\t\tresetMinHeightValue,\n\t\thasMinHeightValue,\n\t} = useMinHeightProps( name, variationPath );\n\n\tconst resetAll = () => {\n\t\tresetPaddingValue();\n\t\tresetMarginValue();\n\t\tresetGapValue();\n\t\tresetContentSizeValue();\n\t\tresetWideSizeValue();\n\t};\n\n\treturn (\n\t\t<ToolsPanel label={ __( 'Dimensions' ) } resetAll={ resetAll }>\n\t\t\t{ ( showContentSizeControl || showWideSizeControl ) && (\n\t\t\t\t<span className=\"span-columns\">\n\t\t\t\t\t{ __( 'Set the width of the main content area.' ) }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t\t{ showContentSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Content size' ) }\n\t\t\t\t\thasValue={ hasUserSetContentSizeValue }\n\t\t\t\t\tonDeselect={ resetContentSizeValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Content' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ contentSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextContentSize ) => {\n\t\t\t\t\t\t\t\tsetContentSizeValue( nextContentSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ positionCenter } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showWideSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Wide size' ) }\n\t\t\t\t\thasValue={ hasUserSetWideSizeValue }\n\t\t\t\t\tonDeselect={ resetWideSizeValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Wide' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ wideSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextWideSize ) => {\n\t\t\t\t\t\t\t\tsetWideSizeValue( nextWideSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showPaddingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasPaddingValue }\n\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\tonDeselect={ resetPaddingValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialPadding }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialPadding }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMarginControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMarginValue }\n\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\tonDeselect={ resetMarginValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialMargin }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialMargin }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showGapControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasGapValue }\n\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\tonDeselect={ resetGapValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl &&\n\t\t\t\t\t\t( isAxialGap ? (\n\t\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tsides={ gapSides }\n\t\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\t\tsplitOnAxis={ isAxialGap }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValue }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tvalue={ gapValue }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\tsides={ isAxialGap ? gapSides : [ 'top' ] } // Use 'top' as the shorthand property in non-axial configurations.\n\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialGap }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMinHeightControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMinHeightValue }\n\t\t\t\t\tlabel={ __( 'Min. height' ) }\n\t\t\t\t\tonDeselect={ resetMinHeightValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<HeightControl\n\t\t\t\t\t\tlabel={ __( 'Min. height' ) }\n\t\t\t\t\t\tvalue={ minHeightValue }\n\t\t\t\t\t\tonChange={ setMinHeightValue }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</ToolsPanel>\n\t);\n}\n"]}
@@ -82,9 +82,10 @@ function useGlobalStylesUserConfig() {
82
82
  styles: styles !== null && styles !== void 0 ? styles : {}
83
83
  };
84
84
  }, [settings, styles]);
85
- const setConfig = useCallback(callback => {
85
+ const setConfig = useCallback(function (callback) {
86
86
  var _record$styles, _record$settings;
87
87
 
88
+ let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
88
89
  const record = getEditedEntityRecord('root', 'globalStyles', globalStylesId);
89
90
  const currentConfig = {
90
91
  styles: (_record$styles = record === null || record === void 0 ? void 0 : record.styles) !== null && _record$styles !== void 0 ? _record$styles : {},
@@ -94,7 +95,7 @@ function useGlobalStylesUserConfig() {
94
95
  editEntityRecord('root', 'globalStyles', globalStylesId, {
95
96
  styles: cleanEmptyObject(updatedConfig.styles) || {},
96
97
  settings: cleanEmptyObject(updatedConfig.settings) || {}
97
- });
98
+ }, options);
98
99
  }, [globalStylesId]);
99
100
  return [isReady, config, setConfig];
100
101
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/global-styles-provider.js"],"names":["mergeWith","isEmpty","mapValues","useMemo","useCallback","useSelect","useDispatch","store","coreStore","GlobalStylesContext","mergeTreesCustomizer","_","srcValue","Array","isArray","mergeBaseAndUserConfigs","base","user","cleanEmptyObject","object","cleanedNestedObjects","Object","fromEntries","entries","filter","value","Boolean","undefined","useGlobalStylesUserConfig","globalStylesId","isReady","settings","styles","select","getEditedEntityRecord","hasFinishedResolution","_globalStylesId","__experimentalGetCurrentGlobalStylesId","record","hasResolved","editEntityRecord","config","setConfig","callback","currentConfig","updatedConfig","useGlobalStylesBaseConfig","baseConfig","__experimentalGetCurrentThemeBaseGlobalStyles","useGlobalStylesContext","isUserConfigReady","userConfig","setUserConfig","isBaseConfigReady","mergedConfig","context","merged","GlobalStylesProvider","children"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { mergeWith, isEmpty, mapValues } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { GlobalStylesContext } from './context';\n\nfunction mergeTreesCustomizer( _, srcValue ) {\n\t// We only pass as arrays the presets,\n\t// in which case we want the new array of values\n\t// to override the old array (no merging).\n\tif ( Array.isArray( srcValue ) ) {\n\t\treturn srcValue;\n\t}\n}\n\nexport function mergeBaseAndUserConfigs( base, user ) {\n\treturn mergeWith( {}, base, user, mergeTreesCustomizer );\n}\n\nconst cleanEmptyObject = ( object ) => {\n\tif (\n\t\tobject === null ||\n\t\ttypeof object !== 'object' ||\n\t\tArray.isArray( object )\n\t) {\n\t\treturn object;\n\t}\n\tconst cleanedNestedObjects = Object.fromEntries(\n\t\tObject.entries( mapValues( object, cleanEmptyObject ) ).filter(\n\t\t\t( [ , value ] ) => Boolean( value )\n\t\t)\n\t);\n\treturn isEmpty( cleanedNestedObjects ) ? undefined : cleanedNestedObjects;\n};\n\nfunction useGlobalStylesUserConfig() {\n\tconst { globalStylesId, isReady, settings, styles } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _globalStylesId =\n\t\t\t\tselect( coreStore ).__experimentalGetCurrentGlobalStylesId();\n\t\t\tconst record = _globalStylesId\n\t\t\t\t? getEditedEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId\n\t\t\t\t )\n\t\t\t\t: undefined;\n\n\t\t\tlet hasResolved = false;\n\t\t\tif (\n\t\t\t\thasFinishedResolution(\n\t\t\t\t\t'__experimentalGetCurrentGlobalStylesId'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\thasResolved = _globalStylesId\n\t\t\t\t\t? hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t ] )\n\t\t\t\t\t: true;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tglobalStylesId: _globalStylesId,\n\t\t\t\tisReady: hasResolved,\n\t\t\t\tsettings: record?.settings,\n\t\t\t\tstyles: record?.styles,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst config = useMemo( () => {\n\t\treturn {\n\t\t\tsettings: settings ?? {},\n\t\t\tstyles: styles ?? {},\n\t\t};\n\t}, [ settings, styles ] );\n\n\tconst setConfig = useCallback(\n\t\t( callback ) => {\n\t\t\tconst record = getEditedEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId\n\t\t\t);\n\t\t\tconst currentConfig = {\n\t\t\t\tstyles: record?.styles ?? {},\n\t\t\t\tsettings: record?.settings ?? {},\n\t\t\t};\n\t\t\tconst updatedConfig = callback( currentConfig );\n\t\t\teditEntityRecord( 'root', 'globalStyles', globalStylesId, {\n\t\t\t\tstyles: cleanEmptyObject( updatedConfig.styles ) || {},\n\t\t\t\tsettings: cleanEmptyObject( updatedConfig.settings ) || {},\n\t\t\t} );\n\t\t},\n\t\t[ globalStylesId ]\n\t);\n\n\treturn [ isReady, config, setConfig ];\n}\n\nfunction useGlobalStylesBaseConfig() {\n\tconst baseConfig = useSelect( ( select ) => {\n\t\treturn select(\n\t\t\tcoreStore\n\t\t).__experimentalGetCurrentThemeBaseGlobalStyles();\n\t}, [] );\n\n\treturn [ !! baseConfig, baseConfig ];\n}\n\nfunction useGlobalStylesContext() {\n\tconst [ isUserConfigReady, userConfig, setUserConfig ] =\n\t\tuseGlobalStylesUserConfig();\n\tconst [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! baseConfig || ! userConfig ) {\n\t\t\treturn {};\n\t\t}\n\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t}, [ userConfig, baseConfig ] );\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tisReady: isUserConfigReady && isBaseConfigReady,\n\t\t\tuser: userConfig,\n\t\t\tbase: baseConfig,\n\t\t\tmerged: mergedConfig,\n\t\t\tsetUserConfig,\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tuserConfig,\n\t\tbaseConfig,\n\t\tsetUserConfig,\n\t\tisUserConfigReady,\n\t\tisBaseConfigReady,\n\t] );\n\n\treturn context;\n}\n\nexport function GlobalStylesProvider( { children } ) {\n\tconst context = useGlobalStylesContext();\n\tif ( ! context.isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/global-styles-provider.js"],"names":["mergeWith","isEmpty","mapValues","useMemo","useCallback","useSelect","useDispatch","store","coreStore","GlobalStylesContext","mergeTreesCustomizer","_","srcValue","Array","isArray","mergeBaseAndUserConfigs","base","user","cleanEmptyObject","object","cleanedNestedObjects","Object","fromEntries","entries","filter","value","Boolean","undefined","useGlobalStylesUserConfig","globalStylesId","isReady","settings","styles","select","getEditedEntityRecord","hasFinishedResolution","_globalStylesId","__experimentalGetCurrentGlobalStylesId","record","hasResolved","editEntityRecord","config","setConfig","callback","options","currentConfig","updatedConfig","useGlobalStylesBaseConfig","baseConfig","__experimentalGetCurrentThemeBaseGlobalStyles","useGlobalStylesContext","isUserConfigReady","userConfig","setUserConfig","isBaseConfigReady","mergedConfig","context","merged","GlobalStylesProvider","children"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { mergeWith, isEmpty, mapValues } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { GlobalStylesContext } from './context';\n\nfunction mergeTreesCustomizer( _, srcValue ) {\n\t// We only pass as arrays the presets,\n\t// in which case we want the new array of values\n\t// to override the old array (no merging).\n\tif ( Array.isArray( srcValue ) ) {\n\t\treturn srcValue;\n\t}\n}\n\nexport function mergeBaseAndUserConfigs( base, user ) {\n\treturn mergeWith( {}, base, user, mergeTreesCustomizer );\n}\n\nconst cleanEmptyObject = ( object ) => {\n\tif (\n\t\tobject === null ||\n\t\ttypeof object !== 'object' ||\n\t\tArray.isArray( object )\n\t) {\n\t\treturn object;\n\t}\n\tconst cleanedNestedObjects = Object.fromEntries(\n\t\tObject.entries( mapValues( object, cleanEmptyObject ) ).filter(\n\t\t\t( [ , value ] ) => Boolean( value )\n\t\t)\n\t);\n\treturn isEmpty( cleanedNestedObjects ) ? undefined : cleanedNestedObjects;\n};\n\nfunction useGlobalStylesUserConfig() {\n\tconst { globalStylesId, isReady, settings, styles } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _globalStylesId =\n\t\t\t\tselect( coreStore ).__experimentalGetCurrentGlobalStylesId();\n\t\t\tconst record = _globalStylesId\n\t\t\t\t? getEditedEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId\n\t\t\t\t )\n\t\t\t\t: undefined;\n\n\t\t\tlet hasResolved = false;\n\t\t\tif (\n\t\t\t\thasFinishedResolution(\n\t\t\t\t\t'__experimentalGetCurrentGlobalStylesId'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\thasResolved = _globalStylesId\n\t\t\t\t\t? hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t ] )\n\t\t\t\t\t: true;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tglobalStylesId: _globalStylesId,\n\t\t\t\tisReady: hasResolved,\n\t\t\t\tsettings: record?.settings,\n\t\t\t\tstyles: record?.styles,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst config = useMemo( () => {\n\t\treturn {\n\t\t\tsettings: settings ?? {},\n\t\t\tstyles: styles ?? {},\n\t\t};\n\t}, [ settings, styles ] );\n\n\tconst setConfig = useCallback(\n\t\t( callback, options = {} ) => {\n\t\t\tconst record = getEditedEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId\n\t\t\t);\n\t\t\tconst currentConfig = {\n\t\t\t\tstyles: record?.styles ?? {},\n\t\t\t\tsettings: record?.settings ?? {},\n\t\t\t};\n\t\t\tconst updatedConfig = callback( currentConfig );\n\t\t\teditEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t{\n\t\t\t\t\tstyles: cleanEmptyObject( updatedConfig.styles ) || {},\n\t\t\t\t\tsettings: cleanEmptyObject( updatedConfig.settings ) || {},\n\t\t\t\t},\n\t\t\t\toptions\n\t\t\t);\n\t\t},\n\t\t[ globalStylesId ]\n\t);\n\n\treturn [ isReady, config, setConfig ];\n}\n\nfunction useGlobalStylesBaseConfig() {\n\tconst baseConfig = useSelect( ( select ) => {\n\t\treturn select(\n\t\t\tcoreStore\n\t\t).__experimentalGetCurrentThemeBaseGlobalStyles();\n\t}, [] );\n\n\treturn [ !! baseConfig, baseConfig ];\n}\n\nfunction useGlobalStylesContext() {\n\tconst [ isUserConfigReady, userConfig, setUserConfig ] =\n\t\tuseGlobalStylesUserConfig();\n\tconst [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! baseConfig || ! userConfig ) {\n\t\t\treturn {};\n\t\t}\n\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t}, [ userConfig, baseConfig ] );\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tisReady: isUserConfigReady && isBaseConfigReady,\n\t\t\tuser: userConfig,\n\t\t\tbase: baseConfig,\n\t\t\tmerged: mergedConfig,\n\t\t\tsetUserConfig,\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tuserConfig,\n\t\tbaseConfig,\n\t\tsetUserConfig,\n\t\tisUserConfigReady,\n\t\tisBaseConfigReady,\n\t] );\n\n\treturn context;\n}\n\nexport function GlobalStylesProvider( { children } ) {\n\tconst context = useGlobalStylesContext();\n\tif ( ! context.isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"]}
@@ -15,7 +15,8 @@ import { getSupportedGlobalStylesPanels, useColorsPerOrigin, useGradientsPerOrig
15
15
 
16
16
  function ScreenBackgroundColor(_ref) {
17
17
  let {
18
- name
18
+ name,
19
+ variationPath = ''
19
20
  } = _ref;
20
21
  const supports = getSupportedGlobalStylesPanels(name);
21
22
  const [solids] = useSetting('color.palette', name);
@@ -27,10 +28,10 @@ function ScreenBackgroundColor(_ref) {
27
28
  const [isBackgroundEnabled] = useSetting('color.background', name);
28
29
  const hasBackgroundColor = supports.includes('backgroundColor') && isBackgroundEnabled && (solids.length > 0 || areCustomSolidsEnabled);
29
30
  const hasGradientColor = supports.includes('background') && (gradients.length > 0 || areCustomGradientsEnabled);
30
- const [backgroundColor, setBackgroundColor] = useStyle('color.background', name);
31
- const [userBackgroundColor] = useStyle('color.background', name, 'user');
32
- const [gradient, setGradient] = useStyle('color.gradient', name);
33
- const [userGradient] = useStyle('color.gradient', name, 'user');
31
+ const [backgroundColor, setBackgroundColor] = useStyle(variationPath + 'color.background', name);
32
+ const [userBackgroundColor] = useStyle(variationPath + 'color.background', name, 'user');
33
+ const [gradient, setGradient] = useStyle(variationPath + 'color.gradient', name);
34
+ const [userGradient] = useStyle(variationPath + 'color.gradient', name, 'user');
34
35
 
35
36
  if (!hasBackgroundColor && !hasGradientColor) {
36
37
  return null;
@@ -74,7 +75,6 @@ function ScreenBackgroundColor(_ref) {
74
75
  gradients: gradientsPerOrigin,
75
76
  disableCustomColors: !areCustomSolidsEnabled,
76
77
  disableCustomGradients: !areCustomGradientsEnabled,
77
- __experimentalHasMultipleOrigins: true,
78
78
  showTitle: false,
79
79
  enableAlpha: true,
80
80
  __experimentalIsRenderedInSidebar: true
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/screen-background-color.js"],"names":["__","__experimentalColorGradientControl","ColorGradientControl","ScreenHeader","getSupportedGlobalStylesPanels","useColorsPerOrigin","useGradientsPerOrigin","useSetting","useStyle","ScreenBackgroundColor","name","supports","solids","gradients","areCustomSolidsEnabled","areCustomGradientsEnabled","colorsPerOrigin","gradientsPerOrigin","isBackgroundEnabled","hasBackgroundColor","includes","length","hasGradientColor","backgroundColor","setBackgroundColor","userBackgroundColor","gradient","setGradient","userGradient","backgroundSettings","colorValue","onColorChange","clearable","gradientSettings","gradientValue","onGradientChange","controlProps"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalColorGradientControl as ColorGradientControl } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport ScreenHeader from './header';\nimport {\n\tgetSupportedGlobalStylesPanels,\n\tuseColorsPerOrigin,\n\tuseGradientsPerOrigin,\n\tuseSetting,\n\tuseStyle,\n} from './hooks';\n\nfunction ScreenBackgroundColor( { name } ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ solids ] = useSetting( 'color.palette', name );\n\tconst [ gradients ] = useSetting( 'color.gradients', name );\n\tconst [ areCustomSolidsEnabled ] = useSetting( 'color.custom', name );\n\tconst [ areCustomGradientsEnabled ] = useSetting(\n\t\t'color.customGradient',\n\t\tname\n\t);\n\n\tconst colorsPerOrigin = useColorsPerOrigin( name );\n\tconst gradientsPerOrigin = useGradientsPerOrigin( name );\n\n\tconst [ isBackgroundEnabled ] = useSetting( 'color.background', name );\n\n\tconst hasBackgroundColor =\n\t\tsupports.includes( 'backgroundColor' ) &&\n\t\tisBackgroundEnabled &&\n\t\t( solids.length > 0 || areCustomSolidsEnabled );\n\tconst hasGradientColor =\n\t\tsupports.includes( 'background' ) &&\n\t\t( gradients.length > 0 || areCustomGradientsEnabled );\n\tconst [ backgroundColor, setBackgroundColor ] = useStyle(\n\t\t'color.background',\n\t\tname\n\t);\n\tconst [ userBackgroundColor ] = useStyle(\n\t\t'color.background',\n\t\tname,\n\t\t'user'\n\t);\n\tconst [ gradient, setGradient ] = useStyle( 'color.gradient', name );\n\tconst [ userGradient ] = useStyle( 'color.gradient', name, 'user' );\n\n\tif ( ! hasBackgroundColor && ! hasGradientColor ) {\n\t\treturn null;\n\t}\n\n\tlet backgroundSettings = {};\n\tif ( hasBackgroundColor ) {\n\t\tbackgroundSettings = {\n\t\t\tcolorValue: backgroundColor,\n\t\t\tonColorChange: setBackgroundColor,\n\t\t};\n\t\tif ( backgroundColor ) {\n\t\t\tbackgroundSettings.clearable =\n\t\t\t\tbackgroundColor === userBackgroundColor;\n\t\t}\n\t}\n\n\tlet gradientSettings = {};\n\tif ( hasGradientColor ) {\n\t\tgradientSettings = {\n\t\t\tgradientValue: gradient,\n\t\t\tonGradientChange: setGradient,\n\t\t};\n\t\tif ( gradient ) {\n\t\t\tgradientSettings.clearable = gradient === userGradient;\n\t\t}\n\t}\n\n\tconst controlProps = {\n\t\t...backgroundSettings,\n\t\t...gradientSettings,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Background' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Set a background color or gradient for the whole site.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<ColorGradientControl\n\t\t\t\tclassName=\"edit-site-screen-background-color__control\"\n\t\t\t\tcolors={ colorsPerOrigin }\n\t\t\t\tgradients={ gradientsPerOrigin }\n\t\t\t\tdisableCustomColors={ ! areCustomSolidsEnabled }\n\t\t\t\tdisableCustomGradients={ ! areCustomGradientsEnabled }\n\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\tshowTitle={ false }\n\t\t\t\tenableAlpha\n\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t{ ...controlProps }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ScreenBackgroundColor;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/screen-background-color.js"],"names":["__","__experimentalColorGradientControl","ColorGradientControl","ScreenHeader","getSupportedGlobalStylesPanels","useColorsPerOrigin","useGradientsPerOrigin","useSetting","useStyle","ScreenBackgroundColor","name","variationPath","supports","solids","gradients","areCustomSolidsEnabled","areCustomGradientsEnabled","colorsPerOrigin","gradientsPerOrigin","isBackgroundEnabled","hasBackgroundColor","includes","length","hasGradientColor","backgroundColor","setBackgroundColor","userBackgroundColor","gradient","setGradient","userGradient","backgroundSettings","colorValue","onColorChange","clearable","gradientSettings","gradientValue","onGradientChange","controlProps"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalColorGradientControl as ColorGradientControl } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport ScreenHeader from './header';\nimport {\n\tgetSupportedGlobalStylesPanels,\n\tuseColorsPerOrigin,\n\tuseGradientsPerOrigin,\n\tuseSetting,\n\tuseStyle,\n} from './hooks';\n\nfunction ScreenBackgroundColor( { name, variationPath = '' } ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ solids ] = useSetting( 'color.palette', name );\n\tconst [ gradients ] = useSetting( 'color.gradients', name );\n\tconst [ areCustomSolidsEnabled ] = useSetting( 'color.custom', name );\n\tconst [ areCustomGradientsEnabled ] = useSetting(\n\t\t'color.customGradient',\n\t\tname\n\t);\n\n\tconst colorsPerOrigin = useColorsPerOrigin( name );\n\tconst gradientsPerOrigin = useGradientsPerOrigin( name );\n\n\tconst [ isBackgroundEnabled ] = useSetting( 'color.background', name );\n\n\tconst hasBackgroundColor =\n\t\tsupports.includes( 'backgroundColor' ) &&\n\t\tisBackgroundEnabled &&\n\t\t( solids.length > 0 || areCustomSolidsEnabled );\n\tconst hasGradientColor =\n\t\tsupports.includes( 'background' ) &&\n\t\t( gradients.length > 0 || areCustomGradientsEnabled );\n\tconst [ backgroundColor, setBackgroundColor ] = useStyle(\n\t\tvariationPath + 'color.background',\n\t\tname\n\t);\n\tconst [ userBackgroundColor ] = useStyle(\n\t\tvariationPath + 'color.background',\n\t\tname,\n\t\t'user'\n\t);\n\tconst [ gradient, setGradient ] = useStyle(\n\t\tvariationPath + 'color.gradient',\n\t\tname\n\t);\n\tconst [ userGradient ] = useStyle(\n\t\tvariationPath + 'color.gradient',\n\t\tname,\n\t\t'user'\n\t);\n\n\tif ( ! hasBackgroundColor && ! hasGradientColor ) {\n\t\treturn null;\n\t}\n\n\tlet backgroundSettings = {};\n\tif ( hasBackgroundColor ) {\n\t\tbackgroundSettings = {\n\t\t\tcolorValue: backgroundColor,\n\t\t\tonColorChange: setBackgroundColor,\n\t\t};\n\t\tif ( backgroundColor ) {\n\t\t\tbackgroundSettings.clearable =\n\t\t\t\tbackgroundColor === userBackgroundColor;\n\t\t}\n\t}\n\n\tlet gradientSettings = {};\n\tif ( hasGradientColor ) {\n\t\tgradientSettings = {\n\t\t\tgradientValue: gradient,\n\t\t\tonGradientChange: setGradient,\n\t\t};\n\t\tif ( gradient ) {\n\t\t\tgradientSettings.clearable = gradient === userGradient;\n\t\t}\n\t}\n\n\tconst controlProps = {\n\t\t...backgroundSettings,\n\t\t...gradientSettings,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Background' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Set a background color or gradient for the whole site.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<ColorGradientControl\n\t\t\t\tclassName=\"edit-site-screen-background-color__control\"\n\t\t\t\tcolors={ colorsPerOrigin }\n\t\t\t\tgradients={ gradientsPerOrigin }\n\t\t\t\tdisableCustomColors={ ! areCustomSolidsEnabled }\n\t\t\t\tdisableCustomGradients={ ! areCustomGradientsEnabled }\n\t\t\t\tshowTitle={ false }\n\t\t\t\tenableAlpha\n\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t{ ...controlProps }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ScreenBackgroundColor;\n"]}
@@ -19,6 +19,7 @@ import { useHasBorderPanel } from './border-panel';
19
19
  import { useHasColorPanel } from './color-utils';
20
20
  import { useHasDimensionsPanel } from './dimensions-panel';
21
21
  import { useHasTypographyPanel } from './typography-panel';
22
+ import { useHasVariationsPanel } from './variations-panel';
22
23
  import ScreenHeader from './header';
23
24
  import { NavigationButtonAsItem } from './navigation-button';
24
25
 
@@ -58,7 +59,8 @@ function BlockMenuItem(_ref) {
58
59
  const hasBorderPanel = useHasBorderPanel(block.name);
59
60
  const hasDimensionsPanel = useHasDimensionsPanel(block.name);
60
61
  const hasLayoutPanel = hasBorderPanel || hasDimensionsPanel;
61
- const hasBlockMenuItem = hasTypographyPanel || hasColorPanel || hasLayoutPanel;
62
+ const hasVariationsPanel = useHasVariationsPanel(block.name);
63
+ const hasBlockMenuItem = hasTypographyPanel || hasColorPanel || hasLayoutPanel || hasVariationsPanel;
62
64
 
63
65
  if (!hasBlockMenuItem) {
64
66
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/screen-block-list.js"],"names":["store","blocksStore","__","sprintf","_n","FlexItem","SearchControl","__experimentalHStack","HStack","useSelect","useState","useMemo","useEffect","useRef","BlockIcon","useDebounce","speak","useHasBorderPanel","useHasColorPanel","useHasDimensionsPanel","useHasTypographyPanel","ScreenHeader","NavigationButtonAsItem","useSortedBlockTypes","blockItems","select","getBlockTypes","groupByType","blocks","block","core","noncore","type","name","startsWith","push","coreItems","nonCoreItems","reduce","BlockMenuItem","hasTypographyPanel","hasColorPanel","hasBorderPanel","hasDimensionsPanel","hasLayoutPanel","hasBlockMenuItem","navigationButtonLabel","title","encodeURIComponent","icon","ScreenBlockList","sortedBlockTypes","filterValue","setFilterValue","debouncedSpeak","isMatchingSearchTerm","filteredBlockTypes","filter","blockType","blockTypesListRef","count","current","childElementCount","resultsFoundMessage","map"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport {\n\tFlexItem,\n\tSearchControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useMemo, useEffect, useRef } from '@wordpress/element';\nimport { BlockIcon } from '@wordpress/block-editor';\nimport { useDebounce } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { useHasBorderPanel } from './border-panel';\nimport { useHasColorPanel } from './color-utils';\nimport { useHasDimensionsPanel } from './dimensions-panel';\nimport { useHasTypographyPanel } from './typography-panel';\nimport ScreenHeader from './header';\nimport { NavigationButtonAsItem } from './navigation-button';\n\nfunction useSortedBlockTypes() {\n\tconst blockItems = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\t// Ensure core blocks are prioritized in the returned results,\n\t// because third party blocks can be registered earlier than\n\t// the core blocks (usually by using the `init` action),\n\t// thus affecting the display order.\n\t// We don't sort reusable blocks as they are handled differently.\n\tconst groupByType = ( blocks, block ) => {\n\t\tconst { core, noncore } = blocks;\n\t\tconst type = block.name.startsWith( 'core/' ) ? core : noncore;\n\t\ttype.push( block );\n\t\treturn blocks;\n\t};\n\tconst { core: coreItems, noncore: nonCoreItems } = blockItems.reduce(\n\t\tgroupByType,\n\t\t{ core: [], noncore: [] }\n\t);\n\treturn [ ...coreItems, ...nonCoreItems ];\n}\n\nfunction BlockMenuItem( { block } ) {\n\tconst hasTypographyPanel = useHasTypographyPanel( block.name );\n\tconst hasColorPanel = useHasColorPanel( block.name );\n\tconst hasBorderPanel = useHasBorderPanel( block.name );\n\tconst hasDimensionsPanel = useHasDimensionsPanel( block.name );\n\tconst hasLayoutPanel = hasBorderPanel || hasDimensionsPanel;\n\tconst hasBlockMenuItem =\n\t\thasTypographyPanel || hasColorPanel || hasLayoutPanel;\n\n\tif ( ! hasBlockMenuItem ) {\n\t\treturn null;\n\t}\n\n\tconst navigationButtonLabel = sprintf(\n\t\t// translators: %s: is the name of a block e.g., 'Image' or 'Table'.\n\t\t__( '%s block styles' ),\n\t\tblock.title\n\t);\n\n\treturn (\n\t\t<NavigationButtonAsItem\n\t\t\tpath={ '/blocks/' + encodeURIComponent( block.name ) }\n\t\t\taria-label={ navigationButtonLabel }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<BlockIcon icon={ block.icon } />\n\t\t\t\t<FlexItem>{ block.title }</FlexItem>\n\t\t\t</HStack>\n\t\t</NavigationButtonAsItem>\n\t);\n}\n\nfunction ScreenBlockList() {\n\tconst sortedBlockTypes = useSortedBlockTypes();\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\tconst isMatchingSearchTerm = useSelect(\n\t\t( select ) => select( blocksStore ).isMatchingSearchTerm,\n\t\t[]\n\t);\n\tconst filteredBlockTypes = useMemo( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn sortedBlockTypes;\n\t\t}\n\t\treturn sortedBlockTypes.filter( ( blockType ) =>\n\t\t\tisMatchingSearchTerm( blockType, filterValue )\n\t\t);\n\t}, [ filterValue, sortedBlockTypes, isMatchingSearchTerm ] );\n\n\tconst blockTypesListRef = useRef();\n\n\t// Announce search results on change\n\tuseEffect( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn;\n\t\t}\n\t\t// We extract the results from the wrapper div's `ref` because\n\t\t// filtered items can contain items that will eventually not\n\t\t// render and there is no reliable way to detect when a child\n\t\t// will return `null`.\n\t\t// TODO: We should find a better way of handling this as it's\n\t\t// fragile and depends on the number of rendered elements of `BlockMenuItem`,\n\t\t// which is now one.\n\t\t// @see https://github.com/WordPress/gutenberg/pull/39117#discussion_r816022116\n\t\tconst count = blockTypesListRef.current.childElementCount;\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', count ),\n\t\t\tcount\n\t\t);\n\t\tdebouncedSpeak( resultsFoundMessage, count );\n\t}, [ filterValue, debouncedSpeak ] );\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Blocks' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Customize the appearance of specific blocks and for the whole site.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<SearchControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tclassName=\"edit-site-block-types-search\"\n\t\t\t\tonChange={ setFilterValue }\n\t\t\t\tvalue={ filterValue }\n\t\t\t\tlabel={ __( 'Search for blocks' ) }\n\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tref={ blockTypesListRef }\n\t\t\t\tclassName=\"edit-site-block-types-item-list\"\n\t\t\t>\n\t\t\t\t{ filteredBlockTypes.map( ( block ) => (\n\t\t\t\t\t<BlockMenuItem\n\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\tkey={ 'menu-itemblock-' + block.name }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ScreenBlockList;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/screen-block-list.js"],"names":["store","blocksStore","__","sprintf","_n","FlexItem","SearchControl","__experimentalHStack","HStack","useSelect","useState","useMemo","useEffect","useRef","BlockIcon","useDebounce","speak","useHasBorderPanel","useHasColorPanel","useHasDimensionsPanel","useHasTypographyPanel","useHasVariationsPanel","ScreenHeader","NavigationButtonAsItem","useSortedBlockTypes","blockItems","select","getBlockTypes","groupByType","blocks","block","core","noncore","type","name","startsWith","push","coreItems","nonCoreItems","reduce","BlockMenuItem","hasTypographyPanel","hasColorPanel","hasBorderPanel","hasDimensionsPanel","hasLayoutPanel","hasVariationsPanel","hasBlockMenuItem","navigationButtonLabel","title","encodeURIComponent","icon","ScreenBlockList","sortedBlockTypes","filterValue","setFilterValue","debouncedSpeak","isMatchingSearchTerm","filteredBlockTypes","filter","blockType","blockTypesListRef","count","current","childElementCount","resultsFoundMessage","map"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport {\n\tFlexItem,\n\tSearchControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useMemo, useEffect, useRef } from '@wordpress/element';\nimport { BlockIcon } from '@wordpress/block-editor';\nimport { useDebounce } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { useHasBorderPanel } from './border-panel';\nimport { useHasColorPanel } from './color-utils';\nimport { useHasDimensionsPanel } from './dimensions-panel';\nimport { useHasTypographyPanel } from './typography-panel';\nimport { useHasVariationsPanel } from './variations-panel';\nimport ScreenHeader from './header';\nimport { NavigationButtonAsItem } from './navigation-button';\n\nfunction useSortedBlockTypes() {\n\tconst blockItems = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\t// Ensure core blocks are prioritized in the returned results,\n\t// because third party blocks can be registered earlier than\n\t// the core blocks (usually by using the `init` action),\n\t// thus affecting the display order.\n\t// We don't sort reusable blocks as they are handled differently.\n\tconst groupByType = ( blocks, block ) => {\n\t\tconst { core, noncore } = blocks;\n\t\tconst type = block.name.startsWith( 'core/' ) ? core : noncore;\n\t\ttype.push( block );\n\t\treturn blocks;\n\t};\n\tconst { core: coreItems, noncore: nonCoreItems } = blockItems.reduce(\n\t\tgroupByType,\n\t\t{ core: [], noncore: [] }\n\t);\n\treturn [ ...coreItems, ...nonCoreItems ];\n}\n\nfunction BlockMenuItem( { block } ) {\n\tconst hasTypographyPanel = useHasTypographyPanel( block.name );\n\tconst hasColorPanel = useHasColorPanel( block.name );\n\tconst hasBorderPanel = useHasBorderPanel( block.name );\n\tconst hasDimensionsPanel = useHasDimensionsPanel( block.name );\n\tconst hasLayoutPanel = hasBorderPanel || hasDimensionsPanel;\n\tconst hasVariationsPanel = useHasVariationsPanel( block.name );\n\tconst hasBlockMenuItem =\n\t\thasTypographyPanel ||\n\t\thasColorPanel ||\n\t\thasLayoutPanel ||\n\t\thasVariationsPanel;\n\n\tif ( ! hasBlockMenuItem ) {\n\t\treturn null;\n\t}\n\n\tconst navigationButtonLabel = sprintf(\n\t\t// translators: %s: is the name of a block e.g., 'Image' or 'Table'.\n\t\t__( '%s block styles' ),\n\t\tblock.title\n\t);\n\n\treturn (\n\t\t<NavigationButtonAsItem\n\t\t\tpath={ '/blocks/' + encodeURIComponent( block.name ) }\n\t\t\taria-label={ navigationButtonLabel }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<BlockIcon icon={ block.icon } />\n\t\t\t\t<FlexItem>{ block.title }</FlexItem>\n\t\t\t</HStack>\n\t\t</NavigationButtonAsItem>\n\t);\n}\n\nfunction ScreenBlockList() {\n\tconst sortedBlockTypes = useSortedBlockTypes();\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\tconst isMatchingSearchTerm = useSelect(\n\t\t( select ) => select( blocksStore ).isMatchingSearchTerm,\n\t\t[]\n\t);\n\tconst filteredBlockTypes = useMemo( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn sortedBlockTypes;\n\t\t}\n\t\treturn sortedBlockTypes.filter( ( blockType ) =>\n\t\t\tisMatchingSearchTerm( blockType, filterValue )\n\t\t);\n\t}, [ filterValue, sortedBlockTypes, isMatchingSearchTerm ] );\n\n\tconst blockTypesListRef = useRef();\n\n\t// Announce search results on change\n\tuseEffect( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn;\n\t\t}\n\t\t// We extract the results from the wrapper div's `ref` because\n\t\t// filtered items can contain items that will eventually not\n\t\t// render and there is no reliable way to detect when a child\n\t\t// will return `null`.\n\t\t// TODO: We should find a better way of handling this as it's\n\t\t// fragile and depends on the number of rendered elements of `BlockMenuItem`,\n\t\t// which is now one.\n\t\t// @see https://github.com/WordPress/gutenberg/pull/39117#discussion_r816022116\n\t\tconst count = blockTypesListRef.current.childElementCount;\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', count ),\n\t\t\tcount\n\t\t);\n\t\tdebouncedSpeak( resultsFoundMessage, count );\n\t}, [ filterValue, debouncedSpeak ] );\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Blocks' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Customize the appearance of specific blocks and for the whole site.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<SearchControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tclassName=\"edit-site-block-types-search\"\n\t\t\t\tonChange={ setFilterValue }\n\t\t\t\tvalue={ filterValue }\n\t\t\t\tlabel={ __( 'Search for blocks' ) }\n\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tref={ blockTypesListRef }\n\t\t\t\tclassName=\"edit-site-block-types-item-list\"\n\t\t\t>\n\t\t\t\t{ filteredBlockTypes.map( ( block ) => (\n\t\t\t\t\t<BlockMenuItem\n\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\tkey={ 'menu-itemblock-' + block.name }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ScreenBlockList;\n"]}
@@ -4,7 +4,6 @@ import { createElement, Fragment } from "@wordpress/element";
4
4
  * WordPress dependencies
5
5
  */
6
6
  import { getBlockType } from '@wordpress/blocks';
7
- import { __experimentalSpacer as Spacer } from '@wordpress/components';
8
7
  /**
9
8
  * Internal dependencies
10
9
  */
@@ -20,11 +19,9 @@ function ScreenBlock(_ref) {
20
19
  const blockType = getBlockType(name);
21
20
  return createElement(Fragment, null, createElement(ScreenHeader, {
22
21
  title: blockType.title
23
- }), createElement(Spacer, {
24
- paddingX: 4
25
- }, createElement(BlockPreviewPanel, {
22
+ }), createElement(BlockPreviewPanel, {
26
23
  name: name
27
- })), createElement(ContextMenu, {
24
+ }), createElement(ContextMenu, {
28
25
  parentMenu: '/blocks/' + encodeURIComponent(name),
29
26
  name: name
30
27
  }));