@wordpress/block-editor 14.0.0 → 14.1.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 (290) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +9 -14
  3. package/build/autocompleters/block.js +1 -1
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-list/use-block-props/index.js +2 -2
  6. package/build/components/block-list/use-block-props/index.js.map +1 -1
  7. package/build/components/block-list/use-in-between-inserter.js +11 -4
  8. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  9. package/build/components/block-settings-menu/block-mode-toggle.js +28 -34
  10. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  11. package/build/components/block-tools/insertion-point.js +14 -3
  12. package/build/components/block-tools/insertion-point.js.map +1 -1
  13. package/build/components/block-tools/use-show-block-tools.js +2 -1
  14. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  15. package/build/components/block-tools/zoom-out-mode-inserters.js +8 -4
  16. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  17. package/build/components/border-radius-control/index.js +1 -0
  18. package/build/components/border-radius-control/index.js.map +1 -1
  19. package/build/components/convert-to-group-buttons/index.js +1 -1
  20. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  21. package/build/components/date-format-picker/index.js +2 -0
  22. package/build/components/date-format-picker/index.js.map +1 -1
  23. package/build/components/font-appearance-control/index.js +3 -0
  24. package/build/components/font-appearance-control/index.js.map +1 -1
  25. package/build/components/font-family/index.js +3 -0
  26. package/build/components/font-family/index.js.map +1 -1
  27. package/build/components/global-styles/background-panel.js +114 -42
  28. package/build/components/global-styles/background-panel.js.map +1 -1
  29. package/build/components/global-styles/get-global-styles-changes.js +3 -1
  30. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  31. package/build/components/global-styles/hooks.js +0 -7
  32. package/build/components/global-styles/hooks.js.map +1 -1
  33. package/build/components/global-styles/index.js +0 -6
  34. package/build/components/global-styles/index.js.map +1 -1
  35. package/build/components/global-styles/use-global-styles-output.js +3 -3
  36. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  37. package/build/components/global-styles/utils.js +8 -24
  38. package/build/components/global-styles/utils.js.map +1 -1
  39. package/build/components/grid/grid-visualizer.js +20 -5
  40. package/build/components/grid/grid-visualizer.js.map +1 -1
  41. package/build/components/height-control/index.js +1 -0
  42. package/build/components/height-control/index.js.map +1 -1
  43. package/build/components/iframe/index.js +4 -2
  44. package/build/components/iframe/index.js.map +1 -1
  45. package/build/components/image-editor/zoom-dropdown.js +11 -7
  46. package/build/components/image-editor/zoom-dropdown.js.map +1 -1
  47. package/build/components/inner-blocks/button-block-appender.js +8 -8
  48. package/build/components/inner-blocks/button-block-appender.js.map +1 -1
  49. package/build/components/inner-blocks/default-block-appender.js +7 -25
  50. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  51. package/build/components/inner-blocks/index.js +9 -11
  52. package/build/components/inner-blocks/index.js.map +1 -1
  53. package/build/components/inserter/library.js +4 -2
  54. package/build/components/inserter/library.js.map +1 -1
  55. package/build/components/inserter/menu.js +30 -12
  56. package/build/components/inserter/menu.js.map +1 -1
  57. package/build/components/inserter/quick-inserter.js +4 -0
  58. package/build/components/inserter/quick-inserter.js.map +1 -1
  59. package/build/components/line-height-control/index.js +3 -0
  60. package/build/components/line-height-control/index.js.map +1 -1
  61. package/build/components/media-placeholder/index.js +9 -4
  62. package/build/components/media-placeholder/index.js.map +1 -1
  63. package/build/components/media-upload/index.native.js +4 -1
  64. package/build/components/media-upload/index.native.js.map +1 -1
  65. package/build/components/multi-selection-inspector/index.js +12 -12
  66. package/build/components/multi-selection-inspector/index.js.map +1 -1
  67. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
  68. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  69. package/build/components/text-alignment-control/index.js +13 -8
  70. package/build/components/text-alignment-control/index.js.map +1 -1
  71. package/build/components/text-decoration-control/index.js +13 -8
  72. package/build/components/text-decoration-control/index.js.map +1 -1
  73. package/build/components/text-transform-control/index.js +13 -8
  74. package/build/components/text-transform-control/index.js.map +1 -1
  75. package/build/components/url-popover/image-url-input-ui.js +2 -0
  76. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  77. package/build/components/use-block-drop-zone/index.js +14 -2
  78. package/build/components/use-block-drop-zone/index.js.map +1 -1
  79. package/build/components/writing-mode-control/index.js +13 -8
  80. package/build/components/writing-mode-control/index.js.map +1 -1
  81. package/build/hooks/background.js +19 -23
  82. package/build/hooks/background.js.map +1 -1
  83. package/build/hooks/block-bindings.js +37 -79
  84. package/build/hooks/block-bindings.js.map +1 -1
  85. package/build/layouts/constrained.js +1 -0
  86. package/build/layouts/constrained.js.map +1 -1
  87. package/build/layouts/flex.js +2 -0
  88. package/build/layouts/flex.js.map +1 -1
  89. package/build/layouts/grid.js +3 -0
  90. package/build/layouts/grid.js.map +1 -1
  91. package/build/private-apis.js +3 -1
  92. package/build/private-apis.js.map +1 -1
  93. package/build/store/private-selectors.js +30 -0
  94. package/build/store/private-selectors.js.map +1 -1
  95. package/build/store/reducer.js +10 -1
  96. package/build/store/reducer.js.map +1 -1
  97. package/build/utils/block-bindings.js +112 -0
  98. package/build/utils/block-bindings.js.map +1 -0
  99. package/build-module/autocompleters/block.js +1 -1
  100. package/build-module/autocompleters/block.js.map +1 -1
  101. package/build-module/components/block-list/use-block-props/index.js +2 -2
  102. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  103. package/build-module/components/block-list/use-in-between-inserter.js +11 -4
  104. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  105. package/build-module/components/block-settings-menu/block-mode-toggle.js +29 -34
  106. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  107. package/build-module/components/block-tools/insertion-point.js +14 -3
  108. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  109. package/build-module/components/block-tools/use-show-block-tools.js +2 -1
  110. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  111. package/build-module/components/block-tools/zoom-out-mode-inserters.js +8 -4
  112. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  113. package/build-module/components/border-radius-control/index.js +1 -0
  114. package/build-module/components/border-radius-control/index.js.map +1 -1
  115. package/build-module/components/convert-to-group-buttons/index.js +1 -1
  116. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  117. package/build-module/components/date-format-picker/index.js +2 -0
  118. package/build-module/components/date-format-picker/index.js.map +1 -1
  119. package/build-module/components/font-appearance-control/index.js +3 -0
  120. package/build-module/components/font-appearance-control/index.js.map +1 -1
  121. package/build-module/components/font-family/index.js +3 -0
  122. package/build-module/components/font-family/index.js.map +1 -1
  123. package/build-module/components/global-styles/background-panel.js +117 -45
  124. package/build-module/components/global-styles/background-panel.js.map +1 -1
  125. package/build-module/components/global-styles/get-global-styles-changes.js +3 -1
  126. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  127. package/build-module/components/global-styles/hooks.js +0 -6
  128. package/build-module/components/global-styles/hooks.js.map +1 -1
  129. package/build-module/components/global-styles/index.js +1 -1
  130. package/build-module/components/global-styles/index.js.map +1 -1
  131. package/build-module/components/global-styles/use-global-styles-output.js +5 -5
  132. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  133. package/build-module/components/global-styles/utils.js +8 -23
  134. package/build-module/components/global-styles/utils.js.map +1 -1
  135. package/build-module/components/grid/grid-visualizer.js +20 -5
  136. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  137. package/build-module/components/height-control/index.js +1 -0
  138. package/build-module/components/height-control/index.js.map +1 -1
  139. package/build-module/components/iframe/index.js +4 -2
  140. package/build-module/components/iframe/index.js.map +1 -1
  141. package/build-module/components/image-editor/zoom-dropdown.js +12 -8
  142. package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
  143. package/build-module/components/inner-blocks/button-block-appender.js +7 -6
  144. package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
  145. package/build-module/components/inner-blocks/default-block-appender.js +6 -23
  146. package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
  147. package/build-module/components/inner-blocks/index.js +9 -11
  148. package/build-module/components/inner-blocks/index.js.map +1 -1
  149. package/build-module/components/inserter/library.js +4 -2
  150. package/build-module/components/inserter/library.js.map +1 -1
  151. package/build-module/components/inserter/menu.js +30 -12
  152. package/build-module/components/inserter/menu.js.map +1 -1
  153. package/build-module/components/inserter/quick-inserter.js +5 -1
  154. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  155. package/build-module/components/line-height-control/index.js +3 -0
  156. package/build-module/components/line-height-control/index.js.map +1 -1
  157. package/build-module/components/media-placeholder/index.js +9 -4
  158. package/build-module/components/media-placeholder/index.js.map +1 -1
  159. package/build-module/components/media-upload/index.native.js +4 -1
  160. package/build-module/components/media-upload/index.native.js.map +1 -1
  161. package/build-module/components/multi-selection-inspector/index.js +12 -12
  162. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  163. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
  164. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  165. package/build-module/components/text-alignment-control/index.js +13 -8
  166. package/build-module/components/text-alignment-control/index.js.map +1 -1
  167. package/build-module/components/text-decoration-control/index.js +13 -8
  168. package/build-module/components/text-decoration-control/index.js.map +1 -1
  169. package/build-module/components/text-transform-control/index.js +13 -8
  170. package/build-module/components/text-transform-control/index.js.map +1 -1
  171. package/build-module/components/url-popover/image-url-input-ui.js +2 -0
  172. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  173. package/build-module/components/use-block-drop-zone/index.js +14 -2
  174. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  175. package/build-module/components/writing-mode-control/index.js +13 -8
  176. package/build-module/components/writing-mode-control/index.js.map +1 -1
  177. package/build-module/hooks/background.js +19 -23
  178. package/build-module/hooks/background.js.map +1 -1
  179. package/build-module/hooks/block-bindings.js +38 -80
  180. package/build-module/hooks/block-bindings.js.map +1 -1
  181. package/build-module/layouts/constrained.js +1 -0
  182. package/build-module/layouts/constrained.js.map +1 -1
  183. package/build-module/layouts/flex.js +2 -0
  184. package/build-module/layouts/flex.js.map +1 -1
  185. package/build-module/layouts/grid.js +3 -0
  186. package/build-module/layouts/grid.js.map +1 -1
  187. package/build-module/private-apis.js +3 -1
  188. package/build-module/private-apis.js.map +1 -1
  189. package/build-module/store/private-selectors.js +27 -0
  190. package/build-module/store/private-selectors.js.map +1 -1
  191. package/build-module/store/reducer.js +9 -1
  192. package/build-module/store/reducer.js.map +1 -1
  193. package/build-module/utils/block-bindings.js +105 -0
  194. package/build-module/utils/block-bindings.js.map +1 -0
  195. package/build-style/content-rtl.css +7 -14
  196. package/build-style/content.css +7 -14
  197. package/build-style/default-editor-styles-rtl.css +2 -2
  198. package/build-style/default-editor-styles.css +2 -2
  199. package/build-style/style-rtl.css +36 -38
  200. package/build-style/style.css +36 -38
  201. package/package.json +32 -32
  202. package/src/autocompleters/block.js +2 -1
  203. package/src/components/block-list/content.scss +5 -13
  204. package/src/components/block-list/use-block-props/index.js +2 -2
  205. package/src/components/block-list/use-in-between-inserter.js +17 -5
  206. package/src/components/block-settings-menu/block-mode-toggle.js +28 -31
  207. package/src/components/block-settings-menu/test/block-mode-toggle.js +26 -23
  208. package/src/components/block-tools/insertion-point.js +11 -0
  209. package/src/components/block-tools/style.scss +1 -1
  210. package/src/components/block-tools/use-show-block-tools.js +4 -1
  211. package/src/components/block-tools/zoom-out-mode-inserters.js +7 -1
  212. package/src/components/block-variation-transforms/style.scss +1 -1
  213. package/src/components/border-radius-control/index.js +1 -0
  214. package/src/components/border-radius-control/style.scss +0 -10
  215. package/src/components/convert-to-group-buttons/index.js +1 -1
  216. package/src/components/date-format-picker/index.js +2 -0
  217. package/src/components/font-appearance-control/index.js +3 -0
  218. package/src/components/font-family/README.md +11 -2
  219. package/src/components/font-family/index.js +3 -0
  220. package/src/components/global-styles/background-panel.js +132 -53
  221. package/src/components/global-styles/get-global-styles-changes.js +4 -1
  222. package/src/components/global-styles/hooks.js +0 -5
  223. package/src/components/global-styles/index.js +0 -1
  224. package/src/components/global-styles/style.scss +13 -2
  225. package/src/components/global-styles/test/use-global-styles-output.js +20 -4
  226. package/src/components/global-styles/use-global-styles-output.js +5 -6
  227. package/src/components/global-styles/utils.js +7 -29
  228. package/src/components/grid/grid-visualizer.js +22 -7
  229. package/src/components/height-control/index.js +1 -0
  230. package/src/components/iframe/index.js +4 -2
  231. package/src/components/image-editor/zoom-dropdown.js +17 -9
  232. package/src/components/inner-blocks/button-block-appender.js +5 -7
  233. package/src/components/inner-blocks/default-block-appender.js +4 -23
  234. package/src/components/inner-blocks/index.js +10 -9
  235. package/src/components/inserter/library.js +2 -0
  236. package/src/components/inserter/menu.js +32 -27
  237. package/src/components/inserter/quick-inserter.js +4 -1
  238. package/src/components/inserter/style.scss +1 -1
  239. package/src/components/inserter-list-item/style.scss +1 -0
  240. package/src/components/line-height-control/README.md +7 -0
  241. package/src/components/line-height-control/index.js +3 -0
  242. package/src/components/link-control/style.scss +1 -1
  243. package/src/components/media-placeholder/index.js +12 -7
  244. package/src/components/media-upload/README.md +2 -0
  245. package/src/components/media-upload/index.native.js +2 -0
  246. package/src/components/multi-selection-inspector/index.js +8 -9
  247. package/src/components/responsive-block-control/README.md +1 -0
  248. package/src/components/responsive-block-control/test/index.js +1 -0
  249. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +8 -4
  250. package/src/components/spacing-sizes-control/style.scss +16 -16
  251. package/src/components/text-alignment-control/index.js +20 -8
  252. package/src/components/text-decoration-control/index.js +20 -8
  253. package/src/components/text-decoration-control/stories/index.story.js +0 -4
  254. package/src/components/text-transform-control/index.js +20 -8
  255. package/src/components/text-transform-control/stories/index.story.js +0 -4
  256. package/src/components/url-input/style.scss +2 -2
  257. package/src/components/url-popover/image-url-input-ui.js +2 -0
  258. package/src/components/use-block-drop-zone/index.js +21 -3
  259. package/src/components/writing-mode-control/index.js +20 -8
  260. package/src/hooks/background.js +21 -27
  261. package/src/hooks/block-bindings.js +27 -84
  262. package/src/hooks/block-bindings.scss +1 -1
  263. package/src/hooks/test/background.js +60 -0
  264. package/src/layouts/constrained.js +1 -0
  265. package/src/layouts/flex.js +2 -0
  266. package/src/layouts/grid.js +3 -0
  267. package/src/private-apis.js +2 -0
  268. package/src/store/private-selectors.js +36 -0
  269. package/src/store/reducer.js +7 -0
  270. package/src/store/test/private-selectors.js +89 -0
  271. package/src/style.scss +0 -1
  272. package/src/utils/block-bindings.js +98 -0
  273. package/src/utils/test/transform-styles.js +49 -0
  274. package/build/components/global-styles/theme-file-uri-utils.js +0 -21
  275. package/build/components/global-styles/theme-file-uri-utils.js.map +0 -1
  276. package/build/components/inner-blocks/with-client-id.js +0 -28
  277. package/build/components/inner-blocks/with-client-id.js.map +0 -1
  278. package/build/components/segmented-text-control/index.js +0 -63
  279. package/build/components/segmented-text-control/index.js.map +0 -1
  280. package/build-module/components/global-styles/theme-file-uri-utils.js +0 -15
  281. package/build-module/components/global-styles/theme-file-uri-utils.js.map +0 -1
  282. package/build-module/components/inner-blocks/with-client-id.js +0 -21
  283. package/build-module/components/inner-blocks/with-client-id.js.map +0 -1
  284. package/build-module/components/segmented-text-control/index.js +0 -58
  285. package/build-module/components/segmented-text-control/index.js.map +0 -1
  286. package/src/components/global-styles/test/theme-file-uri-utils.js +0 -41
  287. package/src/components/global-styles/theme-file-uri-utils.js +0 -18
  288. package/src/components/inner-blocks/with-client-id.js +0 -19
  289. package/src/components/segmented-text-control/index.js +0 -63
  290. package/src/components/segmented-text-control/style.scss +0 -15
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useBlockBindingsUtils = useBlockBindingsUtils;
7
+ var _data = require("@wordpress/data");
8
+ var _store = require("../store");
9
+ var _blockEdit = require("../components/block-edit");
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+
14
+ /**
15
+ * Internal dependencies
16
+ */
17
+
18
+ function useBlockBindingsUtils() {
19
+ const {
20
+ clientId
21
+ } = (0, _blockEdit.useBlockEditContext)();
22
+ const {
23
+ updateBlockAttributes
24
+ } = (0, _data.useDispatch)(_store.store);
25
+ const {
26
+ getBlockAttributes
27
+ } = (0, _data.useSelect)(_store.store);
28
+
29
+ /**
30
+ * Updates the value of the bindings connected to block attributes.
31
+ * It removes the binding when the new value is `undefined`.
32
+ *
33
+ * @param {Object} bindings Bindings including the attributes to update and the new object.
34
+ * @param {string} bindings.source The source name to connect to.
35
+ * @param {Object} [bindings.args] Object containing the arguments needed by the source.
36
+ *
37
+ * @example
38
+ * ```js
39
+ * import { useBlockBindingsUtils } from '@wordpress/block-editor'
40
+ *
41
+ * const { updateBlockBindings } = useBlockBindingsUtils();
42
+ * updateBlockBindings( {
43
+ * url: {
44
+ * source: 'core/post-meta',
45
+ * args: {
46
+ * key: 'url_custom_field',
47
+ * },
48
+ * },
49
+ * alt: {
50
+ * source: 'core/post-meta',
51
+ * args: {
52
+ * key: 'text_custom_field',
53
+ * },
54
+ * }
55
+ * } );
56
+ * ```
57
+ */
58
+ const updateBlockBindings = bindings => {
59
+ const {
60
+ metadata
61
+ } = getBlockAttributes(clientId);
62
+ const newBindings = {
63
+ ...metadata?.bindings
64
+ };
65
+ Object.entries(bindings).forEach(([attribute, binding]) => {
66
+ if (!binding && newBindings[attribute]) {
67
+ delete newBindings[attribute];
68
+ return;
69
+ }
70
+ newBindings[attribute] = binding;
71
+ });
72
+ const newMetadata = {
73
+ ...metadata,
74
+ bindings: newBindings
75
+ };
76
+ if (Object.keys(newMetadata.bindings).length === 0) {
77
+ delete newMetadata.bindings;
78
+ }
79
+ updateBlockAttributes(clientId, {
80
+ metadata: Object.keys(newMetadata).length === 0 ? undefined : newMetadata
81
+ });
82
+ };
83
+
84
+ /**
85
+ * Removes the bindings property of the `metadata` attribute.
86
+ *
87
+ * @example
88
+ * ```js
89
+ * import { useBlockBindingsUtils } from '@wordpress/block-editor'
90
+ *
91
+ * const { removeAllBlockBindings } = useBlockBindingsUtils();
92
+ * removeAllBlockBindings();
93
+ * ```
94
+ */
95
+ const removeAllBlockBindings = () => {
96
+ const {
97
+ metadata
98
+ } = getBlockAttributes(clientId);
99
+ const newMetadata = {
100
+ ...metadata
101
+ };
102
+ delete newMetadata.bindings;
103
+ updateBlockAttributes(clientId, {
104
+ metadata: Object.keys(newMetadata).length === 0 ? undefined : newMetadata
105
+ });
106
+ };
107
+ return {
108
+ updateBlockBindings,
109
+ removeAllBlockBindings
110
+ };
111
+ }
112
+ //# sourceMappingURL=block-bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_data","require","_store","_blockEdit","useBlockBindingsUtils","clientId","useBlockEditContext","updateBlockAttributes","useDispatch","blockEditorStore","getBlockAttributes","useSelect","updateBlockBindings","bindings","metadata","newBindings","Object","entries","forEach","attribute","binding","newMetadata","keys","length","undefined","removeAllBlockBindings"],"sources":["@wordpress/block-editor/src/utils/block-bindings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { useBlockEditContext } from '../components/block-edit';\n\nexport function useBlockBindingsUtils() {\n\tconst { clientId } = useBlockEditContext();\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { getBlockAttributes } = useSelect( blockEditorStore );\n\n\t/**\n\t * Updates the value of the bindings connected to block attributes.\n\t * It removes the binding when the new value is `undefined`.\n\t *\n\t * @param {Object} bindings Bindings including the attributes to update and the new object.\n\t * @param {string} bindings.source The source name to connect to.\n\t * @param {Object} [bindings.args] Object containing the arguments needed by the source.\n\t *\n\t * @example\n\t * ```js\n\t * import { useBlockBindingsUtils } from '@wordpress/block-editor'\n\t *\n\t * const { updateBlockBindings } = useBlockBindingsUtils();\n\t * updateBlockBindings( {\n\t * url: {\n\t * source: 'core/post-meta',\n\t * args: {\n\t * key: 'url_custom_field',\n\t * },\n\t * \t },\n\t * alt: {\n\t * source: 'core/post-meta',\n\t * args: {\n\t * key: 'text_custom_field',\n\t * },\n\t * \t }\n\t * } );\n\t * ```\n\t */\n\tconst updateBlockBindings = ( bindings ) => {\n\t\tconst { metadata } = getBlockAttributes( clientId );\n\t\tconst newBindings = { ...metadata?.bindings };\n\t\tObject.entries( bindings ).forEach( ( [ attribute, binding ] ) => {\n\t\t\tif ( ! binding && newBindings[ attribute ] ) {\n\t\t\t\tdelete newBindings[ attribute ];\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tnewBindings[ attribute ] = binding;\n\t\t} );\n\n\t\tconst newMetadata = {\n\t\t\t...metadata,\n\t\t\tbindings: newBindings,\n\t\t};\n\n\t\tif ( Object.keys( newMetadata.bindings ).length === 0 ) {\n\t\t\tdelete newMetadata.bindings;\n\t\t}\n\n\t\tupdateBlockAttributes( clientId, {\n\t\t\tmetadata:\n\t\t\t\tObject.keys( newMetadata ).length === 0\n\t\t\t\t\t? undefined\n\t\t\t\t\t: newMetadata,\n\t\t} );\n\t};\n\n\t/**\n\t * Removes the bindings property of the `metadata` attribute.\n\t *\n\t * @example\n\t * ```js\n\t * import { useBlockBindingsUtils } from '@wordpress/block-editor'\n\t *\n\t * const { removeAllBlockBindings } = useBlockBindingsUtils();\n\t * removeAllBlockBindings();\n\t * ```\n\t */\n\tconst removeAllBlockBindings = () => {\n\t\tconst { metadata } = getBlockAttributes( clientId );\n\t\tconst newMetadata = { ...metadata };\n\t\tdelete newMetadata.bindings;\n\t\tupdateBlockAttributes( clientId, {\n\t\t\tmetadata:\n\t\t\t\tObject.keys( newMetadata ).length === 0\n\t\t\t\t\t? undefined\n\t\t\t\t\t: newMetadata,\n\t\t} );\n\t};\n\n\treturn { updateBlockBindings, removeAllBlockBindings };\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAIO,SAASG,qBAAqBA,CAAA,EAAG;EACvC,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAC,8BAAmB,EAAC,CAAC;EAC1C,MAAM;IAAEC;EAAsB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,YAAiB,CAAC;EACjE,MAAM;IAAEC;EAAmB,CAAC,GAAG,IAAAC,eAAS,EAAEF,YAAiB,CAAC;;EAE5D;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACC,MAAMG,mBAAmB,GAAKC,QAAQ,IAAM;IAC3C,MAAM;MAAEC;IAAS,CAAC,GAAGJ,kBAAkB,CAAEL,QAAS,CAAC;IACnD,MAAMU,WAAW,GAAG;MAAE,GAAGD,QAAQ,EAAED;IAAS,CAAC;IAC7CG,MAAM,CAACC,OAAO,CAAEJ,QAAS,CAAC,CAACK,OAAO,CAAE,CAAE,CAAEC,SAAS,EAAEC,OAAO,CAAE,KAAM;MACjE,IAAK,CAAEA,OAAO,IAAIL,WAAW,CAAEI,SAAS,CAAE,EAAG;QAC5C,OAAOJ,WAAW,CAAEI,SAAS,CAAE;QAC/B;MACD;MACAJ,WAAW,CAAEI,SAAS,CAAE,GAAGC,OAAO;IACnC,CAAE,CAAC;IAEH,MAAMC,WAAW,GAAG;MACnB,GAAGP,QAAQ;MACXD,QAAQ,EAAEE;IACX,CAAC;IAED,IAAKC,MAAM,CAACM,IAAI,CAAED,WAAW,CAACR,QAAS,CAAC,CAACU,MAAM,KAAK,CAAC,EAAG;MACvD,OAAOF,WAAW,CAACR,QAAQ;IAC5B;IAEAN,qBAAqB,CAAEF,QAAQ,EAAE;MAChCS,QAAQ,EACPE,MAAM,CAACM,IAAI,CAAED,WAAY,CAAC,CAACE,MAAM,KAAK,CAAC,GACpCC,SAAS,GACTH;IACL,CAAE,CAAC;EACJ,CAAC;;EAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACC,MAAMI,sBAAsB,GAAGA,CAAA,KAAM;IACpC,MAAM;MAAEX;IAAS,CAAC,GAAGJ,kBAAkB,CAAEL,QAAS,CAAC;IACnD,MAAMgB,WAAW,GAAG;MAAE,GAAGP;IAAS,CAAC;IACnC,OAAOO,WAAW,CAACR,QAAQ;IAC3BN,qBAAqB,CAAEF,QAAQ,EAAE;MAChCS,QAAQ,EACPE,MAAM,CAACM,IAAI,CAAED,WAAY,CAAC,CAACE,MAAM,KAAK,CAAC,GACpCC,SAAS,GACTH;IACL,CAAE,CAAC;EACJ,CAAC;EAED,OAAO;IAAET,mBAAmB;IAAEa;EAAuB,CAAC;AACvD","ignoreList":[]}
@@ -52,7 +52,7 @@ function createBlockCompleter() {
52
52
  prioritizedBlocks: getBlockListSettings(_rootClientId)?.prioritizedInserterBlocks
53
53
  };
