@wordpress/block-editor 14.2.0 → 14.2.1-next.1f6eadc42.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 (235) hide show
  1. package/build/components/block-breadcrumb/index.js +4 -10
  2. package/build/components/block-breadcrumb/index.js.map +1 -1
  3. package/build/components/block-compare/block-view.js +2 -4
  4. package/build/components/block-compare/block-view.js.map +1 -1
  5. package/build/components/block-edit/multiple-usage-warning.js +4 -8
  6. package/build/components/block-edit/multiple-usage-warning.js.map +1 -1
  7. package/build/components/block-inspector/index.js +0 -2
  8. package/build/components/block-inspector/index.js.map +1 -1
  9. package/build/components/block-list/block-invalid-warning.js +2 -4
  10. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  11. package/build/components/block-list/index.js +14 -3
  12. package/build/components/block-list/index.js.map +1 -1
  13. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +7 -0
  14. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
  15. package/build/components/block-list/zoom-out-separator.js +98 -0
  16. package/build/components/block-list/zoom-out-separator.js.map +1 -0
  17. package/build/components/block-mover/button.js +2 -4
  18. package/build/components/block-mover/button.js.map +1 -1
  19. package/build/components/block-mover/index.js +2 -4
  20. package/build/components/block-mover/index.js.map +1 -1
  21. package/build/components/block-pattern-setup/index.js +2 -7
  22. package/build/components/block-pattern-setup/index.js.map +1 -1
  23. package/build/components/block-patterns-list/index.js +2 -7
  24. package/build/components/block-patterns-list/index.js.map +1 -1
  25. package/build/components/block-switcher/index.js +8 -2
  26. package/build/components/block-switcher/index.js.map +1 -1
  27. package/build/components/block-switcher/pattern-transformations-menu.js +2 -7
  28. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  29. package/build/components/block-toolbar/index.js +10 -4
  30. package/build/components/block-toolbar/index.js.map +1 -1
  31. package/build/components/block-tools/index.js +1 -1
  32. package/build/components/block-tools/index.js.map +1 -1
  33. package/build/components/block-tools/zoom-out-mode-inserters.js +3 -12
  34. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  35. package/build/components/block-tools/zoom-out-toolbar.js +13 -3
  36. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  37. package/build/components/button-block-appender/index.js +7 -21
  38. package/build/components/button-block-appender/index.js.map +1 -1
  39. package/build/components/global-styles/shadow-panel-components.js +2 -11
  40. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  41. package/build/components/grid/grid-item-resizer.js +2 -2
  42. package/build/components/grid/grid-item-resizer.js.map +1 -1
  43. package/build/components/iframe/get-compatibility-styles.js +1 -1
  44. package/build/components/iframe/get-compatibility-styles.js.map +1 -1
  45. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +23 -13
  46. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  47. package/build/components/inserter/index.js +4 -11
  48. package/build/components/inserter/index.js.map +1 -1
  49. package/build/components/inserter/media-tab/media-list.js +1 -5
  50. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  51. package/build/components/inserter/media-tab/media-preview.js +1 -5
  52. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  53. package/build/components/inserter/quick-inserter.js +0 -4
  54. package/build/components/inserter/quick-inserter.js.map +1 -1
  55. package/build/components/inserter-listbox/index.js +2 -8
  56. package/build/components/inserter-listbox/index.js.map +1 -1
  57. package/build/components/inserter-listbox/item.js +2 -10
  58. package/build/components/inserter-listbox/item.js.map +1 -1
  59. package/build/components/inserter-listbox/row.js +1 -9
  60. package/build/components/inserter-listbox/row.js.map +1 -1
  61. package/build/components/list-view/index.js +3 -7
  62. package/build/components/list-view/index.js.map +1 -1
  63. package/build/components/media-placeholder/index.js +4 -4
  64. package/build/components/media-placeholder/index.js.map +1 -1
  65. package/build/components/spacing-sizes-control/index.js +8 -9
  66. package/build/components/spacing-sizes-control/index.js.map +1 -1
  67. package/build/components/spacing-sizes-control/linked-button.js +35 -0
  68. package/build/components/spacing-sizes-control/linked-button.js.map +1 -0
  69. package/build/components/spacing-sizes-control/utils.js +4 -15
  70. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  71. package/build/components/use-block-drop-zone/index.js +27 -1
  72. package/build/components/use-block-drop-zone/index.js.map +1 -1
  73. package/build/hooks/block-bindings.js +1 -0
  74. package/build/hooks/block-bindings.js.map +1 -1
  75. package/build/hooks/layout.js +0 -1
  76. package/build/hooks/layout.js.map +1 -1
  77. package/build/layouts/constrained.js +5 -6
  78. package/build/layouts/constrained.js.map +1 -1
  79. package/build/layouts/grid.js +19 -16
  80. package/build/layouts/grid.js.map +1 -1
  81. package/build/private-apis.js +0 -2
  82. package/build/private-apis.js.map +1 -1
  83. package/build/store/private-selectors.js +3 -3
  84. package/build/store/private-selectors.js.map +1 -1
  85. package/build/store/reducer.js +0 -2
  86. package/build/store/reducer.js.map +1 -1
  87. package/build-module/components/block-breadcrumb/index.js +4 -10
  88. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  89. package/build-module/components/block-compare/block-view.js +2 -4
  90. package/build-module/components/block-compare/block-view.js.map +1 -1
  91. package/build-module/components/block-edit/multiple-usage-warning.js +4 -8
  92. package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
  93. package/build-module/components/block-inspector/index.js +0 -2
  94. package/build-module/components/block-inspector/index.js.map +1 -1
  95. package/build-module/components/block-list/block-invalid-warning.js +2 -4
  96. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  97. package/build-module/components/block-list/index.js +14 -3
  98. package/build-module/components/block-list/index.js.map +1 -1
  99. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +8 -1
  100. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
  101. package/build-module/components/block-list/zoom-out-separator.js +90 -0
  102. package/build-module/components/block-list/zoom-out-separator.js.map +1 -0
  103. package/build-module/components/block-mover/button.js +2 -4
  104. package/build-module/components/block-mover/button.js.map +1 -1
  105. package/build-module/components/block-mover/index.js +2 -4
  106. package/build-module/components/block-mover/index.js.map +1 -1
  107. package/build-module/components/block-pattern-setup/index.js +2 -7
  108. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  109. package/build-module/components/block-patterns-list/index.js +2 -7
  110. package/build-module/components/block-patterns-list/index.js.map +1 -1
  111. package/build-module/components/block-switcher/index.js +8 -2
  112. package/build-module/components/block-switcher/index.js.map +1 -1
  113. package/build-module/components/block-switcher/pattern-transformations-menu.js +2 -7
  114. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  115. package/build-module/components/block-toolbar/index.js +10 -4
  116. package/build-module/components/block-toolbar/index.js.map +1 -1
  117. package/build-module/components/block-tools/index.js +1 -1
  118. package/build-module/components/block-tools/index.js.map +1 -1
  119. package/build-module/components/block-tools/zoom-out-mode-inserters.js +3 -13
  120. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  121. package/build-module/components/block-tools/zoom-out-toolbar.js +13 -3
  122. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  123. package/build-module/components/button-block-appender/index.js +8 -23
  124. package/build-module/components/button-block-appender/index.js.map +1 -1
  125. package/build-module/components/global-styles/shadow-panel-components.js +2 -11
  126. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  127. package/build-module/components/grid/grid-item-resizer.js +2 -2
  128. package/build-module/components/grid/grid-item-resizer.js.map +1 -1
  129. package/build-module/components/iframe/get-compatibility-styles.js +1 -1
  130. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
  131. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +23 -13
  132. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  133. package/build-module/components/inserter/index.js +4 -11
  134. package/build-module/components/inserter/index.js.map +1 -1
  135. package/build-module/components/inserter/media-tab/media-list.js +1 -5
  136. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  137. package/build-module/components/inserter/media-tab/media-preview.js +2 -6
  138. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  139. package/build-module/components/inserter/quick-inserter.js +1 -5
  140. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  141. package/build-module/components/inserter-listbox/index.js +1 -5
  142. package/build-module/components/inserter-listbox/index.js.map +1 -1
  143. package/build-module/components/inserter-listbox/item.js +3 -11
  144. package/build-module/components/inserter-listbox/item.js.map +1 -1
  145. package/build-module/components/inserter-listbox/row.js +2 -10
  146. package/build-module/components/inserter-listbox/row.js.map +1 -1
  147. package/build-module/components/list-view/index.js +3 -7
  148. package/build-module/components/list-view/index.js.map +1 -1
  149. package/build-module/components/media-placeholder/index.js +4 -4
  150. package/build-module/components/media-placeholder/index.js.map +1 -1
  151. package/build-module/components/spacing-sizes-control/index.js +9 -10
  152. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  153. package/build-module/components/spacing-sizes-control/linked-button.js +28 -0
  154. package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -0
  155. package/build-module/components/spacing-sizes-control/utils.js +4 -15
  156. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  157. package/build-module/components/use-block-drop-zone/index.js +27 -1
  158. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  159. package/build-module/hooks/block-bindings.js +1 -0
  160. package/build-module/hooks/block-bindings.js.map +1 -1
  161. package/build-module/hooks/layout.js +0 -1
  162. package/build-module/hooks/layout.js.map +1 -1
  163. package/build-module/layouts/constrained.js +7 -8
  164. package/build-module/layouts/constrained.js.map +1 -1
  165. package/build-module/layouts/grid.js +21 -18
  166. package/build-module/layouts/grid.js.map +1 -1
  167. package/build-module/private-apis.js +0 -2
  168. package/build-module/private-apis.js.map +1 -1
  169. package/build-module/store/private-selectors.js +3 -3
  170. package/build-module/store/private-selectors.js.map +1 -1
  171. package/build-module/store/reducer.js +0 -2
  172. package/build-module/store/reducer.js.map +1 -1
  173. package/build-style/content-rtl.css +17 -0
  174. package/build-style/content.css +17 -0
  175. package/build-style/style-rtl.css +13 -82
  176. package/build-style/style.css +13 -82
  177. package/package.json +32 -32
  178. package/src/components/block-breadcrumb/index.js +2 -6
  179. package/src/components/block-breadcrumb/style.scss +1 -30
  180. package/src/components/block-compare/block-view.js +1 -2
  181. package/src/components/block-compare/test/__snapshots__/block-view.js.snap +1 -1
  182. package/src/components/block-edit/multiple-usage-warning.js +2 -4
  183. package/src/components/block-inspector/index.js +0 -1
  184. package/src/components/block-inspector/style.scss +2 -4
  185. package/src/components/block-list/block-invalid-warning.js +1 -2
  186. package/src/components/block-list/content.scss +21 -0
  187. package/src/components/block-list/index.js +59 -38
  188. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +13 -1
  189. package/src/components/block-list/zoom-out-separator.js +110 -0
  190. package/src/components/block-mover/button.js +1 -2
  191. package/src/components/block-mover/index.js +1 -2
  192. package/src/components/block-pattern-setup/index.js +3 -11
  193. package/src/components/block-patterns-list/index.js +3 -8
  194. package/src/components/block-switcher/index.js +19 -3
  195. package/src/components/block-switcher/pattern-transformations-menu.js +3 -8
  196. package/src/components/block-switcher/style.scss +0 -24
  197. package/src/components/block-toolbar/index.js +10 -3
  198. package/src/components/block-toolbar/style.scss +4 -1
  199. package/src/components/block-tools/index.js +1 -1
  200. package/src/components/block-tools/zoom-out-mode-inserters.js +0 -12
  201. package/src/components/block-tools/zoom-out-toolbar.js +11 -0
  202. package/src/components/button-block-appender/index.js +16 -25
  203. package/src/components/global-styles/shadow-panel-components.js +2 -10
  204. package/src/components/grid/grid-item-resizer.js +2 -2
  205. package/src/components/iframe/get-compatibility-styles.js +6 -1
  206. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +32 -15
  207. package/src/components/inserter/index.js +4 -10
  208. package/src/components/inserter/media-tab/media-list.js +1 -4
  209. package/src/components/inserter/media-tab/media-preview.js +3 -6
  210. package/src/components/inserter/quick-inserter.js +1 -4
  211. package/src/components/inserter/style.scss +4 -9
  212. package/src/components/inserter-listbox/index.js +1 -4
  213. package/src/components/inserter-listbox/item.js +3 -13
  214. package/src/components/inserter-listbox/row.js +2 -9
  215. package/src/components/list-view/index.js +3 -8
  216. package/src/components/media-placeholder/README.md +2 -2
  217. package/src/components/media-placeholder/index.js +7 -4
  218. package/src/components/spacing-sizes-control/index.js +10 -13
  219. package/src/components/spacing-sizes-control/linked-button.js +32 -0
  220. package/src/components/spacing-sizes-control/test/utils.js +14 -15
  221. package/src/components/spacing-sizes-control/utils.js +5 -18
  222. package/src/components/use-block-drop-zone/index.js +33 -1
  223. package/src/hooks/block-bindings.js +1 -1
  224. package/src/hooks/layout.js +0 -1
  225. package/src/hooks/layout.scss +6 -20
  226. package/src/layouts/constrained.js +9 -7
  227. package/src/layouts/grid.js +29 -22
  228. package/src/private-apis.js +0 -2
  229. package/src/store/private-selectors.js +6 -3
  230. package/src/store/reducer.js +0 -2
  231. package/build/components/spacing-sizes-control/sides-dropdown/index.js +0 -86
  232. package/build/components/spacing-sizes-control/sides-dropdown/index.js.map +0 -1
  233. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js +0 -81
  234. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js.map +0 -1
  235. package/src/components/spacing-sizes-control/sides-dropdown/index.js +0 -91
