@wordpress/block-editor 13.4.0 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +11 -1
  3. package/build/components/block-breadcrumb/index.js +3 -1
  4. package/build/components/block-breadcrumb/index.js.map +1 -1
  5. package/build/components/block-draggable/index.js +2 -2
  6. package/build/components/block-draggable/index.js.map +1 -1
  7. package/build/components/block-list/use-block-props/use-block-refs.js +24 -32
  8. package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  9. package/build/components/block-mover/index.js +1 -2
  10. package/build/components/block-mover/index.js.map +1 -1
  11. package/build/components/block-popover/cover.js +1 -1
  12. package/build/components/block-popover/cover.js.map +1 -1
  13. package/build/components/block-popover/inbetween.js +2 -2
  14. package/build/components/block-popover/inbetween.js.map +1 -1
  15. package/build/components/block-popover/index.js +2 -2
  16. package/build/components/block-popover/index.js.map +1 -1
  17. package/build/components/block-tools/block-selection-button.js +1 -2
  18. package/build/components/block-tools/block-selection-button.js.map +1 -1
  19. package/build/components/block-tools/index.js +1 -1
  20. package/build/components/block-tools/index.js.map +1 -1
  21. package/build/components/block-tools/use-block-toolbar-popover-props.js +1 -1
  22. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  23. package/build/components/block-tools/zoom-out-mode-inserters.js +15 -16
  24. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  25. package/build/components/block-tools/zoom-out-toolbar.js +0 -1
  26. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  27. package/build/components/child-layout-control/index.js +3 -1
  28. package/build/components/child-layout-control/index.js.map +1 -1
  29. package/build/components/dimensions-tool/scale-tool.js +1 -0
  30. package/build/components/dimensions-tool/scale-tool.js.map +1 -1
  31. package/build/components/font-family/index.js +12 -0
  32. package/build/components/font-family/index.js.map +1 -1
  33. package/build/components/global-styles/background-panel.js +55 -51
  34. package/build/components/global-styles/background-panel.js.map +1 -1
  35. package/build/components/global-styles/image-settings-panel.js +1 -0
  36. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  37. package/build/components/global-styles/theme-file-uri-utils.js +0 -59
  38. package/build/components/global-styles/theme-file-uri-utils.js.map +1 -1
  39. package/build/components/global-styles/typography-panel.js +0 -1
  40. package/build/components/global-styles/typography-panel.js.map +1 -1
  41. package/build/components/global-styles/use-global-styles-output.js +58 -39
  42. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  43. package/build/components/global-styles/utils.js +96 -0
  44. package/build/components/global-styles/utils.js.map +1 -1
  45. package/build/components/grid/grid-item-movers.js +30 -26
  46. package/build/components/grid/grid-item-movers.js.map +1 -1
  47. package/build/components/grid/grid-item-resizer.js +14 -15
  48. package/build/components/grid/grid-item-resizer.js.map +1 -1
  49. package/build/components/grid/grid-visualizer.js +1 -1
  50. package/build/components/grid/grid-visualizer.js.map +1 -1
  51. package/build/components/grid/use-grid-layout-sync.js +56 -20
  52. package/build/components/grid/use-grid-layout-sync.js.map +1 -1
  53. package/build/components/iframe/index.js +4 -8
  54. package/build/components/iframe/index.js.map +1 -1
  55. package/build/components/inserter/category-tabs/index.js +29 -2
  56. package/build/components/inserter/category-tabs/index.js.map +1 -1
  57. package/build/components/inserter/menu.js +2 -2
  58. package/build/components/inserter/menu.js.map +1 -1
  59. package/build/components/line-height-control/index.js +0 -15
  60. package/build/components/line-height-control/index.js.map +1 -1
  61. package/build/components/link-control/search-input.js +0 -1
  62. package/build/components/link-control/search-input.js.map +1 -1
  63. package/build/components/media-replace-flow/index.js +3 -1
  64. package/build/components/media-replace-flow/index.js.map +1 -1
  65. package/build/components/resolution-tool/index.js +1 -0
  66. package/build/components/resolution-tool/index.js.map +1 -1
  67. package/build/components/skip-to-selected-block/index.js +4 -2
  68. package/build/components/skip-to-selected-block/index.js.map +1 -1
  69. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -6
  70. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  71. package/build/components/url-input/button.js +0 -1
  72. package/build/components/url-input/button.js.map +1 -1
  73. package/build/components/url-input/index.js +1 -11
  74. package/build/components/url-input/index.js.map +1 -1
  75. package/build/components/url-popover/link-editor.js +0 -1
  76. package/build/components/url-popover/link-editor.js.map +1 -1
  77. package/build/components/use-block-drop-zone/index.js +30 -4
  78. package/build/components/use-block-drop-zone/index.js.map +1 -1
  79. package/build/components/use-on-block-drop/index.js +3 -6
  80. package/build/components/use-on-block-drop/index.js.map +1 -1
  81. package/build/components/use-resize-canvas/index.js +1 -3
  82. package/build/components/use-resize-canvas/index.js.map +1 -1
  83. package/build/components/use-settings/index.js +2 -1
  84. package/build/components/use-settings/index.js.map +1 -1
  85. package/build/hooks/block-bindings.js +248 -36
  86. package/build/hooks/block-bindings.js.map +1 -1
  87. package/build/hooks/block-hooks.js +1 -0
  88. package/build/hooks/block-hooks.js.map +1 -1
  89. package/build/hooks/block-style-variation.js +2 -2
  90. package/build/hooks/block-style-variation.js.map +1 -1
  91. package/build/hooks/contrast-checker.js +6 -6
  92. package/build/hooks/contrast-checker.js.map +1 -1
  93. package/build/hooks/duotone.js +3 -3
  94. package/build/hooks/duotone.js.map +1 -1
  95. package/build/hooks/index.js +7 -1
  96. package/build/hooks/index.js.map +1 -1
  97. package/build/hooks/line-height.js +0 -1
  98. package/build/hooks/line-height.js.map +1 -1
  99. package/build/hooks/spacing-visualizer.js +1 -1
  100. package/build/hooks/spacing-visualizer.js.map +1 -1
  101. package/build/hooks/use-bindings-attributes.js +4 -0
  102. package/build/hooks/use-bindings-attributes.js.map +1 -1
  103. package/build/hooks/use-zoom-out.js +1 -1
  104. package/build/hooks/use-zoom-out.js.map +1 -1
  105. package/build/hooks/utils.js +20 -0
  106. package/build/hooks/utils.js.map +1 -1
  107. package/build/index.js +7 -0
  108. package/build/index.js.map +1 -1
  109. package/build/private-apis.js +0 -1
  110. package/build/private-apis.js.map +1 -1
  111. package/build/store/actions.js +9 -1
  112. package/build/store/actions.js.map +1 -1
  113. package/build/store/selectors.js +4 -4
  114. package/build/store/selectors.js.map +1 -1
  115. package/build/utils/get-editor-region.js +1 -1
  116. package/build/utils/get-editor-region.js.map +1 -1
  117. package/build/utils/get-px-from-css-unit.js +1 -1
  118. package/build/utils/get-px-from-css-unit.js.map +1 -1
  119. package/build-module/components/block-breadcrumb/index.js +4 -2
  120. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  121. package/build-module/components/block-draggable/index.js +3 -3
  122. package/build-module/components/block-draggable/index.js.map +1 -1
  123. package/build-module/components/block-list/use-block-props/use-block-refs.js +24 -34
  124. package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  125. package/build-module/components/block-mover/index.js +1 -2
  126. package/build-module/components/block-mover/index.js.map +1 -1
  127. package/build-module/components/block-popover/cover.js +1 -1
  128. package/build-module/components/block-popover/cover.js.map +1 -1
  129. package/build-module/components/block-popover/inbetween.js +1 -1
  130. package/build-module/components/block-popover/inbetween.js.map +1 -1
  131. package/build-module/components/block-popover/index.js +1 -1
  132. package/build-module/components/block-popover/index.js.map +1 -1
  133. package/build-module/components/block-tools/block-selection-button.js +1 -2
  134. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  135. package/build-module/components/block-tools/index.js +1 -1
  136. package/build-module/components/block-tools/index.js.map +1 -1
  137. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +1 -1
  138. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  139. package/build-module/components/block-tools/zoom-out-mode-inserters.js +16 -17
  140. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  141. package/build-module/components/block-tools/zoom-out-toolbar.js +0 -1
  142. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  143. package/build-module/components/child-layout-control/index.js +3 -1
  144. package/build-module/components/child-layout-control/index.js.map +1 -1
  145. package/build-module/components/dimensions-tool/scale-tool.js +1 -0
  146. package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
  147. package/build-module/components/font-family/index.js +11 -0
  148. package/build-module/components/font-family/index.js.map +1 -1
  149. package/build-module/components/global-styles/background-panel.js +55 -51
  150. package/build-module/components/global-styles/background-panel.js.map +1 -1
  151. package/build-module/components/global-styles/image-settings-panel.js +1 -0
  152. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  153. package/build-module/components/global-styles/theme-file-uri-utils.js +0 -58
  154. package/build-module/components/global-styles/theme-file-uri-utils.js.map +1 -1
  155. package/build-module/components/global-styles/typography-panel.js +0 -1
  156. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  157. package/build-module/components/global-styles/use-global-styles-output.js +57 -38
  158. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  159. package/build-module/components/global-styles/utils.js +92 -0
  160. package/build-module/components/global-styles/utils.js.map +1 -1
  161. package/build-module/components/grid/grid-item-movers.js +30 -26
  162. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  163. package/build-module/components/grid/grid-item-resizer.js +14 -15
  164. package/build-module/components/grid/grid-item-resizer.js.map +1 -1
  165. package/build-module/components/grid/grid-visualizer.js +1 -1
  166. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  167. package/build-module/components/grid/use-grid-layout-sync.js +56 -20
  168. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
  169. package/build-module/components/iframe/index.js +4 -8
  170. package/build-module/components/iframe/index.js.map +1 -1
  171. package/build-module/components/inserter/category-tabs/index.js +30 -3
  172. package/build-module/components/inserter/category-tabs/index.js.map +1 -1
  173. package/build-module/components/inserter/menu.js +2 -2
  174. package/build-module/components/inserter/menu.js.map +1 -1
  175. package/build-module/components/line-height-control/index.js +0 -14
  176. package/build-module/components/line-height-control/index.js.map +1 -1
  177. package/build-module/components/link-control/search-input.js +0 -1
  178. package/build-module/components/link-control/search-input.js.map +1 -1
  179. package/build-module/components/media-replace-flow/index.js +3 -1
  180. package/build-module/components/media-replace-flow/index.js.map +1 -1
  181. package/build-module/components/resolution-tool/index.js +1 -0
  182. package/build-module/components/resolution-tool/index.js.map +1 -1
  183. package/build-module/components/skip-to-selected-block/index.js +5 -3
  184. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  185. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -6
  186. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  187. package/build-module/components/url-input/button.js +0 -1
  188. package/build-module/components/url-input/button.js.map +1 -1
  189. package/build-module/components/url-input/index.js +1 -11
  190. package/build-module/components/url-input/index.js.map +1 -1
  191. package/build-module/components/url-popover/link-editor.js +0 -1
  192. package/build-module/components/url-popover/link-editor.js.map +1 -1
  193. package/build-module/components/use-block-drop-zone/index.js +30 -4
  194. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  195. package/build-module/components/use-on-block-drop/index.js +3 -6
  196. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  197. package/build-module/components/use-resize-canvas/index.js +1 -3
  198. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  199. package/build-module/components/use-settings/index.js +2 -1
  200. package/build-module/components/use-settings/index.js.map +1 -1
  201. package/build-module/hooks/block-bindings.js +253 -40
  202. package/build-module/hooks/block-bindings.js.map +1 -1
  203. package/build-module/hooks/block-hooks.js +1 -0
  204. package/build-module/hooks/block-hooks.js.map +1 -1
  205. package/build-module/hooks/block-style-variation.js +3 -3
  206. package/build-module/hooks/block-style-variation.js.map +1 -1
  207. package/build-module/hooks/contrast-checker.js +7 -7
  208. package/build-module/hooks/contrast-checker.js.map +1 -1
  209. package/build-module/hooks/duotone.js +4 -4
  210. package/build-module/hooks/duotone.js.map +1 -1
  211. package/build-module/hooks/index.js +2 -1
  212. package/build-module/hooks/index.js.map +1 -1
  213. package/build-module/hooks/line-height.js +0 -1
  214. package/build-module/hooks/line-height.js.map +1 -1
  215. package/build-module/hooks/spacing-visualizer.js +1 -1
  216. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  217. package/build-module/hooks/use-bindings-attributes.js +3 -0
  218. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  219. package/build-module/hooks/use-zoom-out.js +1 -1
  220. package/build-module/hooks/use-zoom-out.js.map +1 -1
  221. package/build-module/hooks/utils.js +19 -0
  222. package/build-module/hooks/utils.js.map +1 -1
  223. package/build-module/index.js +1 -1
  224. package/build-module/index.js.map +1 -1
  225. package/build-module/private-apis.js +1 -2
  226. package/build-module/private-apis.js.map +1 -1
  227. package/build-module/store/actions.js +9 -1
  228. package/build-module/store/actions.js.map +1 -1
  229. package/build-module/store/selectors.js +4 -4
  230. package/build-module/store/selectors.js.map +1 -1
  231. package/build-module/utils/get-editor-region.js +1 -1
  232. package/build-module/utils/get-editor-region.js.map +1 -1
  233. package/build-module/utils/get-px-from-css-unit.js +1 -1
  234. package/build-module/utils/get-px-from-css-unit.js.map +1 -1
  235. package/build-style/content-rtl.css +5 -12
  236. package/build-style/content.css +5 -12
  237. package/build-style/default-editor-styles-rtl.css +3 -0
  238. package/build-style/default-editor-styles.css +3 -0
  239. package/build-style/style-rtl.css +88 -46
  240. package/build-style/style.css +88 -46
  241. package/package.json +31 -31
  242. package/src/autocompleters/style.scss +4 -0
  243. package/src/components/block-breadcrumb/index.js +4 -2
  244. package/src/components/block-canvas/style.scss +1 -0
  245. package/src/components/block-draggable/index.js +3 -3
  246. package/src/components/block-list/use-block-props/use-block-refs.js +27 -43
  247. package/src/components/block-mover/index.js +5 -2
  248. package/src/components/block-popover/cover.js +1 -1
  249. package/src/components/block-popover/inbetween.js +1 -1
  250. package/src/components/block-popover/index.js +1 -1
  251. package/src/components/block-tools/block-selection-button.js +1 -2
  252. package/src/components/block-tools/index.js +5 -6
  253. package/src/components/block-tools/use-block-toolbar-popover-props.js +1 -1
  254. package/src/components/block-tools/zoom-out-mode-inserters.js +14 -18
  255. package/src/components/block-tools/zoom-out-toolbar.js +0 -1
  256. package/src/components/button-block-appender/content.scss +1 -1
  257. package/src/components/child-layout-control/index.js +2 -0
  258. package/src/components/color-palette/test/__snapshots__/control.js.snap +2 -2
  259. package/src/components/colors-gradients/test/control.js +3 -2
  260. package/src/components/dimensions-tool/scale-tool.js +1 -0
  261. package/src/components/font-family/README.md +8 -0
  262. package/src/components/font-family/index.js +16 -0
  263. package/src/components/font-family/stories/index.story.js +54 -0
  264. package/src/components/global-styles/background-panel.js +69 -61
  265. package/src/components/global-styles/image-settings-panel.js +1 -0
  266. package/src/components/global-styles/style.scss +0 -10
  267. package/src/components/global-styles/test/theme-file-uri-utils.js +1 -26
  268. package/src/components/global-styles/test/use-global-styles-output.js +49 -4
  269. package/src/components/global-styles/test/utils.js +120 -0
  270. package/src/components/global-styles/theme-file-uri-utils.js +0 -59
  271. package/src/components/global-styles/typography-panel.js +0 -1
  272. package/src/components/global-styles/use-global-styles-output.js +67 -48
  273. package/src/components/global-styles/utils.js +112 -0
  274. package/src/components/grid/grid-item-movers.js +46 -44
  275. package/src/components/grid/grid-item-resizer.js +11 -17
  276. package/src/components/grid/grid-visualizer.js +1 -1
  277. package/src/components/grid/style.scss +60 -10
  278. package/src/components/grid/use-grid-layout-sync.js +68 -14
  279. package/src/components/iframe/content.scss +2 -2
  280. package/src/components/iframe/index.js +3 -7
  281. package/src/components/inserter/category-tabs/index.js +35 -2
  282. package/src/components/inserter/menu.js +2 -2
  283. package/src/components/inserter/style.scss +16 -11
  284. package/src/components/inspector-controls/README.md +5 -0
  285. package/src/components/line-height-control/README.md +0 -8
  286. package/src/components/line-height-control/index.js +1 -21
  287. package/src/components/line-height-control/stories/index.story.js +0 -1
  288. package/src/components/line-height-control/test/index.js +1 -7
  289. package/src/components/link-control/search-input.js +0 -1
  290. package/src/components/media-replace-flow/README.md +7 -0
  291. package/src/components/media-replace-flow/index.js +3 -1
  292. package/src/components/resolution-tool/index.js +1 -0
  293. package/src/components/responsive-block-control/test/index.js +5 -1
  294. package/src/components/skip-to-selected-block/index.js +5 -3
  295. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -6
  296. package/src/components/tabbed-sidebar/style.scss +1 -19
  297. package/src/components/url-input/README.md +0 -5
  298. package/src/components/url-input/button.js +0 -1
  299. package/src/components/url-input/index.js +1 -15
  300. package/src/components/url-popover/link-editor.js +0 -1
  301. package/src/components/use-block-drop-zone/index.js +66 -14
  302. package/src/components/use-on-block-drop/index.js +1 -9
  303. package/src/components/use-resize-canvas/index.js +1 -3
  304. package/src/components/use-settings/index.js +2 -1
  305. package/src/hooks/block-bindings.js +303 -52
  306. package/src/hooks/block-bindings.scss +13 -2
  307. package/src/hooks/block-hooks.js +1 -0
  308. package/src/hooks/block-hooks.scss +1 -0
  309. package/src/hooks/block-style-variation.js +3 -3
  310. package/src/hooks/contrast-checker.js +7 -7
  311. package/src/hooks/duotone.js +4 -4
  312. package/src/hooks/index.js +2 -1
  313. package/src/hooks/line-height.js +0 -1
  314. package/src/hooks/spacing-visualizer.js +1 -1
  315. package/src/hooks/use-bindings-attributes.js +4 -0
  316. package/src/hooks/use-editor-wrapper-styles.native.scss +1 -0
  317. package/src/hooks/use-zoom-out.js +1 -1
  318. package/src/hooks/utils.js +14 -1
  319. package/src/index.js +1 -0
  320. package/src/private-apis.js +1 -2
  321. package/src/store/actions.js +13 -5
  322. package/src/store/selectors.js +4 -4
  323. package/src/style.scss +1 -1
  324. package/src/utils/get-editor-region.js +1 -1
  325. package/src/utils/get-px-from-css-unit.js +1 -1
  326. package/tsconfig.tsbuildinfo +1 -1
  327. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -30
  328. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +0 -1
  329. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -23
  330. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +0 -1
  331. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +0 -25
