@wordpress/block-editor 11.8.0 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +15 -3
  3. package/build/components/block-info-slot-fill/index.js +47 -0
  4. package/build/components/block-info-slot-fill/index.js.map +1 -0
  5. package/build/components/block-inspector/index.js +4 -2
  6. package/build/components/block-inspector/index.js.map +1 -1
  7. package/build/components/block-list/block.native.js +3 -4
  8. package/build/components/block-list/block.native.js.map +1 -1
  9. package/build/components/block-toolbar/index.js +2 -1
  10. package/build/components/block-toolbar/index.js.map +1 -1
  11. package/build/components/block-tools/block-contextual-toolbar.js +83 -9
  12. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  13. package/build/components/block-tools/selected-block-popover.js +11 -28
  14. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  15. package/build/components/editor-styles/index.js +4 -3
  16. package/build/components/editor-styles/index.js.map +1 -1
  17. package/build/components/font-sizes/fluid-utils.js +21 -14
  18. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  19. package/build/components/global-styles/border-panel.js +2 -32
  20. package/build/components/global-styles/border-panel.js.map +1 -1
  21. package/build/components/global-styles/color-panel.js +12 -12
  22. package/build/components/global-styles/color-panel.js.map +1 -1
  23. package/build/components/global-styles/color-panel.native.js +174 -0
  24. package/build/components/global-styles/color-panel.native.js.map +1 -0
  25. package/build/components/global-styles/dimensions-panel.js +6 -6
  26. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  27. package/build/components/global-styles/effects-panel.js +1 -1
  28. package/build/components/global-styles/effects-panel.js.map +1 -1
  29. package/build/components/global-styles/filters-panel.js +78 -14
  30. package/build/components/global-styles/filters-panel.js.map +1 -1
  31. package/build/components/global-styles/typography-panel.js +9 -9
  32. package/build/components/global-styles/typography-panel.js.map +1 -1
  33. package/build/components/global-styles/use-global-styles-output.js +87 -77
  34. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  35. package/build/components/index.js +7 -0
  36. package/build/components/index.js.map +1 -1
  37. package/build/components/inserter/block-types-tab.js +12 -7
  38. package/build/components/inserter/block-types-tab.js.map +1 -1
  39. package/build/components/inserter/index.js +2 -1
  40. package/build/components/inserter/index.js.map +1 -1
  41. package/build/components/inspector-controls/groups.js +2 -0
  42. package/build/components/inspector-controls/groups.js.map +1 -1
  43. package/build/components/inspector-controls-tabs/styles-tab.js +2 -0
  44. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  45. package/build/components/list-view/block-select-button.js +7 -2
  46. package/build/components/list-view/block-select-button.js.map +1 -1
  47. package/build/components/list-view/block.js +12 -21
  48. package/build/components/list-view/block.js.map +1 -1
  49. package/build/components/list-view/drop-indicator.js +37 -10
  50. package/build/components/list-view/drop-indicator.js.map +1 -1
  51. package/build/components/list-view/index.js +10 -4
  52. package/build/components/list-view/index.js.map +1 -1
  53. package/build/components/list-view/leaf.js +2 -1
  54. package/build/components/list-view/leaf.js.map +1 -1
  55. package/build/components/list-view/use-block-selection.js +1 -1
  56. package/build/components/list-view/use-block-selection.js.map +1 -1
  57. package/build/components/media-replace-flow/index.js +5 -5
  58. package/build/components/media-replace-flow/index.js.map +1 -1
  59. package/build/components/navigable-toolbar/index.js +12 -4
  60. package/build/components/navigable-toolbar/index.js.map +1 -1
  61. package/build/components/off-canvas-editor/appender.js +2 -7
  62. package/build/components/off-canvas-editor/appender.js.map +1 -1
  63. package/build/hooks/duotone.js +29 -4
  64. package/build/hooks/duotone.js.map +1 -1
  65. package/build/hooks/utils.js +15 -3
  66. package/build/hooks/utils.js.map +1 -1
  67. package/build/private-apis.js +10 -1
  68. package/build/private-apis.js.map +1 -1
  69. package/build/store/actions.js +7 -0
  70. package/build/store/actions.js.map +1 -1
  71. package/build/utils/object.js +5 -5
  72. package/build/utils/object.js.map +1 -1
  73. package/build/utils/transform-styles/index.js +2 -2
  74. package/build/utils/transform-styles/index.js.map +1 -1
  75. package/build/utils/use-should-contextual-toolbar-show.js +68 -0
  76. package/build/utils/use-should-contextual-toolbar-show.js.map +1 -0
  77. package/build-module/components/block-info-slot-fill/index.js +34 -0
  78. package/build-module/components/block-info-slot-fill/index.js.map +1 -0
  79. package/build-module/components/block-inspector/index.js +3 -2
  80. package/build-module/components/block-inspector/index.js.map +1 -1
  81. package/build-module/components/block-list/block.native.js +3 -4
  82. package/build-module/components/block-list/block.native.js.map +1 -1
  83. package/build-module/components/block-toolbar/index.js +2 -1
  84. package/build-module/components/block-toolbar/index.js.map +1 -1
  85. package/build-module/components/block-tools/block-contextual-toolbar.js +79 -9
  86. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  87. package/build-module/components/block-tools/selected-block-popover.js +10 -27
  88. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  89. package/build-module/components/editor-styles/index.js +4 -3
  90. package/build-module/components/editor-styles/index.js.map +1 -1
  91. package/build-module/components/font-sizes/fluid-utils.js +21 -14
  92. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  93. package/build-module/components/global-styles/border-panel.js +2 -32
  94. package/build-module/components/global-styles/border-panel.js.map +1 -1
  95. package/build-module/components/global-styles/color-panel.js +13 -13
  96. package/build-module/components/global-styles/color-panel.js.map +1 -1
  97. package/build-module/components/global-styles/color-panel.native.js +150 -0
  98. package/build-module/components/global-styles/color-panel.native.js.map +1 -0
  99. package/build-module/components/global-styles/dimensions-panel.js +7 -7
  100. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  101. package/build-module/components/global-styles/effects-panel.js +2 -2
  102. package/build-module/components/global-styles/effects-panel.js.map +1 -1
  103. package/build-module/components/global-styles/filters-panel.js +78 -16
  104. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  105. package/build-module/components/global-styles/typography-panel.js +10 -10
  106. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  107. package/build-module/components/global-styles/use-global-styles-output.js +87 -77
  108. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  109. package/build-module/components/index.js +1 -1
  110. package/build-module/components/index.js.map +1 -1
  111. package/build-module/components/inserter/block-types-tab.js +12 -6
  112. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  113. package/build-module/components/inserter/index.js +2 -1
  114. package/build-module/components/inserter/index.js.map +1 -1
  115. package/build-module/components/inspector-controls/groups.js +2 -0
  116. package/build-module/components/inspector-controls/groups.js.map +1 -1
  117. package/build-module/components/inspector-controls-tabs/styles-tab.js +2 -0
  118. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  119. package/build-module/components/list-view/block-select-button.js +7 -2
  120. package/build-module/components/list-view/block-select-button.js.map +1 -1
  121. package/build-module/components/list-view/block.js +14 -22
  122. package/build-module/components/list-view/block.js.map +1 -1
  123. package/build-module/components/list-view/drop-indicator.js +36 -10
  124. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  125. package/build-module/components/list-view/index.js +11 -5
  126. package/build-module/components/list-view/index.js.map +1 -1
  127. package/build-module/components/list-view/leaf.js +2 -1
  128. package/build-module/components/list-view/leaf.js.map +1 -1
  129. package/build-module/components/list-view/use-block-selection.js +1 -1
  130. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  131. package/build-module/components/media-replace-flow/index.js +5 -5
  132. package/build-module/components/media-replace-flow/index.js.map +1 -1
  133. package/build-module/components/navigable-toolbar/index.js +12 -4
  134. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  135. package/build-module/components/off-canvas-editor/appender.js +1 -5
  136. package/build-module/components/off-canvas-editor/appender.js.map +1 -1
  137. package/build-module/hooks/duotone.js +28 -5
  138. package/build-module/hooks/duotone.js.map +1 -1
  139. package/build-module/hooks/utils.js +16 -4
  140. package/build-module/hooks/utils.js.map +1 -1
  141. package/build-module/private-apis.js +7 -1
  142. package/build-module/private-apis.js.map +1 -1
  143. package/build-module/store/actions.js +7 -0
  144. package/build-module/store/actions.js.map +1 -1
  145. package/build-module/utils/object.js +4 -4
  146. package/build-module/utils/object.js.map +1 -1
  147. package/build-module/utils/transform-styles/index.js +2 -2
  148. package/build-module/utils/transform-styles/index.js.map +1 -1
  149. package/build-module/utils/use-should-contextual-toolbar-show.js +56 -0
  150. package/build-module/utils/use-should-contextual-toolbar-show.js.map +1 -0
  151. package/build-style/content-rtl.css +9 -6
  152. package/build-style/content.css +9 -6
  153. package/build-style/style-rtl.css +223 -46
  154. package/build-style/style.css +223 -46
  155. package/package.json +32 -32
  156. package/src/components/block-info-slot-fill/index.js +24 -0
  157. package/src/components/block-inspector/index.js +3 -0
  158. package/src/components/block-list/block.native.js +2 -3
  159. package/src/components/block-list/content.scss +16 -15
  160. package/src/components/block-mobile-toolbar/test/block-actions-menu.native.js +9 -9
  161. package/src/components/block-mover/style.scss +10 -4
  162. package/src/components/block-mover/test/index.native.js +4 -4
  163. package/src/components/block-toolbar/index.js +4 -3
  164. package/src/components/block-toolbar/style.scss +56 -33
  165. package/src/components/block-tools/block-contextual-toolbar.js +94 -11
  166. package/src/components/block-tools/selected-block-popover.js +11 -44
  167. package/src/components/block-tools/style.scss +157 -3
  168. package/src/components/editor-styles/index.js +9 -5
  169. package/src/components/font-sizes/fluid-utils.js +31 -14
  170. package/src/components/font-sizes/test/fluid-utils.js +5 -16
  171. package/src/components/global-styles/border-panel.js +1 -30
  172. package/src/components/global-styles/color-panel.js +13 -13
  173. package/src/components/global-styles/color-panel.native.js +207 -0
  174. package/src/components/global-styles/dimensions-panel.js +17 -7
  175. package/src/components/global-styles/effects-panel.js +2 -2
  176. package/src/components/global-styles/filters-panel.js +90 -17
  177. package/src/components/global-styles/style.scss +2 -1
  178. package/src/components/global-styles/test/typography-utils.js +63 -22
  179. package/src/components/global-styles/test/use-global-styles-output.js +126 -4
  180. package/src/components/global-styles/typography-panel.js +37 -11
  181. package/src/components/global-styles/use-global-styles-output.js +64 -64
  182. package/src/components/index.js +1 -0
  183. package/src/components/inserter/block-types-tab.js +9 -6
  184. package/src/components/inserter/index.js +1 -1
  185. package/src/components/inspector-controls/groups.js +2 -0
  186. package/src/components/inspector-controls-tabs/styles-tab.js +1 -0
  187. package/src/components/list-view/block-select-button.js +6 -1
  188. package/src/components/list-view/block.js +23 -31
  189. package/src/components/list-view/drop-indicator.js +67 -22
  190. package/src/components/list-view/index.js +8 -1
  191. package/src/components/list-view/leaf.js +1 -0
  192. package/src/components/list-view/style.scss +15 -3
  193. package/src/components/list-view/use-block-selection.js +1 -1
  194. package/src/components/media-replace-flow/README.md +3 -2
  195. package/src/components/media-replace-flow/index.js +4 -5
  196. package/src/components/navigable-toolbar/index.js +12 -3
  197. package/src/components/off-canvas-editor/appender.js +1 -4
  198. package/src/components/url-popover/test/__snapshots__/index.js.snap +3 -3
  199. package/src/hooks/duotone.js +46 -25
  200. package/src/hooks/test/anchor.js +113 -0
  201. package/src/hooks/test/color.js +0 -9
  202. package/src/hooks/test/use-typography-props.js +2 -2
  203. package/src/hooks/test/utils.js +20 -101
  204. package/src/hooks/utils.js +20 -3
  205. package/src/private-apis.js +6 -0
  206. package/src/store/actions.js +7 -0
  207. package/src/utils/object.js +4 -4
  208. package/src/utils/test/object.js +21 -21
  209. package/src/utils/transform-styles/index.js +2 -2
  210. package/src/utils/use-should-contextual-toolbar-show.js +75 -0
  211. package/tsconfig.json +1 -0
  212. package/build/hooks/color-panel.native.js +0 -77
  213. package/build/hooks/color-panel.native.js.map +0 -1
  214. package/build-module/hooks/color-panel.native.js +0 -62
  215. package/build-module/hooks/color-panel.native.js.map +0 -1
  216. package/src/hooks/color-panel.native.js +0 -63
@@ -235,7 +235,7 @@ function DimensionsPanel(_ref4) {
235
235
  const contentSizeValue = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$layou = inheritedValue.layout) === null || _inheritedValue$layou === void 0 ? void 0 : _inheritedValue$layou.contentSize);
236
236
 
237
237
  const setContentSizeValue = newValue => {
238
- onChange((0, _object.immutableSet)(value, ['layout', 'contentSize'], newValue));
238
+ onChange((0, _object.setImmutably)(value, ['layout', 'contentSize'], newValue || undefined));
239
239
  };
240
240
 
241
241
  const hasUserSetContentSizeValue = () => {
@@ -251,7 +251,7 @@ function DimensionsPanel(_ref4) {
251
251
  const wideSizeValue = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$layou2 = inheritedValue.layout) === null || _inheritedValue$layou2 === void 0 ? void 0 : _inheritedValue$layou2.wideSize);
252
252
 
253
253
  const setWideSizeValue = newValue => {
254
- onChange((0, _object.immutableSet)(value, ['layout', 'wideSize'], newValue));
254
+ onChange((0, _object.setImmutably)(value, ['layout', 'wideSize'], newValue || undefined));
255
255
  };
256
256
 
