@wordpress/edit-site 3.0.1-next.253d9b6e21.0 → 3.0.3

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 (276) hide show
  1. package/README.md +1 -1
  2. package/build/components/block-editor/back-button.js +60 -0
  3. package/build/components/block-editor/back-button.js.map +1 -0
  4. package/build/components/block-editor/index.js +20 -5
  5. package/build/components/block-editor/index.js.map +1 -1
  6. package/build/components/edit-template-part-menu-button/index.js +63 -0
  7. package/build/components/edit-template-part-menu-button/index.js.map +1 -0
  8. package/build/components/editor/global-styles-provider.js +15 -2
  9. package/build/components/editor/global-styles-provider.js.map +1 -1
  10. package/build/components/editor/global-styles-renderer.js +8 -8
  11. package/build/components/editor/global-styles-renderer.js.map +1 -1
  12. package/build/components/editor/index.js +7 -7
  13. package/build/components/editor/index.js.map +1 -1
  14. package/build/components/editor/utils.js +4 -9
  15. package/build/components/editor/utils.js.map +1 -1
  16. package/build/components/{sidebar → global-styles}/border-panel.js +2 -2
  17. package/build/components/global-styles/border-panel.js.map +1 -0
  18. package/build/components/{sidebar → global-styles}/color-palette-panel.js +4 -2
  19. package/build/components/global-styles/color-palette-panel.js.map +1 -0
  20. package/build/components/{sidebar → global-styles}/color-panel.js +24 -21
  21. package/build/components/global-styles/color-panel.js.map +1 -0
  22. package/build/components/global-styles/context-menu.js +58 -0
  23. package/build/components/global-styles/context-menu.js.map +1 -0
  24. package/build/components/{sidebar → global-styles}/dimensions-panel.js +58 -8
  25. package/build/components/global-styles/dimensions-panel.js.map +1 -0
  26. package/build/components/global-styles/header.js +54 -0
  27. package/build/components/global-styles/header.js.map +1 -0
  28. package/build/components/global-styles/index.js +89 -0
  29. package/build/components/global-styles/index.js.map +1 -0
  30. package/build/components/global-styles/navigation-button.js +43 -0
  31. package/build/components/global-styles/navigation-button.js.map +1 -0
  32. package/build/components/global-styles/palette.js +57 -0
  33. package/build/components/global-styles/palette.js.map +1 -0
  34. package/build/components/global-styles/preview.js +59 -0
  35. package/build/components/global-styles/preview.js.map +1 -0
  36. package/build/components/global-styles/screen-block-list.js +76 -0
  37. package/build/components/global-styles/screen-block-list.js.map +1 -0
  38. package/build/components/global-styles/screen-block.js +45 -0
  39. package/build/components/global-styles/screen-block.js.map +1 -0
  40. package/build/components/global-styles/screen-color-palette.js +48 -0
  41. package/build/components/global-styles/screen-color-palette.js.map +1 -0
  42. package/build/components/global-styles/screen-colors.js +51 -0
  43. package/build/components/global-styles/screen-colors.js.map +1 -0
  44. package/build/components/global-styles/screen-layout.js +60 -0
  45. package/build/components/global-styles/screen-layout.js.map +1 -0
  46. package/build/components/global-styles/screen-root.js +44 -0
  47. package/build/components/global-styles/screen-root.js.map +1 -0
  48. package/build/components/global-styles/screen-typography.js +50 -0
  49. package/build/components/global-styles/screen-typography.js.map +1 -0
  50. package/build/components/global-styles/subtitle.js +25 -0
  51. package/build/components/global-styles/subtitle.js.map +1 -0
  52. package/build/components/{sidebar → global-styles}/typography-panel.js +1 -3
  53. package/build/components/global-styles/typography-panel.js.map +1 -0
  54. package/build/components/header/document-actions/index.js +1 -1
  55. package/build/components/header/document-actions/index.js.map +1 -1
  56. package/build/components/header/plugin-more-menu-item/index.js +82 -0
  57. package/build/components/header/plugin-more-menu-item/index.js.map +1 -0
  58. package/build/components/header/plugin-sidebar-more-menu-item/index.js +75 -0
  59. package/build/components/header/plugin-sidebar-more-menu-item/index.js.map +1 -0
  60. package/build/components/header/undo-redo/redo.js +1 -1
  61. package/build/components/header/undo-redo/redo.js.map +1 -1
  62. package/build/components/header/undo-redo/undo.js +1 -1
  63. package/build/components/header/undo-redo/undo.js.map +1 -1
  64. package/build/components/keyboard-shortcuts/index.js +2 -10
  65. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  66. package/build/components/navigation-sidebar/index.js +1 -1
  67. package/build/components/navigation-sidebar/index.js.map +1 -1
  68. package/build/components/navigation-sidebar/navigation-panel/constants.js +10 -10
  69. package/build/components/navigation-sidebar/navigation-panel/constants.js.map +1 -1
  70. package/build/components/navigation-sidebar/navigation-panel/content-navigation-item.js +1 -3
  71. package/build/components/navigation-sidebar/navigation-panel/content-navigation-item.js.map +1 -1
  72. package/build/components/save-button/index.js +1 -1
  73. package/build/components/save-button/index.js.map +1 -1
  74. package/build/components/secondary-sidebar/inserter-sidebar.js +2 -1
  75. package/build/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
  76. package/build/components/sidebar/global-styles-sidebar.js +11 -161
  77. package/build/components/sidebar/global-styles-sidebar.js.map +1 -1
  78. package/build/components/sidebar/index.js +1 -6
  79. package/build/components/sidebar/index.js.map +1 -1
  80. package/build/components/sidebar/plugin-sidebar/index.js +95 -0
  81. package/build/components/sidebar/plugin-sidebar/index.js.map +1 -0
  82. package/build/components/template-details/index.js +12 -6
  83. package/build/components/template-details/index.js.map +1 -1
  84. package/build/components/template-details/template-areas.js +73 -0
  85. package/build/components/template-details/template-areas.js.map +1 -0
  86. package/build/components/template-part-converter/convert-to-regular.js +3 -3
  87. package/build/components/template-part-converter/convert-to-regular.js.map +1 -1
  88. package/build/components/template-part-converter/index.js +1 -1
  89. package/build/components/template-part-converter/index.js.map +1 -1
  90. package/build/components/url-query-controller/index.js +1 -1
  91. package/build/components/url-query-controller/index.js.map +1 -1
  92. package/build/index.js +24 -0
  93. package/build/index.js.map +1 -1
  94. package/build/store/actions.js +60 -7
  95. package/build/store/actions.js.map +1 -1
  96. package/build/store/constants.js +19 -1
  97. package/build/store/constants.js.map +1 -1
  98. package/build/store/reducer.js +16 -7
  99. package/build/store/reducer.js.map +1 -1
  100. package/build/store/selectors.js +91 -9
  101. package/build/store/selectors.js.map +1 -1
  102. package/build-module/components/block-editor/back-button.js +48 -0
  103. package/build-module/components/block-editor/back-button.js.map +1 -0
  104. package/build-module/components/block-editor/index.js +17 -5
  105. package/build-module/components/block-editor/index.js.map +1 -1
  106. package/build-module/components/edit-template-part-menu-button/index.js +49 -0
  107. package/build-module/components/edit-template-part-menu-button/index.js.map +1 -0
  108. package/build-module/components/editor/global-styles-provider.js +16 -3
  109. package/build-module/components/editor/global-styles-provider.js.map +1 -1
  110. package/build-module/components/editor/global-styles-renderer.js +8 -8
  111. package/build-module/components/editor/global-styles-renderer.js.map +1 -1
  112. package/build-module/components/editor/index.js +4 -5
  113. package/build-module/components/editor/index.js.map +1 -1
  114. package/build-module/components/editor/utils.js +2 -7
  115. package/build-module/components/editor/utils.js.map +1 -1
  116. package/build-module/components/{sidebar → global-styles}/border-panel.js +2 -2
  117. package/build-module/components/global-styles/border-panel.js.map +1 -0
  118. package/build-module/components/{sidebar → global-styles}/color-palette-panel.js +4 -2
  119. package/build-module/components/global-styles/color-palette-panel.js.map +1 -0
  120. package/build-module/components/{sidebar → global-styles}/color-panel.js +25 -22
  121. package/build-module/components/global-styles/color-panel.js.map +1 -0
  122. package/build-module/components/global-styles/context-menu.js +41 -0
  123. package/build-module/components/global-styles/context-menu.js.map +1 -0
  124. package/build-module/components/{sidebar → global-styles}/dimensions-panel.js +58 -9
  125. package/build-module/components/global-styles/dimensions-panel.js.map +1 -0
  126. package/build-module/components/global-styles/header.js +41 -0
  127. package/build-module/components/global-styles/header.js.map +1 -0
  128. package/build-module/components/global-styles/index.js +70 -0
  129. package/build-module/components/global-styles/index.js.map +1 -0
  130. package/build-module/components/global-styles/navigation-button.js +31 -0
  131. package/build-module/components/global-styles/navigation-button.js.map +1 -0
  132. package/build-module/components/global-styles/palette.js +43 -0
  133. package/build-module/components/global-styles/palette.js.map +1 -0
  134. package/build-module/components/global-styles/preview.js +50 -0
  135. package/build-module/components/global-styles/preview.js.map +1 -0
  136. package/build-module/components/global-styles/screen-block-list.js +58 -0
  137. package/build-module/components/global-styles/screen-block-list.js.map +1 -0
  138. package/build-module/components/global-styles/screen-block.js +32 -0
  139. package/build-module/components/global-styles/screen-block.js.map +1 -0
  140. package/build-module/components/global-styles/screen-color-palette.js +35 -0
  141. package/build-module/components/global-styles/screen-color-palette.js.map +1 -0
  142. package/build-module/components/global-styles/screen-colors.js +38 -0
  143. package/build-module/components/global-styles/screen-colors.js.map +1 -0
  144. package/build-module/components/global-styles/screen-layout.js +44 -0
  145. package/build-module/components/global-styles/screen-layout.js.map +1 -0
  146. package/build-module/components/global-styles/screen-root.js +29 -0
  147. package/build-module/components/global-styles/screen-root.js.map +1 -0
  148. package/build-module/components/global-styles/screen-typography.js +37 -0
  149. package/build-module/components/global-styles/screen-typography.js.map +1 -0
  150. package/build-module/components/global-styles/subtitle.js +17 -0
  151. package/build-module/components/global-styles/subtitle.js.map +1 -0
  152. package/build-module/components/{sidebar → global-styles}/typography-panel.js +1 -2
  153. package/build-module/components/global-styles/typography-panel.js.map +1 -0
  154. package/build-module/components/header/document-actions/index.js +1 -1
  155. package/build-module/components/header/document-actions/index.js.map +1 -1
  156. package/build-module/components/header/plugin-more-menu-item/index.js +70 -0
  157. package/build-module/components/header/plugin-more-menu-item/index.js.map +1 -0
  158. package/build-module/components/header/plugin-sidebar-more-menu-item/index.js +64 -0
  159. package/build-module/components/header/plugin-sidebar-more-menu-item/index.js.map +1 -0
  160. package/build-module/components/header/undo-redo/redo.js +1 -1
  161. package/build-module/components/header/undo-redo/redo.js.map +1 -1
  162. package/build-module/components/header/undo-redo/undo.js +1 -1
  163. package/build-module/components/header/undo-redo/undo.js.map +1 -1
  164. package/build-module/components/keyboard-shortcuts/index.js +3 -11
  165. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  166. package/build-module/components/navigation-sidebar/index.js +1 -1
  167. package/build-module/components/navigation-sidebar/index.js.map +1 -1
  168. package/build-module/components/navigation-sidebar/navigation-panel/constants.js +5 -3
  169. package/build-module/components/navigation-sidebar/navigation-panel/constants.js.map +1 -1
  170. package/build-module/components/navigation-sidebar/navigation-panel/content-navigation-item.js +1 -3
  171. package/build-module/components/navigation-sidebar/navigation-panel/content-navigation-item.js.map +1 -1
  172. package/build-module/components/save-button/index.js +1 -1
  173. package/build-module/components/save-button/index.js.map +1 -1
  174. package/build-module/components/secondary-sidebar/inserter-sidebar.js +2 -1
  175. package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
  176. package/build-module/components/sidebar/global-styles-sidebar.js +13 -159
  177. package/build-module/components/sidebar/global-styles-sidebar.js.map +1 -1
  178. package/build-module/components/sidebar/index.js +2 -7
  179. package/build-module/components/sidebar/index.js.map +1 -1
  180. package/build-module/components/sidebar/plugin-sidebar/index.js +84 -0
  181. package/build-module/components/sidebar/plugin-sidebar/index.js.map +1 -0
  182. package/build-module/components/template-details/index.js +13 -8
  183. package/build-module/components/template-details/index.js.map +1 -1
  184. package/build-module/components/template-details/template-areas.js +60 -0
  185. package/build-module/components/template-details/template-areas.js.map +1 -0
  186. package/build-module/components/template-part-converter/convert-to-regular.js +3 -3
  187. package/build-module/components/template-part-converter/convert-to-regular.js.map +1 -1
  188. package/build-module/components/template-part-converter/index.js +1 -1
  189. package/build-module/components/template-part-converter/index.js.map +1 -1
  190. package/build-module/components/url-query-controller/index.js +1 -1
  191. package/build-module/components/url-query-controller/index.js.map +1 -1
  192. package/build-module/index.js +3 -0
  193. package/build-module/index.js.map +1 -1
  194. package/build-module/store/actions.js +51 -7
  195. package/build-module/store/actions.js.map +1 -1
  196. package/build-module/store/constants.js +13 -0
  197. package/build-module/store/constants.js.map +1 -1
  198. package/build-module/store/reducer.js +16 -7
  199. package/build-module/store/reducer.js.map +1 -1
  200. package/build-module/store/selectors.js +85 -9
  201. package/build-module/store/selectors.js.map +1 -1
  202. package/build-style/style-rtl.css +158 -19
  203. package/build-style/style.css +158 -19
  204. package/package.json +26 -26
  205. package/src/components/block-editor/back-button.js +44 -0
  206. package/src/components/block-editor/index.js +18 -2
  207. package/src/components/block-editor/style.scss +26 -0
  208. package/src/components/edit-template-part-menu-button/index.js +57 -0
  209. package/src/components/editor/global-styles-provider.js +19 -3
  210. package/src/components/editor/global-styles-renderer.js +8 -5
  211. package/src/components/editor/index.js +5 -8
  212. package/src/components/editor/test/global-styles-provider.js +131 -0
  213. package/src/components/editor/test/global-styles-renderer.js +1 -1
  214. package/src/components/editor/test/utils.js +146 -0
  215. package/src/components/editor/utils.js +2 -7
  216. package/src/components/{sidebar → global-styles}/border-panel.js +2 -2
  217. package/src/components/{sidebar → global-styles}/color-palette-panel.js +13 -11
  218. package/src/components/{sidebar → global-styles}/color-panel.js +43 -28
  219. package/src/components/global-styles/context-menu.js +54 -0
  220. package/src/components/{sidebar → global-styles}/dimensions-panel.js +60 -9
  221. package/src/components/global-styles/header.js +50 -0
  222. package/src/components/global-styles/index.js +81 -0
  223. package/src/components/global-styles/navigation-button.js +35 -0
  224. package/src/components/global-styles/palette.js +67 -0
  225. package/src/components/global-styles/preview.js +41 -0
  226. package/src/components/global-styles/screen-block-list.js +59 -0
  227. package/src/components/global-styles/screen-block.js +28 -0
  228. package/src/components/global-styles/screen-color-palette.js +33 -0
  229. package/src/components/global-styles/screen-colors.js +36 -0
  230. package/src/components/global-styles/screen-layout.js +45 -0
  231. package/src/components/global-styles/screen-root.js +43 -0
  232. package/src/components/global-styles/screen-typography.js +33 -0
  233. package/src/components/global-styles/style.scss +35 -0
  234. package/src/components/global-styles/subtitle.js +10 -0
  235. package/src/components/{sidebar → global-styles}/typography-panel.js +1 -2
  236. package/src/components/header/document-actions/index.js +1 -1
  237. package/src/components/header/plugin-more-menu-item/index.js +71 -0
  238. package/src/components/header/plugin-sidebar-more-menu-item/index.js +64 -0
  239. package/src/components/header/undo-redo/redo.js +4 -1
  240. package/src/components/header/undo-redo/undo.js +4 -1
  241. package/src/components/keyboard-shortcuts/index.js +25 -40
  242. package/src/components/navigation-sidebar/index.js +1 -1
  243. package/src/components/navigation-sidebar/navigation-panel/constants.js +9 -4
  244. package/src/components/navigation-sidebar/navigation-panel/content-navigation-item.js +1 -1
  245. package/src/components/navigation-sidebar/navigation-panel/style.scss +1 -0
  246. package/src/components/navigation-sidebar/navigation-toggle/style.scss +3 -2
  247. package/src/components/save-button/index.js +1 -1
  248. package/src/components/secondary-sidebar/inserter-sidebar.js +1 -0
  249. package/src/components/sidebar/global-styles-sidebar.js +14 -187
  250. package/src/components/sidebar/index.js +2 -7
  251. package/src/components/sidebar/plugin-sidebar/index.js +80 -0
  252. package/src/components/sidebar/style.scss +40 -0
  253. package/src/components/template-details/index.js +17 -7
  254. package/src/components/template-details/style.scss +36 -27
  255. package/src/components/template-details/template-areas.js +66 -0
  256. package/src/components/template-part-converter/convert-to-regular.js +2 -8
  257. package/src/components/template-part-converter/index.js +1 -1
  258. package/src/components/url-query-controller/index.js +1 -1
  259. package/src/index.js +3 -0
  260. package/src/store/actions.js +59 -7
  261. package/src/store/constants.js +15 -0
  262. package/src/store/reducer.js +26 -12
  263. package/src/store/selectors.js +96 -9
  264. package/src/store/test/reducer.js +40 -23
  265. package/src/store/test/selectors.js +34 -3
  266. package/src/style.scss +1 -0
  267. package/build/components/sidebar/border-panel.js.map +0 -1
  268. package/build/components/sidebar/color-palette-panel.js.map +0 -1
  269. package/build/components/sidebar/color-panel.js.map +0 -1
  270. package/build/components/sidebar/dimensions-panel.js.map +0 -1
  271. package/build/components/sidebar/typography-panel.js.map +0 -1
  272. package/build-module/components/sidebar/border-panel.js.map +0 -1
  273. package/build-module/components/sidebar/color-palette-panel.js.map +0 -1
  274. package/build-module/components/sidebar/color-panel.js.map +0 -1
  275. package/build-module/components/sidebar/dimensions-panel.js.map +0 -1
  276. package/build-module/components/sidebar/typography-panel.js.map +0 -1
