@wordpress/block-editor 14.3.6 → 14.3.7

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 (110) hide show
  1. package/README.md +2 -2
  2. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +14 -6
  3. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  4. package/build/components/block-list/zoom-out-separator.js +10 -7
  5. package/build/components/block-list/zoom-out-separator.js.map +1 -1
  6. package/build/components/block-popover/index.js +1 -1
  7. package/build/components/block-popover/index.js.map +1 -1
  8. package/build/components/block-toolbar/index.js +28 -16
  9. package/build/components/block-toolbar/index.js.map +1 -1
  10. package/build/components/block-toolbar/use-has-block-toolbar.js +3 -3
  11. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  12. package/build/components/block-tools/index.js +1 -6
  13. package/build/components/block-tools/index.js.map +1 -1
  14. package/build/components/block-tools/use-show-block-tools.js +4 -6
  15. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  16. package/build/components/block-tools/zoom-out-mode-inserters.js +22 -36
  17. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  18. package/build/components/iframe/index.js +40 -10
  19. package/build/components/iframe/index.js.map +1 -1
  20. package/build/components/inserter/block-patterns-tab/index.js +4 -0
  21. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  22. package/build/components/inserter/hooks/use-insertion-point.js +16 -4
  23. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  24. package/build/components/inserter/media-tab/media-tab.js +4 -0
  25. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  26. package/build/components/inserter/menu.js +5 -2
  27. package/build/components/inserter/menu.js.map +1 -1
  28. package/build/hooks/block-bindings.js +12 -1
  29. package/build/hooks/block-bindings.js.map +1 -1
  30. package/build/hooks/use-zoom-out.js +24 -16
  31. package/build/hooks/use-zoom-out.js.map +1 -1
  32. package/build/store/private-selectors.js +37 -2
  33. package/build/store/private-selectors.js.map +1 -1
  34. package/build/store/selectors.js +15 -8
  35. package/build/store/selectors.js.map +1 -1
  36. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +14 -6
  37. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  38. package/build-module/components/block-list/zoom-out-separator.js +10 -7
  39. package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
  40. package/build-module/components/block-popover/index.js +1 -1
  41. package/build-module/components/block-popover/index.js.map +1 -1
  42. package/build-module/components/block-toolbar/index.js +30 -18
  43. package/build-module/components/block-toolbar/index.js.map +1 -1
  44. package/build-module/components/block-toolbar/use-has-block-toolbar.js +3 -3
  45. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  46. package/build-module/components/block-tools/index.js +1 -6
  47. package/build-module/components/block-tools/index.js.map +1 -1
  48. package/build-module/components/block-tools/use-show-block-tools.js +4 -6
  49. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  50. package/build-module/components/block-tools/zoom-out-mode-inserters.js +22 -36
  51. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  52. package/build-module/components/iframe/index.js +40 -10
  53. package/build-module/components/iframe/index.js.map +1 -1
  54. package/build-module/components/inserter/block-patterns-tab/index.js +5 -1
  55. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  56. package/build-module/components/inserter/hooks/use-insertion-point.js +16 -4
  57. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  58. package/build-module/components/inserter/media-tab/media-tab.js +5 -1
  59. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  60. package/build-module/components/inserter/menu.js +5 -2
  61. package/build-module/components/inserter/menu.js.map +1 -1
  62. package/build-module/hooks/block-bindings.js +13 -2
  63. package/build-module/hooks/block-bindings.js.map +1 -1
  64. package/build-module/hooks/use-zoom-out.js +24 -17
  65. package/build-module/hooks/use-zoom-out.js.map +1 -1
  66. package/build-module/store/private-selectors.js +35 -2
  67. package/build-module/store/private-selectors.js.map +1 -1
  68. package/build-module/store/selectors.js +15 -8
  69. package/build-module/store/selectors.js.map +1 -1
  70. package/build-style/content-rtl.css +14 -20
  71. package/build-style/content.css +14 -20
  72. package/build-style/style-rtl.css +28 -21
  73. package/build-style/style.css +28 -21
  74. package/package.json +6 -6
  75. package/src/components/block-canvas/style.scss +1 -0
  76. package/src/components/block-list/content.scss +3 -2
  77. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +25 -4
  78. package/src/components/block-list/zoom-out-separator.js +8 -6
  79. package/src/components/block-popover/index.js +2 -2
  80. package/src/components/block-toolbar/index.js +37 -24
  81. package/src/components/block-toolbar/style.scss +10 -1
  82. package/src/components/block-toolbar/use-has-block-toolbar.js +19 -28
  83. package/src/components/block-tools/index.js +0 -9
  84. package/src/components/block-tools/style.scss +2 -26
  85. package/src/components/block-tools/use-show-block-tools.js +2 -10
  86. package/src/components/block-tools/zoom-out-mode-inserters.js +26 -50
  87. package/src/components/iframe/content.scss +16 -24
  88. package/src/components/iframe/index.js +53 -12
  89. package/src/components/iframe/style.scss +6 -5
  90. package/src/components/inserter/block-patterns-tab/index.js +6 -1
  91. package/src/components/inserter/hooks/use-insertion-point.js +23 -5
  92. package/src/components/inserter/media-tab/media-tab.js +6 -1
  93. package/src/components/inserter/menu.js +7 -1
  94. package/src/components/inserter/style.scss +6 -0
  95. package/src/components/rich-text/style.scss +5 -0
  96. package/src/hooks/block-bindings.js +40 -23
  97. package/src/hooks/use-zoom-out.js +36 -20
  98. package/src/store/private-selectors.js +40 -1
  99. package/src/store/selectors.js +16 -8
  100. package/src/style.scss +1 -0
  101. package/build/components/block-tools/zoom-out-popover.js +0 -57
  102. package/build/components/block-tools/zoom-out-popover.js.map +0 -1
  103. package/build/components/block-tools/zoom-out-toolbar.js +0 -159
  104. package/build/components/block-tools/zoom-out-toolbar.js.map +0 -1
  105. package/build-module/components/block-tools/zoom-out-popover.js +0 -48
  106. package/build-module/components/block-tools/zoom-out-popover.js.map +0 -1
  107. package/build-module/components/block-tools/zoom-out-toolbar.js +0 -152
  108. package/build-module/components/block-tools/zoom-out-toolbar.js.map +0 -1
  109. package/src/components/block-tools/zoom-out-popover.js +0 -46
  110. package/src/components/block-tools/zoom-out-toolbar.js +0 -167
@@ -10,6 +10,7 @@ import { useRefEffect } from '@wordpress/compose';
10
10
  * Internal dependencies
11
11
  */
12
12
  import { store as blockEditorStore } from '../../../store';
13
+ import { unlock } from '../../../lock-unlock';
13
14
 
