@wordpress/block-editor 14.10.0 → 14.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/build/components/background-image-control/index.js +0 -1
  3. package/build/components/background-image-control/index.js.map +1 -1
  4. package/build/components/block-actions/index.js +0 -3
  5. package/build/components/block-actions/index.js.map +1 -1
  6. package/build/components/block-inspector/index.js +6 -11
  7. package/build/components/block-inspector/index.js.map +1 -1
  8. package/build/components/block-list/use-block-props/use-focus-handler.js +1 -1
  9. package/build/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
  10. package/build/components/block-rename/modal.js +36 -11
  11. package/build/components/block-rename/modal.js.map +1 -1
  12. package/build/components/block-rename/rename-control.js +2 -43
  13. package/build/components/block-rename/rename-control.js.map +1 -1
  14. package/build/components/block-settings-menu/block-settings-dropdown.js +12 -3
  15. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  16. package/build/components/block-styles/preview.native.js +1 -1
  17. package/build/components/block-styles/preview.native.js.map +1 -1
  18. package/build/components/block-switcher/block-transformations-menu.js +7 -7
  19. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  20. package/build/components/block-switcher/block-variation-transformations.js +2 -2
  21. package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
  22. package/build/components/block-switcher/index.js +1 -1
  23. package/build/components/block-switcher/index.js.map +1 -1
  24. package/build/components/block-switcher/use-transformed-patterns.js +1 -1
  25. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  26. package/build/components/block-toolbar/index.native.js +2 -2
  27. package/build/components/block-toolbar/index.native.js.map +1 -1
  28. package/build/components/date-format-picker/index.js +1 -1
  29. package/build/components/date-format-picker/index.js.map +1 -1
  30. package/build/components/global-styles/filters-panel.js +2 -2
  31. package/build/components/global-styles/filters-panel.js.map +1 -1
  32. package/build/components/global-styles/image-settings-panel.js +2 -2
  33. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  34. package/build/components/global-styles/use-global-styles-output.js +3 -3
  35. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  36. package/build/components/iframe/get-compatibility-styles.js +1 -1
  37. package/build/components/iframe/get-compatibility-styles.js.map +1 -1
  38. package/build/components/iframe/index.js +1 -1
  39. package/build/components/iframe/index.js.map +1 -1
  40. package/build/components/image-size-control/index.js +2 -1
  41. package/build/components/image-size-control/index.js.map +1 -1
  42. package/build/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  43. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  44. package/build/components/inserter/reusable-blocks-tab.native.js +1 -1
  45. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  46. package/build/components/line-height-control/index.native.js +1 -1
  47. package/build/components/line-height-control/index.native.js.map +1 -1
  48. package/build/components/link-control/index.js +1 -1
  49. package/build/components/link-control/index.js.map +1 -1
  50. package/build/components/link-control/use-search-handler.js +1 -1
  51. package/build/components/link-control/use-search-handler.js.map +1 -1
  52. package/build/components/list-view/block-select-button.js +5 -2
  53. package/build/components/list-view/block-select-button.js.map +1 -1
  54. package/build/components/media-placeholder/index.js +1 -0
  55. package/build/components/media-placeholder/index.js.map +1 -1
  56. package/build/components/observe-typing/index.js +1 -1
  57. package/build/components/observe-typing/index.js.map +1 -1
  58. package/build/components/provider/index.js +0 -2
  59. package/build/components/provider/index.js.map +1 -1
  60. package/build/components/provider/use-block-sync.js +2 -2
  61. package/build/components/provider/use-block-sync.js.map +1 -1
  62. package/build/components/rich-text/event-listeners/input-rules.js +3 -3
  63. package/build/components/rich-text/event-listeners/input-rules.js.map +1 -1
  64. package/build/components/rich-text/native/use-format-types.js +1 -1
  65. package/build/components/rich-text/native/use-format-types.js.map +1 -1
  66. package/build/components/rich-text/use-format-types.js +1 -1
  67. package/build/components/rich-text/use-format-types.js.map +1 -1
  68. package/build/components/tabbed-sidebar/index.js +39 -0
  69. package/build/components/tabbed-sidebar/index.js.map +1 -1
  70. package/build/components/typewriter/index.js +1 -1
  71. package/build/components/typewriter/index.js.map +1 -1
  72. package/build/components/url-popover/image-url-input-ui.js +3 -3
  73. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  74. package/build/components/use-block-commands/index.js +1 -1
  75. package/build/components/use-block-commands/index.js.map +1 -1
  76. package/build/components/use-moving-animation/index.js +1 -1
  77. package/build/components/use-moving-animation/index.js.map +1 -1
  78. package/build/store/actions.js +1 -1
  79. package/build/store/actions.js.map +1 -1
  80. package/build/store/selectors.js +5 -5
  81. package/build/store/selectors.js.map +1 -1
  82. package/build/utils/transform-styles/index.js +1 -1
  83. package/build/utils/transform-styles/index.js.map +1 -1
  84. package/build/utils/use-notify-copy.js +19 -11
  85. package/build/utils/use-notify-copy.js.map +1 -1
  86. package/build-module/components/background-image-control/index.js +0 -1
  87. package/build-module/components/background-image-control/index.js.map +1 -1
  88. package/build-module/components/block-actions/index.js +0 -3
  89. package/build-module/components/block-actions/index.js.map +1 -1
  90. package/build-module/components/block-inspector/index.js +6 -11
  91. package/build-module/components/block-inspector/index.js.map +1 -1
  92. package/build-module/components/block-list/use-block-props/use-focus-handler.js +1 -1
  93. package/build-module/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
  94. package/build-module/components/block-rename/modal.js +36 -11
  95. package/build-module/components/block-rename/modal.js.map +1 -1
  96. package/build-module/components/block-rename/rename-control.js +2 -43
  97. package/build-module/components/block-rename/rename-control.js.map +1 -1
  98. package/build-module/components/block-settings-menu/block-settings-dropdown.js +12 -3
  99. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  100. package/build-module/components/block-styles/preview.native.js +1 -1
  101. package/build-module/components/block-styles/preview.native.js.map +1 -1
  102. package/build-module/components/block-switcher/block-transformations-menu.js +7 -7
  103. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  104. package/build-module/components/block-switcher/block-variation-transformations.js +2 -2
  105. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
  106. package/build-module/components/block-switcher/index.js +1 -1
  107. package/build-module/components/block-switcher/index.js.map +1 -1
  108. package/build-module/components/block-switcher/use-transformed-patterns.js +1 -1
  109. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  110. package/build-module/components/block-toolbar/index.native.js +2 -2
  111. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  112. package/build-module/components/date-format-picker/index.js +1 -1
  113. package/build-module/components/date-format-picker/index.js.map +1 -1
  114. package/build-module/components/global-styles/filters-panel.js +2 -2
  115. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  116. package/build-module/components/global-styles/image-settings-panel.js +2 -2
  117. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  118. package/build-module/components/global-styles/use-global-styles-output.js +3 -3
  119. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  120. package/build-module/components/iframe/get-compatibility-styles.js +1 -1
  121. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
  122. package/build-module/components/iframe/index.js +1 -1
  123. package/build-module/components/iframe/index.js.map +1 -1
  124. package/build-module/components/image-size-control/index.js +3 -2
  125. package/build-module/components/image-size-control/index.js.map +1 -1
  126. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  127. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  128. package/build-module/components/inserter/reusable-blocks-tab.native.js +1 -1
  129. package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  130. package/build-module/components/line-height-control/index.native.js +1 -1
  131. package/build-module/components/line-height-control/index.native.js.map +1 -1
  132. package/build-module/components/link-control/index.js +1 -1
  133. package/build-module/components/link-control/index.js.map +1 -1
  134. package/build-module/components/link-control/use-search-handler.js +1 -1
  135. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  136. package/build-module/components/list-view/block-select-button.js +6 -3
  137. package/build-module/components/list-view/block-select-button.js.map +1 -1
  138. package/build-module/components/media-placeholder/index.js +1 -0
  139. package/build-module/components/media-placeholder/index.js.map +1 -1
  140. package/build-module/components/observe-typing/index.js +1 -1
  141. package/build-module/components/observe-typing/index.js.map +1 -1
  142. package/build-module/components/provider/index.js +0 -1
  143. package/build-module/components/provider/index.js.map +1 -1
  144. package/build-module/components/provider/use-block-sync.js +2 -2
  145. package/build-module/components/provider/use-block-sync.js.map +1 -1
  146. package/build-module/components/rich-text/event-listeners/input-rules.js +3 -3
  147. package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -1
  148. package/build-module/components/rich-text/native/use-format-types.js +1 -1
  149. package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
  150. package/build-module/components/rich-text/use-format-types.js +1 -1
  151. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  152. package/build-module/components/tabbed-sidebar/index.js +39 -0
  153. package/build-module/components/tabbed-sidebar/index.js.map +1 -1
  154. package/build-module/components/typewriter/index.js +1 -1
  155. package/build-module/components/typewriter/index.js.map +1 -1
  156. package/build-module/components/url-popover/image-url-input-ui.js +3 -3
  157. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  158. package/build-module/components/use-block-commands/index.js +1 -1
  159. package/build-module/components/use-block-commands/index.js.map +1 -1
  160. package/build-module/components/use-moving-animation/index.js +1 -1
  161. package/build-module/components/use-moving-animation/index.js.map +1 -1
  162. package/build-module/store/actions.js +1 -1
  163. package/build-module/store/actions.js.map +1 -1
  164. package/build-module/store/selectors.js +5 -5
  165. package/build-module/store/selectors.js.map +1 -1
  166. package/build-module/utils/transform-styles/index.js +1 -1
  167. package/build-module/utils/transform-styles/index.js.map +1 -1
  168. package/build-module/utils/use-notify-copy.js +19 -11
  169. package/build-module/utils/use-notify-copy.js.map +1 -1
  170. package/build-style/content-rtl.css +0 -9
  171. package/build-style/content.css +0 -9
  172. package/build-style/style-rtl.css +18 -21
  173. package/build-style/style.css +18 -21
  174. package/package.json +34 -33
  175. package/src/components/background-image-control/index.js +0 -1
  176. package/src/components/block-actions/index.js +0 -3
  177. package/src/components/block-icon/content.scss +1 -1
  178. package/src/components/{block-card → block-icon}/stories/index.story.js +16 -26
  179. package/src/components/block-icon/style.scss +1 -1
  180. package/src/components/block-inspector/index.js +7 -10
  181. package/src/components/block-list/use-block-props/use-focus-handler.js +1 -1
  182. package/src/components/block-preview/style.scss +1 -1
  183. package/src/components/block-rename/modal.js +40 -12
  184. package/src/components/block-rename/rename-control.js +1 -53
  185. package/src/components/block-settings-menu/block-settings-dropdown.js +16 -2
  186. package/src/components/block-styles/preview.native.js +1 -1
  187. package/src/components/block-switcher/block-transformations-menu.js +9 -9
  188. package/src/components/block-switcher/block-variation-transformations.js +2 -2
  189. package/src/components/block-switcher/index.js +1 -1
  190. package/src/components/block-switcher/use-transformed-patterns.js +1 -1
  191. package/src/components/block-toolbar/index.native.js +2 -2
  192. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
  193. package/src/components/colors-gradients/style.scss +1 -0
  194. package/src/components/colors-gradients/test/control.js +2 -2
  195. package/src/components/date-format-picker/index.js +1 -1
  196. package/src/components/duotone-control/style.scss +2 -2
  197. package/src/components/global-styles/filters-panel.js +4 -2
  198. package/src/components/global-styles/image-settings-panel.js +2 -2
  199. package/src/components/global-styles/test/typography-utils.js +1 -1
  200. package/src/components/global-styles/use-global-styles-output.js +3 -3
  201. package/src/components/iframe/get-compatibility-styles.js +1 -1
  202. package/src/components/iframe/index.js +1 -1
  203. package/src/components/image-size-control/index.js +6 -2
  204. package/src/components/inner-blocks/README.md +1 -1
  205. package/src/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  206. package/src/components/inserter/reusable-blocks-tab.native.js +1 -1
  207. package/src/components/line-height-control/index.native.js +1 -1
  208. package/src/components/link-control/README.md +2 -2
  209. package/src/components/link-control/index.js +1 -1
  210. package/src/components/link-control/test/index.js +3 -3
  211. package/src/components/link-control/use-search-handler.js +1 -1
  212. package/src/components/list-view/README.md +1 -1
  213. package/src/components/list-view/block-select-button.js +5 -5
  214. package/src/components/list-view/style.scss +3 -7
  215. package/src/components/media-placeholder/content.scss +0 -8
  216. package/src/components/media-placeholder/index.js +1 -0
  217. package/src/components/media-placeholder/style.scss +7 -0
  218. package/src/components/observe-typing/index.js +1 -1
  219. package/src/components/provider/index.js +0 -1
  220. package/src/components/provider/use-block-sync.js +2 -2
  221. package/src/components/resolution-tool/stories/index.story.js +52 -2
  222. package/src/components/rich-text/README.md +1 -1
  223. package/src/components/rich-text/event-listeners/input-rules.js +3 -3
  224. package/src/components/rich-text/native/use-format-types.js +1 -1
  225. package/src/components/rich-text/use-format-types.js +1 -1
  226. package/src/components/tabbed-sidebar/README.md +24 -13
  227. package/src/components/tabbed-sidebar/index.js +38 -0
  228. package/src/components/tabbed-sidebar/stories/index.story.js +104 -0
  229. package/src/components/typewriter/index.js +1 -1
  230. package/src/components/unit-control/README.md +1 -1
  231. package/src/components/unit-control/stories/index.story.js +124 -0
  232. package/src/components/url-popover/image-url-input-ui.js +3 -3
  233. package/src/components/use-block-commands/index.js +1 -1
  234. package/src/components/use-moving-animation/index.js +1 -1
  235. package/src/components/use-settings/README.md +1 -1
  236. package/src/components/warning/content.scss +1 -1
  237. package/src/components/writing-flow/test/index.js +1 -1
  238. package/src/hooks/color.scss +0 -7
  239. package/src/store/actions.js +1 -1
  240. package/src/store/selectors.js +5 -5
  241. package/src/store/test/private-selectors.js +1 -1
  242. package/src/store/test/selectors.js +3 -3
  243. package/src/style.scss +1 -0
  244. package/src/utils/test/sorting.js +1 -1
  245. package/src/utils/transform-styles/index.js +1 -1
  246. package/src/utils/use-notify-copy.js +51 -43
  247. package/tsconfig.json +1 -0
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","useDispatch","useRefEffect","isInsideRootBlock","store","blockEditorStore","useFocusHandler","clientId","isBlockSelected","selectBlock","selectionChange","node","onFocus","event","parentElement","closest","target","isContentEditable","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-focus-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { isInsideRootBlock } from '../../../utils/dom';\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Selects the block if it receives focus.\n *\n * @param {string} clientId Block client ID.\n */\nexport function useFocusHandler( clientId ) {\n\tconst { isBlockSelected } = useSelect( blockEditorStore );\n\tconst { selectBlock, selectionChange } = useDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\t/**\n\t\t\t * Marks the block as selected when focused and not already\n\t\t\t * selected. This specifically handles the case where block does not\n\t\t\t * set focus on its own (via `setFocus`), typically if there is no\n\t\t\t * focusable input in the block.\n\t\t\t *\n\t\t\t * @param {FocusEvent} event Focus event.\n\t\t\t */\n\t\t\tfunction onFocus( event ) {\n\t\t\t\t// When the whole editor is editable, let writing flow handle\n\t\t\t\t// selection.\n\t\t\t\tif (\n\t\t\t\t\tnode.parentElement.closest( '[contenteditable=\"true\"]' )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Check synchronously because a non-selected block might be\n\t\t\t\t// getting data through `useSelect` asynchronously.\n\t\t\t\tif ( isBlockSelected( clientId ) ) {\n\t\t\t\t\t// Potentially change selection away from rich text.\n\t\t\t\t\tif ( ! event.target.isContentEditable ) {\n\t\t\t\t\t\tselectionChange( clientId );\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If an inner block is focussed, that block is resposible for\n\t\t\t\t// setting the selected block.\n\t\t\t\tif ( ! isInsideRootBlock( node, event.target ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselectBlock( clientId );\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'focusin', onFocus );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'focusin', onFocus );\n\t\t\t};\n\t\t},\n\t\t[ isBlockSelected, selectBlock ]\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,YAAY,QAAQ,oBAAoB;;AAEjD;AACA;AACA;AACA,SAASC,iBAAiB,QAAQ,oBAAoB;AACtD,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,gBAAgB;;AAE1D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAEC,QAAQ,EAAG;EAC3C,MAAM;IAAEC;EAAgB,CAAC,GAAGR,SAAS,CAAEK,gBAAiB,CAAC;EACzD,MAAM;IAAEI,WAAW;IAAEC;EAAgB,CAAC,GAAGT,WAAW,CAAEI,gBAAiB,CAAC;EAExE,OAAOH,YAAY,CAChBS,IAAI,IAAM;IACX;AACH;AACA;AACA;AACA;AACA;AACA;AACA;IACG,SAASC,OAAOA,CAAEC,KAAK,EAAG;MACzB;MACA;MACA,IACCF,IAAI,CAACG,aAAa,CAACC,OAAO,CAAE,0BAA2B,CAAC,EACvD;QACD;MACD;;MAEA;MACA;MACA,IAAKP,eAAe,CAAED,QAAS,CAAC,EAAG;QAClC;QACA,IAAK,CAAEM,KAAK,CAACG,MAAM,CAACC,iBAAiB,EAAG;UACvCP,eAAe,CAAEH,QAAS,CAAC;QAC5B;QACA;MACD;;MAEA;MACA;MACA,IAAK,CAAEJ,iBAAiB,CAAEQ,IAAI,EAAEE,KAAK,CAACG,MAAO,CAAC,EAAG;QAChD;MACD;MAEAP,WAAW,CAAEF,QAAS,CAAC;IACxB;IAEAI,IAAI,CAACO,gBAAgB,CAAE,SAAS,EAAEN,OAAQ,CAAC;IAE3C,OAAO,MAAM;MACZD,IAAI,CAACQ,mBAAmB,CAAE,SAAS,EAAEP,OAAQ,CAAC;IAC/C,CAAC;EACF,CAAC,EACD,CAAEJ,eAAe,EAAEC,WAAW,CAC/B,CAAC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["useSelect","useDispatch","useRefEffect","isInsideRootBlock","store","blockEditorStore","useFocusHandler","clientId","isBlockSelected","selectBlock","selectionChange","node","onFocus","event","parentElement","closest","target","isContentEditable","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-focus-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { isInsideRootBlock } from '../../../utils/dom';\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Selects the block if it receives focus.\n *\n * @param {string} clientId Block client ID.\n */\nexport function useFocusHandler( clientId ) {\n\tconst { isBlockSelected } = useSelect( blockEditorStore );\n\tconst { selectBlock, selectionChange } = useDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\t/**\n\t\t\t * Marks the block as selected when focused and not already\n\t\t\t * selected. This specifically handles the case where block does not\n\t\t\t * set focus on its own (via `setFocus`), typically if there is no\n\t\t\t * focusable input in the block.\n\t\t\t *\n\t\t\t * @param {FocusEvent} event Focus event.\n\t\t\t */\n\t\t\tfunction onFocus( event ) {\n\t\t\t\t// When the whole editor is editable, let writing flow handle\n\t\t\t\t// selection.\n\t\t\t\tif (\n\t\t\t\t\tnode.parentElement.closest( '[contenteditable=\"true\"]' )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Check synchronously because a non-selected block might be\n\t\t\t\t// getting data through `useSelect` asynchronously.\n\t\t\t\tif ( isBlockSelected( clientId ) ) {\n\t\t\t\t\t// Potentially change selection away from rich text.\n\t\t\t\t\tif ( ! event.target.isContentEditable ) {\n\t\t\t\t\t\tselectionChange( clientId );\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If an inner block is focussed, that block is responsible for\n\t\t\t\t// setting the selected block.\n\t\t\t\tif ( ! isInsideRootBlock( node, event.target ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselectBlock( clientId );\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'focusin', onFocus );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'focusin', onFocus );\n\t\t\t};\n\t\t},\n\t\t[ isBlockSelected, selectBlock ]\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,YAAY,QAAQ,oBAAoB;;AAEjD;AACA;AACA;AACA,SAASC,iBAAiB,QAAQ,oBAAoB;AACtD,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,gBAAgB;;AAE1D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAEC,QAAQ,EAAG;EAC3C,MAAM;IAAEC;EAAgB,CAAC,GAAGR,SAAS,CAAEK,gBAAiB,CAAC;EACzD,MAAM;IAAEI,WAAW;IAAEC;EAAgB,CAAC,GAAGT,WAAW,CAAEI,gBAAiB,CAAC;EAExE,OAAOH,YAAY,CAChBS,IAAI,IAAM;IACX;AACH;AACA;AACA;AACA;AACA;AACA;AACA;IACG,SAASC,OAAOA,CAAEC,KAAK,EAAG;MACzB;MACA;MACA,IACCF,IAAI,CAACG,aAAa,CAACC,OAAO,CAAE,0BAA2B,CAAC,EACvD;QACD;MACD;;MAEA;MACA;MACA,IAAKP,eAAe,CAAED,QAAS,CAAC,EAAG;QAClC;QACA,IAAK,CAAEM,KAAK,CAACG,MAAM,CAACC,iBAAiB,EAAG;UACvCP,eAAe,CAAEH,QAAS,CAAC;QAC5B;QACA;MACD;;MAEA;MACA;MACA,IAAK,CAAEJ,iBAAiB,CAAEQ,IAAI,EAAEE,KAAK,CAACG,MAAO,CAAC,EAAG;QAChD;MACD;MAEAP,WAAW,CAAEF,QAAS,CAAC;IACxB;IAEAI,IAAI,CAACO,gBAAgB,CAAE,SAAS,EAAEN,OAAQ,CAAC;IAE3C,OAAO,MAAM;MACZD,IAAI,CAACQ,mBAAmB,CAAE,SAAS,EAAEP,OAAQ,CAAC;IAC/C,CAAC;EACF,CAAC,EACD,CAAEJ,eAAe,EAAEC,WAAW,CAC/B,CAAC;AACF","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  /**
2
3
  * WordPress dependencies
3
4
  */
@@ -5,35 +6,58 @@ import { __experimentalHStack as HStack, __experimentalVStack as VStack, Button,
5
6
  import { __, sprintf } from '@wordpress/i18n';
6
7
  import { useState } from '@wordpress/element';
7
8
  import { speak } from '@wordpress/a11y';
9
+ import { useSelect, useDispatch } from '@wordpress/data';
8
10
 
9
11
  /**
10
12
  * Internal dependencies
11
13
  */
14
+ import { store as blockEditorStore } from '../../store';
15
+ import { useBlockDisplayInformation } from '..';
12
16
  import isEmptyString from './is-empty-string';
13
17
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
18
  export default function BlockRenameModal({
15
- blockName,
16
- originalBlockName,
17
- onClose,
18
- onSave,
19
+ clientId,
20
+ onClose
21
+ }) {
22
+ const [editedBlockName, setEditedBlockName] = useState();
23
+ const blockInformation = useBlockDisplayInformation(clientId);
24
+ const {
25
+ metadata
26
+ } = useSelect(select => {
27
+ const {
28
+ getBlockAttributes
29
+ } = select(blockEditorStore);
30
+ return {
31
+ metadata: getBlockAttributes(clientId)?.metadata
32
+ };
33
+ }, [clientId]);
34
+ const {
35
+ updateBlockAttributes
36
+ } = useDispatch(blockEditorStore);
37
+ const blockName = metadata?.name || '';
38
+ const originalBlockName = blockInformation?.title;
19
39
  // Pattern Overrides is a WordPress-only feature but it also uses the Block Binding API.
20
40
  // Ideally this should not be inside the block editor package, but we keep it here for simplicity.
21
- hasOverridesWarning
22
- }) {
23
- const [editedBlockName, setEditedBlockName] = useState(blockName);
24
- const nameHasChanged = editedBlockName !== blockName;
41
+ const hasOverridesWarning = !!blockName && !!metadata?.bindings && Object.values(metadata.bindings).some(binding => binding.source === 'core/pattern-overrides');
42
+ const nameHasChanged = editedBlockName !== undefined && editedBlockName !== blockName;
25
43
  const nameIsOriginal = editedBlockName === originalBlockName;
26
44
  const nameIsEmpty = isEmptyString(editedBlockName);
27
45
  const isNameValid = nameHasChanged || nameIsOriginal;
28
46
  const autoSelectInputText = event => event.target.select();
29
47
  const handleSubmit = () => {
48
+ const newName = nameIsOriginal || nameIsEmpty ? undefined : editedBlockName;
30
49
  const message = nameIsOriginal || nameIsEmpty ? sprintf(/* translators: %s: new name/label for the block */
31
50
  __('Block name reset to: "%s".'), editedBlockName) : sprintf(/* translators: %s: new name/label for the block */
32
51
  __('Block name changed to: "%s".'), editedBlockName);
33
52
 
34
53
  // Must be assertive to immediately announce change.
35
54
  speak(message, 'assertive');
36
- onSave(editedBlockName);
55
+ updateBlockAttributes([clientId], {
56
+ metadata: {
57
+ ...metadata,
58
+ name: newName
59
+ }
60
+ });
37
61
 
38
62
  // Immediate close avoids ability to hit save multiple times.
39
63
  onClose();
@@ -57,7 +81,7 @@ export default function BlockRenameModal({
57
81
  children: [/*#__PURE__*/_jsx(TextControl, {
58
82
  __nextHasNoMarginBottom: true,
59
83
  __next40pxDefaultSize: true,
60
- value: editedBlockName,
84
+ value: editedBlockName !== null && editedBlockName !== void 0 ? editedBlockName : blockName,
61
85
  label: __('Name'),
62
86
  help: hasOverridesWarning ? __('This block allows overrides. Changing the name can cause problems with content entered into instances of this pattern.') : undefined,
63
87
  placeholder: originalBlockName,
@@ -72,7 +96,8 @@ export default function BlockRenameModal({
72
96
  children: __('Cancel')
73
97
  }), /*#__PURE__*/_jsx(Button, {
74
98
  __next40pxDefaultSize: true,
75
- "aria-disabled": !isNameValid,
99
+ accessibleWhenDisabled: true,
100
+ disabled: !isNameValid,
76
101
  variant: "primary",
77
102
  type: "submit",
78
103
  children: __('Save')
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalHStack","HStack","__experimentalVStack","VStack","Button","TextControl","Modal","__","sprintf","useState","speak","isEmptyString","jsx","_jsx","jsxs","_jsxs","BlockRenameModal","blockName","originalBlockName","onClose","onSave","hasOverridesWarning","editedBlockName","setEditedBlockName","nameHasChanged","nameIsOriginal","nameIsEmpty","isNameValid","autoSelectInputText","event","target","select","handleSubmit","message","title","onRequestClose","overlayClassName","focusOnMount","size","children","onSubmit","e","preventDefault","spacing","__nextHasNoMarginBottom","__next40pxDefaultSize","value","label","help","undefined","placeholder","onChange","onFocus","justify","variant","onClick","type"],"sources":["@wordpress/block-editor/src/components/block-rename/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tTextControl,\n\tModal,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport isEmptyString from './is-empty-string';\n\nexport default function BlockRenameModal( {\n\tblockName,\n\toriginalBlockName,\n\tonClose,\n\tonSave,\n\t// Pattern Overrides is a WordPress-only feature but it also uses the Block Binding API.\n\t// Ideally this should not be inside the block editor package, but we keep it here for simplicity.\n\thasOverridesWarning,\n} ) {\n\tconst [ editedBlockName, setEditedBlockName ] = useState( blockName );\n\n\tconst nameHasChanged = editedBlockName !== blockName;\n\tconst nameIsOriginal = editedBlockName === originalBlockName;\n\tconst nameIsEmpty = isEmptyString( editedBlockName );\n\n\tconst isNameValid = nameHasChanged || nameIsOriginal;\n\n\tconst autoSelectInputText = ( event ) => event.target.select();\n\n\tconst handleSubmit = () => {\n\t\tconst message =\n\t\t\tnameIsOriginal || nameIsEmpty\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %s: new name/label for the block */\n\t\t\t\t\t\t__( 'Block name reset to: \"%s\".' ),\n\t\t\t\t\t\teditedBlockName\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: new name/label for the block */\n\t\t\t\t\t\t__( 'Block name changed to: \"%s\".' ),\n\t\t\t\t\t\teditedBlockName\n\t\t\t\t );\n\n\t\t// Must be assertive to immediately announce change.\n\t\tspeak( message, 'assertive' );\n\t\tonSave( editedBlockName );\n\n\t\t// Immediate close avoids ability to hit save multiple times.\n\t\tonClose();\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Rename' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\toverlayClassName=\"block-editor-block-rename-modal\"\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tif ( ! isNameValid ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\thandleSubmit();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<VStack spacing=\"3\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvalue={ editedBlockName }\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\thasOverridesWarning\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'This block allows overrides. Changing the name can cause problems with content entered into instances of this pattern.'\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplaceholder={ originalBlockName }\n\t\t\t\t\t\tonChange={ setEditedBlockName }\n\t\t\t\t\t\tonFocus={ autoSelectInputText }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\taria-disabled={ ! isNameValid }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,MAAM,EACNC,WAAW,EACXC,KAAK,QACC,uBAAuB;AAC9B,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,KAAK,QAAQ,iBAAiB;;AAEvC;AACA;AACA;AACA,OAAOC,aAAa,MAAM,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE9C,eAAe,SAASC,gBAAgBA,CAAE;EACzCC,SAAS;EACTC,iBAAiB;EACjBC,OAAO;EACPC,MAAM;EACN;EACA;EACAC;AACD,CAAC,EAAG;EACH,MAAM,CAAEC,eAAe,EAAEC,kBAAkB,CAAE,GAAGd,QAAQ,CAAEQ,SAAU,CAAC;EAErE,MAAMO,cAAc,GAAGF,eAAe,KAAKL,SAAS;EACpD,MAAMQ,cAAc,GAAGH,eAAe,KAAKJ,iBAAiB;EAC5D,MAAMQ,WAAW,GAAGf,aAAa,CAAEW,eAAgB,CAAC;EAEpD,MAAMK,WAAW,GAAGH,cAAc,IAAIC,cAAc;EAEpD,MAAMG,mBAAmB,GAAKC,KAAK,IAAMA,KAAK,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC;EAE9D,MAAMC,YAAY,GAAGA,CAAA,KAAM;IAC1B,MAAMC,OAAO,GACZR,cAAc,IAAIC,WAAW,GAC1BlB,OAAO,CACP;IACAD,EAAE,CAAE,4BAA6B,CAAC,EAClCe,eACA,CAAC,GACDd,OAAO,CACP;IACAD,EAAE,CAAE,8BAA+B,CAAC,EACpCe,eACA,CAAC;;IAEL;IACAZ,KAAK,CAAEuB,OAAO,EAAE,WAAY,CAAC;IAC7Bb,MAAM,CAAEE,eAAgB,CAAC;;IAEzB;IACAH,OAAO,CAAC,CAAC;EACV,CAAC;EAED,oBACCN,IAAA,CAACP,KAAK;IACL4B,KAAK,EAAG3B,EAAE,CAAE,QAAS,CAAG;IACxB4B,cAAc,EAAGhB,OAAS;IAC1BiB,gBAAgB,EAAC,iCAAiC;IAClDC,YAAY,EAAC,qBAAqB;IAClCC,IAAI,EAAC,OAAO;IAAAC,QAAA,eAEZ1B,IAAA;MACC2B,QAAQ,EAAKC,CAAC,IAAM;QACnBA,CAAC,CAACC,cAAc,CAAC,CAAC;QAElB,IAAK,CAAEf,WAAW,EAAG;UACpB;QACD;QAEAK,YAAY,CAAC,CAAC;MACf,CAAG;MAAAO,QAAA,eAEHxB,KAAA,CAACZ,MAAM;QAACwC,OAAO,EAAC,GAAG;QAAAJ,QAAA,gBAClB1B,IAAA,CAACR,WAAW;UACXuC,uBAAuB;UACvBC,qBAAqB;UACrBC,KAAK,EAAGxB,eAAiB;UACzByB,KAAK,EAAGxC,EAAE,CAAE,MAAO,CAAG;UACtByC,IAAI,EACH3B,mBAAmB,GAChBd,EAAE,CACF,wHACA,CAAC,GACD0C,SACH;UACDC,WAAW,EAAGhC,iBAAmB;UACjCiC,QAAQ,EAAG5B,kBAAoB;UAC/B6B,OAAO,EAAGxB;QAAqB,CAC/B,CAAC,eACFb,KAAA,CAACd,MAAM;UAACoD,OAAO,EAAC,OAAO;UAAAd,QAAA,gBACtB1B,IAAA,CAACT,MAAM;YACNyC,qBAAqB;YACrBS,OAAO,EAAC,UAAU;YAClBC,OAAO,EAAGpC,OAAS;YAAAoB,QAAA,EAEjBhC,EAAE,CAAE,QAAS;UAAC,CACT,CAAC,eAETM,IAAA,CAACT,MAAM;YACNyC,qBAAqB;YACrB,iBAAgB,CAAElB,WAAa;YAC/B2B,OAAO,EAAC,SAAS;YACjBE,IAAI,EAAC,QAAQ;YAAAjB,QAAA,EAEXhC,EAAE,CAAE,MAAO;UAAC,CACP,CAAC;QAAA,CACF,CAAC;MAAA,CACF;IAAC,CACJ;EAAC,CACD,CAAC;AAEV","ignoreList":[]}
1
+ {"version":3,"names":["__experimentalHStack","HStack","__experimentalVStack","VStack","Button","TextControl","Modal","__","sprintf","useState","speak","useSelect","useDispatch","store","blockEditorStore","useBlockDisplayInformation","isEmptyString","jsx","_jsx","jsxs","_jsxs","BlockRenameModal","clientId","onClose","editedBlockName","setEditedBlockName","blockInformation","metadata","select","getBlockAttributes","updateBlockAttributes","blockName","name","originalBlockName","title","hasOverridesWarning","bindings","Object","values","some","binding","source","nameHasChanged","undefined","nameIsOriginal","nameIsEmpty","isNameValid","autoSelectInputText","event","target","handleSubmit","newName","message","onRequestClose","overlayClassName","focusOnMount","size","children","onSubmit","e","preventDefault","spacing","__nextHasNoMarginBottom","__next40pxDefaultSize","value","label","help","placeholder","onChange","onFocus","justify","variant","onClick","accessibleWhenDisabled","disabled","type"],"sources":["@wordpress/block-editor/src/components/block-rename/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tTextControl,\n\tModal,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { speak } from '@wordpress/a11y';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useBlockDisplayInformation } from '..';\nimport isEmptyString from './is-empty-string';\n\nexport default function BlockRenameModal( { clientId, onClose } ) {\n\tconst [ editedBlockName, setEditedBlockName ] = useState();\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst { metadata } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tmetadata: getBlockAttributes( clientId )?.metadata,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst blockName = metadata?.name || '';\n\tconst originalBlockName = blockInformation?.title;\n\t// Pattern Overrides is a WordPress-only feature but it also uses the Block Binding API.\n\t// Ideally this should not be inside the block editor package, but we keep it here for simplicity.\n\tconst hasOverridesWarning =\n\t\t!! blockName &&\n\t\t!! metadata?.bindings &&\n\t\tObject.values( metadata.bindings ).some(\n\t\t\t( binding ) => binding.source === 'core/pattern-overrides'\n\t\t);\n\n\tconst nameHasChanged =\n\t\teditedBlockName !== undefined && editedBlockName !== blockName;\n\tconst nameIsOriginal = editedBlockName === originalBlockName;\n\tconst nameIsEmpty = isEmptyString( editedBlockName );\n\n\tconst isNameValid = nameHasChanged || nameIsOriginal;\n\n\tconst autoSelectInputText = ( event ) => event.target.select();\n\n\tconst handleSubmit = () => {\n\t\tconst newName =\n\t\t\tnameIsOriginal || nameIsEmpty ? undefined : editedBlockName;\n\t\tconst message =\n\t\t\tnameIsOriginal || nameIsEmpty\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %s: new name/label for the block */\n\t\t\t\t\t\t__( 'Block name reset to: \"%s\".' ),\n\t\t\t\t\t\teditedBlockName\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: new name/label for the block */\n\t\t\t\t\t\t__( 'Block name changed to: \"%s\".' ),\n\t\t\t\t\t\teditedBlockName\n\t\t\t\t );\n\n\t\t// Must be assertive to immediately announce change.\n\t\tspeak( message, 'assertive' );\n\t\tupdateBlockAttributes( [ clientId ], {\n\t\t\tmetadata: {\n\t\t\t\t...metadata,\n\t\t\t\tname: newName,\n\t\t\t},\n\t\t} );\n\n\t\t// Immediate close avoids ability to hit save multiple times.\n\t\tonClose();\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Rename' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\toverlayClassName=\"block-editor-block-rename-modal\"\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tif ( ! isNameValid ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\thandleSubmit();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<VStack spacing=\"3\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvalue={ editedBlockName ?? blockName }\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\thasOverridesWarning\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'This block allows overrides. Changing the name can cause problems with content entered into instances of this pattern.'\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplaceholder={ originalBlockName }\n\t\t\t\t\t\tonChange={ setEditedBlockName }\n\t\t\t\t\t\tonFocus={ autoSelectInputText }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tdisabled={ ! isNameValid }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,49 +1,19 @@
1
- /* wp:polyfill */
2
1
  /**
3
2
  * WordPress dependencies
4
3
  */
5
4
  import { MenuItem } from '@wordpress/components';
6
- import { useSelect, useDispatch } from '@wordpress/data';
7
5
  import { __ } from '@wordpress/i18n';
8
6
  import { useState } from '@wordpress/element';
9
7
 
10
8
  /**
11
9
  * Internal dependencies
12
10
  */
13
- import { store as blockEditorStore } from '../../store';
14
- import { useBlockDisplayInformation } from '..';
15
- import isEmptyString from './is-empty-string';
16
11
  import BlockRenameModal from './modal';
17
12
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
18
13
  export default function BlockRenameControl({
19
14
  clientId
20
15
  }) {
21
16
  const [renamingBlock, setRenamingBlock] = useState(false);
22
- const {
23
- metadata
24
- } = useSelect(select => {
25
- const {
26
- getBlockAttributes
27
- } = select(blockEditorStore);
28
- const _metadata = getBlockAttributes(clientId)?.metadata;
29
- return {
30
- metadata: _metadata
31
- };
32
- }, [clientId]);
33
- const {
34
- updateBlockAttributes
35
- } = useDispatch(blockEditorStore);
36
- const customName = metadata?.name;
37
- const hasPatternOverrides = !!customName && !!metadata?.bindings && Object.values(metadata.bindings).some(binding => binding.source === 'core/pattern-overrides');
38
- function onChange(newName) {
39
- updateBlockAttributes([clientId], {
40
- metadata: {
41
- ...metadata,
42
- name: newName
43
- }
44
- });
45
- }
46
- const blockInformation = useBlockDisplayInformation(clientId);
47
17
  return /*#__PURE__*/_jsxs(_Fragment, {
48
18
  children: [/*#__PURE__*/_jsx(MenuItem, {
49
19
  onClick: () => {
@@ -53,19 +23,8 @@ export default function BlockRenameControl({
53
23
  "aria-haspopup": "dialog",
54
24
  children: __('Rename')
55
25
  }), renamingBlock && /*#__PURE__*/_jsx(BlockRenameModal, {
56
- blockName: customName || '',
57
- originalBlockName: blockInformation?.title,
58
- hasOverridesWarning: hasPatternOverrides,
59
- onClose: () => setRenamingBlock(false),
60
- onSave: newName => {
61
- // If the new value is the block's original name (e.g. `Group`)
62
- // or it is an empty string then assume the intent is to reset
63
- // the value. Therefore reset the metadata.
64
- if (newName === blockInformation?.title || isEmptyString(newName)) {
65
- newName = undefined;
66
- }
67
- onChange(newName);
68
- }
26
+ clientId: clientId,
27
+ onClose: () => setRenamingBlock(false)
69
28
  })]
70
29
  });
71
30
  }
@@ -1 +1 @@
1
- {"version":3,"names":["MenuItem","useSelect","useDispatch","__","useState","store","blockEditorStore","useBlockDisplayInformation","isEmptyString","BlockRenameModal","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","BlockRenameControl","clientId","renamingBlock","setRenamingBlock","metadata","select","getBlockAttributes","_metadata","updateBlockAttributes","customName","name","hasPatternOverrides","bindings","Object","values","some","binding","source","onChange","newName","blockInformation","children","onClick","blockName","originalBlockName","title","hasOverridesWarning","onClose","onSave","undefined"],"sources":["@wordpress/block-editor/src/components/block-rename/rename-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useBlockDisplayInformation } from '..';\nimport isEmptyString from './is-empty-string';\nimport BlockRenameModal from './modal';\n\nexport default function BlockRenameControl( { clientId } ) {\n\tconst [ renamingBlock, setRenamingBlock ] = useState( false );\n\n\tconst { metadata } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\n\t\t\tconst _metadata = getBlockAttributes( clientId )?.metadata;\n\t\t\treturn {\n\t\t\t\tmetadata: _metadata,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst customName = metadata?.name;\n\tconst hasPatternOverrides =\n\t\t!! customName &&\n\t\t!! metadata?.bindings &&\n\t\tObject.values( metadata.bindings ).some(\n\t\t\t( binding ) => binding.source === 'core/pattern-overrides'\n\t\t);\n\n\tfunction onChange( newName ) {\n\t\tupdateBlockAttributes( [ clientId ], {\n\t\t\tmetadata: {\n\t\t\t\t...metadata,\n\t\t\t\tname: newName,\n\t\t\t},\n\t\t} );\n\t}\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetRenamingBlock( true );\n\t\t\t\t} }\n\t\t\t\taria-expanded={ renamingBlock }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ renamingBlock && (\n\t\t\t\t<BlockRenameModal\n\t\t\t\t\tblockName={ customName || '' }\n\t\t\t\t\toriginalBlockName={ blockInformation?.title }\n\t\t\t\t\thasOverridesWarning={ hasPatternOverrides }\n\t\t\t\t\tonClose={ () => setRenamingBlock( false ) }\n\t\t\t\t\tonSave={ ( newName ) => {\n\t\t\t\t\t\t// If the new value is the block's original name (e.g. `Group`)\n\t\t\t\t\t\t// or it is an empty string then assume the intent is to reset\n\t\t\t\t\t\t// the value. Therefore reset the metadata.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tnewName === blockInformation?.title ||\n\t\t\t\t\t\t\tisEmptyString( newName )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnewName = undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonChange( newName );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,SAASC,0BAA0B,QAAQ,IAAI;AAC/C,OAAOC,aAAa,MAAM,mBAAmB;AAC7C,OAAOC,gBAAgB,MAAM,SAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAEvC,eAAe,SAASC,kBAAkBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC1D,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAGf,QAAQ,CAAE,KAAM,CAAC;EAE7D,MAAM;IAAEgB;EAAS,CAAC,GAAGnB,SAAS,CAC3BoB,MAAM,IAAM;IACb,MAAM;MAAEC;IAAmB,CAAC,GAAGD,MAAM,CAAEf,gBAAiB,CAAC;IAEzD,MAAMiB,SAAS,GAAGD,kBAAkB,CAAEL,QAAS,CAAC,EAAEG,QAAQ;IAC1D,OAAO;MACNA,QAAQ,EAAEG;IACX,CAAC;EACF,CAAC,EACD,CAAEN,QAAQ,CACX,CAAC;EAED,MAAM;IAAEO;EAAsB,CAAC,GAAGtB,WAAW,CAAEI,gBAAiB,CAAC;EAEjE,MAAMmB,UAAU,GAAGL,QAAQ,EAAEM,IAAI;EACjC,MAAMC,mBAAmB,GACxB,CAAC,CAAEF,UAAU,IACb,CAAC,CAAEL,QAAQ,EAAEQ,QAAQ,IACrBC,MAAM,CAACC,MAAM,CAAEV,QAAQ,CAACQ,QAAS,CAAC,CAACG,IAAI,CACpCC,OAAO,IAAMA,OAAO,CAACC,MAAM,KAAK,wBACnC,CAAC;EAEF,SAASC,QAAQA,CAAEC,OAAO,EAAG;IAC5BX,qBAAqB,CAAE,CAAEP,QAAQ,CAAE,EAAE;MACpCG,QAAQ,EAAE;QACT,GAAGA,QAAQ;QACXM,IAAI,EAAES;MACP;IACD,CAAE,CAAC;EACJ;EAEA,MAAMC,gBAAgB,GAAG7B,0BAA0B,CAAEU,QAAS,CAAC;EAE/D,oBACCF,KAAA,CAAAF,SAAA;IAAAwB,QAAA,gBACC1B,IAAA,CAACX,QAAQ;MACRsC,OAAO,EAAGA,CAAA,KAAM;QACfnB,gBAAgB,CAAE,IAAK,CAAC;MACzB,CAAG;MACH,iBAAgBD,aAAe;MAC/B,iBAAc,QAAQ;MAAAmB,QAAA,EAEpBlC,EAAE,CAAE,QAAS;IAAC,CACP,CAAC,EACTe,aAAa,iBACdP,IAAA,CAACF,gBAAgB;MAChB8B,SAAS,EAAGd,UAAU,IAAI,EAAI;MAC9Be,iBAAiB,EAAGJ,gBAAgB,EAAEK,KAAO;MAC7CC,mBAAmB,EAAGf,mBAAqB;MAC3CgB,OAAO,EAAGA,CAAA,KAAMxB,gBAAgB,CAAE,KAAM,CAAG;MAC3CyB,MAAM,EAAKT,OAAO,IAAM;QACvB;QACA;QACA;QACA,IACCA,OAAO,KAAKC,gBAAgB,EAAEK,KAAK,IACnCjC,aAAa,CAAE2B,OAAQ,CAAC,EACvB;UACDA,OAAO,GAAGU,SAAS;QACpB;QAEAX,QAAQ,CAAEC,OAAQ,CAAC;MACpB;IAAG,CACH,CACD;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
1
+ {"version":3,"names":["MenuItem","__","useState","BlockRenameModal","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","BlockRenameControl","clientId","renamingBlock","setRenamingBlock","children","onClick","onClose"],"sources":["@wordpress/block-editor/src/components/block-rename/rename-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockRenameModal from './modal';\n\nexport default function BlockRenameControl( { clientId } ) {\n\tconst [ renamingBlock, setRenamingBlock ] = useState( false );\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetRenamingBlock( true );\n\t\t\t\t} }\n\t\t\t\taria-expanded={ renamingBlock }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ renamingBlock && (\n\t\t\t\t<BlockRenameModal\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tonClose={ () => setRenamingBlock( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C;AACA;AACA;AACA,OAAOC,gBAAgB,MAAM,SAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAEvC,eAAe,SAASC,kBAAkBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC1D,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAGX,QAAQ,CAAE,KAAM,CAAC;EAE7D,oBACCO,KAAA,CAAAF,SAAA;IAAAO,QAAA,gBACCT,IAAA,CAACL,QAAQ;MACRe,OAAO,EAAGA,CAAA,KAAM;QACfF,gBAAgB,CAAE,IAAK,CAAC;MACzB,CAAG;MACH,iBAAgBD,aAAe;MAC/B,iBAAc,QAAQ;MAAAE,QAAA,EAEpBb,EAAE,CAAE,QAAS;IAAC,CACP,CAAC,EACTW,aAAa,iBACdP,IAAA,CAACF,gBAAgB;MAChBQ,QAAQ,EAAGA,QAAU;MACrBK,OAAO,EAAGA,CAAA,KAAMH,gBAAgB,CAAE,KAAM;IAAG,CAC3C,CACD;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
@@ -23,6 +23,7 @@ import BlockSettingsMenuControls from '../block-settings-menu-controls';
23
23
  import BlockParentSelectorMenuItem from './block-parent-selector-menu-item';
24
24
  import { store as blockEditorStore } from '../../store';
25
25
  import { unlock } from '../../lock-unlock';
26
+ import { useNotifyCopy } from '../../utils/use-notify-copy';
26
27
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
27
28
  const POPOVER_PROPS = {
28
29
  className: 'block-editor-block-settings-menu__popover',
@@ -32,12 +33,19 @@ function CopyMenuItem({
32
33
  clientIds,
33
34
  onCopy,
34
35
  label,
35
- shortcut
36
+ shortcut,
37
+ eventType = 'copy'
36
38
  }) {
37
39
  const {
38
40
  getBlocksByClientId
39
41
  } = useSelect(blockEditorStore);
40
- const ref = useCopyToClipboard(() => serialize(getBlocksByClientId(clientIds)), onCopy);
42
+ const notifyCopy = useNotifyCopy();
43
+ const ref = useCopyToClipboard(() => serialize(getBlocksByClientId(clientIds)), () => {
44
+ if (onCopy && eventType === 'copy') {
45
+ onCopy();
46
+ }
47
+ notifyCopy(eventType, clientIds);
48
+ });
41
49
  const copyMenuItemLabel = label ? label : __('Copy');
42
50
  return /*#__PURE__*/_jsx(MenuItem, {
43
51
  ref: ref,
@@ -223,7 +231,8 @@ export function BlockSettingsDropdown({
223
231
  children: [/*#__PURE__*/_jsx(CopyMenuItem, {
224
232
  clientIds: clientIds,
225
233
  onCopy: onCopy,
226
- label: __('Copy styles')
234
+ label: __('Copy styles'),
235
+ eventType: "copyStyles"
227
236
  }), /*#__PURE__*/_jsx(MenuItem, {
228
237
  onClick: onPasteStyles,
229
238
  children: __('Paste styles')
@@ -1 +1 @@
1
- {"version":3,"names":["getBlockType","serialize","store","blocksStore","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","__","displayShortcut","keyboardShortcutsStore","pipe","useCopyToClipboard","BlockActions","CommentIconSlotFill","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","BlockParentSelectorMenuItem","blockEditorStore","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","POPOVER_PROPS","className","placement","CopyMenuItem","clientIds","onCopy","label","shortcut","getBlocksByClientId","ref","copyMenuItemLabel","children","BlockSettingsDropdown","block","__experimentalSelectBlock","props","currentClientId","clientId","count","length","firstBlockClientId","firstParentClientId","parentBlockType","previousBlockClientId","selectedBlockClientIds","openedBlockSettingsMenu","isContentOnly","select","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getOpenedBlockSettingsMenu","getBlockEditingMode","getActiveBlockVariation","_firstParentClientId","parentBlockName","getBlockOrder","setOpenedBlockSettingsMenu","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","shouldShowBlockParentMenuItem","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertBlock","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","isEmpty","icon","popoverProps","noIcons","onClose","Slot","fillProps","parentClientId","primary","onClick","map","child"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport { Children, cloneElement } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport CommentIconSlotFill from '../../components/collab/block-comment-icon-slot';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport BlockParentSelectorMenuItem from './block-parent-selector-menu-item';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( { clientIds, onCopy, label, shortcut } ) {\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst ref = useCopyToClipboard(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\tonCopy\n\t);\n\tconst copyMenuItemLabel = label ? label : __( 'Copy' );\n\treturn (\n\t\t<MenuItem ref={ ref } shortcut={ shortcut }>\n\t\t\t{ copyMenuItemLabel }\n\t\t</MenuItem>\n\t);\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\tchildren,\n\t__experimentalSelectBlock,\n\t...props\n} ) {\n\t// Get the client id of the current block for this menu, if one is set.\n\tconst currentClientId = block?.clientId;\n\tconst count = clientIds.length;\n\tconst firstBlockClientId = clientIds[ 0 ];\n\n\tconst {\n\t\tfirstParentClientId,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t\topenedBlockSettingsMenu,\n\t\tisContentOnly,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetOpenedBlockSettingsMenu,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t\topenedBlockSettingsMenu: getOpenedBlockSettingsMenu(),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( firstBlockClientId ) === 'contentOnly',\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { setOpenedBlockSettingsMenu } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tasync function updateSelectionAfterDuplicate( clientIdsPromise ) {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst ids = await clientIdsPromise;\n\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t}\n\t}\n\n\tfunction updateSelectionAfterRemove() {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t// Focus the first block if there's no previous block nor parent block.\n\t\tif ( ! blockToFocus ) {\n\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t}\n\n\t\t// Only update the selection if the original selection is removed.\n\t\tconst shouldUpdateSelection =\n\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t}\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\n\n\t// When a currentClientId is in use, treat the menu as a controlled component.\n\t// This ensures that only one block settings menu is open at a time.\n\t// This is a temporary solution to work around an issue with `onFocusOutside`\n\t// where it does not allow a dropdown to be closed if focus was never within\n\t// the dropdown to begin with. Examples include a user either CMD+Clicking or\n\t// right clicking into an inactive window.\n\t// See: https://github.com/WordPress/gutenberg/pull/54083\n\tconst open = ! currentClientId\n\t\t? undefined\n\t\t: openedBlockSettingsMenu === currentClientId || false;\n\n\tfunction onToggle( localOpen ) {\n\t\tif ( localOpen && openedBlockSettingsMenu !== currentClientId ) {\n\t\t\tsetOpenedBlockSettingsMenu( currentClientId );\n\t\t} else if (\n\t\t\t! localOpen &&\n\t\t\topenedBlockSettingsMenu &&\n\t\t\topenedBlockSettingsMenu === currentClientId\n\t\t) {\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t}\n\t}\n\n\tconst shouldShowBlockParentMenuItem =\n\t\t! parentBlockIsSelected && !! firstParentClientId;\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanCopyStyles,\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertBlock,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonPasteStyles,\n\t\t\t} ) => {\n\t\t\t\t// It is possible that some plugins register fills for this menu\n\t\t\t\t// even if Core doesn't render anything in the block settings menu.\n\t\t\t\t// in which case, we may want to render the menu anyway.\n\t\t\t\t// That said for now, we can start more conservative.\n\t\t\t\tconst isEmpty =\n\t\t\t\t\t! canRemove &&\n\t\t\t\t\t! canDuplicate &&\n\t\t\t\t\t! canInsertBlock &&\n\t\t\t\t\tisContentOnly;\n\n\t\t\t\tif ( isEmpty ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\t\topen={ open }\n\t\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\t\tnoIcons\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ shouldShowBlockParentMenuItem && (\n\t\t\t\t\t\t\t\t\t\t<BlockParentSelectorMenuItem\n\t\t\t\t\t\t\t\t\t\t\tparentClientId={\n\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType={ parentBlockType }\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\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\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\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primary(\n\t\t\t\t\t\t\t\t\t\t\t'c'\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\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canInsertBlock && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add after' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\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\t<CommentIconSlotFill.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t{ canCopyStyles && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\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{ typeof children === 'function'\n\t\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t);\n\t\t\t} }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getBlockType","serialize","store","blocksStore","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","__","displayShortcut","keyboardShortcutsStore","pipe","useCopyToClipboard","BlockActions","CommentIconSlotFill","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","BlockParentSelectorMenuItem","blockEditorStore","unlock","useNotifyCopy","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","POPOVER_PROPS","className","placement","CopyMenuItem","clientIds","onCopy","label","shortcut","eventType","getBlocksByClientId","notifyCopy","ref","copyMenuItemLabel","children","BlockSettingsDropdown","block","__experimentalSelectBlock","props","currentClientId","clientId","count","length","firstBlockClientId","firstParentClientId","parentBlockType","previousBlockClientId","selectedBlockClientIds","openedBlockSettingsMenu","isContentOnly","select","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getOpenedBlockSettingsMenu","getBlockEditingMode","getActiveBlockVariation","_firstParentClientId","parentBlockName","getBlockOrder","setOpenedBlockSettingsMenu","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","shouldShowBlockParentMenuItem","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertBlock","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","isEmpty","icon","popoverProps","noIcons","onClose","Slot","fillProps","parentClientId","primary","onClick","map","child"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport { Children, cloneElement } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport CommentIconSlotFill from '../../components/collab/block-comment-icon-slot';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport BlockParentSelectorMenuItem from './block-parent-selector-menu-item';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( {\n\tclientIds,\n\tonCopy,\n\tlabel,\n\tshortcut,\n\teventType = 'copy',\n} ) {\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\tconst ref = useCopyToClipboard(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\t() => {\n\t\t\tif ( onCopy && eventType === 'copy' ) {\n\t\t\t\tonCopy();\n\t\t\t}\n\t\t\tnotifyCopy( eventType, clientIds );\n\t\t}\n\t);\n\tconst copyMenuItemLabel = label ? label : __( 'Copy' );\n\treturn (\n\t\t<MenuItem ref={ ref } shortcut={ shortcut }>\n\t\t\t{ copyMenuItemLabel }\n\t\t</MenuItem>\n\t);\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\tchildren,\n\t__experimentalSelectBlock,\n\t...props\n} ) {\n\t// Get the client id of the current block for this menu, if one is set.\n\tconst currentClientId = block?.clientId;\n\tconst count = clientIds.length;\n\tconst firstBlockClientId = clientIds[ 0 ];\n\n\tconst {\n\t\tfirstParentClientId,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t\topenedBlockSettingsMenu,\n\t\tisContentOnly,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetOpenedBlockSettingsMenu,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t\topenedBlockSettingsMenu: getOpenedBlockSettingsMenu(),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( firstBlockClientId ) === 'contentOnly',\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { setOpenedBlockSettingsMenu } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tasync function updateSelectionAfterDuplicate( clientIdsPromise ) {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst ids = await clientIdsPromise;\n\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t}\n\t}\n\n\tfunction updateSelectionAfterRemove() {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t// Focus the first block if there's no previous block nor parent block.\n\t\tif ( ! blockToFocus ) {\n\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t}\n\n\t\t// Only update the selection if the original selection is removed.\n\t\tconst shouldUpdateSelection =\n\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t}\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\n\n\t// When a currentClientId is in use, treat the menu as a controlled component.\n\t// This ensures that only one block settings menu is open at a time.\n\t// This is a temporary solution to work around an issue with `onFocusOutside`\n\t// where it does not allow a dropdown to be closed if focus was never within\n\t// the dropdown to begin with. Examples include a user either CMD+Clicking or\n\t// right clicking into an inactive window.\n\t// See: https://github.com/WordPress/gutenberg/pull/54083\n\tconst open = ! currentClientId\n\t\t? undefined\n\t\t: openedBlockSettingsMenu === currentClientId || false;\n\n\tfunction onToggle( localOpen ) {\n\t\tif ( localOpen && openedBlockSettingsMenu !== currentClientId ) {\n\t\t\tsetOpenedBlockSettingsMenu( currentClientId );\n\t\t} else if (\n\t\t\t! localOpen &&\n\t\t\topenedBlockSettingsMenu &&\n\t\t\topenedBlockSettingsMenu === currentClientId\n\t\t) {\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t}\n\t}\n\n\tconst shouldShowBlockParentMenuItem =\n\t\t! parentBlockIsSelected && !! firstParentClientId;\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanCopyStyles,\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertBlock,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonPasteStyles,\n\t\t\t} ) => {\n\t\t\t\t// It is possible that some plugins register fills for this menu\n\t\t\t\t// even if Core doesn't render anything in the block settings menu.\n\t\t\t\t// in which case, we may want to render the menu anyway.\n\t\t\t\t// That said for now, we can start more conservative.\n\t\t\t\tconst isEmpty =\n\t\t\t\t\t! canRemove &&\n\t\t\t\t\t! canDuplicate &&\n\t\t\t\t\t! canInsertBlock &&\n\t\t\t\t\tisContentOnly;\n\n\t\t\t\tif ( isEmpty ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\t\topen={ open }\n\t\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\t\tnoIcons\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ shouldShowBlockParentMenuItem && (\n\t\t\t\t\t\t\t\t\t\t<BlockParentSelectorMenuItem\n\t\t\t\t\t\t\t\t\t\t\tparentClientId={\n\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType={ parentBlockType }\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\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\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\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primary(\n\t\t\t\t\t\t\t\t\t\t\t'c'\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\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canInsertBlock && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertBefore\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertAfter\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Add after' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\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\t<CommentIconSlotFill.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t{ canCopyStyles && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t\t\teventType=\"copyStyles\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\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{ typeof children === 'function'\n\t\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t);\n\t\t\t} }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],"mappings":"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","ignoreList":[]}
@@ -32,7 +32,7 @@ function StylePreview({
32
32
  const opacity = useRef(new Animated.Value(1)).current;
33
33
  function onLayout() {
34
34
  const columnsNum =
35
- // To indicate scroll availabilty, there is a need to display additional half the column.
35
+ // To indicate scroll availability, there is a need to display additional half the column.
36
36
  Math.floor(BottomSheet.getWidth() / MAX_ITEM_WIDTH) + HALF_COLUMN;
37
37
  setItemWidth(BottomSheet.getWidth() / columnsNum);
38
38
  }
@@ -1 +1 @@
1
- {"version":3,"names":["View","TouchableWithoutFeedback","Text","Dimensions","Animated","Easing","Image","BottomSheet","useState","useEffect","useRef","usePreferredColorSchemeStyle","styles","jsx","_jsx","jsxs","_jsxs","MAX_ITEM_WIDTH","HALF_COLUMN","StylePreview","onPress","isActive","style","url","itemWidth","setItemWidth","label","name","opacity","Value","current","onLayout","columnsNum","Math","floor","getWidth","dimensionsChangeSubscription","addEventListener","remove","labelStyle","labelDark","animateOutline","setValue","timing","toValue","duration","useNativeDriver","easing","linear","start","innerOutlineStyle","innerOutline","innerOutlineDark","getOutline","outlineStyles","map","outlineStyle","index","children","container","width","imageWrapper","outline","image","source","uri","labelSelected"],"sources":["@wordpress/block-editor/src/components/block-styles/preview.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tView,\n\tTouchableWithoutFeedback,\n\tText,\n\tDimensions,\n\tAnimated,\n\tEasing,\n\tImage,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { BottomSheet } from '@wordpress/components';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst MAX_ITEM_WIDTH = 120;\nconst HALF_COLUMN = 0.5;\n\nfunction StylePreview( { onPress, isActive, style, url } ) {\n\tconst [ itemWidth, setItemWidth ] = useState( MAX_ITEM_WIDTH );\n\tconst { label, name } = style;\n\tconst opacity = useRef( new Animated.Value( 1 ) ).current;\n\n\tfunction onLayout() {\n\t\tconst columnsNum =\n\t\t\t// To indicate scroll availabilty, there is a need to display additional half the column.\n\t\t\tMath.floor( BottomSheet.getWidth() / MAX_ITEM_WIDTH ) + HALF_COLUMN;\n\t\tsetItemWidth( BottomSheet.getWidth() / columnsNum );\n\t}\n\n\tuseEffect( () => {\n\t\tonLayout();\n\t\tconst dimensionsChangeSubscription = Dimensions.addEventListener(\n\t\t\t'change',\n\t\t\tonLayout\n\t\t);\n\n\t\treturn () => {\n\t\t\tdimensionsChangeSubscription.remove();\n\t\t};\n\t}, [] );\n\n\tconst labelStyle = usePreferredColorSchemeStyle(\n\t\tstyles.label,\n\t\tstyles.labelDark\n\t);\n\n\tconst animateOutline = () => {\n\t\topacity.setValue( 0 );\n\t\tAnimated.timing( opacity, {\n\t\t\ttoValue: 1,\n\t\t\tduration: 100,\n\t\t\tuseNativeDriver: true,\n\t\t\teasing: Easing.linear,\n\t\t} ).start();\n\t};\n\n\tconst innerOutlineStyle = usePreferredColorSchemeStyle(\n\t\tstyles.innerOutline,\n\t\tstyles.innerOutlineDark\n\t);\n\n\tconst getOutline = ( outlineStyles ) =>\n\t\toutlineStyles.map( ( outlineStyle, index ) => {\n\t\t\treturn (\n\t\t\t\t<Animated.View\n\t\t\t\t\tstyle={ [ outlineStyle, { opacity }, styles[ name ] ] }\n\t\t\t\t\tkey={ index }\n\t\t\t\t/>\n\t\t\t);\n\t\t} );\n\n\treturn (\n\t\t<TouchableWithoutFeedback\n\t\t\tonPress={ () => {\n\t\t\t\tonPress();\n\t\t\t\tanimateOutline();\n\t\t\t} }\n\t\t>\n\t\t\t<View style={ [ styles.container, { width: itemWidth } ] }>\n\t\t\t\t<View style={ styles.imageWrapper }>\n\t\t\t\t\t{ isActive &&\n\t\t\t\t\t\tgetOutline( [ styles.outline, innerOutlineStyle ] ) }\n\t\t\t\t\t<Image\n\t\t\t\t\t\tstyle={ [ styles.image, styles[ name ] ] }\n\t\t\t\t\t\tsource={ { uri: url } }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t\t<Text\n\t\t\t\t\tstyle={ [ labelStyle, isActive && styles.labelSelected ] }\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</Text>\n\t\t\t</View>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\n\nexport default StylePreview;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["View","TouchableWithoutFeedback","Text","Dimensions","Animated","Easing","Image","BottomSheet","useState","useEffect","useRef","usePreferredColorSchemeStyle","styles","jsx","_jsx","jsxs","_jsxs","MAX_ITEM_WIDTH","HALF_COLUMN","StylePreview","onPress","isActive","style","url","itemWidth","setItemWidth","label","name","opacity","Value","current","onLayout","columnsNum","Math","floor","getWidth","dimensionsChangeSubscription","addEventListener","remove","labelStyle","labelDark","animateOutline","setValue","timing","toValue","duration","useNativeDriver","easing","linear","start","innerOutlineStyle","innerOutline","innerOutlineDark","getOutline","outlineStyles","map","outlineStyle","index","children","container","width","imageWrapper","outline","image","source","uri","labelSelected"],"sources":["@wordpress/block-editor/src/components/block-styles/preview.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tView,\n\tTouchableWithoutFeedback,\n\tText,\n\tDimensions,\n\tAnimated,\n\tEasing,\n\tImage,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { BottomSheet } from '@wordpress/components';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst MAX_ITEM_WIDTH = 120;\nconst HALF_COLUMN = 0.5;\n\nfunction StylePreview( { onPress, isActive, style, url } ) {\n\tconst [ itemWidth, setItemWidth ] = useState( MAX_ITEM_WIDTH );\n\tconst { label, name } = style;\n\tconst opacity = useRef( new Animated.Value( 1 ) ).current;\n\n\tfunction onLayout() {\n\t\tconst columnsNum =\n\t\t\t// To indicate scroll availability, there is a need to display additional half the column.\n\t\t\tMath.floor( BottomSheet.getWidth() / MAX_ITEM_WIDTH ) + HALF_COLUMN;\n\t\tsetItemWidth( BottomSheet.getWidth() / columnsNum );\n\t}\n\n\tuseEffect( () => {\n\t\tonLayout();\n\t\tconst dimensionsChangeSubscription = Dimensions.addEventListener(\n\t\t\t'change',\n\t\t\tonLayout\n\t\t);\n\n\t\treturn () => {\n\t\t\tdimensionsChangeSubscription.remove();\n\t\t};\n\t}, [] );\n\n\tconst labelStyle = usePreferredColorSchemeStyle(\n\t\tstyles.label,\n\t\tstyles.labelDark\n\t);\n\n\tconst animateOutline = () => {\n\t\topacity.setValue( 0 );\n\t\tAnimated.timing( opacity, {\n\t\t\ttoValue: 1,\n\t\t\tduration: 100,\n\t\t\tuseNativeDriver: true,\n\t\t\teasing: Easing.linear,\n\t\t} ).start();\n\t};\n\n\tconst innerOutlineStyle = usePreferredColorSchemeStyle(\n\t\tstyles.innerOutline,\n\t\tstyles.innerOutlineDark\n\t);\n\n\tconst getOutline = ( outlineStyles ) =>\n\t\toutlineStyles.map( ( outlineStyle, index ) => {\n\t\t\treturn (\n\t\t\t\t<Animated.View\n\t\t\t\t\tstyle={ [ outlineStyle, { opacity }, styles[ name ] ] }\n\t\t\t\t\tkey={ index }\n\t\t\t\t/>\n\t\t\t);\n\t\t} );\n\n\treturn (\n\t\t<TouchableWithoutFeedback\n\t\t\tonPress={ () => {\n\t\t\t\tonPress();\n\t\t\t\tanimateOutline();\n\t\t\t} }\n\t\t>\n\t\t\t<View style={ [ styles.container, { width: itemWidth } ] }>\n\t\t\t\t<View style={ styles.imageWrapper }>\n\t\t\t\t\t{ isActive &&\n\t\t\t\t\t\tgetOutline( [ styles.outline, innerOutlineStyle ] ) }\n\t\t\t\t\t<Image\n\t\t\t\t\t\tstyle={ [ styles.image, styles[ name ] ] }\n\t\t\t\t\t\tsource={ { uri: url } }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t\t<Text\n\t\t\t\t\tstyle={ [ labelStyle, isActive && styles.labelSelected ] }\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</Text>\n\t\t\t</View>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\n\nexport default StylePreview;\n"],"mappings":"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","ignoreList":[]}
@@ -26,19 +26,19 @@ import BlockVariationTransformations from './block-variation-transformations';
26
26
  */
27
27
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
28
28
  function useGroupedTransforms(possibleBlockTransformations) {
29
- const priorityContentTranformationBlocks = {
29
+ const priorityContentTransformationBlocks = {
30
30
  'core/paragraph': 1,
31
31
  'core/heading': 2,
32
32
  'core/list': 3,
33
33
  'core/quote': 4
34
34
  };
35
35
  const transformations = useMemo(() => {
36
- const priorityTextTranformsNames = Object.keys(priorityContentTranformationBlocks);
36
+ const priorityTextTransformsNames = Object.keys(priorityContentTransformationBlocks);
37
37
  const groupedPossibleTransforms = possibleBlockTransformations.reduce((accumulator, item) => {
38
38
  const {
39
39
  name
40
40
  } = item;
41
- if (priorityTextTranformsNames.includes(name)) {
41
+ if (priorityTextTransformsNames.includes(name)) {
42
42
  accumulator.priorityTextTransformations.push(item);
43
43
  } else {
44
44
  accumulator.restTransformations.push(item);
@@ -67,7 +67,7 @@ function useGroupedTransforms(possibleBlockTransformations) {
67
67
  }, {
68
68
  name: nextName
69
69
  }) => {
70
- return priorityContentTranformationBlocks[currentName] < priorityContentTranformationBlocks[nextName] ? -1 : 1;
70
+ return priorityContentTransformationBlocks[currentName] < priorityContentTransformationBlocks[nextName] ? -1 : 1;
71
71
  });
72
72
  return transformations;
73
73
  }
@@ -102,7 +102,7 @@ const BlockTransformationsMenu = ({
102
102
  transformations: possibleBlockVariationTransformations,
103
103
  blocks: blocks,
104
104
  onSelect: onSelectVariation
105
- }), priorityTextTransformations.map(item => /*#__PURE__*/_jsx(BlockTranformationItem, {
105
+ }), priorityTextTransformations.map(item => /*#__PURE__*/_jsx(BlockTransformationItem, {
106
106
  item: item,
107
107
  onSelect: onSelect,
108
108
  setHoveredTransformItemName: setHoveredTransformItemName
@@ -118,13 +118,13 @@ function RestTransformationItems({
118
118
  onSelect,
119
119
  setHoveredTransformItemName
120
120
  }) {
121
- return restTransformations.map(item => /*#__PURE__*/_jsx(BlockTranformationItem, {
121
+ return restTransformations.map(item => /*#__PURE__*/_jsx(BlockTransformationItem, {
122
122
  item: item,
123
123
  onSelect: onSelect,
124
124
  setHoveredTransformItemName: setHoveredTransformItemName
125
125
  }, item.name));
126
126
  }
127
- function BlockTranformationItem({
127
+ function BlockTransformationItem({
128
128
  item,
129
129
  onSelect,
130
130
  setHoveredTransformItemName
@@ -1 +1 @@
1
- {"version":3,"names":["__","MenuGroup","MenuItem","getBlockMenuDefaultClassName","switchToBlockType","useState","useMemo","BlockIcon","PreviewBlockPopover","BlockVariationTransformations","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useGroupedTransforms","possibleBlockTransformations","priorityContentTranformationBlocks","transformations","priorityTextTranformsNames","Object","keys","groupedPossibleTransforms","reduce","accumulator","item","name","includes","priorityTextTransformations","push","restTransformations","length","singleQuote","pop","sort","currentName","nextName","BlockTransformationsMenu","className","possibleBlockVariationTransformations","onSelect","onSelectVariation","blocks","hoveredTransformItemName","setHoveredTransformItemName","hasBothContentTransformations","restTransformItems","RestTransformationItems","children","label","map","BlockTranformationItem","icon","title","isDisabled","onClick","event","preventDefault","disabled","onMouseLeave","onMouseEnter","showColors"],"sources":["@wordpress/block-editor/src/components/block-switcher/block-transformations-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuGroup, MenuItem } from '@wordpress/components';\nimport {\n\tgetBlockMenuDefaultClassName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport PreviewBlockPopover from './preview-block-popover';\nimport BlockVariationTransformations from './block-variation-transformations';\n\n/**\n * Helper hook to group transformations to display them in a specific order in the UI.\n * For now we group only priority content driven transformations(ex. paragraph -> heading).\n *\n * Later on we could also group 'layout' transformations(ex. paragraph -> group) and\n * display them in different sections.\n *\n * @param {Object[]} possibleBlockTransformations The available block transformations.\n * @return {Record<string, Object[]>} The grouped block transformations.\n */\nfunction useGroupedTransforms( possibleBlockTransformations ) {\n\tconst priorityContentTranformationBlocks = {\n\t\t'core/paragraph': 1,\n\t\t'core/heading': 2,\n\t\t'core/list': 3,\n\t\t'core/quote': 4,\n\t};\n\tconst transformations = useMemo( () => {\n\t\tconst priorityTextTranformsNames = Object.keys(\n\t\t\tpriorityContentTranformationBlocks\n\t\t);\n\t\tconst groupedPossibleTransforms = possibleBlockTransformations.reduce(\n\t\t\t( accumulator, item ) => {\n\t\t\t\tconst { name } = item;\n\t\t\t\tif ( priorityTextTranformsNames.includes( name ) ) {\n\t\t\t\t\taccumulator.priorityTextTransformations.push( item );\n\t\t\t\t} else {\n\t\t\t\t\taccumulator.restTransformations.push( item );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{ priorityTextTransformations: [], restTransformations: [] }\n\t\t);\n\t\t/**\n\t\t * If there is only one priority text transformation and it's a Quote,\n\t\t * is should move to the rest transformations. This is because Quote can\n\t\t * be a container for any block type, so in multi-block selection it will\n\t\t * always be suggested, even for non-text blocks.\n\t\t */\n\t\tif (\n\t\t\tgroupedPossibleTransforms.priorityTextTransformations.length ===\n\t\t\t\t1 &&\n\t\t\tgroupedPossibleTransforms.priorityTextTransformations[ 0 ].name ===\n\t\t\t\t'core/quote'\n\t\t) {\n\t\t\tconst singleQuote =\n\t\t\t\tgroupedPossibleTransforms.priorityTextTransformations.pop();\n\t\t\tgroupedPossibleTransforms.restTransformations.push( singleQuote );\n\t\t}\n\t\treturn groupedPossibleTransforms;\n\t}, [ possibleBlockTransformations ] );\n\n\t// Order the priority text transformations.\n\ttransformations.priorityTextTransformations.sort(\n\t\t( { name: currentName }, { name: nextName } ) => {\n\t\t\treturn priorityContentTranformationBlocks[ currentName ] <\n\t\t\t\tpriorityContentTranformationBlocks[ nextName ]\n\t\t\t\t? -1\n\t\t\t\t: 1;\n\t\t}\n\t);\n\treturn transformations;\n}\n\nconst BlockTransformationsMenu = ( {\n\tclassName,\n\tpossibleBlockTransformations,\n\tpossibleBlockVariationTransformations,\n\tonSelect,\n\tonSelectVariation,\n\tblocks,\n} ) => {\n\tconst [ hoveredTransformItemName, setHoveredTransformItemName ] =\n\t\tuseState();\n\n\tconst { priorityTextTransformations, restTransformations } =\n\t\tuseGroupedTransforms( possibleBlockTransformations );\n\t// We have to check if both content transformations(priority and rest) are set\n\t// in order to create a separate MenuGroup for them.\n\tconst hasBothContentTransformations =\n\t\tpriorityTextTransformations.length && restTransformations.length;\n\tconst restTransformItems = !! restTransformations.length && (\n\t\t<RestTransformationItems\n\t\t\trestTransformations={ restTransformations }\n\t\t\tonSelect={ onSelect }\n\t\t\tsetHoveredTransformItemName={ setHoveredTransformItemName }\n\t\t/>\n\t);\n\treturn (\n\t\t<>\n\t\t\t<MenuGroup label={ __( 'Transform to' ) } className={ className }>\n\t\t\t\t{ hoveredTransformItemName && (\n\t\t\t\t\t<PreviewBlockPopover\n\t\t\t\t\t\tblocks={ switchToBlockType(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\thoveredTransformItemName\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! possibleBlockVariationTransformations?.length && (\n\t\t\t\t\t<BlockVariationTransformations\n\t\t\t\t\t\ttransformations={\n\t\t\t\t\t\t\tpossibleBlockVariationTransformations\n\t\t\t\t\t\t}\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tonSelect={ onSelectVariation }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ priorityTextTransformations.map( ( item ) => (\n\t\t\t\t\t<BlockTranformationItem\n\t\t\t\t\t\tkey={ item.name }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsetHoveredTransformItemName={\n\t\t\t\t\t\t\tsetHoveredTransformItemName\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t\t{ ! hasBothContentTransformations && restTransformItems }\n\t\t\t</MenuGroup>\n\t\t\t{ !! hasBothContentTransformations && (\n\t\t\t\t<MenuGroup className={ className }>\n\t\t\t\t\t{ restTransformItems }\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nfunction RestTransformationItems( {\n\trestTransformations,\n\tonSelect,\n\tsetHoveredTransformItemName,\n} ) {\n\treturn restTransformations.map( ( item ) => (\n\t\t<BlockTranformationItem\n\t\t\tkey={ item.name }\n\t\t\titem={ item }\n\t\t\tonSelect={ onSelect }\n\t\t\tsetHoveredTransformItemName={ setHoveredTransformItemName }\n\t\t/>\n\t) );\n}\n\nfunction BlockTranformationItem( {\n\titem,\n\tonSelect,\n\tsetHoveredTransformItemName,\n} ) {\n\tconst { name, icon, title, isDisabled } = item;\n\treturn (\n\t\t<MenuItem\n\t\t\tclassName={ getBlockMenuDefaultClassName( name ) }\n\t\t\tonClick={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonSelect( name );\n\t\t\t} }\n\t\t\tdisabled={ isDisabled }\n\t\t\tonMouseLeave={ () => setHoveredTransformItemName( null ) }\n\t\t\tonMouseEnter={ () => setHoveredTransformItemName( name ) }\n\t\t>\n\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t{ title }\n\t\t</MenuItem>\n\t);\n}\n\nexport default BlockTransformationsMenu;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","MenuGroup","MenuItem","getBlockMenuDefaultClassName","switchToBlockType","useState","useMemo","BlockIcon","PreviewBlockPopover","BlockVariationTransformations","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useGroupedTransforms","possibleBlockTransformations","priorityContentTransformationBlocks","transformations","priorityTextTransformsNames","Object","keys","groupedPossibleTransforms","reduce","accumulator","item","name","includes","priorityTextTransformations","push","restTransformations","length","singleQuote","pop","sort","currentName","nextName","BlockTransformationsMenu","className","possibleBlockVariationTransformations","onSelect","onSelectVariation","blocks","hoveredTransformItemName","setHoveredTransformItemName","hasBothContentTransformations","restTransformItems","RestTransformationItems","children","label","map","BlockTransformationItem","icon","title","isDisabled","onClick","event","preventDefault","disabled","onMouseLeave","onMouseEnter","showColors"],"sources":["@wordpress/block-editor/src/components/block-switcher/block-transformations-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuGroup, MenuItem } from '@wordpress/components';\nimport {\n\tgetBlockMenuDefaultClassName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport PreviewBlockPopover from './preview-block-popover';\nimport BlockVariationTransformations from './block-variation-transformations';\n\n/**\n * Helper hook to group transformations to display them in a specific order in the UI.\n * For now we group only priority content driven transformations(ex. paragraph -> heading).\n *\n * Later on we could also group 'layout' transformations(ex. paragraph -> group) and\n * display them in different sections.\n *\n * @param {Object[]} possibleBlockTransformations The available block transformations.\n * @return {Record<string, Object[]>} The grouped block transformations.\n */\nfunction useGroupedTransforms( possibleBlockTransformations ) {\n\tconst priorityContentTransformationBlocks = {\n\t\t'core/paragraph': 1,\n\t\t'core/heading': 2,\n\t\t'core/list': 3,\n\t\t'core/quote': 4,\n\t};\n\tconst transformations = useMemo( () => {\n\t\tconst priorityTextTransformsNames = Object.keys(\n\t\t\tpriorityContentTransformationBlocks\n\t\t);\n\t\tconst groupedPossibleTransforms = possibleBlockTransformations.reduce(\n\t\t\t( accumulator, item ) => {\n\t\t\t\tconst { name } = item;\n\t\t\t\tif ( priorityTextTransformsNames.includes( name ) ) {\n\t\t\t\t\taccumulator.priorityTextTransformations.push( item );\n\t\t\t\t} else {\n\t\t\t\t\taccumulator.restTransformations.push( item );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{ priorityTextTransformations: [], restTransformations: [] }\n\t\t);\n\t\t/**\n\t\t * If there is only one priority text transformation and it's a Quote,\n\t\t * is should move to the rest transformations. This is because Quote can\n\t\t * be a container for any block type, so in multi-block selection it will\n\t\t * always be suggested, even for non-text blocks.\n\t\t */\n\t\tif (\n\t\t\tgroupedPossibleTransforms.priorityTextTransformations.length ===\n\t\t\t\t1 &&\n\t\t\tgroupedPossibleTransforms.priorityTextTransformations[ 0 ].name ===\n\t\t\t\t'core/quote'\n\t\t) {\n\t\t\tconst singleQuote =\n\t\t\t\tgroupedPossibleTransforms.priorityTextTransformations.pop();\n\t\t\tgroupedPossibleTransforms.restTransformations.push( singleQuote );\n\t\t}\n\t\treturn groupedPossibleTransforms;\n\t}, [ possibleBlockTransformations ] );\n\n\t// Order the priority text transformations.\n\ttransformations.priorityTextTransformations.sort(\n\t\t( { name: currentName }, { name: nextName } ) => {\n\t\t\treturn priorityContentTransformationBlocks[ currentName ] <\n\t\t\t\tpriorityContentTransformationBlocks[ nextName ]\n\t\t\t\t? -1\n\t\t\t\t: 1;\n\t\t}\n\t);\n\treturn transformations;\n}\n\nconst BlockTransformationsMenu = ( {\n\tclassName,\n\tpossibleBlockTransformations,\n\tpossibleBlockVariationTransformations,\n\tonSelect,\n\tonSelectVariation,\n\tblocks,\n} ) => {\n\tconst [ hoveredTransformItemName, setHoveredTransformItemName ] =\n\t\tuseState();\n\n\tconst { priorityTextTransformations, restTransformations } =\n\t\tuseGroupedTransforms( possibleBlockTransformations );\n\t// We have to check if both content transformations(priority and rest) are set\n\t// in order to create a separate MenuGroup for them.\n\tconst hasBothContentTransformations =\n\t\tpriorityTextTransformations.length && restTransformations.length;\n\tconst restTransformItems = !! restTransformations.length && (\n\t\t<RestTransformationItems\n\t\t\trestTransformations={ restTransformations }\n\t\t\tonSelect={ onSelect }\n\t\t\tsetHoveredTransformItemName={ setHoveredTransformItemName }\n\t\t/>\n\t);\n\treturn (\n\t\t<>\n\t\t\t<MenuGroup label={ __( 'Transform to' ) } className={ className }>\n\t\t\t\t{ hoveredTransformItemName && (\n\t\t\t\t\t<PreviewBlockPopover\n\t\t\t\t\t\tblocks={ switchToBlockType(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\thoveredTransformItemName\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! possibleBlockVariationTransformations?.length && (\n\t\t\t\t\t<BlockVariationTransformations\n\t\t\t\t\t\ttransformations={\n\t\t\t\t\t\t\tpossibleBlockVariationTransformations\n\t\t\t\t\t\t}\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tonSelect={ onSelectVariation }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ priorityTextTransformations.map( ( item ) => (\n\t\t\t\t\t<BlockTransformationItem\n\t\t\t\t\t\tkey={ item.name }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsetHoveredTransformItemName={\n\t\t\t\t\t\t\tsetHoveredTransformItemName\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t\t{ ! hasBothContentTransformations && restTransformItems }\n\t\t\t</MenuGroup>\n\t\t\t{ !! hasBothContentTransformations && (\n\t\t\t\t<MenuGroup className={ className }>\n\t\t\t\t\t{ restTransformItems }\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nfunction RestTransformationItems( {\n\trestTransformations,\n\tonSelect,\n\tsetHoveredTransformItemName,\n} ) {\n\treturn restTransformations.map( ( item ) => (\n\t\t<BlockTransformationItem\n\t\t\tkey={ item.name }\n\t\t\titem={ item }\n\t\t\tonSelect={ onSelect }\n\t\t\tsetHoveredTransformItemName={ setHoveredTransformItemName }\n\t\t/>\n\t) );\n}\n\nfunction BlockTransformationItem( {\n\titem,\n\tonSelect,\n\tsetHoveredTransformItemName,\n} ) {\n\tconst { name, icon, title, isDisabled } = item;\n\treturn (\n\t\t<MenuItem\n\t\t\tclassName={ getBlockMenuDefaultClassName( name ) }\n\t\t\tonClick={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonSelect( name );\n\t\t\t} }\n\t\t\tdisabled={ isDisabled }\n\t\t\tonMouseLeave={ () => setHoveredTransformItemName( null ) }\n\t\t\tonMouseEnter={ () => setHoveredTransformItemName( name ) }\n\t\t>\n\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t{ title }\n\t\t</MenuItem>\n\t);\n}\n\nexport default BlockTransformationsMenu;\n"],"mappings":"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","ignoreList":[]}
@@ -60,14 +60,14 @@ const BlockVariationTransformations = ({
60
60
  blocks: cloneBlock(blocks[0], transformations.find(({
61
61
  name
62
62
  }) => name === hoveredTransformItemName).attributes)
63
- }), transformations?.map(item => /*#__PURE__*/_jsx(BlockVariationTranformationItem, {
63
+ }), transformations?.map(item => /*#__PURE__*/_jsx(BlockVariationTransformationItem, {
64
64
  item: item,
65
65
  onSelect: onSelect,
66
66
  setHoveredTransformItemName: setHoveredTransformItemName
67
67
  }, item.name))]
68
68
  });
69
69
  };
70
- function BlockVariationTranformationItem({
70
+ function BlockVariationTransformationItem({
71
71
  item,
72
72
  onSelect,
73
73
  setHoveredTransformItemName