@@ -25,7 +25,7 @@ function getEditorRegion(editor) {
25
25
  return iframeDocument === editor.ownerDocument;
26
26
  })) !== null && _Array$from$find !== void 0 ? _Array$from$find : editor;
27
27
 
28
- // The region is provivided by the editor, not the block-editor.
28
+ // The region is provided by the editor, not the block-editor.
29
29
  // We should send focus to the region if one is available to reuse the
30
30
  // same interface for navigating landmarks. If no region is available,
31
31
  // use the canvas instead.
@@ -1 +1 @@
1
- {"version":3,"names":["getEditorRegion","editor","_Array$from$find","_editorCanvas$closest","editorCanvas","Array","from","document","querySelectorAll","values","find","iframe","iframeDocument","contentDocument","contentWindow","ownerDocument","closest"],"sources":["@wordpress/block-editor/src/utils/get-editor-region.js"],"sourcesContent":["/**\n * Gets the editor region for a given editor canvas element or\n * returns the passed element if no region is found\n *\n * @param { Object } editor The editor canvas element.\n * @return { Object } The editor region or given editor element\n */\nexport default function getEditorRegion( editor ) {\n\tif ( ! editor ) {\n\t\treturn null;\n\t}\n\n\t// If there are multiple editors, we need to find the iframe that contains our contentRef to make sure\n\t// we're focusing the region that contains this editor.\n\tconst editorCanvas =\n\t\tArray.from(\n\t\t\tdocument.querySelectorAll( 'iframe[name=\"editor-canvas\"]' ).values()\n\t\t).find( ( iframe ) => {\n\t\t\t// Find the iframe that contains our contentRef\n\t\t\tconst iframeDocument =\n\t\t\t\tiframe.contentDocument || iframe.contentWindow.document;\n\n\t\t\treturn iframeDocument === editor.ownerDocument;\n\t\t} ) ?? editor;\n\n\t// The region is provivided by the editor, not the block-editor.\n\t// We should send focus to the region if one is available to reuse the\n\t// same interface for navigating landmarks. If no region is available,\n\t// use the canvas instead.\n\treturn editorCanvas?.closest( '[role=\"region\"]' ) ?? editorCanvas;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,eAAeA,CAAEC,MAAM,EAAG;EAAA,IAAAC,gBAAA,EAAAC,qBAAA;EACjD,IAAK,CAAEF,MAAM,EAAG;IACf,OAAO,IAAI;EACZ;;EAEA;EACA;EACA,MAAMG,YAAY,IAAAF,gBAAA,GACjBG,KAAK,CAACC,IAAI,CACTC,QAAQ,CAACC,gBAAgB,CAAE,8BAA+B,CAAC,CAACC,MAAM,CAAC,CACpE,CAAC,CAACC,IAAI,CAAIC,MAAM,IAAM;IACrB;IACA,MAAMC,cAAc,GACnBD,MAAM,CAACE,eAAe,IAAIF,MAAM,CAACG,aAAa,CAACP,QAAQ;IAExD,OAAOK,cAAc,KAAKX,MAAM,CAACc,aAAa;EAC/C,CAAE,CAAC,cAAAb,gBAAA,cAAAA,gBAAA,GAAID,MAAM;;EAEd;EACA;EACA;EACA;EACA,QAAAE,qBAAA,GAAOC,YAAY,EAAEY,OAAO,CAAE,iBAAkB,CAAC,cAAAb,qBAAA,cAAAA,qBAAA,GAAIC,YAAY;AAClE","ignoreList":[]}
1
+ {"version":3,"names":["getEditorRegion","editor","_Array$from$find","_editorCanvas$closest","editorCanvas","Array","from","document","querySelectorAll","values","find","iframe","iframeDocument","contentDocument","contentWindow","ownerDocument","closest"],"sources":["@wordpress/block-editor/src/utils/get-editor-region.js"],"sourcesContent":["/**\n * Gets the editor region for a given editor canvas element or\n * returns the passed element if no region is found\n *\n * @param { Object } editor The editor canvas element.\n * @return { Object } The editor region or given editor element\n */\nexport default function getEditorRegion( editor ) {\n\tif ( ! editor ) {\n\t\treturn null;\n\t}\n\n\t// If there are multiple editors, we need to find the iframe that contains our contentRef to make sure\n\t// we're focusing the region that contains this editor.\n\tconst editorCanvas =\n\t\tArray.from(\n\t\t\tdocument.querySelectorAll( 'iframe[name=\"editor-canvas\"]' ).values()\n\t\t).find( ( iframe ) => {\n\t\t\t// Find the iframe that contains our contentRef\n\t\t\tconst iframeDocument =\n\t\t\t\tiframe.contentDocument || iframe.contentWindow.document;\n\n\t\t\treturn iframeDocument === editor.ownerDocument;\n\t\t} ) ?? editor;\n\n\t// The region is provided by the editor, not the block-editor.\n\t// We should send focus to the region if one is available to reuse the\n\t// same interface for navigating landmarks. If no region is available,\n\t// use the canvas instead.\n\treturn editorCanvas?.closest( '[role=\"region\"]' ) ?? editorCanvas;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,eAAeA,CAAEC,MAAM,EAAG;EAAA,IAAAC,gBAAA,EAAAC,qBAAA;EACjD,IAAK,CAAEF,MAAM,EAAG;IACf,OAAO,IAAI;EACZ;;EAEA;EACA;EACA,MAAMG,YAAY,IAAAF,gBAAA,GACjBG,KAAK,CAACC,IAAI,CACTC,QAAQ,CAACC,gBAAgB,CAAE,8BAA+B,CAAC,CAACC,MAAM,CAAC,CACpE,CAAC,CAACC,IAAI,CAAIC,MAAM,IAAM;IACrB;IACA,MAAMC,cAAc,GACnBD,MAAM,CAACE,eAAe,IAAIF,MAAM,CAACG,aAAa,CAACP,QAAQ;IAExD,OAAOK,cAAc,KAAKX,MAAM,CAACc,aAAa;EAC/C,CAAE,CAAC,cAAAb,gBAAA,cAAAA,gBAAA,GAAID,MAAM;;EAEd;EACA;EACA;EACA;EACA,QAAAE,qBAAA,GAAOC,YAAY,EAAEY,OAAO,CAAE,iBAAkB,CAAC,cAAAb,qBAAA,cAAAA,qBAAA,GAAIC,YAAY;AAClE","ignoreList":[]}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  /**
8
- * This function was accidentially exposed for mobile/native usage.
8
+ * This function was accidentally exposed for mobile/native usage.
9
9
  *
10
10
  * @deprecated
11
11
  *
@@ -1 +1 @@
1
- {"version":3,"names":["_default","exports","default"],"sources":["@wordpress/block-editor/src/utils/get-px-from-css-unit.js"],"sourcesContent":["/**\n * This function was accidentially exposed for mobile/native usage.\n *\n * @deprecated\n *\n * @return {string} Empty string.\n */\nexport default () => '';\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AANA,IAAAA,QAAA,GAOeA,CAAA,KAAM,EAAE;AAAAC,OAAA,CAAAC,OAAA,GAAAF,QAAA","ignoreList":[]}
1
+ {"version":3,"names":["_default","exports","default"],"sources":["@wordpress/block-editor/src/utils/get-px-from-css-unit.js"],"sourcesContent":["/**\n * This function was accidentally exposed for mobile/native usage.\n *\n * @deprecated\n *\n * @return {string} Empty string.\n */\nexport default () => '';\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AANA,IAAAA,QAAA,GAOeA,CAAA,KAAM,EAAE;AAAAC,OAAA,CAAAC,OAAA,GAAAF,QAAA","ignoreList":[]}
@@ -5,6 +5,7 @@ import { Button } from '@wordpress/components';
5
5
  import { useSelect, useDispatch } from '@wordpress/data';
6
6
  import { __ } from '@wordpress/i18n';
7
7
  import { chevronRightSmall, Icon } from '@wordpress/icons';
8
+ import { useRef } from '@wordpress/element';
8
9
 
9
10
  /**
10
11
  * Internal dependencies
@@ -12,7 +13,7 @@ import { chevronRightSmall, Icon } from '@wordpress/icons';
12
13
  import BlockTitle from '../block-title';
13
14
  import { store as blockEditorStore } from '../../store';
14
15
  import { unlock } from '../../lock-unlock';
15
- import { __unstableUseBlockRef as useBlockRef } from '../block-list/use-block-props/use-block-refs';
16
+ import { useBlockElementRef } from '../block-list/use-block-props/use-block-refs';
16
17
  import getEditorRegion from '../../utils/get-editor-region';
17
18
 
18
19
  /**
@@ -52,7 +53,8 @@ function BlockBreadcrumb({
52
53
 
53
54
  // We don't care about this specific ref, but this is a way
54
55
  // to get a ref within the editor canvas so we can focus it later.
55
- const blockRef = useBlockRef(clientId);
56
+ const blockRef = useRef();
57
+ useBlockElementRef(clientId, blockRef);
56
58
 
57
59
  /*
58
60
  * Disable reason: The `list` ARIA role is redundant but
@@ -1 +1 @@
1
- {"version":3,"names":["Button","useSelect","useDispatch","__","chevronRightSmall","Icon","BlockTitle","store","blockEditorStore","unlock","__unstableUseBlockRef","useBlockRef","getEditorRegion","jsx","_jsx","jsxs","_jsxs","BlockBreadcrumb","rootLabelText","selectBlock","clearSelectedBlock","clientId","parents","hasSelection","select","getSelectionStart","getSelectedBlockClientId","getEnabledBlockParents","selectedBlockClientId","rootLabel","blockRef","className","role","children","undefined","variant","onClick","blockEditor","current","closest","focus","icon","map","parentClientId","maximumLength"],"sources":["@wordpress/block-editor/src/components/block-breadcrumb/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { chevronRightSmall, Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockTitle from '../block-title';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { __unstableUseBlockRef as useBlockRef } from '../block-list/use-block-props/use-block-refs';\nimport getEditorRegion from '../../utils/get-editor-region';\n\n/**\n * Block breadcrumb component, displaying the hierarchy of the current block selection as a breadcrumb.\n *\n * @param {Object} props Component props.\n * @param {string} props.rootLabelText Translated label for the root element of the breadcrumb trail.\n * @return {Element} Block Breadcrumb.\n */\nfunction BlockBreadcrumb( { rootLabelText } ) {\n\tconst { selectBlock, clearSelectedBlock } = useDispatch( blockEditorStore );\n\tconst { clientId, parents, hasSelection } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetEnabledBlockParents,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\treturn {\n\t\t\tparents: getEnabledBlockParents( selectedBlockClientId ),\n\t\t\tclientId: selectedBlockClientId,\n\t\t\thasSelection: !! getSelectionStart().clientId,\n\t\t};\n\t}, [] );\n\tconst rootLabel = rootLabelText || __( 'Document' );\n\n\t// We don't care about this specific ref, but this is a way\n\t// to get a ref within the editor canvas so we can focus it later.\n\tconst blockRef = useBlockRef( clientId );\n\n\t/*\n\t * Disable reason: The `list` ARIA role is redundant but\n\t * Safari+VoiceOver won't announce the list otherwise.\n\t */\n\t/* eslint-disable jsx-a11y/no-redundant-roles */\n\treturn (\n\t\t<ul\n\t\t\tclassName=\"block-editor-block-breadcrumb\"\n\t\t\trole=\"list\"\n\t\t\taria-label={ __( 'Block breadcrumb' ) }\n\t\t>\n\t\t\t<li\n\t\t\t\tclassName={\n\t\t\t\t\t! hasSelection\n\t\t\t\t\t\t? 'block-editor-block-breadcrumb__current'\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\taria-current={ ! hasSelection ? 'true' : undefined }\n\t\t\t>\n\t\t\t\t{ hasSelection && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__button\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t// Find the block editor wrapper for the selected block\n\t\t\t\t\t\t\tconst blockEditor = blockRef.current?.closest(\n\t\t\t\t\t\t\t\t'.editor-styles-wrapper'\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tclearSelectedBlock();\n\n\t\t\t\t\t\t\tgetEditorRegion( blockEditor )?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ rootLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\t{ ! hasSelection && rootLabel }\n\t\t\t\t{ !! clientId && (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ chevronRightSmall }\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__separator\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</li>\n\n\t\t\t{ parents.map( ( parentClientId ) => (\n\t\t\t\t<li key={ parentClientId }>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__button\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => selectBlock( parentClientId ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\tclientId={ parentClientId }\n\t\t\t\t\t\t\tmaximumLength={ 35 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ chevronRightSmall }\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__separator\"\n\t\t\t\t\t/>\n\t\t\t\t</li>\n\t\t\t) ) }\n\t\t\t{ !! clientId && (\n\t\t\t\t<li\n\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__current\"\n\t\t\t\t\taria-current=\"true\"\n\t\t\t\t>\n\t\t\t\t\t<BlockTitle clientId={ clientId } maximumLength={ 35 } />\n\t\t\t\t</li>\n\t\t\t) }\n\t\t</ul>\n\t\t/* eslint-enable jsx-a11y/no-redundant-roles */\n\t);\n}\n\nexport default BlockBreadcrumb;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Button","useSelect","useDispatch","__","chevronRightSmall","Icon","useRef","BlockTitle","store","blockEditorStore","unlock","useBlockElementRef","getEditorRegion","jsx","_jsx","jsxs","_jsxs","BlockBreadcrumb","rootLabelText","selectBlock","clearSelectedBlock","clientId","parents","hasSelection","select","getSelectionStart","getSelectedBlockClientId","getEnabledBlockParents","selectedBlockClientId","rootLabel","blockRef","className","role","children","undefined","variant","onClick","blockEditor","current","closest","focus","icon","map","parentClientId","maximumLength"],"sources":["@wordpress/block-editor/src/components/block-breadcrumb/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { chevronRightSmall, Icon } from '@wordpress/icons';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockTitle from '../block-title';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useBlockElementRef } from '../block-list/use-block-props/use-block-refs';\nimport getEditorRegion from '../../utils/get-editor-region';\n\n/**\n * Block breadcrumb component, displaying the hierarchy of the current block selection as a breadcrumb.\n *\n * @param {Object} props Component props.\n * @param {string} props.rootLabelText Translated label for the root element of the breadcrumb trail.\n * @return {Element} Block Breadcrumb.\n */\nfunction BlockBreadcrumb( { rootLabelText } ) {\n\tconst { selectBlock, clearSelectedBlock } = useDispatch( blockEditorStore );\n\tconst { clientId, parents, hasSelection } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetEnabledBlockParents,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\treturn {\n\t\t\tparents: getEnabledBlockParents( selectedBlockClientId ),\n\t\t\tclientId: selectedBlockClientId,\n\t\t\thasSelection: !! getSelectionStart().clientId,\n\t\t};\n\t}, [] );\n\tconst rootLabel = rootLabelText || __( 'Document' );\n\n\t// We don't care about this specific ref, but this is a way\n\t// to get a ref within the editor canvas so we can focus it later.\n\tconst blockRef = useRef();\n\tuseBlockElementRef( clientId, blockRef );\n\n\t/*\n\t * Disable reason: The `list` ARIA role is redundant but\n\t * Safari+VoiceOver won't announce the list otherwise.\n\t */\n\t/* eslint-disable jsx-a11y/no-redundant-roles */\n\treturn (\n\t\t<ul\n\t\t\tclassName=\"block-editor-block-breadcrumb\"\n\t\t\trole=\"list\"\n\t\t\taria-label={ __( 'Block breadcrumb' ) }\n\t\t>\n\t\t\t<li\n\t\t\t\tclassName={\n\t\t\t\t\t! hasSelection\n\t\t\t\t\t\t? 'block-editor-block-breadcrumb__current'\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\taria-current={ ! hasSelection ? 'true' : undefined }\n\t\t\t>\n\t\t\t\t{ hasSelection && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__button\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t// Find the block editor wrapper for the selected block\n\t\t\t\t\t\t\tconst blockEditor = blockRef.current?.closest(\n\t\t\t\t\t\t\t\t'.editor-styles-wrapper'\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tclearSelectedBlock();\n\n\t\t\t\t\t\t\tgetEditorRegion( blockEditor )?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ rootLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\t{ ! hasSelection && rootLabel }\n\t\t\t\t{ !! clientId && (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ chevronRightSmall }\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__separator\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</li>\n\n\t\t\t{ parents.map( ( parentClientId ) => (\n\t\t\t\t<li key={ parentClientId }>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__button\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => selectBlock( parentClientId ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\tclientId={ parentClientId }\n\t\t\t\t\t\t\tmaximumLength={ 35 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ chevronRightSmall }\n\t\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__separator\"\n\t\t\t\t\t/>\n\t\t\t\t</li>\n\t\t\t) ) }\n\t\t\t{ !! clientId && (\n\t\t\t\t<li\n\t\t\t\t\tclassName=\"block-editor-block-breadcrumb__current\"\n\t\t\t\t\taria-current=\"true\"\n\t\t\t\t>\n\t\t\t\t\t<BlockTitle clientId={ clientId } maximumLength={ 35 } />\n\t\t\t\t</li>\n\t\t\t) }\n\t\t</ul>\n\t\t/* eslint-enable jsx-a11y/no-redundant-roles */\n\t);\n}\n\nexport default BlockBreadcrumb;\n"],"mappings":"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","ignoreList":[]}
@@ -13,7 +13,7 @@ import { throttle } from '@wordpress/compose';
13
13
  import BlockDraggableChip from './draggable-chip';
14
14
  import useScrollWhenDragging from './use-scroll-when-dragging';
15
15
  import { store as blockEditorStore } from '../../store';
16
- import { __unstableUseBlockRef as useBlockRef } from '../block-list/use-block-props/use-block-refs';
16
+ import { useBlockElement } from '../block-list/use-block-props/use-block-refs';
17
17
  import { isDropTargetValid } from '../use-block-drop-zone';
18
18
  import { jsx as _jsx } from "react/jsx-runtime";
19
19
  const BlockDraggable = ({
@@ -78,8 +78,8 @@ const BlockDraggable = ({
78
78
  }, []);
79
79
 
80
80
  // Find the root of the editor iframe.
81
- const blockRef = useBlockRef(clientIds[0]);
82
- const editorRoot = blockRef.current?.closest('body');
81
+ const blockEl = useBlockElement(clientIds[0]);
82
+ const editorRoot = blockEl?.closest('body');
83
83
 
84
84
  /*
85
85
  * Add a dragover event listener to the editor root to track the blocks being dragged over.
@@ -1 +1 @@
1
- {"version":3,"names":["store","blocksStore","Draggable","useSelect","useDispatch","useEffect","useRef","throttle","BlockDraggableChip","useScrollWhenDragging","blockEditorStore","__unstableUseBlockRef","useBlockRef","isDropTargetValid","jsx","_jsx","BlockDraggable","appendToOwnerDocument","children","clientIds","cloneClassname","elementId","onDragStart","onDragEnd","fadeWhenDisabled","dragComponent","srcRootClientId","isDraggable","icon","visibleInserter","getBlockType","select","canMoveBlocks","getBlockRootClientId","getBlockName","getBlockAttributes","isBlockInsertionPointVisible","_getBlockType","getActiveBlockVariation","rootClientId","blockName","variation","isDragging","startScrolling","scrollOnDragOver","stopScrolling","getAllowedBlocks","getBlockNamesByClientId","startDraggingBlocks","stopDraggingBlocks","current","blockRef","editorRoot","closest","onDragOver","event","target","draggedBlockNames","targetClientId","getAttribute","allowedBlocks","targetBlockName","dropTargetValid","length","targetRootClientId","targetRootBlockName","rootAllowedBlocks","window","document","body","classList","add","remove","throttledOnDragOver","addEventListener","removeEventListener","draggable","transferData","type","srcClientIds","__experimentalTransferDataType","requestAnimationFrame","__experimentalDragComponent","undefined","count","onDraggableStart","onDraggableEnd"],"sources":["@wordpress/block-editor/src/components/block-draggable/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Draggable } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { throttle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggableChip from './draggable-chip';\nimport useScrollWhenDragging from './use-scroll-when-dragging';\nimport { store as blockEditorStore } from '../../store';\nimport { __unstableUseBlockRef as useBlockRef } from '../block-list/use-block-props/use-block-refs';\nimport { isDropTargetValid } from '../use-block-drop-zone';\n\nconst BlockDraggable = ( {\n\tappendToOwnerDocument,\n\tchildren,\n\tclientIds,\n\tcloneClassname,\n\telementId,\n\tonDragStart,\n\tonDragEnd,\n\tfadeWhenDisabled = false,\n\tdragComponent,\n} ) => {\n\tconst {\n\t\tsrcRootClientId,\n\t\tisDraggable,\n\t\ticon,\n\t\tvisibleInserter,\n\t\tgetBlockType,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockType: _getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\tconst blockName = getBlockName( clientIds[ 0 ] );\n\t\t\tconst variation = getActiveBlockVariation(\n\t\t\t\tblockName,\n\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tsrcRootClientId: rootClientId,\n\t\t\t\tisDraggable: canMoveBlocks( clientIds ),\n\t\t\t\ticon: variation?.icon || _getBlockType( blockName )?.icon,\n\t\t\t\tvisibleInserter: isBlockInsertionPointVisible(),\n\t\t\t\tgetBlockType: _getBlockType,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst isDragging = useRef( false );\n\tconst [ startScrolling, scrollOnDragOver, stopScrolling ] =\n\t\tuseScrollWhenDragging();\n\n\tconst { getAllowedBlocks, getBlockNamesByClientId, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { startDraggingBlocks, stopDraggingBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// Stop dragging blocks if the block draggable is unmounted.\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif ( isDragging.current ) {\n\t\t\t\tstopDraggingBlocks();\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\t// Find the root of the editor iframe.\n\tconst blockRef = useBlockRef( clientIds[ 0 ] );\n\tconst editorRoot = blockRef.current?.closest( 'body' );\n\n\t/*\n\t * Add a dragover event listener to the editor root to track the blocks being dragged over.\n\t * The listener has to be inside the editor iframe otherwise the target isn't accessible.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! editorRoot || ! fadeWhenDisabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst onDragOver = ( event ) => {\n\t\t\tif ( ! event.target.closest( '[data-block]' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst draggedBlockNames = getBlockNamesByClientId( clientIds );\n\t\t\tconst targetClientId = event.target\n\t\t\t\t.closest( '[data-block]' )\n\t\t\t\t.getAttribute( 'data-block' );\n\n\t\t\tconst allowedBlocks = getAllowedBlocks( targetClientId );\n\t\t\tconst targetBlockName = getBlockNamesByClientId( [\n\t\t\t\ttargetClientId,\n\t\t\t] )[ 0 ];\n\n\t\t\t/*\n\t\t\t * Check if the target is valid to drop in.\n\t\t\t * If the target's allowedBlocks is an empty array,\n\t\t\t * it isn't a container block, in which case we check\n\t\t\t * its parent's validity instead.\n\t\t\t */\n\t\t\tlet dropTargetValid;\n\t\t\tif ( allowedBlocks?.length === 0 ) {\n\t\t\t\tconst targetRootClientId =\n\t\t\t\t\tgetBlockRootClientId( targetClientId );\n\t\t\t\tconst targetRootBlockName = getBlockNamesByClientId( [\n\t\t\t\t\ttargetRootClientId,\n\t\t\t\t] )[ 0 ];\n\t\t\t\tconst rootAllowedBlocks =\n\t\t\t\t\tgetAllowedBlocks( targetRootClientId );\n\t\t\t\tdropTargetValid = isDropTargetValid(\n\t\t\t\t\tgetBlockType,\n\t\t\t\t\trootAllowedBlocks,\n\t\t\t\t\tdraggedBlockNames,\n\t\t\t\t\ttargetRootBlockName\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdropTargetValid = isDropTargetValid(\n\t\t\t\t\tgetBlockType,\n\t\t\t\t\tallowedBlocks,\n\t\t\t\t\tdraggedBlockNames,\n\t\t\t\t\ttargetBlockName\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * Update the body class to reflect if drop target is valid.\n\t\t\t * This has to be done on the document body because the draggable\n\t\t\t * chip is rendered outside of the editor iframe.\n\t\t\t */\n\t\t\tif ( ! dropTargetValid && ! visibleInserter ) {\n\t\t\t\twindow?.document?.body?.classList?.add(\n\t\t\t\t\t'block-draggable-invalid-drag-token'\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\twindow?.document?.body?.classList?.remove(\n\t\t\t\t\t'block-draggable-invalid-drag-token'\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\tconst throttledOnDragOver = throttle( onDragOver, 200 );\n\n\t\teditorRoot.addEventListener( 'dragover', throttledOnDragOver );\n\n\t\treturn () => {\n\t\t\teditorRoot.removeEventListener( 'dragover', throttledOnDragOver );\n\t\t};\n\t}, [\n\t\tclientIds,\n\t\teditorRoot,\n\t\tfadeWhenDisabled,\n\t\tgetAllowedBlocks,\n\t\tgetBlockNamesByClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlockType,\n\t\tvisibleInserter,\n\t] );\n\n\tif ( ! isDraggable ) {\n\t\treturn children( { draggable: false } );\n\t}\n\n\tconst transferData = {\n\t\ttype: 'block',\n\t\tsrcClientIds: clientIds,\n\t\tsrcRootClientId,\n\t};\n\n\treturn (\n\t\t<Draggable\n\t\t\tappendToOwnerDocument={ appendToOwnerDocument }\n\t\t\tcloneClassname={ cloneClassname }\n\t\t\t__experimentalTransferDataType=\"wp-blocks\"\n\t\t\ttransferData={ transferData }\n\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t// Defer hiding the dragged source element to the next\n\t\t\t\t// frame to enable dragging.\n\t\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\t\tstartDraggingBlocks( clientIds );\n\t\t\t\t\tisDragging.current = true;\n\n\t\t\t\t\tstartScrolling( event );\n\n\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\tonDragStart();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tonDragOver={ scrollOnDragOver }\n\t\t\tonDragEnd={ () => {\n\t\t\t\tstopDraggingBlocks();\n\t\t\t\tisDragging.current = false;\n\n\t\t\t\tstopScrolling();\n\n\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\tonDragEnd();\n\t\t\t\t}\n\t\t\t} }\n\t\t\t__experimentalDragComponent={\n\t\t\t\t// Check against `undefined` so that `null` can be used to disable\n\t\t\t\t// the default drag component.\n\t\t\t\tdragComponent !== undefined ? (\n\t\t\t\t\tdragComponent\n\t\t\t\t) : (\n\t\t\t\t\t<BlockDraggableChip\n\t\t\t\t\t\tcount={ clientIds.length }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tfadeWhenDisabled\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t\telementId={ elementId }\n\t\t>\n\t\t\t{ ( { onDraggableStart, onDraggableEnd } ) => {\n\t\t\t\treturn children( {\n\t\t\t\t\tdraggable: true,\n\t\t\t\t\tonDragStart: onDraggableStart,\n\t\t\t\t\tonDragEnd: onDraggableEnd,\n\t\t\t\t} );\n\t\t\t} }\n\t\t</Draggable>\n\t);\n};\n\nexport default BlockDraggable;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["store","blocksStore","Draggable","useSelect","useDispatch","useEffect","useRef","throttle","BlockDraggableChip","useScrollWhenDragging","blockEditorStore","useBlockElement","isDropTargetValid","jsx","_jsx","BlockDraggable","appendToOwnerDocument","children","clientIds","cloneClassname","elementId","onDragStart","onDragEnd","fadeWhenDisabled","dragComponent","srcRootClientId","isDraggable","icon","visibleInserter","getBlockType","select","canMoveBlocks","getBlockRootClientId","getBlockName","getBlockAttributes","isBlockInsertionPointVisible","_getBlockType","getActiveBlockVariation","rootClientId","blockName","variation","isDragging","startScrolling","scrollOnDragOver","stopScrolling","getAllowedBlocks","getBlockNamesByClientId","startDraggingBlocks","stopDraggingBlocks","current","blockEl","editorRoot","closest","onDragOver","event","target","draggedBlockNames","targetClientId","getAttribute","allowedBlocks","targetBlockName","dropTargetValid","length","targetRootClientId","targetRootBlockName","rootAllowedBlocks","window","document","body","classList","add","remove","throttledOnDragOver","addEventListener","removeEventListener","draggable","transferData","type","srcClientIds","__experimentalTransferDataType","requestAnimationFrame","__experimentalDragComponent","undefined","count","onDraggableStart","onDraggableEnd"],"sources":["@wordpress/block-editor/src/components/block-draggable/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Draggable } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { throttle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggableChip from './draggable-chip';\nimport useScrollWhenDragging from './use-scroll-when-dragging';\nimport { store as blockEditorStore } from '../../store';\nimport { useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport { isDropTargetValid } from '../use-block-drop-zone';\n\nconst BlockDraggable = ( {\n\tappendToOwnerDocument,\n\tchildren,\n\tclientIds,\n\tcloneClassname,\n\telementId,\n\tonDragStart,\n\tonDragEnd,\n\tfadeWhenDisabled = false,\n\tdragComponent,\n} ) => {\n\tconst {\n\t\tsrcRootClientId,\n\t\tisDraggable,\n\t\ticon,\n\t\tvisibleInserter,\n\t\tgetBlockType,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockType: _getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\tconst blockName = getBlockName( clientIds[ 0 ] );\n\t\t\tconst variation = getActiveBlockVariation(\n\t\t\t\tblockName,\n\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tsrcRootClientId: rootClientId,\n\t\t\t\tisDraggable: canMoveBlocks( clientIds ),\n\t\t\t\ticon: variation?.icon || _getBlockType( blockName )?.icon,\n\t\t\t\tvisibleInserter: isBlockInsertionPointVisible(),\n\t\t\t\tgetBlockType: _getBlockType,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst isDragging = useRef( false );\n\tconst [ startScrolling, scrollOnDragOver, stopScrolling ] =\n\t\tuseScrollWhenDragging();\n\n\tconst { getAllowedBlocks, getBlockNamesByClientId, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { startDraggingBlocks, stopDraggingBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// Stop dragging blocks if the block draggable is unmounted.\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif ( isDragging.current ) {\n\t\t\t\tstopDraggingBlocks();\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\t// Find the root of the editor iframe.\n\tconst blockEl = useBlockElement( clientIds[ 0 ] );\n\tconst editorRoot = blockEl?.closest( 'body' );\n\n\t/*\n\t * Add a dragover event listener to the editor root to track the blocks being dragged over.\n\t * The listener has to be inside the editor iframe otherwise the target isn't accessible.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! editorRoot || ! fadeWhenDisabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst onDragOver = ( event ) => {\n\t\t\tif ( ! event.target.closest( '[data-block]' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst draggedBlockNames = getBlockNamesByClientId( clientIds );\n\t\t\tconst targetClientId = event.target\n\t\t\t\t.closest( '[data-block]' )\n\t\t\t\t.getAttribute( 'data-block' );\n\n\t\t\tconst allowedBlocks = getAllowedBlocks( targetClientId );\n\t\t\tconst targetBlockName = getBlockNamesByClientId( [\n\t\t\t\ttargetClientId,\n\t\t\t] )[ 0 ];\n\n\t\t\t/*\n\t\t\t * Check if the target is valid to drop in.\n\t\t\t * If the target's allowedBlocks is an empty array,\n\t\t\t * it isn't a container block, in which case we check\n\t\t\t * its parent's validity instead.\n\t\t\t */\n\t\t\tlet dropTargetValid;\n\t\t\tif ( allowedBlocks?.length === 0 ) {\n\t\t\t\tconst targetRootClientId =\n\t\t\t\t\tgetBlockRootClientId( targetClientId );\n\t\t\t\tconst targetRootBlockName = getBlockNamesByClientId( [\n\t\t\t\t\ttargetRootClientId,\n\t\t\t\t] )[ 0 ];\n\t\t\t\tconst rootAllowedBlocks =\n\t\t\t\t\tgetAllowedBlocks( targetRootClientId );\n\t\t\t\tdropTargetValid = isDropTargetValid(\n\t\t\t\t\tgetBlockType,\n\t\t\t\t\trootAllowedBlocks,\n\t\t\t\t\tdraggedBlockNames,\n\t\t\t\t\ttargetRootBlockName\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdropTargetValid = isDropTargetValid(\n\t\t\t\t\tgetBlockType,\n\t\t\t\t\tallowedBlocks,\n\t\t\t\t\tdraggedBlockNames,\n\t\t\t\t\ttargetBlockName\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * Update the body class to reflect if drop target is valid.\n\t\t\t * This has to be done on the document body because the draggable\n\t\t\t * chip is rendered outside of the editor iframe.\n\t\t\t */\n\t\t\tif ( ! dropTargetValid && ! visibleInserter ) {\n\t\t\t\twindow?.document?.body?.classList?.add(\n\t\t\t\t\t'block-draggable-invalid-drag-token'\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\twindow?.document?.body?.classList?.remove(\n\t\t\t\t\t'block-draggable-invalid-drag-token'\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\tconst throttledOnDragOver = throttle( onDragOver, 200 );\n\n\t\teditorRoot.addEventListener( 'dragover', throttledOnDragOver );\n\n\t\treturn () => {\n\t\t\teditorRoot.removeEventListener( 'dragover', throttledOnDragOver );\n\t\t};\n\t}, [\n\t\tclientIds,\n\t\teditorRoot,\n\t\tfadeWhenDisabled,\n\t\tgetAllowedBlocks,\n\t\tgetBlockNamesByClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlockType,\n\t\tvisibleInserter,\n\t] );\n\n\tif ( ! isDraggable ) {\n\t\treturn children( { draggable: false } );\n\t}\n\n\tconst transferData = {\n\t\ttype: 'block',\n\t\tsrcClientIds: clientIds,\n\t\tsrcRootClientId,\n\t};\n\n\treturn (\n\t\t<Draggable\n\t\t\tappendToOwnerDocument={ appendToOwnerDocument }\n\t\t\tcloneClassname={ cloneClassname }\n\t\t\t__experimentalTransferDataType=\"wp-blocks\"\n\t\t\ttransferData={ transferData }\n\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t// Defer hiding the dragged source element to the next\n\t\t\t\t// frame to enable dragging.\n\t\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\t\tstartDraggingBlocks( clientIds );\n\t\t\t\t\tisDragging.current = true;\n\n\t\t\t\t\tstartScrolling( event );\n\n\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\tonDragStart();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tonDragOver={ scrollOnDragOver }\n\t\t\tonDragEnd={ () => {\n\t\t\t\tstopDraggingBlocks();\n\t\t\t\tisDragging.current = false;\n\n\t\t\t\tstopScrolling();\n\n\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\tonDragEnd();\n\t\t\t\t}\n\t\t\t} }\n\t\t\t__experimentalDragComponent={\n\t\t\t\t// Check against `undefined` so that `null` can be used to disable\n\t\t\t\t// the default drag component.\n\t\t\t\tdragComponent !== undefined ? (\n\t\t\t\t\tdragComponent\n\t\t\t\t) : (\n\t\t\t\t\t<BlockDraggableChip\n\t\t\t\t\t\tcount={ clientIds.length }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tfadeWhenDisabled\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t\telementId={ elementId }\n\t\t>\n\t\t\t{ ( { onDraggableStart, onDraggableEnd } ) => {\n\t\t\t\treturn children( {\n\t\t\t\t\tdraggable: true,\n\t\t\t\t\tonDragStart: onDraggableStart,\n\t\t\t\t\tonDragEnd: onDraggableEnd,\n\t\t\t\t} );\n\t\t\t} }\n\t\t</Draggable>\n\t);\n};\n\nexport default BlockDraggable;\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useContext, useMemo, useRef, useState, useLayoutEffect } from '@wordpress/element';
4
+ import { useContext, useState, useLayoutEffect } from '@wordpress/element';
5
5
  import { useRefEffect } from '@wordpress/compose';
6
6
 
7
7
  /**
@@ -10,7 +10,7 @@ import { useRefEffect } from '@wordpress/compose';
10
10
  import { BlockRefs } from '../../provider/block-refs-provider';
11
11
 
12
12
  /** @typedef {import('@wordpress/element').RefCallback} RefCallback */
13
- /** @typedef {import('@wordpress/element').RefObject} RefObject */
13
+ /** @typedef {import('@wordpress/element').Ref} Ref */
14
14
 
15
15
  /**
16
16
  * Provides a ref to the BlockRefs context.
@@ -28,32 +28,33 @@ export function useBlockRefProvider(clientId) {
28
28
  return () => refsMap.delete(clientId);
29
29
  }, [clientId]);
30
30
  }
31
+ function assignRef(ref, value) {
32
+ if (typeof ref === 'function') {
33
+ ref(value);
34
+ } else if (ref) {
35
+ ref.current = value;
36
+ }
37
+ }
31
38
 
32
39
  /**
33
- * Gets a ref pointing to the current block element. Continues to return the same
34
- * stable ref object even if the `clientId` argument changes. This hook is not
35
- * reactive, i.e., it won't trigger a rerender of the calling component if the
36
- * ref value changes. For reactive use cases there is the `useBlockElement` hook.
37
- *
38
- * @param {string} clientId The client ID to get a ref for.
40
+ * Tracks the DOM element for the block identified by `clientId` and assigns it to the `ref`
41
+ * whenever it changes.
39
42
  *
40
- * @return {RefObject} A ref containing the element.
43
+ * @param {string} clientId The client ID to track.
44
+ * @param {Ref} ref The ref object/callback to assign to.
41
45
  */
42
- function useBlockRef(clientId) {
46
+ export function useBlockElementRef(clientId, ref) {
43
47
  const {
44
48
  refsMap
45
49
  } = useContext(BlockRefs);
46
- const latestClientId = useRef();
47
- latestClientId.current = clientId;
48
-
49
- // Always return an object, even if no ref exists for a given client ID, so
50
- // that `current` works at a later point.
51
- return useMemo(() => ({
52
- get current() {
53
- var _refsMap$get;
54
- return (_refsMap$get = refsMap.get(latestClientId.current)) !== null && _refsMap$get !== void 0 ? _refsMap$get : null;
55
- }
56
- }), [refsMap]);
50
+ useLayoutEffect(() => {
51
+ assignRef(ref, refsMap.get(clientId));
52
+ const unsubscribe = refsMap.subscribe(clientId, () => assignRef(ref, refsMap.get(clientId)));
53
+ return () => {
54
+ unsubscribe();
55
+ assignRef(ref, null);
56
+ };
57
+ }, [refsMap, clientId, ref]);
57
58
  }
58
59
 
59
60
  /**
@@ -64,20 +65,9 @@ function useBlockRef(clientId) {
64
65
  *
65
66
  * @return {Element|null} The block's wrapper element.
66
67
  */
67
- function useBlockElement(clientId) {
68
- const {
69
- refsMap
70
- } = useContext(BlockRefs);
68
+ export function useBlockElement(clientId) {
71
69
  const [blockElement, setBlockElement] = useState(null);
72
- // Delay setting the resulting `blockElement` until an effect. If the block element
73
- // changes (i.e., the block is unmounted and re-mounted), this allows enough time
74
- // for the ref callbacks to clean up the old element and set the new one.
75
- useLayoutEffect(() => {
76
- setBlockElement(refsMap.get(clientId));
77
- return refsMap.subscribe(clientId, () => setBlockElement(refsMap.get(clientId)));
78
- }, [refsMap, clientId]);
70
+ useBlockElementRef(clientId, setBlockElement);
79
71
  return blockElement;
80
72
  }
81
- export { useBlockRef as __unstableUseBlockRef };
82
- export { useBlockElement as __unstableUseBlockElement };
83
73
  //# sourceMappingURL=use-block-refs.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useContext","useMemo","useRef","useState","useLayoutEffect","useRefEffect","BlockRefs","useBlockRefProvider","clientId","refsMap","element","set","delete","useBlockRef","latestClientId","current","_refsMap$get","get","useBlockElement","blockElement","setBlockElement","subscribe","__unstableUseBlockRef","__unstableUseBlockElement"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-block-refs.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseContext,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { BlockRefs } from '../../provider/block-refs-provider';\n\n/** @typedef {import('@wordpress/element').RefCallback} RefCallback */\n/** @typedef {import('@wordpress/element').RefObject} RefObject */\n\n/**\n * Provides a ref to the BlockRefs context.\n *\n * @param {string} clientId The client ID of the element ref.\n *\n * @return {RefCallback} Ref callback.\n */\nexport function useBlockRefProvider( clientId ) {\n\tconst { refsMap } = useContext( BlockRefs );\n\treturn useRefEffect(\n\t\t( element ) => {\n\t\t\trefsMap.set( clientId, element );\n\t\t\treturn () => refsMap.delete( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n\n/**\n * Gets a ref pointing to the current block element. Continues to return the same\n * stable ref object even if the `clientId` argument changes. This hook is not\n * reactive, i.e., it won't trigger a rerender of the calling component if the\n * ref value changes. For reactive use cases there is the `useBlockElement` hook.\n *\n * @param {string} clientId The client ID to get a ref for.\n *\n * @return {RefObject} A ref containing the element.\n */\nfunction useBlockRef( clientId ) {\n\tconst { refsMap } = useContext( BlockRefs );\n\tconst latestClientId = useRef();\n\tlatestClientId.current = clientId;\n\n\t// Always return an object, even if no ref exists for a given client ID, so\n\t// that `current` works at a later point.\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tget current() {\n\t\t\t\treturn refsMap.get( latestClientId.current ) ?? null;\n\t\t\t},\n\t\t} ),\n\t\t[ refsMap ]\n\t);\n}\n\n/**\n * Return the element for a given client ID. Updates whenever the element\n * changes, becomes available, or disappears.\n *\n * @param {string} clientId The client ID to an element for.\n *\n * @return {Element|null} The block's wrapper element.\n */\nfunction useBlockElement( clientId ) {\n\tconst { refsMap } = useContext( BlockRefs );\n\tconst [ blockElement, setBlockElement ] = useState( null );\n\t// Delay setting the resulting `blockElement` until an effect. If the block element\n\t// changes (i.e., the block is unmounted and re-mounted), this allows enough time\n\t// for the ref callbacks to clean up the old element and set the new one.\n\tuseLayoutEffect( () => {\n\t\tsetBlockElement( refsMap.get( clientId ) );\n\t\treturn refsMap.subscribe( clientId, () =>\n\t\t\tsetBlockElement( refsMap.get( clientId ) )\n\t\t);\n\t}, [ refsMap, clientId ] );\n\treturn blockElement;\n}\n\nexport { useBlockRef as __unstableUseBlockRef };\nexport { useBlockElement as __unstableUseBlockElement };\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,UAAU,EACVC,OAAO,EACPC,MAAM,EACNC,QAAQ,EACRC,eAAe,QACT,oBAAoB;AAC3B,SAASC,YAAY,QAAQ,oBAAoB;;AAEjD;AACA;AACA;AACA,SAASC,SAAS,QAAQ,oCAAoC;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAAEC,QAAQ,EAAG;EAC/C,MAAM;IAAEC;EAAQ,CAAC,GAAGT,UAAU,CAAEM,SAAU,CAAC;EAC3C,OAAOD,YAAY,CAChBK,OAAO,IAAM;IACdD,OAAO,CAACE,GAAG,CAAEH,QAAQ,EAAEE,OAAQ,CAAC;IAChC,OAAO,MAAMD,OAAO,CAACG,MAAM,CAAEJ,QAAS,CAAC;EACxC,CAAC,EACD,CAAEA,QAAQ,CACX,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASK,WAAWA,CAAEL,QAAQ,EAAG;EAChC,MAAM;IAAEC;EAAQ,CAAC,GAAGT,UAAU,CAAEM,SAAU,CAAC;EAC3C,MAAMQ,cAAc,GAAGZ,MAAM,CAAC,CAAC;EAC/BY,cAAc,CAACC,OAAO,GAAGP,QAAQ;;EAEjC;EACA;EACA,OAAOP,OAAO,CACb,OAAQ;IACP,IAAIc,OAAOA,CAAA,EAAG;MAAA,IAAAC,YAAA;MACb,QAAAA,YAAA,GAAOP,OAAO,CAACQ,GAAG,CAAEH,cAAc,CAACC,OAAQ,CAAC,cAAAC,YAAA,cAAAA,YAAA,GAAI,IAAI;IACrD;EACD,CAAC,CAAE,EACH,CAAEP,OAAO,CACV,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASS,eAAeA,CAAEV,QAAQ,EAAG;EACpC,MAAM;IAAEC;EAAQ,CAAC,GAAGT,UAAU,CAAEM,SAAU,CAAC;EAC3C,MAAM,CAAEa,YAAY,EAAEC,eAAe,CAAE,GAAGjB,QAAQ,CAAE,IAAK,CAAC;EAC1D;EACA;EACA;EACAC,eAAe,CAAE,MAAM;IACtBgB,eAAe,CAAEX,OAAO,CAACQ,GAAG,CAAET,QAAS,CAAE,CAAC;IAC1C,OAAOC,OAAO,CAACY,SAAS,CAAEb,QAAQ,EAAE,MACnCY,eAAe,CAAEX,OAAO,CAACQ,GAAG,CAAET,QAAS,CAAE,CAC1C,CAAC;EACF,CAAC,EAAE,CAAEC,OAAO,EAAED,QAAQ,CAAG,CAAC;EAC1B,OAAOW,YAAY;AACpB;AAEA,SAASN,WAAW,IAAIS,qBAAqB;AAC7C,SAASJ,eAAe,IAAIK,yBAAyB","ignoreList":[]}
1
+ {"version":3,"names":["useContext","useState","useLayoutEffect","useRefEffect","BlockRefs","useBlockRefProvider","clientId","refsMap","element","set","delete","assignRef","ref","value","current","useBlockElementRef","get","unsubscribe","subscribe","useBlockElement","blockElement","setBlockElement"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-block-refs.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext, useState, useLayoutEffect } from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { BlockRefs } from '../../provider/block-refs-provider';\n\n/** @typedef {import('@wordpress/element').RefCallback} RefCallback */\n/** @typedef {import('@wordpress/element').Ref} Ref */\n\n/**\n * Provides a ref to the BlockRefs context.\n *\n * @param {string} clientId The client ID of the element ref.\n *\n * @return {RefCallback} Ref callback.\n */\nexport function useBlockRefProvider( clientId ) {\n\tconst { refsMap } = useContext( BlockRefs );\n\treturn useRefEffect(\n\t\t( element ) => {\n\t\t\trefsMap.set( clientId, element );\n\t\t\treturn () => refsMap.delete( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n\nfunction assignRef( ref, value ) {\n\tif ( typeof ref === 'function' ) {\n\t\tref( value );\n\t} else if ( ref ) {\n\t\tref.current = value;\n\t}\n}\n\n/**\n * Tracks the DOM element for the block identified by `clientId` and assigns it to the `ref`\n * whenever it changes.\n *\n * @param {string} clientId The client ID to track.\n * @param {Ref} ref The ref object/callback to assign to.\n */\nexport function useBlockElementRef( clientId, ref ) {\n\tconst { refsMap } = useContext( BlockRefs );\n\tuseLayoutEffect( () => {\n\t\tassignRef( ref, refsMap.get( clientId ) );\n\t\tconst unsubscribe = refsMap.subscribe( clientId, () =>\n\t\t\tassignRef( ref, refsMap.get( clientId ) )\n\t\t);\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t\tassignRef( ref, null );\n\t\t};\n\t}, [ refsMap, clientId, ref ] );\n}\n\n/**\n * Return the element for a given client ID. Updates whenever the element\n * changes, becomes available, or disappears.\n *\n * @param {string} clientId The client ID to an element for.\n *\n * @return {Element|null} The block's wrapper element.\n */\nexport function useBlockElement( clientId ) {\n\tconst [ blockElement, setBlockElement ] = useState( null );\n\tuseBlockElementRef( clientId, setBlockElement );\n\treturn blockElement;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,eAAe,QAAQ,oBAAoB;AAC1E,SAASC,YAAY,QAAQ,oBAAoB;;AAEjD;AACA;AACA;AACA,SAASC,SAAS,QAAQ,oCAAoC;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAAEC,QAAQ,EAAG;EAC/C,MAAM;IAAEC;EAAQ,CAAC,GAAGP,UAAU,CAAEI,SAAU,CAAC;EAC3C,OAAOD,YAAY,CAChBK,OAAO,IAAM;IACdD,OAAO,CAACE,GAAG,CAAEH,QAAQ,EAAEE,OAAQ,CAAC;IAChC,OAAO,MAAMD,OAAO,CAACG,MAAM,CAAEJ,QAAS,CAAC;EACxC,CAAC,EACD,CAAEA,QAAQ,CACX,CAAC;AACF;AAEA,SAASK,SAASA,CAAEC,GAAG,EAAEC,KAAK,EAAG;EAChC,IAAK,OAAOD,GAAG,KAAK,UAAU,EAAG;IAChCA,GAAG,CAAEC,KAAM,CAAC;EACb,CAAC,MAAM,IAAKD,GAAG,EAAG;IACjBA,GAAG,CAACE,OAAO,GAAGD,KAAK;EACpB;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,kBAAkBA,CAAET,QAAQ,EAAEM,GAAG,EAAG;EACnD,MAAM;IAAEL;EAAQ,CAAC,GAAGP,UAAU,CAAEI,SAAU,CAAC;EAC3CF,eAAe,CAAE,MAAM;IACtBS,SAAS,CAAEC,GAAG,EAAEL,OAAO,CAACS,GAAG,CAAEV,QAAS,CAAE,CAAC;IACzC,MAAMW,WAAW,GAAGV,OAAO,CAACW,SAAS,CAAEZ,QAAQ,EAAE,MAChDK,SAAS,CAAEC,GAAG,EAAEL,OAAO,CAACS,GAAG,CAAEV,QAAS,CAAE,CACzC,CAAC;IACD,OAAO,MAAM;MACZW,WAAW,CAAC,CAAC;MACbN,SAAS,CAAEC,GAAG,EAAE,IAAK,CAAC;IACvB,CAAC;EACF,CAAC,EAAE,CAAEL,OAAO,EAAED,QAAQ,EAAEM,GAAG,CAAG,CAAC;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASO,eAAeA,CAAEb,QAAQ,EAAG;EAC3C,MAAM,CAAEc,YAAY,EAAEC,eAAe,CAAE,GAAGpB,QAAQ,CAAE,IAAK,CAAC;EAC1Dc,kBAAkB,CAAET,QAAQ,EAAEe,eAAgB,CAAC;EAC/C,OAAOD,YAAY;AACpB","ignoreList":[]}
@@ -61,7 +61,7 @@ function BlockMover({
61
61
  isManualGrid: layout.type === 'grid' && layout.isManualPlacement && window.__experimentalEnableGridInteractivity
62
62
  };
63
63
  }, [clientIds]);
64
- if (!canMove || isFirst && isLast && !rootClientId) {
64
+ if (!canMove || isFirst && isLast && !rootClientId || hideDragHandle && isManualGrid) {
65
65
  return null;
66
66
  }
67
67
  return /*#__PURE__*/_jsxs(ToolbarGroup, {
@@ -74,7 +74,6 @@ function BlockMover({
74
74
  children: draggableProps => /*#__PURE__*/_jsx(Button, {
75
75
  icon: dragHandle,
76
76
  className: "block-editor-block-mover__drag-handle",
77
- "aria-hidden": "true",
78
77
  label: __('Drag')
79
78
  // Should not be able to tab to drag handle as this
80
79
  // button can only be used with a pointer device.
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","dragHandle","ToolbarGroup","ToolbarItem","Button","useSelect","__","BlockDraggable","BlockMoverUpButton","BlockMoverDownButton","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","BlockMover","clientIds","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","canMove","rootClientId","isFirst","isLast","orientation","isManualGrid","select","_getBlockAttributes","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","getBlockAttributes","normalizedClientIds","Array","isArray","firstClientId","_rootClientId","firstIndex","lastIndex","length","blockOrder","layout","type","isManualPlacement","window","__experimentalEnableGridInteractivity","className","children","fadeWhenDisabled","draggableProps","icon","label","tabIndex","itemProps","disabled"],"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\n\nimport { dragHandle } from '@wordpress/icons';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggable from '../block-draggable';\nimport { BlockMoverUpButton, BlockMoverDownButton } from './button';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockMover( {\n\tclientIds,\n\thideDragHandle,\n\tisBlockMoverUpButtonDisabled,\n\tisBlockMoverDownButtonDisabled,\n} ) {\n\tconst {\n\t\tcanMove,\n\t\trootClientId,\n\t\tisFirst,\n\t\tisLast,\n\t\torientation,\n\t\tisManualGrid,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t\t? clientIds\n\t\t\t\t: [ clientIds ];\n\t\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\t\tconst _rootClientId = getBlockRootClientId( firstClientId );\n\t\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\t\tconst lastIndex = getBlockIndex(\n\t\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t\t);\n\t\t\tconst blockOrder = getBlockOrder( _rootClientId );\n\t\t\tconst { layout = {} } = getBlockAttributes( _rootClientId ) ?? {};\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlocks( clientIds ),\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisFirst: firstIndex === 0,\n\t\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\t\torientation: getBlockListSettings( _rootClientId )?.orientation,\n\t\t\t\tisManualGrid:\n\t\t\t\t\tlayout.type === 'grid' &&\n\t\t\t\t\tlayout.isManualPlacement &&\n\t\t\t\t\twindow.__experimentalEnableGridInteractivity,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToolbarGroup\n\t\t\tclassName={ clsx( 'block-editor-block-mover', {\n\t\t\t\t'is-horizontal': orientation === 'horizontal',\n\t\t\t} ) }\n\t\t>\n\t\t\t{ ! hideDragHandle && (\n\t\t\t\t<BlockDraggable clientIds={ clientIds } fadeWhenDisabled>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-editor-block-mover__drag-handle\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tlabel={ __( 'Drag' ) }\n\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t{ ! isManualGrid && (\n\t\t\t\t<div className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t\t<ToolbarItem>\n\t\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\tdisabled={ isBlockMoverUpButtonDisabled }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarItem>\n\t\t\t\t\t<ToolbarItem>\n\t\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\tdisabled={ isBlockMoverDownButtonDisabled }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarItem>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</ToolbarGroup>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-mover/README.md\n */\nexport default BlockMover;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","dragHandle","ToolbarGroup","ToolbarItem","Button","useSelect","__","BlockDraggable","BlockMoverUpButton","BlockMoverDownButton","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","BlockMover","clientIds","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","canMove","rootClientId","isFirst","isLast","orientation","isManualGrid","select","_getBlockAttributes","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","getBlockAttributes","normalizedClientIds","Array","isArray","firstClientId","_rootClientId","firstIndex","lastIndex","length","blockOrder","layout","type","isManualPlacement","window","__experimentalEnableGridInteractivity","className","children","fadeWhenDisabled","draggableProps","icon","label","tabIndex","itemProps","disabled"],"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\n\nimport { dragHandle } from '@wordpress/icons';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggable from '../block-draggable';\nimport { BlockMoverUpButton, BlockMoverDownButton } from './button';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockMover( {\n\tclientIds,\n\thideDragHandle,\n\tisBlockMoverUpButtonDisabled,\n\tisBlockMoverDownButtonDisabled,\n} ) {\n\tconst {\n\t\tcanMove,\n\t\trootClientId,\n\t\tisFirst,\n\t\tisLast,\n\t\torientation,\n\t\tisManualGrid,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t\t? clientIds\n\t\t\t\t: [ clientIds ];\n\t\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\t\tconst _rootClientId = getBlockRootClientId( firstClientId );\n\t\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\t\tconst lastIndex = getBlockIndex(\n\t\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t\t);\n\t\t\tconst blockOrder = getBlockOrder( _rootClientId );\n\t\t\tconst { layout = {} } = getBlockAttributes( _rootClientId ) ?? {};\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlocks( clientIds ),\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisFirst: firstIndex === 0,\n\t\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\t\torientation: getBlockListSettings( _rootClientId )?.orientation,\n\t\t\t\tisManualGrid:\n\t\t\t\t\tlayout.type === 'grid' &&\n\t\t\t\t\tlayout.isManualPlacement &&\n\t\t\t\t\twindow.__experimentalEnableGridInteractivity,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tif (\n\t\t! canMove ||\n\t\t( isFirst && isLast && ! rootClientId ) ||\n\t\t( hideDragHandle && isManualGrid )\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToolbarGroup\n\t\t\tclassName={ clsx( 'block-editor-block-mover', {\n\t\t\t\t'is-horizontal': orientation === 'horizontal',\n\t\t\t} ) }\n\t\t>\n\t\t\t{ ! hideDragHandle && (\n\t\t\t\t<BlockDraggable clientIds={ clientIds } fadeWhenDisabled>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-editor-block-mover__drag-handle\"\n\t\t\t\t\t\t\tlabel={ __( 'Drag' ) }\n\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t{ ! isManualGrid && (\n\t\t\t\t<div className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t\t<ToolbarItem>\n\t\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\tdisabled={ isBlockMoverUpButtonDisabled }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarItem>\n\t\t\t\t\t<ToolbarItem>\n\t\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\tdisabled={ isBlockMoverDownButtonDisabled }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarItem>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</ToolbarGroup>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-mover/README.md\n */\nexport default BlockMover;\n"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,7 @@ import { useEffect, useState, useMemo, forwardRef } from '@wordpress/element';
6
6
  /**
7
7
  * Internal dependencies
8
8
  */
9
- import { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';
9
+ import { useBlockElement } from '../block-list/use-block-props/use-block-refs';
10
10
  import { PrivateBlockPopover } from '.';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  function BlockPopoverCover({
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","useMemo","forwardRef","__unstableUseBlockElement","useBlockElement","PrivateBlockPopover","jsx","_jsx","BlockPopoverCover","clientId","bottomClientId","children","shift","additionalStyles","props","ref","_bottomClientId","selectedElement","CoverContainer","width","setWidth","offsetWidth","height","setHeight","offsetHeight","observer","window","ResizeObserver","observe","box","disconnect","style","position"],"sources":["@wordpress/block-editor/src/components/block-popover/cover.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState, useMemo, forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport { PrivateBlockPopover } from '.';\n\nfunction BlockPopoverCover(\n\t{\n\t\tclientId,\n\t\tbottomClientId,\n\t\tchildren,\n\t\tshift = false,\n\t\tadditionalStyles,\n\t\t...props\n\t},\n\tref\n) {\n\tbottomClientId ??= clientId;\n\n\tconst selectedElement = useBlockElement( clientId );\n\n\treturn (\n\t\t<PrivateBlockPopover\n\t\t\tref={ ref }\n\t\t\tclientId={ clientId }\n\t\t\tbottomClientId={ bottomClientId }\n\t\t\tshift={ shift }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ selectedElement && clientId === bottomClientId ? (\n\t\t\t\t<CoverContainer\n\t\t\t\t\tselectedElement={ selectedElement }\n\t\t\t\t\tadditionalStyles={ additionalStyles }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</CoverContainer>\n\t\t\t) : (\n\t\t\t\tchildren\n\t\t\t) }\n\t\t</PrivateBlockPopover>\n\t);\n}\n\nfunction CoverContainer( {\n\tselectedElement,\n\tadditionalStyles = {},\n\tchildren,\n} ) {\n\tconst [ width, setWidth ] = useState( selectedElement.offsetWidth );\n\tconst [ height, setHeight ] = useState( selectedElement.offsetHeight );\n\n\tuseEffect( () => {\n\t\tconst observer = new window.ResizeObserver( () => {\n\t\t\tsetWidth( selectedElement.offsetWidth );\n\t\t\tsetHeight( selectedElement.offsetHeight );\n\t\t} );\n\t\tobserver.observe( selectedElement, { box: 'border-box' } );\n\t\treturn () => observer.disconnect();\n\t}, [ selectedElement ] );\n\n\tconst style = useMemo( () => {\n\t\treturn {\n\t\t\tposition: 'absolute',\n\t\t\twidth,\n\t\t\theight,\n\t\t\t...additionalStyles,\n\t\t};\n\t}, [ width, height, additionalStyles ] );\n\n\treturn <div style={ style }>{ children }</div>;\n}\n\nexport default forwardRef( BlockPopoverCover );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,UAAU,QAAQ,oBAAoB;;AAE7E;AACA;AACA;AACA,SAASC,yBAAyB,IAAIC,eAAe,QAAQ,8CAA8C;AAC3G,SAASC,mBAAmB,QAAQ,GAAG;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExC,SAASC,iBAAiBA,CACzB;EACCC,QAAQ;EACRC,cAAc;EACdC,QAAQ;EACRC,KAAK,GAAG,KAAK;EACbC,gBAAgB;EAChB,GAAGC;AACJ,CAAC,EACDC,GAAG,EACF;EAAA,IAAAC,eAAA;EACD,CAAAA,eAAA,GAAAN,cAAc,cAAAM,eAAA,cAAAA,eAAA,GAAdN,cAAc,GAAKD,QAAQ;EAE3B,MAAMQ,eAAe,GAAGb,eAAe,CAAEK,QAAS,CAAC;EAEnD,oBACCF,IAAA,CAACF,mBAAmB;IACnBU,GAAG,EAAGA,GAAK;IACXN,QAAQ,EAAGA,QAAU;IACrBC,cAAc,EAAGA,cAAgB;IACjCE,KAAK,EAAGA,KAAO;IAAA,GACVE,KAAK;IAAAH,QAAA,EAERM,eAAe,IAAIR,QAAQ,KAAKC,cAAc,gBAC/CH,IAAA,CAACW,cAAc;MACdD,eAAe,EAAGA,eAAiB;MACnCJ,gBAAgB,EAAGA,gBAAkB;MAAAF,QAAA,EAEnCA;IAAQ,CACK,CAAC,GAEjBA;EACA,CACmB,CAAC;AAExB;AAEA,SAASO,cAAcA,CAAE;EACxBD,eAAe;EACfJ,gBAAgB,GAAG,CAAC,CAAC;EACrBF;AACD,CAAC,EAAG;EACH,MAAM,CAAEQ,KAAK,EAAEC,QAAQ,CAAE,GAAGpB,QAAQ,CAAEiB,eAAe,CAACI,WAAY,CAAC;EACnE,MAAM,CAAEC,MAAM,EAAEC,SAAS,CAAE,GAAGvB,QAAQ,CAAEiB,eAAe,CAACO,YAAa,CAAC;EAEtEzB,SAAS,CAAE,MAAM;IAChB,MAAM0B,QAAQ,GAAG,IAAIC,MAAM,CAACC,cAAc,CAAE,MAAM;MACjDP,QAAQ,CAAEH,eAAe,CAACI,WAAY,CAAC;MACvCE,SAAS,CAAEN,eAAe,CAACO,YAAa,CAAC;IAC1C,CAAE,CAAC;IACHC,QAAQ,CAACG,OAAO,CAAEX,eAAe,EAAE;MAAEY,GAAG,EAAE;IAAa,CAAE,CAAC;IAC1D,OAAO,MAAMJ,QAAQ,CAACK,UAAU,CAAC,CAAC;EACnC,CAAC,EAAE,CAAEb,eAAe,CAAG,CAAC;EAExB,MAAMc,KAAK,GAAG9B,OAAO,CAAE,MAAM;IAC5B,OAAO;MACN+B,QAAQ,EAAE,UAAU;MACpBb,KAAK;MACLG,MAAM;MACN,GAAGT;IACJ,CAAC;EACF,CAAC,EAAE,CAAEM,KAAK,EAAEG,MAAM,EAAET,gBAAgB,CAAG,CAAC;EAExC,oBAAON,IAAA;IAAKwB,KAAK,EAAGA,KAAO;IAAApB,QAAA,EAAGA;EAAQ,CAAO,CAAC;AAC/C;AAEA,eAAeT,UAAU,CAAEM,iBAAkB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useState","useMemo","forwardRef","useBlockElement","PrivateBlockPopover","jsx","_jsx","BlockPopoverCover","clientId","bottomClientId","children","shift","additionalStyles","props","ref","_bottomClientId","selectedElement","CoverContainer","width","setWidth","offsetWidth","height","setHeight","offsetHeight","observer","window","ResizeObserver","observe","box","disconnect","style","position"],"sources":["@wordpress/block-editor/src/components/block-popover/cover.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState, useMemo, forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport { PrivateBlockPopover } from '.';\n\nfunction BlockPopoverCover(\n\t{\n\t\tclientId,\n\t\tbottomClientId,\n\t\tchildren,\n\t\tshift = false,\n\t\tadditionalStyles,\n\t\t...props\n\t},\n\tref\n) {\n\tbottomClientId ??= clientId;\n\n\tconst selectedElement = useBlockElement( clientId );\n\n\treturn (\n\t\t<PrivateBlockPopover\n\t\t\tref={ ref }\n\t\t\tclientId={ clientId }\n\t\t\tbottomClientId={ bottomClientId }\n\t\t\tshift={ shift }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ selectedElement && clientId === bottomClientId ? (\n\t\t\t\t<CoverContainer\n\t\t\t\t\tselectedElement={ selectedElement }\n\t\t\t\t\tadditionalStyles={ additionalStyles }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</CoverContainer>\n\t\t\t) : (\n\t\t\t\tchildren\n\t\t\t) }\n\t\t</PrivateBlockPopover>\n\t);\n}\n\nfunction CoverContainer( {\n\tselectedElement,\n\tadditionalStyles = {},\n\tchildren,\n} ) {\n\tconst [ width, setWidth ] = useState( selectedElement.offsetWidth );\n\tconst [ height, setHeight ] = useState( selectedElement.offsetHeight );\n\n\tuseEffect( () => {\n\t\tconst observer = new window.ResizeObserver( () => {\n\t\t\tsetWidth( selectedElement.offsetWidth );\n\t\t\tsetHeight( selectedElement.offsetHeight );\n\t\t} );\n\t\tobserver.observe( selectedElement, { box: 'border-box' } );\n\t\treturn () => observer.disconnect();\n\t}, [ selectedElement ] );\n\n\tconst style = useMemo( () => {\n\t\treturn {\n\t\t\tposition: 'absolute',\n\t\t\twidth,\n\t\t\theight,\n\t\t\t...additionalStyles,\n\t\t};\n\t}, [ width, height, additionalStyles ] );\n\n\treturn <div style={ style }>{ children }</div>;\n}\n\nexport default forwardRef( BlockPopoverCover );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,UAAU,QAAQ,oBAAoB;;AAE7E;AACA;AACA;AACA,SAASC,eAAe,QAAQ,8CAA8C;AAC9E,SAASC,mBAAmB,QAAQ,GAAG;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExC,SAASC,iBAAiBA,CACzB;EACCC,QAAQ;EACRC,cAAc;EACdC,QAAQ;EACRC,KAAK,GAAG,KAAK;EACbC,gBAAgB;EAChB,GAAGC;AACJ,CAAC,EACDC,GAAG,EACF;EAAA,IAAAC,eAAA;EACD,CAAAA,eAAA,GAAAN,cAAc,cAAAM,eAAA,cAAAA,eAAA,GAAdN,cAAc,GAAKD,QAAQ;EAE3B,MAAMQ,eAAe,GAAGb,eAAe,CAAEK,QAAS,CAAC;EAEnD,oBACCF,IAAA,CAACF,mBAAmB;IACnBU,GAAG,EAAGA,GAAK;IACXN,QAAQ,EAAGA,QAAU;IACrBC,cAAc,EAAGA,cAAgB;IACjCE,KAAK,EAAGA,KAAO;IAAA,GACVE,KAAK;IAAAH,QAAA,EAERM,eAAe,IAAIR,QAAQ,KAAKC,cAAc,gBAC/CH,IAAA,CAACW,cAAc;MACdD,eAAe,EAAGA,eAAiB;MACnCJ,gBAAgB,EAAGA,gBAAkB;MAAAF,QAAA,EAEnCA;IAAQ,CACK,CAAC,GAEjBA;EACA,CACmB,CAAC;AAExB;AAEA,SAASO,cAAcA,CAAE;EACxBD,eAAe;EACfJ,gBAAgB,GAAG,CAAC,CAAC;EACrBF;AACD,CAAC,EAAG;EACH,MAAM,CAAEQ,KAAK,EAAEC,QAAQ,CAAE,GAAGnB,QAAQ,CAAEgB,eAAe,CAACI,WAAY,CAAC;EACnE,MAAM,CAAEC,MAAM,EAAEC,SAAS,CAAE,GAAGtB,QAAQ,CAAEgB,eAAe,CAACO,YAAa,CAAC;EAEtExB,SAAS,CAAE,MAAM;IAChB,MAAMyB,QAAQ,GAAG,IAAIC,MAAM,CAACC,cAAc,CAAE,MAAM;MACjDP,QAAQ,CAAEH,eAAe,CAACI,WAAY,CAAC;MACvCE,SAAS,CAAEN,eAAe,CAACO,YAAa,CAAC;IAC1C,CAAE,CAAC;IACHC,QAAQ,CAACG,OAAO,CAAEX,eAAe,EAAE;MAAEY,GAAG,EAAE;IAAa,CAAE,CAAC;IAC1D,OAAO,MAAMJ,QAAQ,CAACK,UAAU,CAAC,CAAC;EACnC,CAAC,EAAE,CAAEb,eAAe,CAAG,CAAC;EAExB,MAAMc,KAAK,GAAG7B,OAAO,CAAE,MAAM;IAC5B,OAAO;MACN8B,QAAQ,EAAE,UAAU;MACpBb,KAAK;MACLG,MAAM;MACN,GAAGT;IACJ,CAAC;EACF,CAAC,EAAE,CAAEM,KAAK,EAAEG,MAAM,EAAET,gBAAgB,CAAG,CAAC;EAExC,oBAAON,IAAA;IAAKwB,KAAK,EAAGA,KAAO;IAAApB,QAAA,EAAGA;EAAQ,CAAO,CAAC;AAC/C;AAEA,eAAeR,UAAU,CAAEK,iBAAkB,CAAC","ignoreList":[]}
@@ -15,7 +15,7 @@ import { isRTL } from '@wordpress/i18n';
15
15
  * Internal dependencies
16
16
  */
17
17
  import { store as blockEditorStore } from '../../store';
18
- import { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';
18
+ import { useBlockElement } from '../block-list/use-block-props/use-block-refs';
19
19
  import usePopoverScroll from './use-popover-scroll';
20
20
  import { jsx as _jsx } from "react/jsx-runtime";
21
21
  const MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER;
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useSelect","useMemo","createContext","useReducer","useLayoutEffect","Popover","isRTL","store","blockEditorStore","__unstableUseBlockElement","useBlockElement","usePopoverScroll","jsx","_jsx","MAX_POPOVER_RECOMPUTE_COUNTER","Number","MAX_SAFE_INTEGER","InsertionPointOpenRef","BlockPopoverInbetween","previousClientId","nextClientId","children","__unstablePopoverSlot","__unstableContentRef","operation","nearestSide","props","popoverRecomputeCounter","forcePopoverRecompute","s","orientation","rootClientId","isVisible","select","getBlockListSettings","getBlockRootClientId","isBlockVisible","_rootClientId","previousElement","nextElement","isVertical","popoverAnchor","undefined","contextElement","getBoundingClientRect","previousRect","nextRect","left","top","width","height","targetRect","bottom","right","window","DOMRect","popoverScrollRef","observer","MutationObserver","observe","attributes","disconnect","ownerDocument","defaultView","addEventListener","removeEventListener","ref","animate","anchor","focusOnMount","__unstableSlotName","inline","className","resize","flip","placement","variant"],"sources":["@wordpress/block-editor/src/components/block-popover/inbetween.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tuseMemo,\n\tcreateContext,\n\tuseReducer,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport { Popover } from '@wordpress/components';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nconst MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER;\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction BlockPopoverInbetween( {\n\tpreviousClientId,\n\tnextClientId,\n\tchildren,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\toperation = 'insert',\n\tnearestSide = 'right',\n\t...props\n} ) {\n\t// This is a temporary hack to get the inbetween inserter to recompute properly.\n\tconst [ popoverRecomputeCounter, forcePopoverRecompute ] = useReducer(\n\t\t// Module is there to make sure that the counter doesn't overflow.\n\t\t( s ) => ( s + 1 ) % MAX_POPOVER_RECOMPUTE_COUNTER,\n\t\t0\n\t);\n\n\tconst { orientation, rootClientId, isVisible } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tisBlockVisible,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst _rootClientId = getBlockRootClientId(\n\t\t\t\tpreviousClientId ?? nextClientId\n\t\t\t);\n\t\t\treturn {\n\t\t\t\torientation:\n\t\t\t\t\tgetBlockListSettings( _rootClientId )?.orientation ||\n\t\t\t\t\t'vertical',\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisVisible:\n\t\t\t\t\tisBlockVisible( previousClientId ) &&\n\t\t\t\t\tisBlockVisible( nextClientId ),\n\t\t\t};\n\t\t},\n\t\t[ previousClientId, nextClientId ]\n\t);\n\tconst previousElement = useBlockElement( previousClientId );\n\tconst nextElement = useBlockElement( nextClientId );\n\tconst isVertical = orientation === 'vertical';\n\n\tconst popoverAnchor = useMemo( () => {\n\t\tif (\n\t\t\t// popoverRecomputeCounter is by definition always equal or greater than 0.\n\t\t\t// This check is only there to satisfy the correctness of the\n\t\t\t// exhaustive-deps rule for the `useMemo` hook.\n\t\t\tpopoverRecomputeCounter < 0 ||\n\t\t\t( ! previousElement && ! nextElement ) ||\n\t\t\t! isVisible\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst contextElement =\n\t\t\toperation === 'group'\n\t\t\t\t? nextElement || previousElement\n\t\t\t\t: previousElement || nextElement;\n\n\t\treturn {\n\t\t\tcontextElement,\n\t\t\tgetBoundingClientRect() {\n\t\t\t\tconst previousRect = previousElement\n\t\t\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t\t\t: null;\n\t\t\t\tconst nextRect = nextElement\n\t\t\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t\t\t: null;\n\n\t\t\t\tlet left = 0;\n\t\t\t\tlet top = 0;\n\t\t\t\tlet width = 0;\n\t\t\t\tlet height = 0;\n\n\t\t\t\tif ( operation === 'group' ) {\n\t\t\t\t\tconst targetRect = nextRect || previousRect;\n\t\t\t\t\ttop = targetRect.top;\n\t\t\t\t\t// No spacing is likely around blocks in this operation.\n\t\t\t\t\t// So width of the inserter containing rect is set to 0.\n\t\t\t\t\twidth = 0;\n\t\t\t\t\theight = targetRect.bottom - targetRect.top;\n\t\t\t\t\t// Popover calculates its distance from mid-block so some\n\t\t\t\t\t// adjustments are needed to make it appear in the right place.\n\t\t\t\t\tleft =\n\t\t\t\t\t\tnearestSide === 'left'\n\t\t\t\t\t\t\t? targetRect.left - 2\n\t\t\t\t\t\t\t: targetRect.right - 2;\n\t\t\t\t} else if ( isVertical ) {\n\t\t\t\t\t// vertical\n\t\t\t\t\ttop = previousRect ? previousRect.bottom : nextRect.top;\n\t\t\t\t\twidth = previousRect ? previousRect.width : nextRect.width;\n\t\t\t\t\theight =\n\t\t\t\t\t\tnextRect && previousRect\n\t\t\t\t\t\t\t? nextRect.top - previousRect.bottom\n\t\t\t\t\t\t\t: 0;\n\t\t\t\t\tleft = previousRect ? previousRect.left : nextRect.left;\n\t\t\t\t} else {\n\t\t\t\t\ttop = previousRect ? previousRect.top : nextRect.top;\n\t\t\t\t\theight = previousRect\n\t\t\t\t\t\t? previousRect.height\n\t\t\t\t\t\t: nextRect.height;\n\n\t\t\t\t\tif ( isRTL() ) {\n\t\t\t\t\t\t// non vertical, rtl\n\t\t\t\t\t\tleft = nextRect ? nextRect.right : previousRect.left;\n\t\t\t\t\t\twidth =\n\t\t\t\t\t\t\tpreviousRect && nextRect\n\t\t\t\t\t\t\t\t? previousRect.left - nextRect.right\n\t\t\t\t\t\t\t\t: 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// non vertical, ltr\n\t\t\t\t\t\tleft = previousRect\n\t\t\t\t\t\t\t? previousRect.right\n\t\t\t\t\t\t\t: nextRect.left;\n\t\t\t\t\t\twidth =\n\t\t\t\t\t\t\tpreviousRect && nextRect\n\t\t\t\t\t\t\t\t? nextRect.left - previousRect.right\n\t\t\t\t\t\t\t\t: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn new window.DOMRect( left, top, width, height );\n\t\t\t},\n\t\t};\n\t}, [\n\t\tpreviousElement,\n\t\tnextElement,\n\t\tpopoverRecomputeCounter,\n\t\tisVertical,\n\t\tisVisible,\n\t\toperation,\n\t\tnearestSide,\n\t] );\n\n\tconst popoverScrollRef = usePopoverScroll( __unstableContentRef );\n\n\t// This is only needed for a smooth transition when moving blocks.\n\t// When blocks are moved up/down, their position can be set by\n\t// updating the `transform` property manually (i.e. without using CSS\n\t// transitions or animations). The animation, which can also scroll the block\n\t// editor, can sometimes cause the position of the Popover to get out of sync.\n\t// A MutationObserver is therefore used to make sure that changes to the\n\t// selectedElement's attribute (i.e. `transform`) can be tracked and used to\n\t// trigger the Popover to rerender.\n\tuseLayoutEffect( () => {\n\t\tif ( ! previousElement ) {\n\t\t\treturn;\n\t\t}\n\t\tconst observer = new window.MutationObserver( forcePopoverRecompute );\n\t\tobserver.observe( previousElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ previousElement ] );\n\n\tuseLayoutEffect( () => {\n\t\tif ( ! nextElement ) {\n\t\t\treturn;\n\t\t}\n\t\tconst observer = new window.MutationObserver( forcePopoverRecompute );\n\t\tobserver.observe( nextElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ nextElement ] );\n\n\tuseLayoutEffect( () => {\n\t\tif ( ! previousElement ) {\n\t\t\treturn;\n\t\t}\n\t\tpreviousElement.ownerDocument.defaultView.addEventListener(\n\t\t\t'resize',\n\t\t\tforcePopoverRecompute\n\t\t);\n\t\treturn () => {\n\t\t\tpreviousElement.ownerDocument.defaultView?.removeEventListener(\n\t\t\t\t'resize',\n\t\t\t\tforcePopoverRecompute\n\t\t\t);\n\t\t};\n\t}, [ previousElement ] );\n\n\t// If there's either a previous or a next element, show the inbetween popover.\n\t// Note that drag and drop uses the inbetween popover to show the drop indicator\n\t// before the first block and after the last block.\n\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\treturn null;\n\t}\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t// While ideally it would be enough to capture the\n\t// bubbling focus event from the Inserter, due to the\n\t// characteristics of click focusing of `button`s in\n\t// Firefox and Safari, it is not reliable.\n\t//\n\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\treturn (\n\t\t<Popover\n\t\t\tref={ popoverScrollRef }\n\t\t\tanimate={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\tfocusOnMount={ false }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot }\n\t\t\tinline={ ! __unstablePopoverSlot }\n\t\t\t// Forces a remount of the popover when its position changes\n\t\t\t// This makes sure the popover doesn't animate from its previous position.\n\t\t\tkey={ nextClientId + '--' + rootClientId }\n\t\t\t{ ...props }\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\t'block-editor-block-popover__inbetween',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t\tresize={ false }\n\t\t\tflip={ false }\n\t\t\tplacement=\"overlay\"\n\t\t\tvariant=\"unstyled\"\n\t\t>\n\t\t\t<div className=\"block-editor-block-popover__inbetween-container\">\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</Popover>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n}\n\nexport default BlockPopoverInbetween;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useSelect","useMemo","createContext","useReducer","useLayoutEffect","Popover","isRTL","store","blockEditorStore","useBlockElement","usePopoverScroll","jsx","_jsx","MAX_POPOVER_RECOMPUTE_COUNTER","Number","MAX_SAFE_INTEGER","InsertionPointOpenRef","BlockPopoverInbetween","previousClientId","nextClientId","children","__unstablePopoverSlot","__unstableContentRef","operation","nearestSide","props","popoverRecomputeCounter","forcePopoverRecompute","s","orientation","rootClientId","isVisible","select","getBlockListSettings","getBlockRootClientId","isBlockVisible","_rootClientId","previousElement","nextElement","isVertical","popoverAnchor","undefined","contextElement","getBoundingClientRect","previousRect","nextRect","left","top","width","height","targetRect","bottom","right","window","DOMRect","popoverScrollRef","observer","MutationObserver","observe","attributes","disconnect","ownerDocument","defaultView","addEventListener","removeEventListener","ref","animate","anchor","focusOnMount","__unstableSlotName","inline","className","resize","flip","placement","variant"],"sources":["@wordpress/block-editor/src/components/block-popover/inbetween.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tuseMemo,\n\tcreateContext,\n\tuseReducer,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport { Popover } from '@wordpress/components';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nconst MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER;\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction BlockPopoverInbetween( {\n\tpreviousClientId,\n\tnextClientId,\n\tchildren,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\toperation = 'insert',\n\tnearestSide = 'right',\n\t...props\n} ) {\n\t// This is a temporary hack to get the inbetween inserter to recompute properly.\n\tconst [ popoverRecomputeCounter, forcePopoverRecompute ] = useReducer(\n\t\t// Module is there to make sure that the counter doesn't overflow.\n\t\t( s ) => ( s + 1 ) % MAX_POPOVER_RECOMPUTE_COUNTER,\n\t\t0\n\t);\n\n\tconst { orientation, rootClientId, isVisible } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tisBlockVisible,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst _rootClientId = getBlockRootClientId(\n\t\t\t\tpreviousClientId ?? nextClientId\n\t\t\t);\n\t\t\treturn {\n\t\t\t\torientation:\n\t\t\t\t\tgetBlockListSettings( _rootClientId )?.orientation ||\n\t\t\t\t\t'vertical',\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisVisible:\n\t\t\t\t\tisBlockVisible( previousClientId ) &&\n\t\t\t\t\tisBlockVisible( nextClientId ),\n\t\t\t};\n\t\t},\n\t\t[ previousClientId, nextClientId ]\n\t);\n\tconst previousElement = useBlockElement( previousClientId );\n\tconst nextElement = useBlockElement( nextClientId );\n\tconst isVertical = orientation === 'vertical';\n\n\tconst popoverAnchor = useMemo( () => {\n\t\tif (\n\t\t\t// popoverRecomputeCounter is by definition always equal or greater than 0.\n\t\t\t// This check is only there to satisfy the correctness of the\n\t\t\t// exhaustive-deps rule for the `useMemo` hook.\n\t\t\tpopoverRecomputeCounter < 0 ||\n\t\t\t( ! previousElement && ! nextElement ) ||\n\t\t\t! isVisible\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst contextElement =\n\t\t\toperation === 'group'\n\t\t\t\t? nextElement || previousElement\n\t\t\t\t: previousElement || nextElement;\n\n\t\treturn {\n\t\t\tcontextElement,\n\t\t\tgetBoundingClientRect() {\n\t\t\t\tconst previousRect = previousElement\n\t\t\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t\t\t: null;\n\t\t\t\tconst nextRect = nextElement\n\t\t\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t\t\t: null;\n\n\t\t\t\tlet left = 0;\n\t\t\t\tlet top = 0;\n\t\t\t\tlet width = 0;\n\t\t\t\tlet height = 0;\n\n\t\t\t\tif ( operation === 'group' ) {\n\t\t\t\t\tconst targetRect = nextRect || previousRect;\n\t\t\t\t\ttop = targetRect.top;\n\t\t\t\t\t// No spacing is likely around blocks in this operation.\n\t\t\t\t\t// So width of the inserter containing rect is set to 0.\n\t\t\t\t\twidth = 0;\n\t\t\t\t\theight = targetRect.bottom - targetRect.top;\n\t\t\t\t\t// Popover calculates its distance from mid-block so some\n\t\t\t\t\t// adjustments are needed to make it appear in the right place.\n\t\t\t\t\tleft =\n\t\t\t\t\t\tnearestSide === 'left'\n\t\t\t\t\t\t\t? targetRect.left - 2\n\t\t\t\t\t\t\t: targetRect.right - 2;\n\t\t\t\t} else if ( isVertical ) {\n\t\t\t\t\t// vertical\n\t\t\t\t\ttop = previousRect ? previousRect.bottom : nextRect.top;\n\t\t\t\t\twidth = previousRect ? previousRect.width : nextRect.width;\n\t\t\t\t\theight =\n\t\t\t\t\t\tnextRect && previousRect\n\t\t\t\t\t\t\t? nextRect.top - previousRect.bottom\n\t\t\t\t\t\t\t: 0;\n\t\t\t\t\tleft = previousRect ? previousRect.left : nextRect.left;\n\t\t\t\t} else {\n\t\t\t\t\ttop = previousRect ? previousRect.top : nextRect.top;\n\t\t\t\t\theight = previousRect\n\t\t\t\t\t\t? previousRect.height\n\t\t\t\t\t\t: nextRect.height;\n\n\t\t\t\t\tif ( isRTL() ) {\n\t\t\t\t\t\t// non vertical, rtl\n\t\t\t\t\t\tleft = nextRect ? nextRect.right : previousRect.left;\n\t\t\t\t\t\twidth =\n\t\t\t\t\t\t\tpreviousRect && nextRect\n\t\t\t\t\t\t\t\t? previousRect.left - nextRect.right\n\t\t\t\t\t\t\t\t: 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// non vertical, ltr\n\t\t\t\t\t\tleft = previousRect\n\t\t\t\t\t\t\t? previousRect.right\n\t\t\t\t\t\t\t: nextRect.left;\n\t\t\t\t\t\twidth =\n\t\t\t\t\t\t\tpreviousRect && nextRect\n\t\t\t\t\t\t\t\t? nextRect.left - previousRect.right\n\t\t\t\t\t\t\t\t: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn new window.DOMRect( left, top, width, height );\n\t\t\t},\n\t\t};\n\t}, [\n\t\tpreviousElement,\n\t\tnextElement,\n\t\tpopoverRecomputeCounter,\n\t\tisVertical,\n\t\tisVisible,\n\t\toperation,\n\t\tnearestSide,\n\t] );\n\n\tconst popoverScrollRef = usePopoverScroll( __unstableContentRef );\n\n\t// This is only needed for a smooth transition when moving blocks.\n\t// When blocks are moved up/down, their position can be set by\n\t// updating the `transform` property manually (i.e. without using CSS\n\t// transitions or animations). The animation, which can also scroll the block\n\t// editor, can sometimes cause the position of the Popover to get out of sync.\n\t// A MutationObserver is therefore used to make sure that changes to the\n\t// selectedElement's attribute (i.e. `transform`) can be tracked and used to\n\t// trigger the Popover to rerender.\n\tuseLayoutEffect( () => {\n\t\tif ( ! previousElement ) {\n\t\t\treturn;\n\t\t}\n\t\tconst observer = new window.MutationObserver( forcePopoverRecompute );\n\t\tobserver.observe( previousElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ previousElement ] );\n\n\tuseLayoutEffect( () => {\n\t\tif ( ! nextElement ) {\n\t\t\treturn;\n\t\t}\n\t\tconst observer = new window.MutationObserver( forcePopoverRecompute );\n\t\tobserver.observe( nextElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ nextElement ] );\n\n\tuseLayoutEffect( () => {\n\t\tif ( ! previousElement ) {\n\t\t\treturn;\n\t\t}\n\t\tpreviousElement.ownerDocument.defaultView.addEventListener(\n\t\t\t'resize',\n\t\t\tforcePopoverRecompute\n\t\t);\n\t\treturn () => {\n\t\t\tpreviousElement.ownerDocument.defaultView?.removeEventListener(\n\t\t\t\t'resize',\n\t\t\t\tforcePopoverRecompute\n\t\t\t);\n\t\t};\n\t}, [ previousElement ] );\n\n\t// If there's either a previous or a next element, show the inbetween popover.\n\t// Note that drag and drop uses the inbetween popover to show the drop indicator\n\t// before the first block and after the last block.\n\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\treturn null;\n\t}\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t// While ideally it would be enough to capture the\n\t// bubbling focus event from the Inserter, due to the\n\t// characteristics of click focusing of `button`s in\n\t// Firefox and Safari, it is not reliable.\n\t//\n\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\treturn (\n\t\t<Popover\n\t\t\tref={ popoverScrollRef }\n\t\t\tanimate={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\tfocusOnMount={ false }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot }\n\t\t\tinline={ ! __unstablePopoverSlot }\n\t\t\t// Forces a remount of the popover when its position changes\n\t\t\t// This makes sure the popover doesn't animate from its previous position.\n\t\t\tkey={ nextClientId + '--' + rootClientId }\n\t\t\t{ ...props }\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\t'block-editor-block-popover__inbetween',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t\tresize={ false }\n\t\t\tflip={ false }\n\t\t\tplacement=\"overlay\"\n\t\t\tvariant=\"unstyled\"\n\t\t>\n\t\t\t<div className=\"block-editor-block-popover__inbetween-container\">\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</Popover>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n}\n\nexport default BlockPopoverInbetween;\n"],"mappings":"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","ignoreList":[]}
@@ -13,7 +13,7 @@ import { forwardRef, useMemo, useReducer, useLayoutEffect } from '@wordpress/ele
13
13
  /**
14
14
  * Internal dependencies
15
15
  */
16
- import { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';
16
+ import { useBlockElement } from '../block-list/use-block-props/use-block-refs';
17
17
  import usePopoverScroll from './use-popover-scroll';
18
18
  import { jsx as _jsx } from "react/jsx-runtime";
19
19
  const MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER;
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useMergeRefs","Popover","forwardRef","useMemo","useReducer","useLayoutEffect","__unstableUseBlockElement","useBlockElement","usePopoverScroll","jsx","_jsx","MAX_POPOVER_RECOMPUTE_COUNTER","Number","MAX_SAFE_INTEGER","BlockPopover","clientId","bottomClientId","children","__unstablePopoverSlot","__unstableContentRef","shift","props","ref","selectedElement","lastSelectedElement","mergedRefs","popoverDimensionsRecomputeCounter","forceRecomputePopoverDimensions","s","observer","window","MutationObserver","observe","attributes","disconnect","popoverAnchor","undefined","getBoundingClientRect","_lastSelectedBCR$left","_lastSelectedBCR$top","_lastSelectedBCR$righ","_lastSelectedBCR$bott","selectedBCR","lastSelectedBCR","left","Math","min","Infinity","top","right","max","bottom","width","height","DOMRect","contextElement","animate","focusOnMount","anchor","__unstableSlotName","inline","placement","resize","flip","className","variant","PrivateBlockPopover","PublicBlockPopover"],"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useMergeRefs } from '@wordpress/compose';\nimport { Popover } from '@wordpress/components';\nimport {\n\tforwardRef,\n\tuseMemo,\n\tuseReducer,\n\tuseLayoutEffect,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nconst MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER;\n\nfunction BlockPopover(\n\t{\n\t\tclientId,\n\t\tbottomClientId,\n\t\tchildren,\n\t\t__unstablePopoverSlot,\n\t\t__unstableContentRef,\n\t\tshift = true,\n\t\t...props\n\t},\n\tref\n) {\n\tconst selectedElement = useBlockElement( clientId );\n\tconst lastSelectedElement = useBlockElement( bottomClientId ?? clientId );\n\tconst mergedRefs = useMergeRefs( [\n\t\tref,\n\t\tusePopoverScroll( __unstableContentRef ),\n\t] );\n\n\tconst [\n\t\tpopoverDimensionsRecomputeCounter,\n\t\tforceRecomputePopoverDimensions,\n\t] = useReducer(\n\t\t// Module is there to make sure that the counter doesn't overflow.\n\t\t( s ) => ( s + 1 ) % MAX_POPOVER_RECOMPUTE_COUNTER,\n\t\t0\n\t);\n\n\t// When blocks are moved up/down, they are animated to their new position by\n\t// updating the `transform` property manually (i.e. without using CSS\n\t// transitions or animations). The animation, which can also scroll the block\n\t// editor, can sometimes cause the position of the Popover to get out of sync.\n\t// A MutationObserver is therefore used to make sure that changes to the\n\t// selectedElement's attribute (i.e. `transform`) can be tracked and used to\n\t// trigger the Popover to rerender.\n\tuseLayoutEffect( () => {\n\t\tif ( ! selectedElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst observer = new window.MutationObserver(\n\t\t\tforceRecomputePopoverDimensions\n\t\t);\n\t\tobserver.observe( selectedElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ selectedElement ] );\n\n\tconst popoverAnchor = useMemo( () => {\n\t\tif (\n\t\t\t// popoverDimensionsRecomputeCounter is by definition always equal or greater\n\t\t\t// than 0. This check is only there to satisfy the correctness of the\n\t\t\t// exhaustive-deps rule for the `useMemo` hook.\n\t\t\tpopoverDimensionsRecomputeCounter < 0 ||\n\t\t\t! selectedElement ||\n\t\t\t( bottomClientId && ! lastSelectedElement )\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tgetBoundingClientRect() {\n\t\t\t\tconst selectedBCR = selectedElement.getBoundingClientRect();\n\t\t\t\tconst lastSelectedBCR =\n\t\t\t\t\tlastSelectedElement?.getBoundingClientRect();\n\n\t\t\t\t// Get the biggest rectangle that encompasses completely the currently\n\t\t\t\t// selected element and the last selected element:\n\t\t\t\t// - for top/left coordinates, use the smaller numbers\n\t\t\t\t// - for the bottom/right coordinates, use the largest numbers\n\t\t\t\tconst left = Math.min(\n\t\t\t\t\tselectedBCR.left,\n\t\t\t\t\tlastSelectedBCR?.left ?? Infinity\n\t\t\t\t);\n\t\t\t\tconst top = Math.min(\n\t\t\t\t\tselectedBCR.top,\n\t\t\t\t\tlastSelectedBCR?.top ?? Infinity\n\t\t\t\t);\n\t\t\t\tconst right = Math.max(\n\t\t\t\t\tselectedBCR.right,\n\t\t\t\t\tlastSelectedBCR.right ?? -Infinity\n\t\t\t\t);\n\t\t\t\tconst bottom = Math.max(\n\t\t\t\t\tselectedBCR.bottom,\n\t\t\t\t\tlastSelectedBCR.bottom ?? -Infinity\n\t\t\t\t);\n\t\t\t\tconst width = right - left;\n\t\t\t\tconst height = bottom - top;\n\n\t\t\t\treturn new window.DOMRect( left, top, width, height );\n\t\t\t},\n\t\t\tcontextElement: selectedElement,\n\t\t};\n\t}, [\n\t\tbottomClientId,\n\t\tlastSelectedElement,\n\t\tselectedElement,\n\t\tpopoverDimensionsRecomputeCounter,\n\t] );\n\n\tif ( ! selectedElement || ( bottomClientId && ! lastSelectedElement ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ mergedRefs }\n\t\t\tanimate={ false }\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot }\n\t\t\tinline={ ! __unstablePopoverSlot }\n\t\t\tplacement=\"top-start\"\n\t\t\tresize={ false }\n\t\t\tflip={ false }\n\t\t\tshift={ shift }\n\t\t\t{ ...props }\n\t\t\tclassName={ clsx( 'block-editor-block-popover', props.className ) }\n\t\t\tvariant=\"unstyled\"\n\t\t>\n\t\t\t{ children }\n\t\t</Popover>\n\t);\n}\n\nexport const PrivateBlockPopover = forwardRef( BlockPopover );\n\nconst PublicBlockPopover = (\n\t{ clientId, bottomClientId, children, ...props },\n\tref\n) => (\n\t<PrivateBlockPopover\n\t\t{ ...props }\n\t\tbottomClientId={ bottomClientId }\n\t\tclientId={ clientId }\n\t\t__unstableContentRef={ undefined }\n\t\t__unstablePopoverSlot={ undefined }\n\t\tref={ ref }\n\t>\n\t\t{ children }\n\t</PrivateBlockPopover>\n);\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-popover/README.md\n */\nexport default forwardRef( PublicBlockPopover );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useMergeRefs","Popover","forwardRef","useMemo","useReducer","useLayoutEffect","useBlockElement","usePopoverScroll","jsx","_jsx","MAX_POPOVER_RECOMPUTE_COUNTER","Number","MAX_SAFE_INTEGER","BlockPopover","clientId","bottomClientId","children","__unstablePopoverSlot","__unstableContentRef","shift","props","ref","selectedElement","lastSelectedElement","mergedRefs","popoverDimensionsRecomputeCounter","forceRecomputePopoverDimensions","s","observer","window","MutationObserver","observe","attributes","disconnect","popoverAnchor","undefined","getBoundingClientRect","_lastSelectedBCR$left","_lastSelectedBCR$top","_lastSelectedBCR$righ","_lastSelectedBCR$bott","selectedBCR","lastSelectedBCR","left","Math","min","Infinity","top","right","max","bottom","width","height","DOMRect","contextElement","animate","focusOnMount","anchor","__unstableSlotName","inline","placement","resize","flip","className","variant","PrivateBlockPopover","PublicBlockPopover"],"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useMergeRefs } from '@wordpress/compose';\nimport { Popover } from '@wordpress/components';\nimport {\n\tforwardRef,\n\tuseMemo,\n\tuseReducer,\n\tuseLayoutEffect,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nconst MAX_POPOVER_RECOMPUTE_COUNTER = Number.MAX_SAFE_INTEGER;\n\nfunction BlockPopover(\n\t{\n\t\tclientId,\n\t\tbottomClientId,\n\t\tchildren,\n\t\t__unstablePopoverSlot,\n\t\t__unstableContentRef,\n\t\tshift = true,\n\t\t...props\n\t},\n\tref\n) {\n\tconst selectedElement = useBlockElement( clientId );\n\tconst lastSelectedElement = useBlockElement( bottomClientId ?? clientId );\n\tconst mergedRefs = useMergeRefs( [\n\t\tref,\n\t\tusePopoverScroll( __unstableContentRef ),\n\t] );\n\n\tconst [\n\t\tpopoverDimensionsRecomputeCounter,\n\t\tforceRecomputePopoverDimensions,\n\t] = useReducer(\n\t\t// Module is there to make sure that the counter doesn't overflow.\n\t\t( s ) => ( s + 1 ) % MAX_POPOVER_RECOMPUTE_COUNTER,\n\t\t0\n\t);\n\n\t// When blocks are moved up/down, they are animated to their new position by\n\t// updating the `transform` property manually (i.e. without using CSS\n\t// transitions or animations). The animation, which can also scroll the block\n\t// editor, can sometimes cause the position of the Popover to get out of sync.\n\t// A MutationObserver is therefore used to make sure that changes to the\n\t// selectedElement's attribute (i.e. `transform`) can be tracked and used to\n\t// trigger the Popover to rerender.\n\tuseLayoutEffect( () => {\n\t\tif ( ! selectedElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst observer = new window.MutationObserver(\n\t\t\tforceRecomputePopoverDimensions\n\t\t);\n\t\tobserver.observe( selectedElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ selectedElement ] );\n\n\tconst popoverAnchor = useMemo( () => {\n\t\tif (\n\t\t\t// popoverDimensionsRecomputeCounter is by definition always equal or greater\n\t\t\t// than 0. This check is only there to satisfy the correctness of the\n\t\t\t// exhaustive-deps rule for the `useMemo` hook.\n\t\t\tpopoverDimensionsRecomputeCounter < 0 ||\n\t\t\t! selectedElement ||\n\t\t\t( bottomClientId && ! lastSelectedElement )\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tgetBoundingClientRect() {\n\t\t\t\tconst selectedBCR = selectedElement.getBoundingClientRect();\n\t\t\t\tconst lastSelectedBCR =\n\t\t\t\t\tlastSelectedElement?.getBoundingClientRect();\n\n\t\t\t\t// Get the biggest rectangle that encompasses completely the currently\n\t\t\t\t// selected element and the last selected element:\n\t\t\t\t// - for top/left coordinates, use the smaller numbers\n\t\t\t\t// - for the bottom/right coordinates, use the largest numbers\n\t\t\t\tconst left = Math.min(\n\t\t\t\t\tselectedBCR.left,\n\t\t\t\t\tlastSelectedBCR?.left ?? Infinity\n\t\t\t\t);\n\t\t\t\tconst top = Math.min(\n\t\t\t\t\tselectedBCR.top,\n\t\t\t\t\tlastSelectedBCR?.top ?? Infinity\n\t\t\t\t);\n\t\t\t\tconst right = Math.max(\n\t\t\t\t\tselectedBCR.right,\n\t\t\t\t\tlastSelectedBCR.right ?? -Infinity\n\t\t\t\t);\n\t\t\t\tconst bottom = Math.max(\n\t\t\t\t\tselectedBCR.bottom,\n\t\t\t\t\tlastSelectedBCR.bottom ?? -Infinity\n\t\t\t\t);\n\t\t\t\tconst width = right - left;\n\t\t\t\tconst height = bottom - top;\n\n\t\t\t\treturn new window.DOMRect( left, top, width, height );\n\t\t\t},\n\t\t\tcontextElement: selectedElement,\n\t\t};\n\t}, [\n\t\tbottomClientId,\n\t\tlastSelectedElement,\n\t\tselectedElement,\n\t\tpopoverDimensionsRecomputeCounter,\n\t] );\n\n\tif ( ! selectedElement || ( bottomClientId && ! lastSelectedElement ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ mergedRefs }\n\t\t\tanimate={ false }\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot }\n\t\t\tinline={ ! __unstablePopoverSlot }\n\t\t\tplacement=\"top-start\"\n\t\t\tresize={ false }\n\t\t\tflip={ false }\n\t\t\tshift={ shift }\n\t\t\t{ ...props }\n\t\t\tclassName={ clsx( 'block-editor-block-popover', props.className ) }\n\t\t\tvariant=\"unstyled\"\n\t\t>\n\t\t\t{ children }\n\t\t</Popover>\n\t);\n}\n\nexport const PrivateBlockPopover = forwardRef( BlockPopover );\n\nconst PublicBlockPopover = (\n\t{ clientId, bottomClientId, children, ...props },\n\tref\n) => (\n\t<PrivateBlockPopover\n\t\t{ ...props }\n\t\tbottomClientId={ bottomClientId }\n\t\tclientId={ clientId }\n\t\t__unstableContentRef={ undefined }\n\t\t__unstablePopoverSlot={ undefined }\n\t\tref={ ref }\n\t>\n\t\t{ children }\n\t</PrivateBlockPopover>\n);\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-popover/README.md\n */\nexport default forwardRef( PublicBlockPopover );\n"],"mappings":"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","ignoreList":[]}
@@ -23,7 +23,7 @@ import BlockTitle from '../block-title';
23
23
  import BlockIcon from '../block-icon';
24
24
  import { store as blockEditorStore } from '../../store';
25
25
  import BlockDraggable from '../block-draggable';
26
- import { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';
26
+ import { useBlockElement } from '../block-list/use-block-props/use-block-refs';
27
27
 
28
28
  /**
29
29
  * Block selection button component, displaying the label of the block. If the block
@@ -219,7 +219,6 @@ function BlockSelectionButton({
219
219
  children: draggableProps => /*#__PURE__*/_jsx(Button, {
220
220
  icon: dragHandle,
221
221
  className: "block-selection-button_drag-handle",
222
- "aria-hidden": "true",
223
222
  label: dragHandleLabel
224
223
  // Should not be able to tab to drag handle as this
225
224
  // button can only be used with a pointer device.