257
257
  const hasUserSetWideSizeValue = () => {
@@ -271,7 +271,7 @@ function DimensionsPanel(_ref4) {
271
271
 
272
272
  const setPaddingValues = newPaddingValues => {
273
273
  const padding = filterValuesBySides(newPaddingValues, paddingSides);
274
- onChange((0, _object.immutableSet)(value, ['spacing', 'padding'], padding));
274
+ onChange((0, _object.setImmutably)(value, ['spacing', 'padding'], padding));
275
275
  };
276
276
 
277
277
  const hasPaddingValue = () => {
@@ -293,7 +293,7 @@ function DimensionsPanel(_ref4) {
293
293
 
294
294
  const setMarginValues = newMarginValues => {
295
295
  const margin = filterValuesBySides(newMarginValues, marginSides);
296
- onChange((0, _object.immutableSet)(value, ['spacing', 'margin'], margin));
296
+ onChange((0, _object.setImmutably)(value, ['spacing', 'margin'], margin));
297
297
  };
298
298
 
299
299
  const hasMarginValue = () => {
@@ -314,7 +314,7 @@ function DimensionsPanel(_ref4) {
314
314
  const isAxialGap = gapSides && gapSides.some(side => AXIAL_SIDES.includes(side));
315
315
 
316
316
  const setGapValue = newGapValue => {
317
- onChange((0, _object.immutableSet)(value, ['spacing', 'blockGap'], newGapValue));
317
+ onChange((0, _object.setImmutably)(value, ['spacing', 'blockGap'], newGapValue));
318
318
  };
319
319
 
320
320
  const setGapValues = nextBoxGapValue => {
@@ -346,7 +346,7 @@ function DimensionsPanel(_ref4) {
346
346
  const minHeightValue = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$dimen = inheritedValue.dimensions) === null || _inheritedValue$dimen === void 0 ? void 0 : _inheritedValue$dimen.minHeight);
347
347
 
348
348
  const setMinHeightValue = newValue => {
349
- onChange((0, _object.immutableSet)(value, ['dimensions', 'minHeight'], newValue));
349
+ onChange((0, _object.setImmutably)(value, ['dimensions', 'minHeight'], newValue));
350
350
  };
351
351
 
352
352
  const resetMinHeightValue = () => {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/dimensions-panel.js"],"names":["AXIAL_SIDES","useHasDimensionsPanel","settings","hasContentSize","useHasContentSize","hasWideSize","useHasWideSize","hasPadding","useHasPadding","hasMargin","useHasMargin","hasGap","useHasGap","hasMinHeight","useHasMinHeight","hasChildLayout","useHasChildLayout","Platform","OS","layout","contentSize","wideSize","spacing","padding","margin","blockGap","dimensions","minHeight","type","parentLayoutType","default","defaultParentLayoutType","allowSizingOnChildren","parentLayout","support","useHasSpacingPresets","custom","theme","defaultPresets","spacingSizes","presets","length","filterValuesBySides","values","sides","filteredValues","forEach","side","top","bottom","left","right","splitStyleValue","value","splitGapValue","DimensionsToolsPanel","resetAllFilter","onChange","panelId","children","resetAll","updatedValue","DEFAULT_CONTROLS","childLayout","DimensionsPanel","as","Wrapper","inheritedValue","defaultControls","onVisualize","includeLayoutControls","decodeValue","rawValue","showSpacingPresetsControl","units","availableUnits","showContentSizeControl","contentSizeValue","setContentSizeValue","newValue","hasUserSetContentSizeValue","resetContentSizeValue","undefined","showWideSizeControl","wideSizeValue","setWideSizeValue","hasUserSetWideSizeValue","resetWideSizeValue","showPaddingControl","rawPadding","paddingValues","paddingSides","Array","isArray","isAxialPadding","some","includes","setPaddingValues","newPaddingValues","hasPaddingValue","Object","keys","resetPaddingValue","onMouseOverPadding","showMarginControl","rawMargin","marginValues","marginSides","isAxialMargin","setMarginValues","newMarginValues","hasMarginValue","resetMarginValue","onMouseOverMargin","showGapControl","gapValue","gapValues","gapSides","isAxialGap","setGapValue","newGapValue","setGapValues","nextBoxGapValue","hasOwnProperty","resetGapValue","hasGapValue","showMinHeightControl","minHeightValue","setMinHeightValue","resetMinHeightValue","hasMinHeightValue","showChildLayoutControl","orientation","childLayoutOrientationLabel","setChildLayout","newChildLayout","resetChildLayoutValue","selfStretch","flexSize","hasChildLayoutValue","previousValue","onMouseLeaveControls","nextContentSize","positionCenter","nextWideSize","stretchWide","ToolsPanelItem"],"mappings":";;;;;;;;;;AAoBA;;AAjBA;;AAKA;;AACA;;AAUA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AACA;;AA9BA;AACA;AACA;;AAGA;AACA;AACA;;AAeA;AACA;AACA;AAQA,MAAMA,WAAW,GAAG,CAAE,YAAF,EAAgB,UAAhB,CAApB;;AAEO,SAASC,qBAAT,CAAgCC,QAAhC,EAA2C;AACjD,QAAMC,cAAc,GAAGC,iBAAiB,CAAEF,QAAF,CAAxC;AACA,QAAMG,WAAW,GAAGC,cAAc,CAAEJ,QAAF,CAAlC;AACA,QAAMK,UAAU,GAAGC,aAAa,CAAEN,QAAF,CAAhC;AACA,QAAMO,SAAS,GAAGC,YAAY,CAAER,QAAF,CAA9B;AACA,QAAMS,MAAM,GAAGC,SAAS,CAAEV,QAAF,CAAxB;AACA,QAAMW,YAAY,GAAGC,eAAe,CAAEZ,QAAF,CAApC;AACA,QAAMa,cAAc,GAAGC,iBAAiB,CAAEd,QAAF,CAAxC;AAEA,SACCe,kBAASC,EAAT,KAAgB,KAAhB,KACEf,cAAc,IACfE,WADC,IAEDE,UAFC,IAGDE,SAHC,IAIDE,MAJC,IAKDE,YALC,IAMDE,cAPD,CADD;AAUA;;AAED,SAASX,iBAAT,CAA4BF,QAA5B,EAAuC;AAAA;;AACtC,SAAOA,QAAP,aAAOA,QAAP,2CAAOA,QAAQ,CAAEiB,MAAjB,qDAAO,iBAAkBC,WAAzB;AACA;;AAED,SAASd,cAAT,CAAyBJ,QAAzB,EAAoC;AAAA;;AACnC,SAAOA,QAAP,aAAOA,QAAP,4CAAOA,QAAQ,CAAEiB,MAAjB,sDAAO,kBAAkBE,QAAzB;AACA;;AAED,SAASb,aAAT,CAAwBN,QAAxB,EAAmC;AAAA;;AAClC,SAAOA,QAAP,aAAOA,QAAP,4CAAOA,QAAQ,CAAEoB,OAAjB,sDAAO,kBAAmBC,OAA1B;AACA;;AAED,SAASb,YAAT,CAAuBR,QAAvB,EAAkC;AAAA;;AACjC,SAAOA,QAAP,aAAOA,QAAP,6CAAOA,QAAQ,CAAEoB,OAAjB,uDAAO,mBAAmBE,MAA1B;AACA;;AAED,SAASZ,SAAT,CAAoBV,QAApB,EAA+B;AAAA;;AAC9B,SAAOA,QAAP,aAAOA,QAAP,6CAAOA,QAAQ,CAAEoB,OAAjB,uDAAO,mBAAmBG,QAA1B;AACA;;AAED,SAASX,eAAT,CAA0BZ,QAA1B,EAAqC;AAAA;;AACpC,SAAOA,QAAP,aAAOA,QAAP,+CAAOA,QAAQ,CAAEwB,UAAjB,yDAAO,qBAAsBC,SAA7B;AACA;;AAED,SAASX,iBAAT,CAA4Bd,QAA5B,EAAuC;AAAA;;AACtC,QAAM;AACL0B,IAAAA,IAAI,EAAEC,gBAAgB,GAAG,SADpB;AAELC,IAAAA,OAAO,EAAE;AAAEF,MAAAA,IAAI,EAAEG,uBAAuB,GAAG;AAAlC,QAAgD,EAFpD;AAGLC,IAAAA,qBAAqB,GAAG;AAHnB,+BAIF9B,QAJE,aAIFA,QAJE,uBAIFA,QAAQ,CAAE+B,YAJR,yEAIwB,EAJ9B;AAMA,QAAMC,OAAO,GACZ,CAAEH,uBAAuB,KAAK,MAA5B,IAAsCF,gBAAgB,KAAK,MAA7D,KACAG,qBAFD;AAIA,SAAO,CAAC,EAAE9B,QAAF,aAAEA,QAAF,eAAEA,QAAQ,CAAEiB,MAAZ,CAAD,IAAuBe,OAA9B;AACA;;AAED,SAASC,oBAAT,CAA+BjC,QAA/B,EAA0C;AAAA;;AACzC,QAAM;AACLkC,IAAAA,MADK;AAELC,IAAAA,KAFK;AAGLP,IAAAA,OAAO,EAAEQ;AAHJ,MAIF,CAAApC,QAAQ,SAAR,IAAAA,QAAQ,WAAR,kCAAAA,QAAQ,CAAEoB,OAAV,0EAAmBiB,YAAnB,KAAmC,EAJvC;AAKA,QAAMC,OAAO,oBAAGJ,MAAH,aAAGA,MAAH,cAAGA,MAAH,GAAaC,KAAb,yCAAsBC,cAAtB,uCAAwC,EAArD;AAEA,SAAOE,OAAO,CAACC,MAAR,GAAiB,CAAxB;AACA;;AAED,SAASC,mBAAT,CAA8BC,MAA9B,EAAsCC,KAAtC,EAA8C;AAC7C,MAAK,CAAEA,KAAP,EAAe;AACd;AACA,WAAOD,MAAP;AACA,GAJ4C,CAM7C;;;AACA,QAAME,cAAc,GAAG,EAAvB;AACAD,EAAAA,KAAK,CAACE,OAAN,CAAiBC,IAAF,IAAY;AAC1B,QAAKA,IAAI,KAAK,UAAd,EAA2B;AAC1BF,MAAAA,cAAc,CAACG,GAAf,GAAqBL,MAAM,CAACK,GAA5B;AACAH,MAAAA,cAAc,CAACI,MAAf,GAAwBN,MAAM,CAACM,MAA/B;AACA;;AACD,QAAKF,IAAI,KAAK,YAAd,EAA6B;AAC5BF,MAAAA,cAAc,CAACK,IAAf,GAAsBP,MAAM,CAACO,IAA7B;AACAL,MAAAA,cAAc,CAACM,KAAf,GAAuBR,MAAM,CAACQ,KAA9B;AACA;;AACDN,IAAAA,cAAc,CAAEE,IAAF,CAAd,GAAyBJ,MAAzB,aAAyBA,MAAzB,uBAAyBA,MAAM,CAAII,IAAJ,CAA/B;AACA,GAVD;AAYA,SAAOF,cAAP;AACA;;AAED,SAASO,eAAT,CAA0BC,KAA1B,EAAkC;AACjC;AACA,MAAKA,KAAK,IAAI,OAAOA,KAAP,KAAiB,QAA/B,EAA0C;AACzC;AACA,WAAO;AACNL,MAAAA,GAAG,EAAEK,KADC;AAENF,MAAAA,KAAK,EAAEE,KAFD;AAGNJ,MAAAA,MAAM,EAAEI,KAHF;AAINH,MAAAA,IAAI,EAAEG;AAJA,KAAP;AAMA;;AAED,SAAOA,KAAP;AACA;;AAED,SAASC,aAAT,CAAwBD,KAAxB,EAAgC;AAC/B;AACA,MAAKA,KAAK,IAAI,OAAOA,KAAP,KAAiB,QAA/B,EAA0C;AACzC;AACA,WAAO;AACNL,MAAAA,GAAG,EAAEK;AADC,KAAP;AAGA;;AAED,MAAKA,KAAL,EAAa;AACZ,WAAO,EACN,GAAGA,KADG;AAENF,MAAAA,KAAK,EAAEE,KAAF,aAAEA,KAAF,uBAAEA,KAAK,CAAEH,IAFR;AAGND,MAAAA,MAAM,EAAEI,KAAF,aAAEA,KAAF,uBAAEA,KAAK,CAAEL;AAHT,KAAP;AAKA;;AAED,SAAOK,KAAP;AACA;;AAED,SAASE,oBAAT,QAMI;AAAA,MAN2B;AAC9BC,IAAAA,cAD8B;AAE9BC,IAAAA,QAF8B;AAG9BJ,IAAAA,KAH8B;AAI9BK,IAAAA,OAJ8B;AAK9BC,IAAAA;AAL8B,GAM3B;;AACH,QAAMC,QAAQ,GAAG,MAAM;AACtB,UAAMC,YAAY,GAAGL,cAAc,CAAEH,KAAF,CAAnC;AACAI,IAAAA,QAAQ,CAAEI,YAAF,CAAR;AACA,GAHD;;AAKA,SACC,4BAAC,oCAAD;AACC,IAAA,KAAK,EAAG,cAAI,YAAJ,CADT;AAEC,IAAA,QAAQ,EAAGD,QAFZ;AAGC,IAAA,OAAO,EAAGF;AAHX,KAKGC,QALH,CADD;AASA;;AAED,MAAMG,gBAAgB,GAAG;AACxB1C,EAAAA,WAAW,EAAE,KADW;AAExBC,EAAAA,QAAQ,EAAE,KAFc;AAGxBE,EAAAA,OAAO,EAAE,KAHe;AAIxBC,EAAAA,MAAM,EAAE,KAJgB;AAKxBC,EAAAA,QAAQ,EAAE,KALc;AAMxBE,EAAAA,SAAS,EAAE,KANa;AAOxBoC,EAAAA,WAAW,EAAE;AAPW,CAAzB;;AAUe,SAASC,eAAT,QAYX;AAAA;;AAAA,MAZqC;AACxCC,IAAAA,EAAE,EAAEC,OAAO,GAAGX,oBAD0B;AAExCF,IAAAA,KAFwC;AAGxCI,IAAAA,QAHwC;AAIxCU,IAAAA,cAAc,GAAGd,KAJuB;AAKxCnD,IAAAA,QALwC;AAMxCwD,IAAAA,OANwC;AAOxCU,IAAAA,eAAe,GAAGN,gBAPsB;AAQxCO,IAAAA,WAAW,GAAG,MAAM,CAAE,CARkB;AASxC;AACA;AACAC,IAAAA,qBAAqB,GAAG;AAXgB,GAYrC;;AACH,QAAMC,WAAW,GAAKC,QAAF,IACnB,iCAAsB;AAAEtE,IAAAA;AAAF,GAAtB,EAAoC,EAApC,EAAwCsE,QAAxC,CADD;;AAGA,QAAMC,yBAAyB,GAAGtC,oBAAoB,CAAEjC,QAAF,CAAtD;AACA,QAAMwE,KAAK,GAAG,8CAAgB;AAC7BC,IAAAA,cAAc,EAAE,CAAAzE,QAAQ,SAAR,IAAAA,QAAQ,WAAR,kCAAAA,QAAQ,CAAEoB,OAAV,0EAAmBoD,KAAnB,KAA4B,CAC3C,GAD2C,EAE3C,IAF2C,EAG3C,IAH2C,EAI3C,KAJ2C,EAK3C,IAL2C;AADf,GAAhB,CAAd,CALG,CAeH;;AACA,QAAME,sBAAsB,GAC3BxE,iBAAiB,CAAEF,QAAF,CAAjB,IAAiCoE,qBADlC;AAEA,QAAMO,gBAAgB,GAAGN,WAAW,CAAEJ,cAAF,aAAEA,cAAF,gDAAEA,cAAc,CAAEhD,MAAlB,0DAAE,sBAAwBC,WAA1B,CAApC;;AACA,QAAM0D,mBAAmB,GAAKC,QAAF,IAAgB;AAC3CtB,IAAAA,QAAQ,CACP,0BAAcJ,KAAd,EAAqB,CAAE,QAAF,EAAY,aAAZ,CAArB,EAAkD0B,QAAlD,CADO,CAAR;AAGA,GAJD;;AAKA,QAAMC,0BAA0B,GAAG;AAAA;;AAAA,WAAM,CAAC,EAAE3B,KAAF,aAAEA,KAAF,gCAAEA,KAAK,CAAElC,MAAT,0CAAE,cAAeC,WAAjB,CAAP;AAAA,GAAnC;;AACA,QAAM6D,qBAAqB,GAAG,MAAMH,mBAAmB,CAAEI,SAAF,CAAvD,CAzBG,CA2BH;;;AACA,QAAMC,mBAAmB,GACxB7E,cAAc,CAAEJ,QAAF,CAAd,IAA8BoE,qBAD/B;AAEA,QAAMc,aAAa,GAAGb,WAAW,CAAEJ,cAAF,aAAEA,cAAF,iDAAEA,cAAc,CAAEhD,MAAlB,2DAAE,uBAAwBE,QAA1B,CAAjC;;AACA,QAAMgE,gBAAgB,GAAKN,QAAF,IAAgB;AACxCtB,IAAAA,QAAQ,CAAE,0BAAcJ,KAAd,EAAqB,CAAE,QAAF,EAAY,UAAZ,CAArB,EAA+C0B,QAA/C,CAAF,CAAR;AACA,GAFD;;AAGA,QAAMO,uBAAuB,GAAG;AAAA;;AAAA,WAAM,CAAC,EAAEjC,KAAF,aAAEA,KAAF,iCAAEA,KAAK,CAAElC,MAAT,2CAAE,eAAeE,QAAjB,CAAP;AAAA,GAAhC;;AACA,QAAMkE,kBAAkB,GAAG,MAAMF,gBAAgB,CAAEH,SAAF,CAAjD,CAnCG,CAqCH;;;AACA,QAAMM,kBAAkB,GAAGhF,aAAa,CAAEN,QAAF,CAAxC;AACA,QAAMuF,UAAU,GAAGlB,WAAW,CAAEJ,cAAF,aAAEA,cAAF,gDAAEA,cAAc,CAAE7C,OAAlB,0DAAE,sBAAyBC,OAA3B,CAA9B;AACA,QAAMmE,aAAa,GAAGtC,eAAe,CAAEqC,UAAF,CAArC;AACA,QAAME,YAAY,GAAGC,KAAK,CAACC,OAAN,CAAe3F,QAAf,aAAeA,QAAf,6CAAeA,QAAQ,CAAEoB,OAAzB,uDAAe,mBAAmBC,OAAlC,IAClBrB,QADkB,aAClBA,QADkB,6CAClBA,QAAQ,CAAEoB,OADQ,uDAClB,mBAAmBC,OADD,GAElBrB,QAFkB,aAElBA,QAFkB,6CAElBA,QAAQ,CAAEoB,OAFQ,gFAElB,mBAAmBC,OAFD,0DAElB,sBAA4BqB,KAF/B;AAGA,QAAMkD,cAAc,GACnBH,YAAY,IACZA,YAAY,CAACI,IAAb,CAAqBhD,IAAF,IAAY/C,WAAW,CAACgG,QAAZ,CAAsBjD,IAAtB,CAA/B,CAFD;;AAGA,QAAMkD,gBAAgB,GAAKC,gBAAF,IAAwB;AAChD,UAAM3E,OAAO,GAAGmB,mBAAmB,CAAEwD,gBAAF,EAAoBP,YAApB,CAAnC;AACAlC,IAAAA,QAAQ,CAAE,0BAAcJ,KAAd,EAAqB,CAAE,SAAF,EAAa,SAAb,CAArB,EAA+C9B,OAA/C,CAAF,CAAR;AACA,GAHD;;AAIA,QAAM4E,eAAe,GAAG;AAAA;;AAAA,WACvB,CAAC,EAAE9C,KAAF,aAAEA,KAAF,iCAAEA,KAAK,CAAE/B,OAAT,2CAAE,eAAgBC,OAAlB,CAAD,IACA6E,MAAM,CAACC,IAAP,CAAahD,KAAb,aAAaA,KAAb,0CAAaA,KAAK,CAAE/B,OAApB,oDAAa,gBAAgBC,OAA7B,EAAuCkB,MAFhB;AAAA,GAAxB;;AAGA,QAAM6D,iBAAiB,GAAG,MAAML,gBAAgB,CAAEf,SAAF,CAAhD;;AACA,QAAMqB,kBAAkB,GAAG,MAAMlC,WAAW,CAAE,SAAF,CAA5C,CAvDG,CAyDH;;;AACA,QAAMmC,iBAAiB,GAAG9F,YAAY,CAAER,QAAF,CAAtC;AACA,QAAMuG,SAAS,GAAGlC,WAAW,CAAEJ,cAAF,aAAEA,cAAF,iDAAEA,cAAc,CAAE7C,OAAlB,2DAAE,uBAAyBE,MAA3B,CAA7B;AACA,QAAMkF,YAAY,GAAGtD,eAAe,CAAEqD,SAAF,CAApC;AACA,QAAME,WAAW,GAAGf,KAAK,CAACC,OAAN,CAAe3F,QAAf,aAAeA,QAAf,6CAAeA,QAAQ,CAAEoB,OAAzB,uDAAe,mBAAmBE,MAAlC,IACjBtB,QADiB,aACjBA,QADiB,8CACjBA,QAAQ,CAAEoB,OADO,wDACjB,oBAAmBE,MADF,GAEjBtB,QAFiB,aAEjBA,QAFiB,8CAEjBA,QAAQ,CAAEoB,OAFO,iFAEjB,oBAAmBE,MAFF,0DAEjB,sBAA2BoB,KAF9B;AAGA,QAAMgE,aAAa,GAClBD,WAAW,IACXA,WAAW,CAACZ,IAAZ,CAAoBhD,IAAF,IAAY/C,WAAW,CAACgG,QAAZ,CAAsBjD,IAAtB,CAA9B,CAFD;;AAGA,QAAM8D,eAAe,GAAKC,eAAF,IAAuB;AAC9C,UAAMtF,MAAM,GAAGkB,mBAAmB,CAAEoE,eAAF,EAAmBH,WAAnB,CAAlC;AACAlD,IAAAA,QAAQ,CAAE,0BAAcJ,KAAd,EAAqB,CAAE,SAAF,EAAa,QAAb,CAArB,EAA8C7B,MAA9C,CAAF,CAAR;AACA,GAHD;;AAIA,QAAMuF,cAAc,GAAG;AAAA;;AAAA,WACtB,CAAC,EAAE1D,KAAF,aAAEA,KAAF,kCAAEA,KAAK,CAAE/B,OAAT,4CAAE,gBAAgBE,MAAlB,CAAD,IACA4E,MAAM,CAACC,IAAP,CAAahD,KAAb,aAAaA,KAAb,0CAAaA,KAAK,CAAE/B,OAApB,oDAAa,gBAAgBE,MAA7B,EAAsCiB,MAFhB;AAAA,GAAvB;;AAGA,QAAMuE,gBAAgB,GAAG,MAAMH,eAAe,CAAE3B,SAAF,CAA9C;;AACA,QAAM+B,iBAAiB,GAAG,MAAM5C,WAAW,CAAE,QAAF,CAA3C,CA3EG,CA6EH;;;AACA,QAAM6C,cAAc,GAAGtG,SAAS,CAAEV,QAAF,CAAhC;AACA,QAAMiH,QAAQ,GAAG5C,WAAW,CAAEJ,cAAF,aAAEA,cAAF,iDAAEA,cAAc,CAAE7C,OAAlB,2DAAE,uBAAyBG,QAA3B,CAA5B;AACA,QAAM2F,SAAS,GAAG9D,aAAa,CAAE6D,QAAF,CAA/B;AACA,QAAME,QAAQ,GAAGzB,KAAK,CAACC,OAAN,CAAe3F,QAAf,aAAeA,QAAf,8CAAeA,QAAQ,CAAEoB,OAAzB,wDAAe,oBAAmBG,QAAlC,IACdvB,QADc,aACdA,QADc,8CACdA,QAAQ,CAAEoB,OADI,wDACd,oBAAmBG,QADL,GAEdvB,QAFc,aAEdA,QAFc,8CAEdA,QAAQ,CAAEoB,OAFI,iFAEd,oBAAmBG,QAFL,0DAEd,sBAA6BmB,KAFhC;AAGA,QAAM0E,UAAU,GACfD,QAAQ,IAAIA,QAAQ,CAACtB,IAAT,CAAiBhD,IAAF,IAAY/C,WAAW,CAACgG,QAAZ,CAAsBjD,IAAtB,CAA3B,CADb;;AAEA,QAAMwE,WAAW,GAAKC,WAAF,IAAmB;AACtC/D,IAAAA,QAAQ,CACP,0BAAcJ,KAAd,EAAqB,CAAE,SAAF,EAAa,UAAb,CAArB,EAAgDmE,WAAhD,CADO,CAAR;AAGA,GAJD;;AAKA,QAAMC,YAAY,GAAKC,eAAF,IAAuB;AAC3C,QAAK,CAAEA,eAAP,EAAyB;AACxBH,MAAAA,WAAW,CAAE,IAAF,CAAX;AACA,KAH0C,CAI3C;;;AACA,QAAK,CAAED,UAAF,IAAgBI,eAAhB,aAAgBA,eAAhB,eAAgBA,eAAe,CAAEC,cAAjB,CAAiC,KAAjC,CAArB,EAAgE;AAC/DJ,MAAAA,WAAW,CAAEG,eAAe,CAAC1E,GAAlB,CAAX;AACA,KAFD,MAEO;AACNuE,MAAAA,WAAW,CAAE;AACZvE,QAAAA,GAAG,EAAE0E,eAAF,aAAEA,eAAF,uBAAEA,eAAe,CAAE1E,GADV;AAEZE,QAAAA,IAAI,EAAEwE,eAAF,aAAEA,eAAF,uBAAEA,eAAe,CAAExE;AAFX,OAAF,CAAX;AAIA;AACD,GAbD;;AAcA,QAAM0E,aAAa,GAAG,MAAML,WAAW,CAAErC,SAAF,CAAvC;;AACA,QAAM2C,WAAW,GAAG;AAAA;;AAAA,WAAM,CAAC,EAAExE,KAAF,aAAEA,KAAF,kCAAEA,KAAK,CAAE/B,OAAT,4CAAE,gBAAgBG,QAAlB,CAAP;AAAA,GAApB,CA1GG,CA4GH;;;AACA,QAAMqG,oBAAoB,GAAGhH,eAAe,CAAEZ,QAAF,CAA5C;AACA,QAAM6H,cAAc,GAAGxD,WAAW,CAAEJ,cAAF,aAAEA,cAAF,gDAAEA,cAAc,CAAEzC,UAAlB,0DAAE,sBAA4BC,SAA9B,CAAlC;;AACA,QAAMqG,iBAAiB,GAAKjD,QAAF,IAAgB;AACzCtB,IAAAA,QAAQ,CACP,0BAAcJ,KAAd,EAAqB,CAAE,YAAF,EAAgB,WAAhB,CAArB,EAAoD0B,QAApD,CADO,CAAR;AAGA,GAJD;;AAKA,QAAMkD,mBAAmB,GAAG,MAAM;AACjCD,IAAAA,iBAAiB,CAAE9C,SAAF,CAAjB;AACA,GAFD;;AAGA,QAAMgD,iBAAiB,GAAG;AAAA;;AAAA,WAAM,CAAC,EAAE7E,KAAF,aAAEA,KAAF,oCAAEA,KAAK,CAAE3B,UAAT,8CAAE,kBAAmBC,SAArB,CAAP;AAAA,GAA1B,CAvHG,CAyHH;;;AACA,QAAMwG,sBAAsB,GAAGnH,iBAAiB,CAAEd,QAAF,CAAhD;AACA,QAAM6D,WAAW,GAAGI,cAAH,aAAGA,cAAH,uBAAGA,cAAc,CAAEhD,MAApC;AACA,QAAM;AAAEiH,IAAAA,WAAW,GAAG;AAAhB,gCAAiClI,QAAjC,aAAiCA,QAAjC,uBAAiCA,QAAQ,CAAE+B,YAA3C,2EAA2D,EAAjE;AACA,QAAMoG,2BAA2B,GAChCD,WAAW,KAAK,YAAhB,GAA+B,cAAI,OAAJ,CAA/B,GAA+C,cAAI,QAAJ,CADhD;;AAEA,QAAME,cAAc,GAAKC,cAAF,IAAsB;AAC5C9E,IAAAA,QAAQ,CAAE,EACT,GAAGJ,KADM;AAETlC,MAAAA,MAAM,EAAE,EACP,IAAGkC,KAAH,aAAGA,KAAH,uBAAGA,KAAK,CAAElC,MAAV,CADO;AAEP,WAAGoH;AAFI;AAFC,KAAF,CAAR;AAOA,GARD;;AASA,QAAMC,qBAAqB,GAAG,MAAM;AACnCF,IAAAA,cAAc,CAAE;AACfG,MAAAA,WAAW,EAAEvD,SADE;AAEfwD,MAAAA,QAAQ,EAAExD;AAFK,KAAF,CAAd;AAIA,GALD;;AAMA,QAAMyD,mBAAmB,GAAG,MAAM,CAAC,EAAEtF,KAAF,aAAEA,KAAF,eAAEA,KAAK,CAAElC,MAAT,CAAnC;;AAEA,QAAMqC,cAAc,GAAG,0BAAeoF,aAAF,IAAqB;AACxD,WAAO,EACN,GAAGA,aADG;AAENzH,MAAAA,MAAM,EAAE,8BAAkB,EACzB,IAAGyH,aAAH,aAAGA,aAAH,uBAAGA,aAAa,CAAEzH,MAAlB,CADyB;AAEzBC,QAAAA,WAAW,EAAE8D,SAFY;AAGzB7D,QAAAA,QAAQ,EAAE6D,SAHe;AAIzBuD,QAAAA,WAAW,EAAEvD,SAJY;AAKzBwD,QAAAA,QAAQ,EAAExD;AALe,OAAlB,CAFF;AASN5D,MAAAA,OAAO,EAAE,EACR,IAAGsH,aAAH,aAAGA,aAAH,uBAAGA,aAAa,CAAEtH,OAAlB,CADQ;AAERC,QAAAA,OAAO,EAAE2D,SAFD;AAGR1D,QAAAA,MAAM,EAAE0D,SAHA;AAIRzD,QAAAA,QAAQ,EAAEyD;AAJF,OATH;AAeNxD,MAAAA,UAAU,EAAE,EACX,IAAGkH,aAAH,aAAGA,aAAH,uBAAGA,aAAa,CAAElH,UAAlB,CADW;AAEXC,QAAAA,SAAS,EAAEuD;AAFA;AAfN,KAAP;AAoBA,GArBsB,EAqBpB,EArBoB,CAAvB;;AAuBA,QAAM2D,oBAAoB,GAAG,MAAMxE,WAAW,CAAE,KAAF,CAA9C;;AAEA,SACC,4BAAC,OAAD;AACC,IAAA,cAAc,EAAGb,cADlB;AAEC,IAAA,KAAK,EAAGH,KAFT;AAGC,IAAA,QAAQ,EAAGI,QAHZ;AAIC,IAAA,OAAO,EAAGC;AAJX,KAMG,CAAEkB,sBAAsB,IAAIO,mBAA5B,KACD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACG,cAAI,yCAAJ,CADH,CAPF,EAWGP,sBAAsB,IACvB,4BAAC,wCAAD;AACC,IAAA,SAAS,EAAC,eADX;AAEC,IAAA,KAAK,EAAG,cAAI,cAAJ,CAFT;AAGC,IAAA,QAAQ,EAAGI,0BAHZ;AAIC,IAAA,UAAU,EAAGC,qBAJd;AAKC,IAAA,gBAAgB,2BACfb,eAAe,CAAChD,WADD,yEAEf0C,gBAAgB,CAAC1C,WAPnB;AASC,IAAA,OAAO,EAAGsC;AATX,KAWC,4BAAC,gCAAD;AAAQ,IAAA,SAAS,EAAC,UAAlB;AAA6B,IAAA,OAAO,EAAC;AAArC,KACC,4BAAC,qCAAD;AACC,IAAA,KAAK,EAAG,cAAI,SAAJ,CADT;AAEC,IAAA,aAAa,EAAC,KAFf;AAGC,IAAA,oBAAoB,EAAC,MAHtB;AAIC,IAAA,KAAK,EAAGmB,gBAAgB,IAAI,EAJ7B;AAKC,IAAA,QAAQ,EAAKiE,eAAF,IAAuB;AACjChE,MAAAA,mBAAmB,CAAEgE,eAAF,CAAnB;AACA,KAPF;AAQC,IAAA,KAAK,EAAGpE;AART,IADD,EAWC,4BAAC,8BAAD,QACC,4BAAC,WAAD;AAAM,IAAA,IAAI,EAAGqE;AAAb,IADD,CAXD,CAXD,CAZF,EAwCG5D,mBAAmB,IACpB,4BAAC,wCAAD;AACC,IAAA,SAAS,EAAC,eADX;AAEC,IAAA,KAAK,EAAG,cAAI,WAAJ,CAFT;AAGC,IAAA,QAAQ,EAAGG,uBAHZ;AAIC,IAAA,UAAU,EAAGC,kBAJd;AAKC,IAAA,gBAAgB,2BACfnB,eAAe,CAAC/C,QADD,yEACayC,gBAAgB,CAACzC,QAN/C;AAQC,IAAA,OAAO,EAAGqC;AARX,KAUC,4BAAC,gCAAD;AAAQ,IAAA,SAAS,EAAC,UAAlB;AAA6B,IAAA,OAAO,EAAC;AAArC,KACC,4BAAC,qCAAD;AACC,IAAA,KAAK,EAAG,cAAI,MAAJ,CADT;AAEC,IAAA,aAAa,EAAC,KAFf;AAGC,IAAA,oBAAoB,EAAC,MAHtB;AAIC,IAAA,KAAK,EAAG0B,aAAa,IAAI,EAJ1B;AAKC,IAAA,QAAQ,EAAK4D,YAAF,IAAoB;AAC9B3D,MAAAA,gBAAgB,CAAE2D,YAAF,CAAhB;AACA,KAPF;AAQC,IAAA,KAAK,EAAGtE;AART,IADD,EAWC,4BAAC,8BAAD,QACC,4BAAC,WAAD;AAAM,IAAA,IAAI,EAAGuE;AAAb,IADD,CAXD,CAVD,CAzCF,EAoEGzD,kBAAkB,IACnB,4BAAC,wCAAD;AACC,IAAA,QAAQ,EAAGW,eADZ;AAEC,IAAA,KAAK,EAAG,cAAI,SAAJ,CAFT;AAGC,IAAA,UAAU,EAAGG,iBAHd;AAIC,IAAA,gBAAgB,2BACflC,eAAe,CAAC7C,OADD,yEACYuC,gBAAgB,CAACvC,OAL9C;AAOC,IAAA,SAAS,EAAG,yBAAY;AACvB,kCAA4BkD;AADL,KAAZ,CAPb;AAUC,IAAA,OAAO,EAAGf;AAVX,KAYG,CAAEe,yBAAF,IACD,4BAAC,oCAAD;AACC,IAAA,MAAM,EAAGiB,aADV;AAEC,IAAA,QAAQ,EAAGO,gBAFZ;AAGC,IAAA,KAAK,EAAG,cAAI,SAAJ,CAHT;AAIC,IAAA,KAAK,EAAGN,YAJT;AAKC,IAAA,KAAK,EAAGjB,KALT;AAMC,IAAA,UAAU,EAAG,KANd;AAOC,IAAA,WAAW,EAAGoB,cAPf;AAQC,IAAA,WAAW,EAAGS,kBARf;AASC,IAAA,UAAU,EAAGsC;AATd,IAbF,EAyBGpE,yBAAyB,IAC1B,4BAAC,4BAAD;AACC,IAAA,MAAM,EAAGiB,aADV;AAEC,IAAA,QAAQ,EAAGO,gBAFZ;AAGC,IAAA,KAAK,EAAG,cAAI,SAAJ,CAHT;AAIC,IAAA,KAAK,EAAGN,YAJT;AAKC,IAAA,KAAK,EAAGjB,KALT;AAMC,IAAA,UAAU,EAAG,KANd;AAOC,IAAA,WAAW,EAAGoB,cAPf;AAQC,IAAA,WAAW,EAAGS,kBARf;AASC,IAAA,UAAU,EAAGsC;AATd,IA1BF,CArEF,EA6GGrC,iBAAiB,IAClB,4BAAC,wCAAD;AACC,IAAA,QAAQ,EAAGO,cADZ;AAEC,IAAA,KAAK,EAAG,cAAI,QAAJ,CAFT;AAGC,IAAA,UAAU,EAAGC,gBAHd;AAIC,IAAA,gBAAgB,2BACf5C,eAAe,CAAC5C,MADD,yEACWsC,gBAAgB,CAACtC,MAL7C;AAOC,IAAA,SAAS,EAAG,yBAAY;AACvB,kCAA4BiD;AADL,KAAZ,CAPb;AAUC,IAAA,OAAO,EAAGf;AAVX,KAYG,CAAEe,yBAAF,IACD,4BAAC,oCAAD;AACC,IAAA,MAAM,EAAGiC,YADV;AAEC,IAAA,QAAQ,EAAGG,eAFZ;AAGC,IAAA,KAAK,EAAG,cAAI,QAAJ,CAHT;AAIC,IAAA,KAAK,EAAGF,WAJT;AAKC,IAAA,KAAK,EAAGjC,KALT;AAMC,IAAA,UAAU,EAAG,KANd;AAOC,IAAA,WAAW,EAAGkC,aAPf;AAQC,IAAA,WAAW,EAAGK,iBARf;AASC,IAAA,UAAU,EAAG4B;AATd,IAbF,EAyBGpE,yBAAyB,IAC1B,4BAAC,4BAAD;AACC,IAAA,MAAM,EAAGiC,YADV;AAEC,IAAA,QAAQ,EAAGG,eAFZ;AAGC,IAAA,KAAK,EAAG,cAAI,QAAJ,CAHT;AAIC,IAAA,KAAK,EAAGF,WAJT;AAKC,IAAA,KAAK,EAAGjC,KALT;AAMC,IAAA,UAAU,EAAG,KANd;AAOC,IAAA,WAAW,EAAGkC,aAPf;AAQC,IAAA,WAAW,EAAGK,iBARf;AASC,IAAA,UAAU,EAAG4B;AATd,IA1BF,CA9GF,EAsJG3B,cAAc,IACf,4BAAC,wCAAD;AACC,IAAA,QAAQ,EAAGW,WADZ;AAEC,IAAA,KAAK,EAAG,cAAI,eAAJ,CAFT;AAGC,IAAA,UAAU,EAAGD,aAHd;AAIC,IAAA,gBAAgB,2BACfxD,eAAe,CAAC3C,QADD,yEACaqC,gBAAgB,CAACrC,QAL/C;AAOC,IAAA,SAAS,EAAG,yBAAY;AACvB,kCAA4BgD;AADL,KAAZ,CAPb;AAUC,IAAA,OAAO,EAAGf;AAVX,KAYG,CAAEe,yBAAF,KACC6C,UAAU,GACX,4BAAC,oCAAD;AACC,IAAA,KAAK,EAAG,cAAI,eAAJ,CADT;AAEC,IAAA,GAAG,EAAG,CAFP;AAGC,IAAA,QAAQ,EAAGG,YAHZ;AAIC,IAAA,KAAK,EAAG/C,KAJT;AAKC,IAAA,KAAK,EAAG2C,QALT;AAMC,IAAA,MAAM,EAAGD,SANV;AAOC,IAAA,UAAU,EAAG,KAPd;AAQC,IAAA,WAAW,EAAGE;AARf,IADW,GAYX,4BAAC,qCAAD;AACC,IAAA,KAAK,EAAG,cAAI,eAAJ,CADT;AAEC,IAAA,oBAAoB,EAAC,MAFtB;AAGC,IAAA,GAAG,EAAG,CAHP;AAIC,IAAA,QAAQ,EAAGC,WAJZ;AAKC,IAAA,KAAK,EAAG7C,KALT;AAMC,IAAA,KAAK,EAAGyC;AANT,IAbA,CAZH,EAkCG1C,yBAAyB,IAC1B,4BAAC,4BAAD;AACC,IAAA,KAAK,EAAG,cAAI,eAAJ,CADT;AAEC,IAAA,GAAG,EAAG,CAFP;AAGC,IAAA,QAAQ,EAAGgD,YAHZ;AAIC,IAAA,KAAK,EAAGH,UAAU,GAAGD,QAAH,GAAc,CAAE,KAAF,CAJjC,CAI6C;AAJ7C;AAKC,IAAA,MAAM,EAAGD,SALV;AAMC,IAAA,UAAU,EAAG,KANd;AAOC,IAAA,WAAW,EAAGE;AAPf,IAnCF,CAvJF,EAsMGQ,oBAAoB,IACrB,4BAAC,wCAAD;AACC,IAAA,QAAQ,EAAGI,iBADZ;AAEC,IAAA,KAAK,EAAG,cAAI,aAAJ,CAFT;AAGC,IAAA,UAAU,EAAGD,mBAHd;AAIC,IAAA,gBAAgB,2BACf7D,eAAe,CAACzC,SADD,yEACcmC,gBAAgB,CAACnC,SALhD;AAOC,IAAA,OAAO,EAAG+B;AAPX,KASC,4BAAC,sBAAD;AACC,IAAA,KAAK,EAAG,cAAI,aAAJ,CADT;AAEC,IAAA,KAAK,EAAGqE,cAFT;AAGC,IAAA,QAAQ,EAAGC;AAHZ,IATD,CAvMF,EAuNGG,sBAAsB,IACvB,4BAAC,gCAAD;AACC,IAAA,EAAE,EAAGe,wCADN;AAEC,IAAA,OAAO,EAAG,CAFX;AAGC,IAAA,QAAQ,EAAGP,mBAHZ;AAIC,IAAA,KAAK,EAAGN,2BAJT;AAKC,IAAA,UAAU,EAAGG,qBALd;AAMC,IAAA,gBAAgB,2BACfpE,eAAe,CAACL,WADD,yEAEfD,gBAAgB,CAACC,WARnB;AAUC,IAAA,OAAO,EAAGL;AAVX,KAYC,4BAAC,2BAAD;AACC,IAAA,KAAK,EAAGK,WADT;AAEC,IAAA,QAAQ,EAAGuE,cAFZ;AAGC,IAAA,YAAY,EAAGpI,QAAH,aAAGA,QAAH,uBAAGA,QAAQ,CAAE+B;AAH1B,IAZD,CAxNF,CADD;AA8OA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalBoxControl as BoxControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalView as View,\n} from '@wordpress/components';\nimport { Icon, positionCenter, stretchWide } from '@wordpress/icons';\nimport { useCallback, Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable } from './utils';\nimport SpacingSizesControl from '../spacing-sizes-control';\nimport HeightControl from '../height-control';\nimport ChildLayoutControl from '../child-layout-control';\nimport { cleanEmptyObject } from '../../hooks/utils';\nimport { immutableSet } from '../../utils/object';\n\nconst AXIAL_SIDES = [ 'horizontal', 'vertical' ];\n\nexport function useHasDimensionsPanel( settings ) {\n\tconst hasContentSize = useHasContentSize( settings );\n\tconst hasWideSize = useHasWideSize( settings );\n\tconst hasPadding = useHasPadding( settings );\n\tconst hasMargin = useHasMargin( settings );\n\tconst hasGap = useHasGap( settings );\n\tconst hasMinHeight = useHasMinHeight( settings );\n\tconst hasChildLayout = useHasChildLayout( settings );\n\n\treturn (\n\t\tPlatform.OS === 'web' &&\n\t\t( hasContentSize ||\n\t\t\thasWideSize ||\n\t\t\thasPadding ||\n\t\t\thasMargin ||\n\t\t\thasGap ||\n\t\t\thasMinHeight ||\n\t\t\thasChildLayout )\n\t);\n}\n\nfunction useHasContentSize( settings ) {\n\treturn settings?.layout?.contentSize;\n}\n\nfunction useHasWideSize( settings ) {\n\treturn settings?.layout?.wideSize;\n}\n\nfunction useHasPadding( settings ) {\n\treturn settings?.spacing?.padding;\n}\n\nfunction useHasMargin( settings ) {\n\treturn settings?.spacing?.margin;\n}\n\nfunction useHasGap( settings ) {\n\treturn settings?.spacing?.blockGap;\n}\n\nfunction useHasMinHeight( settings ) {\n\treturn settings?.dimensions?.minHeight;\n}\n\nfunction useHasChildLayout( settings ) {\n\tconst {\n\t\ttype: parentLayoutType = 'default',\n\t\tdefault: { type: defaultParentLayoutType = 'default' } = {},\n\t\tallowSizingOnChildren = false,\n\t} = settings?.parentLayout ?? {};\n\n\tconst support =\n\t\t( defaultParentLayoutType === 'flex' || parentLayoutType === 'flex' ) &&\n\t\tallowSizingOnChildren;\n\n\treturn !! settings?.layout && support;\n}\n\nfunction useHasSpacingPresets( settings ) {\n\tconst {\n\t\tcustom,\n\t\ttheme,\n\t\tdefault: defaultPresets,\n\t} = settings?.spacing?.spacingSizes || {};\n\tconst presets = custom ?? theme ?? defaultPresets ?? [];\n\n\treturn presets.length > 0;\n}\n\nfunction filterValuesBySides( values, sides ) {\n\tif ( ! sides ) {\n\t\t// If no custom side configuration all sides are opted into by default.\n\t\treturn values;\n\t}\n\n\t// Only include sides opted into within filtered values.\n\tconst filteredValues = {};\n\tsides.forEach( ( side ) => {\n\t\tif ( side === 'vertical' ) {\n\t\t\tfilteredValues.top = values.top;\n\t\t\tfilteredValues.bottom = values.bottom;\n\t\t}\n\t\tif ( side === 'horizontal' ) {\n\t\t\tfilteredValues.left = values.left;\n\t\t\tfilteredValues.right = values.right;\n\t\t}\n\t\tfilteredValues[ side ] = values?.[ side ];\n\t} );\n\n\treturn filteredValues;\n}\n\nfunction splitStyleValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// Convert to value for individual sides for BoxControl.\n\t\treturn {\n\t\t\ttop: value,\n\t\t\tright: value,\n\t\t\tbottom: value,\n\t\t\tleft: value,\n\t\t};\n\t}\n\n\treturn value;\n}\n\nfunction splitGapValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// If the value is a string, treat it as a single side (top) for the spacing controls.\n\t\treturn {\n\t\t\ttop: value,\n\t\t};\n\t}\n\n\tif ( value ) {\n\t\treturn {\n\t\t\t...value,\n\t\t\tright: value?.left,\n\t\t\tbottom: value?.top,\n\t\t};\n\t}\n\n\treturn value;\n}\n\nfunction DimensionsToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tcontentSize: false,\n\twideSize: false,\n\tpadding: false,\n\tmargin: false,\n\tblockGap: false,\n\tminHeight: false,\n\tchildLayout: true,\n};\n\nexport default function DimensionsPanel( {\n\tas: Wrapper = DimensionsToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n\tonVisualize = () => {},\n\t// Special case because the layout controls are not part of the dimensions panel\n\t// in global styles but not in block inspector.\n\tincludeLayoutControls = false,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\tconst showSpacingPresetsControl = useHasSpacingPresets( settings );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: settings?.spacing?.units || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t],\n\t} );\n\n\t// Content Size\n\tconst showContentSizeControl =\n\t\tuseHasContentSize( settings ) && includeLayoutControls;\n\tconst contentSizeValue = decodeValue( inheritedValue?.layout?.contentSize );\n\tconst setContentSizeValue = ( newValue ) => {\n\t\tonChange(\n\t\t\timmutableSet( value, [ 'layout', 'contentSize' ], newValue )\n\t\t);\n\t};\n\tconst hasUserSetContentSizeValue = () => !! value?.layout?.contentSize;\n\tconst resetContentSizeValue = () => setContentSizeValue( undefined );\n\n\t// Wide Size\n\tconst showWideSizeControl =\n\t\tuseHasWideSize( settings ) && includeLayoutControls;\n\tconst wideSizeValue = decodeValue( inheritedValue?.layout?.wideSize );\n\tconst setWideSizeValue = ( newValue ) => {\n\t\tonChange( immutableSet( value, [ 'layout', 'wideSize' ], newValue ) );\n\t};\n\tconst hasUserSetWideSizeValue = () => !! value?.layout?.wideSize;\n\tconst resetWideSizeValue = () => setWideSizeValue( undefined );\n\n\t// Padding\n\tconst showPaddingControl = useHasPadding( settings );\n\tconst rawPadding = decodeValue( inheritedValue?.spacing?.padding );\n\tconst paddingValues = splitStyleValue( rawPadding );\n\tconst paddingSides = Array.isArray( settings?.spacing?.padding )\n\t\t? settings?.spacing?.padding\n\t\t: settings?.spacing?.padding?.sides;\n\tconst isAxialPadding =\n\t\tpaddingSides &&\n\t\tpaddingSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setPaddingValues = ( newPaddingValues ) => {\n\t\tconst padding = filterValuesBySides( newPaddingValues, paddingSides );\n\t\tonChange( immutableSet( value, [ 'spacing', 'padding' ], padding ) );\n\t};\n\tconst hasPaddingValue = () =>\n\t\t!! value?.spacing?.padding &&\n\t\tObject.keys( value?.spacing?.padding ).length;\n\tconst resetPaddingValue = () => setPaddingValues( undefined );\n\tconst onMouseOverPadding = () => onVisualize( 'padding' );\n\n\t// Margin\n\tconst showMarginControl = useHasMargin( settings );\n\tconst rawMargin = decodeValue( inheritedValue?.spacing?.margin );\n\tconst marginValues = splitStyleValue( rawMargin );\n\tconst marginSides = Array.isArray( settings?.spacing?.margin )\n\t\t? settings?.spacing?.margin\n\t\t: settings?.spacing?.margin?.sides;\n\tconst isAxialMargin =\n\t\tmarginSides &&\n\t\tmarginSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setMarginValues = ( newMarginValues ) => {\n\t\tconst margin = filterValuesBySides( newMarginValues, marginSides );\n\t\tonChange( immutableSet( value, [ 'spacing', 'margin' ], margin ) );\n\t};\n\tconst hasMarginValue = () =>\n\t\t!! value?.spacing?.margin &&\n\t\tObject.keys( value?.spacing?.margin ).length;\n\tconst resetMarginValue = () => setMarginValues( undefined );\n\tconst onMouseOverMargin = () => onVisualize( 'margin' );\n\n\t// Block Gap\n\tconst showGapControl = useHasGap( settings );\n\tconst gapValue = decodeValue( inheritedValue?.spacing?.blockGap );\n\tconst gapValues = splitGapValue( gapValue );\n\tconst gapSides = Array.isArray( settings?.spacing?.blockGap )\n\t\t? settings?.spacing?.blockGap\n\t\t: settings?.spacing?.blockGap?.sides;\n\tconst isAxialGap =\n\t\tgapSides && gapSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setGapValue = ( newGapValue ) => {\n\t\tonChange(\n\t\t\timmutableSet( value, [ 'spacing', 'blockGap' ], newGapValue )\n\t\t);\n\t};\n\tconst setGapValues = ( nextBoxGapValue ) => {\n\t\tif ( ! nextBoxGapValue ) {\n\t\t\tsetGapValue( null );\n\t\t}\n\t\t// If axial gap is not enabled, treat the 'top' value as the shorthand gap value.\n\t\tif ( ! isAxialGap && nextBoxGapValue?.hasOwnProperty( 'top' ) ) {\n\t\t\tsetGapValue( nextBoxGapValue.top );\n\t\t} else {\n\t\t\tsetGapValue( {\n\t\t\t\ttop: nextBoxGapValue?.top,\n\t\t\t\tleft: nextBoxGapValue?.left,\n\t\t\t} );\n\t\t}\n\t};\n\tconst resetGapValue = () => setGapValue( undefined );\n\tconst hasGapValue = () => !! value?.spacing?.blockGap;\n\n\t// Min Height\n\tconst showMinHeightControl = useHasMinHeight( settings );\n\tconst minHeightValue = decodeValue( inheritedValue?.dimensions?.minHeight );\n\tconst setMinHeightValue = ( newValue ) => {\n\t\tonChange(\n\t\t\timmutableSet( value, [ 'dimensions', 'minHeight' ], newValue )\n\t\t);\n\t};\n\tconst resetMinHeightValue = () => {\n\t\tsetMinHeightValue( undefined );\n\t};\n\tconst hasMinHeightValue = () => !! value?.dimensions?.minHeight;\n\n\t// Child Layout\n\tconst showChildLayoutControl = useHasChildLayout( settings );\n\tconst childLayout = inheritedValue?.layout;\n\tconst { orientation = 'horizontal' } = settings?.parentLayout ?? {};\n\tconst childLayoutOrientationLabel =\n\t\torientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n\tconst setChildLayout = ( newChildLayout ) => {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\tlayout: {\n\t\t\t\t...value?.layout,\n\t\t\t\t...newChildLayout,\n\t\t\t},\n\t\t} );\n\t};\n\tconst resetChildLayoutValue = () => {\n\t\tsetChildLayout( {\n\t\t\tselfStretch: undefined,\n\t\t\tflexSize: undefined,\n\t\t} );\n\t};\n\tconst hasChildLayoutValue = () => !! value?.layout;\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tlayout: cleanEmptyObject( {\n\t\t\t\t...previousValue?.layout,\n\t\t\t\tcontentSize: undefined,\n\t\t\t\twideSize: undefined,\n\t\t\t\tselfStretch: undefined,\n\t\t\t\tflexSize: undefined,\n\t\t\t} ),\n\t\t\tspacing: {\n\t\t\t\t...previousValue?.spacing,\n\t\t\t\tpadding: undefined,\n\t\t\t\tmargin: undefined,\n\t\t\t\tblockGap: undefined,\n\t\t\t},\n\t\t\tdimensions: {\n\t\t\t\t...previousValue?.dimensions,\n\t\t\t\tminHeight: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst onMouseLeaveControls = () => onVisualize( false );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ ( showContentSizeControl || showWideSizeControl ) && (\n\t\t\t\t<span className=\"span-columns\">\n\t\t\t\t\t{ __( 'Set the width of the main content area.' ) }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t\t{ showContentSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Content size' ) }\n\t\t\t\t\thasValue={ hasUserSetContentSizeValue }\n\t\t\t\t\tonDeselect={ resetContentSizeValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.contentSize ??\n\t\t\t\t\t\tDEFAULT_CONTROLS.contentSize\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Content' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ contentSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextContentSize ) => {\n\t\t\t\t\t\t\t\tsetContentSizeValue( nextContentSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ positionCenter } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showWideSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Wide size' ) }\n\t\t\t\t\thasValue={ hasUserSetWideSizeValue }\n\t\t\t\t\tonDeselect={ resetWideSizeValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.wideSize ?? DEFAULT_CONTROLS.wideSize\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Wide' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ wideSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextWideSize ) => {\n\t\t\t\t\t\t\t\tsetWideSizeValue( nextWideSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showPaddingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasPaddingValue }\n\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\tonDeselect={ resetPaddingValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.padding ?? DEFAULT_CONTROLS.padding\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialPadding }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverPadding }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialPadding }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverPadding }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMarginControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMarginValue }\n\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\tonDeselect={ resetMarginValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.margin ?? DEFAULT_CONTROLS.margin\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialMargin }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverMargin }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialMargin }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverMargin }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showGapControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasGapValue }\n\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\tonDeselect={ resetGapValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.blockGap ?? DEFAULT_CONTROLS.blockGap\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl &&\n\t\t\t\t\t\t( isAxialGap ? (\n\t\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tsides={ gapSides }\n\t\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\t\tsplitOnAxis={ isAxialGap }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValue }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tvalue={ gapValue }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\tsides={ isAxialGap ? gapSides : [ 'top' ] } // Use 'top' as the shorthand property in non-axial configurations.\n\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialGap }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMinHeightControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMinHeightValue }\n\t\t\t\t\tlabel={ __( 'Min. height' ) }\n\t\t\t\t\tonDeselect={ resetMinHeightValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.minHeight ?? DEFAULT_CONTROLS.minHeight\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<HeightControl\n\t\t\t\t\t\tlabel={ __( 'Min. height' ) }\n\t\t\t\t\t\tvalue={ minHeightValue }\n\t\t\t\t\t\tonChange={ setMinHeightValue }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showChildLayoutControl && (\n\t\t\t\t<VStack\n\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\thasValue={ hasChildLayoutValue }\n\t\t\t\t\tlabel={ childLayoutOrientationLabel }\n\t\t\t\t\tonDeselect={ resetChildLayoutValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.childLayout ??\n\t\t\t\t\t\tDEFAULT_CONTROLS.childLayout\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<ChildLayoutControl\n\t\t\t\t\t\tvalue={ childLayout }\n\t\t\t\t\t\tonChange={ setChildLayout }\n\t\t\t\t\t\tparentLayout={ settings?.parentLayout }\n\t\t\t\t\t/>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/dimensions-panel.js"],"names":["AXIAL_SIDES","useHasDimensionsPanel","settings","hasContentSize","useHasContentSize","hasWideSize","useHasWideSize","hasPadding","useHasPadding","hasMargin","useHasMargin","hasGap","useHasGap","hasMinHeight","useHasMinHeight","hasChildLayout","useHasChildLayout","Platform","OS","layout","contentSize","wideSize","spacing","padding","margin","blockGap","dimensions","minHeight","type","parentLayoutType","default","defaultParentLayoutType","allowSizingOnChildren","parentLayout","support","useHasSpacingPresets","custom","theme","defaultPresets","spacingSizes","presets","length","filterValuesBySides","values","sides","filteredValues","forEach","side","top","bottom","left","right","splitStyleValue","value","splitGapValue","DimensionsToolsPanel","resetAllFilter","onChange","panelId","children","resetAll","updatedValue","DEFAULT_CONTROLS","childLayout","DimensionsPanel","as","Wrapper","inheritedValue","defaultControls","onVisualize","includeLayoutControls","decodeValue","rawValue","showSpacingPresetsControl","units","availableUnits","showContentSizeControl","contentSizeValue","setContentSizeValue","newValue","undefined","hasUserSetContentSizeValue","resetContentSizeValue","showWideSizeControl","wideSizeValue","setWideSizeValue","hasUserSetWideSizeValue","resetWideSizeValue","showPaddingControl","rawPadding","paddingValues","paddingSides","Array","isArray","isAxialPadding","some","includes","setPaddingValues","newPaddingValues","hasPaddingValue","Object","keys","resetPaddingValue","onMouseOverPadding","showMarginControl","rawMargin","marginValues","marginSides","isAxialMargin","setMarginValues","newMarginValues","hasMarginValue","resetMarginValue","onMouseOverMargin","showGapControl","gapValue","gapValues","gapSides","isAxialGap","setGapValue","newGapValue","setGapValues","nextBoxGapValue","hasOwnProperty","resetGapValue","hasGapValue","showMinHeightControl","minHeightValue","setMinHeightValue","resetMinHeightValue","hasMinHeightValue","showChildLayoutControl","orientation","childLayoutOrientationLabel","setChildLayout","newChildLayout","resetChildLayoutValue","selfStretch","flexSize","hasChildLayoutValue","previousValue","onMouseLeaveControls","nextContentSize","positionCenter","nextWideSize","stretchWide","ToolsPanelItem"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalBoxControl as BoxControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalView as View,\n} from '@wordpress/components';\nimport { Icon, positionCenter, stretchWide } from '@wordpress/icons';\nimport { useCallback, Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable } from './utils';\nimport SpacingSizesControl from '../spacing-sizes-control';\nimport HeightControl from '../height-control';\nimport ChildLayoutControl from '../child-layout-control';\nimport { cleanEmptyObject } from '../../hooks/utils';\nimport { setImmutably } from '../../utils/object';\n\nconst AXIAL_SIDES = [ 'horizontal', 'vertical' ];\n\nexport function useHasDimensionsPanel( settings ) {\n\tconst hasContentSize = useHasContentSize( settings );\n\tconst hasWideSize = useHasWideSize( settings );\n\tconst hasPadding = useHasPadding( settings );\n\tconst hasMargin = useHasMargin( settings );\n\tconst hasGap = useHasGap( settings );\n\tconst hasMinHeight = useHasMinHeight( settings );\n\tconst hasChildLayout = useHasChildLayout( settings );\n\n\treturn (\n\t\tPlatform.OS === 'web' &&\n\t\t( hasContentSize ||\n\t\t\thasWideSize ||\n\t\t\thasPadding ||\n\t\t\thasMargin ||\n\t\t\thasGap ||\n\t\t\thasMinHeight ||\n\t\t\thasChildLayout )\n\t);\n}\n\nfunction useHasContentSize( settings ) {\n\treturn settings?.layout?.contentSize;\n}\n\nfunction useHasWideSize( settings ) {\n\treturn settings?.layout?.wideSize;\n}\n\nfunction useHasPadding( settings ) {\n\treturn settings?.spacing?.padding;\n}\n\nfunction useHasMargin( settings ) {\n\treturn settings?.spacing?.margin;\n}\n\nfunction useHasGap( settings ) {\n\treturn settings?.spacing?.blockGap;\n}\n\nfunction useHasMinHeight( settings ) {\n\treturn settings?.dimensions?.minHeight;\n}\n\nfunction useHasChildLayout( settings ) {\n\tconst {\n\t\ttype: parentLayoutType = 'default',\n\t\tdefault: { type: defaultParentLayoutType = 'default' } = {},\n\t\tallowSizingOnChildren = false,\n\t} = settings?.parentLayout ?? {};\n\n\tconst support =\n\t\t( defaultParentLayoutType === 'flex' || parentLayoutType === 'flex' ) &&\n\t\tallowSizingOnChildren;\n\n\treturn !! settings?.layout && support;\n}\n\nfunction useHasSpacingPresets( settings ) {\n\tconst {\n\t\tcustom,\n\t\ttheme,\n\t\tdefault: defaultPresets,\n\t} = settings?.spacing?.spacingSizes || {};\n\tconst presets = custom ?? theme ?? defaultPresets ?? [];\n\n\treturn presets.length > 0;\n}\n\nfunction filterValuesBySides( values, sides ) {\n\tif ( ! sides ) {\n\t\t// If no custom side configuration all sides are opted into by default.\n\t\treturn values;\n\t}\n\n\t// Only include sides opted into within filtered values.\n\tconst filteredValues = {};\n\tsides.forEach( ( side ) => {\n\t\tif ( side === 'vertical' ) {\n\t\t\tfilteredValues.top = values.top;\n\t\t\tfilteredValues.bottom = values.bottom;\n\t\t}\n\t\tif ( side === 'horizontal' ) {\n\t\t\tfilteredValues.left = values.left;\n\t\t\tfilteredValues.right = values.right;\n\t\t}\n\t\tfilteredValues[ side ] = values?.[ side ];\n\t} );\n\n\treturn filteredValues;\n}\n\nfunction splitStyleValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// Convert to value for individual sides for BoxControl.\n\t\treturn {\n\t\t\ttop: value,\n\t\t\tright: value,\n\t\t\tbottom: value,\n\t\t\tleft: value,\n\t\t};\n\t}\n\n\treturn value;\n}\n\nfunction splitGapValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// If the value is a string, treat it as a single side (top) for the spacing controls.\n\t\treturn {\n\t\t\ttop: value,\n\t\t};\n\t}\n\n\tif ( value ) {\n\t\treturn {\n\t\t\t...value,\n\t\t\tright: value?.left,\n\t\t\tbottom: value?.top,\n\t\t};\n\t}\n\n\treturn value;\n}\n\nfunction DimensionsToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tcontentSize: false,\n\twideSize: false,\n\tpadding: false,\n\tmargin: false,\n\tblockGap: false,\n\tminHeight: false,\n\tchildLayout: true,\n};\n\nexport default function DimensionsPanel( {\n\tas: Wrapper = DimensionsToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n\tonVisualize = () => {},\n\t// Special case because the layout controls are not part of the dimensions panel\n\t// in global styles but not in block inspector.\n\tincludeLayoutControls = false,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\tconst showSpacingPresetsControl = useHasSpacingPresets( settings );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: settings?.spacing?.units || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t],\n\t} );\n\n\t// Content Size\n\tconst showContentSizeControl =\n\t\tuseHasContentSize( settings ) && includeLayoutControls;\n\tconst contentSizeValue = decodeValue( inheritedValue?.layout?.contentSize );\n\tconst setContentSizeValue = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'layout', 'contentSize' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasUserSetContentSizeValue = () => !! value?.layout?.contentSize;\n\tconst resetContentSizeValue = () => setContentSizeValue( undefined );\n\n\t// Wide Size\n\tconst showWideSizeControl =\n\t\tuseHasWideSize( settings ) && includeLayoutControls;\n\tconst wideSizeValue = decodeValue( inheritedValue?.layout?.wideSize );\n\tconst setWideSizeValue = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'layout', 'wideSize' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasUserSetWideSizeValue = () => !! value?.layout?.wideSize;\n\tconst resetWideSizeValue = () => setWideSizeValue( undefined );\n\n\t// Padding\n\tconst showPaddingControl = useHasPadding( settings );\n\tconst rawPadding = decodeValue( inheritedValue?.spacing?.padding );\n\tconst paddingValues = splitStyleValue( rawPadding );\n\tconst paddingSides = Array.isArray( settings?.spacing?.padding )\n\t\t? settings?.spacing?.padding\n\t\t: settings?.spacing?.padding?.sides;\n\tconst isAxialPadding =\n\t\tpaddingSides &&\n\t\tpaddingSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setPaddingValues = ( newPaddingValues ) => {\n\t\tconst padding = filterValuesBySides( newPaddingValues, paddingSides );\n\t\tonChange( setImmutably( value, [ 'spacing', 'padding' ], padding ) );\n\t};\n\tconst hasPaddingValue = () =>\n\t\t!! value?.spacing?.padding &&\n\t\tObject.keys( value?.spacing?.padding ).length;\n\tconst resetPaddingValue = () => setPaddingValues( undefined );\n\tconst onMouseOverPadding = () => onVisualize( 'padding' );\n\n\t// Margin\n\tconst showMarginControl = useHasMargin( settings );\n\tconst rawMargin = decodeValue( inheritedValue?.spacing?.margin );\n\tconst marginValues = splitStyleValue( rawMargin );\n\tconst marginSides = Array.isArray( settings?.spacing?.margin )\n\t\t? settings?.spacing?.margin\n\t\t: settings?.spacing?.margin?.sides;\n\tconst isAxialMargin =\n\t\tmarginSides &&\n\t\tmarginSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setMarginValues = ( newMarginValues ) => {\n\t\tconst margin = filterValuesBySides( newMarginValues, marginSides );\n\t\tonChange( setImmutably( value, [ 'spacing', 'margin' ], margin ) );\n\t};\n\tconst hasMarginValue = () =>\n\t\t!! value?.spacing?.margin &&\n\t\tObject.keys( value?.spacing?.margin ).length;\n\tconst resetMarginValue = () => setMarginValues( undefined );\n\tconst onMouseOverMargin = () => onVisualize( 'margin' );\n\n\t// Block Gap\n\tconst showGapControl = useHasGap( settings );\n\tconst gapValue = decodeValue( inheritedValue?.spacing?.blockGap );\n\tconst gapValues = splitGapValue( gapValue );\n\tconst gapSides = Array.isArray( settings?.spacing?.blockGap )\n\t\t? settings?.spacing?.blockGap\n\t\t: settings?.spacing?.blockGap?.sides;\n\tconst isAxialGap =\n\t\tgapSides && gapSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setGapValue = ( newGapValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'spacing', 'blockGap' ], newGapValue )\n\t\t);\n\t};\n\tconst setGapValues = ( nextBoxGapValue ) => {\n\t\tif ( ! nextBoxGapValue ) {\n\t\t\tsetGapValue( null );\n\t\t}\n\t\t// If axial gap is not enabled, treat the 'top' value as the shorthand gap value.\n\t\tif ( ! isAxialGap && nextBoxGapValue?.hasOwnProperty( 'top' ) ) {\n\t\t\tsetGapValue( nextBoxGapValue.top );\n\t\t} else {\n\t\t\tsetGapValue( {\n\t\t\t\ttop: nextBoxGapValue?.top,\n\t\t\t\tleft: nextBoxGapValue?.left,\n\t\t\t} );\n\t\t}\n\t};\n\tconst resetGapValue = () => setGapValue( undefined );\n\tconst hasGapValue = () => !! value?.spacing?.blockGap;\n\n\t// Min Height\n\tconst showMinHeightControl = useHasMinHeight( settings );\n\tconst minHeightValue = decodeValue( inheritedValue?.dimensions?.minHeight );\n\tconst setMinHeightValue = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'dimensions', 'minHeight' ], newValue )\n\t\t);\n\t};\n\tconst resetMinHeightValue = () => {\n\t\tsetMinHeightValue( undefined );\n\t};\n\tconst hasMinHeightValue = () => !! value?.dimensions?.minHeight;\n\n\t// Child Layout\n\tconst showChildLayoutControl = useHasChildLayout( settings );\n\tconst childLayout = inheritedValue?.layout;\n\tconst { orientation = 'horizontal' } = settings?.parentLayout ?? {};\n\tconst childLayoutOrientationLabel =\n\t\torientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n\tconst setChildLayout = ( newChildLayout ) => {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\tlayout: {\n\t\t\t\t...value?.layout,\n\t\t\t\t...newChildLayout,\n\t\t\t},\n\t\t} );\n\t};\n\tconst resetChildLayoutValue = () => {\n\t\tsetChildLayout( {\n\t\t\tselfStretch: undefined,\n\t\t\tflexSize: undefined,\n\t\t} );\n\t};\n\tconst hasChildLayoutValue = () => !! value?.layout;\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tlayout: cleanEmptyObject( {\n\t\t\t\t...previousValue?.layout,\n\t\t\t\tcontentSize: undefined,\n\t\t\t\twideSize: undefined,\n\t\t\t\tselfStretch: undefined,\n\t\t\t\tflexSize: undefined,\n\t\t\t} ),\n\t\t\tspacing: {\n\t\t\t\t...previousValue?.spacing,\n\t\t\t\tpadding: undefined,\n\t\t\t\tmargin: undefined,\n\t\t\t\tblockGap: undefined,\n\t\t\t},\n\t\t\tdimensions: {\n\t\t\t\t...previousValue?.dimensions,\n\t\t\t\tminHeight: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst onMouseLeaveControls = () => onVisualize( false );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ ( showContentSizeControl || showWideSizeControl ) && (\n\t\t\t\t<span className=\"span-columns\">\n\t\t\t\t\t{ __( 'Set the width of the main content area.' ) }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t\t{ showContentSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Content size' ) }\n\t\t\t\t\thasValue={ hasUserSetContentSizeValue }\n\t\t\t\t\tonDeselect={ resetContentSizeValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.contentSize ??\n\t\t\t\t\t\tDEFAULT_CONTROLS.contentSize\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Content' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ contentSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextContentSize ) => {\n\t\t\t\t\t\t\t\tsetContentSizeValue( nextContentSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ positionCenter } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showWideSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Wide size' ) }\n\t\t\t\t\thasValue={ hasUserSetWideSizeValue }\n\t\t\t\t\tonDeselect={ resetWideSizeValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.wideSize ?? DEFAULT_CONTROLS.wideSize\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Wide' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ wideSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextWideSize ) => {\n\t\t\t\t\t\t\t\tsetWideSizeValue( nextWideSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showPaddingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasPaddingValue }\n\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\tonDeselect={ resetPaddingValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.padding ?? DEFAULT_CONTROLS.padding\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialPadding }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverPadding }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialPadding }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverPadding }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMarginControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMarginValue }\n\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\tonDeselect={ resetMarginValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.margin ?? DEFAULT_CONTROLS.margin\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialMargin }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverMargin }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialMargin }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverMargin }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showGapControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasGapValue }\n\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\tonDeselect={ resetGapValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.blockGap ?? DEFAULT_CONTROLS.blockGap\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl &&\n\t\t\t\t\t\t( isAxialGap ? (\n\t\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tsides={ gapSides }\n\t\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\t\tsplitOnAxis={ isAxialGap }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValue }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tvalue={ gapValue }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\tsides={ isAxialGap ? gapSides : [ 'top' ] } // Use 'top' as the shorthand property in non-axial configurations.\n\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialGap }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMinHeightControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMinHeightValue }\n\t\t\t\t\tlabel={ __( 'Min. height' ) }\n\t\t\t\t\tonDeselect={ resetMinHeightValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.minHeight ?? DEFAULT_CONTROLS.minHeight\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<HeightControl\n\t\t\t\t\t\tlabel={ __( 'Min. height' ) }\n\t\t\t\t\t\tvalue={ minHeightValue }\n\t\t\t\t\t\tonChange={ setMinHeightValue }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showChildLayoutControl && (\n\t\t\t\t<VStack\n\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\thasValue={ hasChildLayoutValue }\n\t\t\t\t\tlabel={ childLayoutOrientationLabel }\n\t\t\t\t\tonDeselect={ resetChildLayoutValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.childLayout ??\n\t\t\t\t\t\tDEFAULT_CONTROLS.childLayout\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<ChildLayoutControl\n\t\t\t\t\t\tvalue={ childLayout }\n\t\t\t\t\t\tonChange={ setChildLayout }\n\t\t\t\t\t\tparentLayout={ settings?.parentLayout }\n\t\t\t\t\t/>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"]}
@@ -87,7 +87,7 @@ function EffectsPanel(_ref2) {
87
87
  const shadow = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : inheritedValue.shadow);
88
88
 
89
89
  const setShadow = newValue => {
90
- onChange((0, _object.immutableSet)(value, ['shadow'], newValue));
90
+ onChange((0, _object.setImmutably)(value, ['shadow'], newValue));
91
91
  };
92
92
 
93
93
  const hasShadow = () => !!(value !== null && value !== void 0 && value.shadow);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/effects-panel.js"],"names":["useHasEffectsPanel","settings","hasShadowControl","useHasShadowControl","shadow","EffectsToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","DEFAULT_CONTROLS","EffectsPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","hasShadowEnabled","setShadow","newValue","hasShadow","resetShadow","undefined","previousValue","ShadowPopover","onShadowChange","popoverProps","placement","offset","shift","renderShadowToggle","onToggle","isOpen","toggleProps","onClick","className","shadowIcon","ShadowPopoverContainer","defaultShadows","presets","default","themeShadows","theme","defaultPresetsEnabled","defaultPresets","shadows","ShadowPresets","activeShadow","onSelect","map","name","slug","ShadowIndicator","label","isActive","boxShadow","check"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalGrid as Grid,\n\t__experimentalHeading as Heading,\n\tFlexItem,\n\tDropdown,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\nimport { shadow as shadowIcon, Icon, check } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable } from './utils';\nimport { immutableSet } from '../../utils/object';\n\nexport function useHasEffectsPanel( settings ) {\n\tconst hasShadowControl = useHasShadowControl( settings );\n\treturn hasShadowControl;\n}\n\nfunction useHasShadowControl( settings ) {\n\treturn !! settings?.shadow;\n}\n\nfunction EffectsToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Effects' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tshadow: true,\n};\n\nexport default function EffectsPanel( {\n\tas: Wrapper = EffectsToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Shadow\n\tconst hasShadowEnabled = useHasShadowControl( settings );\n\tconst shadow = decodeValue( inheritedValue?.shadow );\n\tconst setShadow = ( newValue ) => {\n\t\tonChange( immutableSet( value, [ 'shadow' ], newValue ) );\n\t};\n\tconst hasShadow = () => !! value?.shadow;\n\tconst resetShadow = () => setShadow( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tshadow: undefined,\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasShadowEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Shadow' ) }\n\t\t\t\t\thasValue={ hasShadow }\n\t\t\t\t\tonDeselect={ resetShadow }\n\t\t\t\t\tisShownByDefault={ defaultControls.shadow }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\t\tonShadowChange={ setShadow }\n\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n\nconst ShadowPopover = ( { shadow, onShadowChange, settings } ) => {\n\tconst popoverProps = {\n\t\tplacement: 'left-start',\n\t\toffset: 36,\n\t\tshift: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tclassName=\"block-editor-global-styles-effects-panel__shadow-dropdown\"\n\t\t\trenderToggle={ renderShadowToggle() }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper paddingSize=\"medium\">\n\t\t\t\t\t<ShadowPopoverContainer\n\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\tonShadowChange={ onShadowChange }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n};\n\nfunction renderShadowToggle() {\n\treturn ( { onToggle, isOpen } ) => {\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: classnames( { 'is-open': isOpen } ),\n\t\t\t'aria-expanded': isOpen,\n\t\t};\n\n\t\treturn (\n\t\t\t<Button { ...toggleProps }>\n\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-effects-panel__toggle-icon\"\n\t\t\t\t\t\ticon={ shadowIcon }\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t\t<FlexItem>{ __( 'Shadow' ) }</FlexItem>\n\t\t\t\t</HStack>\n\t\t\t</Button>\n\t\t);\n\t};\n}\n\nfunction ShadowPopoverContainer( { shadow, onShadowChange, settings } ) {\n\tconst defaultShadows = settings?.shadow?.presets?.default;\n\tconst themeShadows = settings?.shadow?.presets?.theme;\n\tconst defaultPresetsEnabled = settings?.shadow?.defaultPresets;\n\n\tconst shadows = [\n\t\t...( defaultPresetsEnabled ? defaultShadows : [] ),\n\t\t...( themeShadows || [] ),\n\t];\n\n\treturn (\n\t\t<div className=\"block-editor-global-styles-effects-panel__shadow-popover-container\">\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<Heading level={ 5 }>{ __( 'Shadow' ) }</Heading>\n\t\t\t\t<ShadowPresets\n\t\t\t\t\tpresets={ shadows }\n\t\t\t\t\tactiveShadow={ shadow }\n\t\t\t\t\tonSelect={ onShadowChange }\n\t\t\t\t/>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nfunction ShadowPresets( { presets, activeShadow, onSelect } ) {\n\treturn ! presets ? null : (\n\t\t<Grid columns={ 6 } gap={ 0 } align=\"center\" justify=\"center\">\n\t\t\t{ presets.map( ( { name, slug, shadow } ) => (\n\t\t\t\t<ShadowIndicator\n\t\t\t\t\tkey={ slug }\n\t\t\t\t\tlabel={ name }\n\t\t\t\t\tisActive={ shadow === activeShadow }\n\t\t\t\t\tonSelect={ () =>\n\t\t\t\t\t\tonSelect( shadow === activeShadow ? undefined : shadow )\n\t\t\t\t\t}\n\t\t\t\t\tshadow={ shadow }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Grid>\n\t);\n}\n\nfunction ShadowIndicator( { label, isActive, onSelect, shadow } ) {\n\treturn (\n\t\t<div className=\"block-editor-global-styles-effects-panel__shadow-indicator-wrapper\">\n\t\t\t<Button\n\t\t\t\tclassName=\"block-editor-global-styles-effects-panel__shadow-indicator\"\n\t\t\t\tonClick={ onSelect }\n\t\t\t\tlabel={ label }\n\t\t\t\tstyle={ { boxShadow: shadow } }\n\t\t\t\tshowTooltip\n\t\t\t>\n\t\t\t\t{ isActive && <Icon icon={ check } /> }\n\t\t\t</Button>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/effects-panel.js"],"names":["useHasEffectsPanel","settings","hasShadowControl","useHasShadowControl","shadow","EffectsToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","DEFAULT_CONTROLS","EffectsPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","hasShadowEnabled","setShadow","newValue","hasShadow","resetShadow","undefined","previousValue","ShadowPopover","onShadowChange","popoverProps","placement","offset","shift","renderShadowToggle","onToggle","isOpen","toggleProps","onClick","className","shadowIcon","ShadowPopoverContainer","defaultShadows","presets","default","themeShadows","theme","defaultPresetsEnabled","defaultPresets","shadows","ShadowPresets","activeShadow","onSelect","map","name","slug","ShadowIndicator","label","isActive","boxShadow","check"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalGrid as Grid,\n\t__experimentalHeading as Heading,\n\tFlexItem,\n\tDropdown,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\nimport { shadow as shadowIcon, Icon, check } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nexport function useHasEffectsPanel( settings ) {\n\tconst hasShadowControl = useHasShadowControl( settings );\n\treturn hasShadowControl;\n}\n\nfunction useHasShadowControl( settings ) {\n\treturn !! settings?.shadow;\n}\n\nfunction EffectsToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Effects' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tshadow: true,\n};\n\nexport default function EffectsPanel( {\n\tas: Wrapper = EffectsToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Shadow\n\tconst hasShadowEnabled = useHasShadowControl( settings );\n\tconst shadow = decodeValue( inheritedValue?.shadow );\n\tconst setShadow = ( newValue ) => {\n\t\tonChange( setImmutably( value, [ 'shadow' ], newValue ) );\n\t};\n\tconst hasShadow = () => !! value?.shadow;\n\tconst resetShadow = () => setShadow( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tshadow: undefined,\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasShadowEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Shadow' ) }\n\t\t\t\t\thasValue={ hasShadow }\n\t\t\t\t\tonDeselect={ resetShadow }\n\t\t\t\t\tisShownByDefault={ defaultControls.shadow }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\t\tonShadowChange={ setShadow }\n\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n\nconst ShadowPopover = ( { shadow, onShadowChange, settings } ) => {\n\tconst popoverProps = {\n\t\tplacement: 'left-start',\n\t\toffset: 36,\n\t\tshift: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tclassName=\"block-editor-global-styles-effects-panel__shadow-dropdown\"\n\t\t\trenderToggle={ renderShadowToggle() }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper paddingSize=\"medium\">\n\t\t\t\t\t<ShadowPopoverContainer\n\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\tonShadowChange={ onShadowChange }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n};\n\nfunction renderShadowToggle() {\n\treturn ( { onToggle, isOpen } ) => {\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: classnames( { 'is-open': isOpen } ),\n\t\t\t'aria-expanded': isOpen,\n\t\t};\n\n\t\treturn (\n\t\t\t<Button { ...toggleProps }>\n\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-effects-panel__toggle-icon\"\n\t\t\t\t\t\ticon={ shadowIcon }\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t\t<FlexItem>{ __( 'Shadow' ) }</FlexItem>\n\t\t\t\t</HStack>\n\t\t\t</Button>\n\t\t);\n\t};\n}\n\nfunction ShadowPopoverContainer( { shadow, onShadowChange, settings } ) {\n\tconst defaultShadows = settings?.shadow?.presets?.default;\n\tconst themeShadows = settings?.shadow?.presets?.theme;\n\tconst defaultPresetsEnabled = settings?.shadow?.defaultPresets;\n\n\tconst shadows = [\n\t\t...( defaultPresetsEnabled ? defaultShadows : [] ),\n\t\t...( themeShadows || [] ),\n\t];\n\n\treturn (\n\t\t<div className=\"block-editor-global-styles-effects-panel__shadow-popover-container\">\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<Heading level={ 5 }>{ __( 'Shadow' ) }</Heading>\n\t\t\t\t<ShadowPresets\n\t\t\t\t\tpresets={ shadows }\n\t\t\t\t\tactiveShadow={ shadow }\n\t\t\t\t\tonSelect={ onShadowChange }\n\t\t\t\t/>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nfunction ShadowPresets( { presets, activeShadow, onSelect } ) {\n\treturn ! presets ? null : (\n\t\t<Grid columns={ 6 } gap={ 0 } align=\"center\" justify=\"center\">\n\t\t\t{ presets.map( ( { name, slug, shadow } ) => (\n\t\t\t\t<ShadowIndicator\n\t\t\t\t\tkey={ slug }\n\t\t\t\t\tlabel={ name }\n\t\t\t\t\tisActive={ shadow === activeShadow }\n\t\t\t\t\tonSelect={ () =>\n\t\t\t\t\t\tonSelect( shadow === activeShadow ? undefined : shadow )\n\t\t\t\t\t}\n\t\t\t\t\tshadow={ shadow }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Grid>\n\t);\n}\n\nfunction ShadowIndicator( { label, isActive, onSelect, shadow } ) {\n\treturn (\n\t\t<div className=\"block-editor-global-styles-effects-panel__shadow-indicator-wrapper\">\n\t\t\t<Button\n\t\t\t\tclassName=\"block-editor-global-styles-effects-panel__shadow-indicator\"\n\t\t\t\tonClick={ onSelect }\n\t\t\t\tlabel={ label }\n\t\t\t\tstyle={ { boxShadow: shadow } }\n\t\t\t\tshowTooltip\n\t\t\t>\n\t\t\t\t{ isActive && <Icon icon={ check } /> }\n\t\t\t</Button>\n\t\t</div>\n\t);\n}\n"]}
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -8,6 +10,8 @@ exports.useHasFiltersPanel = useHasFiltersPanel;
8
10
 
9
11
  var _element = require("@wordpress/element");
10
12
 
13
+ var _classnames = _interopRequireDefault(require("classnames"));
14
+
11
15
  var _components = require("@wordpress/components");
12
16
 
13
17
  var _i18n = require("@wordpress/i18n");
@@ -16,6 +20,10 @@ var _utils = require("./utils");
16
20
 
17
21
  var _object = require("../../utils/object");
18
22
 
23
+ /**
24
+ * External dependencies
25
+ */
26
+
19
27
  /**
20
28
  * WordPress dependencies
21
29
  */
@@ -72,9 +80,37 @@ function FiltersToolsPanel(_ref2) {
72
80
  const DEFAULT_CONTROLS = {
73
81
  duotone: true
74
82
  };
83
+ const popoverProps = {
84
+ placement: 'left-start',
85
+ offset: 36,
86
+ shift: true,
87
+ className: 'block-editor-duotone-control__popover',
88
+ headerTitle: (0, _i18n.__)('Duotone')
89
+ };
75
90
 
76
- function FiltersPanel(_ref3) {
77
- var _inheritedValue$filte;
91
+ const LabeledColorIndicator = _ref3 => {
92
+ let {
93
+ indicator,
94
+ label
95
+ } = _ref3;
96
+ return (0, _element.createElement)(_components.__experimentalHStack, {
97
+ justify: "flex-start"
98
+ }, (0, _element.createElement)(_components.__experimentalZStack, {
99
+ isLayered: false,
100
+ offset: -8
101
+ }, (0, _element.createElement)(_components.Flex, {
102
+ expanded: false
103
+ }, indicator === 'unset' || !indicator ? (0, _element.createElement)(_components.ColorIndicator, {
104
+ className: "block-editor-duotone-control__unset-indicator"
105
+ }) : (0, _element.createElement)(_components.DuotoneSwatch, {
106
+ values: indicator
107
+ }))), (0, _element.createElement)(_components.FlexItem, {
108
+ title: label
109
+ }, label));
110
+ };
111
+
112
+ function FiltersPanel(_ref4) {
113
+ var _inheritedValue$filte, _settings$color5, _settings$color6;
78
114
 
79
115
  let {
80
116
  as: Wrapper = FiltersToolsPanel,
@@ -84,7 +120,7 @@ function FiltersPanel(_ref3) {
84
120
  settings,
85
121
  panelId,
86
122
  defaultControls = DEFAULT_CONTROLS
87
- } = _ref3;
123
+ } = _ref4;
88
124
 
89
125
  const decodeValue = rawValue => (0, _utils.getValueFromVariable)({
90
126
  settings
@@ -103,14 +139,14 @@ function FiltersPanel(_ref3) {
103
139
  const duotone = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$filte = inheritedValue.filter) === null || _inheritedValue$filte === void 0 ? void 0 : _inheritedValue$filte.duotone);
104
140
 
105
141
  const setDuotone = newValue => {
106
- const duotonePreset = duotonePalette.find(_ref4 => {
142
+ const duotonePreset = duotonePalette.find(_ref5 => {
107
143
  let {
108
144
  colors
109
- } = _ref4;
145
+ } = _ref5;
110
146
  return colors === newValue;
111
147
  });
112
148
  const settedValue = duotonePreset ? `var:preset|duotone|${duotonePreset.slug}` : newValue;
113
- onChange((0, _object.immutableSet)(value, ['filter', 'duotone'], settedValue));
149
+ onChange((0, _object.setImmutably)(value, ['filter', 'duotone'], settedValue));
114
150
  };
115
151
 
116
152
  const hasDuotone = () => {
@@ -121,6 +157,8 @@ function FiltersPanel(_ref3) {
121
157
 
122
158
  const resetDuotone = () => setDuotone(undefined);
123
159
 
160
+ const disableCustomColors = !(settings !== null && settings !== void 0 && (_settings$color5 = settings.color) !== null && _settings$color5 !== void 0 && _settings$color5.custom);
161
+ const disableCustomDuotone = !(settings !== null && settings !== void 0 && (_settings$color6 = settings.color) !== null && _settings$color6 !== void 0 && _settings$color6.customDuotone) || (colorPalette === null || colorPalette === void 0 ? void 0 : colorPalette.length) === 0 && disableCustomColors;
124
162
  const resetAllFilter = (0, _element.useCallback)(previousValue => {
125
163
  return { ...previousValue,
126
164
  filter: { ...previousValue.filter,
@@ -139,13 +177,39 @@ function FiltersPanel(_ref3) {
139
177
  onDeselect: resetDuotone,
140
178
  isShownByDefault: defaultControls.duotone,
141
179
  panelId: panelId
142
- }, (0, _element.createElement)(_components.__experimentalVStack, null, (0, _element.createElement)("p", null, (0, _i18n.__)('Create a two-tone color effect without losing your original image.')), (0, _element.createElement)(_components.DuotonePicker, {
143
- colorPalette: colorPalette,
144
- duotonePalette: duotonePalette,
145
- disableCustomColors: true,
146
- disableCustomDuotone: true,
147
- value: duotone,
148
- onChange: setDuotone
149
- }))));
180
+ }, (0, _element.createElement)(_components.Dropdown, {
181
+ popoverProps: popoverProps,
182
+ className: "block-editor-global-styles-filters-panel__dropdown",
183
+ renderToggle: _ref6 => {
184
+ let {
185
+ onToggle,
186
+ isOpen
187
+ } = _ref6;
188
+ const toggleProps = {
189
+ onClick: onToggle,
190
+ className: (0, _classnames.default)({
191
+ 'is-open': isOpen
192
+ }),
193
+ 'aria-expanded': isOpen
194
+ };
195
+ return (0, _element.createElement)(_components.__experimentalItemGroup, {
196
+ isBordered: true,
197
+ isSeparated: true
198
+ }, (0, _element.createElement)(_components.Button, toggleProps, (0, _element.createElement)(LabeledColorIndicator, {
199
+ indicator: duotone,
200
+ label: (0, _i18n.__)('Duotone')
201
+ })));
202
+ },
203
+ renderContent: () => (0, _element.createElement)(_components.__experimentalDropdownContentWrapper, {
204
+ paddingSize: "medium"
205
+ }, (0, _element.createElement)(_components.__experimentalVStack, null, (0, _element.createElement)("p", null, (0, _i18n.__)('Create a two-tone color effect without losing your original image.')), (0, _element.createElement)(_components.DuotonePicker, {
206
+ colorPalette: colorPalette,
207
+ duotonePalette: duotonePalette,
208
+ disableCustomColors: disableCustomColors,
209
+ disableCustomDuotone: disableCustomDuotone,
210
+ value: duotone,
211
+ onChange: setDuotone
212
+ })))
213
+ })));
150
214
  }
151
215
  //# sourceMappingURL=filters-panel.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/filters-panel.js"],"names":["EMPTY_ARRAY","useMultiOriginColorPresets","settings","presetSetting","defaultSetting","disableDefault","color","userPresets","custom","themePresets","theme","defaultPresets","default","useHasFiltersPanel","hasDuotone","useHasDuotoneControl","customDuotone","defaultDuotone","FiltersToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","DEFAULT_CONTROLS","duotone","FiltersPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","hasDuotoneEnabled","duotonePalette","colorPalette","filter","setDuotone","newValue","duotonePreset","find","colors","settedValue","slug","resetDuotone","undefined","previousValue"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalVStack as VStack,\n\tDuotonePicker,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable } from './utils';\nimport { immutableSet } from '../../utils/object';\n\nconst EMPTY_ARRAY = [];\nfunction useMultiOriginColorPresets(\n\tsettings,\n\t{ presetSetting, defaultSetting }\n) {\n\tconst disableDefault = ! settings?.color?.[ defaultSetting ];\n\tconst userPresets =\n\t\tsettings?.color?.[ presetSetting ]?.custom || EMPTY_ARRAY;\n\tconst themePresets =\n\t\tsettings?.color?.[ presetSetting ]?.theme || EMPTY_ARRAY;\n\tconst defaultPresets =\n\t\tsettings?.color?.[ presetSetting ]?.default || EMPTY_ARRAY;\n\treturn useMemo(\n\t\t() => [\n\t\t\t...userPresets,\n\t\t\t...themePresets,\n\t\t\t...( disableDefault ? EMPTY_ARRAY : defaultPresets ),\n\t\t],\n\t\t[ disableDefault, userPresets, themePresets, defaultPresets ]\n\t);\n}\n\nexport function useHasFiltersPanel( settings ) {\n\tconst hasDuotone = useHasDuotoneControl( settings );\n\n\treturn hasDuotone;\n}\n\nfunction useHasDuotoneControl( settings ) {\n\treturn settings.color.customDuotone || settings.color.defaultDuotone;\n}\n\nfunction FiltersToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Filters' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tduotone: true,\n};\n\nexport default function FiltersPanel( {\n\tas: Wrapper = FiltersToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Duotone\n\tconst hasDuotoneEnabled = useHasDuotoneControl( settings );\n\tconst duotonePalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'duotone',\n\t\tdefaultSetting: 'defaultDuotone',\n\t} );\n\tconst colorPalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'palette',\n\t\tdefaultSetting: 'defaultPalette',\n\t} );\n\tconst duotone = decodeValue( inheritedValue?.filter?.duotone );\n\tconst setDuotone = ( newValue ) => {\n\t\tconst duotonePreset = duotonePalette.find( ( { colors } ) => {\n\t\t\treturn colors === newValue;\n\t\t} );\n\t\tconst settedValue = duotonePreset\n\t\t\t? `var:preset|duotone|${ duotonePreset.slug }`\n\t\t\t: newValue;\n\t\tonChange( immutableSet( value, [ 'filter', 'duotone' ], settedValue ) );\n\t};\n\tconst hasDuotone = () => !! value?.filter?.duotone;\n\tconst resetDuotone = () => setDuotone( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tfilter: {\n\t\t\t\t...previousValue.filter,\n\t\t\t\tduotone: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasDuotoneEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\thasValue={ hasDuotone }\n\t\t\t\t\tonDeselect={ resetDuotone }\n\t\t\t\t\tisShownByDefault={ defaultControls.duotone }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<VStack>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\t\tdisableCustomColors={ true }\n\t\t\t\t\t\t\tdisableCustomDuotone={ true }\n\t\t\t\t\t\t\tvalue={ duotone }\n\t\t\t\t\t\t\tonChange={ setDuotone }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</VStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/filters-panel.js"],"names":["EMPTY_ARRAY","useMultiOriginColorPresets","settings","presetSetting","defaultSetting","disableDefault","color","userPresets","custom","themePresets","theme","defaultPresets","default","useHasFiltersPanel","hasDuotone","useHasDuotoneControl","customDuotone","defaultDuotone","FiltersToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","DEFAULT_CONTROLS","duotone","popoverProps","placement","offset","shift","className","headerTitle","LabeledColorIndicator","indicator","label","FiltersPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","hasDuotoneEnabled","duotonePalette","colorPalette","filter","setDuotone","newValue","duotonePreset","find","colors","settedValue","slug","resetDuotone","undefined","disableCustomColors","disableCustomDuotone","length","previousValue","onToggle","isOpen","toggleProps","onClick"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalZStack as ZStack,\n\t__experimentalVStack as VStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n\tColorIndicator,\n\tDuotonePicker,\n\tDuotoneSwatch,\n\tDropdown,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst EMPTY_ARRAY = [];\nfunction useMultiOriginColorPresets(\n\tsettings,\n\t{ presetSetting, defaultSetting }\n) {\n\tconst disableDefault = ! settings?.color?.[ defaultSetting ];\n\tconst userPresets =\n\t\tsettings?.color?.[ presetSetting ]?.custom || EMPTY_ARRAY;\n\tconst themePresets =\n\t\tsettings?.color?.[ presetSetting ]?.theme || EMPTY_ARRAY;\n\tconst defaultPresets =\n\t\tsettings?.color?.[ presetSetting ]?.default || EMPTY_ARRAY;\n\treturn useMemo(\n\t\t() => [\n\t\t\t...userPresets,\n\t\t\t...themePresets,\n\t\t\t...( disableDefault ? EMPTY_ARRAY : defaultPresets ),\n\t\t],\n\t\t[ disableDefault, userPresets, themePresets, defaultPresets ]\n\t);\n}\n\nexport function useHasFiltersPanel( settings ) {\n\tconst hasDuotone = useHasDuotoneControl( settings );\n\n\treturn hasDuotone;\n}\n\nfunction useHasDuotoneControl( settings ) {\n\treturn settings.color.customDuotone || settings.color.defaultDuotone;\n}\n\nfunction FiltersToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Filters' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tduotone: true,\n};\n\nconst popoverProps = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-duotone-control__popover',\n\theaderTitle: __( 'Duotone' ),\n};\n\nconst LabeledColorIndicator = ( { indicator, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t<Flex expanded={ false }>\n\t\t\t\t{ indicator === 'unset' || ! indicator ? (\n\t\t\t\t\t<ColorIndicator className=\"block-editor-duotone-control__unset-indicator\" />\n\t\t\t\t) : (\n\t\t\t\t\t<DuotoneSwatch values={ indicator } />\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</ZStack>\n\t\t<FlexItem title={ label }>{ label }</FlexItem>\n\t</HStack>\n);\n\nexport default function FiltersPanel( {\n\tas: Wrapper = FiltersToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Duotone\n\tconst hasDuotoneEnabled = useHasDuotoneControl( settings );\n\tconst duotonePalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'duotone',\n\t\tdefaultSetting: 'defaultDuotone',\n\t} );\n\tconst colorPalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'palette',\n\t\tdefaultSetting: 'defaultPalette',\n\t} );\n\tconst duotone = decodeValue( inheritedValue?.filter?.duotone );\n\tconst setDuotone = ( newValue ) => {\n\t\tconst duotonePreset = duotonePalette.find( ( { colors } ) => {\n\t\t\treturn colors === newValue;\n\t\t} );\n\t\tconst settedValue = duotonePreset\n\t\t\t? `var:preset|duotone|${ duotonePreset.slug }`\n\t\t\t: newValue;\n\t\tonChange( setImmutably( value, [ 'filter', 'duotone' ], settedValue ) );\n\t};\n\tconst hasDuotone = () => !! value?.filter?.duotone;\n\tconst resetDuotone = () => setDuotone( undefined );\n\n\tconst disableCustomColors = ! settings?.color?.custom;\n\tconst disableCustomDuotone =\n\t\t! settings?.color?.customDuotone ||\n\t\t( colorPalette?.length === 0 && disableCustomColors );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tfilter: {\n\t\t\t\t...previousValue.filter,\n\t\t\t\tduotone: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasDuotoneEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\thasValue={ hasDuotone }\n\t\t\t\t\tonDeselect={ resetDuotone }\n\t\t\t\t\tisShownByDefault={ defaultControls.duotone }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-filters-panel__dropdown\"\n\t\t\t\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\t\t\t\tconst toggleProps = {\n\t\t\t\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\t\t\t\tclassName: classnames( { 'is-open': isOpen } ),\n\t\t\t\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t\t\t<Button { ...toggleProps }>\n\t\t\t\t\t\t\t\t\t\t<LabeledColorIndicator\n\t\t\t\t\t\t\t\t\t\t\tindicator={ duotone }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<DropdownContentWrapper paddingSize=\"medium\">\n\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\t\t\t\t\tdisableCustomColors={\n\t\t\t\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdisableCustomDuotone={\n\t\t\t\t\t\t\t\t\t\t\tdisableCustomDuotone\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tvalue={ duotone }\n\t\t\t\t\t\t\t\t\t\tonChange={ setDuotone }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"]}
@@ -188,7 +188,7 @@ function TypographyPanel(_ref4) {
188
188
  } = _ref6;
189
189
  return f === newValue;
190
190
  })) === null || _fontFamilies$find === void 0 ? void 0 : _fontFamilies$find.slug;
191
- onChange((0, _object.immutableSet)(value, ['typography', 'fontFamily'], slug ? `var:preset|font-family|${slug}` : newValue));
191
+ onChange((0, _object.setImmutably)(value, ['typography', 'fontFamily'], slug ? `var:preset|font-family|${slug}` : newValue || undefined));
192
192
  };
193
193
 
194
194
  const hasFontFamily = () => {
@@ -208,7 +208,7 @@ function TypographyPanel(_ref4) {
208
208
 
209
209
  const setFontSize = (newValue, metadata) => {
210
210
  const actualValue = !!(metadata !== null && metadata !== void 0 && metadata.slug) ? `var:preset|font-size|${metadata === null || metadata === void 0 ? void 0 : metadata.slug}` : newValue;
211
- onChange((0, _object.immutableSet)(value, ['typography', 'fontSize'], actualValue));
211
+ onChange((0, _object.setImmutably)(value, ['typography', 'fontSize'], actualValue || undefined));
212
212
  };
213
213
 
214
214
  const hasFontSize = () => {
@@ -234,8 +234,8 @@ function TypographyPanel(_ref4) {
234
234
  } = _ref8;
235
235
  onChange({ ...value,
236
236
  typography: { ...(value === null || value === void 0 ? void 0 : value.typography),
237
- fontStyle: newFontStyle,
238
- fontWeight: newFontWeight
237
+ fontStyle: newFontStyle || undefined,
238
+ fontWeight: newFontWeight || undefined
239
239
  }
240
240
  });
241
241
  };
@@ -255,7 +255,7 @@ function TypographyPanel(_ref4) {
255
255
  const lineHeight = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$typog5 = inheritedValue.typography) === null || _inheritedValue$typog5 === void 0 ? void 0 : _inheritedValue$typog5.lineHeight);
256
256
 
257
257
  const setLineHeight = newValue => {
258
- onChange((0, _object.immutableSet)(value, ['typography', 'lineHeight'], newValue));
258
+ onChange((0, _object.setImmutably)(value, ['typography', 'lineHeight'], newValue || undefined));
259
259
  };
260
260
 
261
261
  const hasLineHeight = () => {
@@ -271,7 +271,7 @@ function TypographyPanel(_ref4) {
271
271
  const letterSpacing = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$typog6 = inheritedValue.typography) === null || _inheritedValue$typog6 === void 0 ? void 0 : _inheritedValue$typog6.letterSpacing);
272
272
 
273
273
  const setLetterSpacing = newValue => {
274
- onChange((0, _object.immutableSet)(value, ['typography', 'letterSpacing'], newValue));
274
+ onChange((0, _object.setImmutably)(value, ['typography', 'letterSpacing'], newValue || undefined));
275
275
  };
276
276
 
277
277
  const hasLetterSpacing = () => {
@@ -287,7 +287,7 @@ function TypographyPanel(_ref4) {
287
287
  const textColumns = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$typog7 = inheritedValue.typography) === null || _inheritedValue$typog7 === void 0 ? void 0 : _inheritedValue$typog7.textColumns);
288
288
 
289
289
  const setTextColumns = newValue => {
290
- onChange((0, _object.immutableSet)(value, ['typography', 'textColumns'], newValue));
290
+ onChange((0, _object.setImmutably)(value, ['typography', 'textColumns'], newValue || undefined));
291
291
  };
292
292
 
293
293
  const hasTextColumns = () => {
@@ -303,7 +303,7 @@ function TypographyPanel(_ref4) {
303
303
  const textTransform = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$typog8 = inheritedValue.typography) === null || _inheritedValue$typog8 === void 0 ? void 0 : _inheritedValue$typog8.textTransform);
304
304
 
305
305
  const setTextTransform = newValue => {
306
- onChange((0, _object.immutableSet)(value, ['typography', 'textTransform'], newValue));
306
+ onChange((0, _object.setImmutably)(value, ['typography', 'textTransform'], newValue || undefined));
307
307
  };
308
308
 
309
309
  const hasTextTransform = () => {
@@ -319,7 +319,7 @@ function TypographyPanel(_ref4) {
319
319
  const textDecoration = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$typog9 = inheritedValue.typography) === null || _inheritedValue$typog9 === void 0 ? void 0 : _inheritedValue$typog9.textDecoration);
320
320
 
321
321
  const setTextDecoration = newValue => {
322
- onChange((0, _object.immutableSet)(value, ['typography', 'textDecoration'], newValue));
322
+ onChange((0, _object.setImmutably)(value, ['typography', 'textDecoration'], newValue || undefined));
323
323
  };
324
324
 
325
325
  const hasTextDecoration = () => {