14
15
  /**
15
16
  * Adds block behaviour:
@@ -25,12 +26,16 @@ export function useEventHandlers({
25
26
  }) {
26
27
  const {
27
28
  getBlockRootClientId,
28
- getBlockIndex
29
- } = useSelect(blockEditorStore);
29
+ getBlockIndex,
30
+ isZoomOut,
31
+ __unstableGetEditorMode
32
+ } = unlock(useSelect(blockEditorStore));
30
33
  const {
31
34
  insertAfterBlock,
32
- removeBlock
33
- } = useDispatch(blockEditorStore);
35
+ removeBlock,
36
+ __unstableSetEditorMode,
37
+ resetZoomLevel
38
+ } = unlock(useDispatch(blockEditorStore));
34
39
  return useRefEffect(node => {
35
40
  if (!isSelected) {
36
41
  return;
@@ -57,7 +62,10 @@ export function useEventHandlers({
57
62
  return;
58
63
  }
59
64
  event.preventDefault();
60
- if (keyCode === ENTER) {
65
+ if (keyCode === ENTER && __unstableGetEditorMode() === 'zoom-out' && isZoomOut()) {
66
+ __unstableSetEditorMode('edit');
67
+ resetZoomLevel();
68
+ } else if (keyCode === ENTER) {
61
69
  insertAfterBlock(clientId);
62
70
  } else {
63
71
  removeBlock(clientId);
@@ -79,6 +87,6 @@ export function useEventHandlers({
79
87
  node.removeEventListener('keydown', onKeyDown);
80
88
  node.removeEventListener('dragstart', onDragStart);
81
89
  };
82
- }, [clientId, isSelected, getBlockRootClientId, getBlockIndex, insertAfterBlock, removeBlock]);
90
+ }, [clientId, isSelected, getBlockRootClientId, getBlockIndex, insertAfterBlock, removeBlock, __unstableGetEditorMode, __unstableSetEditorMode, isZoomOut, resetZoomLevel]);
83
91
  }
84
92
  //# sourceMappingURL=use-selected-block-event-handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["isTextField","ENTER","BACKSPACE","DELETE","useSelect","useDispatch","useRefEffect","store","blockEditorStore","useEventHandlers","clientId","isSelected","getBlockRootClientId","getBlockIndex","insertAfterBlock","removeBlock","node","onKeyDown","event","keyCode","target","preventDefault","onDragStart","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-selected-block-event-handlers.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isTextField } from '@wordpress/dom';\nimport { ENTER, BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Adds block behaviour:\n * - Removes the block on BACKSPACE.\n * - Inserts a default block on ENTER.\n * - Disables dragging of block contents.\n *\n * @param {string} clientId Block client ID.\n */\nexport function useEventHandlers( { clientId, isSelected } ) {\n\tconst { getBlockRootClientId, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst { insertAfterBlock, removeBlock } = useDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( ! isSelected ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Interprets keydown event intent to remove or insert after block if\n\t\t\t * key event occurs on wrapper node. This can occur when the block has\n\t\t\t * no text fields of its own, particularly after initial insertion, to\n\t\t\t * allow for easy deletion and continuous writing flow to add additional\n\t\t\t * content.\n\t\t\t *\n\t\t\t * @param {KeyboardEvent} event Keydown event.\n\t\t\t */\n\t\t\tfunction onKeyDown( event ) {\n\t\t\t\tconst { keyCode, target } = event;\n\n\t\t\t\tif (\n\t\t\t\t\tkeyCode !== ENTER &&\n\t\t\t\t\tkeyCode !== BACKSPACE &&\n\t\t\t\t\tkeyCode !== DELETE\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( target !== node || isTextField( target ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif ( keyCode === ENTER ) {\n\t\t\t\t\tinsertAfterBlock( clientId );\n\t\t\t\t} else {\n\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Prevents default dragging behavior within a block. To do: we must\n\t\t\t * handle this in the future and clean up the drag target.\n\t\t\t *\n\t\t\t * @param {DragEvent} event Drag event.\n\t\t\t */\n\t\t\tfunction onDragStart( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'keydown', onKeyDown );\n\t\t\tnode.addEventListener( 'dragstart', onDragStart );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'keydown', onKeyDown );\n\t\t\t\tnode.removeEventListener( 'dragstart', onDragStart );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tclientId,\n\t\t\tisSelected,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockIndex,\n\t\t\tinsertAfterBlock,\n\t\t\tremoveBlock,\n\t\t]\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,KAAK,EAAEC,SAAS,EAAEC,MAAM,QAAQ,qBAAqB;AAC9D,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,YAAY,QAAQ,oBAAoB;;AAEjD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,gBAAgB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAE;EAAEC,QAAQ;EAAEC;AAAW,CAAC,EAAG;EAC5D,MAAM;IAAEC,oBAAoB;IAAEC;EAAc,CAAC,GAC5CT,SAAS,CAAEI,gBAAiB,CAAC;EAC9B,MAAM;IAAEM,gBAAgB;IAAEC;EAAY,CAAC,GAAGV,WAAW,CAAEG,gBAAiB,CAAC;EAEzE,OAAOF,YAAY,CAChBU,IAAI,IAAM;IACX,IAAK,CAAEL,UAAU,EAAG;MACnB;IACD;;IAEA;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACG,SAASM,SAASA,CAAEC,KAAK,EAAG;MAC3B,MAAM;QAAEC,OAAO;QAAEC;MAAO,CAAC,GAAGF,KAAK;MAEjC,IACCC,OAAO,KAAKlB,KAAK,IACjBkB,OAAO,KAAKjB,SAAS,IACrBiB,OAAO,KAAKhB,MAAM,EACjB;QACD;MACD;MAEA,IAAKiB,MAAM,KAAKJ,IAAI,IAAIhB,WAAW,CAAEoB,MAAO,CAAC,EAAG;QAC/C;MACD;MAEAF,KAAK,CAACG,cAAc,CAAC,CAAC;MAEtB,IAAKF,OAAO,KAAKlB,KAAK,EAAG;QACxBa,gBAAgB,CAAEJ,QAAS,CAAC;MAC7B,CAAC,MAAM;QACNK,WAAW,CAAEL,QAAS,CAAC;MACxB;IACD;;IAEA;AACH;AACA;AACA;AACA;AACA;IACG,SAASY,WAAWA,CAAEJ,KAAK,EAAG;MAC7BA,KAAK,CAACG,cAAc,CAAC,CAAC;IACvB;IAEAL,IAAI,CAACO,gBAAgB,CAAE,SAAS,EAAEN,SAAU,CAAC;IAC7CD,IAAI,CAACO,gBAAgB,CAAE,WAAW,EAAED,WAAY,CAAC;IAEjD,OAAO,MAAM;MACZN,IAAI,CAACQ,mBAAmB,CAAE,SAAS,EAAEP,SAAU,CAAC;MAChDD,IAAI,CAACQ,mBAAmB,CAAE,WAAW,EAAEF,WAAY,CAAC;IACrD,CAAC;EACF,CAAC,EACD,CACCZ,QAAQ,EACRC,UAAU,EACVC,oBAAoB,EACpBC,aAAa,EACbC,gBAAgB,EAChBC,WAAW,CAEb,CAAC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["isTextField","ENTER","BACKSPACE","DELETE","useSelect","useDispatch","useRefEffect","store","blockEditorStore","unlock","useEventHandlers","clientId","isSelected","getBlockRootClientId","getBlockIndex","isZoomOut","__unstableGetEditorMode","insertAfterBlock","removeBlock","__unstableSetEditorMode","resetZoomLevel","node","onKeyDown","event","keyCode","target","preventDefault","onDragStart","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-selected-block-event-handlers.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isTextField } from '@wordpress/dom';\nimport { ENTER, BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\nimport { unlock } from '../../../lock-unlock';\n\n/**\n * Adds block behaviour:\n * - Removes the block on BACKSPACE.\n * - Inserts a default block on ENTER.\n * - Disables dragging of block contents.\n *\n * @param {string} clientId Block client ID.\n */\nexport function useEventHandlers( { clientId, isSelected } ) {\n\tconst {\n\t\tgetBlockRootClientId,\n\t\tgetBlockIndex,\n\t\tisZoomOut,\n\t\t__unstableGetEditorMode,\n\t} = unlock( useSelect( blockEditorStore ) );\n\tconst {\n\t\tinsertAfterBlock,\n\t\tremoveBlock,\n\t\t__unstableSetEditorMode,\n\t\tresetZoomLevel,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( ! isSelected ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Interprets keydown event intent to remove or insert after block if\n\t\t\t * key event occurs on wrapper node. This can occur when the block has\n\t\t\t * no text fields of its own, particularly after initial insertion, to\n\t\t\t * allow for easy deletion and continuous writing flow to add additional\n\t\t\t * content.\n\t\t\t *\n\t\t\t * @param {KeyboardEvent} event Keydown event.\n\t\t\t */\n\t\t\tfunction onKeyDown( event ) {\n\t\t\t\tconst { keyCode, target } = event;\n\n\t\t\t\tif (\n\t\t\t\t\tkeyCode !== ENTER &&\n\t\t\t\t\tkeyCode !== BACKSPACE &&\n\t\t\t\t\tkeyCode !== DELETE\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( target !== node || isTextField( target ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif (\n\t\t\t\t\tkeyCode === ENTER &&\n\t\t\t\t\t__unstableGetEditorMode() === 'zoom-out' &&\n\t\t\t\t\tisZoomOut()\n\t\t\t\t) {\n\t\t\t\t\t__unstableSetEditorMode( 'edit' );\n\t\t\t\t\tresetZoomLevel();\n\t\t\t\t} else if ( keyCode === ENTER ) {\n\t\t\t\t\tinsertAfterBlock( clientId );\n\t\t\t\t} else {\n\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Prevents default dragging behavior within a block. To do: we must\n\t\t\t * handle this in the future and clean up the drag target.\n\t\t\t *\n\t\t\t * @param {DragEvent} event Drag event.\n\t\t\t */\n\t\t\tfunction onDragStart( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'keydown', onKeyDown );\n\t\t\tnode.addEventListener( 'dragstart', onDragStart );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'keydown', onKeyDown );\n\t\t\t\tnode.removeEventListener( 'dragstart', onDragStart );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tclientId,\n\t\t\tisSelected,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockIndex,\n\t\t\tinsertAfterBlock,\n\t\t\tremoveBlock,\n\t\t\t__unstableGetEditorMode,\n\t\t\t__unstableSetEditorMode,\n\t\t\tisZoomOut,\n\t\t\tresetZoomLevel,\n\t\t]\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,KAAK,EAAEC,SAAS,EAAEC,MAAM,QAAQ,qBAAqB;AAC9D,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,YAAY,QAAQ,oBAAoB;;AAEjD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,gBAAgB;AAC1D,SAASC,MAAM,QAAQ,sBAAsB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAE;EAAEC,QAAQ;EAAEC;AAAW,CAAC,EAAG;EAC5D,MAAM;IACLC,oBAAoB;IACpBC,aAAa;IACbC,SAAS;IACTC;EACD,CAAC,GAAGP,MAAM,CAAEL,SAAS,CAAEI,gBAAiB,CAAE,CAAC;EAC3C,MAAM;IACLS,gBAAgB;IAChBC,WAAW;IACXC,uBAAuB;IACvBC;EACD,CAAC,GAAGX,MAAM,CAAEJ,WAAW,CAAEG,gBAAiB,CAAE,CAAC;EAE7C,OAAOF,YAAY,CAChBe,IAAI,IAAM;IACX,IAAK,CAAET,UAAU,EAAG;MACnB;IACD;;IAEA;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACG,SAASU,SAASA,CAAEC,KAAK,EAAG;MAC3B,MAAM;QAAEC,OAAO;QAAEC;MAAO,CAAC,GAAGF,KAAK;MAEjC,IACCC,OAAO,KAAKvB,KAAK,IACjBuB,OAAO,KAAKtB,SAAS,IACrBsB,OAAO,KAAKrB,MAAM,EACjB;QACD;MACD;MAEA,IAAKsB,MAAM,KAAKJ,IAAI,IAAIrB,WAAW,CAAEyB,MAAO,CAAC,EAAG;QAC/C;MACD;MAEAF,KAAK,CAACG,cAAc,CAAC,CAAC;MAEtB,IACCF,OAAO,KAAKvB,KAAK,IACjBe,uBAAuB,CAAC,CAAC,KAAK,UAAU,IACxCD,SAAS,CAAC,CAAC,EACV;QACDI,uBAAuB,CAAE,MAAO,CAAC;QACjCC,cAAc,CAAC,CAAC;MACjB,CAAC,MAAM,IAAKI,OAAO,KAAKvB,KAAK,EAAG;QAC/BgB,gBAAgB,CAAEN,QAAS,CAAC;MAC7B,CAAC,MAAM;QACNO,WAAW,CAAEP,QAAS,CAAC;MACxB;IACD;;IAEA;AACH;AACA;AACA;AACA;AACA;IACG,SAASgB,WAAWA,CAAEJ,KAAK,EAAG;MAC7BA,KAAK,CAACG,cAAc,CAAC,CAAC;IACvB;IAEAL,IAAI,CAACO,gBAAgB,CAAE,SAAS,EAAEN,SAAU,CAAC;IAC7CD,IAAI,CAACO,gBAAgB,CAAE,WAAW,EAAED,WAAY,CAAC;IAEjD,OAAO,MAAM;MACZN,IAAI,CAACQ,mBAAmB,CAAE,SAAS,EAAEP,SAAU,CAAC;MAChDD,IAAI,CAACQ,mBAAmB,CAAE,WAAW,EAAEF,WAAY,CAAC;IACrD,CAAC;EACF,CAAC,EACD,CACChB,QAAQ,EACRC,UAAU,EACVC,oBAAoB,EACpBC,aAAa,EACbG,gBAAgB,EAChBC,WAAW,EACXF,uBAAuB,EACvBG,uBAAuB,EACvBJ,SAAS,EACTK,cAAc,CAEhB,CAAC;AACF","ignoreList":[]}
@@ -63,20 +63,19 @@ export function ZoomOutSeparator({
63
63
  }
64
64
  return /*#__PURE__*/_jsx(AnimatePresence, {
65
65
  children: isVisible && /*#__PURE__*/_jsx(motion.div, {
66
- as: "button",
67
- layout: !isReducedMotion,
68
66
  initial: {
69
67
  height: 0
70
68
  },
71
69
  animate: {
72
- height: '120px'
70
+ // Use a height equal to that of the zoom out frame size.
71
+ height: 'calc(1.5 * var(--wp-block-editor-iframe-zoom-out-frame-size) / var(--wp-block-editor-iframe-zoom-out-scale)'
73
72
  },
74
73
  exit: {
75
74
  height: 0
76
75
  },
77
76
  transition: {
78
77
  type: 'tween',
79
- duration: 0.2,
78
+ duration: isReducedMotion ? 0 : 0.2,
80
79
  ease: [0.6, 0, 0.4, 1]
81
80
  },
82
81
  className: clsx('block-editor-block-list__zoom-out-separator', {
@@ -93,11 +92,15 @@ export function ZoomOutSeparator({
93
92
  opacity: 1
94
93
  },
95
94
  exit: {
96
- opacity: 0
95
+ opacity: 0,
96
+ transition: {
97
+ delay: -0.125
98
+ }
97
99
  },
98
100
  transition: {
99
- type: 'tween',
100
- duration: 0.1
101
+ ease: 'linear',
102
+ duration: 0.1,
103
+ delay: 0.125
101
104
  },
102
105
  children: __('Drop pattern.')
103
106
  })
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","__unstableMotion","motion","__unstableAnimatePresence","AnimatePresence","useReducedMotion","useSelect","useState","__","store","blockEditorStore","unlock","jsx","_jsx","ZoomOutSeparator","clientId","rootClientId","position","isDraggedOver","setIsDraggedOver","sectionRootClientId","sectionClientIds","blockInsertionPoint","blockInsertionPointVisible","select","getBlockInsertionPoint","getBlockOrder","isBlockInsertionPointVisible","getSectionRootClientId","root","sectionRootClientIds","blockOrder","isReducedMotion","isVisible","isSectionBlock","includes","index","children","div","as","layout","initial","height","animate","exit","transition","type","duration","ease","className","onDragOver","onDragLeave","opacity"],"sources":["@wordpress/block-editor/src/components/block-list/zoom-out-separator.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { useReducedMotion } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nexport function ZoomOutSeparator( {\n\tclientId,\n\trootClientId = '',\n\tposition = 'top',\n} ) {\n\tconst [ isDraggedOver, setIsDraggedOver ] = useState( false );\n\tconst {\n\t\tsectionRootClientId,\n\t\tsectionClientIds,\n\t\tblockInsertionPoint,\n\t\tblockInsertionPointVisible,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockInsertionPoint,\n\t\t\tgetBlockOrder,\n\t\t\tisBlockInsertionPointVisible,\n\t\t\tgetSectionRootClientId,\n\t\t} = unlock( select( blockEditorStore ) );\n\n\t\tconst root = getSectionRootClientId();\n\t\tconst sectionRootClientIds = getBlockOrder( root );\n\t\treturn {\n\t\t\tsectionRootClientId: root,\n\t\t\tsectionClientIds: sectionRootClientIds,\n\t\t\tblockOrder: getBlockOrder( root ),\n\t\t\tblockInsertionPoint: getBlockInsertionPoint(),\n\t\t\tblockInsertionPointVisible: isBlockInsertionPointVisible(),\n\t\t};\n\t}, [] );\n\n\tconst isReducedMotion = useReducedMotion();\n\n\tif ( ! clientId ) {\n\t\treturn;\n\t}\n\n\tlet isVisible = false;\n\n\tconst isSectionBlock =\n\t\trootClientId === sectionRootClientId &&\n\t\tsectionClientIds &&\n\t\tsectionClientIds.includes( clientId );\n\n\tif ( ! isSectionBlock ) {\n\t\treturn null;\n\t}\n\n\tif ( position === 'top' ) {\n\t\tisVisible =\n\t\t\tblockInsertionPointVisible &&\n\t\t\tblockInsertionPoint.index === 0 &&\n\t\t\tclientId === sectionClientIds[ blockInsertionPoint.index ];\n\t}\n\n\tif ( position === 'bottom' ) {\n\t\tisVisible =\n\t\t\tblockInsertionPointVisible &&\n\t\t\tclientId === sectionClientIds[ blockInsertionPoint.index - 1 ];\n\t}\n\n\treturn (\n\t\t<AnimatePresence>\n\t\t\t{ isVisible && (\n\t\t\t\t<motion.div\n\t\t\t\t\tas=\"button\"\n\t\t\t\t\tlayout={ ! isReducedMotion }\n\t\t\t\t\tinitial={ { height: 0 } }\n\t\t\t\t\tanimate={ { height: '120px' } }\n\t\t\t\t\texit={ { height: 0 } }\n\t\t\t\t\ttransition={ {\n\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\tduration: 0.2,\n\t\t\t\t\t\tease: [ 0.6, 0, 0.4, 1 ],\n\t\t\t\t\t} }\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'block-editor-block-list__zoom-out-separator',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-dragged-over': isDraggedOver,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tdata-is-insertion-point=\"true\"\n\t\t\t\t\tonDragOver={ () => setIsDraggedOver( true ) }\n\t\t\t\t\tonDragLeave={ () => setIsDraggedOver( false ) }\n\t\t\t\t>\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tinitial={ { opacity: 0 } }\n\t\t\t\t\t\tanimate={ { opacity: 1 } }\n\t\t\t\t\t\texit={ { opacity: 0 } }\n\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\tduration: 0.1,\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Drop pattern.' ) }\n\t\t\t\t\t</motion.div>\n\t\t\t\t</motion.div>\n\t\t\t) }\n\t\t</AnimatePresence>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","__unstableMotion","motion","__unstableAnimatePresence","AnimatePresence","useReducedMotion","useSelect","useState","__","store","blockEditorStore","unlock","jsx","_jsx","ZoomOutSeparator","clientId","rootClientId","position","isDraggedOver","setIsDraggedOver","sectionRootClientId","sectionClientIds","blockInsertionPoint","blockInsertionPointVisible","select","getBlockInsertionPoint","getBlockOrder","isBlockInsertionPointVisible","getSectionRootClientId","root","sectionRootClientIds","blockOrder","isReducedMotion","isVisible","isSectionBlock","includes","index","children","div","initial","height","animate","exit","transition","type","duration","ease","className","onDragOver","onDragLeave","opacity","delay"],"sources":["@wordpress/block-editor/src/components/block-list/zoom-out-separator.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { useReducedMotion } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nexport function ZoomOutSeparator( {\n\tclientId,\n\trootClientId = '',\n\tposition = 'top',\n} ) {\n\tconst [ isDraggedOver, setIsDraggedOver ] = useState( false );\n\tconst {\n\t\tsectionRootClientId,\n\t\tsectionClientIds,\n\t\tblockInsertionPoint,\n\t\tblockInsertionPointVisible,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockInsertionPoint,\n\t\t\tgetBlockOrder,\n\t\t\tisBlockInsertionPointVisible,\n\t\t\tgetSectionRootClientId,\n\t\t} = unlock( select( blockEditorStore ) );\n\n\t\tconst root = getSectionRootClientId();\n\t\tconst sectionRootClientIds = getBlockOrder( root );\n\t\treturn {\n\t\t\tsectionRootClientId: root,\n\t\t\tsectionClientIds: sectionRootClientIds,\n\t\t\tblockOrder: getBlockOrder( root ),\n\t\t\tblockInsertionPoint: getBlockInsertionPoint(),\n\t\t\tblockInsertionPointVisible: isBlockInsertionPointVisible(),\n\t\t};\n\t}, [] );\n\n\tconst isReducedMotion = useReducedMotion();\n\n\tif ( ! clientId ) {\n\t\treturn;\n\t}\n\n\tlet isVisible = false;\n\n\tconst isSectionBlock =\n\t\trootClientId === sectionRootClientId &&\n\t\tsectionClientIds &&\n\t\tsectionClientIds.includes( clientId );\n\n\tif ( ! isSectionBlock ) {\n\t\treturn null;\n\t}\n\n\tif ( position === 'top' ) {\n\t\tisVisible =\n\t\t\tblockInsertionPointVisible &&\n\t\t\tblockInsertionPoint.index === 0 &&\n\t\t\tclientId === sectionClientIds[ blockInsertionPoint.index ];\n\t}\n\n\tif ( position === 'bottom' ) {\n\t\tisVisible =\n\t\t\tblockInsertionPointVisible &&\n\t\t\tclientId === sectionClientIds[ blockInsertionPoint.index - 1 ];\n\t}\n\n\treturn (\n\t\t<AnimatePresence>\n\t\t\t{ isVisible && (\n\t\t\t\t<motion.div\n\t\t\t\t\tinitial={ { height: 0 } }\n\t\t\t\t\tanimate={ {\n\t\t\t\t\t\t// Use a height equal to that of the zoom out frame size.\n\t\t\t\t\t\theight: 'calc(1.5 * var(--wp-block-editor-iframe-zoom-out-frame-size) / var(--wp-block-editor-iframe-zoom-out-scale)',\n\t\t\t\t\t} }\n\t\t\t\t\texit={ { height: 0 } }\n\t\t\t\t\ttransition={ {\n\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\tduration: isReducedMotion ? 0 : 0.2,\n\t\t\t\t\t\tease: [ 0.6, 0, 0.4, 1 ],\n\t\t\t\t\t} }\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'block-editor-block-list__zoom-out-separator',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-dragged-over': isDraggedOver,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tdata-is-insertion-point=\"true\"\n\t\t\t\t\tonDragOver={ () => setIsDraggedOver( true ) }\n\t\t\t\t\tonDragLeave={ () => setIsDraggedOver( false ) }\n\t\t\t\t>\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tinitial={ { opacity: 0 } }\n\t\t\t\t\t\tanimate={ { opacity: 1 } }\n\t\t\t\t\t\texit={ { opacity: 0, transition: { delay: -0.125 } } }\n\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\tease: 'linear',\n\t\t\t\t\t\t\tduration: 0.1,\n\t\t\t\t\t\t\tdelay: 0.125,\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Drop pattern.' ) }\n\t\t\t\t\t</motion.div>\n\t\t\t\t</motion.div>\n\t\t\t) }\n\t\t</AnimatePresence>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -67,7 +67,7 @@ function BlockPopover({
67
67
  },
68
68
  contextElement: selectedElement
69
69
  };
70
- }, [bottomClientId, lastSelectedElement, selectedElement, popoverDimensionsRecomputeCounter]);
70
+ }, [popoverDimensionsRecomputeCounter, selectedElement, bottomClientId, lastSelectedElement]);
71
71
  if (!selectedElement || bottomClientId && !lastSelectedElement) {
72
72
  return null;
73
73
  }
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useMergeRefs","Popover","forwardRef","useMemo","useReducer","useLayoutEffect","useBlockElement","usePopoverScroll","rectUnion","getVisibleElementBounds","jsx","_jsx","MAX_POPOVER_RECOMPUTE_COUNTER","Number","MAX_SAFE_INTEGER","BlockPopover","clientId","bottomClientId","children","__unstablePopoverSlot","__unstableContentRef","shift","props","ref","selectedElement","lastSelectedElement","mergedRefs","popoverDimensionsRecomputeCounter","forceRecomputePopoverDimensions","s","observer","window","MutationObserver","observe","attributes","disconnect","popoverAnchor","undefined","getBoundingClientRect","contextElement","animate","focusOnMount","anchor","__unstableSlotName","inline","placement","resize","flip","className","variant","PrivateBlockPopover","PublicBlockPopover"],"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useMergeRefs } from '@wordpress/compose';\nimport { Popover } from '@wordpress/components';\nimport {\n\tforwardRef,\n\tuseMemo,\n\tuseReducer,\n\tuseLayoutEffect,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\nimport { rectUnion, getVisibleElementBounds } from '../../utils/dom';\n\nconst MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER;\n\nfunction BlockPopover(\n\t{\n\t\tclientId,\n\t\tbottomClientId,\n\t\tchildren,\n\t\t__unstablePopoverSlot,\n\t\t__unstableContentRef,\n\t\tshift = true,\n\t\t...props\n\t},\n\tref\n) {\n\tconst selectedElement = useBlockElement( clientId );\n\tconst lastSelectedElement = useBlockElement( bottomClientId ?? clientId );\n\tconst mergedRefs = useMergeRefs( [\n\t\tref,\n\t\tusePopoverScroll( __unstableContentRef ),\n\t] );\n\n\tconst [\n\t\tpopoverDimensionsRecomputeCounter,\n\t\tforceRecomputePopoverDimensions,\n\t] = useReducer(\n\t\t// Module is there to make sure that the counter doesn't overflow.\n\t\t( s ) => ( s + 1 ) % MAX_POPOVER_RECOMPUTE_COUNTER,\n\t\t0\n\t);\n\n\t// When blocks are moved up/down, they are animated to their new position by\n\t// updating the `transform` property manually (i.e. without using CSS\n\t// transitions or animations). The animation, which can also scroll the block\n\t// editor, can sometimes cause the position of the Popover to get out of sync.\n\t// A MutationObserver is therefore used to make sure that changes to the\n\t// selectedElement's attribute (i.e. `transform`) can be tracked and used to\n\t// trigger the Popover to rerender.\n\tuseLayoutEffect( () => {\n\t\tif ( ! selectedElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst observer = new window.MutationObserver(\n\t\t\tforceRecomputePopoverDimensions\n\t\t);\n\t\tobserver.observe( selectedElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ selectedElement ] );\n\n\tconst popoverAnchor = useMemo( () => {\n\t\tif (\n\t\t\t// popoverDimensionsRecomputeCounter is by definition always equal or greater\n\t\t\t// than 0. This check is only there to satisfy the correctness of the\n\t\t\t// exhaustive-deps rule for the `useMemo` hook.\n\t\t\tpopoverDimensionsRecomputeCounter < 0 ||\n\t\t\t! selectedElement ||\n\t\t\t( bottomClientId && ! lastSelectedElement )\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tgetBoundingClientRect() {\n\t\t\t\treturn lastSelectedElement\n\t\t\t\t\t? rectUnion(\n\t\t\t\t\t\t\tgetVisibleElementBounds( selectedElement ),\n\t\t\t\t\t\t\tgetVisibleElementBounds( lastSelectedElement )\n\t\t\t\t\t )\n\t\t\t\t\t: getVisibleElementBounds( selectedElement );\n\t\t\t},\n\t\t\tcontextElement: selectedElement,\n\t\t};\n\t}, [\n\t\tbottomClientId,\n\t\tlastSelectedElement,\n\t\tselectedElement,\n\t\tpopoverDimensionsRecomputeCounter,\n\t] );\n\n\tif ( ! selectedElement || ( bottomClientId && ! lastSelectedElement ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ mergedRefs }\n\t\t\tanimate={ false }\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot }\n\t\t\tinline={ ! __unstablePopoverSlot }\n\t\t\tplacement=\"top-start\"\n\t\t\tresize={ false }\n\t\t\tflip={ false }\n\t\t\tshift={ shift }\n\t\t\t{ ...props }\n\t\t\tclassName={ clsx( 'block-editor-block-popover', props.className ) }\n\t\t\tvariant=\"unstyled\"\n\t\t>\n\t\t\t{ children }\n\t\t</Popover>\n\t);\n}\n\nexport const PrivateBlockPopover = forwardRef( BlockPopover );\n\nconst PublicBlockPopover = (\n\t{ clientId, bottomClientId, children, ...props },\n\tref\n) => (\n\t<PrivateBlockPopover\n\t\t{ ...props }\n\t\tbottomClientId={ bottomClientId }\n\t\tclientId={ clientId }\n\t\t__unstableContentRef={ undefined }\n\t\t__unstablePopoverSlot={ undefined }\n\t\tref={ ref }\n\t>\n\t\t{ children }\n\t</PrivateBlockPopover>\n);\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-popover/README.md\n */\nexport default forwardRef( PublicBlockPopover );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useMergeRefs","Popover","forwardRef","useMemo","useReducer","useLayoutEffect","useBlockElement","usePopoverScroll","rectUnion","getVisibleElementBounds","jsx","_jsx","MAX_POPOVER_RECOMPUTE_COUNTER","Number","MAX_SAFE_INTEGER","BlockPopover","clientId","bottomClientId","children","__unstablePopoverSlot","__unstableContentRef","shift","props","ref","selectedElement","lastSelectedElement","mergedRefs","popoverDimensionsRecomputeCounter","forceRecomputePopoverDimensions","s","observer","window","MutationObserver","observe","attributes","disconnect","popoverAnchor","undefined","getBoundingClientRect","contextElement","animate","focusOnMount","anchor","__unstableSlotName","inline","placement","resize","flip","className","variant","PrivateBlockPopover","PublicBlockPopover"],"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useMergeRefs } from '@wordpress/compose';\nimport { Popover } from '@wordpress/components';\nimport {\n\tforwardRef,\n\tuseMemo,\n\tuseReducer,\n\tuseLayoutEffect,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\nimport { rectUnion, getVisibleElementBounds } from '../../utils/dom';\n\nconst MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER;\n\nfunction BlockPopover(\n\t{\n\t\tclientId,\n\t\tbottomClientId,\n\t\tchildren,\n\t\t__unstablePopoverSlot,\n\t\t__unstableContentRef,\n\t\tshift = true,\n\t\t...props\n\t},\n\tref\n) {\n\tconst selectedElement = useBlockElement( clientId );\n\tconst lastSelectedElement = useBlockElement( bottomClientId ?? clientId );\n\tconst mergedRefs = useMergeRefs( [\n\t\tref,\n\t\tusePopoverScroll( __unstableContentRef ),\n\t] );\n\n\tconst [\n\t\tpopoverDimensionsRecomputeCounter,\n\t\tforceRecomputePopoverDimensions,\n\t] = useReducer(\n\t\t// Module is there to make sure that the counter doesn't overflow.\n\t\t( s ) => ( s + 1 ) % MAX_POPOVER_RECOMPUTE_COUNTER,\n\t\t0\n\t);\n\n\t// When blocks are moved up/down, they are animated to their new position by\n\t// updating the `transform` property manually (i.e. without using CSS\n\t// transitions or animations). The animation, which can also scroll the block\n\t// editor, can sometimes cause the position of the Popover to get out of sync.\n\t// A MutationObserver is therefore used to make sure that changes to the\n\t// selectedElement's attribute (i.e. `transform`) can be tracked and used to\n\t// trigger the Popover to rerender.\n\tuseLayoutEffect( () => {\n\t\tif ( ! selectedElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst observer = new window.MutationObserver(\n\t\t\tforceRecomputePopoverDimensions\n\t\t);\n\t\tobserver.observe( selectedElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ selectedElement ] );\n\n\tconst popoverAnchor = useMemo( () => {\n\t\tif (\n\t\t\t// popoverDimensionsRecomputeCounter is by definition always equal or greater\n\t\t\t// than 0. This check is only there to satisfy the correctness of the\n\t\t\t// exhaustive-deps rule for the `useMemo` hook.\n\t\t\tpopoverDimensionsRecomputeCounter < 0 ||\n\t\t\t! selectedElement ||\n\t\t\t( bottomClientId && ! lastSelectedElement )\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tgetBoundingClientRect() {\n\t\t\t\treturn lastSelectedElement\n\t\t\t\t\t? rectUnion(\n\t\t\t\t\t\t\tgetVisibleElementBounds( selectedElement ),\n\t\t\t\t\t\t\tgetVisibleElementBounds( lastSelectedElement )\n\t\t\t\t\t )\n\t\t\t\t\t: getVisibleElementBounds( selectedElement );\n\t\t\t},\n\t\t\tcontextElement: selectedElement,\n\t\t};\n\t}, [\n\t\tpopoverDimensionsRecomputeCounter,\n\t\tselectedElement,\n\t\tbottomClientId,\n\t\tlastSelectedElement,\n\t] );\n\n\tif ( ! selectedElement || ( bottomClientId && ! lastSelectedElement ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ mergedRefs }\n\t\t\tanimate={ false }\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot }\n\t\t\tinline={ ! __unstablePopoverSlot }\n\t\t\tplacement=\"top-start\"\n\t\t\tresize={ false }\n\t\t\tflip={ false }\n\t\t\tshift={ shift }\n\t\t\t{ ...props }\n\t\t\tclassName={ clsx( 'block-editor-block-popover', props.className ) }\n\t\t\tvariant=\"unstyled\"\n\t\t>\n\t\t\t{ children }\n\t\t</Popover>\n\t);\n}\n\nexport const PrivateBlockPopover = forwardRef( BlockPopover );\n\nconst PublicBlockPopover = (\n\t{ clientId, bottomClientId, children, ...props },\n\tref\n) => (\n\t<PrivateBlockPopover\n\t\t{ ...props }\n\t\tbottomClientId={ bottomClientId }\n\t\tclientId={ clientId }\n\t\t__unstableContentRef={ undefined }\n\t\t__unstablePopoverSlot={ undefined }\n\t\tref={ ref }\n\t>\n\t\t{ children }\n\t</PrivateBlockPopover>\n);\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-popover/README.md\n */\nexport default forwardRef( PublicBlockPopover );\n"],"mappings":"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","ignoreList":[]}
@@ -11,7 +11,7 @@ import { useSelect } from '@wordpress/data';
11
11
  import { useRef } from '@wordpress/element';
12
12
  import { useViewportMatch } from '@wordpress/compose';
13
13
  import { getBlockType, hasBlockSupport, isReusableBlock, isTemplatePart } from '@wordpress/blocks';
14
- import { ToolbarGroup } from '@wordpress/components';
14
+ import { ToolbarGroup, ToolbarButton } from '@wordpress/components';
15
15
 
16
16
  /**
17
17
  * Internal dependencies
@@ -30,6 +30,8 @@ import { store as blockEditorStore } from '../../store';
30
30
  import __unstableBlockNameContext from './block-name-context';
31
31
  import NavigableToolbar from '../navigable-toolbar';
32
32
  import { useHasBlockToolbar } from './use-has-block-toolbar';
33
+ import Shuffle from './shuffle';
34
+ import { unlock } from '../../lock-unlock';
33
35
 
34
36
  /**
35
37
  * Renders the block toolbar.
@@ -44,8 +46,8 @@ import { useHasBlockToolbar } from './use-has-block-toolbar';
44
46
  * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.
45
47
  */
46
48
  import { jsx as _jsx } from "react/jsx-runtime";
47
- import { Fragment as _Fragment } from "react/jsx-runtime";
48
49
  import { jsxs as _jsxs } from "react/jsx-runtime";
50
+ import { Fragment as _Fragment } from "react/jsx-runtime";
49
51
  export function PrivateBlockToolbar({
50
52
  hideDragHandle,
51
53
  focusOnMount,
@@ -56,7 +58,6 @@ export function PrivateBlockToolbar({
56
58
  const {
57
59
  blockClientId,
58
60
  blockClientIds,
59
- isContentOnlyEditingMode,
60
61
  isDefaultEditingMode,
61
62
  blockType,
62
63
  toolbarKey,
@@ -64,7 +65,11 @@ export function PrivateBlockToolbar({
64
65
  showParentSelector,
65
66
  isUsingBindings,
66
67
  hasParentPattern,
67
- hasContentOnlyLocking
68
+ hasContentOnlyLocking,
69
+ showShuffleButton,
70
+ showSlots,
71
+ showGroupButtons,
72
+ showLockButtons
68
73
  } = useSelect(select => {
69
74
  const {
70
75
  getBlockName,
@@ -75,8 +80,9 @@ export function PrivateBlockToolbar({
75
80
  getBlockEditingMode,
76
81
  getBlockAttributes,
77
82
  getBlockParentsByBlockName,
78
- getTemplateLock
79
- } = select(blockEditorStore);
83
+ getTemplateLock,
84
+ isZoomOutMode
85
+ } = unlock(select(blockEditorStore));
80
86
  const selectedBlockClientIds = getSelectedBlockClientIds();
81
87
  const selectedBlockClientId = selectedBlockClientIds[0];
82
88
  const parents = getBlockParents(selectedBlockClientId);
@@ -96,15 +102,18 @@ export function PrivateBlockToolbar({
96
102
  return {
97
103
  blockClientId: selectedBlockClientId,
98
104
  blockClientIds: selectedBlockClientIds,
99
- isContentOnlyEditingMode: editingMode === 'contentOnly',
100
105
  isDefaultEditingMode: _isDefaultEditingMode,
101
106
  blockType: selectedBlockClientId && getBlockType(_blockName),
102
107
  shouldShowVisualToolbar: isValid && isVisual,
103
108
  toolbarKey: `${selectedBlockClientId}${firstParentClientId}`,
104
- showParentSelector: parentBlockType && getBlockEditingMode(firstParentClientId) === 'default' && hasBlockSupport(parentBlockType, '__experimentalParentSelector', true) && selectedBlockClientIds.length === 1 && _isDefaultEditingMode,
109
+ showParentSelector: !isZoomOutMode() && parentBlockType && getBlockEditingMode(firstParentClientId) === 'default' && hasBlockSupport(parentBlockType, '__experimentalParentSelector', true) && selectedBlockClientIds.length === 1 && _isDefaultEditingMode,
105
110
  isUsingBindings: _isUsingBindings,
106
111
  hasParentPattern: _hasParentPattern,
107
- hasContentOnlyLocking: _hasTemplateLock
112
+ hasContentOnlyLocking: _hasTemplateLock,
113
+ showShuffleButton: isZoomOutMode(),
114
+ showSlots: !isZoomOutMode(),
115
+ showGroupButtons: !isZoomOutMode(),
116
+ showLockButtons: !isZoomOutMode()
108
117
  };
109
118
  }, []);
110
119
  const toolbarWrapperRef = useRef(null);
@@ -148,7 +157,7 @@ export function PrivateBlockToolbar({
148
157
  children: /*#__PURE__*/_jsxs("div", {
149
158
  ref: toolbarWrapperRef,
150
159
  className: innerClasses,
151
- children: [!isMultiToolbar && isLargeViewport && isDefaultEditingMode && /*#__PURE__*/_jsx(BlockParentSelector, {}), (shouldShowVisualToolbar || isMultiToolbar) && (isDefaultEditingMode || isContentOnlyEditingMode && !hasParentPattern || isSynced) && /*#__PURE__*/_jsx("div", {
160
+ children: [showParentSelector && !isMultiToolbar && isLargeViewport && /*#__PURE__*/_jsx(BlockParentSelector, {}), (shouldShowVisualToolbar || isMultiToolbar) && !hasParentPattern && /*#__PURE__*/_jsx("div", {
152
161
  ref: nodeRef,
153
162
  ...showHoveredOrFocusedGestures,
154
163
  children: /*#__PURE__*/_jsxs(ToolbarGroup, {
@@ -157,16 +166,19 @@ export function PrivateBlockToolbar({
157
166
  clientIds: blockClientIds,
158
167
  disabled: !isDefaultEditingMode,
159
168
  isUsingBindings: isUsingBindings
160
- }), isDefaultEditingMode && /*#__PURE__*/_jsxs(_Fragment, {
161
- children: [!isMultiToolbar && /*#__PURE__*/_jsx(BlockLockToolbar, {
162
- clientId: blockClientId
163
- }), /*#__PURE__*/_jsx(BlockMover, {
164
- clientIds: blockClientIds,
165
- hideDragHandle: hideDragHandle
166
- })]
169
+ }), !isMultiToolbar && showLockButtons && /*#__PURE__*/_jsx(BlockLockToolbar, {
170
+ clientId: blockClientId
171
+ }), /*#__PURE__*/_jsx(BlockMover, {
172
+ clientIds: blockClientIds,
173
+ hideDragHandle: hideDragHandle
167
174
  })]
168
175
  })
169
- }), !hasContentOnlyLocking && shouldShowVisualToolbar && isMultiToolbar && /*#__PURE__*/_jsx(BlockGroupToolbar, {}), shouldShowVisualToolbar && /*#__PURE__*/_jsxs(_Fragment, {
176
+ }), !hasContentOnlyLocking && shouldShowVisualToolbar && isMultiToolbar && showGroupButtons && /*#__PURE__*/_jsx(BlockGroupToolbar, {}), showShuffleButton && /*#__PURE__*/_jsx(ToolbarGroup, {
177
+ children: /*#__PURE__*/_jsx(Shuffle, {
178
+ clientId: blockClientIds[0],
179
+ as: ToolbarButton
180
+ })
181
+ }), shouldShowVisualToolbar && showSlots && /*#__PURE__*/_jsxs(_Fragment, {
170
182
  children: [/*#__PURE__*/_jsx(BlockControls.Slot, {
171
183
  group: "parent",
172
184
  className: "block-editor-block-toolbar__slot"
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","__","useSelect","useRef","useViewportMatch","getBlockType","hasBlockSupport","isReusableBlock","isTemplatePart","ToolbarGroup","BlockMover","BlockParentSelector","BlockSwitcher","BlockControls","__unstableBlockToolbarLastItem","BlockSettingsMenu","BlockLockToolbar","BlockGroupToolbar","BlockEditVisuallyButton","useShowHoveredOrFocusedGestures","store","blockEditorStore","__unstableBlockNameContext","NavigableToolbar","useHasBlockToolbar","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","PrivateBlockToolbar","hideDragHandle","focusOnMount","__experimentalInitialIndex","__experimentalOnIndexChange","variant","blockClientId","blockClientIds","isContentOnlyEditingMode","isDefaultEditingMode","blockType","toolbarKey","shouldShowVisualToolbar","showParentSelector","isUsingBindings","hasParentPattern","hasContentOnlyLocking","select","getBlockName","getBlockMode","getBlockParents","getSelectedBlockClientIds","isBlockValid","getBlockEditingMode","getBlockAttributes","getBlockParentsByBlockName","getTemplateLock","selectedBlockClientIds","selectedBlockClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","editingMode","_isDefaultEditingMode","_blockName","isValid","every","id","isVisual","_isUsingBindings","clientId","metadata","bindings","_hasParentPattern","_hasTemplateLock","some","toolbarWrapperRef","nodeRef","showHoveredOrFocusedGestures","ref","isLargeViewport","hasBlockToolbar","isMultiToolbar","isSynced","classes","innerClasses","focusEditorOnEscape","className","undefined","children","clientIds","disabled","Slot","group","Provider","value","name","BlockToolbar"],"sources":["@wordpress/block-editor/src/components/block-toolbar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\thasBlockSupport,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockMover from '../block-mover';\nimport BlockParentSelector from '../block-parent-selector';\nimport BlockSwitcher from '../block-switcher';\nimport BlockControls from '../block-controls';\nimport __unstableBlockToolbarLastItem from './block-toolbar-last-item';\nimport BlockSettingsMenu from '../block-settings-menu';\nimport { BlockLockToolbar } from '../block-lock';\nimport { BlockGroupToolbar } from '../convert-to-group-buttons';\nimport BlockEditVisuallyButton from '../block-edit-visually-button';\nimport { useShowHoveredOrFocusedGestures } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport __unstableBlockNameContext from './block-name-context';\nimport NavigableToolbar from '../navigable-toolbar';\nimport { useHasBlockToolbar } from './use-has-block-toolbar';\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {boolean} props.focusOnMount Focus the toolbar when mounted.\n * @param {number} props.__experimentalInitialIndex The initial index of the toolbar item to focus.\n * @param {Function} props.__experimentalOnIndexChange Callback function to be called when the index of the focused toolbar item changes.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport function PrivateBlockToolbar( {\n\thideDragHandle,\n\tfocusOnMount,\n\t__experimentalInitialIndex,\n\t__experimentalOnIndexChange,\n\tvariant = 'unstyled',\n} ) {\n\tconst {\n\t\tblockClientId,\n\t\tblockClientIds,\n\t\tisContentOnlyEditingMode,\n\t\tisDefaultEditingMode,\n\t\tblockType,\n\t\ttoolbarKey,\n\t\tshouldShowVisualToolbar,\n\t\tshowParentSelector,\n\t\tisUsingBindings,\n\t\thasParentPattern,\n\t\thasContentOnlyLocking,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockMode,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisBlockValid,\n\t\t\tgetBlockEditingMode,\n\t\t\tgetBlockAttributes,\n\t\t\tgetBlockParentsByBlockName,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst parents = getBlockParents( selectedBlockClientId );\n\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\tconst parentBlockType = getBlockType( parentBlockName );\n\t\tconst editingMode = getBlockEditingMode( selectedBlockClientId );\n\t\tconst _isDefaultEditingMode = editingMode === 'default';\n\t\tconst _blockName = getBlockName( selectedBlockClientId );\n\t\tconst isValid = selectedBlockClientIds.every( ( id ) =>\n\t\t\tisBlockValid( id )\n\t\t);\n\t\tconst isVisual = selectedBlockClientIds.every(\n\t\t\t( id ) => getBlockMode( id ) === 'visual'\n\t\t);\n\t\tconst _isUsingBindings = selectedBlockClientIds.every(\n\t\t\t( clientId ) =>\n\t\t\t\t!! getBlockAttributes( clientId )?.metadata?.bindings\n\t\t);\n\n\t\tconst _hasParentPattern = selectedBlockClientIds.every(\n\t\t\t( clientId ) =>\n\t\t\t\tgetBlockParentsByBlockName( clientId, 'core/block', true )\n\t\t\t\t\t.length > 0\n\t\t);\n\n\t\t// If one or more selected blocks are locked, do not show the BlockGroupToolbar.\n\t\tconst _hasTemplateLock = selectedBlockClientIds.some(\n\t\t\t( id ) => getTemplateLock( id ) === 'contentOnly'\n\t\t);\n\t\treturn {\n\t\t\tblockClientId: selectedBlockClientId,\n\t\t\tblockClientIds: selectedBlockClientIds,\n\t\t\tisContentOnlyEditingMode: editingMode === 'contentOnly',\n\t\t\tisDefaultEditingMode: _isDefaultEditingMode,\n\t\t\tblockType: selectedBlockClientId && getBlockType( _blockName ),\n\t\t\tshouldShowVisualToolbar: isValid && isVisual,\n\t\t\ttoolbarKey: `${ selectedBlockClientId }${ firstParentClientId }`,\n\t\t\tshowParentSelector:\n\t\t\t\tparentBlockType &&\n\t\t\t\tgetBlockEditingMode( firstParentClientId ) === 'default' &&\n\t\t\t\thasBlockSupport(\n\t\t\t\t\tparentBlockType,\n\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\ttrue\n\t\t\t\t) &&\n\t\t\t\tselectedBlockClientIds.length === 1 &&\n\t\t\t\t_isDefaultEditingMode,\n\t\t\tisUsingBindings: _isUsingBindings,\n\t\t\thasParentPattern: _hasParentPattern,\n\t\t\thasContentOnlyLocking: _hasTemplateLock,\n\t\t};\n\t}, [] );\n\n\tconst toolbarWrapperRef = useRef( null );\n\n\t// Handles highlighting the current block outline on hover or focus of the\n\t// block type toolbar area.\n\tconst nodeRef = useRef();\n\tconst showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: nodeRef,\n\t} );\n\n\tconst isLargeViewport = ! useViewportMatch( 'medium', '<' );\n\n\tconst hasBlockToolbar = useHasBlockToolbar();\n\tif ( ! hasBlockToolbar ) {\n\t\treturn null;\n\t}\n\n\tconst isMultiToolbar = blockClientIds.length > 1;\n\tconst isSynced =\n\t\tisReusableBlock( blockType ) || isTemplatePart( blockType );\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = clsx( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': showParentSelector,\n\t} );\n\n\tconst innerClasses = clsx( 'block-editor-block-toolbar', {\n\t\t'is-synced': isSynced,\n\t\t'is-connected': isUsingBindings,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusEditorOnEscape\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t// The variant is applied as \"toolbar\" when undefined, which is the black border style of the dropdown from the toolbar popover.\n\t\t\tvariant={ variant === 'toolbar' ? undefined : variant }\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t__experimentalInitialIndex={ __experimentalInitialIndex }\n\t\t\t__experimentalOnIndexChange={ __experimentalOnIndexChange }\n\t\t\t// Resets the index whenever the active block changes so\n\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\tkey={ toolbarKey }\n\t\t>\n\t\t\t<div ref={ toolbarWrapperRef } className={ innerClasses }>\n\t\t\t\t{ ! isMultiToolbar &&\n\t\t\t\t\tisLargeViewport &&\n\t\t\t\t\tisDefaultEditingMode && <BlockParentSelector /> }\n\t\t\t\t{ ( shouldShowVisualToolbar || isMultiToolbar ) &&\n\t\t\t\t\t( isDefaultEditingMode ||\n\t\t\t\t\t\t( isContentOnlyEditingMode && ! hasParentPattern ) ||\n\t\t\t\t\t\tisSynced ) && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ nodeRef }\n\t\t\t\t\t\t\t{ ...showHoveredOrFocusedGestures }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToolbarGroup className=\"block-editor-block-toolbar__block-controls\">\n\t\t\t\t\t\t\t\t<BlockSwitcher\n\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isDefaultEditingMode }\n\t\t\t\t\t\t\t\t\tisUsingBindings={ isUsingBindings }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ isDefaultEditingMode && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ ! isMultiToolbar && (\n\t\t\t\t\t\t\t\t\t\t\t<BlockLockToolbar\n\t\t\t\t\t\t\t\t\t\t\t\tclientId={ blockClientId }\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<BlockMover\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\t\t\thideDragHandle={ hideDragHandle }\n\t\t\t\t\t\t\t\t\t\t/>\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</ToolbarGroup>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t{ ! hasContentOnlyLocking &&\n\t\t\t\t\tshouldShowVisualToolbar &&\n\t\t\t\t\tisMultiToolbar && <BlockGroupToolbar /> }\n\t\t\t\t{ shouldShowVisualToolbar && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"parent\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"block\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot className=\"block-editor-block-toolbar__slot\" />\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"inline\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"other\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<__unstableBlockNameContext.Provider\n\t\t\t\t\t\t\tvalue={ blockType?.name }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<__unstableBlockToolbarLastItem.Slot />\n\t\t\t\t\t\t</__unstableBlockNameContext.Provider>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<BlockEditVisuallyButton clientIds={ blockClientIds } />\n\t\t\t\t{ isDefaultEditingMode && (\n\t\t\t\t\t<BlockSettingsMenu clientIds={ blockClientIds } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</NavigableToolbar>\n\t);\n}\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport default function BlockToolbar( { hideDragHandle, variant } ) {\n\treturn (\n\t\t<PrivateBlockToolbar\n\t\t\thideDragHandle={ hideDragHandle }\n\t\t\tvariant={ variant }\n\t\t\tfocusOnMount={ undefined }\n\t\t\t__experimentalInitialIndex={ undefined }\n\t\t\t__experimentalOnIndexChange={ undefined }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","__","useSelect","useRef","useViewportMatch","getBlockType","hasBlockSupport","isReusableBlock","isTemplatePart","ToolbarGroup","ToolbarButton","BlockMover","BlockParentSelector","BlockSwitcher","BlockControls","__unstableBlockToolbarLastItem","BlockSettingsMenu","BlockLockToolbar","BlockGroupToolbar","BlockEditVisuallyButton","useShowHoveredOrFocusedGestures","store","blockEditorStore","__unstableBlockNameContext","NavigableToolbar","useHasBlockToolbar","Shuffle","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","PrivateBlockToolbar","hideDragHandle","focusOnMount","__experimentalInitialIndex","__experimentalOnIndexChange","variant","blockClientId","blockClientIds","isDefaultEditingMode","blockType","toolbarKey","shouldShowVisualToolbar","showParentSelector","isUsingBindings","hasParentPattern","hasContentOnlyLocking","showShuffleButton","showSlots","showGroupButtons","showLockButtons","select","getBlockName","getBlockMode","getBlockParents","getSelectedBlockClientIds","isBlockValid","getBlockEditingMode","getBlockAttributes","getBlockParentsByBlockName","getTemplateLock","isZoomOutMode","selectedBlockClientIds","selectedBlockClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","editingMode","_isDefaultEditingMode","_blockName","isValid","every","id","isVisual","_isUsingBindings","clientId","metadata","bindings","_hasParentPattern","_hasTemplateLock","some","toolbarWrapperRef","nodeRef","showHoveredOrFocusedGestures","ref","isLargeViewport","hasBlockToolbar","isMultiToolbar","isSynced","classes","innerClasses","focusEditorOnEscape","className","undefined","children","clientIds","disabled","as","Slot","group","Provider","value","name","BlockToolbar"],"sources":["@wordpress/block-editor/src/components/block-toolbar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\thasBlockSupport,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { ToolbarGroup, ToolbarButton } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockMover from '../block-mover';\nimport BlockParentSelector from '../block-parent-selector';\nimport BlockSwitcher from '../block-switcher';\nimport BlockControls from '../block-controls';\nimport __unstableBlockToolbarLastItem from './block-toolbar-last-item';\nimport BlockSettingsMenu from '../block-settings-menu';\nimport { BlockLockToolbar } from '../block-lock';\nimport { BlockGroupToolbar } from '../convert-to-group-buttons';\nimport BlockEditVisuallyButton from '../block-edit-visually-button';\nimport { useShowHoveredOrFocusedGestures } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport __unstableBlockNameContext from './block-name-context';\nimport NavigableToolbar from '../navigable-toolbar';\nimport { useHasBlockToolbar } from './use-has-block-toolbar';\nimport Shuffle from './shuffle';\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {boolean} props.focusOnMount Focus the toolbar when mounted.\n * @param {number} props.__experimentalInitialIndex The initial index of the toolbar item to focus.\n * @param {Function} props.__experimentalOnIndexChange Callback function to be called when the index of the focused toolbar item changes.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport function PrivateBlockToolbar( {\n\thideDragHandle,\n\tfocusOnMount,\n\t__experimentalInitialIndex,\n\t__experimentalOnIndexChange,\n\tvariant = 'unstyled',\n} ) {\n\tconst {\n\t\tblockClientId,\n\t\tblockClientIds,\n\t\tisDefaultEditingMode,\n\t\tblockType,\n\t\ttoolbarKey,\n\t\tshouldShowVisualToolbar,\n\t\tshowParentSelector,\n\t\tisUsingBindings,\n\t\thasParentPattern,\n\t\thasContentOnlyLocking,\n\t\tshowShuffleButton,\n\t\tshowSlots,\n\t\tshowGroupButtons,\n\t\tshowLockButtons,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockMode,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisBlockValid,\n\t\t\tgetBlockEditingMode,\n\t\t\tgetBlockAttributes,\n\t\t\tgetBlockParentsByBlockName,\n\t\t\tgetTemplateLock,\n\t\t\tisZoomOutMode,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst parents = getBlockParents( selectedBlockClientId );\n\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\tconst parentBlockType = getBlockType( parentBlockName );\n\t\tconst editingMode = getBlockEditingMode( selectedBlockClientId );\n\t\tconst _isDefaultEditingMode = editingMode === 'default';\n\t\tconst _blockName = getBlockName( selectedBlockClientId );\n\t\tconst isValid = selectedBlockClientIds.every( ( id ) =>\n\t\t\tisBlockValid( id )\n\t\t);\n\t\tconst isVisual = selectedBlockClientIds.every(\n\t\t\t( id ) => getBlockMode( id ) === 'visual'\n\t\t);\n\t\tconst _isUsingBindings = selectedBlockClientIds.every(\n\t\t\t( clientId ) =>\n\t\t\t\t!! getBlockAttributes( clientId )?.metadata?.bindings\n\t\t);\n\n\t\tconst _hasParentPattern = selectedBlockClientIds.every(\n\t\t\t( clientId ) =>\n\t\t\t\tgetBlockParentsByBlockName( clientId, 'core/block', true )\n\t\t\t\t\t.length > 0\n\t\t);\n\n\t\t// If one or more selected blocks are locked, do not show the BlockGroupToolbar.\n\t\tconst _hasTemplateLock = selectedBlockClientIds.some(\n\t\t\t( id ) => getTemplateLock( id ) === 'contentOnly'\n\t\t);\n\t\treturn {\n\t\t\tblockClientId: selectedBlockClientId,\n\t\t\tblockClientIds: selectedBlockClientIds,\n\t\t\tisDefaultEditingMode: _isDefaultEditingMode,\n\t\t\tblockType: selectedBlockClientId && getBlockType( _blockName ),\n\t\t\tshouldShowVisualToolbar: isValid && isVisual,\n\t\t\ttoolbarKey: `${ selectedBlockClientId }${ firstParentClientId }`,\n\t\t\tshowParentSelector:\n\t\t\t\t! isZoomOutMode() &&\n\t\t\t\tparentBlockType &&\n\t\t\t\tgetBlockEditingMode( firstParentClientId ) === 'default' &&\n\t\t\t\thasBlockSupport(\n\t\t\t\t\tparentBlockType,\n\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\ttrue\n\t\t\t\t) &&\n\t\t\t\tselectedBlockClientIds.length === 1 &&\n\t\t\t\t_isDefaultEditingMode,\n\t\t\tisUsingBindings: _isUsingBindings,\n\t\t\thasParentPattern: _hasParentPattern,\n\t\t\thasContentOnlyLocking: _hasTemplateLock,\n\t\t\tshowShuffleButton: isZoomOutMode(),\n\t\t\tshowSlots: ! isZoomOutMode(),\n\t\t\tshowGroupButtons: ! isZoomOutMode(),\n\t\t\tshowLockButtons: ! isZoomOutMode(),\n\t\t};\n\t}, [] );\n\n\tconst toolbarWrapperRef = useRef( null );\n\n\t// Handles highlighting the current block outline on hover or focus of the\n\t// block type toolbar area.\n\tconst nodeRef = useRef();\n\tconst showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: nodeRef,\n\t} );\n\n\tconst isLargeViewport = ! useViewportMatch( 'medium', '<' );\n\n\tconst hasBlockToolbar = useHasBlockToolbar();\n\tif ( ! hasBlockToolbar ) {\n\t\treturn null;\n\t}\n\n\tconst isMultiToolbar = blockClientIds.length > 1;\n\tconst isSynced =\n\t\tisReusableBlock( blockType ) || isTemplatePart( blockType );\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = clsx( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': showParentSelector,\n\t} );\n\n\tconst innerClasses = clsx( 'block-editor-block-toolbar', {\n\t\t'is-synced': isSynced,\n\t\t'is-connected': isUsingBindings,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusEditorOnEscape\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t// The variant is applied as \"toolbar\" when undefined, which is the black border style of the dropdown from the toolbar popover.\n\t\t\tvariant={ variant === 'toolbar' ? undefined : variant }\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t__experimentalInitialIndex={ __experimentalInitialIndex }\n\t\t\t__experimentalOnIndexChange={ __experimentalOnIndexChange }\n\t\t\t// Resets the index whenever the active block changes so\n\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\tkey={ toolbarKey }\n\t\t>\n\t\t\t<div ref={ toolbarWrapperRef } className={ innerClasses }>\n\t\t\t\t{ showParentSelector && ! isMultiToolbar && isLargeViewport && (\n\t\t\t\t\t<BlockParentSelector />\n\t\t\t\t) }\n\t\t\t\t{ ( shouldShowVisualToolbar || isMultiToolbar ) &&\n\t\t\t\t\t! hasParentPattern && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ nodeRef }\n\t\t\t\t\t\t\t{ ...showHoveredOrFocusedGestures }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToolbarGroup className=\"block-editor-block-toolbar__block-controls\">\n\t\t\t\t\t\t\t\t<BlockSwitcher\n\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isDefaultEditingMode }\n\t\t\t\t\t\t\t\t\tisUsingBindings={ isUsingBindings }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ ! isMultiToolbar && showLockButtons && (\n\t\t\t\t\t\t\t\t\t<BlockLockToolbar\n\t\t\t\t\t\t\t\t\t\tclientId={ blockClientId }\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<BlockMover\n\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\thideDragHandle={ hideDragHandle }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t{ ! hasContentOnlyLocking &&\n\t\t\t\t\tshouldShowVisualToolbar &&\n\t\t\t\t\tisMultiToolbar &&\n\t\t\t\t\tshowGroupButtons && <BlockGroupToolbar /> }\n\t\t\t\t{ showShuffleButton && (\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<Shuffle\n\t\t\t\t\t\t\tclientId={ blockClientIds[ 0 ] }\n\t\t\t\t\t\t\tas={ ToolbarButton }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t) }\n\t\t\t\t{ shouldShowVisualToolbar && showSlots && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"parent\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"block\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot className=\"block-editor-block-toolbar__slot\" />\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"inline\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"other\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<__unstableBlockNameContext.Provider\n\t\t\t\t\t\t\tvalue={ blockType?.name }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<__unstableBlockToolbarLastItem.Slot />\n\t\t\t\t\t\t</__unstableBlockNameContext.Provider>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<BlockEditVisuallyButton clientIds={ blockClientIds } />\n\t\t\t\t{ isDefaultEditingMode && (\n\t\t\t\t\t<BlockSettingsMenu clientIds={ blockClientIds } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</NavigableToolbar>\n\t);\n}\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport default function BlockToolbar( { hideDragHandle, variant } ) {\n\treturn (\n\t\t<PrivateBlockToolbar\n\t\t\thideDragHandle={ hideDragHandle }\n\t\t\tvariant={ variant }\n\t\t\tfocusOnMount={ undefined }\n\t\t\t__experimentalInitialIndex={ undefined }\n\t\t\t__experimentalOnIndexChange={ undefined }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -17,7 +17,7 @@ import { useHasAnyBlockControls } from '../block-controls/use-has-block-controls
17
17
  export function useHasBlockToolbar() {
18
18
  const {
19
19
  isToolbarEnabled,
20
- isDefaultEditingMode
20
+ isBlockDisabled
21
21
  } = useSelect(select => {
22
22
  const {
23
23
  getBlockEditingMode,
@@ -32,11 +32,11 @@ export function useHasBlockToolbar() {
32
32
  const blockType = selectedBlockClientId && getBlockType(getBlockName(selectedBlockClientId));
33
33
  return {
34
34
  isToolbarEnabled: blockType && hasBlockSupport(blockType, '__experimentalToolbar', true),
35
- isDefaultEditingMode: getBlockEditingMode(selectedBlockClientId) === 'default'
35
+ isBlockDisabled: getBlockEditingMode(selectedBlockClientId) === 'disabled'
36
36
  };
37
37
  }, []);
38
38
  const hasAnyBlockControls = useHasAnyBlockControls();
39
- if (!isToolbarEnabled || !isDefaultEditingMode && !hasAnyBlockControls) {
39
+ if (!isToolbarEnabled || isBlockDisabled && !hasAnyBlockControls) {
40
40
  return false;
41
41
  }
42
42
  return true;
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","getBlockType","hasBlockSupport","store","blockEditorStore","useHasAnyBlockControls","useHasBlockToolbar","isToolbarEnabled","isDefaultEditingMode","select","getBlockEditingMode","getBlockName","getBlockSelectionStart","selectedBlockClientId","blockType","hasAnyBlockControls"],"sources":["@wordpress/block-editor/src/components/block-toolbar/use-has-block-toolbar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useHasAnyBlockControls } from '../block-controls/use-has-block-controls';\n\n/**\n * Returns true if the block toolbar should be shown.\n *\n * @return {boolean} Whether the block toolbar component will be rendered.\n */\nexport function useHasBlockToolbar() {\n\tconst { isToolbarEnabled, isDefaultEditingMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockSelectionStart,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\t// we only care about the 1st selected block\n\t\t\t// for the toolbar, so we use getBlockSelectionStart\n\t\t\t// instead of getSelectedBlockClientIds\n\t\t\tconst selectedBlockClientId = getBlockSelectionStart();\n\n\t\t\tconst blockType =\n\t\t\t\tselectedBlockClientId &&\n\t\t\t\tgetBlockType( getBlockName( selectedBlockClientId ) );\n\n\t\t\treturn {\n\t\t\t\tisToolbarEnabled:\n\t\t\t\t\tblockType &&\n\t\t\t\t\thasBlockSupport( blockType, '__experimentalToolbar', true ),\n\t\t\t\tisDefaultEditingMode:\n\t\t\t\t\tgetBlockEditingMode( selectedBlockClientId ) === 'default',\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst hasAnyBlockControls = useHasAnyBlockControls();\n\n\tif (\n\t\t! isToolbarEnabled ||\n\t\t( ! isDefaultEditingMode && ! hasAnyBlockControls )\n\t) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,YAAY,EAAEC,eAAe,QAAQ,mBAAmB;AACjE;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,SAASC,sBAAsB,QAAQ,0CAA0C;;AAEjF;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACpC,MAAM;IAAEC,gBAAgB;IAAEC;EAAqB,CAAC,GAAGR,SAAS,CACzDS,MAAM,IAAM;IACb,MAAM;MACLC,mBAAmB;MACnBC,YAAY;MACZC;IACD,CAAC,GAAGH,MAAM,CAAEL,gBAAiB,CAAC;;IAE9B;IACA;IACA;IACA,MAAMS,qBAAqB,GAAGD,sBAAsB,CAAC,CAAC;IAEtD,MAAME,SAAS,GACdD,qBAAqB,IACrBZ,YAAY,CAAEU,YAAY,CAAEE,qBAAsB,CAAE,CAAC;IAEtD,OAAO;MACNN,gBAAgB,EACfO,SAAS,IACTZ,eAAe,CAAEY,SAAS,EAAE,uBAAuB,EAAE,IAAK,CAAC;MAC5DN,oBAAoB,EACnBE,mBAAmB,CAAEG,qBAAsB,CAAC,KAAK;IACnD,CAAC;EACF,CAAC,EACD,EACD,CAAC;EAED,MAAME,mBAAmB,GAAGV,sBAAsB,CAAC,CAAC;EAEpD,IACC,CAAEE,gBAAgB,IAChB,CAAEC,oBAAoB,IAAI,CAAEO,mBAAqB,EAClD;IACD,OAAO,KAAK;EACb;EAEA,OAAO,IAAI;AACZ","ignoreList":[]}
1
+ {"version":3,"names":["useSelect","getBlockType","hasBlockSupport","store","blockEditorStore","useHasAnyBlockControls","useHasBlockToolbar","isToolbarEnabled","isBlockDisabled","select","getBlockEditingMode","getBlockName","getBlockSelectionStart","selectedBlockClientId","blockType","hasAnyBlockControls"],"sources":["@wordpress/block-editor/src/components/block-toolbar/use-has-block-toolbar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useHasAnyBlockControls } from '../block-controls/use-has-block-controls';\n\n/**\n * Returns true if the block toolbar should be shown.\n *\n * @return {boolean} Whether the block toolbar component will be rendered.\n */\nexport function useHasBlockToolbar() {\n\tconst { isToolbarEnabled, isBlockDisabled } = useSelect( ( select ) => {\n\t\tconst { getBlockEditingMode, getBlockName, getBlockSelectionStart } =\n\t\t\tselect( blockEditorStore );\n\n\t\t// we only care about the 1st selected block\n\t\t// for the toolbar, so we use getBlockSelectionStart\n\t\t// instead of getSelectedBlockClientIds\n\t\tconst selectedBlockClientId = getBlockSelectionStart();\n\n\t\tconst blockType =\n\t\t\tselectedBlockClientId &&\n\t\t\tgetBlockType( getBlockName( selectedBlockClientId ) );\n\n\t\treturn {\n\t\t\tisToolbarEnabled:\n\t\t\t\tblockType &&\n\t\t\t\thasBlockSupport( blockType, '__experimentalToolbar', true ),\n\t\t\tisBlockDisabled:\n\t\t\t\tgetBlockEditingMode( selectedBlockClientId ) === 'disabled',\n\t\t};\n\t}, [] );\n\n\tconst hasAnyBlockControls = useHasAnyBlockControls();\n\n\tif ( ! isToolbarEnabled || ( isBlockDisabled && ! hasAnyBlockControls ) ) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,YAAY,EAAEC,eAAe,QAAQ,mBAAmB;AACjE;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,SAASC,sBAAsB,QAAQ,0CAA0C;;AAEjF;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACpC,MAAM;IAAEC,gBAAgB;IAAEC;EAAgB,CAAC,GAAGR,SAAS,CAAIS,MAAM,IAAM;IACtE,MAAM;MAAEC,mBAAmB;MAAEC,YAAY;MAAEC;IAAuB,CAAC,GAClEH,MAAM,CAAEL,gBAAiB,CAAC;;IAE3B;IACA;IACA;IACA,MAAMS,qBAAqB,GAAGD,sBAAsB,CAAC,CAAC;IAEtD,MAAME,SAAS,GACdD,qBAAqB,IACrBZ,YAAY,CAAEU,YAAY,CAAEE,qBAAsB,CAAE,CAAC;IAEtD,OAAO;MACNN,gBAAgB,EACfO,SAAS,IACTZ,eAAe,CAAEY,SAAS,EAAE,uBAAuB,EAAE,IAAK,CAAC;MAC5DN,eAAe,EACdE,mBAAmB,CAAEG,qBAAsB,CAAC,KAAK;IACnD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAME,mBAAmB,GAAGV,sBAAsB,CAAC,CAAC;EAEpD,IAAK,CAAEE,gBAAgB,IAAMC,eAAe,IAAI,CAAEO,mBAAqB,EAAG;IACzE,OAAO,KAAK;EACb;EAEA,OAAO,IAAI;AACZ","ignoreList":[]}
@@ -17,7 +17,6 @@ import EmptyBlockInserter from './empty-block-inserter';
17
17
  import { InsertionPointOpenRef, default as InsertionPoint } from './insertion-point';
18
18
  import BlockToolbarPopover from './block-toolbar-popover';
19
19
  import BlockToolbarBreadcrumb from './block-toolbar-breadcrumb';
20
- import ZoomOutPopover from './zoom-out-popover';
21
20
  import { store as blockEditorStore } from '../../store';
22
21
  import usePopoverScroll from '../block-popover/use-popover-scroll';
23
22
  import ZoomOutModeInserters from './zoom-out-mode-inserters';
@@ -77,8 +76,7 @@ export default function BlockTools({
77
76
  const {
78
77
  showEmptyBlockSideInserter,
79
78
  showBreadcrumb,
80
- showBlockToolbarPopover,
81
- showZoomOutToolbar
79
+ showBlockToolbarPopover
82
80
  } = useShowBlockTools();
83
81
  const {
84
82
  clearSelectedBlock,
@@ -200,9 +198,6 @@ export default function BlockTools({
200
198
  ref: blockSelectionButtonRef,
201
199
  __unstableContentRef: __unstableContentRef,
202
200
  clientId: clientId
203
- }), showZoomOutToolbar && /*#__PURE__*/_jsx(ZoomOutPopover, {
204
- __unstableContentRef: __unstableContentRef,
205
- clientId: clientId
206
201
  }), !isZoomOutMode && !hasFixedToolbar && /*#__PURE__*/_jsx(Popover.Slot, {
207
202
  name: "block-toolbar",
208
203
  ref: blockToolbarRef
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","useDispatch","isTextField","Popover","__unstableUseShortcutEventMatch","useShortcutEventMatch","useRef","switchToBlockType","store","blocksStore","speak","__","EmptyBlockInserter","InsertionPointOpenRef","default","InsertionPoint","BlockToolbarPopover","BlockToolbarBreadcrumb","ZoomOutPopover","blockEditorStore","usePopoverScroll","ZoomOutModeInserters","useShowBlockTools","unlock","getEditorRegion","jsx","_jsx","jsxs","_jsxs","selector","select","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getSettings","__unstableGetEditorMode","isTyping","clientId","editorMode","hasFixedToolbar","isZoomOutMode","BlockTools","children","__unstableContentRef","props","isMatch","getBlocksByClientId","getSelectedBlockClientIds","getBlockRootClientId","isGroupable","getGroupingBlockName","showEmptyBlockSideInserter","showBreadcrumb","showBlockToolbarPopover","showZoomOutToolbar","clearSelectedBlock","duplicateBlocks","removeBlocks","replaceBlocks","insertAfterBlock","insertBeforeBlock","selectBlock","moveBlocksUp","moveBlocksDown","expandBlock","blockSelectionButtonRef","onKeyDown","event","defaultPrevented","clientIds","length","preventDefault","rootClientId","target","closest","current","focus","contentWindow","document","activeElement","blocks","groupingBlockName","newBlocks","blockToolbarRef","blockToolbarAfterRef","Provider","value","ref","Slot","name"],"sources":["@wordpress/block-editor/src/components/block-tools/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { isTextField } from '@wordpress/dom';\nimport { Popover } from '@wordpress/components';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { useRef } from '@wordpress/element';\nimport { switchToBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { speak } from '@wordpress/a11y';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport EmptyBlockInserter from './empty-block-inserter';\nimport {\n\tInsertionPointOpenRef,\n\tdefault as InsertionPoint,\n} from './insertion-point';\nimport BlockToolbarPopover from './block-toolbar-popover';\nimport BlockToolbarBreadcrumb from './block-toolbar-breadcrumb';\nimport ZoomOutPopover from './zoom-out-popover';\nimport { store as blockEditorStore } from '../../store';\nimport usePopoverScroll from '../block-popover/use-popover-scroll';\nimport ZoomOutModeInserters from './zoom-out-mode-inserters';\nimport { useShowBlockTools } from './use-show-block-tools';\nimport { unlock } from '../../lock-unlock';\nimport getEditorRegion from '../../utils/get-editor-region';\n\nfunction selector( select ) {\n\tconst {\n\t\tgetSelectedBlockClientId,\n\t\tgetFirstMultiSelectedBlockClientId,\n\t\tgetSettings,\n\t\t__unstableGetEditorMode,\n\t\tisTyping,\n\t} = select( blockEditorStore );\n\n\tconst clientId =\n\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\tconst editorMode = __unstableGetEditorMode();\n\n\treturn {\n\t\tclientId,\n\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\tisTyping: isTyping(),\n\t\tisZoomOutMode: editorMode === 'zoom-out',\n\t};\n}\n\n/**\n * Renders block tools (the block toolbar, select/navigation mode toolbar, the\n * insertion point and a slot for the inline rich text toolbar). Must be wrapped\n * around the block content and editor styles wrapper or iframe.\n *\n * @param {Object} $0 Props.\n * @param {Object} $0.children The block content and style container.\n * @param {Object} $0.__unstableContentRef Ref holding the content scroll container.\n */\nexport default function BlockTools( {\n\tchildren,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst { clientId, hasFixedToolbar, isTyping, isZoomOutMode } = useSelect(\n\t\tselector,\n\t\t[]\n\t);\n\tconst isMatch = useShortcutEventMatch();\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\tgetBlockRootClientId,\n\t\tisGroupable,\n\t} = useSelect( blockEditorStore );\n\tconst { getGroupingBlockName } = useSelect( blocksStore );\n\tconst {\n\t\tshowEmptyBlockSideInserter,\n\t\tshowBreadcrumb,\n\t\tshowBlockToolbarPopover,\n\t\tshowZoomOutToolbar,\n\t} = useShowBlockTools();\n\n\tconst {\n\t\tclearSelectedBlock,\n\t\tduplicateBlocks,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tselectBlock,\n\t\tmoveBlocksUp,\n\t\tmoveBlocksDown,\n\t\texpandBlock,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\n\tconst blockSelectionButtonRef = useRef();\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isMatch( 'core/block-editor/move-up', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tmoveBlocksUp( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/move-down', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tmoveBlocksDown( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tduplicateBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/remove', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tremoveBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-after', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertAfterBlock( clientIds[ clientIds.length - 1 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-before', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertBeforeBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/unselect', event ) ) {\n\t\t\tif ( event.target.closest( '[role=toolbar]' ) ) {\n\t\t\t\t// This shouldn't be necessary, but we have a combination of a few things all combining to create a situation where:\n\t\t\t\t// - Because the block toolbar uses createPortal to populate the block toolbar fills, we can't rely on the React event bubbling to hit the onKeyDown listener for the block toolbar\n\t\t\t\t// - Since we can't use the React tree, we use the DOM tree which _should_ handle the event bubbling correctly from a `createPortal` element.\n\t\t\t\t// - This bubbles via the React tree, which hits this `unselect` escape keypress before the block toolbar DOM event listener has access to it.\n\t\t\t\t// An alternative would be to remove the addEventListener on the navigableToolbar and use this event to handle it directly right here. That feels hacky too though.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length > 1 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\t// If there is more than one block selected, select the first\n\t\t\t\t// block so that focus is directed back to the beginning of the selection.\n\t\t\t\t// In effect, to the user this feels like deselecting the multi-selection.\n\t\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\t} else if (\n\t\t\t\tclientIds.length === 1 &&\n\t\t\t\tevent.target === blockSelectionButtonRef?.current\n\t\t\t) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tclearSelectedBlock();\n\t\t\t\tgetEditorRegion( __unstableContentRef.current )?.focus();\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/collapse-list-view', event ) ) {\n\t\t\t// If focus is currently within a text field, such as a rich text block or other editable field,\n\t\t\t// skip collapsing the list view, and allow the keyboard shortcut to be handled by the text field.\n\t\t\t// This condition checks for both the active element and the active element within an iframed editor.\n\t\t\tif (\n\t\t\t\tisTextField( event.target ) ||\n\t\t\t\tisTextField(\n\t\t\t\t\tevent.target?.contentWindow?.document?.activeElement\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\texpandBlock( clientId );\n\t\t} else if ( isMatch( 'core/block-editor/group', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length > 1 && isGroupable( clientIds ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst blocks = getBlocksByClientId( clientIds );\n\t\t\t\tconst groupingBlockName = getGroupingBlockName();\n\t\t\t\tconst newBlocks = switchToBlockType(\n\t\t\t\t\tblocks,\n\t\t\t\t\tgroupingBlockName\n\t\t\t\t);\n\t\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t\t\tspeak( __( 'Selected blocks are grouped.' ) );\n\t\t\t}\n\t\t}\n\t}\n\tconst blockToolbarRef = usePopoverScroll( __unstableContentRef );\n\tconst blockToolbarAfterRef = usePopoverScroll( __unstableContentRef );\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div { ...props } onKeyDown={ onKeyDown }>\n\t\t\t<InsertionPointOpenRef.Provider value={ useRef( false ) }>\n\t\t\t\t{ ! isTyping && ! isZoomOutMode && (\n\t\t\t\t\t<InsertionPoint\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showEmptyBlockSideInserter && (\n\t\t\t\t\t<EmptyBlockInserter\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showBlockToolbarPopover && (\n\t\t\t\t\t<BlockToolbarPopover\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisTyping={ isTyping }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showBreadcrumb && (\n\t\t\t\t\t<BlockToolbarBreadcrumb\n\t\t\t\t\t\tref={ blockSelectionButtonRef }\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showZoomOutToolbar && (\n\t\t\t\t\t<ZoomOutPopover\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ /* Used for the inline rich text toolbar. Until this toolbar is combined into BlockToolbar, someone implementing their own BlockToolbar will also need to use this to see the image caption toolbar. */ }\n\t\t\t\t{ ! isZoomOutMode && ! hasFixedToolbar && (\n\t\t\t\t\t<Popover.Slot\n\t\t\t\t\t\tname=\"block-toolbar\"\n\t\t\t\t\t\tref={ blockToolbarRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t\t{ /* Used for inline rich text popovers. */ }\n\t\t\t\t<Popover.Slot\n\t\t\t\t\tname=\"__unstable-block-tools-after\"\n\t\t\t\t\tref={ blockToolbarAfterRef }\n\t\t\t\t/>\n\t\t\t\t{ isZoomOutMode && (\n\t\t\t\t\t<ZoomOutModeInserters\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InsertionPointOpenRef.Provider>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useSelect","useDispatch","isTextField","Popover","__unstableUseShortcutEventMatch","useShortcutEventMatch","useRef","switchToBlockType","store","blocksStore","speak","__","EmptyBlockInserter","InsertionPointOpenRef","default","InsertionPoint","BlockToolbarPopover","BlockToolbarBreadcrumb","blockEditorStore","usePopoverScroll","ZoomOutModeInserters","useShowBlockTools","unlock","getEditorRegion","jsx","_jsx","jsxs","_jsxs","selector","select","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getSettings","__unstableGetEditorMode","isTyping","clientId","editorMode","hasFixedToolbar","isZoomOutMode","BlockTools","children","__unstableContentRef","props","isMatch","getBlocksByClientId","getSelectedBlockClientIds","getBlockRootClientId","isGroupable","getGroupingBlockName","showEmptyBlockSideInserter","showBreadcrumb","showBlockToolbarPopover","clearSelectedBlock","duplicateBlocks","removeBlocks","replaceBlocks","insertAfterBlock","insertBeforeBlock","selectBlock","moveBlocksUp","moveBlocksDown","expandBlock","blockSelectionButtonRef","onKeyDown","event","defaultPrevented","clientIds","length","preventDefault","rootClientId","target","closest","current","focus","contentWindow","document","activeElement","blocks","groupingBlockName","newBlocks","blockToolbarRef","blockToolbarAfterRef","Provider","value","ref","Slot","name"],"sources":["@wordpress/block-editor/src/components/block-tools/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { isTextField } from '@wordpress/dom';\nimport { Popover } from '@wordpress/components';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { useRef } from '@wordpress/element';\nimport { switchToBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { speak } from '@wordpress/a11y';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport EmptyBlockInserter from './empty-block-inserter';\nimport {\n\tInsertionPointOpenRef,\n\tdefault as InsertionPoint,\n} from './insertion-point';\nimport BlockToolbarPopover from './block-toolbar-popover';\nimport BlockToolbarBreadcrumb from './block-toolbar-breadcrumb';\nimport { store as blockEditorStore } from '../../store';\nimport usePopoverScroll from '../block-popover/use-popover-scroll';\nimport ZoomOutModeInserters from './zoom-out-mode-inserters';\nimport { useShowBlockTools } from './use-show-block-tools';\nimport { unlock } from '../../lock-unlock';\nimport getEditorRegion from '../../utils/get-editor-region';\n\nfunction selector( select ) {\n\tconst {\n\t\tgetSelectedBlockClientId,\n\t\tgetFirstMultiSelectedBlockClientId,\n\t\tgetSettings,\n\t\t__unstableGetEditorMode,\n\t\tisTyping,\n\t} = select( blockEditorStore );\n\n\tconst clientId =\n\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\tconst editorMode = __unstableGetEditorMode();\n\n\treturn {\n\t\tclientId,\n\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\tisTyping: isTyping(),\n\t\tisZoomOutMode: editorMode === 'zoom-out',\n\t};\n}\n\n/**\n * Renders block tools (the block toolbar, select/navigation mode toolbar, the\n * insertion point and a slot for the inline rich text toolbar). Must be wrapped\n * around the block content and editor styles wrapper or iframe.\n *\n * @param {Object} $0 Props.\n * @param {Object} $0.children The block content and style container.\n * @param {Object} $0.__unstableContentRef Ref holding the content scroll container.\n */\nexport default function BlockTools( {\n\tchildren,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst { clientId, hasFixedToolbar, isTyping, isZoomOutMode } = useSelect(\n\t\tselector,\n\t\t[]\n\t);\n\tconst isMatch = useShortcutEventMatch();\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\tgetBlockRootClientId,\n\t\tisGroupable,\n\t} = useSelect( blockEditorStore );\n\tconst { getGroupingBlockName } = useSelect( blocksStore );\n\tconst {\n\t\tshowEmptyBlockSideInserter,\n\t\tshowBreadcrumb,\n\t\tshowBlockToolbarPopover,\n\t} = useShowBlockTools();\n\n\tconst {\n\t\tclearSelectedBlock,\n\t\tduplicateBlocks,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tselectBlock,\n\t\tmoveBlocksUp,\n\t\tmoveBlocksDown,\n\t\texpandBlock,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\n\tconst blockSelectionButtonRef = useRef();\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isMatch( 'core/block-editor/move-up', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tmoveBlocksUp( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/move-down', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tmoveBlocksDown( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tduplicateBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/remove', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tremoveBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-after', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertAfterBlock( clientIds[ clientIds.length - 1 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-before', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertBeforeBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/unselect', event ) ) {\n\t\t\tif ( event.target.closest( '[role=toolbar]' ) ) {\n\t\t\t\t// This shouldn't be necessary, but we have a combination of a few things all combining to create a situation where:\n\t\t\t\t// - Because the block toolbar uses createPortal to populate the block toolbar fills, we can't rely on the React event bubbling to hit the onKeyDown listener for the block toolbar\n\t\t\t\t// - Since we can't use the React tree, we use the DOM tree which _should_ handle the event bubbling correctly from a `createPortal` element.\n\t\t\t\t// - This bubbles via the React tree, which hits this `unselect` escape keypress before the block toolbar DOM event listener has access to it.\n\t\t\t\t// An alternative would be to remove the addEventListener on the navigableToolbar and use this event to handle it directly right here. That feels hacky too though.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length > 1 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\t// If there is more than one block selected, select the first\n\t\t\t\t// block so that focus is directed back to the beginning of the selection.\n\t\t\t\t// In effect, to the user this feels like deselecting the multi-selection.\n\t\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\t} else if (\n\t\t\t\tclientIds.length === 1 &&\n\t\t\t\tevent.target === blockSelectionButtonRef?.current\n\t\t\t) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tclearSelectedBlock();\n\t\t\t\tgetEditorRegion( __unstableContentRef.current )?.focus();\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/collapse-list-view', event ) ) {\n\t\t\t// If focus is currently within a text field, such as a rich text block or other editable field,\n\t\t\t// skip collapsing the list view, and allow the keyboard shortcut to be handled by the text field.\n\t\t\t// This condition checks for both the active element and the active element within an iframed editor.\n\t\t\tif (\n\t\t\t\tisTextField( event.target ) ||\n\t\t\t\tisTextField(\n\t\t\t\t\tevent.target?.contentWindow?.document?.activeElement\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\texpandBlock( clientId );\n\t\t} else if ( isMatch( 'core/block-editor/group', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length > 1 && isGroupable( clientIds ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst blocks = getBlocksByClientId( clientIds );\n\t\t\t\tconst groupingBlockName = getGroupingBlockName();\n\t\t\t\tconst newBlocks = switchToBlockType(\n\t\t\t\t\tblocks,\n\t\t\t\t\tgroupingBlockName\n\t\t\t\t);\n\t\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t\t\tspeak( __( 'Selected blocks are grouped.' ) );\n\t\t\t}\n\t\t}\n\t}\n\tconst blockToolbarRef = usePopoverScroll( __unstableContentRef );\n\tconst blockToolbarAfterRef = usePopoverScroll( __unstableContentRef );\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div { ...props } onKeyDown={ onKeyDown }>\n\t\t\t<InsertionPointOpenRef.Provider value={ useRef( false ) }>\n\t\t\t\t{ ! isTyping && ! isZoomOutMode && (\n\t\t\t\t\t<InsertionPoint\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showEmptyBlockSideInserter && (\n\t\t\t\t\t<EmptyBlockInserter\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showBlockToolbarPopover && (\n\t\t\t\t\t<BlockToolbarPopover\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisTyping={ isTyping }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showBreadcrumb && (\n\t\t\t\t\t<BlockToolbarBreadcrumb\n\t\t\t\t\t\tref={ blockSelectionButtonRef }\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ /* Used for the inline rich text toolbar. Until this toolbar is combined into BlockToolbar, someone implementing their own BlockToolbar will also need to use this to see the image caption toolbar. */ }\n\t\t\t\t{ ! isZoomOutMode && ! hasFixedToolbar && (\n\t\t\t\t\t<Popover.Slot\n\t\t\t\t\t\tname=\"block-toolbar\"\n\t\t\t\t\t\tref={ blockToolbarRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t\t{ /* Used for inline rich text popovers. */ }\n\t\t\t\t<Popover.Slot\n\t\t\t\t\tname=\"__unstable-block-tools-after\"\n\t\t\t\t\tref={ blockToolbarAfterRef }\n\t\t\t\t/>\n\t\t\t\t{ isZoomOutMode && (\n\t\t\t\t\t<ZoomOutModeInserters\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InsertionPointOpenRef.Provider>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}