@@ -208,7 +208,7 @@ export const getNodesWithStyles = (tree, blockSelectors) => {
208
208
  return nodes;
209
209
  };
210
210
  export const getNodesWithSettings = (tree, blockSelectors) => {
211
- var _tree$settings2;
211
+ var _tree$settings, _tree$settings2;
212
212
 
213
213
  const nodes = [];
214
214
 
@@ -232,13 +232,12 @@ export const getNodesWithSettings = (tree, blockSelectors) => {
232
232
 
233
233
 
234
234
  const presets = pickPresets(tree.settings);
235
+ const custom = (_tree$settings = tree.settings) === null || _tree$settings === void 0 ? void 0 : _tree$settings.custom;
235
236
 
236
- if (!isEmpty(presets)) {
237
- var _tree$settings;
238
-
237
+ if (!isEmpty(presets) || !!custom) {
239
238
  nodes.push({
240
239
  presets,
241
- custom: (_tree$settings = tree.settings) === null || _tree$settings === void 0 ? void 0 : _tree$settings.custom,
240
+ custom,
242
241
  selector: ROOT_BLOCK_SELECTOR
243
242
  });
244
243
  } // Blocks.
@@ -246,11 +245,12 @@ export const getNodesWithSettings = (tree, blockSelectors) => {
246
245
 
247
246
  forEach((_tree$settings2 = tree.settings) === null || _tree$settings2 === void 0 ? void 0 : _tree$settings2.blocks, (node, blockName) => {
248
247
  const blockPresets = pickPresets(node);
248
+ const blockCustom = node.custom;
249
249
 
250
- if (!isEmpty(blockPresets)) {
250
+ if (!isEmpty(blockPresets) || !!blockCustom) {
251
251
  nodes.push({
252
252
  presets: blockPresets,
253
- custom: node.custom,
253
+ custom: blockCustom,
254
254
  selector: blockSelectors[blockName].selector
255
255
  });
256
256
  }
@@ -281,7 +281,7 @@ export const toCustomProperties = (tree, blockSelectors) => {
281
281
  export const toStyles = (tree, blockSelectors) => {
282
282
  const nodesWithStyles = getNodesWithStyles(tree, blockSelectors);
283
283
  const nodesWithSettings = getNodesWithSettings(tree, blockSelectors);
284
- let ruleset = '';
284
+ let ruleset = '.wp-site-blocks > * + * { margin-top: var( --wp--style--block-gap ); margin-bottom: 0; }';
285
285
  nodesWithStyles.forEach(({
286
286
  selector,
287
287
  styles
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/editor/global-styles-renderer.js"],"names":["first","forEach","get","isEmpty","isString","kebabCase","pickBy","reduce","set","startsWith","__EXPERIMENTAL_STYLE_PROPERTY","STYLE_PROPERTY","__EXPERIMENTAL_ELEMENTS","ELEMENTS","PRESET_METADATA","ROOT_BLOCK_SELECTOR","compileStyleValue","uncompiledValue","VARIABLE_REFERENCE_PREFIX","VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE","VARIABLE_PATH_SEPARATOR_TOKEN_STYLE","variable","slice","length","split","join","getPresetsDeclarations","blockPresets","declarations","path","valueKey","cssVarInfix","presetByOrigin","origin","value","push","slug","getPresetsClasses","blockSelector","classes","classSuffix","propertyName","classSelectorToUse","selectorToUse","map","selector","flattenTree","input","prefix","token","result","Object","keys","key","newKey","replace","newLeaf","newPrefix","getStylesDeclarations","blockStyles","properties","pathToValue","styleValue","entries","entry","name","prop","cssProperty","getNodesWithStyles","tree","blockSelectors","nodes","styles","pickStyleKeys","treeToPickFrom","includes","elements","blocks","node","blockName","elementName","getNodesWithSettings","settings","pickPresets","presets","custom","toCustomProperties","ruleset","customProps","toStyles","nodesWithStyles","nodesWithSettings"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tfirst,\n\tforEach,\n\tget,\n\tisEmpty,\n\tisString,\n\tkebabCase,\n\tpickBy,\n\treduce,\n\tset,\n\tstartsWith,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__EXPERIMENTAL_STYLE_PROPERTY as STYLE_PROPERTY,\n\t__EXPERIMENTAL_ELEMENTS as ELEMENTS,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { PRESET_METADATA, ROOT_BLOCK_SELECTOR } from './utils';\n\nfunction compileStyleValue( uncompiledValue ) {\n\tconst VARIABLE_REFERENCE_PREFIX = 'var:';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE = '|';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_STYLE = '--';\n\tif ( startsWith( uncompiledValue, VARIABLE_REFERENCE_PREFIX ) ) {\n\t\tconst variable = uncompiledValue\n\t\t\t.slice( VARIABLE_REFERENCE_PREFIX.length )\n\t\t\t.split( VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE )\n\t\t\t.join( VARIABLE_PATH_SEPARATOR_TOKEN_STYLE );\n\t\treturn `var(--wp--${ variable })`;\n\t}\n\treturn uncompiledValue;\n}\n\n/**\n * Transform given preset tree into a set of style declarations.\n *\n * @param {Object} blockPresets\n *\n * @return {Array} An array of style declarations.\n */\nfunction getPresetsDeclarations( blockPresets = {} ) {\n\treturn reduce(\n\t\tPRESET_METADATA,\n\t\t( declarations, { path, valueKey, cssVarInfix } ) => {\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\n\t\t\t[ 'core', 'theme', 'user' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( value ) => {\n\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t`--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\tvalue.slug\n\t\t\t\t\t\t\t) }: ${ value[ valueKey ] }`\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n}\n\n/**\n * Transform given preset tree into a set of preset class declarations.\n *\n * @param {string} blockSelector\n * @param {Object} blockPresets\n * @return {string} CSS declarations for the preset classes.\n */\nfunction getPresetsClasses( blockSelector, blockPresets = {} ) {\n\treturn reduce(\n\t\tPRESET_METADATA,\n\t\t( declarations, { path, cssVarInfix, classes } ) => {\n\t\t\tif ( ! classes ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\n\t\t\t[ 'core', 'theme', 'user' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( { slug } ) => {\n\t\t\t\t\t\tclasses.forEach( ( { classSuffix, propertyName } ) => {\n\t\t\t\t\t\t\tconst classSelectorToUse = `.has-${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) }-${ classSuffix }`;\n\t\t\t\t\t\t\tconst selectorToUse = blockSelector\n\t\t\t\t\t\t\t\t.split( ',' ) // Selector can be \"h1, h2, h3\"\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( selector ) =>\n\t\t\t\t\t\t\t\t\t\t`${ selector }${ classSelectorToUse }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ',' );\n\t\t\t\t\t\t\tconst value = `var(--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) })`;\n\t\t\t\t\t\t\tdeclarations += `${ selectorToUse }{${ propertyName }: ${ value } !important;}`;\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t\treturn declarations;\n\t\t},\n\t\t''\n\t);\n}\n\nfunction flattenTree( input = {}, prefix, token ) {\n\tlet result = [];\n\tObject.keys( input ).forEach( ( key ) => {\n\t\tconst newKey = prefix + kebabCase( key.replace( '/', '-' ) );\n\t\tconst newLeaf = input[ key ];\n\n\t\tif ( newLeaf instanceof Object ) {\n\t\t\tconst newPrefix = newKey + token;\n\t\t\tresult = [ ...result, ...flattenTree( newLeaf, newPrefix, token ) ];\n\t\t} else {\n\t\t\tresult.push( `${ newKey }: ${ newLeaf }` );\n\t\t}\n\t} );\n\treturn result;\n}\n\n/**\n * Transform given style tree into a set of style declarations.\n *\n * @param {Object} blockStyles Block styles.\n *\n * @return {Array} An array of style declarations.\n */\nfunction getStylesDeclarations( blockStyles = {} ) {\n\treturn reduce(\n\t\tSTYLE_PROPERTY,\n\t\t( declarations, { value, properties }, key ) => {\n\t\t\tconst pathToValue = value;\n\t\t\tif ( first( pathToValue ) === 'elements' ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst styleValue = get( blockStyles, pathToValue );\n\n\t\t\tif ( !! properties && ! isString( styleValue ) ) {\n\t\t\t\tObject.entries( properties ).forEach( ( entry ) => {\n\t\t\t\t\tconst [ name, prop ] = entry;\n\n\t\t\t\t\tif ( ! get( styleValue, [ prop ], false ) ) {\n\t\t\t\t\t\t// Do not create a declaration\n\t\t\t\t\t\t// for sub-properties that don't have any value.\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst cssProperty = kebabCase( name );\n\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\t\tget( styleValue, [ prop ] )\n\t\t\t\t\t\t) }`\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t} else if ( get( blockStyles, pathToValue, false ) ) {\n\t\t\t\tconst cssProperty = key.startsWith( '--' )\n\t\t\t\t\t? key\n\t\t\t\t\t: kebabCase( key );\n\t\t\t\tdeclarations.push(\n\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\tget( blockStyles, pathToValue )\n\t\t\t\t\t) }`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n}\n\nexport const getNodesWithStyles = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.styles ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickStyleKeys = ( treeToPickFrom ) =>\n\t\tpickBy( treeToPickFrom, ( value, key ) =>\n\t\t\t[ 'border', 'color', 'spacing', 'typography' ].includes( key )\n\t\t);\n\n\t// Top-level.\n\tconst styles = pickStyleKeys( tree.styles );\n\tif ( !! styles ) {\n\t\tnodes.push( {\n\t\t\tstyles,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\tforEach( tree.styles?.elements, ( value, key ) => {\n\t\tif ( !! value && !! ELEMENTS[ key ] ) {\n\t\t\tnodes.push( {\n\t\t\t\tstyles: value,\n\t\t\t\tselector: ELEMENTS[ key ],\n\t\t\t} );\n\t\t}\n\t} );\n\n\t// Iterate over blocks: they can have styles & elements.\n\tforEach( tree.styles?.blocks, ( node, blockName ) => {\n\t\tconst blockStyles = pickStyleKeys( node );\n\t\tif ( !! blockStyles && !! blockSelectors?.[ blockName ]?.selector ) {\n\t\t\tnodes.push( {\n\t\t\t\tstyles: blockStyles,\n\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t} );\n\t\t}\n\n\t\tforEach( node?.elements, ( value, elementName ) => {\n\t\t\tif (\n\t\t\t\t!! value &&\n\t\t\t\t!! blockSelectors?.[ blockName ]?.elements?.[ elementName ]\n\t\t\t) {\n\t\t\t\tnodes.push( {\n\t\t\t\t\tstyles: value,\n\t\t\t\t\tselector:\n\t\t\t\t\t\tblockSelectors[ blockName ].elements[ elementName ],\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t} );\n\n\treturn nodes;\n};\n\nexport const getNodesWithSettings = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.settings ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickPresets = ( treeToPickFrom ) => {\n\t\tconst presets = {};\n\t\tPRESET_METADATA.forEach( ( { path } ) => {\n\t\t\tconst value = get( treeToPickFrom, path, false );\n\t\t\tif ( value !== false ) {\n\t\t\t\tset( presets, path, value );\n\t\t\t}\n\t\t} );\n\t\treturn presets;\n\t};\n\n\t// Top-level.\n\tconst presets = pickPresets( tree.settings );\n\tif ( ! isEmpty( presets ) ) {\n\t\tnodes.push( {\n\t\t\tpresets,\n\t\t\tcustom: tree.settings?.custom,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\n\t// Blocks.\n\tforEach( tree.settings?.blocks, ( node, blockName ) => {\n\t\tconst blockPresets = pickPresets( node );\n\t\tif ( ! isEmpty( blockPresets ) ) {\n\t\t\tnodes.push( {\n\t\t\t\tpresets: blockPresets,\n\t\t\t\tcustom: node.custom,\n\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn nodes;\n};\n\nexport const toCustomProperties = ( tree, blockSelectors ) => {\n\tconst settings = getNodesWithSettings( tree, blockSelectors );\n\n\tlet ruleset = '';\n\tsettings.forEach( ( { presets, custom, selector } ) => {\n\t\tconst declarations = getPresetsDeclarations( presets );\n\t\tconst customProps = flattenTree( custom, '--wp--custom--', '--' );\n\t\tif ( customProps.length > 0 ) {\n\t\t\tdeclarations.push( ...customProps );\n\t\t}\n\n\t\tif ( declarations.length > 0 ) {\n\t\t\truleset = ruleset + `${ selector }{${ declarations.join( ';' ) };}`;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n\nexport const toStyles = ( tree, blockSelectors ) => {\n\tconst nodesWithStyles = getNodesWithStyles( tree, blockSelectors );\n\tconst nodesWithSettings = getNodesWithSettings( tree, blockSelectors );\n\n\tlet ruleset = '';\n\tnodesWithStyles.forEach( ( { selector, styles } ) => {\n\t\tconst declarations = getStylesDeclarations( styles );\n\n\t\tif ( declarations.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\truleset = ruleset + `${ selector }{${ declarations.join( ';' ) };}`;\n\t} );\n\n\tnodesWithSettings.forEach( ( { selector, presets } ) => {\n\t\tif ( ROOT_BLOCK_SELECTOR === selector ) {\n\t\t\t// Do not add extra specificity for top-level classes.\n\t\t\tselector = '';\n\t\t}\n\n\t\tconst classes = getPresetsClasses( selector, presets );\n\t\tif ( ! isEmpty( classes ) ) {\n\t\t\truleset = ruleset + classes;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/editor/global-styles-renderer.js"],"names":["first","forEach","get","isEmpty","isString","kebabCase","pickBy","reduce","set","startsWith","__EXPERIMENTAL_STYLE_PROPERTY","STYLE_PROPERTY","__EXPERIMENTAL_ELEMENTS","ELEMENTS","PRESET_METADATA","ROOT_BLOCK_SELECTOR","compileStyleValue","uncompiledValue","VARIABLE_REFERENCE_PREFIX","VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE","VARIABLE_PATH_SEPARATOR_TOKEN_STYLE","variable","slice","length","split","join","getPresetsDeclarations","blockPresets","declarations","path","valueKey","cssVarInfix","presetByOrigin","origin","value","push","slug","getPresetsClasses","blockSelector","classes","classSuffix","propertyName","classSelectorToUse","selectorToUse","map","selector","flattenTree","input","prefix","token","result","Object","keys","key","newKey","replace","newLeaf","newPrefix","getStylesDeclarations","blockStyles","properties","pathToValue","styleValue","entries","entry","name","prop","cssProperty","getNodesWithStyles","tree","blockSelectors","nodes","styles","pickStyleKeys","treeToPickFrom","includes","elements","blocks","node","blockName","elementName","getNodesWithSettings","settings","pickPresets","presets","custom","blockCustom","toCustomProperties","ruleset","customProps","toStyles","nodesWithStyles","nodesWithSettings"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tfirst,\n\tforEach,\n\tget,\n\tisEmpty,\n\tisString,\n\tkebabCase,\n\tpickBy,\n\treduce,\n\tset,\n\tstartsWith,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__EXPERIMENTAL_STYLE_PROPERTY as STYLE_PROPERTY,\n\t__EXPERIMENTAL_ELEMENTS as ELEMENTS,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { PRESET_METADATA, ROOT_BLOCK_SELECTOR } from './utils';\n\nfunction compileStyleValue( uncompiledValue ) {\n\tconst VARIABLE_REFERENCE_PREFIX = 'var:';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE = '|';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_STYLE = '--';\n\tif ( startsWith( uncompiledValue, VARIABLE_REFERENCE_PREFIX ) ) {\n\t\tconst variable = uncompiledValue\n\t\t\t.slice( VARIABLE_REFERENCE_PREFIX.length )\n\t\t\t.split( VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE )\n\t\t\t.join( VARIABLE_PATH_SEPARATOR_TOKEN_STYLE );\n\t\treturn `var(--wp--${ variable })`;\n\t}\n\treturn uncompiledValue;\n}\n\n/**\n * Transform given preset tree into a set of style declarations.\n *\n * @param {Object} blockPresets\n *\n * @return {Array} An array of style declarations.\n */\nfunction getPresetsDeclarations( blockPresets = {} ) {\n\treturn reduce(\n\t\tPRESET_METADATA,\n\t\t( declarations, { path, valueKey, cssVarInfix } ) => {\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\n\t\t\t[ 'core', 'theme', 'user' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( value ) => {\n\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t`--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\tvalue.slug\n\t\t\t\t\t\t\t) }: ${ value[ valueKey ] }`\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n}\n\n/**\n * Transform given preset tree into a set of preset class declarations.\n *\n * @param {string} blockSelector\n * @param {Object} blockPresets\n * @return {string} CSS declarations for the preset classes.\n */\nfunction getPresetsClasses( blockSelector, blockPresets = {} ) {\n\treturn reduce(\n\t\tPRESET_METADATA,\n\t\t( declarations, { path, cssVarInfix, classes } ) => {\n\t\t\tif ( ! classes ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\n\t\t\t[ 'core', 'theme', 'user' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( { slug } ) => {\n\t\t\t\t\t\tclasses.forEach( ( { classSuffix, propertyName } ) => {\n\t\t\t\t\t\t\tconst classSelectorToUse = `.has-${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) }-${ classSuffix }`;\n\t\t\t\t\t\t\tconst selectorToUse = blockSelector\n\t\t\t\t\t\t\t\t.split( ',' ) // Selector can be \"h1, h2, h3\"\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( selector ) =>\n\t\t\t\t\t\t\t\t\t\t`${ selector }${ classSelectorToUse }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ',' );\n\t\t\t\t\t\t\tconst value = `var(--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) })`;\n\t\t\t\t\t\t\tdeclarations += `${ selectorToUse }{${ propertyName }: ${ value } !important;}`;\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t\treturn declarations;\n\t\t},\n\t\t''\n\t);\n}\n\nfunction flattenTree( input = {}, prefix, token ) {\n\tlet result = [];\n\tObject.keys( input ).forEach( ( key ) => {\n\t\tconst newKey = prefix + kebabCase( key.replace( '/', '-' ) );\n\t\tconst newLeaf = input[ key ];\n\n\t\tif ( newLeaf instanceof Object ) {\n\t\t\tconst newPrefix = newKey + token;\n\t\t\tresult = [ ...result, ...flattenTree( newLeaf, newPrefix, token ) ];\n\t\t} else {\n\t\t\tresult.push( `${ newKey }: ${ newLeaf }` );\n\t\t}\n\t} );\n\treturn result;\n}\n\n/**\n * Transform given style tree into a set of style declarations.\n *\n * @param {Object} blockStyles Block styles.\n *\n * @return {Array} An array of style declarations.\n */\nfunction getStylesDeclarations( blockStyles = {} ) {\n\treturn reduce(\n\t\tSTYLE_PROPERTY,\n\t\t( declarations, { value, properties }, key ) => {\n\t\t\tconst pathToValue = value;\n\t\t\tif ( first( pathToValue ) === 'elements' ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst styleValue = get( blockStyles, pathToValue );\n\n\t\t\tif ( !! properties && ! isString( styleValue ) ) {\n\t\t\t\tObject.entries( properties ).forEach( ( entry ) => {\n\t\t\t\t\tconst [ name, prop ] = entry;\n\n\t\t\t\t\tif ( ! get( styleValue, [ prop ], false ) ) {\n\t\t\t\t\t\t// Do not create a declaration\n\t\t\t\t\t\t// for sub-properties that don't have any value.\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst cssProperty = kebabCase( name );\n\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\t\tget( styleValue, [ prop ] )\n\t\t\t\t\t\t) }`\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t} else if ( get( blockStyles, pathToValue, false ) ) {\n\t\t\t\tconst cssProperty = key.startsWith( '--' )\n\t\t\t\t\t? key\n\t\t\t\t\t: kebabCase( key );\n\t\t\t\tdeclarations.push(\n\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\tget( blockStyles, pathToValue )\n\t\t\t\t\t) }`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n}\n\nexport const getNodesWithStyles = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.styles ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickStyleKeys = ( treeToPickFrom ) =>\n\t\tpickBy( treeToPickFrom, ( value, key ) =>\n\t\t\t[ 'border', 'color', 'spacing', 'typography' ].includes( key )\n\t\t);\n\n\t// Top-level.\n\tconst styles = pickStyleKeys( tree.styles );\n\tif ( !! styles ) {\n\t\tnodes.push( {\n\t\t\tstyles,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\tforEach( tree.styles?.elements, ( value, key ) => {\n\t\tif ( !! value && !! ELEMENTS[ key ] ) {\n\t\t\tnodes.push( {\n\t\t\t\tstyles: value,\n\t\t\t\tselector: ELEMENTS[ key ],\n\t\t\t} );\n\t\t}\n\t} );\n\n\t// Iterate over blocks: they can have styles & elements.\n\tforEach( tree.styles?.blocks, ( node, blockName ) => {\n\t\tconst blockStyles = pickStyleKeys( node );\n\t\tif ( !! blockStyles && !! blockSelectors?.[ blockName ]?.selector ) {\n\t\t\tnodes.push( {\n\t\t\t\tstyles: blockStyles,\n\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t} );\n\t\t}\n\n\t\tforEach( node?.elements, ( value, elementName ) => {\n\t\t\tif (\n\t\t\t\t!! value &&\n\t\t\t\t!! blockSelectors?.[ blockName ]?.elements?.[ elementName ]\n\t\t\t) {\n\t\t\t\tnodes.push( {\n\t\t\t\t\tstyles: value,\n\t\t\t\t\tselector:\n\t\t\t\t\t\tblockSelectors[ blockName ].elements[ elementName ],\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t} );\n\n\treturn nodes;\n};\n\nexport const getNodesWithSettings = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.settings ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickPresets = ( treeToPickFrom ) => {\n\t\tconst presets = {};\n\t\tPRESET_METADATA.forEach( ( { path } ) => {\n\t\t\tconst value = get( treeToPickFrom, path, false );\n\t\t\tif ( value !== false ) {\n\t\t\t\tset( presets, path, value );\n\t\t\t}\n\t\t} );\n\t\treturn presets;\n\t};\n\n\t// Top-level.\n\tconst presets = pickPresets( tree.settings );\n\tconst custom = tree.settings?.custom;\n\tif ( ! isEmpty( presets ) || !! custom ) {\n\t\tnodes.push( {\n\t\t\tpresets,\n\t\t\tcustom,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\n\t// Blocks.\n\tforEach( tree.settings?.blocks, ( node, blockName ) => {\n\t\tconst blockPresets = pickPresets( node );\n\t\tconst blockCustom = node.custom;\n\t\tif ( ! isEmpty( blockPresets ) || !! blockCustom ) {\n\t\t\tnodes.push( {\n\t\t\t\tpresets: blockPresets,\n\t\t\t\tcustom: blockCustom,\n\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn nodes;\n};\n\nexport const toCustomProperties = ( tree, blockSelectors ) => {\n\tconst settings = getNodesWithSettings( tree, blockSelectors );\n\n\tlet ruleset = '';\n\tsettings.forEach( ( { presets, custom, selector } ) => {\n\t\tconst declarations = getPresetsDeclarations( presets );\n\t\tconst customProps = flattenTree( custom, '--wp--custom--', '--' );\n\t\tif ( customProps.length > 0 ) {\n\t\t\tdeclarations.push( ...customProps );\n\t\t}\n\n\t\tif ( declarations.length > 0 ) {\n\t\t\truleset = ruleset + `${ selector }{${ declarations.join( ';' ) };}`;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n\nexport const toStyles = ( tree, blockSelectors ) => {\n\tconst nodesWithStyles = getNodesWithStyles( tree, blockSelectors );\n\tconst nodesWithSettings = getNodesWithSettings( tree, blockSelectors );\n\n\tlet ruleset =\n\t\t'.wp-site-blocks > * + * { margin-top: var( --wp--style--block-gap ); margin-bottom: 0; }';\n\tnodesWithStyles.forEach( ( { selector, styles } ) => {\n\t\tconst declarations = getStylesDeclarations( styles );\n\n\t\tif ( declarations.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\truleset = ruleset + `${ selector }{${ declarations.join( ';' ) };}`;\n\t} );\n\n\tnodesWithSettings.forEach( ( { selector, presets } ) => {\n\t\tif ( ROOT_BLOCK_SELECTOR === selector ) {\n\t\t\t// Do not add extra specificity for top-level classes.\n\t\t\tselector = '';\n\t\t}\n\n\t\tconst classes = getPresetsClasses( selector, presets );\n\t\tif ( ! isEmpty( classes ) ) {\n\t\t\truleset = ruleset + classes;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n"]}
@@ -4,7 +4,7 @@ import { createElement, Fragment } from "@wordpress/element";
4
4
  * WordPress dependencies
5
5
  */
6
6
  import { useEffect, useState, useMemo, useCallback } from '@wordpress/element';
7
- import { AsyncModeProvider, useSelect, useDispatch } from '@wordpress/data';
7
+ import { useSelect, useDispatch } from '@wordpress/data';
8
8
  import { SlotFillProvider, Popover, Button, Notice } from '@wordpress/components';
9
9
  import { EntityProvider, store as coreStore } from '@wordpress/core-data';
10
10
  import { BlockContextProvider, BlockBreadcrumb } from '@wordpress/block-editor';
@@ -12,6 +12,7 @@ import { FullscreenMode, InterfaceSkeleton, ComplementaryArea, store as interfac
12
12
  import { EditorNotices, EditorSnackbars, EntitiesSavedStates, UnsavedChangesWarning, store as editorStore } from '@wordpress/editor';
13
13
  import { __ } from '@wordpress/i18n';
14
14
  import { PluginArea } from '@wordpress/plugins';
15
+ import { ShortcutProvider } from '@wordpress/keyboard-shortcuts';
15
16
  /**
16
17
  * Internal dependencies
17
18
  */
@@ -136,15 +137,13 @@ function Editor({
136
137
  }
137
138
 
138
139
  if (isListViewOpen) {
139
- return createElement(AsyncModeProvider, {
140
- value: "true"
141
- }, createElement(ListViewSidebar, null));
140
+ return createElement(ListViewSidebar, null);
142
141
  }
143
142
 
144
143
  return null;
145
144
  };
146
145
 
147
- return createElement(Fragment, null, createElement(URLQueryController, null), createElement(SlotFillProvider, null, createElement(EntityProvider, {
146
+ return createElement(ShortcutProvider, null, createElement(URLQueryController, null), createElement(SlotFillProvider, null, createElement(EntityProvider, {
148
147
  kind: "root",
149
148
  type: "site"
150
149
  }, createElement(EntityProvider, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/editor/index.js"],"names":["useEffect","useState","useMemo","useCallback","AsyncModeProvider","useSelect","useDispatch","SlotFillProvider","Popover","Button","Notice","EntityProvider","store","coreStore","BlockContextProvider","BlockBreadcrumb","FullscreenMode","InterfaceSkeleton","ComplementaryArea","interfaceStore","EditorNotices","EditorSnackbars","EntitiesSavedStates","UnsavedChangesWarning","editorStore","__","PluginArea","Header","SidebarComplementaryAreaFills","BlockEditor","KeyboardShortcuts","GlobalStylesProvider","NavigationSidebar","URLQueryController","InserterSidebar","ListViewSidebar","ErrorBoundary","editSiteStore","interfaceLabels","secondarySidebar","drawer","Editor","initialSettings","onError","isInserterOpen","isListViewOpen","sidebarIsOpened","settings","entityId","templateType","page","template","templateResolved","isNavigationOpen","select","isInserterOpened","isListViewOpened","getSettings","getEditedPostType","getEditedPostId","getPage","isNavigationOpened","hasFinishedResolution","getEntityRecord","postType","postId","getActiveComplementaryArea","name","updateEditorSettings","setPage","setIsInserterOpened","updateSettings","defaultTemplateTypes","defaultTemplatePartAreas","isEntitiesSavedStatesOpen","setIsEntitiesSavedStatesOpen","openEntitiesSavedStates","closeEntitiesSavedStates","blockContext","context","queryContext","newQueryContext","document","body","classList","add","remove","siteUrl","__experimentalGlobalStylesUserEntityId","__experimentalGlobalStylesBaseStyles"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState, useMemo, useCallback } from '@wordpress/element';\nimport { AsyncModeProvider, useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tSlotFillProvider,\n\tPopover,\n\tButton,\n\tNotice,\n} from '@wordpress/components';\nimport { EntityProvider, store as coreStore } from '@wordpress/core-data';\nimport { BlockContextProvider, BlockBreadcrumb } from '@wordpress/block-editor';\nimport {\n\tFullscreenMode,\n\tInterfaceSkeleton,\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport {\n\tEditorNotices,\n\tEditorSnackbars,\n\tEntitiesSavedStates,\n\tUnsavedChangesWarning,\n\tstore as editorStore,\n} from '@wordpress/editor';\nimport { __ } from '@wordpress/i18n';\nimport { PluginArea } from '@wordpress/plugins';\n\n/**\n * Internal dependencies\n */\nimport Header from '../header';\nimport { SidebarComplementaryAreaFills } from '../sidebar';\nimport BlockEditor from '../block-editor';\nimport KeyboardShortcuts from '../keyboard-shortcuts';\nimport GlobalStylesProvider from './global-styles-provider';\nimport NavigationSidebar from '../navigation-sidebar';\nimport URLQueryController from '../url-query-controller';\nimport InserterSidebar from '../secondary-sidebar/inserter-sidebar';\nimport ListViewSidebar from '../secondary-sidebar/list-view-sidebar';\nimport ErrorBoundary from '../error-boundary';\nimport { store as editSiteStore } from '../../store';\n\nconst interfaceLabels = {\n\tsecondarySidebar: __( 'Block Library' ),\n\tdrawer: __( 'Navigation Sidebar' ),\n};\n\nfunction Editor( { initialSettings, onError } ) {\n\tconst {\n\t\tisInserterOpen,\n\t\tisListViewOpen,\n\t\tsidebarIsOpened,\n\t\tsettings,\n\t\tentityId,\n\t\ttemplateType,\n\t\tpage,\n\t\ttemplate,\n\t\ttemplateResolved,\n\t\tisNavigationOpen,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisInserterOpened,\n\t\t\tisListViewOpened,\n\t\t\tgetSettings,\n\t\t\tgetEditedPostType,\n\t\t\tgetEditedPostId,\n\t\t\tgetPage,\n\t\t\tisNavigationOpened,\n\t\t} = select( editSiteStore );\n\t\tconst { hasFinishedResolution, getEntityRecord } = select( coreStore );\n\t\tconst postType = getEditedPostType();\n\t\tconst postId = getEditedPostId();\n\n\t\t// The currently selected entity to display. Typically template or template part.\n\t\treturn {\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tsidebarIsOpened: !! select(\n\t\t\t\tinterfaceStore\n\t\t\t).getActiveComplementaryArea( editSiteStore.name ),\n\t\t\tsettings: getSettings(),\n\t\t\ttemplateType: postType,\n\t\t\tpage: getPage(),\n\t\t\ttemplate: postId\n\t\t\t\t? getEntityRecord( 'postType', postType, postId )\n\t\t\t\t: null,\n\t\t\ttemplateResolved: postId\n\t\t\t\t? hasFinishedResolution( 'getEntityRecord', [\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tpostType,\n\t\t\t\t\t\tpostId,\n\t\t\t\t ] )\n\t\t\t\t: false,\n\t\t\tentityId: postId,\n\t\t\tisNavigationOpen: isNavigationOpened(),\n\t\t};\n\t}, [] );\n\tconst { updateEditorSettings } = useDispatch( editorStore );\n\tconst { setPage, setIsInserterOpened, updateSettings } = useDispatch(\n\t\teditSiteStore\n\t);\n\tuseEffect( () => {\n\t\tupdateSettings( initialSettings );\n\t}, [] );\n\n\t// Keep the defaultTemplateTypes in the core/editor settings too,\n\t// so that they can be selected with core/editor selectors in any editor.\n\t// This is needed because edit-site doesn't initialize with EditorProvider,\n\t// which internally uses updateEditorSettings as well.\n\tconst { defaultTemplateTypes, defaultTemplatePartAreas } = settings;\n\tuseEffect( () => {\n\t\tupdateEditorSettings( {\n\t\t\tdefaultTemplateTypes,\n\t\t\tdefaultTemplatePartAreas,\n\t\t} );\n\t}, [ defaultTemplateTypes, defaultTemplatePartAreas ] );\n\n\tconst [\n\t\tisEntitiesSavedStatesOpen,\n\t\tsetIsEntitiesSavedStatesOpen,\n\t] = useState( false );\n\tconst openEntitiesSavedStates = useCallback(\n\t\t() => setIsEntitiesSavedStatesOpen( true ),\n\t\t[]\n\t);\n\tconst closeEntitiesSavedStates = useCallback( () => {\n\t\tsetIsEntitiesSavedStatesOpen( false );\n\t}, [] );\n\n\tconst blockContext = useMemo(\n\t\t() => ( {\n\t\t\t...page?.context,\n\t\t\tqueryContext: [\n\t\t\t\tpage?.context.queryContext || { page: 1 },\n\t\t\t\t( newQueryContext ) =>\n\t\t\t\t\tsetPage( {\n\t\t\t\t\t\t...page,\n\t\t\t\t\t\tcontext: {\n\t\t\t\t\t\t\t...page?.context,\n\t\t\t\t\t\t\tqueryContext: {\n\t\t\t\t\t\t\t\t...page?.context.queryContext,\n\t\t\t\t\t\t\t\t...newQueryContext,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} ),\n\t\t\t],\n\t\t} ),\n\t\t[ page?.context ]\n\t);\n\n\tuseEffect( () => {\n\t\tif ( isNavigationOpen ) {\n\t\t\tdocument.body.classList.add( 'is-navigation-sidebar-open' );\n\t\t} else {\n\t\t\tdocument.body.classList.remove( 'is-navigation-sidebar-open' );\n\t\t}\n\t}, [ isNavigationOpen ] );\n\n\t// Don't render the Editor until the settings are set and loaded\n\tif ( ! settings?.siteUrl ) {\n\t\treturn null;\n\t}\n\n\tconst secondarySidebar = () => {\n\t\tif ( isInserterOpen ) {\n\t\t\treturn <InserterSidebar />;\n\t\t}\n\t\tif ( isListViewOpen ) {\n\t\t\treturn (\n\t\t\t\t<AsyncModeProvider value=\"true\">\n\t\t\t\t\t<ListViewSidebar />\n\t\t\t\t</AsyncModeProvider>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<URLQueryController />\n\t\t\t<SlotFillProvider>\n\t\t\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t\t\t<EntityProvider\n\t\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\t\ttype={ templateType }\n\t\t\t\t\t\tid={ entityId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<EntityProvider\n\t\t\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\t\t\ttype=\"wp_global_styles\"\n\t\t\t\t\t\t\tid={\n\t\t\t\t\t\t\t\tsettings.__experimentalGlobalStylesUserEntityId\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockContextProvider value={ blockContext }>\n\t\t\t\t\t\t\t\t<GlobalStylesProvider\n\t\t\t\t\t\t\t\t\tbaseStyles={\n\t\t\t\t\t\t\t\t\t\tsettings.__experimentalGlobalStylesBaseStyles\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ErrorBoundary onError={ onError }>\n\t\t\t\t\t\t\t\t\t\t<FullscreenMode isActive />\n\t\t\t\t\t\t\t\t\t\t<UnsavedChangesWarning />\n\t\t\t\t\t\t\t\t\t\t<KeyboardShortcuts.Register />\n\t\t\t\t\t\t\t\t\t\t<SidebarComplementaryAreaFills />\n\t\t\t\t\t\t\t\t\t\t<InterfaceSkeleton\n\t\t\t\t\t\t\t\t\t\t\tlabels={ interfaceLabels }\n\t\t\t\t\t\t\t\t\t\t\tdrawer={ <NavigationSidebar /> }\n\t\t\t\t\t\t\t\t\t\t\tsecondarySidebar={ secondarySidebar() }\n\t\t\t\t\t\t\t\t\t\t\tsidebar={\n\t\t\t\t\t\t\t\t\t\t\t\tsidebarIsOpened && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ComplementaryArea.Slot scope=\"core/edit-site\" />\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\theader={\n\t\t\t\t\t\t\t\t\t\t\t\t<Header\n\t\t\t\t\t\t\t\t\t\t\t\t\topenEntitiesSavedStates={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\topenEntitiesSavedStates\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\t\t\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<EditorNotices />\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ template && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<BlockEditor\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsInserterOpen={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsInserterOpened\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ templateResolved &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t! template &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsettings?.siteUrl &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tentityId && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisDismissible={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"You attempted to edit an item that doesn't exist. Perhaps it was deleted?\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t<KeyboardShortcuts />\n\t\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tactions={\n\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isEntitiesSavedStatesOpen ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<EntitiesSavedStates\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclose={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcloseEntitiesSavedStates\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"edit-site-editor__toggle-save-panel\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-editor__toggle-save-panel-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\topenEntitiesSavedStates\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-expanded={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Open save panel'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tfooter={ <BlockBreadcrumb /> }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<Popover.Slot />\n\t\t\t\t\t\t\t\t\t\t<PluginArea />\n\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t</GlobalStylesProvider>\n\t\t\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t\t\t</EntityProvider>\n\t\t\t\t\t</EntityProvider>\n\t\t\t\t</EntityProvider>\n\t\t\t</SlotFillProvider>\n\t\t</>\n\t);\n}\nexport default Editor;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/editor/index.js"],"names":["useEffect","useState","useMemo","useCallback","useSelect","useDispatch","SlotFillProvider","Popover","Button","Notice","EntityProvider","store","coreStore","BlockContextProvider","BlockBreadcrumb","FullscreenMode","InterfaceSkeleton","ComplementaryArea","interfaceStore","EditorNotices","EditorSnackbars","EntitiesSavedStates","UnsavedChangesWarning","editorStore","__","PluginArea","ShortcutProvider","Header","SidebarComplementaryAreaFills","BlockEditor","KeyboardShortcuts","GlobalStylesProvider","NavigationSidebar","URLQueryController","InserterSidebar","ListViewSidebar","ErrorBoundary","editSiteStore","interfaceLabels","secondarySidebar","drawer","Editor","initialSettings","onError","isInserterOpen","isListViewOpen","sidebarIsOpened","settings","entityId","templateType","page","template","templateResolved","isNavigationOpen","select","isInserterOpened","isListViewOpened","getSettings","getEditedPostType","getEditedPostId","getPage","isNavigationOpened","hasFinishedResolution","getEntityRecord","postType","postId","getActiveComplementaryArea","name","updateEditorSettings","setPage","setIsInserterOpened","updateSettings","defaultTemplateTypes","defaultTemplatePartAreas","isEntitiesSavedStatesOpen","setIsEntitiesSavedStatesOpen","openEntitiesSavedStates","closeEntitiesSavedStates","blockContext","context","queryContext","newQueryContext","document","body","classList","add","remove","siteUrl","__experimentalGlobalStylesUserEntityId","__experimentalGlobalStylesBaseStyles"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState, useMemo, useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tSlotFillProvider,\n\tPopover,\n\tButton,\n\tNotice,\n} from '@wordpress/components';\nimport { EntityProvider, store as coreStore } from '@wordpress/core-data';\nimport { BlockContextProvider, BlockBreadcrumb } from '@wordpress/block-editor';\nimport {\n\tFullscreenMode,\n\tInterfaceSkeleton,\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport {\n\tEditorNotices,\n\tEditorSnackbars,\n\tEntitiesSavedStates,\n\tUnsavedChangesWarning,\n\tstore as editorStore,\n} from '@wordpress/editor';\nimport { __ } from '@wordpress/i18n';\nimport { PluginArea } from '@wordpress/plugins';\nimport { ShortcutProvider } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport Header from '../header';\nimport { SidebarComplementaryAreaFills } from '../sidebar';\nimport BlockEditor from '../block-editor';\nimport KeyboardShortcuts from '../keyboard-shortcuts';\nimport GlobalStylesProvider from './global-styles-provider';\nimport NavigationSidebar from '../navigation-sidebar';\nimport URLQueryController from '../url-query-controller';\nimport InserterSidebar from '../secondary-sidebar/inserter-sidebar';\nimport ListViewSidebar from '../secondary-sidebar/list-view-sidebar';\nimport ErrorBoundary from '../error-boundary';\nimport { store as editSiteStore } from '../../store';\n\nconst interfaceLabels = {\n\tsecondarySidebar: __( 'Block Library' ),\n\tdrawer: __( 'Navigation Sidebar' ),\n};\n\nfunction Editor( { initialSettings, onError } ) {\n\tconst {\n\t\tisInserterOpen,\n\t\tisListViewOpen,\n\t\tsidebarIsOpened,\n\t\tsettings,\n\t\tentityId,\n\t\ttemplateType,\n\t\tpage,\n\t\ttemplate,\n\t\ttemplateResolved,\n\t\tisNavigationOpen,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisInserterOpened,\n\t\t\tisListViewOpened,\n\t\t\tgetSettings,\n\t\t\tgetEditedPostType,\n\t\t\tgetEditedPostId,\n\t\t\tgetPage,\n\t\t\tisNavigationOpened,\n\t\t} = select( editSiteStore );\n\t\tconst { hasFinishedResolution, getEntityRecord } = select( coreStore );\n\t\tconst postType = getEditedPostType();\n\t\tconst postId = getEditedPostId();\n\n\t\t// The currently selected entity to display. Typically template or template part.\n\t\treturn {\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tsidebarIsOpened: !! select(\n\t\t\t\tinterfaceStore\n\t\t\t).getActiveComplementaryArea( editSiteStore.name ),\n\t\t\tsettings: getSettings(),\n\t\t\ttemplateType: postType,\n\t\t\tpage: getPage(),\n\t\t\ttemplate: postId\n\t\t\t\t? getEntityRecord( 'postType', postType, postId )\n\t\t\t\t: null,\n\t\t\ttemplateResolved: postId\n\t\t\t\t? hasFinishedResolution( 'getEntityRecord', [\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tpostType,\n\t\t\t\t\t\tpostId,\n\t\t\t\t ] )\n\t\t\t\t: false,\n\t\t\tentityId: postId,\n\t\t\tisNavigationOpen: isNavigationOpened(),\n\t\t};\n\t}, [] );\n\tconst { updateEditorSettings } = useDispatch( editorStore );\n\tconst { setPage, setIsInserterOpened, updateSettings } = useDispatch(\n\t\teditSiteStore\n\t);\n\tuseEffect( () => {\n\t\tupdateSettings( initialSettings );\n\t}, [] );\n\n\t// Keep the defaultTemplateTypes in the core/editor settings too,\n\t// so that they can be selected with core/editor selectors in any editor.\n\t// This is needed because edit-site doesn't initialize with EditorProvider,\n\t// which internally uses updateEditorSettings as well.\n\tconst { defaultTemplateTypes, defaultTemplatePartAreas } = settings;\n\tuseEffect( () => {\n\t\tupdateEditorSettings( {\n\t\t\tdefaultTemplateTypes,\n\t\t\tdefaultTemplatePartAreas,\n\t\t} );\n\t}, [ defaultTemplateTypes, defaultTemplatePartAreas ] );\n\n\tconst [\n\t\tisEntitiesSavedStatesOpen,\n\t\tsetIsEntitiesSavedStatesOpen,\n\t] = useState( false );\n\tconst openEntitiesSavedStates = useCallback(\n\t\t() => setIsEntitiesSavedStatesOpen( true ),\n\t\t[]\n\t);\n\tconst closeEntitiesSavedStates = useCallback( () => {\n\t\tsetIsEntitiesSavedStatesOpen( false );\n\t}, [] );\n\n\tconst blockContext = useMemo(\n\t\t() => ( {\n\t\t\t...page?.context,\n\t\t\tqueryContext: [\n\t\t\t\tpage?.context.queryContext || { page: 1 },\n\t\t\t\t( newQueryContext ) =>\n\t\t\t\t\tsetPage( {\n\t\t\t\t\t\t...page,\n\t\t\t\t\t\tcontext: {\n\t\t\t\t\t\t\t...page?.context,\n\t\t\t\t\t\t\tqueryContext: {\n\t\t\t\t\t\t\t\t...page?.context.queryContext,\n\t\t\t\t\t\t\t\t...newQueryContext,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} ),\n\t\t\t],\n\t\t} ),\n\t\t[ page?.context ]\n\t);\n\n\tuseEffect( () => {\n\t\tif ( isNavigationOpen ) {\n\t\t\tdocument.body.classList.add( 'is-navigation-sidebar-open' );\n\t\t} else {\n\t\t\tdocument.body.classList.remove( 'is-navigation-sidebar-open' );\n\t\t}\n\t}, [ isNavigationOpen ] );\n\n\t// Don't render the Editor until the settings are set and loaded\n\tif ( ! settings?.siteUrl ) {\n\t\treturn null;\n\t}\n\n\tconst secondarySidebar = () => {\n\t\tif ( isInserterOpen ) {\n\t\t\treturn <InserterSidebar />;\n\t\t}\n\t\tif ( isListViewOpen ) {\n\t\t\treturn <ListViewSidebar />;\n\t\t}\n\t\treturn null;\n\t};\n\n\treturn (\n\t\t<ShortcutProvider>\n\t\t\t<URLQueryController />\n\t\t\t<SlotFillProvider>\n\t\t\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t\t\t<EntityProvider\n\t\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\t\ttype={ templateType }\n\t\t\t\t\t\tid={ entityId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<EntityProvider\n\t\t\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\t\t\ttype=\"wp_global_styles\"\n\t\t\t\t\t\t\tid={\n\t\t\t\t\t\t\t\tsettings.__experimentalGlobalStylesUserEntityId\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockContextProvider value={ blockContext }>\n\t\t\t\t\t\t\t\t<GlobalStylesProvider\n\t\t\t\t\t\t\t\t\tbaseStyles={\n\t\t\t\t\t\t\t\t\t\tsettings.__experimentalGlobalStylesBaseStyles\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ErrorBoundary onError={ onError }>\n\t\t\t\t\t\t\t\t\t\t<FullscreenMode isActive />\n\t\t\t\t\t\t\t\t\t\t<UnsavedChangesWarning />\n\t\t\t\t\t\t\t\t\t\t<KeyboardShortcuts.Register />\n\t\t\t\t\t\t\t\t\t\t<SidebarComplementaryAreaFills />\n\t\t\t\t\t\t\t\t\t\t<InterfaceSkeleton\n\t\t\t\t\t\t\t\t\t\t\tlabels={ interfaceLabels }\n\t\t\t\t\t\t\t\t\t\t\tdrawer={ <NavigationSidebar /> }\n\t\t\t\t\t\t\t\t\t\t\tsecondarySidebar={ secondarySidebar() }\n\t\t\t\t\t\t\t\t\t\t\tsidebar={\n\t\t\t\t\t\t\t\t\t\t\t\tsidebarIsOpened && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ComplementaryArea.Slot scope=\"core/edit-site\" />\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\theader={\n\t\t\t\t\t\t\t\t\t\t\t\t<Header\n\t\t\t\t\t\t\t\t\t\t\t\t\topenEntitiesSavedStates={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\topenEntitiesSavedStates\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\t\t\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<EditorNotices />\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ template && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<BlockEditor\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsInserterOpen={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsInserterOpened\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ templateResolved &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t! template &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsettings?.siteUrl &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tentityId && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisDismissible={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"You attempted to edit an item that doesn't exist. Perhaps it was deleted?\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t<KeyboardShortcuts />\n\t\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tactions={\n\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isEntitiesSavedStatesOpen ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<EntitiesSavedStates\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclose={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcloseEntitiesSavedStates\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"edit-site-editor__toggle-save-panel\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-editor__toggle-save-panel-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\topenEntitiesSavedStates\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-expanded={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Open save panel'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tfooter={ <BlockBreadcrumb /> }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<Popover.Slot />\n\t\t\t\t\t\t\t\t\t\t<PluginArea />\n\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t</GlobalStylesProvider>\n\t\t\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t\t\t</EntityProvider>\n\t\t\t\t\t</EntityProvider>\n\t\t\t\t</EntityProvider>\n\t\t\t</SlotFillProvider>\n\t\t</ShortcutProvider>\n\t);\n}\nexport default Editor;\n"]}
@@ -7,6 +7,7 @@ import { get, find, forEach, camelCase, isString } from 'lodash';
7
7
  */
8
8
 
9
9
  import { useSelect } from '@wordpress/data';
10
+ import { __EXPERIMENTAL_PATHS_WITH_MERGE as PATHS_WITH_MERGE } from '@wordpress/blocks';
10
11
  /**
11
12
  * Internal dependencies
12
13
  */
@@ -16,7 +17,7 @@ import { store as editSiteStore } from '../../store';
16
17
 
17
18
  export const ROOT_BLOCK_NAME = 'root';
18
19
  export const ROOT_BLOCK_SELECTOR = 'body';
19
- export const ROOT_BLOCK_SUPPORTS = ['background', 'backgroundColor', 'color', 'linkColor', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'lineHeight', 'textDecoration', 'textTransform'];
20
+ export const ROOT_BLOCK_SUPPORTS = ['background', 'backgroundColor', 'color', 'linkColor', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'lineHeight', 'textDecoration', 'textTransform', 'padding'];
20
21
  export const PRESET_METADATA = [{
21
22
  path: ['color', 'palette'],
22
23
  valueKey: 'color',
@@ -75,12 +76,6 @@ function getPresetMetadataFromStyleProperty(styleProperty) {
75
76
  return getPresetMetadataFromStyleProperty.MAP[styleProperty];
76
77
  }
77
78
 
78
- const PATHS_WITH_MERGE = {
79
- 'color.gradients': true,
80
- 'color.palette': true,
81
- 'typography.fontFamilies': true,
82
- 'typography.fontSizes': true
83
- };
84
79
  export function useSetting(path, blockName = '') {
85
80
  var _get;
86
81
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/editor/utils.js"],"names":["get","find","forEach","camelCase","isString","useSelect","store","editSiteStore","ROOT_BLOCK_NAME","ROOT_BLOCK_SELECTOR","ROOT_BLOCK_SUPPORTS","PRESET_METADATA","path","valueKey","cssVarInfix","classes","classSuffix","propertyName","STYLE_PROPERTIES_TO_CSS_VAR_INFIX","linkColor","backgroundColor","background","getPresetMetadataFromStyleProperty","styleProperty","MAP","index","value","key","PATHS_WITH_MERGE","useSetting","blockName","settings","select","getSettings","topLevelPath","blockPath","result","user","theme","core","findInPresetsBy","styles","context","presetPath","presetProperty","presetValueValue","orderedPresetsByOrigin","presetByOrigin","origins","origin","presets","presetObject","preset","highestPresetObjectWithSameSlug","slug","undefined","getPresetVariable","metadata","getValueFromPresetVariable","variable","presetType","getValueFromVariable","getValueFromCustomVariable","parsedVar","INTERNAL_REFERENCE_PREFIX","CSS_REFERENCE_PREFIX","CSS_REFERENCE_SUFFIX","startsWith","slice","length","split","endsWith","type"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, find, forEach, camelCase, isString } from 'lodash';\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\n\n/* Supporting data */\nexport const ROOT_BLOCK_NAME = 'root';\nexport const ROOT_BLOCK_SELECTOR = 'body';\nexport const ROOT_BLOCK_SUPPORTS = [\n\t'background',\n\t'backgroundColor',\n\t'color',\n\t'linkColor',\n\t'fontFamily',\n\t'fontSize',\n\t'fontStyle',\n\t'fontWeight',\n\t'lineHeight',\n\t'textDecoration',\n\t'textTransform',\n];\n\nexport const PRESET_METADATA = [\n\t{\n\t\tpath: [ 'color', 'palette' ],\n\t\tvalueKey: 'color',\n\t\tcssVarInfix: 'color',\n\t\tclasses: [\n\t\t\t{ classSuffix: 'color', propertyName: 'color' },\n\t\t\t{\n\t\t\t\tclassSuffix: 'background-color',\n\t\t\t\tpropertyName: 'background-color',\n\t\t\t},\n\t\t\t{\n\t\t\t\tclassSuffix: 'border-color',\n\t\t\t\tpropertyName: 'border-color',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tpath: [ 'color', 'gradients' ],\n\t\tvalueKey: 'gradient',\n\t\tcssVarInfix: 'gradient',\n\t\tclasses: [\n\t\t\t{\n\t\t\t\tclassSuffix: 'gradient-background',\n\t\t\t\tpropertyName: 'background',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tpath: [ 'typography', 'fontSizes' ],\n\t\tvalueKey: 'size',\n\t\tcssVarInfix: 'font-size',\n\t\tclasses: [ { classSuffix: 'font-size', propertyName: 'font-size' } ],\n\t},\n\t{\n\t\tpath: [ 'typography', 'fontFamilies' ],\n\t\tvalueKey: 'fontFamily',\n\t\tcssVarInfix: 'font-family',\n\t\tclasses: [],\n\t},\n];\n\nconst STYLE_PROPERTIES_TO_CSS_VAR_INFIX = {\n\tlinkColor: 'color',\n\tbackgroundColor: 'color',\n\tbackground: 'gradient',\n};\n\nfunction getPresetMetadataFromStyleProperty( styleProperty ) {\n\tif ( ! getPresetMetadataFromStyleProperty.MAP ) {\n\t\tgetPresetMetadataFromStyleProperty.MAP = {};\n\t\tPRESET_METADATA.forEach( ( { cssVarInfix }, index ) => {\n\t\t\tgetPresetMetadataFromStyleProperty.MAP[ camelCase( cssVarInfix ) ] =\n\t\t\t\tPRESET_METADATA[ index ];\n\t\t} );\n\t\tforEach( STYLE_PROPERTIES_TO_CSS_VAR_INFIX, ( value, key ) => {\n\t\t\tgetPresetMetadataFromStyleProperty.MAP[ key ] =\n\t\t\t\tgetPresetMetadataFromStyleProperty.MAP[ value ];\n\t\t} );\n\t}\n\treturn getPresetMetadataFromStyleProperty.MAP[ styleProperty ];\n}\n\nconst PATHS_WITH_MERGE = {\n\t'color.gradients': true,\n\t'color.palette': true,\n\t'typography.fontFamilies': true,\n\t'typography.fontSizes': true,\n};\n\nexport function useSetting( path, blockName = '' ) {\n\tconst settings = useSelect( ( select ) => {\n\t\treturn select( editSiteStore ).getSettings();\n\t} );\n\tconst topLevelPath = `__experimentalFeatures.${ path }`;\n\tconst blockPath = `__experimentalFeatures.blocks.${ blockName }.${ path }`;\n\tconst result = get( settings, blockPath ) ?? get( settings, topLevelPath );\n\tif ( result && PATHS_WITH_MERGE[ path ] ) {\n\t\treturn result.user ?? result.theme ?? result.core;\n\t}\n\treturn result;\n}\n\nfunction findInPresetsBy(\n\tstyles,\n\tcontext,\n\tpresetPath,\n\tpresetProperty,\n\tpresetValueValue\n) {\n\t// Block presets take priority above root level presets.\n\tconst orderedPresetsByOrigin = [\n\t\tget( styles, [ 'settings', 'blocks', context, ...presetPath ] ),\n\t\tget( styles, [ 'settings', ...presetPath ] ),\n\t];\n\tfor ( const presetByOrigin of orderedPresetsByOrigin ) {\n\t\tif ( presetByOrigin ) {\n\t\t\t// Preset origins ordered by priority.\n\t\t\tconst origins = [ 'user', 'theme', 'core' ];\n\t\t\tfor ( const origin of origins ) {\n\t\t\t\tconst presets = presetByOrigin[ origin ];\n\t\t\t\tif ( presets ) {\n\t\t\t\t\tconst presetObject = find(\n\t\t\t\t\t\tpresets,\n\t\t\t\t\t\t( preset ) =>\n\t\t\t\t\t\t\tpreset[ presetProperty ] === presetValueValue\n\t\t\t\t\t);\n\t\t\t\t\tif ( presetObject ) {\n\t\t\t\t\t\tif ( presetProperty === 'slug' ) {\n\t\t\t\t\t\t\treturn presetObject;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// if there is a highest priority preset with the same slug but different value the preset we found was overwritten and should be ignored.\n\t\t\t\t\t\tconst highestPresetObjectWithSameSlug = findInPresetsBy(\n\t\t\t\t\t\t\tstyles,\n\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\tpresetPath,\n\t\t\t\t\t\t\t'slug',\n\t\t\t\t\t\t\tpresetObject.slug\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\thighestPresetObjectWithSameSlug[\n\t\t\t\t\t\t\t\tpresetProperty\n\t\t\t\t\t\t\t] === presetObject[ presetProperty ]\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn presetObject;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function getPresetVariable( styles, context, propertyName, value ) {\n\tif ( ! value ) {\n\t\treturn value;\n\t}\n\n\tconst metadata = getPresetMetadataFromStyleProperty( propertyName );\n\tif ( ! metadata ) {\n\t\t// The property doesn't have preset data\n\t\t// so the value should be returned as it is.\n\t\treturn value;\n\t}\n\tconst { valueKey, path, cssVarInfix } = metadata;\n\n\tconst presetObject = findInPresetsBy(\n\t\tstyles,\n\t\tcontext,\n\t\tpath,\n\t\tvalueKey,\n\t\tvalue\n\t);\n\n\tif ( ! presetObject ) {\n\t\t// Value wasn't found in the presets,\n\t\t// so it must be a custom value.\n\t\treturn value;\n\t}\n\n\treturn `var:preset|${ cssVarInfix }|${ presetObject.slug }`;\n}\n\nfunction getValueFromPresetVariable(\n\tstyles,\n\tblockName,\n\tvariable,\n\t[ presetType, slug ]\n) {\n\tpresetType = camelCase( presetType );\n\tconst metadata = getPresetMetadataFromStyleProperty( presetType );\n\tif ( ! metadata ) {\n\t\treturn variable;\n\t}\n\n\tconst presetObject = findInPresetsBy(\n\t\tstyles,\n\t\tblockName,\n\t\tmetadata.path,\n\t\t'slug',\n\t\tslug\n\t);\n\n\tif ( presetObject ) {\n\t\tconst { valueKey } = metadata;\n\t\tconst result = presetObject[ valueKey ];\n\t\treturn getValueFromVariable( styles, blockName, result );\n\t}\n\n\treturn variable;\n}\n\nfunction getValueFromCustomVariable( styles, blockName, variable, path ) {\n\tconst result =\n\t\tget( styles, [ 'settings', 'blocks', blockName, 'custom', ...path ] ) ??\n\t\tget( styles, [ 'settings', 'custom', ...path ] );\n\tif ( ! result ) {\n\t\treturn variable;\n\t}\n\t// A variable may reference another variable so we need recursion until we find the value.\n\treturn getValueFromVariable( styles, blockName, result );\n}\n\nexport function getValueFromVariable( styles, blockName, variable ) {\n\tif ( ! variable || ! isString( variable ) ) {\n\t\treturn variable;\n\t}\n\n\tlet parsedVar;\n\tconst INTERNAL_REFERENCE_PREFIX = 'var:';\n\tconst CSS_REFERENCE_PREFIX = 'var(--wp--';\n\tconst CSS_REFERENCE_SUFFIX = ')';\n\tif ( variable.startsWith( INTERNAL_REFERENCE_PREFIX ) ) {\n\t\tparsedVar = variable\n\t\t\t.slice( INTERNAL_REFERENCE_PREFIX.length )\n\t\t\t.split( '|' );\n\t} else if (\n\t\tvariable.startsWith( CSS_REFERENCE_PREFIX ) &&\n\t\tvariable.endsWith( CSS_REFERENCE_SUFFIX )\n\t) {\n\t\tparsedVar = variable\n\t\t\t.slice( CSS_REFERENCE_PREFIX.length, -CSS_REFERENCE_SUFFIX.length )\n\t\t\t.split( '--' );\n\t} else {\n\t\t// Value is raw.\n\t\treturn variable;\n\t}\n\n\tconst [ type, ...path ] = parsedVar;\n\tif ( type === 'preset' ) {\n\t\treturn getValueFromPresetVariable( styles, blockName, variable, path );\n\t}\n\tif ( type === 'custom' ) {\n\t\treturn getValueFromCustomVariable( styles, blockName, variable, path );\n\t}\n\treturn variable;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/editor/utils.js"],"names":["get","find","forEach","camelCase","isString","useSelect","__EXPERIMENTAL_PATHS_WITH_MERGE","PATHS_WITH_MERGE","store","editSiteStore","ROOT_BLOCK_NAME","ROOT_BLOCK_SELECTOR","ROOT_BLOCK_SUPPORTS","PRESET_METADATA","path","valueKey","cssVarInfix","classes","classSuffix","propertyName","STYLE_PROPERTIES_TO_CSS_VAR_INFIX","linkColor","backgroundColor","background","getPresetMetadataFromStyleProperty","styleProperty","MAP","index","value","key","useSetting","blockName","settings","select","getSettings","topLevelPath","blockPath","result","user","theme","core","findInPresetsBy","styles","context","presetPath","presetProperty","presetValueValue","orderedPresetsByOrigin","presetByOrigin","origins","origin","presets","presetObject","preset","highestPresetObjectWithSameSlug","slug","undefined","getPresetVariable","metadata","getValueFromPresetVariable","variable","presetType","getValueFromVariable","getValueFromCustomVariable","parsedVar","INTERNAL_REFERENCE_PREFIX","CSS_REFERENCE_PREFIX","CSS_REFERENCE_SUFFIX","startsWith","slice","length","split","endsWith","type"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, find, forEach, camelCase, isString } from 'lodash';\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { __EXPERIMENTAL_PATHS_WITH_MERGE as PATHS_WITH_MERGE } from '@wordpress/blocks';\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\n\n/* Supporting data */\nexport const ROOT_BLOCK_NAME = 'root';\nexport const ROOT_BLOCK_SELECTOR = 'body';\nexport const ROOT_BLOCK_SUPPORTS = [\n\t'background',\n\t'backgroundColor',\n\t'color',\n\t'linkColor',\n\t'fontFamily',\n\t'fontSize',\n\t'fontStyle',\n\t'fontWeight',\n\t'lineHeight',\n\t'textDecoration',\n\t'textTransform',\n\t'padding',\n];\n\nexport const PRESET_METADATA = [\n\t{\n\t\tpath: [ 'color', 'palette' ],\n\t\tvalueKey: 'color',\n\t\tcssVarInfix: 'color',\n\t\tclasses: [\n\t\t\t{ classSuffix: 'color', propertyName: 'color' },\n\t\t\t{\n\t\t\t\tclassSuffix: 'background-color',\n\t\t\t\tpropertyName: 'background-color',\n\t\t\t},\n\t\t\t{\n\t\t\t\tclassSuffix: 'border-color',\n\t\t\t\tpropertyName: 'border-color',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tpath: [ 'color', 'gradients' ],\n\t\tvalueKey: 'gradient',\n\t\tcssVarInfix: 'gradient',\n\t\tclasses: [\n\t\t\t{\n\t\t\t\tclassSuffix: 'gradient-background',\n\t\t\t\tpropertyName: 'background',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tpath: [ 'typography', 'fontSizes' ],\n\t\tvalueKey: 'size',\n\t\tcssVarInfix: 'font-size',\n\t\tclasses: [ { classSuffix: 'font-size', propertyName: 'font-size' } ],\n\t},\n\t{\n\t\tpath: [ 'typography', 'fontFamilies' ],\n\t\tvalueKey: 'fontFamily',\n\t\tcssVarInfix: 'font-family',\n\t\tclasses: [],\n\t},\n];\n\nconst STYLE_PROPERTIES_TO_CSS_VAR_INFIX = {\n\tlinkColor: 'color',\n\tbackgroundColor: 'color',\n\tbackground: 'gradient',\n};\n\nfunction getPresetMetadataFromStyleProperty( styleProperty ) {\n\tif ( ! getPresetMetadataFromStyleProperty.MAP ) {\n\t\tgetPresetMetadataFromStyleProperty.MAP = {};\n\t\tPRESET_METADATA.forEach( ( { cssVarInfix }, index ) => {\n\t\t\tgetPresetMetadataFromStyleProperty.MAP[ camelCase( cssVarInfix ) ] =\n\t\t\t\tPRESET_METADATA[ index ];\n\t\t} );\n\t\tforEach( STYLE_PROPERTIES_TO_CSS_VAR_INFIX, ( value, key ) => {\n\t\t\tgetPresetMetadataFromStyleProperty.MAP[ key ] =\n\t\t\t\tgetPresetMetadataFromStyleProperty.MAP[ value ];\n\t\t} );\n\t}\n\treturn getPresetMetadataFromStyleProperty.MAP[ styleProperty ];\n}\n\nexport function useSetting( path, blockName = '' ) {\n\tconst settings = useSelect( ( select ) => {\n\t\treturn select( editSiteStore ).getSettings();\n\t} );\n\tconst topLevelPath = `__experimentalFeatures.${ path }`;\n\tconst blockPath = `__experimentalFeatures.blocks.${ blockName }.${ path }`;\n\tconst result = get( settings, blockPath ) ?? get( settings, topLevelPath );\n\tif ( result && PATHS_WITH_MERGE[ path ] ) {\n\t\treturn result.user ?? result.theme ?? result.core;\n\t}\n\treturn result;\n}\n\nfunction findInPresetsBy(\n\tstyles,\n\tcontext,\n\tpresetPath,\n\tpresetProperty,\n\tpresetValueValue\n) {\n\t// Block presets take priority above root level presets.\n\tconst orderedPresetsByOrigin = [\n\t\tget( styles, [ 'settings', 'blocks', context, ...presetPath ] ),\n\t\tget( styles, [ 'settings', ...presetPath ] ),\n\t];\n\tfor ( const presetByOrigin of orderedPresetsByOrigin ) {\n\t\tif ( presetByOrigin ) {\n\t\t\t// Preset origins ordered by priority.\n\t\t\tconst origins = [ 'user', 'theme', 'core' ];\n\t\t\tfor ( const origin of origins ) {\n\t\t\t\tconst presets = presetByOrigin[ origin ];\n\t\t\t\tif ( presets ) {\n\t\t\t\t\tconst presetObject = find(\n\t\t\t\t\t\tpresets,\n\t\t\t\t\t\t( preset ) =>\n\t\t\t\t\t\t\tpreset[ presetProperty ] === presetValueValue\n\t\t\t\t\t);\n\t\t\t\t\tif ( presetObject ) {\n\t\t\t\t\t\tif ( presetProperty === 'slug' ) {\n\t\t\t\t\t\t\treturn presetObject;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// if there is a highest priority preset with the same slug but different value the preset we found was overwritten and should be ignored.\n\t\t\t\t\t\tconst highestPresetObjectWithSameSlug = findInPresetsBy(\n\t\t\t\t\t\t\tstyles,\n\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\tpresetPath,\n\t\t\t\t\t\t\t'slug',\n\t\t\t\t\t\t\tpresetObject.slug\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\thighestPresetObjectWithSameSlug[\n\t\t\t\t\t\t\t\tpresetProperty\n\t\t\t\t\t\t\t] === presetObject[ presetProperty ]\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn presetObject;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function getPresetVariable( styles, context, propertyName, value ) {\n\tif ( ! value ) {\n\t\treturn value;\n\t}\n\n\tconst metadata = getPresetMetadataFromStyleProperty( propertyName );\n\tif ( ! metadata ) {\n\t\t// The property doesn't have preset data\n\t\t// so the value should be returned as it is.\n\t\treturn value;\n\t}\n\tconst { valueKey, path, cssVarInfix } = metadata;\n\n\tconst presetObject = findInPresetsBy(\n\t\tstyles,\n\t\tcontext,\n\t\tpath,\n\t\tvalueKey,\n\t\tvalue\n\t);\n\n\tif ( ! presetObject ) {\n\t\t// Value wasn't found in the presets,\n\t\t// so it must be a custom value.\n\t\treturn value;\n\t}\n\n\treturn `var:preset|${ cssVarInfix }|${ presetObject.slug }`;\n}\n\nfunction getValueFromPresetVariable(\n\tstyles,\n\tblockName,\n\tvariable,\n\t[ presetType, slug ]\n) {\n\tpresetType = camelCase( presetType );\n\tconst metadata = getPresetMetadataFromStyleProperty( presetType );\n\tif ( ! metadata ) {\n\t\treturn variable;\n\t}\n\n\tconst presetObject = findInPresetsBy(\n\t\tstyles,\n\t\tblockName,\n\t\tmetadata.path,\n\t\t'slug',\n\t\tslug\n\t);\n\n\tif ( presetObject ) {\n\t\tconst { valueKey } = metadata;\n\t\tconst result = presetObject[ valueKey ];\n\t\treturn getValueFromVariable( styles, blockName, result );\n\t}\n\n\treturn variable;\n}\n\nfunction getValueFromCustomVariable( styles, blockName, variable, path ) {\n\tconst result =\n\t\tget( styles, [ 'settings', 'blocks', blockName, 'custom', ...path ] ) ??\n\t\tget( styles, [ 'settings', 'custom', ...path ] );\n\tif ( ! result ) {\n\t\treturn variable;\n\t}\n\t// A variable may reference another variable so we need recursion until we find the value.\n\treturn getValueFromVariable( styles, blockName, result );\n}\n\nexport function getValueFromVariable( styles, blockName, variable ) {\n\tif ( ! variable || ! isString( variable ) ) {\n\t\treturn variable;\n\t}\n\n\tlet parsedVar;\n\tconst INTERNAL_REFERENCE_PREFIX = 'var:';\n\tconst CSS_REFERENCE_PREFIX = 'var(--wp--';\n\tconst CSS_REFERENCE_SUFFIX = ')';\n\tif ( variable.startsWith( INTERNAL_REFERENCE_PREFIX ) ) {\n\t\tparsedVar = variable\n\t\t\t.slice( INTERNAL_REFERENCE_PREFIX.length )\n\t\t\t.split( '|' );\n\t} else if (\n\t\tvariable.startsWith( CSS_REFERENCE_PREFIX ) &&\n\t\tvariable.endsWith( CSS_REFERENCE_SUFFIX )\n\t) {\n\t\tparsedVar = variable\n\t\t\t.slice( CSS_REFERENCE_PREFIX.length, -CSS_REFERENCE_SUFFIX.length )\n\t\t\t.split( '--' );\n\t} else {\n\t\t// Value is raw.\n\t\treturn variable;\n\t}\n\n\tconst [ type, ...path ] = parsedVar;\n\tif ( type === 'preset' ) {\n\t\treturn getValueFromPresetVariable( styles, blockName, variable, path );\n\t}\n\tif ( type === 'custom' ) {\n\t\treturn getValueFromCustomVariable( styles, blockName, variable, path );\n\t}\n\treturn variable;\n}\n"]}
@@ -32,7 +32,7 @@ export function useHasBorderPanel({
32
32
  supports,
33
33
  name
34
34
  })];
35
- return controls.every(Boolean);
35
+ return controls.some(Boolean);
36
36
  }
37
37
 
38
38
  function useHasBorderColorControl({
@@ -119,7 +119,7 @@ export default function BorderPanel({
119
119
  onChange: value => setStyle(name, 'borderStyle', value)
120
120
  })), hasBorderColor && createElement(ColorGradientControl, {
121
121
  label: __('Color'),
122
- value: borderColor,
122
+ colorValue: borderColor,
123
123
  colors: colors,
124
124
  gradients: undefined,
125
125
  disableCustomColors: disableCustomColors,
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/border-panel.js"],"names":["__experimentalBorderRadiusControl","BorderRadiusControl","__experimentalBorderStyleControl","BorderStyleControl","__experimentalColorGradientControl","ColorGradientControl","PanelBody","__experimentalUnitControl","UnitControl","__experimentalUseCustomUnits","useCustomUnits","__","useSetting","MIN_BORDER_WIDTH","EMPTY_ARRAY","useHasBorderPanel","supports","name","controls","useHasBorderColorControl","useHasBorderRadiusControl","useHasBorderStyleControl","useHasBorderWidthControl","some","Boolean","includes","BorderPanel","context","getStyle","setStyle","units","availableUnits","hasBorderWidth","borderWidthValue","hasBorderStyle","borderStyle","colors","disableCustomColors","disableCustomGradients","hasBorderColor","borderColor","hasBorderRadius","borderRadiusValues","value","undefined"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,iCAAiC,IAAIC,mBADtC,EAECC,gCAAgC,IAAIC,kBAFrC,EAGCC,kCAAkC,IAAIC,oBAHvC,QAIO,yBAJP;AAKA,SACCC,SADD,EAECC,yBAAyB,IAAIC,WAF9B,EAGCC,4BAA4B,IAAIC,cAHjC,QAIO,uBAJP;AAKA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,SAASC,UAAT,QAA2B,iBAA3B;AAEA,MAAMC,gBAAgB,GAAG,CAAzB,C,CAEA;AACA;;AACA,MAAMC,WAAW,GAAG,EAApB;AAEA,OAAO,SAASC,iBAAT,CAA4B;AAAEC,EAAAA,QAAF;AAAYC,EAAAA;AAAZ,CAA5B,EAAiD;AACvD,QAAMC,QAAQ,GAAG,CAChBC,wBAAwB,CAAE;AAAEH,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAF,CADR,EAEhBG,yBAAyB,CAAE;AAAEJ,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAF,CAFT,EAGhBI,wBAAwB,CAAE;AAAEL,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAF,CAHR,EAIhBK,wBAAwB,CAAE;AAAEN,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAF,CAJR,CAAjB;AAOA,SAAOC,QAAQ,CAACK,IAAT,CAAeC,OAAf,CAAP;AACA;;AAED,SAASL,wBAAT,CAAmC;AAAEH,EAAAA,QAAF;AAAYC,EAAAA;AAAZ,CAAnC,EAAwD;AACvD,SACCL,UAAU,CAAE,oBAAF,EAAwBK,IAAxB,CAAV,IACAD,QAAQ,CAACS,QAAT,CAAmB,aAAnB,CAFD;AAIA;;AAED,SAASL,yBAAT,CAAoC;AAAEJ,EAAAA,QAAF;AAAYC,EAAAA;AAAZ,CAApC,EAAyD;AACxD,SACCL,UAAU,CAAE,qBAAF,EAAyBK,IAAzB,CAAV,IACAD,QAAQ,CAACS,QAAT,CAAmB,cAAnB,CAFD;AAIA;;AAED,SAASJ,wBAAT,CAAmC;AAAEL,EAAAA,QAAF;AAAYC,EAAAA;AAAZ,CAAnC,EAAwD;AACvD,SACCL,UAAU,CAAE,oBAAF,EAAwBK,IAAxB,CAAV,IACAD,QAAQ,CAACS,QAAT,CAAmB,aAAnB,CAFD;AAIA;;AAED,SAASH,wBAAT,CAAmC;AAAEN,EAAAA,QAAF;AAAYC,EAAAA;AAAZ,CAAnC,EAAwD;AACvD,SACCL,UAAU,CAAE,oBAAF,EAAwBK,IAAxB,CAAV,IACAD,QAAQ,CAACS,QAAT,CAAmB,aAAnB,CAFD;AAIA;;AAED,eAAe,SAASC,WAAT,CAAsB;AACpCC,EAAAA,OAAO,EAAE;AAAEX,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAD2B;AAEpCW,EAAAA,QAFoC;AAGpCC,EAAAA;AAHoC,CAAtB,EAIX;AACH,QAAMC,KAAK,GAAGpB,cAAc,CAAE;AAC7BqB,IAAAA,cAAc,EAAEnB,UAAU,CAAE,eAAF,CAAV,IAAiC,CAAE,IAAF,EAAQ,IAAR,EAAc,KAAd;AADpB,GAAF,CAA5B,CADG,CAKH;;AACA,QAAMoB,cAAc,GAAGV,wBAAwB,CAAE;AAAEN,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAF,CAA/C;AACA,QAAMgB,gBAAgB,GAAGL,QAAQ,CAAEX,IAAF,EAAQ,aAAR,CAAjC,CAPG,CASH;;AACA,QAAMiB,cAAc,GAAGb,wBAAwB,CAAE;AAAEL,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAF,CAA/C;AACA,QAAMkB,WAAW,GAAGP,QAAQ,CAAEX,IAAF,EAAQ,aAAR,CAA5B,CAXG,CAaH;;AACA,QAAMmB,MAAM,GAAGxB,UAAU,CAAE,eAAF,CAAV,IAAiCE,WAAhD;AACA,QAAMuB,mBAAmB,GAAG,CAAEzB,UAAU,CAAE,cAAF,CAAxC;AACA,QAAM0B,sBAAsB,GAAG,CAAE1B,UAAU,CAAE,sBAAF,CAA3C;AACA,QAAM2B,cAAc,GAAGpB,wBAAwB,CAAE;AAAEH,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAF,CAA/C;AACA,QAAMuB,WAAW,GAAGZ,QAAQ,CAAEX,IAAF,EAAQ,aAAR,CAA5B,CAlBG,CAoBH;;AACA,QAAMwB,eAAe,GAAGrB,yBAAyB,CAAE;AAAEJ,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAF,CAAjD;AACA,QAAMyB,kBAAkB,GAAGd,QAAQ,CAAEX,IAAF,EAAQ,cAAR,CAAnC;AAEA,SACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGN,EAAE,CAAE,QAAF,CAArB;AAAoC,IAAA,WAAW,EAAG;AAAlD,KACG,CAAEqB,cAAc,IAAIE,cAApB,KACD;AAAK,IAAA,SAAS,EAAC;AAAf,KACGF,cAAc,IACf,cAAC,WAAD;AACC,IAAA,KAAK,EAAGC,gBADT;AAEC,IAAA,KAAK,EAAGtB,EAAE,CAAE,OAAF,CAFX;AAGC,IAAA,GAAG,EAAGE,gBAHP;AAIC,IAAA,QAAQ,EAAK8B,KAAF,IAAa;AACvBd,MAAAA,QAAQ,CACPZ,IADO,EAEP,aAFO,EAGP0B,KAAK,IAAIC,SAHF,CAAR;AAKA,KAVF;AAWC,IAAA,KAAK,EAAGd;AAXT,IAFF,EAgBGI,cAAc,IACf,cAAC,kBAAD;AACC,IAAA,KAAK,EAAGC,WADT;AAEC,IAAA,QAAQ,EAAKQ,KAAF,IACVd,QAAQ,CAAEZ,IAAF,EAAQ,aAAR,EAAuB0B,KAAvB;AAHV,IAjBF,CAFF,EA4BGJ,cAAc,IACf,cAAC,oBAAD;AACC,IAAA,KAAK,EAAG5B,EAAE,CAAE,OAAF,CADX;AAEC,IAAA,UAAU,EAAG6B,WAFd;AAGC,IAAA,MAAM,EAAGJ,MAHV;AAIC,IAAA,SAAS,EAAGQ,SAJb;AAKC,IAAA,mBAAmB,EAAGP,mBALvB;AAMC,IAAA,sBAAsB,EAAGC,sBAN1B;AAOC,IAAA,aAAa,EAAKK,KAAF,IACfd,QAAQ,CAAEZ,IAAF,EAAQ,aAAR,EAAuB0B,KAAvB;AARV,IA7BF,EAyCGF,eAAe,IAChB,cAAC,mBAAD;AACC,IAAA,MAAM,EAAGC,kBADV;AAEC,IAAA,QAAQ,EAAKC,KAAF,IACVd,QAAQ,CAAEZ,IAAF,EAAQ,cAAR,EAAwB0B,KAAxB;AAHV,IA1CF,CADD;AAoDA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalBorderRadiusControl as BorderRadiusControl,\n\t__experimentalBorderStyleControl as BorderStyleControl,\n\t__experimentalColorGradientControl as ColorGradientControl,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useSetting } from '../editor/utils';\n\nconst MIN_BORDER_WIDTH = 0;\n\n// Defining empty array here instead of inline avoids unnecessary re-renders of\n// color control.\nconst EMPTY_ARRAY = [];\n\nexport function useHasBorderPanel( { supports, name } ) {\n\tconst controls = [\n\t\tuseHasBorderColorControl( { supports, name } ),\n\t\tuseHasBorderRadiusControl( { supports, name } ),\n\t\tuseHasBorderStyleControl( { supports, name } ),\n\t\tuseHasBorderWidthControl( { supports, name } ),\n\t];\n\n\treturn controls.some( Boolean );\n}\n\nfunction useHasBorderColorControl( { supports, name } ) {\n\treturn (\n\t\tuseSetting( 'border.customColor', name ) &&\n\t\tsupports.includes( 'borderColor' )\n\t);\n}\n\nfunction useHasBorderRadiusControl( { supports, name } ) {\n\treturn (\n\t\tuseSetting( 'border.customRadius', name ) &&\n\t\tsupports.includes( 'borderRadius' )\n\t);\n}\n\nfunction useHasBorderStyleControl( { supports, name } ) {\n\treturn (\n\t\tuseSetting( 'border.customStyle', name ) &&\n\t\tsupports.includes( 'borderStyle' )\n\t);\n}\n\nfunction useHasBorderWidthControl( { supports, name } ) {\n\treturn (\n\t\tuseSetting( 'border.customWidth', name ) &&\n\t\tsupports.includes( 'borderWidth' )\n\t);\n}\n\nexport default function BorderPanel( {\n\tcontext: { supports, name },\n\tgetStyle,\n\tsetStyle,\n} ) {\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],\n\t} );\n\n\t// Border width.\n\tconst hasBorderWidth = useHasBorderWidthControl( { supports, name } );\n\tconst borderWidthValue = getStyle( name, 'borderWidth' );\n\n\t// Border style.\n\tconst hasBorderStyle = useHasBorderStyleControl( { supports, name } );\n\tconst borderStyle = getStyle( name, 'borderStyle' );\n\n\t// Border color.\n\tconst colors = useSetting( 'color.palette' ) || EMPTY_ARRAY;\n\tconst disableCustomColors = ! useSetting( 'color.custom' );\n\tconst disableCustomGradients = ! useSetting( 'color.customGradient' );\n\tconst hasBorderColor = useHasBorderColorControl( { supports, name } );\n\tconst borderColor = getStyle( name, 'borderColor' );\n\n\t// Border radius.\n\tconst hasBorderRadius = useHasBorderRadiusControl( { supports, name } );\n\tconst borderRadiusValues = getStyle( name, 'borderRadius' );\n\n\treturn (\n\t\t<PanelBody title={ __( 'Border' ) } initialOpen={ true }>\n\t\t\t{ ( hasBorderWidth || hasBorderStyle ) && (\n\t\t\t\t<div className=\"edit-site-global-styles-sidebar__border-controls-row\">\n\t\t\t\t\t{ hasBorderWidth && (\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tvalue={ borderWidthValue }\n\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\tmin={ MIN_BORDER_WIDTH }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetStyle(\n\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\t'borderWidth',\n\t\t\t\t\t\t\t\t\tvalue || undefined\n\t\t\t\t\t\t\t\t);\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) }\n\t\t\t\t\t{ hasBorderStyle && (\n\t\t\t\t\t\t<BorderStyleControl\n\t\t\t\t\t\t\tvalue={ borderStyle }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetStyle( name, 'borderStyle', value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ hasBorderColor && (\n\t\t\t\t<ColorGradientControl\n\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\tcolorValue={ borderColor }\n\t\t\t\t\tcolors={ colors }\n\t\t\t\t\tgradients={ undefined }\n\t\t\t\t\tdisableCustomColors={ disableCustomColors }\n\t\t\t\t\tdisableCustomGradients={ disableCustomGradients }\n\t\t\t\t\tonColorChange={ ( value ) =>\n\t\t\t\t\t\tsetStyle( name, 'borderColor', value )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBorderRadius && (\n\t\t\t\t<BorderRadiusControl\n\t\t\t\t\tvalues={ borderRadiusValues }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetStyle( name, 'borderRadius', value )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</PanelBody>\n\t);\n}\n"]}
@@ -52,7 +52,9 @@ export default function ColorPalettePanel({
52
52
  slug
53
53
  }) => slug);
54
54
  }, [contextName]);
55
- return createElement(ColorEdit, {
55
+ return createElement("div", {
56
+ className: "edit-site-global-styles-color-palette-panel"
57
+ }, createElement(ColorEdit, {
56
58
  immutableColorSlugs: immutableColorSlugs,
57
59
  colors: colors,
58
60
  onChange: newColors => {
@@ -60,6 +62,6 @@ export default function ColorPalettePanel({
60
62
  },
61
63
  emptyUI: __('Colors are empty! Add some colors to create your own color palette.'),
62
64
  canReset: colors === userColors
63
- });
65
+ }));
64
66
  }
65
67
  //# sourceMappingURL=color-palette-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/color-palette-panel.js"],"names":["get","__experimentalColorEdit","ColorEdit","__","useSelect","useSetting","store","editSiteStore","EMPTY_ARRAY","ColorPalettePanel","contextName","getSetting","setSetting","colors","userColors","immutableColorSlugs","select","baseStyles","getSettings","__experimentalGlobalStylesBaseStyles","contextualBasePalette","globalPalette","basePalette","theme","core","map","slug","newColors"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,GAAT,QAAoB,QAApB;AAEA;AACA;AACA;;AACA,SAASC,uBAAuB,IAAIC,SAApC,QAAqD,uBAArD;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,KAAK,IAAIC,aAAlB,QAAuC,aAAvC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,WAAW,GAAG,EAApB;AAEA,eAAe,SAASC,iBAAT,CAA4B;AAC1CC,EAAAA,WAD0C;AAE1CC,EAAAA,UAF0C;AAG1CC,EAAAA;AAH0C,CAA5B,EAIX;AACH,QAAMC,MAAM,GAAGR,UAAU,CAAE,eAAF,EAAmBK,WAAnB,CAAzB;AACA,QAAMI,UAAU,GAAGH,UAAU,CAAED,WAAF,EAAe,eAAf,CAA7B;AACA,QAAMK,mBAAmB,GAAGX,SAAS,CAClCY,MAAF,IAAc;AAAA;;AACb,UAAMC,UAAU,GAAGD,MAAM,CAAET,aAAF,CAAN,CAAwBW,WAAxB,GACjBC,oCADF;;AAEA,UAAMC,qBAAqB,GAAGpB,GAAG,CAAEiB,UAAF,EAAc,CAC9C,UAD8C,EAE9C,QAF8C,EAG9CP,WAH8C,EAI9C,OAJ8C,EAK9C,SAL8C,CAAd,CAAjC;AAOA,UAAMW,aAAa,GAAGrB,GAAG,CAAEiB,UAAF,EAAc,CACtC,UADsC,EAEtC,OAFsC,EAGtC,SAHsC,CAAd,CAAzB;AAKA,UAAMK,WAAW,6CAChBF,qBADgB,aAChBA,qBADgB,uBAChBA,qBAAqB,CAAEG,KADP,yEAEhBH,qBAFgB,aAEhBA,qBAFgB,uBAEhBA,qBAAqB,CAAEI,IAFP,yCAGhBH,aAHgB,aAGhBA,aAHgB,uBAGhBA,aAAa,CAAEE,KAHC,uCAIhBF,aAJgB,aAIhBA,aAJgB,uBAIhBA,aAAa,CAAEG,IAJhB;;AAKA,QAAK,CAAEF,WAAP,EAAqB;AACpB,aAAOd,WAAP;AACA;;AACD,WAAOc,WAAW,CAACG,GAAZ,CAAiB,CAAE;AAAEC,MAAAA;AAAF,KAAF,KAAgBA,IAAjC,CAAP;AACA,GAzBmC,EA0BpC,CAAEhB,WAAF,CA1BoC,CAArC;AA4BA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,SAAD;AACC,IAAA,mBAAmB,EAAGK,mBADvB;AAEC,IAAA,MAAM,EAAGF,MAFV;AAGC,IAAA,QAAQ,EAAKc,SAAF,IAAiB;AAC3Bf,MAAAA,UAAU,CAAEF,WAAF,EAAe,eAAf,EAAgCiB,SAAhC,CAAV;AACA,KALF;AAMC,IAAA,OAAO,EAAGxB,EAAE,CACX,qEADW,CANb;AASC,IAAA,QAAQ,EAAGU,MAAM,KAAKC;AATvB,IADD,CADD;AAeA","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalColorEdit as ColorEdit } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useSetting } from '../editor/utils';\nimport { store as editSiteStore } from '../../store';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation, as in a connected or\n * other pure component which performs `shouldComponentUpdate` check on props.\n * This should be used as a last resort, since the normalized data should be\n * maintained by the reducer result in state.\n *\n * @type {Array}\n */\nconst EMPTY_ARRAY = [];\n\nexport default function ColorPalettePanel( {\n\tcontextName,\n\tgetSetting,\n\tsetSetting,\n} ) {\n\tconst colors = useSetting( 'color.palette', contextName );\n\tconst userColors = getSetting( contextName, 'color.palette' );\n\tconst immutableColorSlugs = useSelect(\n\t\t( select ) => {\n\t\t\tconst baseStyles = select( editSiteStore ).getSettings()\n\t\t\t\t.__experimentalGlobalStylesBaseStyles;\n\t\t\tconst contextualBasePalette = get( baseStyles, [\n\t\t\t\t'settings',\n\t\t\t\t'blocks',\n\t\t\t\tcontextName,\n\t\t\t\t'color',\n\t\t\t\t'palette',\n\t\t\t] );\n\t\t\tconst globalPalette = get( baseStyles, [\n\t\t\t\t'settings',\n\t\t\t\t'color',\n\t\t\t\t'palette',\n\t\t\t] );\n\t\t\tconst basePalette =\n\t\t\t\tcontextualBasePalette?.theme ??\n\t\t\t\tcontextualBasePalette?.core ??\n\t\t\t\tglobalPalette?.theme ??\n\t\t\t\tglobalPalette?.core;\n\t\t\tif ( ! basePalette ) {\n\t\t\t\treturn EMPTY_ARRAY;\n\t\t\t}\n\t\t\treturn basePalette.map( ( { slug } ) => slug );\n\t\t},\n\t\t[ contextName ]\n\t);\n\treturn (\n\t\t<div className=\"edit-site-global-styles-color-palette-panel\">\n\t\t\t<ColorEdit\n\t\t\t\timmutableColorSlugs={ immutableColorSlugs }\n\t\t\t\tcolors={ colors }\n\t\t\t\tonChange={ ( newColors ) => {\n\t\t\t\t\tsetSetting( contextName, 'color.palette', newColors );\n\t\t\t\t} }\n\t\t\t\temptyUI={ __(\n\t\t\t\t\t'Colors are empty! Add some colors to create your own color palette.'\n\t\t\t\t) }\n\t\t\t\tcanReset={ colors === userColors }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { createElement } from "@wordpress/element";
1
+ import { createElement, Fragment } from "@wordpress/element";
2
2
 
3
3
  /**
4
4
  * WordPress dependencies
@@ -10,7 +10,7 @@ import { __ } from '@wordpress/i18n';
10
10
  */
11
11
 
12
12
  import { useSetting } from '../editor/utils';
13
- import ColorPalettePanel from './color-palette-panel';
13
+ import Palette from './palette';
14
14
  export function useHasColorPanel({
15
15
  supports
16
16
  }) {
@@ -22,17 +22,22 @@ export default function ColorPanel({
22
22
  name
23
23
  },
24
24
  getStyle,
25
- setStyle,
26
- getSetting,
27
- setSetting
25
+ setStyle
28
26
  }) {
29
- const colors = useSetting('color.palette', name);
30
- const disableCustomColors = !useSetting('color.custom', name);
27
+ const solids = useSetting('color.palette', name);
31
28
  const gradients = useSetting('color.gradients', name);
32
- const disableCustomGradients = !useSetting('color.customGradient', name);
29
+ const areCustomSolidsEnabled = useSetting('color.custom', name);
30
+ const areCustomGradientsEnabled = useSetting('color.customGradient', name);
31
+ const isLinkEnabled = useSetting('color.link', name);
32
+ const isTextEnabled = useSetting('color.text', name);
33
+ const isBackgroundEnabled = useSetting('color.background', name);
34
+ const hasLinkColor = supports.includes('linkColor') && isLinkEnabled && (solids.length > 0 || areCustomSolidsEnabled);
35
+ const hasTextColor = supports.includes('color') && isTextEnabled && (solids.length > 0 || areCustomSolidsEnabled);
36
+ const hasBackgroundColor = supports.includes('backgroundColor') && isBackgroundEnabled && (solids.length > 0 || areCustomSolidsEnabled);
37
+ const hasGradientColor = supports.includes('background') && (gradients.length > 0 || areCustomGradientsEnabled);
33
38
  const settings = [];
34
39
 
35
- if (supports.includes('color')) {
40
+ if (hasTextColor) {
36
41
  const color = getStyle(name, 'color');
37
42
  const userColor = getStyle(name, 'color', 'user');
38
43
  settings.push({
@@ -45,7 +50,7 @@ export default function ColorPanel({
45
50
 
46
51
  let backgroundSettings = {};
47
52
 
48
- if (supports.includes('backgroundColor')) {
53
+ if (hasBackgroundColor) {
49
54
  const backgroundColor = getStyle(name, 'backgroundColor');
50
55
  const userBackgroundColor = getStyle(name, 'backgroundColor', 'user');
51
56
  backgroundSettings = {
@@ -60,7 +65,7 @@ export default function ColorPanel({
60
65
 
61
66
  let gradientSettings = {};
62
67
 
63
- if (supports.includes('background')) {
68
+ if (hasGradientColor) {
64
69
  const gradient = getStyle(name, 'background');
65
70
  const userGradient = getStyle(name, 'background', 'user');
66
71
  gradientSettings = {
@@ -73,14 +78,14 @@ export default function ColorPanel({
73
78
  }
74
79
  }
75
80
 
76
- if (supports.includes('background') || supports.includes('backgroundColor')) {
81
+ if (hasBackgroundColor || hasGradientColor) {
77
82
  settings.push({ ...backgroundSettings,
78
83
  ...gradientSettings,
79
84
  label: __('Background color')
80
85
  });
81
86
  }
82
87
 
83
- if (supports.includes('linkColor')) {
88
+ if (hasLinkColor) {
84
89
  const color = getStyle(name, 'linkColor');
85
90
  const userColor = getStyle(name, 'linkColor', 'user');
86
91
  settings.push({
@@ -91,18 +96,16 @@ export default function ColorPanel({
91
96
  });
92
97
  }
93
98
 
94
- return createElement(PanelColorGradientSettings, {
99
+ return createElement(Fragment, null, createElement(Palette, {
100
+ contextName: name
101
+ }), createElement(PanelColorGradientSettings, {
95
102
  title: __('Color'),
96
103
  settings: settings,
97
- colors: colors,
104
+ colors: solids,
98
105
  gradients: gradients,
99
- disableCustomColors: disableCustomColors,
100
- disableCustomGradients: disableCustomGradients
101
- }, createElement(ColorPalettePanel, {
102
- key: 'color-palette-panel-' + name,
103
- contextName: name,
104
- getSetting: getSetting,
105
- setSetting: setSetting
106
+ disableCustomColors: !areCustomSolidsEnabled,
107
+ disableCustomGradients: !areCustomGradientsEnabled,
108
+ showTitle: false
106
109
  }));
107
110
  }
108
111
  //# sourceMappingURL=color-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/color-panel.js"],"names":["__experimentalPanelColorGradientSettings","PanelColorGradientSettings","__","useSetting","Palette","useHasColorPanel","supports","includes","ColorPanel","context","name","getStyle","setStyle","solids","gradients","areCustomSolidsEnabled","areCustomGradientsEnabled","isLinkEnabled","isTextEnabled","isBackgroundEnabled","hasLinkColor","length","hasTextColor","hasBackgroundColor","hasGradientColor","settings","color","userColor","push","colorValue","onColorChange","value","label","clearable","backgroundSettings","backgroundColor","userBackgroundColor","gradientSettings","gradient","userGradient","gradientValue","onGradientChange"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,wCAAwC,IAAIC,0BAArD,QAAuF,yBAAvF;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AAEA,SAASC,UAAT,QAA2B,iBAA3B;AACA,OAAOC,OAAP,MAAoB,WAApB;AAEA,OAAO,SAASC,gBAAT,CAA2B;AAAEC,EAAAA;AAAF,CAA3B,EAA0C;AAChD,SACCA,QAAQ,CAACC,QAAT,CAAmB,OAAnB,KACAD,QAAQ,CAACC,QAAT,CAAmB,iBAAnB,CADA,IAEAD,QAAQ,CAACC,QAAT,CAAmB,YAAnB,CAFA,IAGAD,QAAQ,CAACC,QAAT,CAAmB,WAAnB,CAJD;AAMA;AAED,eAAe,SAASC,UAAT,CAAqB;AACnCC,EAAAA,OAAO,EAAE;AAAEH,IAAAA,QAAF;AAAYI,IAAAA;AAAZ,GAD0B;AAEnCC,EAAAA,QAFmC;AAGnCC,EAAAA;AAHmC,CAArB,EAIX;AACH,QAAMC,MAAM,GAAGV,UAAU,CAAE,eAAF,EAAmBO,IAAnB,CAAzB;AACA,QAAMI,SAAS,GAAGX,UAAU,CAAE,iBAAF,EAAqBO,IAArB,CAA5B;AACA,QAAMK,sBAAsB,GAAGZ,UAAU,CAAE,cAAF,EAAkBO,IAAlB,CAAzC;AACA,QAAMM,yBAAyB,GAAGb,UAAU,CAC3C,sBAD2C,EAE3CO,IAF2C,CAA5C;AAIA,QAAMO,aAAa,GAAGd,UAAU,CAAE,YAAF,EAAgBO,IAAhB,CAAhC;AACA,QAAMQ,aAAa,GAAGf,UAAU,CAAE,YAAF,EAAgBO,IAAhB,CAAhC;AACA,QAAMS,mBAAmB,GAAGhB,UAAU,CAAE,kBAAF,EAAsBO,IAAtB,CAAtC;AAEA,QAAMU,YAAY,GACjBd,QAAQ,CAACC,QAAT,CAAmB,WAAnB,KACAU,aADA,KAEEJ,MAAM,CAACQ,MAAP,GAAgB,CAAhB,IAAqBN,sBAFvB,CADD;AAIA,QAAMO,YAAY,GACjBhB,QAAQ,CAACC,QAAT,CAAmB,OAAnB,KACAW,aADA,KAEEL,MAAM,CAACQ,MAAP,GAAgB,CAAhB,IAAqBN,sBAFvB,CADD;AAIA,QAAMQ,kBAAkB,GACvBjB,QAAQ,CAACC,QAAT,CAAmB,iBAAnB,KACAY,mBADA,KAEEN,MAAM,CAACQ,MAAP,GAAgB,CAAhB,IAAqBN,sBAFvB,CADD;AAIA,QAAMS,gBAAgB,GACrBlB,QAAQ,CAACC,QAAT,CAAmB,YAAnB,MACEO,SAAS,CAACO,MAAV,GAAmB,CAAnB,IAAwBL,yBAD1B,CADD;AAIA,QAAMS,QAAQ,GAAG,EAAjB;;AAEA,MAAKH,YAAL,EAAoB;AACnB,UAAMI,KAAK,GAAGf,QAAQ,CAAED,IAAF,EAAQ,OAAR,CAAtB;AACA,UAAMiB,SAAS,GAAGhB,QAAQ,CAAED,IAAF,EAAQ,OAAR,EAAiB,MAAjB,CAA1B;AACAe,IAAAA,QAAQ,CAACG,IAAT,CAAe;AACdC,MAAAA,UAAU,EAAEH,KADE;AAEdI,MAAAA,aAAa,EAAIC,KAAF,IAAanB,QAAQ,CAAEF,IAAF,EAAQ,OAAR,EAAiBqB,KAAjB,CAFtB;AAGdC,MAAAA,KAAK,EAAE9B,EAAE,CAAE,YAAF,CAHK;AAId+B,MAAAA,SAAS,EAAEP,KAAK,KAAKC;AAJP,KAAf;AAMA;;AAED,MAAIO,kBAAkB,GAAG,EAAzB;;AACA,MAAKX,kBAAL,EAA0B;AACzB,UAAMY,eAAe,GAAGxB,QAAQ,CAAED,IAAF,EAAQ,iBAAR,CAAhC;AACA,UAAM0B,mBAAmB,GAAGzB,QAAQ,CAAED,IAAF,EAAQ,iBAAR,EAA2B,MAA3B,CAApC;AACAwB,IAAAA,kBAAkB,GAAG;AACpBL,MAAAA,UAAU,EAAEM,eADQ;AAEpBL,MAAAA,aAAa,EAAIC,KAAF,IACdnB,QAAQ,CAAEF,IAAF,EAAQ,iBAAR,EAA2BqB,KAA3B;AAHW,KAArB;;AAKA,QAAKI,eAAL,EAAuB;AACtBD,MAAAA,kBAAkB,CAACD,SAAnB,GACCE,eAAe,KAAKC,mBADrB;AAEA;AACD;;AAED,MAAIC,gBAAgB,GAAG,EAAvB;;AACA,MAAKb,gBAAL,EAAwB;AACvB,UAAMc,QAAQ,GAAG3B,QAAQ,CAAED,IAAF,EAAQ,YAAR,CAAzB;AACA,UAAM6B,YAAY,GAAG5B,QAAQ,CAAED,IAAF,EAAQ,YAAR,EAAsB,MAAtB,CAA7B;AACA2B,IAAAA,gBAAgB,GAAG;AAClBG,MAAAA,aAAa,EAAEF,QADG;AAElBG,MAAAA,gBAAgB,EAAIV,KAAF,IACjBnB,QAAQ,CAAEF,IAAF,EAAQ,YAAR,EAAsBqB,KAAtB;AAHS,KAAnB;;AAKA,QAAKO,QAAL,EAAgB;AACfD,MAAAA,gBAAgB,CAACJ,SAAjB,GAA6BK,QAAQ,KAAKC,YAA1C;AACA;AACD;;AAED,MAAKhB,kBAAkB,IAAIC,gBAA3B,EAA8C;AAC7CC,IAAAA,QAAQ,CAACG,IAAT,CAAe,EACd,GAAGM,kBADW;AAEd,SAAGG,gBAFW;AAGdL,MAAAA,KAAK,EAAE9B,EAAE,CAAE,kBAAF;AAHK,KAAf;AAKA;;AAED,MAAKkB,YAAL,EAAoB;AACnB,UAAMM,KAAK,GAAGf,QAAQ,CAAED,IAAF,EAAQ,WAAR,CAAtB;AACA,UAAMiB,SAAS,GAAGhB,QAAQ,CAAED,IAAF,EAAQ,WAAR,EAAqB,MAArB,CAA1B;AACAe,IAAAA,QAAQ,CAACG,IAAT,CAAe;AACdC,MAAAA,UAAU,EAAEH,KADE;AAEdI,MAAAA,aAAa,EAAIC,KAAF,IAAanB,QAAQ,CAAEF,IAAF,EAAQ,WAAR,EAAqBqB,KAArB,CAFtB;AAGdC,MAAAA,KAAK,EAAE9B,EAAE,CAAE,YAAF,CAHK;AAId+B,MAAAA,SAAS,EAAEP,KAAK,KAAKC;AAJP,KAAf;AAMA;;AAED,SACC,8BACC,cAAC,OAAD;AAAS,IAAA,WAAW,EAAGjB;AAAvB,IADD,EAEC,cAAC,0BAAD;AACC,IAAA,KAAK,EAAGR,EAAE,CAAE,OAAF,CADX;AAEC,IAAA,QAAQ,EAAGuB,QAFZ;AAGC,IAAA,MAAM,EAAGZ,MAHV;AAIC,IAAA,SAAS,EAAGC,SAJb;AAKC,IAAA,mBAAmB,EAAG,CAAEC,sBALzB;AAMC,IAAA,sBAAsB,EAAG,CAAEC,yBAN5B;AAOC,IAAA,SAAS,EAAG;AAPb,IAFD,CADD;AAcA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalPanelColorGradientSettings as PanelColorGradientSettings } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\n\nimport { useSetting } from '../editor/utils';\nimport Palette from './palette';\n\nexport function useHasColorPanel( { supports } ) {\n\treturn (\n\t\tsupports.includes( 'color' ) ||\n\t\tsupports.includes( 'backgroundColor' ) ||\n\t\tsupports.includes( 'background' ) ||\n\t\tsupports.includes( 'linkColor' )\n\t);\n}\n\nexport default function ColorPanel( {\n\tcontext: { supports, name },\n\tgetStyle,\n\tsetStyle,\n} ) {\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\tconst isLinkEnabled = useSetting( 'color.link', name );\n\tconst isTextEnabled = useSetting( 'color.text', name );\n\tconst isBackgroundEnabled = useSetting( 'color.background', name );\n\n\tconst hasLinkColor =\n\t\tsupports.includes( 'linkColor' ) &&\n\t\tisLinkEnabled &&\n\t\t( solids.length > 0 || areCustomSolidsEnabled );\n\tconst hasTextColor =\n\t\tsupports.includes( 'color' ) &&\n\t\tisTextEnabled &&\n\t\t( solids.length > 0 || areCustomSolidsEnabled );\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\n\tconst settings = [];\n\n\tif ( hasTextColor ) {\n\t\tconst color = getStyle( name, 'color' );\n\t\tconst userColor = getStyle( name, 'color', 'user' );\n\t\tsettings.push( {\n\t\t\tcolorValue: color,\n\t\t\tonColorChange: ( value ) => setStyle( name, 'color', value ),\n\t\t\tlabel: __( 'Text color' ),\n\t\t\tclearable: color === userColor,\n\t\t} );\n\t}\n\n\tlet backgroundSettings = {};\n\tif ( hasBackgroundColor ) {\n\t\tconst backgroundColor = getStyle( name, 'backgroundColor' );\n\t\tconst userBackgroundColor = getStyle( name, 'backgroundColor', 'user' );\n\t\tbackgroundSettings = {\n\t\t\tcolorValue: backgroundColor,\n\t\t\tonColorChange: ( value ) =>\n\t\t\t\tsetStyle( name, 'backgroundColor', value ),\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\tconst gradient = getStyle( name, 'background' );\n\t\tconst userGradient = getStyle( name, 'background', 'user' );\n\t\tgradientSettings = {\n\t\t\tgradientValue: gradient,\n\t\t\tonGradientChange: ( value ) =>\n\t\t\t\tsetStyle( name, 'background', value ),\n\t\t};\n\t\tif ( gradient ) {\n\t\t\tgradientSettings.clearable = gradient === userGradient;\n\t\t}\n\t}\n\n\tif ( hasBackgroundColor || hasGradientColor ) {\n\t\tsettings.push( {\n\t\t\t...backgroundSettings,\n\t\t\t...gradientSettings,\n\t\t\tlabel: __( 'Background color' ),\n\t\t} );\n\t}\n\n\tif ( hasLinkColor ) {\n\t\tconst color = getStyle( name, 'linkColor' );\n\t\tconst userColor = getStyle( name, 'linkColor', 'user' );\n\t\tsettings.push( {\n\t\t\tcolorValue: color,\n\t\t\tonColorChange: ( value ) => setStyle( name, 'linkColor', value ),\n\t\t\tlabel: __( 'Link color' ),\n\t\t\tclearable: color === userColor,\n\t\t} );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Palette contextName={ name } />\n\t\t\t<PanelColorGradientSettings\n\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\tsettings={ settings }\n\t\t\t\tcolors={ solids }\n\t\t\t\tgradients={ gradients }\n\t\t\t\tdisableCustomColors={ ! areCustomSolidsEnabled }\n\t\t\t\tdisableCustomGradients={ ! areCustomGradientsEnabled }\n\t\t\t\tshowTitle={ false }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"]}