54
54
  }, []);
55
- const [items, categories, collections] = useBlockTypesState(rootClientId, noop);
55
+ const [items, categories, collections] = useBlockTypesState(rootClientId, noop, true);
56
56
  const filteredItems = useMemo(() => {
57
57
  const initialFilteredItems = !!filterValue.trim() ? searchBlockItems(items, categories, collections, filterValue) : orderInserterBlockItems(orderBy(items, 'frecency', 'desc'), prioritizedBlocks);
58
58
  return initialFilteredItems.filter(item => item.name !== selectedBlockName).slice(0, SHOWN_BLOCK_TYPES);
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","createBlock","createBlocksFromInnerBlocksTemplate","parse","useMemo","searchBlockItems","useBlockTypesState","BlockIcon","store","blockEditorStore","orderBy","orderInserterBlockItems","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","noop","SHOWN_BLOCK_TYPES","createBlockCompleter","name","className","triggerPrefix","useItems","filterValue","rootClientId","selectedBlockName","prioritizedBlocks","select","getSelectedBlockClientId","getBlockName","getBlockListSettings","getBlockRootClientId","selectedBlockClientId","_rootClientId","prioritizedInserterBlocks","items","categories","collections","filteredItems","initialFilteredItems","trim","filter","item","slice","options","map","blockItem","title","icon","isDisabled","key","id","value","label","children","showColors","allowContext","before","after","test","getOptionCompletion","inserterItem","initialAttributes","innerBlocks","syncStatus","content","action","__unstableSkipMigrationLogs"],"sources":["@wordpress/block-editor/src/autocompleters/block.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tparse,\n} from '@wordpress/blocks';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { searchBlockItems } from '../components/inserter/search-items';\nimport useBlockTypesState from '../components/inserter/hooks/use-block-types-state';\nimport BlockIcon from '../components/block-icon';\nimport { store as blockEditorStore } from '../store';\nimport { orderBy } from '../utils/sorting';\nimport { orderInserterBlockItems } from '../utils/order-inserter-block-items';\n\nconst noop = () => {};\nconst SHOWN_BLOCK_TYPES = 9;\n\n/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */\n\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @return {WPCompleter} A blocks completer.\n */\nfunction createBlockCompleter() {\n\treturn {\n\t\tname: 'blocks',\n\t\tclassName: 'block-editor-autocompleters__block',\n\t\ttriggerPrefix: '/',\n\n\t\tuseItems( filterValue ) {\n\t\t\tconst { rootClientId, selectedBlockName, prioritizedBlocks } =\n\t\t\t\tuseSelect( ( select ) => {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\t\t\tgetBlockName,\n\t\t\t\t\t\tgetBlockListSettings,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\t\t\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\t\t\tconst _rootClientId = getBlockRootClientId(\n\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tselectedBlockName: selectedBlockClientId\n\t\t\t\t\t\t\t? getBlockName( selectedBlockClientId )\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\trootClientId: _rootClientId,\n\t\t\t\t\t\tprioritizedBlocks:\n\t\t\t\t\t\t\tgetBlockListSettings( _rootClientId )\n\t\t\t\t\t\t\t\t?.prioritizedInserterBlocks,\n\t\t\t\t\t};\n\t\t\t\t}, [] );\n\t\t\tconst [ items, categories, collections ] = useBlockTypesState(\n\t\t\t\trootClientId,\n\t\t\t\tnoop\n\t\t\t);\n\n\t\t\tconst filteredItems = useMemo( () => {\n\t\t\t\tconst initialFilteredItems = !! filterValue.trim()\n\t\t\t\t\t? searchBlockItems(\n\t\t\t\t\t\t\titems,\n\t\t\t\t\t\t\tcategories,\n\t\t\t\t\t\t\tcollections,\n\t\t\t\t\t\t\tfilterValue\n\t\t\t\t\t )\n\t\t\t\t\t: orderInserterBlockItems(\n\t\t\t\t\t\t\torderBy( items, 'frecency', 'desc' ),\n\t\t\t\t\t\t\tprioritizedBlocks\n\t\t\t\t\t );\n\n\t\t\t\treturn initialFilteredItems\n\t\t\t\t\t.filter( ( item ) => item.name !== selectedBlockName )\n\t\t\t\t\t.slice( 0, SHOWN_BLOCK_TYPES );\n\t\t\t}, [\n\t\t\t\tfilterValue,\n\t\t\t\tselectedBlockName,\n\t\t\t\titems,\n\t\t\t\tcategories,\n\t\t\t\tcollections,\n\t\t\t\tprioritizedBlocks,\n\t\t\t] );\n\n\t\t\tconst options = useMemo(\n\t\t\t\t() =>\n\t\t\t\t\tfilteredItems.map( ( blockItem ) => {\n\t\t\t\t\t\tconst { title, icon, isDisabled } = blockItem;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tkey: `block-${ blockItem.id }`,\n\t\t\t\t\t\t\tvalue: blockItem,\n\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\tkey=\"icon\"\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tisDisabled,\n\t\t\t\t\t\t};\n\t\t\t\t\t} ),\n\t\t\t\t[ filteredItems ]\n\t\t\t);\n\n\t\t\treturn [ options ];\n\t\t},\n\t\tallowContext( before, after ) {\n\t\t\treturn ! ( /\\S/.test( before ) || /\\S/.test( after ) );\n\t\t},\n\t\tgetOptionCompletion( inserterItem ) {\n\t\t\tconst {\n\t\t\t\tname,\n\t\t\t\tinitialAttributes,\n\t\t\t\tinnerBlocks,\n\t\t\t\tsyncStatus,\n\t\t\t\tcontent,\n\t\t\t} = inserterItem;\n\n\t\t\treturn {\n\t\t\t\taction: 'replace',\n\t\t\t\tvalue:\n\t\t\t\t\tsyncStatus === 'unsynced'\n\t\t\t\t\t\t? parse( content, {\n\t\t\t\t\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: createBlock(\n\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\tinitialAttributes,\n\t\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ),\n\t\t\t};\n\t\t},\n\t};\n}\n\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @return {WPCompleter} A blocks completer.\n */\nexport default createBlockCompleter();\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useSelect","createBlock","createBlocksFromInnerBlocksTemplate","parse","useMemo","searchBlockItems","useBlockTypesState","BlockIcon","store","blockEditorStore","orderBy","orderInserterBlockItems","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","noop","SHOWN_BLOCK_TYPES","createBlockCompleter","name","className","triggerPrefix","useItems","filterValue","rootClientId","selectedBlockName","prioritizedBlocks","select","getSelectedBlockClientId","getBlockName","getBlockListSettings","getBlockRootClientId","selectedBlockClientId","_rootClientId","prioritizedInserterBlocks","items","categories","collections","filteredItems","initialFilteredItems","trim","filter","item","slice","options","map","blockItem","title","icon","isDisabled","key","id","value","label","children","showColors","allowContext","before","after","test","getOptionCompletion","inserterItem","initialAttributes","innerBlocks","syncStatus","content","action","__unstableSkipMigrationLogs"],"sources":["@wordpress/block-editor/src/autocompleters/block.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tparse,\n} from '@wordpress/blocks';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { searchBlockItems } from '../components/inserter/search-items';\nimport useBlockTypesState from '../components/inserter/hooks/use-block-types-state';\nimport BlockIcon from '../components/block-icon';\nimport { store as blockEditorStore } from '../store';\nimport { orderBy } from '../utils/sorting';\nimport { orderInserterBlockItems } from '../utils/order-inserter-block-items';\n\nconst noop = () => {};\nconst SHOWN_BLOCK_TYPES = 9;\n\n/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */\n\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @return {WPCompleter} A blocks completer.\n */\nfunction createBlockCompleter() {\n\treturn {\n\t\tname: 'blocks',\n\t\tclassName: 'block-editor-autocompleters__block',\n\t\ttriggerPrefix: '/',\n\n\t\tuseItems( filterValue ) {\n\t\t\tconst { rootClientId, selectedBlockName, prioritizedBlocks } =\n\t\t\t\tuseSelect( ( select ) => {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\t\t\tgetBlockName,\n\t\t\t\t\t\tgetBlockListSettings,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\t\t\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\t\t\tconst _rootClientId = getBlockRootClientId(\n\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tselectedBlockName: selectedBlockClientId\n\t\t\t\t\t\t\t? getBlockName( selectedBlockClientId )\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\trootClientId: _rootClientId,\n\t\t\t\t\t\tprioritizedBlocks:\n\t\t\t\t\t\t\tgetBlockListSettings( _rootClientId )\n\t\t\t\t\t\t\t\t?.prioritizedInserterBlocks,\n\t\t\t\t\t};\n\t\t\t\t}, [] );\n\t\t\tconst [ items, categories, collections ] = useBlockTypesState(\n\t\t\t\trootClientId,\n\t\t\t\tnoop,\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\tconst filteredItems = useMemo( () => {\n\t\t\t\tconst initialFilteredItems = !! filterValue.trim()\n\t\t\t\t\t? searchBlockItems(\n\t\t\t\t\t\t\titems,\n\t\t\t\t\t\t\tcategories,\n\t\t\t\t\t\t\tcollections,\n\t\t\t\t\t\t\tfilterValue\n\t\t\t\t\t )\n\t\t\t\t\t: orderInserterBlockItems(\n\t\t\t\t\t\t\torderBy( items, 'frecency', 'desc' ),\n\t\t\t\t\t\t\tprioritizedBlocks\n\t\t\t\t\t );\n\n\t\t\t\treturn initialFilteredItems\n\t\t\t\t\t.filter( ( item ) => item.name !== selectedBlockName )\n\t\t\t\t\t.slice( 0, SHOWN_BLOCK_TYPES );\n\t\t\t}, [\n\t\t\t\tfilterValue,\n\t\t\t\tselectedBlockName,\n\t\t\t\titems,\n\t\t\t\tcategories,\n\t\t\t\tcollections,\n\t\t\t\tprioritizedBlocks,\n\t\t\t] );\n\n\t\t\tconst options = useMemo(\n\t\t\t\t() =>\n\t\t\t\t\tfilteredItems.map( ( blockItem ) => {\n\t\t\t\t\t\tconst { title, icon, isDisabled } = blockItem;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tkey: `block-${ blockItem.id }`,\n\t\t\t\t\t\t\tvalue: blockItem,\n\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\tkey=\"icon\"\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tisDisabled,\n\t\t\t\t\t\t};\n\t\t\t\t\t} ),\n\t\t\t\t[ filteredItems ]\n\t\t\t);\n\n\t\t\treturn [ options ];\n\t\t},\n\t\tallowContext( before, after ) {\n\t\t\treturn ! ( /\\S/.test( before ) || /\\S/.test( after ) );\n\t\t},\n\t\tgetOptionCompletion( inserterItem ) {\n\t\t\tconst {\n\t\t\t\tname,\n\t\t\t\tinitialAttributes,\n\t\t\t\tinnerBlocks,\n\t\t\t\tsyncStatus,\n\t\t\t\tcontent,\n\t\t\t} = inserterItem;\n\n\t\t\treturn {\n\t\t\t\taction: 'replace',\n\t\t\t\tvalue:\n\t\t\t\t\tsyncStatus === 'unsynced'\n\t\t\t\t\t\t? parse( content, {\n\t\t\t\t\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: createBlock(\n\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\tinitialAttributes,\n\t\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ),\n\t\t\t};\n\t\t},\n\t};\n}\n\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @return {WPCompleter} A blocks completer.\n */\nexport default createBlockCompleter();\n"],"mappings":"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","ignoreList":[]}
@@ -46,13 +46,13 @@ import { canBindBlock } from '../../../hooks/use-bindings-attributes';
46
46
  *
47
47
  * export default function Edit() {
48
48
  *
49
- * const blockProps = useBlockProps(
49
+ * const blockProps = useBlockProps( {
50
50
  * className: 'my-custom-class',
51
51
  * style: {
52
52
  * color: '#222222',
53
53
  * backgroundColor: '#eeeeee'
54
54
  * }
55
- * )
55
+ * } )
56
56
  *
57
57
  * return (
58
58
  * <div { ...blockProps }>
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useContext","__","sprintf","__unstableGetBlockProps","getBlockProps","useMergeRefs","useDisabled","warning","useMovingAnimation","PrivateBlockContext","useFocusFirstElement","useIsHovered","blockBindingsKey","useBlockEditContext","useFocusHandler","useEventHandlers","useNavModeExit","useBlockRefProvider","useIntersectionObserver","useScrollIntoView","useFlashEditableBlocks","canBindBlock","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","index","mode","name","blockApiVersion","blockTitle","isSelected","isSubtreeDisabled","hasOverlay","initialPosition","blockEditingMode","isHighlighted","isMultiSelected","isPartiallySelected","isReusable","isDragging","hasChildSelected","isBlockMovingMode","canInsertMovingBlock","isEditingDisabled","hasEditableOutline","isTemporarilyEditingAsBlocks","defaultClassName","templateLock","blockLabel","htmlSuffix","mergedRefs","ref","triggerAnimationOnChange","isDisabled","isEnabled","blockEditContext","hasBlockBindings","bindingsStyle","globalThis","SCRIPT_DEBUG","hasNegativeMargin","style","marginTop","charAt","marginBottom","marginLeft","marginRight","tabIndex","id","role","inert","undefined","save"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { __unstableGetBlockProps as getBlockProps } from '@wordpress/blocks';\nimport { useMergeRefs, useDisabled } from '@wordpress/compose';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../../use-moving-animation';\nimport { PrivateBlockContext } from '../private-block-context';\nimport { useFocusFirstElement } from './use-focus-first-element';\nimport { useIsHovered } from './use-is-hovered';\nimport {\n\tblockBindingsKey,\n\tuseBlockEditContext,\n} from '../../block-edit/context';\nimport { useFocusHandler } from './use-focus-handler';\nimport { useEventHandlers } from './use-selected-block-event-handlers';\nimport { useNavModeExit } from './use-nav-mode-exit';\nimport { useBlockRefProvider } from './use-block-refs';\nimport { useIntersectionObserver } from './use-intersection-observer';\nimport { useScrollIntoView } from './use-scroll-into-view';\nimport { useFlashEditableBlocks } from '../../use-flash-editable-blocks';\nimport { canBindBlock } from '../../../hooks/use-bindings-attributes';\n\n/**\n * This hook is used to lightly mark an element as a block element. The element\n * should be the outermost element of a block. Call this hook and pass the\n * returned props to the element to mark as a block. If you define a ref for the\n * element, it is important to pass the ref to this hook, which the hook in turn\n * will pass to the component through the props it returns. Optionally, you can\n * also pass any other props through this hook, and they will be merged and\n * returned.\n *\n * Use of this hook on the outermost element of a block is required if using API >= v2.\n *\n * @example\n * ```js\n * import { useBlockProps } from '@wordpress/block-editor';\n *\n * export default function Edit() {\n *\n * const blockProps = useBlockProps(\n * className: 'my-custom-class',\n * style: {\n * color: '#222222',\n * backgroundColor: '#eeeeee'\n * }\n * )\n *\n * return (\n *\t <div { ...blockProps }>\n *\n * </div>\n * )\n * }\n *\n * ```\n *\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Options for internal use only.\n * @param {boolean} options.__unstableIsHtml\n *\n * @return {Object} Props to pass to the element to mark as a block.\n */\nexport function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {\n\tconst {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps = {},\n\t\tisAligned,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\ttemplateLock,\n\t} = useContext( PrivateBlockContext );\n\n\t// translators: %s: Type of block (i.e. Text, Image etc)\n\tconst blockLabel = sprintf( __( 'Block: %s' ), blockTitle );\n\tconst htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';\n\tconst mergedRefs = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseFocusFirstElement( { clientId, initialPosition } ),\n\t\tuseBlockRefProvider( clientId ),\n\t\tuseFocusHandler( clientId ),\n\t\tuseEventHandlers( { clientId, isSelected } ),\n\t\tuseNavModeExit( clientId ),\n\t\tuseIsHovered( { clientId } ),\n\t\tuseIntersectionObserver(),\n\t\tuseMovingAnimation( { triggerAnimationOnChange: index, clientId } ),\n\t\tuseDisabled( { isDisabled: ! hasOverlay } ),\n\t\tuseFlashEditableBlocks( {\n\t\t\tclientId,\n\t\t\tisEnabled: name === 'core/block' || templateLock === 'contentOnly',\n\t\t} ),\n\t\tuseScrollIntoView( { isSelected } ),\n\t] );\n\n\tconst blockEditContext = useBlockEditContext();\n\tconst hasBlockBindings = !! blockEditContext[ blockBindingsKey ];\n\tconst bindingsStyle =\n\t\thasBlockBindings && canBindBlock( name )\n\t\t\t? {\n\t\t\t\t\t'--wp-admin-theme-color': 'var(--wp-block-synced-color)',\n\t\t\t\t\t'--wp-admin-theme-color--rgb':\n\t\t\t\t\t\t'var(--wp-block-synced-color--rgb)',\n\t\t\t }\n\t\t\t: {};\n\n\t// Ensures it warns only inside the `edit` implementation for the block.\n\tif ( blockApiVersion < 2 && clientId === blockEditContext.clientId ) {\n\t\twarning(\n\t\t\t`Block type \"${ name }\" must support API version 2 or higher to work correctly with \"useBlockProps\" method.`\n\t\t);\n\t}\n\n\tlet hasNegativeMargin = false;\n\tif (\n\t\twrapperProps?.style?.marginTop?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginBottom?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginLeft?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginRight?.charAt( 0 ) === '-'\n\t) {\n\t\thasNegativeMargin = true;\n\t}\n\n\treturn {\n\t\ttabIndex: blockEditingMode === 'disabled' ? -1 : 0,\n\t\t...wrapperProps,\n\t\t...props,\n\t\tref: mergedRefs,\n\t\tid: `block-${ clientId }${ htmlSuffix }`,\n\t\trole: 'document',\n\t\t'aria-label': blockLabel,\n\t\t'data-block': clientId,\n\t\t'data-type': name,\n\t\t'data-title': blockTitle,\n\t\tinert: isSubtreeDisabled ? 'true' : undefined,\n\t\tclassName: clsx(\n\t\t\t'block-editor-block-list__block',\n\t\t\t{\n\t\t\t\t// The wp-block className is important for editor styles.\n\t\t\t\t'wp-block': ! isAligned,\n\t\t\t\t'has-block-overlay': hasOverlay,\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-highlighted': isHighlighted,\n\t\t\t\t'is-multi-selected': isMultiSelected,\n\t\t\t\t'is-partially-selected': isPartiallySelected,\n\t\t\t\t'is-reusable': isReusable,\n\t\t\t\t'is-dragging': isDragging,\n\t\t\t\t'has-child-selected': hasChildSelected,\n\t\t\t\t'is-block-moving-mode': isBlockMovingMode,\n\t\t\t\t'can-insert-moving-block': canInsertMovingBlock,\n\t\t\t\t'is-editing-disabled': isEditingDisabled,\n\t\t\t\t'has-editable-outline': hasEditableOutline,\n\t\t\t\t'has-negative-margin': hasNegativeMargin,\n\t\t\t\t'is-content-locked-temporarily-editing-as-blocks':\n\t\t\t\t\tisTemporarilyEditingAsBlocks,\n\t\t\t},\n\t\t\tclassName,\n\t\t\tprops.className,\n\t\t\twrapperProps.className,\n\t\t\tdefaultClassName\n\t\t),\n\t\tstyle: { ...wrapperProps.style, ...props.style, ...bindingsStyle },\n\t};\n}\n\n/**\n * Call within a save function to get the props for the block wrapper.\n *\n * @param {Object} props Optional. Props to pass to the element.\n */\nuseBlockProps.save = getBlockProps;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useContext","__","sprintf","__unstableGetBlockProps","getBlockProps","useMergeRefs","useDisabled","warning","useMovingAnimation","PrivateBlockContext","useFocusFirstElement","useIsHovered","blockBindingsKey","useBlockEditContext","useFocusHandler","useEventHandlers","useNavModeExit","useBlockRefProvider","useIntersectionObserver","useScrollIntoView","useFlashEditableBlocks","canBindBlock","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","index","mode","name","blockApiVersion","blockTitle","isSelected","isSubtreeDisabled","hasOverlay","initialPosition","blockEditingMode","isHighlighted","isMultiSelected","isPartiallySelected","isReusable","isDragging","hasChildSelected","isBlockMovingMode","canInsertMovingBlock","isEditingDisabled","hasEditableOutline","isTemporarilyEditingAsBlocks","defaultClassName","templateLock","blockLabel","htmlSuffix","mergedRefs","ref","triggerAnimationOnChange","isDisabled","isEnabled","blockEditContext","hasBlockBindings","bindingsStyle","globalThis","SCRIPT_DEBUG","hasNegativeMargin","style","marginTop","charAt","marginBottom","marginLeft","marginRight","tabIndex","id","role","inert","undefined","save"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { __unstableGetBlockProps as getBlockProps } from '@wordpress/blocks';\nimport { useMergeRefs, useDisabled } from '@wordpress/compose';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../../use-moving-animation';\nimport { PrivateBlockContext } from '../private-block-context';\nimport { useFocusFirstElement } from './use-focus-first-element';\nimport { useIsHovered } from './use-is-hovered';\nimport {\n\tblockBindingsKey,\n\tuseBlockEditContext,\n} from '../../block-edit/context';\nimport { useFocusHandler } from './use-focus-handler';\nimport { useEventHandlers } from './use-selected-block-event-handlers';\nimport { useNavModeExit } from './use-nav-mode-exit';\nimport { useBlockRefProvider } from './use-block-refs';\nimport { useIntersectionObserver } from './use-intersection-observer';\nimport { useScrollIntoView } from './use-scroll-into-view';\nimport { useFlashEditableBlocks } from '../../use-flash-editable-blocks';\nimport { canBindBlock } from '../../../hooks/use-bindings-attributes';\n\n/**\n * This hook is used to lightly mark an element as a block element. The element\n * should be the outermost element of a block. Call this hook and pass the\n * returned props to the element to mark as a block. If you define a ref for the\n * element, it is important to pass the ref to this hook, which the hook in turn\n * will pass to the component through the props it returns. Optionally, you can\n * also pass any other props through this hook, and they will be merged and\n * returned.\n *\n * Use of this hook on the outermost element of a block is required if using API >= v2.\n *\n * @example\n * ```js\n * import { useBlockProps } from '@wordpress/block-editor';\n *\n * export default function Edit() {\n *\n * const blockProps = useBlockProps( {\n * className: 'my-custom-class',\n * style: {\n * color: '#222222',\n * backgroundColor: '#eeeeee'\n * }\n * } )\n *\n * return (\n *\t <div { ...blockProps }>\n *\n * </div>\n * )\n * }\n *\n * ```\n *\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Options for internal use only.\n * @param {boolean} options.__unstableIsHtml\n *\n * @return {Object} Props to pass to the element to mark as a block.\n */\nexport function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {\n\tconst {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps = {},\n\t\tisAligned,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\ttemplateLock,\n\t} = useContext( PrivateBlockContext );\n\n\t// translators: %s: Type of block (i.e. Text, Image etc)\n\tconst blockLabel = sprintf( __( 'Block: %s' ), blockTitle );\n\tconst htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';\n\tconst mergedRefs = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseFocusFirstElement( { clientId, initialPosition } ),\n\t\tuseBlockRefProvider( clientId ),\n\t\tuseFocusHandler( clientId ),\n\t\tuseEventHandlers( { clientId, isSelected } ),\n\t\tuseNavModeExit( clientId ),\n\t\tuseIsHovered( { clientId } ),\n\t\tuseIntersectionObserver(),\n\t\tuseMovingAnimation( { triggerAnimationOnChange: index, clientId } ),\n\t\tuseDisabled( { isDisabled: ! hasOverlay } ),\n\t\tuseFlashEditableBlocks( {\n\t\t\tclientId,\n\t\t\tisEnabled: name === 'core/block' || templateLock === 'contentOnly',\n\t\t} ),\n\t\tuseScrollIntoView( { isSelected } ),\n\t] );\n\n\tconst blockEditContext = useBlockEditContext();\n\tconst hasBlockBindings = !! blockEditContext[ blockBindingsKey ];\n\tconst bindingsStyle =\n\t\thasBlockBindings && canBindBlock( name )\n\t\t\t? {\n\t\t\t\t\t'--wp-admin-theme-color': 'var(--wp-block-synced-color)',\n\t\t\t\t\t'--wp-admin-theme-color--rgb':\n\t\t\t\t\t\t'var(--wp-block-synced-color--rgb)',\n\t\t\t }\n\t\t\t: {};\n\n\t// Ensures it warns only inside the `edit` implementation for the block.\n\tif ( blockApiVersion < 2 && clientId === blockEditContext.clientId ) {\n\t\twarning(\n\t\t\t`Block type \"${ name }\" must support API version 2 or higher to work correctly with \"useBlockProps\" method.`\n\t\t);\n\t}\n\n\tlet hasNegativeMargin = false;\n\tif (\n\t\twrapperProps?.style?.marginTop?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginBottom?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginLeft?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginRight?.charAt( 0 ) === '-'\n\t) {\n\t\thasNegativeMargin = true;\n\t}\n\n\treturn {\n\t\ttabIndex: blockEditingMode === 'disabled' ? -1 : 0,\n\t\t...wrapperProps,\n\t\t...props,\n\t\tref: mergedRefs,\n\t\tid: `block-${ clientId }${ htmlSuffix }`,\n\t\trole: 'document',\n\t\t'aria-label': blockLabel,\n\t\t'data-block': clientId,\n\t\t'data-type': name,\n\t\t'data-title': blockTitle,\n\t\tinert: isSubtreeDisabled ? 'true' : undefined,\n\t\tclassName: clsx(\n\t\t\t'block-editor-block-list__block',\n\t\t\t{\n\t\t\t\t// The wp-block className is important for editor styles.\n\t\t\t\t'wp-block': ! isAligned,\n\t\t\t\t'has-block-overlay': hasOverlay,\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-highlighted': isHighlighted,\n\t\t\t\t'is-multi-selected': isMultiSelected,\n\t\t\t\t'is-partially-selected': isPartiallySelected,\n\t\t\t\t'is-reusable': isReusable,\n\t\t\t\t'is-dragging': isDragging,\n\t\t\t\t'has-child-selected': hasChildSelected,\n\t\t\t\t'is-block-moving-mode': isBlockMovingMode,\n\t\t\t\t'can-insert-moving-block': canInsertMovingBlock,\n\t\t\t\t'is-editing-disabled': isEditingDisabled,\n\t\t\t\t'has-editable-outline': hasEditableOutline,\n\t\t\t\t'has-negative-margin': hasNegativeMargin,\n\t\t\t\t'is-content-locked-temporarily-editing-as-blocks':\n\t\t\t\t\tisTemporarilyEditingAsBlocks,\n\t\t\t},\n\t\t\tclassName,\n\t\t\tprops.className,\n\t\t\twrapperProps.className,\n\t\t\tdefaultClassName\n\t\t),\n\t\tstyle: { ...wrapperProps.style, ...props.style, ...bindingsStyle },\n\t};\n}\n\n/**\n * Call within a save function to get the props for the block wrapper.\n *\n * @param {Object} props Optional. Props to pass to the element.\n */\nuseBlockProps.save = getBlockProps;\n"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,7 @@ export function useInBetweenInserter() {
19
19
  getBlockIndex,
20
20
  isMultiSelecting,
21
21
  getSelectedBlockClientIds,
22
+ getSettings,
22
23
  getTemplateLock,
23
24
  __unstableIsWithinBlockOverlay,
24
25
  getBlockEditingMode,
@@ -59,7 +60,9 @@ export function useInBetweenInserter() {
59
60
  if (getTemplateLock(rootClientId) || getBlockEditingMode(rootClientId) === 'disabled' || getBlockName(rootClientId) === 'core/block' || rootClientId && getBlockAttributes(rootClientId).layout?.isManualPlacement) {
60
61
  return;
61
62
  }
62
- const orientation = getBlockListSettings(rootClientId)?.orientation || 'vertical';
63
+ const blockListSettings = getBlockListSettings(rootClientId);
64
+ const orientation = blockListSettings?.orientation || 'vertical';
65
+ const captureToolbars = !!blockListSettings?.__experimentalCaptureToolbars;
63
66
  const offsetTop = event.clientY;
64
67
  const offsetLeft = event.clientX;
65
68
  const children = Array.from(event.target.children);
@@ -89,9 +92,13 @@ export function useInBetweenInserter() {
89
92
  return;
90
93
  }
91
94
 
92
- // Don't show the inserter when hovering above (conflicts with
93
- // block toolbar) or inside selected block(s).
94
- if (getSelectedBlockClientIds().includes(clientId)) {
95
+ // Don't show the inserter if the following conditions are met,
96
+ // as it conflicts with the block toolbar:
97
+ // 1. when hovering above or inside selected block(s)
98
+ // 2. when the orientation is vertical
99
+ // 3. when the __experimentalCaptureToolbars is not enabled
100
+ // 4. when the Top Toolbar is not disabled
101
+ if (getSelectedBlockClientIds().includes(clientId) && orientation === 'vertical' && !captureToolbars && !getSettings().hasFixedToolbar) {
95
102
  return;
96
103
  }
97
104
  const elementRect = element.getBoundingClientRect();
@@ -1 +1 @@
1
- {"version":3,"names":["useRefEffect","useSelect","useDispatch","useContext","isRTL","store","blockEditorStore","InsertionPointOpenRef","useInBetweenInserter","openRef","isInBetweenInserterDisabled","select","getSettings","isDistractionFree","__unstableGetEditorMode","getBlockListSettings","getBlockIndex","isMultiSelecting","getSelectedBlockClientIds","getTemplateLock","__unstableIsWithinBlockOverlay","getBlockEditingMode","getBlockName","getBlockAttributes","showInsertionPoint","hideInsertionPoint","node","onMouseMove","event","undefined","current","target","nodeType","TEXT_NODE","classList","contains","rootClientId","blockElement","getAttribute","closest","layout","isManualPlacement","orientation","offsetTop","clientY","offsetLeft","clientX","children","Array","from","element","find","blockEl","blockElRect","getBoundingClientRect","top","right","left","id","firstElementChild","clientId","slice","length","includes","elementRect","bottom","index","__unstableWithInserter","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/block-list/use-in-between-inserter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { InsertionPointOpenRef } from '../block-tools/insertion-point';\n\nexport function useInBetweenInserter() {\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst isInBetweenInserterDisabled = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().isDistractionFree ||\n\t\t\tselect( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',\n\t\t[]\n\t);\n\tconst {\n\t\tgetBlockListSettings,\n\t\tgetBlockIndex,\n\t\tisMultiSelecting,\n\t\tgetSelectedBlockClientIds,\n\t\tgetTemplateLock,\n\t\t__unstableIsWithinBlockOverlay,\n\t\tgetBlockEditingMode,\n\t\tgetBlockName,\n\t\tgetBlockAttributes,\n\t} = useSelect( blockEditorStore );\n\tconst { showInsertionPoint, hideInsertionPoint } =\n\t\tuseDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( isInBetweenInserterDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfunction onMouseMove( event ) {\n\t\t\t\t// openRef is the reference to the insertion point between blocks.\n\t\t\t\t// If the reference is not set or the insertion point is already open, return.\n\t\t\t\tif ( openRef === undefined || openRef.current ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Ignore text nodes sometimes detected in FireFox.\n\t\t\t\tif ( event.target.nodeType === event.target.TEXT_NODE ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isMultiSelecting() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains(\n\t\t\t\t\t\t'block-editor-block-list__layout'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet rootClientId;\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains( 'is-root-container' )\n\t\t\t\t) {\n\t\t\t\t\tconst blockElement = !! event.target.getAttribute(\n\t\t\t\t\t\t'data-block'\n\t\t\t\t\t)\n\t\t\t\t\t\t? event.target\n\t\t\t\t\t\t: event.target.closest( '[data-block]' );\n\t\t\t\t\trootClientId = blockElement.getAttribute( 'data-block' );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tgetTemplateLock( rootClientId ) ||\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled' ||\n\t\t\t\t\tgetBlockName( rootClientId ) === 'core/block' ||\n\t\t\t\t\t( rootClientId &&\n\t\t\t\t\t\tgetBlockAttributes( rootClientId ).layout\n\t\t\t\t\t\t\t?.isManualPlacement )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst orientation =\n\t\t\t\t\tgetBlockListSettings( rootClientId )?.orientation ||\n\t\t\t\t\t'vertical';\n\t\t\t\tconst offsetTop = event.clientY;\n\t\t\t\tconst offsetLeft = event.clientX;\n\n\t\t\t\tconst children = Array.from( event.target.children );\n\t\t\t\tlet element = children.find( ( blockEl ) => {\n\t\t\t\t\tconst blockElRect = blockEl.getBoundingClientRect();\n\t\t\t\t\treturn (\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'vertical' &&\n\t\t\t\t\t\t\tblockElRect.top > offsetTop ) ||\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'horizontal' &&\n\t\t\t\t\t\t\t( isRTL()\n\t\t\t\t\t\t\t\t? blockElRect.right < offsetLeft\n\t\t\t\t\t\t\t\t: blockElRect.left > offsetLeft ) )\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\tif ( ! element ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// The block may be in an alignment wrapper, so check the first direct\n\t\t\t\t// child if the element has no ID.\n\t\t\t\tif ( ! element.id ) {\n\t\t\t\t\telement = element.firstElementChild;\n\n\t\t\t\t\tif ( ! element ) {\n\t\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Don't show the insertion point if a parent block has an \"overlay\"\n\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/34012#pullrequestreview-727762337\n\t\t\t\tconst clientId = element.id.slice( 'block-'.length );\n\t\t\t\tif (\n\t\t\t\t\t! clientId ||\n\t\t\t\t\t__unstableIsWithinBlockOverlay( clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Don't show the inserter when hovering above (conflicts with\n\t\t\t\t// block toolbar) or inside selected block(s).\n\t\t\t\tif ( getSelectedBlockClientIds().includes( clientId ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst elementRect = element.getBoundingClientRect();\n\n\t\t\t\tif (\n\t\t\t\t\t( orientation === 'horizontal' &&\n\t\t\t\t\t\t( event.clientY > elementRect.bottom ||\n\t\t\t\t\t\t\tevent.clientY < elementRect.top ) ) ||\n\t\t\t\t\t( orientation === 'vertical' &&\n\t\t\t\t\t\t( event.clientX > elementRect.right ||\n\t\t\t\t\t\t\tevent.clientX < elementRect.left ) )\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst index = getBlockIndex( clientId );\n\n\t\t\t\t// Don't show the in-between inserter before the first block in\n\t\t\t\t// the list (preserves the original behaviour).\n\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tshowInsertionPoint( rootClientId, index, {\n\t\t\t\t\t__unstableWithInserter: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousemove', onMouseMove );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousemove', onMouseMove );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\topenRef,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockIndex,\n\t\t\tisMultiSelecting,\n\t\t\tshowInsertionPoint,\n\t\t\thideInsertionPoint,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisInBetweenInserterDisabled,\n\t\t]\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useRefEffect","useSelect","useDispatch","useContext","isRTL","store","blockEditorStore","InsertionPointOpenRef","useInBetweenInserter","openRef","isInBetweenInserterDisabled","select","getSettings","isDistractionFree","__unstableGetEditorMode","getBlockListSettings","getBlockIndex","isMultiSelecting","getSelectedBlockClientIds","getTemplateLock","__unstableIsWithinBlockOverlay","getBlockEditingMode","getBlockName","getBlockAttributes","showInsertionPoint","hideInsertionPoint","node","onMouseMove","event","undefined","current","target","nodeType","TEXT_NODE","classList","contains","rootClientId","blockElement","getAttribute","closest","layout","isManualPlacement","blockListSettings","orientation","captureToolbars","__experimentalCaptureToolbars","offsetTop","clientY","offsetLeft","clientX","children","Array","from","element","find","blockEl","blockElRect","getBoundingClientRect","top","right","left","id","firstElementChild","clientId","slice","length","includes","hasFixedToolbar","elementRect","bottom","index","__unstableWithInserter","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/block-list/use-in-between-inserter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { InsertionPointOpenRef } from '../block-tools/insertion-point';\n\nexport function useInBetweenInserter() {\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst isInBetweenInserterDisabled = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().isDistractionFree ||\n\t\t\tselect( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',\n\t\t[]\n\t);\n\tconst {\n\t\tgetBlockListSettings,\n\t\tgetBlockIndex,\n\t\tisMultiSelecting,\n\t\tgetSelectedBlockClientIds,\n\t\tgetSettings,\n\t\tgetTemplateLock,\n\t\t__unstableIsWithinBlockOverlay,\n\t\tgetBlockEditingMode,\n\t\tgetBlockName,\n\t\tgetBlockAttributes,\n\t} = useSelect( blockEditorStore );\n\tconst { showInsertionPoint, hideInsertionPoint } =\n\t\tuseDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( isInBetweenInserterDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfunction onMouseMove( event ) {\n\t\t\t\t// openRef is the reference to the insertion point between blocks.\n\t\t\t\t// If the reference is not set or the insertion point is already open, return.\n\t\t\t\tif ( openRef === undefined || openRef.current ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Ignore text nodes sometimes detected in FireFox.\n\t\t\t\tif ( event.target.nodeType === event.target.TEXT_NODE ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isMultiSelecting() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains(\n\t\t\t\t\t\t'block-editor-block-list__layout'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet rootClientId;\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains( 'is-root-container' )\n\t\t\t\t) {\n\t\t\t\t\tconst blockElement = !! event.target.getAttribute(\n\t\t\t\t\t\t'data-block'\n\t\t\t\t\t)\n\t\t\t\t\t\t? event.target\n\t\t\t\t\t\t: event.target.closest( '[data-block]' );\n\t\t\t\t\trootClientId = blockElement.getAttribute( 'data-block' );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tgetTemplateLock( rootClientId ) ||\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled' ||\n\t\t\t\t\tgetBlockName( rootClientId ) === 'core/block' ||\n\t\t\t\t\t( rootClientId &&\n\t\t\t\t\t\tgetBlockAttributes( rootClientId ).layout\n\t\t\t\t\t\t\t?.isManualPlacement )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst blockListSettings = getBlockListSettings( rootClientId );\n\t\t\t\tconst orientation =\n\t\t\t\t\tblockListSettings?.orientation || 'vertical';\n\t\t\t\tconst captureToolbars =\n\t\t\t\t\t!! blockListSettings?.__experimentalCaptureToolbars;\n\t\t\t\tconst offsetTop = event.clientY;\n\t\t\t\tconst offsetLeft = event.clientX;\n\n\t\t\t\tconst children = Array.from( event.target.children );\n\t\t\t\tlet element = children.find( ( blockEl ) => {\n\t\t\t\t\tconst blockElRect = blockEl.getBoundingClientRect();\n\t\t\t\t\treturn (\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'vertical' &&\n\t\t\t\t\t\t\tblockElRect.top > offsetTop ) ||\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'horizontal' &&\n\t\t\t\t\t\t\t( isRTL()\n\t\t\t\t\t\t\t\t? blockElRect.right < offsetLeft\n\t\t\t\t\t\t\t\t: blockElRect.left > offsetLeft ) )\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\tif ( ! element ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// The block may be in an alignment wrapper, so check the first direct\n\t\t\t\t// child if the element has no ID.\n\t\t\t\tif ( ! element.id ) {\n\t\t\t\t\telement = element.firstElementChild;\n\n\t\t\t\t\tif ( ! element ) {\n\t\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Don't show the insertion point if a parent block has an \"overlay\"\n\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/34012#pullrequestreview-727762337\n\t\t\t\tconst clientId = element.id.slice( 'block-'.length );\n\t\t\t\tif (\n\t\t\t\t\t! clientId ||\n\t\t\t\t\t__unstableIsWithinBlockOverlay( clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Don't show the inserter if the following conditions are met,\n\t\t\t\t// as it conflicts with the block toolbar:\n\t\t\t\t// 1. when hovering above or inside selected block(s)\n\t\t\t\t// 2. when the orientation is vertical\n\t\t\t\t// 3. when the __experimentalCaptureToolbars is not enabled\n\t\t\t\t// 4. when the Top Toolbar is not disabled\n\t\t\t\tif (\n\t\t\t\t\tgetSelectedBlockClientIds().includes( clientId ) &&\n\t\t\t\t\torientation === 'vertical' &&\n\t\t\t\t\t! captureToolbars &&\n\t\t\t\t\t! getSettings().hasFixedToolbar\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst elementRect = element.getBoundingClientRect();\n\n\t\t\t\tif (\n\t\t\t\t\t( orientation === 'horizontal' &&\n\t\t\t\t\t\t( event.clientY > elementRect.bottom ||\n\t\t\t\t\t\t\tevent.clientY < elementRect.top ) ) ||\n\t\t\t\t\t( orientation === 'vertical' &&\n\t\t\t\t\t\t( event.clientX > elementRect.right ||\n\t\t\t\t\t\t\tevent.clientX < elementRect.left ) )\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst index = getBlockIndex( clientId );\n\n\t\t\t\t// Don't show the in-between inserter before the first block in\n\t\t\t\t// the list (preserves the original behaviour).\n\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tshowInsertionPoint( rootClientId, index, {\n\t\t\t\t\t__unstableWithInserter: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousemove', onMouseMove );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousemove', onMouseMove );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\topenRef,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockIndex,\n\t\t\tisMultiSelecting,\n\t\t\tshowInsertionPoint,\n\t\t\thideInsertionPoint,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisInBetweenInserterDisabled,\n\t\t]\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,8 +4,7 @@
4
4
  import { __ } from '@wordpress/i18n';
5
5
  import { MenuItem } from '@wordpress/components';
6
6
  import { getBlockType, hasBlockSupport } from '@wordpress/blocks';
7
- import { withSelect, withDispatch } from '@wordpress/data';
8
- import { compose } from '@wordpress/compose';
7
+ import { useDispatch, useSelect } from '@wordpress/data';
9
8
 
10
9
  /**
11
10
  * Internal dependencies
@@ -13,44 +12,40 @@ import { compose } from '@wordpress/compose';
13
12
  import { store as blockEditorStore } from '../../store';
14
13
  import { jsx as _jsx } from "react/jsx-runtime";
15
14
  const noop = () => {};
16
- export function BlockModeToggle({
17
- blockType,
18
- mode,
19
- onToggleMode,
20
- small = false,
21
- isCodeEditingEnabled = true
15
+ export default function BlockModeToggle({
16
+ clientId,
17
+ onToggle = noop
22
18
  }) {
19
+ const {
20
+ blockType,
21
+ mode,
22
+ isCodeEditingEnabled
23
+ } = useSelect(select => {
24
+ const {
25
+ getBlock,
26
+ getBlockMode,
27
+ getSettings
28
+ } = select(blockEditorStore);
29
+ const block = getBlock(clientId);
30
+ return {
31
+ mode: getBlockMode(clientId),
32
+ blockType: block ? getBlockType(block.name) : null,
33
+ isCodeEditingEnabled: getSettings().codeEditingEnabled
34
+ };
35
+ }, [clientId]);
36
+ const {
37
+ toggleBlockMode
38
+ } = useDispatch(blockEditorStore);
23
39
  if (!blockType || !hasBlockSupport(blockType, 'html', true) || !isCodeEditingEnabled) {
24
40
  return null;
25
41
  }
26
42
  const label = mode === 'visual' ? __('Edit as HTML') : __('Edit visually');
27
43
  return /*#__PURE__*/_jsx(MenuItem, {
28
- onClick: onToggleMode,
29
- children: !small && label
44
+ onClick: () => {
45
+ toggleBlockMode(clientId);
46
+ onToggle();
47
+ },
48
+ children: label
30
49
  });
31
50
  }
32
- export default compose([withSelect((select, {
33
- clientId
34
- }) => {
35
- const {
36
- getBlock,
37
- getBlockMode,
38
- getSettings
39
- } = select(blockEditorStore);
40
- const block = getBlock(clientId);
41
- const isCodeEditingEnabled = getSettings().codeEditingEnabled;
42
- return {
43
- mode: getBlockMode(clientId),
44
- blockType: block ? getBlockType(block.name) : null,
45
- isCodeEditingEnabled
46
- };
47
- }), withDispatch((dispatch, {
48
- onToggle = noop,
49
- clientId
50
- }) => ({
51
- onToggleMode() {
52
- dispatch(blockEditorStore).toggleBlockMode(clientId);
53
- onToggle();
54
- }
55
- }))])(BlockModeToggle);
56
51
  //# sourceMappingURL=block-mode-toggle.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__","MenuItem","getBlockType","hasBlockSupport","withSelect","withDispatch","compose","store","blockEditorStore","jsx","_jsx","noop","BlockModeToggle","blockType","mode","onToggleMode","small","isCodeEditingEnabled","label","onClick","children","select","clientId","getBlock","getBlockMode","getSettings","block","codeEditingEnabled","name","dispatch","onToggle","toggleBlockMode"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-mode-toggle.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nexport function BlockModeToggle( {\n\tblockType,\n\tmode,\n\tonToggleMode,\n\tsmall = false,\n\tisCodeEditingEnabled = true,\n} ) {\n\tif (\n\t\t! blockType ||\n\t\t! hasBlockSupport( blockType, 'html', true ) ||\n\t\t! isCodeEditingEnabled\n\t) {\n\t\treturn null;\n\t}\n\n\tconst label =\n\t\tmode === 'visual' ? __( 'Edit as HTML' ) : __( 'Edit visually' );\n\n\treturn <MenuItem onClick={ onToggleMode }>{ ! small && label }</MenuItem>;\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst { getBlock, getBlockMode, getSettings } =\n\t\t\tselect( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst isCodeEditingEnabled = getSettings().codeEditingEnabled;\n\n\t\treturn {\n\t\t\tmode: getBlockMode( clientId ),\n\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\tisCodeEditingEnabled,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { onToggle = noop, clientId } ) => ( {\n\t\tonToggleMode() {\n\t\t\tdispatch( blockEditorStore ).toggleBlockMode( clientId );\n\t\t\tonToggle();\n\t\t},\n\t} ) ),\n] )( BlockModeToggle );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,YAAY,EAAEC,eAAe,QAAQ,mBAAmB;AACjE,SAASC,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAC1D,SAASC,OAAO,QAAQ,oBAAoB;;AAE5C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExD,MAAMC,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AAErB,OAAO,SAASC,eAAeA,CAAE;EAChCC,SAAS;EACTC,IAAI;EACJC,YAAY;EACZC,KAAK,GAAG,KAAK;EACbC,oBAAoB,GAAG;AACxB,CAAC,EAAG;EACH,IACC,CAAEJ,SAAS,IACX,CAAEV,eAAe,CAAEU,SAAS,EAAE,MAAM,EAAE,IAAK,CAAC,IAC5C,CAAEI,oBAAoB,EACrB;IACD,OAAO,IAAI;EACZ;EAEA,MAAMC,KAAK,GACVJ,IAAI,KAAK,QAAQ,GAAGd,EAAE,CAAE,cAAe,CAAC,GAAGA,EAAE,CAAE,eAAgB,CAAC;EAEjE,oBAAOU,IAAA,CAACT,QAAQ;IAACkB,OAAO,EAAGJ,YAAc;IAAAK,QAAA,EAAG,CAAEJ,KAAK,IAAIE;EAAK,CAAY,CAAC;AAC1E;AAEA,eAAeZ,OAAO,CAAE,CACvBF,UAAU,CAAE,CAAEiB,MAAM,EAAE;EAAEC;AAAS,CAAC,KAAM;EACvC,MAAM;IAAEC,QAAQ;IAAEC,YAAY;IAAEC;EAAY,CAAC,GAC5CJ,MAAM,CAAEb,gBAAiB,CAAC;EAC3B,MAAMkB,KAAK,GAAGH,QAAQ,CAAED,QAAS,CAAC;EAClC,MAAML,oBAAoB,GAAGQ,WAAW,CAAC,CAAC,CAACE,kBAAkB;EAE7D,OAAO;IACNb,IAAI,EAAEU,YAAY,CAAEF,QAAS,CAAC;IAC9BT,SAAS,EAAEa,KAAK,GAAGxB,YAAY,CAAEwB,KAAK,CAACE,IAAK,CAAC,GAAG,IAAI;IACpDX;EACD,CAAC;AACF,CAAE,CAAC,EACHZ,YAAY,CAAE,CAAEwB,QAAQ,EAAE;EAAEC,QAAQ,GAAGnB,IAAI;EAAEW;AAAS,CAAC,MAAQ;EAC9DP,YAAYA,CAAA,EAAG;IACdc,QAAQ,CAAErB,gBAAiB,CAAC,CAACuB,eAAe,CAAET,QAAS,CAAC;IACxDQ,QAAQ,CAAC,CAAC;EACX;AACD,CAAC,CAAG,CAAC,CACJ,CAAC,CAAElB,eAAgB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["__","MenuItem","getBlockType","hasBlockSupport","useDispatch","useSelect","store","blockEditorStore","jsx","_jsx","noop","BlockModeToggle","clientId","onToggle","blockType","mode","isCodeEditingEnabled","select","getBlock","getBlockMode","getSettings","block","name","codeEditingEnabled","toggleBlockMode","label","onClick","children"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-mode-toggle.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nexport default function BlockModeToggle( { clientId, onToggle = noop } ) {\n\tconst { blockType, mode, isCodeEditingEnabled } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockMode, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\n\t\t\treturn {\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\t\tisCodeEditingEnabled: getSettings().codeEditingEnabled,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { toggleBlockMode } = useDispatch( blockEditorStore );\n\n\tif (\n\t\t! blockType ||\n\t\t! hasBlockSupport( blockType, 'html', true ) ||\n\t\t! isCodeEditingEnabled\n\t) {\n\t\treturn null;\n\t}\n\n\tconst label =\n\t\tmode === 'visual' ? __( 'Edit as HTML' ) : __( 'Edit visually' );\n\n\treturn (\n\t\t<MenuItem\n\t\t\tonClick={ () => {\n\t\t\t\ttoggleBlockMode( clientId );\n\t\t\t\tonToggle();\n\t\t\t} }\n\t\t>\n\t\t\t{ label }\n\t\t</MenuItem>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,YAAY,EAAEC,eAAe,QAAQ,mBAAmB;AACjE,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;;AAExD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExD,MAAMC,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AAErB,eAAe,SAASC,eAAeA,CAAE;EAAEC,QAAQ;EAAEC,QAAQ,GAAGH;AAAK,CAAC,EAAG;EACxE,MAAM;IAAEI,SAAS;IAAEC,IAAI;IAAEC;EAAqB,CAAC,GAAGX,SAAS,CACxDY,MAAM,IAAM;IACb,MAAM;MAAEC,QAAQ;MAAEC,YAAY;MAAEC;IAAY,CAAC,GAC5CH,MAAM,CAAEV,gBAAiB,CAAC;IAC3B,MAAMc,KAAK,GAAGH,QAAQ,CAAEN,QAAS,CAAC;IAElC,OAAO;MACNG,IAAI,EAAEI,YAAY,CAAEP,QAAS,CAAC;MAC9BE,SAAS,EAAEO,KAAK,GAAGnB,YAAY,CAAEmB,KAAK,CAACC,IAAK,CAAC,GAAG,IAAI;MACpDN,oBAAoB,EAAEI,WAAW,CAAC,CAAC,CAACG;IACrC,CAAC;EACF,CAAC,EACD,CAAEX,QAAQ,CACX,CAAC;EACD,MAAM;IAAEY;EAAgB,CAAC,GAAGpB,WAAW,CAAEG,gBAAiB,CAAC;EAE3D,IACC,CAAEO,SAAS,IACX,CAAEX,eAAe,CAAEW,SAAS,EAAE,MAAM,EAAE,IAAK,CAAC,IAC5C,CAAEE,oBAAoB,EACrB;IACD,OAAO,IAAI;EACZ;EAEA,MAAMS,KAAK,GACVV,IAAI,KAAK,QAAQ,GAAGf,EAAE,CAAE,cAAe,CAAC,GAAGA,EAAE,CAAE,eAAgB,CAAC;EAEjE,oBACCS,IAAA,CAACR,QAAQ;IACRyB,OAAO,EAAGA,CAAA,KAAM;MACfF,eAAe,CAAEZ,QAAS,CAAC;MAC3BC,QAAQ,CAAC,CAAC;IACX,CAAG;IAAAc,QAAA,EAEDF;EAAK,CACE,CAAC;AAEb","ignoreList":[]}
@@ -40,7 +40,8 @@ function InbetweenInsertionPointPopover({
40
40
  rootClientId,
41
41
  isInserterShown,
42
42
  isDistractionFree,
43
- isNavigationMode
43
+ isNavigationMode,
44
+ isZoomOutMode
44
45
  } = useSelect(select => {
45
46
  const {
46
47
  getBlockOrder,
@@ -50,7 +51,8 @@ function InbetweenInsertionPointPopover({
50
51
  getPreviousBlockClientId,
51
52
  getNextBlockClientId,
52
53
  getSettings,
53
- isNavigationMode: _isNavigationMode
54
+ isNavigationMode: _isNavigationMode,
55
+ __unstableGetEditorMode
54
56
  } = select(blockEditorStore);
55
57
  const insertionPoint = getBlockInsertionPoint();
56
58
  const order = getBlockOrder(insertionPoint.rootClientId);
@@ -73,7 +75,8 @@ function InbetweenInsertionPointPopover({
73
75
  rootClientId: insertionPoint.rootClientId,
74
76
  isNavigationMode: _isNavigationMode(),
75
77
  isDistractionFree: settings.isDistractionFree,
76
- isInserterShown: insertionPoint?.__unstableWithInserter
78
+ isInserterShown: insertionPoint?.__unstableWithInserter,
79
+ isZoomOutMode: __unstableGetEditorMode() === 'zoom-out'
77
80
  };
78
81
  }, []);
79
82
  const {
@@ -139,6 +142,14 @@ function InbetweenInsertionPointPopover({
139
142
  if (isDistractionFree && !isNavigationMode) {
140
143
  return null;
141
144
  }
145
+
146
+ // Zoom out mode should only show the insertion point for the insert operation.
147
+ // Other operations such as "group" are when the editor tries to create a row
148
+ // block by grouping the block being dragged with the block it's being dropped
149
+ // onto.
150
+ if (isZoomOutMode && operation !== 'insert') {
151
+ return null;
152
+ }
142
153
  const orientationClassname = orientation === 'horizontal' || operation === 'group' ? 'is-horizontal' : 'is-vertical';
143
154
  const className = clsx('block-editor-block-list__insertion-point', orientationClassname);
144
155
  return /*#__PURE__*/_jsx(BlockPopoverInbetween, {
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useSelect","useDispatch","useRef","createContext","useContext","__unstableMotion","motion","useReducedMotion","Inserter","store","blockEditorStore","BlockPopoverInbetween","BlockDropZonePopover","jsx","_jsx","jsxs","_jsxs","InsertionPointOpenRef","InbetweenInsertionPointPopover","__unstablePopoverSlot","__unstableContentRef","operation","nearestSide","selectBlock","hideInsertionPoint","openRef","ref","orientation","previousClientId","nextClientId","rootClientId","isInserterShown","isDistractionFree","isNavigationMode","select","getBlockOrder","getBlockListSettings","getBlockInsertionPoint","isBlockBeingDragged","getPreviousBlockClientId","getNextBlockClientId","getSettings","_isNavigationMode","insertionPoint","order","length","_previousClientId","index","_nextClientId","settings","__unstableWithInserter","getBlockEditingMode","disableMotion","onClick","event","target","current","maybeHideInserterPoint","onFocus","lineVariants","start","opacity","scale","rest","transition","delay","type","hover","inserterVariants","orientationClassname","className","children","div","layout","initial","animate","whileHover","whileTap","exit","tabIndex","onHoverEnd","variants","position","clientId","__experimentalIsQuick","onToggle","isOpen","onSelectOrClose","InsertionPoint","props","isVisible","isBlockListEmpty","isBlockInsertionPointVisible","getBlockCount","blockInsertionPoint"],"sources":["@wordpress/block-editor/src/components/block-tools/insertion-point.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, createContext, useContext } from '@wordpress/element';\nimport { __unstableMotion as motion } from '@wordpress/components';\nimport { useReducedMotion } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopoverInbetween from '../block-popover/inbetween';\nimport BlockDropZonePopover from '../block-popover/drop-zone';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction InbetweenInsertionPointPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\toperation = 'insert',\n\tnearestSide = 'right',\n} ) {\n\tconst { selectBlock, hideInsertionPoint } = useDispatch( blockEditorStore );\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst ref = useRef();\n\tconst {\n\t\torientation,\n\t\tpreviousClientId,\n\t\tnextClientId,\n\t\trootClientId,\n\t\tisInserterShown,\n\t\tisDistractionFree,\n\t\tisNavigationMode,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockBeingDragged,\n\t\t\tgetPreviousBlockClientId,\n\t\t\tgetNextBlockClientId,\n\t\t\tgetSettings,\n\t\t\tisNavigationMode: _isNavigationMode,\n\t\t} = select( blockEditorStore );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\n\t\tif ( ! order.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet _previousClientId = order[ insertionPoint.index - 1 ];\n\t\tlet _nextClientId = order[ insertionPoint.index ];\n\n\t\twhile ( isBlockBeingDragged( _previousClientId ) ) {\n\t\t\t_previousClientId = getPreviousBlockClientId( _previousClientId );\n\t\t}\n\n\t\twhile ( isBlockBeingDragged( _nextClientId ) ) {\n\t\t\t_nextClientId = getNextBlockClientId( _nextClientId );\n\t\t}\n\n\t\tconst settings = getSettings();\n\n\t\treturn {\n\t\t\tpreviousClientId: _previousClientId,\n\t\t\tnextClientId: _nextClientId,\n\t\t\torientation:\n\t\t\t\tgetBlockListSettings( insertionPoint.rootClientId )\n\t\t\t\t\t?.orientation || 'vertical',\n\t\t\trootClientId: insertionPoint.rootClientId,\n\t\t\tisNavigationMode: _isNavigationMode(),\n\t\t\tisDistractionFree: settings.isDistractionFree,\n\t\t\tisInserterShown: insertionPoint?.__unstableWithInserter,\n\t\t};\n\t}, [] );\n\tconst { getBlockEditingMode } = useSelect( blockEditorStore );\n\n\tconst disableMotion = useReducedMotion();\n\n\tfunction onClick( event ) {\n\t\tif (\n\t\t\tevent.target === ref.current &&\n\t\t\tnextClientId &&\n\t\t\tgetBlockEditingMode( nextClientId ) !== 'disabled'\n\t\t) {\n\t\t\tselectBlock( nextClientId, -1 );\n\t\t}\n\t}\n\n\tfunction maybeHideInserterPoint( event ) {\n\t\t// Only hide the inserter if it's triggered on the wrapper,\n\t\t// and the inserter is not open.\n\t\tif ( event.target === ref.current && ! openRef.current ) {\n\t\t\thideInsertionPoint();\n\t\t}\n\t}\n\n\tfunction onFocus( event ) {\n\t\t// Only handle click on the wrapper specifically, and not an event\n\t\t// bubbled from the inserter itself.\n\t\tif ( event.target !== ref.current ) {\n\t\t\topenRef.current = true;\n\t\t}\n\t}\n\n\tconst lineVariants = {\n\t\t// Initial position starts from the center and invisible.\n\t\tstart: {\n\t\t\topacity: 0,\n\t\t\tscale: 0,\n\t\t},\n\t\t// The line expands to fill the container. If the inserter is visible it\n\t\t// is delayed so it appears orchestrated.\n\t\trest: {\n\t\t\topacity: 1,\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: isInserterShown ? 0.5 : 0, type: 'tween' },\n\t\t},\n\t\thover: {\n\t\t\topacity: 1,\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: 0.5, type: 'tween' },\n\t\t},\n\t};\n\n\tconst inserterVariants = {\n\t\tstart: {\n\t\t\tscale: disableMotion ? 1 : 0,\n\t\t},\n\t\trest: {\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: 0.4, type: 'tween' },\n\t\t},\n\t};\n\n\tif ( isDistractionFree && ! isNavigationMode ) {\n\t\treturn null;\n\t}\n\n\tconst orientationClassname =\n\t\torientation === 'horizontal' || operation === 'group'\n\t\t\t? 'is-horizontal'\n\t\t\t: 'is-vertical';\n\n\tconst className = clsx(\n\t\t'block-editor-block-list__insertion-point',\n\t\torientationClassname\n\t);\n\n\treturn (\n\t\t<BlockPopoverInbetween\n\t\t\tpreviousClientId={ previousClientId }\n\t\t\tnextClientId={ nextClientId }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\toperation={ operation }\n\t\t\tnearestSide={ nearestSide }\n\t\t>\n\t\t\t<motion.div\n\t\t\t\tlayout={ ! disableMotion }\n\t\t\t\tinitial={ disableMotion ? 'rest' : 'start' }\n\t\t\t\tanimate=\"rest\"\n\t\t\t\twhileHover=\"hover\"\n\t\t\t\twhileTap=\"pressed\"\n\t\t\t\texit=\"start\"\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tclassName={ clsx( className, {\n\t\t\t\t\t'is-with-inserter': isInserterShown,\n\t\t\t\t} ) }\n\t\t\t\tonHoverEnd={ maybeHideInserterPoint }\n\t\t\t>\n\t\t\t\t<motion.div\n\t\t\t\t\tvariants={ lineVariants }\n\t\t\t\t\tclassName=\"block-editor-block-list__insertion-point-indicator\"\n\t\t\t\t\tdata-testid=\"block-list-insertion-point-indicator\"\n\t\t\t\t/>\n\t\t\t\t{ isInserterShown && (\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tvariants={ inserterVariants }\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-block-list__insertion-point-inserter'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Inserter\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tclientId={ nextClientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t\t\tonToggle={ ( isOpen ) => {\n\t\t\t\t\t\t\t\topenRef.current = isOpen;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectOrClose={ () => {\n\t\t\t\t\t\t\t\topenRef.current = false;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</motion.div>\n\t\t\t\t) }\n\t\t\t</motion.div>\n\t\t</BlockPopoverInbetween>\n\t);\n}\n\nexport default function InsertionPoint( props ) {\n\tconst { insertionPoint, isVisible, isBlockListEmpty } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetBlockCount,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blockInsertionPoint = getBlockInsertionPoint();\n\t\t\treturn {\n\t\t\t\tinsertionPoint: blockInsertionPoint,\n\t\t\t\tisVisible: isBlockInsertionPointVisible(),\n\t\t\t\tisBlockListEmpty:\n\t\t\t\t\tgetBlockCount( blockInsertionPoint?.rootClientId ) === 0,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tif (\n\t\t! isVisible ||\n\t\t// Don't render the insertion point if the block list is empty.\n\t\t// The insertion point will be represented by the appender instead.\n\t\tisBlockListEmpty\n\t) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Render a popover that overlays the block when the desired operation is to replace it.\n\t * Otherwise, render a popover in between blocks for the indication of inserting between them.\n\t */\n\treturn insertionPoint.operation === 'replace' ? (\n\t\t<BlockDropZonePopover\n\t\t\t// Force remount to trigger the animation.\n\t\t\tkey={ `${ insertionPoint.rootClientId }-${ insertionPoint.index }` }\n\t\t\t{ ...props }\n\t\t/>\n\t) : (\n\t\t<InbetweenInsertionPointPopover\n\t\t\toperation={ insertionPoint.operation }\n\t\t\tnearestSide={ insertionPoint.nearestSide }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,MAAM,EAAEC,aAAa,EAAEC,UAAU,QAAQ,oBAAoB;AACtE,SAASC,gBAAgB,IAAIC,MAAM,QAAQ,uBAAuB;AAClE,SAASC,gBAAgB,QAAQ,oBAAoB;;AAErD;AACA;AACA;AACA,OAAOC,QAAQ,MAAM,aAAa;AAClC,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,OAAOC,qBAAqB,MAAM,4BAA4B;AAC9D,OAAOC,oBAAoB,MAAM,4BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAE9D,OAAO,MAAMC,qBAAqB,GAAGd,aAAa,CAAC,CAAC;AAEpD,SAASe,8BAA8BA,CAAE;EACxCC,qBAAqB;EACrBC,oBAAoB;EACpBC,SAAS,GAAG,QAAQ;EACpBC,WAAW,GAAG;AACf,CAAC,EAAG;EACH,MAAM;IAAEC,WAAW;IAAEC;EAAmB,CAAC,GAAGvB,WAAW,CAAES,gBAAiB,CAAC;EAC3E,MAAMe,OAAO,GAAGrB,UAAU,CAAEa,qBAAsB,CAAC;EACnD,MAAMS,GAAG,GAAGxB,MAAM,CAAC,CAAC;EACpB,MAAM;IACLyB,WAAW;IACXC,gBAAgB;IAChBC,YAAY;IACZC,YAAY;IACZC,eAAe;IACfC,iBAAiB;IACjBC;EACD,CAAC,GAAGjC,SAAS,CAAIkC,MAAM,IAAM;IAC5B,MAAM;MACLC,aAAa;MACbC,oBAAoB;MACpBC,sBAAsB;MACtBC,mBAAmB;MACnBC,wBAAwB;MACxBC,oBAAoB;MACpBC,WAAW;MACXR,gBAAgB,EAAES;IACnB,CAAC,GAAGR,MAAM,CAAExB,gBAAiB,CAAC;IAC9B,MAAMiC,cAAc,GAAGN,sBAAsB,CAAC,CAAC;IAC/C,MAAMO,KAAK,GAAGT,aAAa,CAAEQ,cAAc,CAACb,YAAa,CAAC;IAE1D,IAAK,CAAEc,KAAK,CAACC,MAAM,EAAG;MACrB,OAAO,CAAC,CAAC;IACV;IAEA,IAAIC,iBAAiB,GAAGF,KAAK,CAAED,cAAc,CAACI,KAAK,GAAG,CAAC,CAAE;IACzD,IAAIC,aAAa,GAAGJ,KAAK,CAAED,cAAc,CAACI,KAAK,CAAE;IAEjD,OAAQT,mBAAmB,CAAEQ,iBAAkB,CAAC,EAAG;MAClDA,iBAAiB,GAAGP,wBAAwB,CAAEO,iBAAkB,CAAC;IAClE;IAEA,OAAQR,mBAAmB,CAAEU,aAAc,CAAC,EAAG;MAC9CA,aAAa,GAAGR,oBAAoB,CAAEQ,aAAc,CAAC;IACtD;IAEA,MAAMC,QAAQ,GAAGR,WAAW,CAAC,CAAC;IAE9B,OAAO;MACNb,gBAAgB,EAAEkB,iBAAiB;MACnCjB,YAAY,EAAEmB,aAAa;MAC3BrB,WAAW,EACVS,oBAAoB,CAAEO,cAAc,CAACb,YAAa,CAAC,EAChDH,WAAW,IAAI,UAAU;MAC7BG,YAAY,EAAEa,cAAc,CAACb,YAAY;MACzCG,gBAAgB,EAAES,iBAAiB,CAAC,CAAC;MACrCV,iBAAiB,EAAEiB,QAAQ,CAACjB,iBAAiB;MAC7CD,eAAe,EAAEY,cAAc,EAAEO;IAClC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAM;IAAEC;EAAoB,CAAC,GAAGnD,SAAS,CAAEU,gBAAiB,CAAC;EAE7D,MAAM0C,aAAa,GAAG7C,gBAAgB,CAAC,CAAC;EAExC,SAAS8C,OAAOA,CAAEC,KAAK,EAAG;IACzB,IACCA,KAAK,CAACC,MAAM,KAAK7B,GAAG,CAAC8B,OAAO,IAC5B3B,YAAY,IACZsB,mBAAmB,CAAEtB,YAAa,CAAC,KAAK,UAAU,EACjD;MACDN,WAAW,CAAEM,YAAY,EAAE,CAAC,CAAE,CAAC;IAChC;EACD;EAEA,SAAS4B,sBAAsBA,CAAEH,KAAK,EAAG;IACxC;IACA;IACA,IAAKA,KAAK,CAACC,MAAM,KAAK7B,GAAG,CAAC8B,OAAO,IAAI,CAAE/B,OAAO,CAAC+B,OAAO,EAAG;MACxDhC,kBAAkB,CAAC,CAAC;IACrB;EACD;EAEA,SAASkC,OAAOA,CAAEJ,KAAK,EAAG;IACzB;IACA;IACA,IAAKA,KAAK,CAACC,MAAM,KAAK7B,GAAG,CAAC8B,OAAO,EAAG;MACnC/B,OAAO,CAAC+B,OAAO,GAAG,IAAI;IACvB;EACD;EAEA,MAAMG,YAAY,GAAG;IACpB;IACAC,KAAK,EAAE;MACNC,OAAO,EAAE,CAAC;MACVC,KAAK,EAAE;IACR,CAAC;IACD;IACA;IACAC,IAAI,EAAE;MACLF,OAAO,EAAE,CAAC;MACVC,KAAK,EAAE,CAAC;MACRE,UAAU,EAAE;QAAEC,KAAK,EAAElC,eAAe,GAAG,GAAG,GAAG,CAAC;QAAEmC,IAAI,EAAE;MAAQ;IAC/D,CAAC;IACDC,KAAK,EAAE;MACNN,OAAO,EAAE,CAAC;MACVC,KAAK,EAAE,CAAC;MACRE,UAAU,EAAE;QAAEC,KAAK,EAAE,GAAG;QAAEC,IAAI,EAAE;MAAQ;IACzC;EACD,CAAC;EAED,MAAME,gBAAgB,GAAG;IACxBR,KAAK,EAAE;MACNE,KAAK,EAAEV,aAAa,GAAG,CAAC,GAAG;IAC5B,CAAC;IACDW,IAAI,EAAE;MACLD,KAAK,EAAE,CAAC;MACRE,UAAU,EAAE;QAAEC,KAAK,EAAE,GAAG;QAAEC,IAAI,EAAE;MAAQ;IACzC;EACD,CAAC;EAED,IAAKlC,iBAAiB,IAAI,CAAEC,gBAAgB,EAAG;IAC9C,OAAO,IAAI;EACZ;EAEA,MAAMoC,oBAAoB,GACzB1C,WAAW,KAAK,YAAY,IAAIN,SAAS,KAAK,OAAO,GAClD,eAAe,GACf,aAAa;EAEjB,MAAMiD,SAAS,GAAGvE,IAAI,CACrB,0CAA0C,EAC1CsE,oBACD,CAAC;EAED,oBACCvD,IAAA,CAACH,qBAAqB;IACrBiB,gBAAgB,EAAGA,gBAAkB;IACrCC,YAAY,EAAGA,YAAc;IAC7BV,qBAAqB,EAAGA,qBAAuB;IAC/CC,oBAAoB,EAAGA,oBAAsB;IAC7CC,SAAS,EAAGA,SAAW;IACvBC,WAAW,EAAGA,WAAa;IAAAiD,QAAA,eAE3BvD,KAAA,CAACV,MAAM,CAACkE,GAAG;MACVC,MAAM,EAAG,CAAErB,aAAe;MAC1BsB,OAAO,EAAGtB,aAAa,GAAG,MAAM,GAAG,OAAS;MAC5CuB,OAAO,EAAC,MAAM;MACdC,UAAU,EAAC,OAAO;MAClBC,QAAQ,EAAC,SAAS;MAClBC,IAAI,EAAC,OAAO;MACZpD,GAAG,EAAGA,GAAK;MACXqD,QAAQ,EAAG,CAAC,CAAG;MACf1B,OAAO,EAAGA,OAAS;MACnBK,OAAO,EAAGA,OAAS;MACnBY,SAAS,EAAGvE,IAAI,CAAEuE,SAAS,EAAE;QAC5B,kBAAkB,EAAEvC;MACrB,CAAE,CAAG;MACLiD,UAAU,EAAGvB,sBAAwB;MAAAc,QAAA,gBAErCzD,IAAA,CAACR,MAAM,CAACkE,GAAG;QACVS,QAAQ,EAAGtB,YAAc;QACzBW,SAAS,EAAC,oDAAoD;QAC9D,eAAY;MAAsC,CAClD,CAAC,EACAvC,eAAe,iBAChBjB,IAAA,CAACR,MAAM,CAACkE,GAAG;QACVS,QAAQ,EAAGb,gBAAkB;QAC7BE,SAAS,EAAGvE,IAAI,CACf,mDACD,CAAG;QAAAwE,QAAA,eAEHzD,IAAA,CAACN,QAAQ;UACR0E,QAAQ,EAAC,eAAe;UACxBC,QAAQ,EAAGtD,YAAc;UACzBC,YAAY,EAAGA,YAAc;UAC7BsD,qBAAqB;UACrBC,QAAQ,EAAKC,MAAM,IAAM;YACxB7D,OAAO,CAAC+B,OAAO,GAAG8B,MAAM;UACzB,CAAG;UACHC,eAAe,EAAGA,CAAA,KAAM;YACvB9D,OAAO,CAAC+B,OAAO,GAAG,KAAK;UACxB;QAAG,CACH;MAAC,CACS,CACZ;IAAA,CACU;EAAC,CACS,CAAC;AAE1B;AAEA,eAAe,SAASgC,cAAcA,CAAEC,KAAK,EAAG;EAC/C,MAAM;IAAE9C,cAAc;IAAE+C,SAAS;IAAEC;EAAiB,CAAC,GAAG3F,SAAS,CAC9DkC,MAAM,IAAM;IACb,MAAM;MACLG,sBAAsB;MACtBuD,4BAA4B;MAC5BC;IACD,CAAC,GAAG3D,MAAM,CAAExB,gBAAiB,CAAC;IAC9B,MAAMoF,mBAAmB,GAAGzD,sBAAsB,CAAC,CAAC;IACpD,OAAO;MACNM,cAAc,EAAEmD,mBAAmB;MACnCJ,SAAS,EAAEE,4BAA4B,CAAC,CAAC;MACzCD,gBAAgB,EACfE,aAAa,CAAEC,mBAAmB,EAAEhE,YAAa,CAAC,KAAK;IACzD,CAAC;EACF,CAAC,EACD,EACD,CAAC;EAED,IACC,CAAE4D,SAAS;EACX;EACA;EACAC,gBAAgB,EACf;IACD,OAAO,IAAI;EACZ;;EAEA;AACD;AACA;AACA;EACC,OAAOhD,cAAc,CAACtB,SAAS,KAAK,SAAS,gBAC5CP,IAAA,CAACF;EACA;EAAA;IAAA,GAEK6E;EAAK,GADH,GAAG9C,cAAc,CAACb,YAAc,IAAIa,cAAc,CAACI,KAAO,EAEjE,CAAC,gBAEFjC,IAAA,CAACI,8BAA8B;IAC9BG,SAAS,EAAGsB,cAAc,CAACtB,SAAW;IACtCC,WAAW,EAAGqB,cAAc,CAACrB,WAAa;IAAA,GACrCmE;EAAK,CACV,CACD;AACF","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useSelect","useDispatch","useRef","createContext","useContext","__unstableMotion","motion","useReducedMotion","Inserter","store","blockEditorStore","BlockPopoverInbetween","BlockDropZonePopover","jsx","_jsx","jsxs","_jsxs","InsertionPointOpenRef","InbetweenInsertionPointPopover","__unstablePopoverSlot","__unstableContentRef","operation","nearestSide","selectBlock","hideInsertionPoint","openRef","ref","orientation","previousClientId","nextClientId","rootClientId","isInserterShown","isDistractionFree","isNavigationMode","isZoomOutMode","select","getBlockOrder","getBlockListSettings","getBlockInsertionPoint","isBlockBeingDragged","getPreviousBlockClientId","getNextBlockClientId","getSettings","_isNavigationMode","__unstableGetEditorMode","insertionPoint","order","length","_previousClientId","index","_nextClientId","settings","__unstableWithInserter","getBlockEditingMode","disableMotion","onClick","event","target","current","maybeHideInserterPoint","onFocus","lineVariants","start","opacity","scale","rest","transition","delay","type","hover","inserterVariants","orientationClassname","className","children","div","layout","initial","animate","whileHover","whileTap","exit","tabIndex","onHoverEnd","variants","position","clientId","__experimentalIsQuick","onToggle","isOpen","onSelectOrClose","InsertionPoint","props","isVisible","isBlockListEmpty","isBlockInsertionPointVisible","getBlockCount","blockInsertionPoint"],"sources":["@wordpress/block-editor/src/components/block-tools/insertion-point.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, createContext, useContext } from '@wordpress/element';\nimport { __unstableMotion as motion } from '@wordpress/components';\nimport { useReducedMotion } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopoverInbetween from '../block-popover/inbetween';\nimport BlockDropZonePopover from '../block-popover/drop-zone';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction InbetweenInsertionPointPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\toperation = 'insert',\n\tnearestSide = 'right',\n} ) {\n\tconst { selectBlock, hideInsertionPoint } = useDispatch( blockEditorStore );\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst ref = useRef();\n\tconst {\n\t\torientation,\n\t\tpreviousClientId,\n\t\tnextClientId,\n\t\trootClientId,\n\t\tisInserterShown,\n\t\tisDistractionFree,\n\t\tisNavigationMode,\n\t\tisZoomOutMode,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockBeingDragged,\n\t\t\tgetPreviousBlockClientId,\n\t\t\tgetNextBlockClientId,\n\t\t\tgetSettings,\n\t\t\tisNavigationMode: _isNavigationMode,\n\t\t\t__unstableGetEditorMode,\n\t\t} = select( blockEditorStore );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\n\t\tif ( ! order.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet _previousClientId = order[ insertionPoint.index - 1 ];\n\t\tlet _nextClientId = order[ insertionPoint.index ];\n\n\t\twhile ( isBlockBeingDragged( _previousClientId ) ) {\n\t\t\t_previousClientId = getPreviousBlockClientId( _previousClientId );\n\t\t}\n\n\t\twhile ( isBlockBeingDragged( _nextClientId ) ) {\n\t\t\t_nextClientId = getNextBlockClientId( _nextClientId );\n\t\t}\n\n\t\tconst settings = getSettings();\n\n\t\treturn {\n\t\t\tpreviousClientId: _previousClientId,\n\t\t\tnextClientId: _nextClientId,\n\t\t\torientation:\n\t\t\t\tgetBlockListSettings( insertionPoint.rootClientId )\n\t\t\t\t\t?.orientation || 'vertical',\n\t\t\trootClientId: insertionPoint.rootClientId,\n\t\t\tisNavigationMode: _isNavigationMode(),\n\t\t\tisDistractionFree: settings.isDistractionFree,\n\t\t\tisInserterShown: insertionPoint?.__unstableWithInserter,\n\t\t\tisZoomOutMode: __unstableGetEditorMode() === 'zoom-out',\n\t\t};\n\t}, [] );\n\tconst { getBlockEditingMode } = useSelect( blockEditorStore );\n\n\tconst disableMotion = useReducedMotion();\n\n\tfunction onClick( event ) {\n\t\tif (\n\t\t\tevent.target === ref.current &&\n\t\t\tnextClientId &&\n\t\t\tgetBlockEditingMode( nextClientId ) !== 'disabled'\n\t\t) {\n\t\t\tselectBlock( nextClientId, -1 );\n\t\t}\n\t}\n\n\tfunction maybeHideInserterPoint( event ) {\n\t\t// Only hide the inserter if it's triggered on the wrapper,\n\t\t// and the inserter is not open.\n\t\tif ( event.target === ref.current && ! openRef.current ) {\n\t\t\thideInsertionPoint();\n\t\t}\n\t}\n\n\tfunction onFocus( event ) {\n\t\t// Only handle click on the wrapper specifically, and not an event\n\t\t// bubbled from the inserter itself.\n\t\tif ( event.target !== ref.current ) {\n\t\t\topenRef.current = true;\n\t\t}\n\t}\n\n\tconst lineVariants = {\n\t\t// Initial position starts from the center and invisible.\n\t\tstart: {\n\t\t\topacity: 0,\n\t\t\tscale: 0,\n\t\t},\n\t\t// The line expands to fill the container. If the inserter is visible it\n\t\t// is delayed so it appears orchestrated.\n\t\trest: {\n\t\t\topacity: 1,\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: isInserterShown ? 0.5 : 0, type: 'tween' },\n\t\t},\n\t\thover: {\n\t\t\topacity: 1,\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: 0.5, type: 'tween' },\n\t\t},\n\t};\n\n\tconst inserterVariants = {\n\t\tstart: {\n\t\t\tscale: disableMotion ? 1 : 0,\n\t\t},\n\t\trest: {\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: 0.4, type: 'tween' },\n\t\t},\n\t};\n\n\tif ( isDistractionFree && ! isNavigationMode ) {\n\t\treturn null;\n\t}\n\n\t// Zoom out mode should only show the insertion point for the insert operation.\n\t// Other operations such as \"group\" are when the editor tries to create a row\n\t// block by grouping the block being dragged with the block it's being dropped\n\t// onto.\n\tif ( isZoomOutMode && operation !== 'insert' ) {\n\t\treturn null;\n\t}\n\n\tconst orientationClassname =\n\t\torientation === 'horizontal' || operation === 'group'\n\t\t\t? 'is-horizontal'\n\t\t\t: 'is-vertical';\n\n\tconst className = clsx(\n\t\t'block-editor-block-list__insertion-point',\n\t\torientationClassname\n\t);\n\n\treturn (\n\t\t<BlockPopoverInbetween\n\t\t\tpreviousClientId={ previousClientId }\n\t\t\tnextClientId={ nextClientId }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\toperation={ operation }\n\t\t\tnearestSide={ nearestSide }\n\t\t>\n\t\t\t<motion.div\n\t\t\t\tlayout={ ! disableMotion }\n\t\t\t\tinitial={ disableMotion ? 'rest' : 'start' }\n\t\t\t\tanimate=\"rest\"\n\t\t\t\twhileHover=\"hover\"\n\t\t\t\twhileTap=\"pressed\"\n\t\t\t\texit=\"start\"\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tclassName={ clsx( className, {\n\t\t\t\t\t'is-with-inserter': isInserterShown,\n\t\t\t\t} ) }\n\t\t\t\tonHoverEnd={ maybeHideInserterPoint }\n\t\t\t>\n\t\t\t\t<motion.div\n\t\t\t\t\tvariants={ lineVariants }\n\t\t\t\t\tclassName=\"block-editor-block-list__insertion-point-indicator\"\n\t\t\t\t\tdata-testid=\"block-list-insertion-point-indicator\"\n\t\t\t\t/>\n\t\t\t\t{ isInserterShown && (\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tvariants={ inserterVariants }\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-block-list__insertion-point-inserter'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Inserter\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tclientId={ nextClientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t\t\tonToggle={ ( isOpen ) => {\n\t\t\t\t\t\t\t\topenRef.current = isOpen;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectOrClose={ () => {\n\t\t\t\t\t\t\t\topenRef.current = false;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</motion.div>\n\t\t\t\t) }\n\t\t\t</motion.div>\n\t\t</BlockPopoverInbetween>\n\t);\n}\n\nexport default function InsertionPoint( props ) {\n\tconst { insertionPoint, isVisible, isBlockListEmpty } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetBlockCount,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blockInsertionPoint = getBlockInsertionPoint();\n\t\t\treturn {\n\t\t\t\tinsertionPoint: blockInsertionPoint,\n\t\t\t\tisVisible: isBlockInsertionPointVisible(),\n\t\t\t\tisBlockListEmpty:\n\t\t\t\t\tgetBlockCount( blockInsertionPoint?.rootClientId ) === 0,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tif (\n\t\t! isVisible ||\n\t\t// Don't render the insertion point if the block list is empty.\n\t\t// The insertion point will be represented by the appender instead.\n\t\tisBlockListEmpty\n\t) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Render a popover that overlays the block when the desired operation is to replace it.\n\t * Otherwise, render a popover in between blocks for the indication of inserting between them.\n\t */\n\treturn insertionPoint.operation === 'replace' ? (\n\t\t<BlockDropZonePopover\n\t\t\t// Force remount to trigger the animation.\n\t\t\tkey={ `${ insertionPoint.rootClientId }-${ insertionPoint.index }` }\n\t\t\t{ ...props }\n\t\t/>\n\t) : (\n\t\t<InbetweenInsertionPointPopover\n\t\t\toperation={ insertionPoint.operation }\n\t\t\tnearestSide={ insertionPoint.nearestSide }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -20,6 +20,7 @@ export function useShowBlockTools() {
20
20
  getSelectedBlockClientId,
21
21
  getFirstMultiSelectedBlockClientId,
22
22
  getBlock,
23
+ getBlockMode,
23
24
  getSettings,
24
25
  hasMultiSelection,
25
26
  __unstableGetEditorMode,
@@ -29,7 +30,7 @@ export function useShowBlockTools() {
29
30
  const block = getBlock(clientId);
30
31
  const editorMode = __unstableGetEditorMode();
31
32
  const hasSelectedBlock = !!clientId && !!block;
32
- const isEmptyDefaultBlock = hasSelectedBlock && isUnmodifiedDefaultBlock(block);
33
+ const isEmptyDefaultBlock = hasSelectedBlock && isUnmodifiedDefaultBlock(block) && getBlockMode(clientId) !== 'html';
33
34
  const _showEmptyBlockSideInserter = clientId && !isTyping() && editorMode === 'edit' && isEmptyDefaultBlock;
34
35
  const maybeShowBreadcrumb = hasSelectedBlock && !hasMultiSelection() && editorMode === 'navigation';
35
36
  const isZoomOut = editorMode === 'zoom-out';