@@ -364,6 +364,11 @@ export function getInitialView( values = {}, sides ) {
364
364
  const hasNoValuesAndBalancedSides =
365
365
  ! sideValues.length && hasBalancedSidesSupport( sides );
366
366
 
367
+ // Only single side supported and no value defined.
368
+ if ( sides?.length === 1 ) {
369
+ return sides[ 0 ];
370
+ }
371
+
367
372
  if (
368
373
  hasAxisSupport( sides ) &&
369
374
  ( hasMatchingAxialValues || hasNoValuesAndBalancedSides )
@@ -371,24 +376,6 @@ export function getInitialView( values = {}, sides ) {
371
376
  return VIEWS.axial;
372
377
  }
373
378
 
374
- // Single side.
375
- // - Ensure the side returned is the first side that has a value.
376
- if ( sideValues.length === 1 ) {
377
- let side;
378
-
379
- Object.entries( values ).some( ( [ key, value ] ) => {
380
- side = key;
381
- return value !== undefined;
382
- } );
383
-
384
- return side;
385
- }
386
-
387
- // Only single side supported and no value defined.
388
- if ( sides?.length === 1 && ! sideValues.length ) {
389
- return sides[ 0 ];
390
- }
391
-
392
379
  // Default to the Custom (separated sides) view.
393
380
  return VIEWS.custom;
394
381
  }
@@ -274,6 +274,23 @@ export function isDropTargetValid(
274
274
  return areBlocksAllowed && targetMatchesDraggedBlockParents;
275
275
  }
276
276
 
277
+ /**
278
+ * Checks if the given element is an insertion point.
279
+ *
280
+ * @param {EventTarget|null} targetToCheck - The element to check.
281
+ * @param {Document} ownerDocument - The owner document of the element.
282
+ * @return {boolean} True if the element is a insertion point, false otherwise.
283
+ */
284
+ function isInsertionPoint( targetToCheck, ownerDocument ) {
285
+ const { defaultView } = ownerDocument;
286
+
287
+ return !! (
288
+ defaultView &&
289
+ targetToCheck instanceof defaultView.HTMLElement &&
290
+ targetToCheck.dataset.isInsertionPoint
291
+ );
292
+ }
293
+
277
294
  /**
278
295
  * @typedef {Object} WPBlockDropZoneConfig
279
296
  * @property {?HTMLElement} dropZoneElement Optional element to be used as the drop zone.
@@ -422,6 +439,10 @@ export default function useBlockDropZone( {
422
439
  const [ targetIndex, operation, nearestSide ] =
423
440
  dropTargetPosition;
424
441
 
442
+ if ( isZoomOutMode() && operation !== 'insert' ) {
443
+ return;
444
+ }
445
+
425
446
  if ( operation === 'group' ) {
426
447
  const targetBlock = blocks[ targetIndex ];
427
448
  const areAllImages = [
@@ -521,7 +542,18 @@ export default function useBlockDropZone( {
521
542
  // https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget
522
543
  throttled( event, event.currentTarget.ownerDocument );
523
544
  },
524
- onDragLeave() {
545
+ onDragLeave( event ) {
546
+ const { ownerDocument } = event.currentTarget;
547
+
548
+ // If the drag event is leaving the drop zone and entering an insertion point,
549
+ // do not hide the insertion point as it is conceptually within the dropzone.
550
+ if (
551
+ isInsertionPoint( event.relatedTarget, ownerDocument ) ||
552
+ isInsertionPoint( event.target, ownerDocument )
553
+ ) {
554
+ return;
555
+ }
556
+
525
557
  throttled.cancel();
526
558
  hideInsertionPoint();
527
559
  },
@@ -98,7 +98,7 @@ function BlockBindingsAttribute( { attribute, binding } ) {
98
98
  unlock( blocksPrivateApis ).getBlockBindingsSource( sourceName );
99
99
  const isSourceInvalid = ! sourceProps;
100
100
  return (
101
- <VStack className="block-editor-bindings__item">
101
+ <VStack className="block-editor-bindings__item" spacing={ 0 }>
102
102
  <Text truncate>{ attribute }</Text>
103
103
  { !! binding && (
104
104
  <Text
@@ -233,7 +233,6 @@ function LayoutPanelPure( {
233
233
  <>
234
234
  <ToggleControl
235
235
  __nextHasNoMarginBottom
236
- className="block-editor-hooks__toggle-control"
237
236
  label={ __( 'Inner blocks use content width' ) }
238
237
  checked={
239
238
  layoutType?.name === 'constrained' ||
@@ -1,23 +1,13 @@
1
- .block-editor-hooks__layout-controls-units {
2
- display: flex;
3
- flex-direction: column;
4
- gap: $grid-unit-20;
5
- }
6
-
7
- .block-editor-block-inspector .block-editor-hooks__layout-controls-unit-input {
8
- margin-bottom: 0;
9
- }
10
-
11
- .block-editor-hooks__layout-controls-reset {
12
- display: flex;
13
- justify-content: flex-end;
14
- margin-bottom: $grid-unit-30;
1
+ .block-editor-hooks__layout-constrained {
2
+ .components-base-control {
3
+ margin-bottom: 0; // Cancel out margins added by block inspector
4
+ }
15
5
  }
16
6
 
17
- .block-editor-hooks__layout-controls-helptext {
7
+ .block-editor-hooks__layout-constrained-helptext {
18
8
  color: $gray-700;
19
9
  font-size: $helptext-font-size;
20
- margin-bottom: $grid-unit-20;
10
+ margin-bottom: 0; // Cancel out margins added by common.css
21
11
  }
22
12
 
23
13
  .block-editor-hooks__flex-layout-justification-controls,
@@ -27,7 +17,3 @@
27
17
  margin-bottom: $grid-unit-10;
28
18
  }
29
19
  }
30
-
31
- .block-editor-hooks__toggle-control.block-editor-hooks__toggle-control {
32
- margin-bottom: $grid-unit-20;
33
- }
@@ -7,6 +7,7 @@ import {
7
7
  __experimentalToggleGroupControl as ToggleGroupControl,
8
8
  __experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,
9
9
  __experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,
10
+ __experimentalVStack as VStack,
10
11
  } from '@wordpress/components';
11
12
  import { __ } from '@wordpress/i18n';
12
13
  import {
@@ -70,12 +71,14 @@ export default {
70
71
  availableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],
71
72
  } );
72
73
  return (
73
- <>
74
+ <VStack
75
+ spacing={ 4 }
76
+ className="block-editor-hooks__layout-constrained"
77
+ >
74
78
  { allowCustomContentAndWideSize && (
75
- <div className="block-editor-hooks__layout-controls-units">
79
+ <>
76
80
  <UnitControl
77
81
  __next40pxDefaultSize
78
- className="block-editor-hooks__layout-controls-unit-input"
79
82
  label={ __( 'Content width' ) }
80
83
  labelPosition="top"
81
84
  value={ contentSize || wideSize || '' }
@@ -98,7 +101,6 @@ export default {
98
101
  />
99
102
  <UnitControl
100
103
  __next40pxDefaultSize
101
- className="block-editor-hooks__layout-controls-unit-input"
102
104
  label={ __( 'Wide width' ) }
103
105
  labelPosition="top"
104
106
  value={ wideSize || contentSize || '' }
@@ -119,12 +121,12 @@ export default {
119
121
  </InputControlPrefixWrapper>
120
122
  }
121
123
  />
122
- <p className="block-editor-hooks__layout-controls-helptext">
124
+ <p className="block-editor-hooks__layout-constrained-helptext">
123
125
  { __(
124
126
  'Customize the width for all elements that are assigned to the center or wide columns.'
125
127
  ) }
126
128
  </p>
127
- </div>
129
+ </>
128
130
  ) }
129
131
  { allowJustification && (
130
132
  <ToggleGroupControl
@@ -148,7 +150,7 @@ export default {
148
150
  ) }
149
151
  </ToggleGroupControl>
150
152
  ) }
151
- </>
153
+ </VStack>
152
154
  );
153
155
  },
154
156
  toolBarControls: function DefaultLayoutToolbarControls( {
@@ -13,6 +13,7 @@ import {
13
13
  __experimentalToggleGroupControlOption as ToggleGroupControlOption,
14
14
  __experimentalUnitControl as UnitControl,
15
15
  __experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,
16
+ __experimentalVStack as VStack,
16
17
  } from '@wordpress/components';
17
18
  import { useState } from '@wordpress/element';
18
19
 
@@ -74,7 +75,8 @@ export default {
74
75
  // In the experiment we want to also show column control in Auto mode, and
75
76
  // the minimum width control in Manual mode.
76
77
  const showColumnsControl =
77
- window.__experimentalEnableGridInteractivity || layout?.columnCount;
78
+ window.__experimentalEnableGridInteractivity ||
79
+ !! layout?.columnCount;
78
80
  const showMinWidthControl =
79
81
  window.__experimentalEnableGridInteractivity ||
80
82
  ! layout?.columnCount;
@@ -84,19 +86,21 @@ export default {
84
86
  layout={ layout }
85
87
  onChange={ onChange }
86
88
  />
87
- { showColumnsControl && (
88
- <GridLayoutColumnsAndRowsControl
89
- layout={ layout }
90
- onChange={ onChange }
91
- allowSizingOnChildren={ allowSizingOnChildren }
92
- />
93
- ) }
94
- { showMinWidthControl && (
95
- <GridLayoutMinimumWidthControl
96
- layout={ layout }
97
- onChange={ onChange }
98
- />
99
- ) }
89
+ <VStack spacing={ 4 }>
90
+ { showColumnsControl && (
91
+ <GridLayoutColumnsAndRowsControl
92
+ layout={ layout }
93
+ onChange={ onChange }
94
+ allowSizingOnChildren={ allowSizingOnChildren }
95
+ />
96
+ ) }
97
+ { showMinWidthControl && (
98
+ <GridLayoutMinimumWidthControl
99
+ layout={ layout }
100
+ onChange={ onChange }
101
+ />
102
+ ) }
103
+ </VStack>
100
104
  </>
101
105
  );
102
106
  },
@@ -317,7 +321,7 @@ function GridLayoutColumnsAndRowsControl( {
317
321
  const defaultNewColumnCount =
318
322
  isManualPlacement ? 1 : undefined;
319
323
  const newColumnCount =
320
- value === ''
324
+ value === '' || value === '0'
321
325
  ? defaultNewColumnCount
322
326
  : parseInt( value, 10 );
323
327
  onChange( {
@@ -327,7 +331,7 @@ function GridLayoutColumnsAndRowsControl( {
327
331
  } else {
328
332
  // Don't allow unsetting the column count.
329
333
  const newColumnCount =
330
- value === ''
334
+ value === '' || value === '0'
331
335
  ? 1
332
336
  : parseInt( value, 10 );
333
337
  onChange( {
@@ -337,7 +341,7 @@ function GridLayoutColumnsAndRowsControl( {
337
341
  }
338
342
  } }
339
343
  value={ columnCount }
340
- min={ 0 }
344
+ min={ 1 }
341
345
  label={ __( 'Columns' ) }
342
346
  hideLabelFromVision={
343
347
  ! window.__experimentalEnableGridInteractivity ||
@@ -355,7 +359,7 @@ function GridLayoutColumnsAndRowsControl( {
355
359
  onChange={ ( value ) => {
356
360
  // Don't allow unsetting the row count.
357
361
  const newRowCount =
358
- value === ''
362
+ value === '' || value === '0'
359
363
  ? 1
360
364
  : parseInt( value, 10 );
361
365
  onChange( {
@@ -364,21 +368,24 @@ function GridLayoutColumnsAndRowsControl( {
364
368
  } );
365
369
  } }
366
370
  value={ rowCount }
367
- min={ 0 }
371
+ min={ 1 }
368
372
  label={ __( 'Rows' ) }
369
373
  />
370
374
  ) : (
371
375
  <RangeControl
372
376
  __next40pxDefaultSize
373
377
  __nextHasNoMarginBottom
374
- value={ columnCount ?? 0 }
378
+ value={ columnCount ?? 1 }
375
379
  onChange={ ( value ) =>
376
380
  onChange( {
377
381
  ...layout,
378
- columnCount: value,
382
+ columnCount:
383
+ value === '' || value === '0'
384
+ ? 1
385
+ : value,
379
386
  } )
380
387
  }
381
- min={ 0 }
388
+ min={ 1 }
382
389
  max={ 16 }
383
390
  withInputField={ false }
384
391
  label={ __( 'Columns' ) }
@@ -6,7 +6,6 @@ import { ExperimentalBlockEditorProvider } from './components/provider';
6
6
  import { lock } from './lock-unlock';
7
7
  import { getRichTextValues } from './components/rich-text/get-rich-text-values';
8
8
  import ResizableBoxPopover from './components/resizable-box-popover';
9
- import { ComposedPrivateInserter as PrivateInserter } from './components/inserter';
10
9
  import { default as PrivateQuickInserter } from './components/inserter/quick-inserter';
11
10
  import {
12
11
  extractWords,
@@ -60,7 +59,6 @@ lock( privateApis, {
60
59
  ExperimentalBlockEditorProvider,
61
60
  getDuotoneFilter,
62
61
  getRichTextValues,
63
- PrivateInserter,
64
62
  PrivateQuickInserter,
65
63
  extractWords,
66
64
  getNormalizedSearchTerms,
@@ -114,6 +114,7 @@ export const getEnabledClientIdsTree = createSelector(
114
114
  state.blockEditingModes,
115
115
  state.settings.templateLock,
116
116
  state.blockListSettings,
117
+ state.editorMode,
117
118
  ]
118
119
  );
119
120
 
@@ -422,9 +423,11 @@ const EMPTY_ARRAY = [];
422
423
  export const getReusableBlocks = createRegistrySelector(
423
424
  ( select ) => ( state ) => {
424
425
  const reusableBlocksSelect = state.settings[ reusableBlocksSelectKey ];
425
- return reusableBlocksSelect
426
- ? reusableBlocksSelect( select )
427
- : state.settings.__experimentalReusableBlocks ?? EMPTY_ARRAY;
426
+ return (
427
+ ( reusableBlocksSelect
428
+ ? reusableBlocksSelect( select )
429
+ : state.settings.__experimentalReusableBlocks ) ?? EMPTY_ARRAY
430
+ );
428
431
  }
429
432
  );
430
433
 
@@ -1624,8 +1624,6 @@ export function insertionPoint( state = null, action ) {
1624
1624
  }
1625
1625
 
1626
1626
  case 'HIDE_INSERTION_POINT':
1627
- case 'CLEAR_SELECTED_BLOCK':
1628
- case 'SELECT_BLOCK':
1629
1627
  return null;
1630
1628
  }
1631
1629
 
@@ -1,86 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = SidesDropdown;
7
- var _components = require("@wordpress/components");
8
- var _icons = require("@wordpress/icons");
9
- var _utils = require("../utils");
10
- var _jsxRuntime = require("react/jsx-runtime");
11
- /**
12
- * WordPress dependencies
13
- */
14
-
15
- /**
16
- * Internal dependencies
17
- */
18
-
19
- const checkIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
20
- icon: _icons.check,
21
- size: 24
22
- });
23
- function SidesDropdown({
24
- label: labelProp,
25
- onChange,
26
- sides,
27
- value
28
- }) {
29
- if (!sides || !sides.length) {
30
- return;
31
- }
32
- const supportedItems = (0, _utils.getSupportedMenuItems)(sides);
33
- const sideIcon = supportedItems[value].icon;
34
- const {
35
- custom: customItem,
36
- ...menuItems
37
- } = supportedItems;
38
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.DropdownMenu, {
39
- icon: sideIcon,
40
- label: labelProp,
41
- className: "spacing-sizes-control__dropdown",
42
- toggleProps: {
43
- size: 'small'
44
- },
45
- children: ({
46
- onClose
47
- }) => {
48
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
49
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuGroup, {
50
- children: Object.entries(menuItems).map(([slug, {
51
- label,
52
- icon
53
- }]) => {
54
- const isSelected = value === slug;
55
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItem, {
56
- icon: icon,
57
- iconPosition: "left",
58
- isSelected: isSelected,
59
- role: "menuitemradio",
60
- onClick: () => {
61
- onChange(slug);
62
- onClose();
63
- },
64
- suffix: isSelected ? checkIcon : undefined,
65
- children: label
66
- }, slug);
67
- })
68
- }), !!customItem && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuGroup, {
69
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItem, {
70
- icon: customItem.icon,
71
- iconPosition: "left",
72
- isSelected: value === _utils.VIEWS.custom,
73
- role: "menuitemradio",
74
- onClick: () => {
75
- onChange(_utils.VIEWS.custom);
76
- onClose();
77
- },
78
- suffix: value === _utils.VIEWS.custom ? checkIcon : undefined,
79
- children: customItem.label
80
- })
81
- })]
82
- });
83
- }
84
- });
85
- }
86
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_components","require","_icons","_utils","_jsxRuntime","checkIcon","jsx","Icon","icon","check","size","SidesDropdown","label","labelProp","onChange","sides","value","length","supportedItems","getSupportedMenuItems","sideIcon","custom","customItem","menuItems","DropdownMenu","className","toggleProps","children","onClose","jsxs","Fragment","MenuGroup","Object","entries","map","slug","isSelected","MenuItem","iconPosition","role","onClick","suffix","undefined","VIEWS"],"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/sides-dropdown/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu, Icon, MenuGroup, MenuItem } from '@wordpress/components';\nimport { check } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getSupportedMenuItems, VIEWS } from '../utils';\n\nconst checkIcon = <Icon icon={ check } size={ 24 } />;\n\nexport default function SidesDropdown( {\n\tlabel: labelProp,\n\tonChange,\n\tsides,\n\tvalue,\n} ) {\n\tif ( ! sides || ! sides.length ) {\n\t\treturn;\n\t}\n\n\tconst supportedItems = getSupportedMenuItems( sides );\n\tconst sideIcon = supportedItems[ value ].icon;\n\tconst { custom: customItem, ...menuItems } = supportedItems;\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ sideIcon }\n\t\t\tlabel={ labelProp }\n\t\t\tclassName=\"spacing-sizes-control__dropdown\"\n\t\t\ttoggleProps={ { size: 'small' } }\n\t\t>\n\t\t\t{ ( { onClose } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ Object.entries( menuItems ).map(\n\t\t\t\t\t\t\t\t( [ slug, { label, icon } ] ) => {\n\t\t\t\t\t\t\t\t\tconst isSelected = value === slug;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonChange( slug );\n\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected\n\t\t\t\t\t\t\t\t\t\t\t\t\t? checkIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t{ !! customItem && (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\ticon={ customItem.icon }\n\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\tisSelected={ value === VIEWS.custom }\n\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tonChange( VIEWS.custom );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\tvalue === VIEWS.custom\n\t\t\t\t\t\t\t\t\t\t\t? checkIcon\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ customItem.label }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t} }\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AAAwD,IAAAG,WAAA,GAAAH,OAAA;AATxD;AACA;AACA;;AAIA;AACA;AACA;;AAGA,MAAMI,SAAS,gBAAG,IAAAD,WAAA,CAAAE,GAAA,EAACN,WAAA,CAAAO,IAAI;EAACC,IAAI,EAAGC,YAAO;EAACC,IAAI,EAAG;AAAI,CAAE,CAAC;AAEtC,SAASC,aAAaA,CAAE;EACtCC,KAAK,EAAEC,SAAS;EAChBC,QAAQ;EACRC,KAAK;EACLC;AACD,CAAC,EAAG;EACH,IAAK,CAAED,KAAK,IAAI,CAAEA,KAAK,CAACE,MAAM,EAAG;IAChC;EACD;EAEA,MAAMC,cAAc,GAAG,IAAAC,4BAAqB,EAAEJ,KAAM,CAAC;EACrD,MAAMK,QAAQ,GAAGF,cAAc,CAAEF,KAAK,CAAE,CAACR,IAAI;EAC7C,MAAM;IAAEa,MAAM,EAAEC,UAAU;IAAE,GAAGC;EAAU,CAAC,GAAGL,cAAc;EAE3D,oBACC,IAAAd,WAAA,CAAAE,GAAA,EAACN,WAAA,CAAAwB,YAAY;IACZhB,IAAI,EAAGY,QAAU;IACjBR,KAAK,EAAGC,SAAW;IACnBY,SAAS,EAAC,iCAAiC;IAC3CC,WAAW,EAAG;MAAEhB,IAAI,EAAE;IAAQ,CAAG;IAAAiB,QAAA,EAE/BA,CAAE;MAAEC;IAAQ,CAAC,KAAM;MACpB,oBACC,IAAAxB,WAAA,CAAAyB,IAAA,EAAAzB,WAAA,CAAA0B,QAAA;QAAAH,QAAA,gBACC,IAAAvB,WAAA,CAAAE,GAAA,EAACN,WAAA,CAAA+B,SAAS;UAAAJ,QAAA,EACPK,MAAM,CAACC,OAAO,CAAEV,SAAU,CAAC,CAACW,GAAG,CAChC,CAAE,CAAEC,IAAI,EAAE;YAAEvB,KAAK;YAAEJ;UAAK,CAAC,CAAE,KAAM;YAChC,MAAM4B,UAAU,GAAGpB,KAAK,KAAKmB,IAAI;YACjC,oBACC,IAAA/B,WAAA,CAAAE,GAAA,EAACN,WAAA,CAAAqC,QAAQ;cAER7B,IAAI,EAAGA,IAAM;cACb8B,YAAY,EAAC,MAAM;cACnBF,UAAU,EAAGA,UAAY;cACzBG,IAAI,EAAC,eAAe;cACpBC,OAAO,EAAGA,CAAA,KAAM;gBACf1B,QAAQ,CAAEqB,IAAK,CAAC;gBAChBP,OAAO,CAAC,CAAC;cACV,CAAG;cACHa,MAAM,EACLL,UAAU,GACP/B,SAAS,GACTqC,SACH;cAAAf,QAAA,EAECf;YAAK,GAfDuB,IAgBG,CAAC;UAEb,CACD;QAAC,CACS,CAAC,EACV,CAAC,CAAEb,UAAU,iBACd,IAAAlB,WAAA,CAAAE,GAAA,EAACN,WAAA,CAAA+B,SAAS;UAAAJ,QAAA,eACT,IAAAvB,WAAA,CAAAE,GAAA,EAACN,WAAA,CAAAqC,QAAQ;YACR7B,IAAI,EAAGc,UAAU,CAACd,IAAM;YACxB8B,YAAY,EAAC,MAAM;YACnBF,UAAU,EAAGpB,KAAK,KAAK2B,YAAK,CAACtB,MAAQ;YACrCkB,IAAI,EAAC,eAAe;YACpBC,OAAO,EAAGA,CAAA,KAAM;cACf1B,QAAQ,CAAE6B,YAAK,CAACtB,MAAO,CAAC;cACxBO,OAAO,CAAC,CAAC;YACV,CAAG;YACHa,MAAM,EACLzB,KAAK,KAAK2B,YAAK,CAACtB,MAAM,GACnBhB,SAAS,GACTqC,SACH;YAAAf,QAAA,EAECL,UAAU,CAACV;UAAK,CACT;QAAC,CACD,CACX;MAAA,CACA,CAAC;IAEL;EAAC,CACY,CAAC;AAEjB","ignoreList":[]}
@@ -1,81 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { DropdownMenu, Icon, MenuGroup, MenuItem } from '@wordpress/components';
5
- import { check } from '@wordpress/icons';
6
-
7
- /**
8
- * Internal dependencies
9
- */
10
- import { getSupportedMenuItems, VIEWS } from '../utils';
11
- import { jsx as _jsx } from "react/jsx-runtime";
12
- import { Fragment as _Fragment } from "react/jsx-runtime";
13
- import { jsxs as _jsxs } from "react/jsx-runtime";
14
- const checkIcon = /*#__PURE__*/_jsx(Icon, {
15
- icon: check,
16
- size: 24
17
- });
18
- export default function SidesDropdown({
19
- label: labelProp,
20
- onChange,
21
- sides,
22
- value
23
- }) {
24
- if (!sides || !sides.length) {
25
- return;
26
- }
27
- const supportedItems = getSupportedMenuItems(sides);
28
- const sideIcon = supportedItems[value].icon;
29
- const {
30
- custom: customItem,
31
- ...menuItems
32
- } = supportedItems;
33
- return /*#__PURE__*/_jsx(DropdownMenu, {
34
- icon: sideIcon,
35
- label: labelProp,
36
- className: "spacing-sizes-control__dropdown",
37
- toggleProps: {
38
- size: 'small'
39
- },
40
- children: ({
41
- onClose
42
- }) => {
43
- return /*#__PURE__*/_jsxs(_Fragment, {
44
- children: [/*#__PURE__*/_jsx(MenuGroup, {
45
- children: Object.entries(menuItems).map(([slug, {
46
- label,
47
- icon
48
- }]) => {
49
- const isSelected = value === slug;
50
- return /*#__PURE__*/_jsx(MenuItem, {
51
- icon: icon,
52
- iconPosition: "left",
53
- isSelected: isSelected,
54
- role: "menuitemradio",
55
- onClick: () => {
56
- onChange(slug);
57
- onClose();
58
- },
59
- suffix: isSelected ? checkIcon : undefined,
60
- children: label
61
- }, slug);
62
- })
63
- }), !!customItem && /*#__PURE__*/_jsx(MenuGroup, {
64
- children: /*#__PURE__*/_jsx(MenuItem, {
65
- icon: customItem.icon,
66
- iconPosition: "left",
67
- isSelected: value === VIEWS.custom,
68
- role: "menuitemradio",
69
- onClick: () => {
70
- onChange(VIEWS.custom);
71
- onClose();
72
- },
73
- suffix: value === VIEWS.custom ? checkIcon : undefined,
74
- children: customItem.label
75
- })
76
- })]
77
- });
78
- }
79
- });
80
- }
81
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["DropdownMenu","Icon","MenuGroup","MenuItem","check","getSupportedMenuItems","VIEWS","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","checkIcon","icon","size","SidesDropdown","label","labelProp","onChange","sides","value","length","supportedItems","sideIcon","custom","customItem","menuItems","className","toggleProps","children","onClose","Object","entries","map","slug","isSelected","iconPosition","role","onClick","suffix","undefined"],"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/sides-dropdown/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu, Icon, MenuGroup, MenuItem } from '@wordpress/components';\nimport { check } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getSupportedMenuItems, VIEWS } from '../utils';\n\nconst checkIcon = <Icon icon={ check } size={ 24 } />;\n\nexport default function SidesDropdown( {\n\tlabel: labelProp,\n\tonChange,\n\tsides,\n\tvalue,\n} ) {\n\tif ( ! sides || ! sides.length ) {\n\t\treturn;\n\t}\n\n\tconst supportedItems = getSupportedMenuItems( sides );\n\tconst sideIcon = supportedItems[ value ].icon;\n\tconst { custom: customItem, ...menuItems } = supportedItems;\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ sideIcon }\n\t\t\tlabel={ labelProp }\n\t\t\tclassName=\"spacing-sizes-control__dropdown\"\n\t\t\ttoggleProps={ { size: 'small' } }\n\t\t>\n\t\t\t{ ( { onClose } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ Object.entries( menuItems ).map(\n\t\t\t\t\t\t\t\t( [ slug, { label, icon } ] ) => {\n\t\t\t\t\t\t\t\t\tconst isSelected = value === slug;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonChange( slug );\n\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected\n\t\t\t\t\t\t\t\t\t\t\t\t\t? checkIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t{ !! customItem && (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\ticon={ customItem.icon }\n\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\tisSelected={ value === VIEWS.custom }\n\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tonChange( VIEWS.custom );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\tvalue === VIEWS.custom\n\t\t\t\t\t\t\t\t\t\t\t? checkIcon\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ customItem.label }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t} }\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,YAAY,EAAEC,IAAI,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,uBAAuB;AAC/E,SAASC,KAAK,QAAQ,kBAAkB;;AAExC;AACA;AACA;AACA,SAASC,qBAAqB,EAAEC,KAAK,QAAQ,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAExD,MAAMC,SAAS,gBAAGL,IAAA,CAACP,IAAI;EAACa,IAAI,EAAGV,KAAO;EAACW,IAAI,EAAG;AAAI,CAAE,CAAC;AAErD,eAAe,SAASC,aAAaA,CAAE;EACtCC,KAAK,EAAEC,SAAS;EAChBC,QAAQ;EACRC,KAAK;EACLC;AACD,CAAC,EAAG;EACH,IAAK,CAAED,KAAK,IAAI,CAAEA,KAAK,CAACE,MAAM,EAAG;IAChC;EACD;EAEA,MAAMC,cAAc,GAAGlB,qBAAqB,CAAEe,KAAM,CAAC;EACrD,MAAMI,QAAQ,GAAGD,cAAc,CAAEF,KAAK,CAAE,CAACP,IAAI;EAC7C,MAAM;IAAEW,MAAM,EAAEC,UAAU;IAAE,GAAGC;EAAU,CAAC,GAAGJ,cAAc;EAE3D,oBACCf,IAAA,CAACR,YAAY;IACZc,IAAI,EAAGU,QAAU;IACjBP,KAAK,EAAGC,SAAW;IACnBU,SAAS,EAAC,iCAAiC;IAC3CC,WAAW,EAAG;MAAEd,IAAI,EAAE;IAAQ,CAAG;IAAAe,QAAA,EAE/BA,CAAE;MAAEC;IAAQ,CAAC,KAAM;MACpB,oBACCnB,KAAA,CAAAF,SAAA;QAAAoB,QAAA,gBACCtB,IAAA,CAACN,SAAS;UAAA4B,QAAA,EACPE,MAAM,CAACC,OAAO,CAAEN,SAAU,CAAC,CAACO,GAAG,CAChC,CAAE,CAAEC,IAAI,EAAE;YAAElB,KAAK;YAAEH;UAAK,CAAC,CAAE,KAAM;YAChC,MAAMsB,UAAU,GAAGf,KAAK,KAAKc,IAAI;YACjC,oBACC3B,IAAA,CAACL,QAAQ;cAERW,IAAI,EAAGA,IAAM;cACbuB,YAAY,EAAC,MAAM;cACnBD,UAAU,EAAGA,UAAY;cACzBE,IAAI,EAAC,eAAe;cACpBC,OAAO,EAAGA,CAAA,KAAM;gBACfpB,QAAQ,CAAEgB,IAAK,CAAC;gBAChBJ,OAAO,CAAC,CAAC;cACV,CAAG;cACHS,MAAM,EACLJ,UAAU,GACPvB,SAAS,GACT4B,SACH;cAAAX,QAAA,EAECb;YAAK,GAfDkB,IAgBG,CAAC;UAEb,CACD;QAAC,CACS,CAAC,EACV,CAAC,CAAET,UAAU,iBACdlB,IAAA,CAACN,SAAS;UAAA4B,QAAA,eACTtB,IAAA,CAACL,QAAQ;YACRW,IAAI,EAAGY,UAAU,CAACZ,IAAM;YACxBuB,YAAY,EAAC,MAAM;YACnBD,UAAU,EAAGf,KAAK,KAAKf,KAAK,CAACmB,MAAQ;YACrCa,IAAI,EAAC,eAAe;YACpBC,OAAO,EAAGA,CAAA,KAAM;cACfpB,QAAQ,CAAEb,KAAK,CAACmB,MAAO,CAAC;cACxBM,OAAO,CAAC,CAAC;YACV,CAAG;YACHS,MAAM,EACLnB,KAAK,KAAKf,KAAK,CAACmB,MAAM,GACnBZ,SAAS,GACT4B,SACH;YAAAX,QAAA,EAECJ,UAAU,CAACT;UAAK,CACT;QAAC,CACD,CACX;MAAA,CACA,CAAC;IAEL;EAAC,CACY,CAAC;AAEjB","ignoreList":[]}
@@ -1,91 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { DropdownMenu, Icon, MenuGroup, MenuItem } from '@wordpress/components';
5
- import { check } from '@wordpress/icons';
6
-
7
- /**
8
- * Internal dependencies
9
- */
10
- import { getSupportedMenuItems, VIEWS } from '../utils';
11
-
12
- const checkIcon = <Icon icon={ check } size={ 24 } />;
13
-
14
- export default function SidesDropdown( {
15
- label: labelProp,
16
- onChange,
17
- sides,
18
- value,
19
- } ) {
20
- if ( ! sides || ! sides.length ) {
21
- return;
22
- }
23
-
24
- const supportedItems = getSupportedMenuItems( sides );
25
- const sideIcon = supportedItems[ value ].icon;
26
- const { custom: customItem, ...menuItems } = supportedItems;
27
-
28
- return (
29
- <DropdownMenu
30
- icon={ sideIcon }
31
- label={ labelProp }
32
- className="spacing-sizes-control__dropdown"
33
- toggleProps={ { size: 'small' } }
34
- >
35
- { ( { onClose } ) => {
36
- return (
37
- <>
38
- <MenuGroup>
39
- { Object.entries( menuItems ).map(
40
- ( [ slug, { label, icon } ] ) => {
41
- const isSelected = value === slug;
42
- return (
43
- <MenuItem
44
- key={ slug }
45
- icon={ icon }
46
- iconPosition="left"
47
- isSelected={ isSelected }
48
- role="menuitemradio"
49
- onClick={ () => {
50
- onChange( slug );
51
- onClose();
52
- } }
53
- suffix={
54
- isSelected
55
- ? checkIcon
56
- : undefined
57
- }
58
- >
59
- { label }
60
- </MenuItem>
61
- );
62
- }
63
- ) }
64
- </MenuGroup>
65
- { !! customItem && (
66
- <MenuGroup>
67
- <MenuItem
68
- icon={ customItem.icon }
69
- iconPosition="left"
70
- isSelected={ value === VIEWS.custom }
71
- role="menuitemradio"
72
- onClick={ () => {
73
- onChange( VIEWS.custom );
74
- onClose();
75
- } }
76
- suffix={
77
- value === VIEWS.custom
78
- ? checkIcon
79
- : undefined
80
- }
81
- >
82
- { customItem.label }
83
- </MenuItem>
84
- </MenuGroup>
85
- ) }
86
- </>
87
- );
88
- } }
89
- </DropdownMenu>
90
- );
91
- }