@wordpress/block-editor 11.8.0 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +16 -4
  3. package/build/components/block-controls/slot.js +12 -4
  4. package/build/components/block-controls/slot.js.map +1 -1
  5. package/build/components/block-controls/slot.native.js +10 -1
  6. package/build/components/block-controls/slot.native.js.map +1 -1
  7. package/build/components/block-draggable/index.js +11 -7
  8. package/build/components/block-draggable/index.js.map +1 -1
  9. package/build/components/block-draggable/use-scroll-when-dragging.js +2 -2
  10. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  11. package/build/components/block-info-slot-fill/index.js +47 -0
  12. package/build/components/block-info-slot-fill/index.js.map +1 -0
  13. package/build/components/block-inspector/index.js +4 -2
  14. package/build/components/block-inspector/index.js.map +1 -1
  15. package/build/components/block-list/block-invalid-warning.native.js +15 -7
  16. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  17. package/build/components/block-list/block-list-item-cell.native.js +15 -2
  18. package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
  19. package/build/components/block-list/block-list-item.native.js +158 -195
  20. package/build/components/block-list/block-list-item.native.js.map +1 -1
  21. package/build/components/block-list/block-outline.native.js +57 -0
  22. package/build/components/block-list/block-outline.native.js.map +1 -0
  23. package/build/components/block-list/block.native.js +343 -300
  24. package/build/components/block-list/block.native.js.map +1 -1
  25. package/build/components/block-list/index.native.js +202 -298
  26. package/build/components/block-list/index.native.js.map +1 -1
  27. package/build/components/block-list/insertion-point.native.js +4 -2
  28. package/build/components/block-list/insertion-point.native.js.map +1 -1
  29. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +1 -1
  30. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  31. package/build/components/block-settings-menu/block-settings-dropdown.js +8 -10
  32. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  33. package/build/components/block-settings-menu-controls/index.js +15 -4
  34. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  35. package/build/components/block-toolbar/index.js +2 -1
  36. package/build/components/block-toolbar/index.js.map +1 -1
  37. package/build/components/block-tools/block-contextual-toolbar.js +40 -11
  38. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  39. package/build/components/block-tools/selected-block-popover.js +8 -30
  40. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  41. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  42. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  43. package/build/components/editor-styles/index.js +4 -3
  44. package/build/components/editor-styles/index.js.map +1 -1
  45. package/build/components/font-sizes/fluid-utils.js +21 -14
  46. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  47. package/build/components/global-styles/advanced-panel.js +86 -0
  48. package/build/components/global-styles/advanced-panel.js.map +1 -0
  49. package/build/components/global-styles/border-panel.js +2 -32
  50. package/build/components/global-styles/border-panel.js.map +1 -1
  51. package/build/components/global-styles/color-panel.js +16 -13
  52. package/build/components/global-styles/color-panel.js.map +1 -1
  53. package/build/components/global-styles/color-panel.native.js +174 -0
  54. package/build/components/global-styles/color-panel.native.js.map +1 -0
  55. package/build/components/global-styles/dimensions-panel.js +12 -12
  56. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  57. package/build/components/global-styles/effects-panel.js +1 -1
  58. package/build/components/global-styles/effects-panel.js.map +1 -1
  59. package/build/components/global-styles/filters-panel.js +78 -14
  60. package/build/components/global-styles/filters-panel.js.map +1 -1
  61. package/build/components/global-styles/hooks.js +1 -2
  62. package/build/components/global-styles/hooks.js.map +1 -1
  63. package/build/components/global-styles/index.js +24 -0
  64. package/build/components/global-styles/index.js.map +1 -1
  65. package/build/components/global-styles/typography-panel.js +10 -10
  66. package/build/components/global-styles/typography-panel.js.map +1 -1
  67. package/build/components/global-styles/use-global-styles-output.js +114 -81
  68. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  69. package/build/components/global-styles/utils.js +30 -0
  70. package/build/components/global-styles/utils.js.map +1 -1
  71. package/build/components/image-editor/use-save-image.js +24 -8
  72. package/build/components/image-editor/use-save-image.js.map +1 -1
  73. package/build/components/index.js +7 -0
  74. package/build/components/index.js.map +1 -1
  75. package/build/components/inserter/block-types-tab.js +12 -7
  76. package/build/components/inserter/block-types-tab.js.map +1 -1
  77. package/build/components/inserter/index.js +2 -1
  78. package/build/components/inserter/index.js.map +1 -1
  79. package/build/components/inserter-draggable-blocks/index.js +5 -0
  80. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  81. package/build/components/inspector-controls/fill.js +1 -1
  82. package/build/components/inspector-controls/fill.js.map +1 -1
  83. package/build/components/inspector-controls/fill.native.js +1 -1
  84. package/build/components/inspector-controls/fill.native.js.map +1 -1
  85. package/build/components/inspector-controls/groups.js +2 -0
  86. package/build/components/inspector-controls/groups.js.map +1 -1
  87. package/build/components/inspector-controls/slot.js +3 -6
  88. package/build/components/inspector-controls/slot.js.map +1 -1
  89. package/build/components/inspector-controls/slot.native.js +1 -1
  90. package/build/components/inspector-controls/slot.native.js.map +1 -1
  91. package/build/components/inspector-controls-tabs/styles-tab.js +2 -0
  92. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  93. package/build/components/line-height-control/index.js +7 -2
  94. package/build/components/line-height-control/index.js.map +1 -1
  95. package/build/components/link-control/use-internal-input-value.js +9 -8
  96. package/build/components/link-control/use-internal-input-value.js.map +1 -1
  97. package/build/components/list-view/block-contents.js +7 -2
  98. package/build/components/list-view/block-contents.js.map +1 -1
  99. package/build/components/list-view/block-select-button.js +9 -3
  100. package/build/components/list-view/block-select-button.js.map +1 -1
  101. package/build/components/list-view/block.js +16 -25
  102. package/build/components/list-view/block.js.map +1 -1
  103. package/build/components/list-view/drop-indicator.js +37 -10
  104. package/build/components/list-view/drop-indicator.js.map +1 -1
  105. package/build/components/list-view/index.js +38 -18
  106. package/build/components/list-view/index.js.map +1 -1
  107. package/build/components/list-view/leaf.js +2 -1
  108. package/build/components/list-view/leaf.js.map +1 -1
  109. package/build/components/list-view/use-block-selection.js +1 -1
  110. package/build/components/list-view/use-block-selection.js.map +1 -1
  111. package/build/components/list-view/use-list-view-drop-zone.js +163 -11
  112. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  113. package/build/components/media-placeholder/index.js +68 -7
  114. package/build/components/media-placeholder/index.js.map +1 -1
  115. package/build/components/media-replace-flow/index.js +5 -5
  116. package/build/components/media-replace-flow/index.js.map +1 -1
  117. package/build/components/multi-selection-inspector/index.js +2 -2
  118. package/build/components/multi-selection-inspector/index.js.map +1 -1
  119. package/build/components/navigable-toolbar/index.js +12 -4
  120. package/build/components/navigable-toolbar/index.js.map +1 -1
  121. package/build/components/off-canvas-editor/appender.js +2 -7
  122. package/build/components/off-canvas-editor/appender.js.map +1 -1
  123. package/build/components/off-canvas-editor/leaf-more-menu.js +3 -1
  124. package/build/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
  125. package/build/components/preview-options/index.js +6 -1
  126. package/build/components/preview-options/index.js.map +1 -1
  127. package/build/components/spacing-sizes-control/spacing-input-control.js +1 -1
  128. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  129. package/build/components/url-input/index.js +1 -2
  130. package/build/components/url-input/index.js.map +1 -1
  131. package/build/hooks/align.js +1 -1
  132. package/build/hooks/align.js.map +1 -1
  133. package/build/hooks/border.js +1 -1
  134. package/build/hooks/border.js.map +1 -1
  135. package/build/hooks/color.js +1 -1
  136. package/build/hooks/color.js.map +1 -1
  137. package/build/hooks/content-lock-ui.js +8 -12
  138. package/build/hooks/content-lock-ui.js.map +1 -1
  139. package/build/hooks/duotone.js +29 -4
  140. package/build/hooks/duotone.js.map +1 -1
  141. package/build/hooks/index.native.js +8 -0
  142. package/build/hooks/index.native.js.map +1 -1
  143. package/build/hooks/layout.js +2 -2
  144. package/build/hooks/layout.js.map +1 -1
  145. package/build/hooks/position.js +1 -1
  146. package/build/hooks/position.js.map +1 -1
  147. package/build/hooks/style.js +1 -1
  148. package/build/hooks/style.js.map +1 -1
  149. package/build/hooks/use-editor-wrapper-styles.native.js +255 -0
  150. package/build/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  151. package/build/hooks/use-typography-props.js +14 -10
  152. package/build/hooks/use-typography-props.js.map +1 -1
  153. package/build/hooks/utils.js +15 -3
  154. package/build/hooks/utils.js.map +1 -1
  155. package/build/index.native.js +31 -0
  156. package/build/index.native.js.map +1 -0
  157. package/build/private-apis.js +10 -1
  158. package/build/private-apis.js.map +1 -1
  159. package/build/store/actions.js +7 -0
  160. package/build/store/actions.js.map +1 -1
  161. package/build/utils/object.js +5 -5
  162. package/build/utils/object.js.map +1 -1
  163. package/build/utils/transform-styles/index.js +2 -2
  164. package/build/utils/transform-styles/index.js.map +1 -1
  165. package/build/utils/use-should-contextual-toolbar-show.js +72 -0
  166. package/build/utils/use-should-contextual-toolbar-show.js.map +1 -0
  167. package/build-module/components/block-controls/slot.js +11 -4
  168. package/build-module/components/block-controls/slot.js.map +1 -1
  169. package/build-module/components/block-controls/slot.native.js +9 -1
  170. package/build-module/components/block-controls/slot.native.js.map +1 -1
  171. package/build-module/components/block-draggable/index.js +10 -6
  172. package/build-module/components/block-draggable/index.js.map +1 -1
  173. package/build-module/components/block-draggable/use-scroll-when-dragging.js +2 -2
  174. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  175. package/build-module/components/block-info-slot-fill/index.js +34 -0
  176. package/build-module/components/block-info-slot-fill/index.js.map +1 -0
  177. package/build-module/components/block-inspector/index.js +3 -2
  178. package/build-module/components/block-inspector/index.js.map +1 -1
  179. package/build-module/components/block-list/block-invalid-warning.native.js +16 -8
  180. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  181. package/build-module/components/block-list/block-list-item-cell.native.js +13 -2
  182. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
  183. package/build-module/components/block-list/block-list-item.native.js +160 -190
  184. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  185. package/build-module/components/block-list/block-outline.native.js +44 -0
  186. package/build-module/components/block-list/block-outline.native.js.map +1 -0
  187. package/build-module/components/block-list/block.native.js +341 -299
  188. package/build-module/components/block-list/block.native.js.map +1 -1
  189. package/build-module/components/block-list/index.native.js +203 -293
  190. package/build-module/components/block-list/index.native.js.map +1 -1
  191. package/build-module/components/block-list/insertion-point.native.js +4 -2
  192. package/build-module/components/block-list/insertion-point.native.js.map +1 -1
  193. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +1 -1
  194. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  195. package/build-module/components/block-settings-menu/block-settings-dropdown.js +8 -9
  196. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  197. package/build-module/components/block-settings-menu-controls/index.js +13 -5
  198. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  199. package/build-module/components/block-toolbar/index.js +2 -1
  200. package/build-module/components/block-toolbar/index.js.map +1 -1
  201. package/build-module/components/block-tools/block-contextual-toolbar.js +37 -11
  202. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  203. package/build-module/components/block-tools/selected-block-popover.js +8 -29
  204. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  205. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  206. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  207. package/build-module/components/editor-styles/index.js +4 -3
  208. package/build-module/components/editor-styles/index.js.map +1 -1
  209. package/build-module/components/font-sizes/fluid-utils.js +21 -14
  210. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  211. package/build-module/components/global-styles/advanced-panel.js +74 -0
  212. package/build-module/components/global-styles/advanced-panel.js.map +1 -0
  213. package/build-module/components/global-styles/border-panel.js +2 -32
  214. package/build-module/components/global-styles/border-panel.js.map +1 -1
  215. package/build-module/components/global-styles/color-panel.js +18 -15
  216. package/build-module/components/global-styles/color-panel.js.map +1 -1
  217. package/build-module/components/global-styles/color-panel.native.js +150 -0
  218. package/build-module/components/global-styles/color-panel.native.js.map +1 -0
  219. package/build-module/components/global-styles/dimensions-panel.js +13 -13
  220. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  221. package/build-module/components/global-styles/effects-panel.js +2 -2
  222. package/build-module/components/global-styles/effects-panel.js.map +1 -1
  223. package/build-module/components/global-styles/filters-panel.js +78 -16
  224. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  225. package/build-module/components/global-styles/hooks.js +1 -2
  226. package/build-module/components/global-styles/hooks.js.map +1 -1
  227. package/build-module/components/global-styles/index.js +3 -1
  228. package/build-module/components/global-styles/index.js.map +1 -1
  229. package/build-module/components/global-styles/typography-panel.js +11 -11
  230. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  231. package/build-module/components/global-styles/use-global-styles-output.js +112 -81
  232. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  233. package/build-module/components/global-styles/utils.js +25 -0
  234. package/build-module/components/global-styles/utils.js.map +1 -1
  235. package/build-module/components/image-editor/use-save-image.js +24 -8
  236. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  237. package/build-module/components/index.js +1 -1
  238. package/build-module/components/index.js.map +1 -1
  239. package/build-module/components/inserter/block-types-tab.js +12 -6
  240. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  241. package/build-module/components/inserter/index.js +2 -1
  242. package/build-module/components/inserter/index.js.map +1 -1
  243. package/build-module/components/inserter-draggable-blocks/index.js +4 -0
  244. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  245. package/build-module/components/inspector-controls/fill.js +1 -1
  246. package/build-module/components/inspector-controls/fill.js.map +1 -1
  247. package/build-module/components/inspector-controls/fill.native.js +1 -1
  248. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  249. package/build-module/components/inspector-controls/groups.js +2 -0
  250. package/build-module/components/inspector-controls/groups.js.map +1 -1
  251. package/build-module/components/inspector-controls/slot.js +4 -7
  252. package/build-module/components/inspector-controls/slot.js.map +1 -1
  253. package/build-module/components/inspector-controls/slot.native.js +1 -1
  254. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  255. package/build-module/components/inspector-controls-tabs/styles-tab.js +2 -0
  256. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  257. package/build-module/components/line-height-control/index.js +7 -2
  258. package/build-module/components/line-height-control/index.js.map +1 -1
  259. package/build-module/components/link-control/use-internal-input-value.js +9 -8
  260. package/build-module/components/link-control/use-internal-input-value.js.map +1 -1
  261. package/build-module/components/list-view/block-contents.js +7 -3
  262. package/build-module/components/list-view/block-contents.js.map +1 -1
  263. package/build-module/components/list-view/block-select-button.js +9 -3
  264. package/build-module/components/list-view/block-select-button.js.map +1 -1
  265. package/build-module/components/list-view/block.js +18 -26
  266. package/build-module/components/list-view/block.js.map +1 -1
  267. package/build-module/components/list-view/drop-indicator.js +36 -10
  268. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  269. package/build-module/components/list-view/index.js +39 -19
  270. package/build-module/components/list-view/index.js.map +1 -1
  271. package/build-module/components/list-view/leaf.js +2 -1
  272. package/build-module/components/list-view/leaf.js.map +1 -1
  273. package/build-module/components/list-view/use-block-selection.js +1 -1
  274. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  275. package/build-module/components/list-view/use-list-view-drop-zone.js +160 -11
  276. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  277. package/build-module/components/media-placeholder/index.js +66 -7
  278. package/build-module/components/media-placeholder/index.js.map +1 -1
  279. package/build-module/components/media-replace-flow/index.js +5 -5
  280. package/build-module/components/media-replace-flow/index.js.map +1 -1
  281. package/build-module/components/multi-selection-inspector/index.js +2 -2
  282. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  283. package/build-module/components/navigable-toolbar/index.js +12 -4
  284. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  285. package/build-module/components/off-canvas-editor/appender.js +1 -5
  286. package/build-module/components/off-canvas-editor/appender.js.map +1 -1
  287. package/build-module/components/off-canvas-editor/leaf-more-menu.js +3 -1
  288. package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
  289. package/build-module/components/preview-options/index.js +7 -2
  290. package/build-module/components/preview-options/index.js.map +1 -1
  291. package/build-module/components/spacing-sizes-control/spacing-input-control.js +1 -1
  292. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  293. package/build-module/components/url-input/index.js +1 -2
  294. package/build-module/components/url-input/index.js.map +1 -1
  295. package/build-module/hooks/align.js +1 -1
  296. package/build-module/hooks/align.js.map +1 -1
  297. package/build-module/hooks/border.js +1 -1
  298. package/build-module/hooks/border.js.map +1 -1
  299. package/build-module/hooks/color.js +1 -1
  300. package/build-module/hooks/color.js.map +1 -1
  301. package/build-module/hooks/content-lock-ui.js +8 -11
  302. package/build-module/hooks/content-lock-ui.js.map +1 -1
  303. package/build-module/hooks/duotone.js +28 -5
  304. package/build-module/hooks/duotone.js.map +1 -1
  305. package/build-module/hooks/index.native.js +1 -0
  306. package/build-module/hooks/index.native.js.map +1 -1
  307. package/build-module/hooks/layout.js +2 -2
  308. package/build-module/hooks/layout.js.map +1 -1
  309. package/build-module/hooks/position.js +1 -1
  310. package/build-module/hooks/position.js.map +1 -1
  311. package/build-module/hooks/style.js +1 -1
  312. package/build-module/hooks/style.js.map +1 -1
  313. package/build-module/hooks/use-editor-wrapper-styles.native.js +242 -0
  314. package/build-module/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  315. package/build-module/hooks/use-typography-props.js +14 -10
  316. package/build-module/hooks/use-typography-props.js.map +1 -1
  317. package/build-module/hooks/utils.js +16 -4
  318. package/build-module/hooks/utils.js.map +1 -1
  319. package/build-module/index.native.js +6 -0
  320. package/build-module/index.native.js.map +1 -0
  321. package/build-module/private-apis.js +7 -1
  322. package/build-module/private-apis.js.map +1 -1
  323. package/build-module/store/actions.js +7 -0
  324. package/build-module/store/actions.js.map +1 -1
  325. package/build-module/utils/object.js +4 -4
  326. package/build-module/utils/object.js.map +1 -1
  327. package/build-module/utils/transform-styles/index.js +2 -2
  328. package/build-module/utils/transform-styles/index.js.map +1 -1
  329. package/build-module/utils/use-should-contextual-toolbar-show.js +60 -0
  330. package/build-module/utils/use-should-contextual-toolbar-show.js.map +1 -0
  331. package/build-style/content-rtl.css +9 -7
  332. package/build-style/content.css +9 -7
  333. package/build-style/style-rtl.css +257 -56
  334. package/build-style/style.css +257 -56
  335. package/package.json +32 -32
  336. package/src/components/block-breadcrumb/style.scss +2 -1
  337. package/src/components/block-controls/slot.js +8 -4
  338. package/src/components/block-controls/slot.native.js +6 -1
  339. package/src/components/block-draggable/index.js +10 -6
  340. package/src/components/block-draggable/use-scroll-when-dragging.js +8 -2
  341. package/src/components/block-info-slot-fill/index.js +24 -0
  342. package/src/components/block-inspector/index.js +3 -0
  343. package/src/components/block-list/block-invalid-warning.native.js +17 -9
  344. package/src/components/block-list/block-list-item-cell.native.js +10 -1
  345. package/src/components/block-list/block-list-item.native.js +180 -208
  346. package/src/components/block-list/block-outline.native.js +58 -0
  347. package/src/components/block-list/block.native.js +564 -524
  348. package/src/components/block-list/content.scss +16 -16
  349. package/src/components/block-list/index.native.js +229 -298
  350. package/src/components/block-list/insertion-point.native.js +2 -2
  351. package/src/components/block-list/test/block-invalid-warning.native.js +48 -0
  352. package/src/components/block-list/test/index.native.js +205 -0
  353. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +3 -1
  354. package/src/components/block-mobile-toolbar/test/block-actions-menu.native.js +9 -9
  355. package/src/components/block-mover/style.scss +10 -4
  356. package/src/components/block-mover/test/index.native.js +4 -4
  357. package/src/components/block-pattern-setup/style.scss +1 -4
  358. package/src/components/block-patterns-list/style.scss +1 -4
  359. package/src/components/block-settings-menu/block-settings-dropdown.js +10 -17
  360. package/src/components/block-settings-menu-controls/index.js +24 -4
  361. package/src/components/block-styles/style.scss +4 -4
  362. package/src/components/block-toolbar/index.js +4 -3
  363. package/src/components/block-toolbar/style.scss +56 -33
  364. package/src/components/block-tools/block-contextual-toolbar.js +64 -15
  365. package/src/components/block-tools/selected-block-popover.js +11 -46
  366. package/src/components/block-tools/style.scss +165 -3
  367. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +16 -2
  368. package/src/components/editor-styles/index.js +9 -5
  369. package/src/components/font-sizes/fluid-utils.js +31 -14
  370. package/src/components/font-sizes/test/fluid-utils.js +5 -16
  371. package/src/components/global-styles/advanced-panel.js +82 -0
  372. package/src/components/global-styles/border-panel.js +1 -30
  373. package/src/components/global-styles/color-panel.js +19 -14
  374. package/src/components/global-styles/color-panel.native.js +207 -0
  375. package/src/components/global-styles/dimensions-panel.js +23 -13
  376. package/src/components/global-styles/effects-panel.js +2 -2
  377. package/src/components/global-styles/filters-panel.js +90 -17
  378. package/src/components/global-styles/hooks.js +1 -5
  379. package/src/components/global-styles/index.js +6 -1
  380. package/src/components/global-styles/style.scss +16 -1
  381. package/src/components/global-styles/test/typography-utils.js +63 -22
  382. package/src/components/global-styles/test/use-global-styles-output.js +126 -4
  383. package/src/components/global-styles/test/utils.js +57 -1
  384. package/src/components/global-styles/typography-panel.js +38 -12
  385. package/src/components/global-styles/use-global-styles-output.js +85 -67
  386. package/src/components/global-styles/utils.js +27 -0
  387. package/src/components/image-editor/use-save-image.js +20 -9
  388. package/src/components/index.js +1 -0
  389. package/src/components/inserter/block-types-tab.js +9 -6
  390. package/src/components/inserter/index.js +1 -1
  391. package/src/components/inserter-draggable-blocks/index.js +4 -0
  392. package/src/components/inspector-controls/fill.js +1 -1
  393. package/src/components/inspector-controls/fill.native.js +1 -1
  394. package/src/components/inspector-controls/groups.js +2 -0
  395. package/src/components/inspector-controls/slot.js +4 -9
  396. package/src/components/inspector-controls/slot.native.js +1 -1
  397. package/src/components/inspector-controls-tabs/styles-tab.js +1 -0
  398. package/src/components/line-height-control/index.js +7 -2
  399. package/src/components/line-height-control/stories/index.js +1 -1
  400. package/src/components/link-control/test/index.js +42 -0
  401. package/src/components/link-control/use-internal-input-value.js +8 -7
  402. package/src/components/list-view/block-contents.js +26 -20
  403. package/src/components/list-view/block-select-button.js +11 -2
  404. package/src/components/list-view/block.js +28 -33
  405. package/src/components/list-view/drop-indicator.js +67 -22
  406. package/src/components/list-view/index.js +33 -14
  407. package/src/components/list-view/leaf.js +1 -0
  408. package/src/components/list-view/style.scss +18 -3
  409. package/src/components/list-view/test/use-list-view-drop-zone.js +88 -12
  410. package/src/components/list-view/use-block-selection.js +1 -1
  411. package/src/components/list-view/use-list-view-drop-zone.js +194 -11
  412. package/src/components/media-placeholder/index.js +74 -1
  413. package/src/components/media-replace-flow/README.md +3 -2
  414. package/src/components/media-replace-flow/index.js +4 -5
  415. package/src/components/multi-selection-inspector/index.js +2 -2
  416. package/src/components/navigable-toolbar/index.js +12 -3
  417. package/src/components/off-canvas-editor/appender.js +1 -4
  418. package/src/components/off-canvas-editor/leaf-more-menu.js +2 -1
  419. package/src/components/preview-options/index.js +9 -2
  420. package/src/components/spacing-sizes-control/spacing-input-control.js +1 -0
  421. package/src/components/url-input/index.js +1 -2
  422. package/src/components/url-popover/test/__snapshots__/index.js.snap +3 -3
  423. package/src/hooks/align.js +2 -1
  424. package/src/hooks/border.js +2 -1
  425. package/src/hooks/color.js +2 -1
  426. package/src/hooks/content-lock-ui.js +3 -15
  427. package/src/hooks/duotone.js +47 -25
  428. package/src/hooks/index.native.js +1 -0
  429. package/src/hooks/layout.js +4 -2
  430. package/src/hooks/position.js +2 -1
  431. package/src/hooks/style.js +2 -1
  432. package/src/hooks/test/anchor.js +113 -0
  433. package/src/hooks/test/color.js +0 -9
  434. package/src/hooks/test/use-editor-wrapper-styles.native.js +282 -0
  435. package/src/hooks/test/use-typography-props.js +49 -4
  436. package/src/hooks/test/utils.js +20 -101
  437. package/src/hooks/use-editor-wrapper-styles.native.js +250 -0
  438. package/src/hooks/use-editor-wrapper-styles.native.scss +11 -0
  439. package/src/hooks/use-typography-props.js +10 -11
  440. package/src/hooks/utils.js +20 -3
  441. package/src/index.native.js +6 -0
  442. package/src/private-apis.js +6 -0
  443. package/src/store/actions.js +7 -0
  444. package/src/utils/object.js +4 -4
  445. package/src/utils/test/object.js +21 -21
  446. package/src/utils/transform-styles/index.js +2 -2
  447. package/src/utils/use-should-contextual-toolbar-show.js +85 -0
  448. package/tsconfig.json +2 -0
  449. package/tsconfig.tsbuildinfo +1 -1
  450. package/build/hooks/color-panel.native.js +0 -77
  451. package/build/hooks/color-panel.native.js.map +0 -1
  452. package/build-module/hooks/color-panel.native.js +0 -62
  453. package/build-module/hooks/color-panel.native.js.map +0 -1
  454. package/src/hooks/color-panel.native.js +0 -63
@@ -6,22 +6,29 @@ import { createElement } from "@wordpress/element";
6
6
  */
7
7
  import { useContext } from '@wordpress/element';
8
8
  import { __experimentalToolbarContext as ToolbarContext, ToolbarGroup, __experimentalUseSlotFills as useSlotFills } from '@wordpress/components';
9
+ import warning from '@wordpress/warning';
9
10
  /**
10
11
  * Internal dependencies
11
12
  */
12
13
 
13
14
  import groups from './groups';
14
15
  export default function BlockControlsSlot(_ref) {
16
+ var _groups$group;
17
+
15
18
  let {
16
19
  group = 'default',
17
20
  ...props
18
21
  } = _ref;
19
22
  const accessibleToolbarState = useContext(ToolbarContext);
20
- const Slot = groups[group].Slot;
21
- const fills = useSlotFills(Slot.__unstableName);
22
- const hasFills = Boolean(fills && fills.length);
23
+ const Slot = (_groups$group = groups[group]) === null || _groups$group === void 0 ? void 0 : _groups$group.Slot;
24
+ const fills = useSlotFills(Slot === null || Slot === void 0 ? void 0 : Slot.__unstableName);
25
+
26
+ if (!Slot) {
27
+ typeof process !== "undefined" && process.env && process.env.NODE_ENV !== "production" ? warning(`Unknown BlockControls group "${group}" provided.`) : void 0;
28
+ return null;
29
+ }
23
30
 
24
- if (!hasFills) {
31
+ if (!(fills !== null && fills !== void 0 && fills.length)) {
25
32
  return null;
26
33
  }
27
34
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-controls/slot.js"],"names":["useContext","__experimentalToolbarContext","ToolbarContext","ToolbarGroup","__experimentalUseSlotFills","useSlotFills","groups","BlockControlsSlot","group","props","accessibleToolbarState","Slot","fills","__unstableName","hasFills","Boolean","length"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,UAAT,QAA2B,oBAA3B;AACA,SACCC,4BAA4B,IAAIC,cADjC,EAECC,YAFD,EAGCC,0BAA0B,IAAIC,YAH/B,QAIO,uBAJP;AAMA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,eAAe,SAASC,iBAAT,OAA8D;AAAA,MAAlC;AAAEC,IAAAA,KAAK,GAAG,SAAV;AAAqB,OAAGC;AAAxB,GAAkC;AAC5E,QAAMC,sBAAsB,GAAGV,UAAU,CAAEE,cAAF,CAAzC;AACA,QAAMS,IAAI,GAAGL,MAAM,CAAEE,KAAF,CAAN,CAAgBG,IAA7B;AACA,QAAMC,KAAK,GAAGP,YAAY,CAAEM,IAAI,CAACE,cAAP,CAA1B;AACA,QAAMC,QAAQ,GAAGC,OAAO,CAAEH,KAAK,IAAIA,KAAK,CAACI,MAAjB,CAAxB;;AAEA,MAAK,CAAEF,QAAP,EAAkB;AACjB,WAAO,IAAP;AACA;;AAED,MAAKN,KAAK,KAAK,SAAf,EAA2B;AAC1B,WACC,cAAC,IAAD,eACMC,KADN;AAEC,MAAA,gBAAgB,MAFjB;AAGC,MAAA,SAAS,EAAGC;AAHb,OADD;AAOA;;AAED,SACC,cAAC,YAAD,QACC,cAAC,IAAD,eACMD,KADN;AAEC,IAAA,gBAAgB,MAFjB;AAGC,IAAA,SAAS,EAAGC;AAHb,KADD,CADD;AASA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\t__experimentalToolbarContext as ToolbarContext,\n\tToolbarGroup,\n\t__experimentalUseSlotFills as useSlotFills,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport groups from './groups';\n\nexport default function BlockControlsSlot( { group = 'default', ...props } ) {\n\tconst accessibleToolbarState = useContext( ToolbarContext );\n\tconst Slot = groups[ group ].Slot;\n\tconst fills = useSlotFills( Slot.__unstableName );\n\tconst hasFills = Boolean( fills && fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\tif ( group === 'default' ) {\n\t\treturn (\n\t\t\t<Slot\n\t\t\t\t{ ...props }\n\t\t\t\tbubblesVirtually\n\t\t\t\tfillProps={ accessibleToolbarState }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<Slot\n\t\t\t\t{ ...props }\n\t\t\t\tbubblesVirtually\n\t\t\t\tfillProps={ accessibleToolbarState }\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-controls/slot.js"],"names":["useContext","__experimentalToolbarContext","ToolbarContext","ToolbarGroup","__experimentalUseSlotFills","useSlotFills","warning","groups","BlockControlsSlot","group","props","accessibleToolbarState","Slot","fills","__unstableName","length"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,UAAT,QAA2B,oBAA3B;AACA,SACCC,4BAA4B,IAAIC,cADjC,EAECC,YAFD,EAGCC,0BAA0B,IAAIC,YAH/B,QAIO,uBAJP;AAKA,OAAOC,OAAP,MAAoB,oBAApB;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,eAAe,SAASC,iBAAT,OAA8D;AAAA;;AAAA,MAAlC;AAAEC,IAAAA,KAAK,GAAG,SAAV;AAAqB,OAAGC;AAAxB,GAAkC;AAC5E,QAAMC,sBAAsB,GAAGX,UAAU,CAAEE,cAAF,CAAzC;AACA,QAAMU,IAAI,oBAAGL,MAAM,CAAEE,KAAF,CAAT,kDAAG,cAAiBG,IAA9B;AACA,QAAMC,KAAK,GAAGR,YAAY,CAAEO,IAAF,aAAEA,IAAF,uBAAEA,IAAI,CAAEE,cAAR,CAA1B;;AACA,MAAK,CAAEF,IAAP,EAAc;AACb,6FAAAN,OAAO,CAAG,gCAAgCG,KAAO,aAA1C,CAAP;AACA,WAAO,IAAP;AACA;;AAED,MAAK,EAAEI,KAAF,aAAEA,KAAF,eAAEA,KAAK,CAAEE,MAAT,CAAL,EAAuB;AACtB,WAAO,IAAP;AACA;;AAED,MAAKN,KAAK,KAAK,SAAf,EAA2B;AAC1B,WACC,cAAC,IAAD,eACMC,KADN;AAEC,MAAA,gBAAgB,MAFjB;AAGC,MAAA,SAAS,EAAGC;AAHb,OADD;AAOA;;AAED,SACC,cAAC,YAAD,QACC,cAAC,IAAD,eACMD,KADN;AAEC,IAAA,gBAAgB,MAFjB;AAGC,IAAA,SAAS,EAAGC;AAHb,KADD,CADD;AASA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\t__experimentalToolbarContext as ToolbarContext,\n\tToolbarGroup,\n\t__experimentalUseSlotFills as useSlotFills,\n} from '@wordpress/components';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport groups from './groups';\n\nexport default function BlockControlsSlot( { group = 'default', ...props } ) {\n\tconst accessibleToolbarState = useContext( ToolbarContext );\n\tconst Slot = groups[ group ]?.Slot;\n\tconst fills = useSlotFills( Slot?.__unstableName );\n\tif ( ! Slot ) {\n\t\twarning( `Unknown BlockControls group \"${ group }\" provided.` );\n\t\treturn null;\n\t}\n\n\tif ( ! fills?.length ) {\n\t\treturn null;\n\t}\n\n\tif ( group === 'default' ) {\n\t\treturn (\n\t\t\t<Slot\n\t\t\t\t{ ...props }\n\t\t\t\tbubblesVirtually\n\t\t\t\tfillProps={ accessibleToolbarState }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<Slot\n\t\t\t\t{ ...props }\n\t\t\t\tbubblesVirtually\n\t\t\t\tfillProps={ accessibleToolbarState }\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n}\n"]}
@@ -6,18 +6,26 @@ import { createElement } from "@wordpress/element";
6
6
  */
7
7
  import { useContext } from '@wordpress/element';
8
8
  import { __experimentalToolbarContext as ToolbarContext, ToolbarGroup } from '@wordpress/components';
9
+ import warning from '@wordpress/warning';
9
10
  /**
10
11
  * Internal dependencies
11
12
  */
12
13
 
13
14
  import groups from './groups';
14
15
  export default function BlockControlsSlot(_ref) {
16
+ var _groups$group;
17
+
15
18
  let {
16
19
  group = 'default',
17
20
  ...props
18
21
  } = _ref;
19
22
  const accessibleToolbarState = useContext(ToolbarContext);
20
- const Slot = groups[group].Slot;
23
+ const Slot = (_groups$group = groups[group]) === null || _groups$group === void 0 ? void 0 : _groups$group.Slot;
24
+
25
+ if (!Slot) {
26
+ typeof process !== "undefined" && process.env && process.env.NODE_ENV !== "production" ? warning(`Unknown BlockControls group "${group}" provided.`) : void 0;
27
+ return null;
28
+ }
21
29
 
22
30
  if (group === 'default') {
23
31
  return createElement(Slot, _extends({}, props, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-controls/slot.native.js"],"names":["useContext","__experimentalToolbarContext","ToolbarContext","ToolbarGroup","groups","BlockControlsSlot","group","props","accessibleToolbarState","Slot","fills","length"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,UAAT,QAA2B,oBAA3B;AACA,SACCC,4BAA4B,IAAIC,cADjC,EAECC,YAFD,QAGO,uBAHP;AAKA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,eAAe,SAASC,iBAAT,OAA8D;AAAA,MAAlC;AAAEC,IAAAA,KAAK,GAAG,SAAV;AAAqB,OAAGC;AAAxB,GAAkC;AAC5E,QAAMC,sBAAsB,GAAGR,UAAU,CAAEE,cAAF,CAAzC;AACA,QAAMO,IAAI,GAAGL,MAAM,CAAEE,KAAF,CAAN,CAAgBG,IAA7B;;AAEA,MAAKH,KAAK,KAAK,SAAf,EAA2B;AAC1B,WAAO,cAAC,IAAD,eAAWC,KAAX;AAAmB,MAAA,SAAS,EAAGC;AAA/B,OAAP;AACA;;AAED,SACC,cAAC,IAAD,eAAWD,KAAX;AAAmB,IAAA,SAAS,EAAGC;AAA/B,MACKE,KAAF,IAAa;AACd,QAAK,CAAEA,KAAK,CAACC,MAAb,EAAsB;AACrB,aAAO,IAAP;AACA;;AACD,WAAO,cAAC,YAAD,QAAgBD,KAAhB,CAAP;AACA,GANF,CADD;AAUA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\t__experimentalToolbarContext as ToolbarContext,\n\tToolbarGroup,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport groups from './groups';\n\nexport default function BlockControlsSlot( { group = 'default', ...props } ) {\n\tconst accessibleToolbarState = useContext( ToolbarContext );\n\tconst Slot = groups[ group ].Slot;\n\n\tif ( group === 'default' ) {\n\t\treturn <Slot { ...props } fillProps={ accessibleToolbarState } />;\n\t}\n\n\treturn (\n\t\t<Slot { ...props } fillProps={ accessibleToolbarState }>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif ( ! fills.length ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn <ToolbarGroup>{ fills }</ToolbarGroup>;\n\t\t\t} }\n\t\t</Slot>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-controls/slot.native.js"],"names":["useContext","__experimentalToolbarContext","ToolbarContext","ToolbarGroup","warning","groups","BlockControlsSlot","group","props","accessibleToolbarState","Slot","fills","length"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,UAAT,QAA2B,oBAA3B;AACA,SACCC,4BAA4B,IAAIC,cADjC,EAECC,YAFD,QAGO,uBAHP;AAIA,OAAOC,OAAP,MAAoB,oBAApB;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,eAAe,SAASC,iBAAT,OAA8D;AAAA;;AAAA,MAAlC;AAAEC,IAAAA,KAAK,GAAG,SAAV;AAAqB,OAAGC;AAAxB,GAAkC;AAC5E,QAAMC,sBAAsB,GAAGT,UAAU,CAAEE,cAAF,CAAzC;AACA,QAAMQ,IAAI,oBAAGL,MAAM,CAAEE,KAAF,CAAT,kDAAG,cAAiBG,IAA9B;;AACA,MAAK,CAAEA,IAAP,EAAc;AACb,6FAAAN,OAAO,CAAG,gCAAgCG,KAAO,aAA1C,CAAP;AACA,WAAO,IAAP;AACA;;AAED,MAAKA,KAAK,KAAK,SAAf,EAA2B;AAC1B,WAAO,cAAC,IAAD,eAAWC,KAAX;AAAmB,MAAA,SAAS,EAAGC;AAA/B,OAAP;AACA;;AAED,SACC,cAAC,IAAD,eAAWD,KAAX;AAAmB,IAAA,SAAS,EAAGC;AAA/B,MACKE,KAAF,IAAa;AACd,QAAK,CAAEA,KAAK,CAACC,MAAb,EAAsB;AACrB,aAAO,IAAP;AACA;;AACD,WAAO,cAAC,YAAD,QAAgBD,KAAhB,CAAP;AACA,GANF,CADD;AAUA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\t__experimentalToolbarContext as ToolbarContext,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport groups from './groups';\n\nexport default function BlockControlsSlot( { group = 'default', ...props } ) {\n\tconst accessibleToolbarState = useContext( ToolbarContext );\n\tconst Slot = groups[ group ]?.Slot;\n\tif ( ! Slot ) {\n\t\twarning( `Unknown BlockControls group \"${ group }\" provided.` );\n\t\treturn null;\n\t}\n\n\tif ( group === 'default' ) {\n\t\treturn <Slot { ...props } fillProps={ accessibleToolbarState } />;\n\t}\n\n\treturn (\n\t\t<Slot { ...props } fillProps={ accessibleToolbarState }>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif ( ! fills.length ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn <ToolbarGroup>{ fills }</ToolbarGroup>;\n\t\t\t} }\n\t\t</Slot>\n\t);\n}\n"]}
@@ -74,13 +74,17 @@ const BlockDraggable = _ref => {
74
74
  __experimentalTransferDataType: "wp-blocks",
75
75
  transferData: transferData,
76
76
  onDragStart: event => {
77
- startDraggingBlocks(clientIds);
78
- isDragging.current = true;
79
- startScrolling(event);
77
+ // Defer hiding the dragged source element to the next
78
+ // frame to enable dragging.
79
+ window.requestAnimationFrame(() => {
80
+ startDraggingBlocks(clientIds);
81
+ isDragging.current = true;
82
+ startScrolling(event);
80
83
 
81
- if (onDragStart) {
82
- onDragStart();
83
- }
84
+ if (onDragStart) {
85
+ onDragStart();
86
+ }
87
+ });
84
88
  },
85
89
  onDragOver: scrollOnDragOver,
86
90
  onDragEnd: () => {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-draggable/index.js"],"names":["getBlockType","Draggable","useSelect","useDispatch","useEffect","useRef","BlockDraggableChip","useScrollWhenDragging","store","blockEditorStore","BlockDraggable","children","clientIds","cloneClassname","onDragStart","onDragEnd","srcRootClientId","isDraggable","icon","select","canMoveBlocks","getBlockRootClientId","getBlockName","rootClientId","blockName","isDragging","startScrolling","scrollOnDragOver","stopScrolling","startDraggingBlocks","stopDraggingBlocks","current","draggable","transferData","type","srcClientIds","event","length","onDraggableStart","onDraggableEnd"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { Draggable } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggableChip from './draggable-chip';\nimport useScrollWhenDragging from './use-scroll-when-dragging';\nimport { store as blockEditorStore } from '../../store';\n\nconst BlockDraggable = ( {\n\tchildren,\n\tclientIds,\n\tcloneClassname,\n\tonDragStart,\n\tonDragEnd,\n} ) => {\n\tconst { srcRootClientId, isDraggable, icon } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canMoveBlocks, getBlockRootClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\tconst blockName = getBlockName( clientIds[ 0 ] );\n\n\t\t\treturn {\n\t\t\t\tsrcRootClientId: rootClientId,\n\t\t\t\tisDraggable: canMoveBlocks( clientIds, rootClientId ),\n\t\t\t\ticon: getBlockType( blockName )?.icon,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst isDragging = useRef( false );\n\tconst [ startScrolling, scrollOnDragOver, stopScrolling ] =\n\t\tuseScrollWhenDragging();\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\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\tcloneClassname={ cloneClassname }\n\t\t\t__experimentalTransferDataType=\"wp-blocks\"\n\t\t\ttransferData={ transferData }\n\t\t\tonDragStart={ ( event ) => {\n\t\t\t\tstartDraggingBlocks( clientIds );\n\t\t\t\tisDragging.current = true;\n\n\t\t\t\tstartScrolling( event );\n\n\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\tonDragStart();\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<BlockDraggableChip count={ clientIds.length } icon={ icon } />\n\t\t\t}\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"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-draggable/index.js"],"names":["getBlockType","Draggable","useSelect","useDispatch","useEffect","useRef","BlockDraggableChip","useScrollWhenDragging","store","blockEditorStore","BlockDraggable","children","clientIds","cloneClassname","onDragStart","onDragEnd","srcRootClientId","isDraggable","icon","select","canMoveBlocks","getBlockRootClientId","getBlockName","rootClientId","blockName","isDragging","startScrolling","scrollOnDragOver","stopScrolling","startDraggingBlocks","stopDraggingBlocks","current","draggable","transferData","type","srcClientIds","event","window","requestAnimationFrame","length","onDraggableStart","onDraggableEnd"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,YAAT,QAA6B,mBAA7B;AACA,SAASC,SAAT,QAA0B,uBAA1B;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,SAAT,EAAoBC,MAApB,QAAkC,oBAAlC;AAEA;AACA;AACA;;AACA,OAAOC,kBAAP,MAA+B,kBAA/B;AACA,OAAOC,qBAAP,MAAkC,4BAAlC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,MAAMC,cAAc,GAAG,QAMhB;AAAA,MANkB;AACxBC,IAAAA,QADwB;AAExBC,IAAAA,SAFwB;AAGxBC,IAAAA,cAHwB;AAIxBC,IAAAA,WAJwB;AAKxBC,IAAAA;AALwB,GAMlB;AACN,QAAM;AAAEC,IAAAA,eAAF;AAAmBC,IAAAA,WAAnB;AAAgCC,IAAAA;AAAhC,MAAyChB,SAAS,CACrDiB,MAAF,IAAc;AAAA;;AACb,UAAM;AAAEC,MAAAA,aAAF;AAAiBC,MAAAA,oBAAjB;AAAuCC,MAAAA;AAAvC,QACLH,MAAM,CAAEV,gBAAF,CADP;AAEA,UAAMc,YAAY,GAAGF,oBAAoB,CAAET,SAAS,CAAE,CAAF,CAAX,CAAzC;AACA,UAAMY,SAAS,GAAGF,YAAY,CAAEV,SAAS,CAAE,CAAF,CAAX,CAA9B;AAEA,WAAO;AACNI,MAAAA,eAAe,EAAEO,YADX;AAENN,MAAAA,WAAW,EAAEG,aAAa,CAAER,SAAF,EAAaW,YAAb,CAFpB;AAGNL,MAAAA,IAAI,mBAAElB,YAAY,CAAEwB,SAAF,CAAd,kDAAE,cAA2BN;AAH3B,KAAP;AAKA,GAZsD,EAavD,CAAEN,SAAF,CAbuD,CAAxD;AAeA,QAAMa,UAAU,GAAGpB,MAAM,CAAE,KAAF,CAAzB;AACA,QAAM,CAAEqB,cAAF,EAAkBC,gBAAlB,EAAoCC,aAApC,IACLrB,qBAAqB,EADtB;AAGA,QAAM;AAAEsB,IAAAA,mBAAF;AAAuBC,IAAAA;AAAvB,MACL3B,WAAW,CAAEM,gBAAF,CADZ,CApBM,CAuBN;;AACAL,EAAAA,SAAS,CAAE,MAAM;AAChB,WAAO,MAAM;AACZ,UAAKqB,UAAU,CAACM,OAAhB,EAA0B;AACzBD,QAAAA,kBAAkB;AAClB;AACD,KAJD;AAKA,GANQ,EAMN,EANM,CAAT;;AAQA,MAAK,CAAEb,WAAP,EAAqB;AACpB,WAAON,QAAQ,CAAE;AAAEqB,MAAAA,SAAS,EAAE;AAAb,KAAF,CAAf;AACA;;AAED,QAAMC,YAAY,GAAG;AACpBC,IAAAA,IAAI,EAAE,OADc;AAEpBC,IAAAA,YAAY,EAAEvB,SAFM;AAGpBI,IAAAA;AAHoB,GAArB;AAMA,SACC,cAAC,SAAD;AACC,IAAA,cAAc,EAAGH,cADlB;AAEC,IAAA,8BAA8B,EAAC,WAFhC;AAGC,IAAA,YAAY,EAAGoB,YAHhB;AAIC,IAAA,WAAW,EAAKG,KAAF,IAAa;AAC1B;AACA;AACAC,MAAAA,MAAM,CAACC,qBAAP,CAA8B,MAAM;AACnCT,QAAAA,mBAAmB,CAAEjB,SAAF,CAAnB;AACAa,QAAAA,UAAU,CAACM,OAAX,GAAqB,IAArB;AAEAL,QAAAA,cAAc,CAAEU,KAAF,CAAd;;AAEA,YAAKtB,WAAL,EAAmB;AAClBA,UAAAA,WAAW;AACX;AACD,OATD;AAUA,KAjBF;AAkBC,IAAA,UAAU,EAAGa,gBAlBd;AAmBC,IAAA,SAAS,EAAG,MAAM;AACjBG,MAAAA,kBAAkB;AAClBL,MAAAA,UAAU,CAACM,OAAX,GAAqB,KAArB;AAEAH,MAAAA,aAAa;;AAEb,UAAKb,SAAL,EAAiB;AAChBA,QAAAA,SAAS;AACT;AACD,KA5BF;AA6BC,IAAA,2BAA2B,EAC1B,cAAC,kBAAD;AAAoB,MAAA,KAAK,EAAGH,SAAS,CAAC2B,MAAtC;AAA+C,MAAA,IAAI,EAAGrB;AAAtD;AA9BF,KAiCG,SAA4C;AAAA,QAA1C;AAAEsB,MAAAA,gBAAF;AAAoBC,MAAAA;AAApB,KAA0C;AAC7C,WAAO9B,QAAQ,CAAE;AAChBqB,MAAAA,SAAS,EAAE,IADK;AAEhBlB,MAAAA,WAAW,EAAE0B,gBAFG;AAGhBzB,MAAAA,SAAS,EAAE0B;AAHK,KAAF,CAAf;AAKA,GAvCF,CADD;AA2CA,CA3FD;;AA6FA,eAAe/B,cAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { Draggable } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggableChip from './draggable-chip';\nimport useScrollWhenDragging from './use-scroll-when-dragging';\nimport { store as blockEditorStore } from '../../store';\n\nconst BlockDraggable = ( {\n\tchildren,\n\tclientIds,\n\tcloneClassname,\n\tonDragStart,\n\tonDragEnd,\n} ) => {\n\tconst { srcRootClientId, isDraggable, icon } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canMoveBlocks, getBlockRootClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\tconst blockName = getBlockName( clientIds[ 0 ] );\n\n\t\t\treturn {\n\t\t\t\tsrcRootClientId: rootClientId,\n\t\t\t\tisDraggable: canMoveBlocks( clientIds, rootClientId ),\n\t\t\t\ticon: getBlockType( blockName )?.icon,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst isDragging = useRef( false );\n\tconst [ startScrolling, scrollOnDragOver, stopScrolling ] =\n\t\tuseScrollWhenDragging();\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\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\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<BlockDraggableChip count={ clientIds.length } icon={ icon } />\n\t\t\t}\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"]}
@@ -55,13 +55,13 @@ export default function useScrollWhenDragging() {
55
55
  // User is dragging downwards.
56
56
  const moveableDistance = Math.max(scrollParentHeight - offsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX, 0);
57
57
  const dragDistance = Math.max(offsetDragPosition - offsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX, 0);
58
- const distancePercentage = dragDistance / moveableDistance;
58
+ const distancePercentage = moveableDistance === 0 || dragDistance === 0 ? 0 : dragDistance / moveableDistance;
59
59
  velocityY.current = VELOCITY_MULTIPLIER * distancePercentage;
60
60
  } else if (event.clientY < offsetDragStartPosition) {
61
61
  // User is dragging upwards.
62
62
  const moveableDistance = Math.max(offsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX, 0);
63
63
  const dragDistance = Math.max(offsetDragStartPosition - offsetDragPosition - SCROLL_INACTIVE_DISTANCE_PX, 0);
64
- const distancePercentage = dragDistance / moveableDistance;
64
+ const distancePercentage = moveableDistance === 0 || dragDistance === 0 ? 0 : dragDistance / moveableDistance;
65
65
  velocityY.current = -VELOCITY_MULTIPLIER * distancePercentage;
66
66
  } else {
67
67
  velocityY.current = 0;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-draggable/use-scroll-when-dragging.js"],"names":["getScrollContainer","useCallback","useEffect","useRef","SCROLL_INACTIVE_DISTANCE_PX","SCROLL_INTERVAL_MS","PIXELS_PER_SECOND_PER_PERCENTAGE","VELOCITY_MULTIPLIER","useScrollWhenDragging","dragStartY","velocityY","scrollParentY","scrollEditorInterval","current","clearInterval","startScrolling","event","clientY","target","setInterval","newTop","scrollTop","scroll","top","scrollOnDragOver","scrollParentHeight","offsetHeight","offsetDragStartPosition","offsetTop","offsetDragPosition","moveableDistance","Math","max","dragDistance","distancePercentage","stopScrolling"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getScrollContainer } from '@wordpress/dom';\nimport { useCallback, useEffect, useRef } from '@wordpress/element';\n\nconst SCROLL_INACTIVE_DISTANCE_PX = 50;\nconst SCROLL_INTERVAL_MS = 25;\nconst PIXELS_PER_SECOND_PER_PERCENTAGE = 1000;\nconst VELOCITY_MULTIPLIER =\n\tPIXELS_PER_SECOND_PER_PERCENTAGE * ( SCROLL_INTERVAL_MS / 1000 );\n\n/**\n * React hook that scrolls the scroll container when a block is being dragged.\n *\n * @return {Function[]} `startScrolling`, `scrollOnDragOver`, `stopScrolling`\n * functions to be called in `onDragStart`, `onDragOver`\n * and `onDragEnd` events respectively.\n */\nexport default function useScrollWhenDragging() {\n\tconst dragStartY = useRef( null );\n\tconst velocityY = useRef( null );\n\tconst scrollParentY = useRef( null );\n\tconst scrollEditorInterval = useRef( null );\n\n\t// Clear interval when unmounting.\n\tuseEffect(\n\t\t() => () => {\n\t\t\tif ( scrollEditorInterval.current ) {\n\t\t\t\tclearInterval( scrollEditorInterval.current );\n\t\t\t\tscrollEditorInterval.current = null;\n\t\t\t}\n\t\t},\n\t\t[]\n\t);\n\n\tconst startScrolling = useCallback( ( event ) => {\n\t\tdragStartY.current = event.clientY;\n\n\t\t// Find nearest parent(s) to scroll.\n\t\tscrollParentY.current = getScrollContainer( event.target );\n\n\t\tscrollEditorInterval.current = setInterval( () => {\n\t\t\tif ( scrollParentY.current && velocityY.current ) {\n\t\t\t\tconst newTop =\n\t\t\t\t\tscrollParentY.current.scrollTop + velocityY.current;\n\n\t\t\t\t// Setting `behavior: 'smooth'` as a scroll property seems to hurt performance.\n\t\t\t\t// Better to use a small scroll interval.\n\t\t\t\tscrollParentY.current.scroll( {\n\t\t\t\t\ttop: newTop,\n\t\t\t\t} );\n\t\t\t}\n\t\t}, SCROLL_INTERVAL_MS );\n\t}, [] );\n\n\tconst scrollOnDragOver = useCallback( ( event ) => {\n\t\tif ( ! scrollParentY.current ) {\n\t\t\treturn;\n\t\t}\n\t\tconst scrollParentHeight = scrollParentY.current.offsetHeight;\n\t\tconst offsetDragStartPosition =\n\t\t\tdragStartY.current - scrollParentY.current.offsetTop;\n\t\tconst offsetDragPosition =\n\t\t\tevent.clientY - scrollParentY.current.offsetTop;\n\n\t\tif ( event.clientY > offsetDragStartPosition ) {\n\t\t\t// User is dragging downwards.\n\t\t\tconst moveableDistance = Math.max(\n\t\t\t\tscrollParentHeight -\n\t\t\t\t\toffsetDragStartPosition -\n\t\t\t\t\tSCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst dragDistance = Math.max(\n\t\t\t\toffsetDragPosition -\n\t\t\t\t\toffsetDragStartPosition -\n\t\t\t\t\tSCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst distancePercentage = dragDistance / moveableDistance;\n\t\t\tvelocityY.current = VELOCITY_MULTIPLIER * distancePercentage;\n\t\t} else if ( event.clientY < offsetDragStartPosition ) {\n\t\t\t// User is dragging upwards.\n\t\t\tconst moveableDistance = Math.max(\n\t\t\t\toffsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst dragDistance = Math.max(\n\t\t\t\toffsetDragStartPosition -\n\t\t\t\t\toffsetDragPosition -\n\t\t\t\t\tSCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst distancePercentage = dragDistance / moveableDistance;\n\t\t\tvelocityY.current = -VELOCITY_MULTIPLIER * distancePercentage;\n\t\t} else {\n\t\t\tvelocityY.current = 0;\n\t\t}\n\t}, [] );\n\n\tconst stopScrolling = () => {\n\t\tdragStartY.current = null;\n\t\tscrollParentY.current = null;\n\n\t\tif ( scrollEditorInterval.current ) {\n\t\t\tclearInterval( scrollEditorInterval.current );\n\t\t\tscrollEditorInterval.current = null;\n\t\t}\n\t};\n\n\treturn [ startScrolling, scrollOnDragOver, stopScrolling ];\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-draggable/use-scroll-when-dragging.js"],"names":["getScrollContainer","useCallback","useEffect","useRef","SCROLL_INACTIVE_DISTANCE_PX","SCROLL_INTERVAL_MS","PIXELS_PER_SECOND_PER_PERCENTAGE","VELOCITY_MULTIPLIER","useScrollWhenDragging","dragStartY","velocityY","scrollParentY","scrollEditorInterval","current","clearInterval","startScrolling","event","clientY","target","setInterval","newTop","scrollTop","scroll","top","scrollOnDragOver","scrollParentHeight","offsetHeight","offsetDragStartPosition","offsetTop","offsetDragPosition","moveableDistance","Math","max","dragDistance","distancePercentage","stopScrolling"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getScrollContainer } from '@wordpress/dom';\nimport { useCallback, useEffect, useRef } from '@wordpress/element';\n\nconst SCROLL_INACTIVE_DISTANCE_PX = 50;\nconst SCROLL_INTERVAL_MS = 25;\nconst PIXELS_PER_SECOND_PER_PERCENTAGE = 1000;\nconst VELOCITY_MULTIPLIER =\n\tPIXELS_PER_SECOND_PER_PERCENTAGE * ( SCROLL_INTERVAL_MS / 1000 );\n\n/**\n * React hook that scrolls the scroll container when a block is being dragged.\n *\n * @return {Function[]} `startScrolling`, `scrollOnDragOver`, `stopScrolling`\n * functions to be called in `onDragStart`, `onDragOver`\n * and `onDragEnd` events respectively.\n */\nexport default function useScrollWhenDragging() {\n\tconst dragStartY = useRef( null );\n\tconst velocityY = useRef( null );\n\tconst scrollParentY = useRef( null );\n\tconst scrollEditorInterval = useRef( null );\n\n\t// Clear interval when unmounting.\n\tuseEffect(\n\t\t() => () => {\n\t\t\tif ( scrollEditorInterval.current ) {\n\t\t\t\tclearInterval( scrollEditorInterval.current );\n\t\t\t\tscrollEditorInterval.current = null;\n\t\t\t}\n\t\t},\n\t\t[]\n\t);\n\n\tconst startScrolling = useCallback( ( event ) => {\n\t\tdragStartY.current = event.clientY;\n\n\t\t// Find nearest parent(s) to scroll.\n\t\tscrollParentY.current = getScrollContainer( event.target );\n\n\t\tscrollEditorInterval.current = setInterval( () => {\n\t\t\tif ( scrollParentY.current && velocityY.current ) {\n\t\t\t\tconst newTop =\n\t\t\t\t\tscrollParentY.current.scrollTop + velocityY.current;\n\n\t\t\t\t// Setting `behavior: 'smooth'` as a scroll property seems to hurt performance.\n\t\t\t\t// Better to use a small scroll interval.\n\t\t\t\tscrollParentY.current.scroll( {\n\t\t\t\t\ttop: newTop,\n\t\t\t\t} );\n\t\t\t}\n\t\t}, SCROLL_INTERVAL_MS );\n\t}, [] );\n\n\tconst scrollOnDragOver = useCallback( ( event ) => {\n\t\tif ( ! scrollParentY.current ) {\n\t\t\treturn;\n\t\t}\n\t\tconst scrollParentHeight = scrollParentY.current.offsetHeight;\n\t\tconst offsetDragStartPosition =\n\t\t\tdragStartY.current - scrollParentY.current.offsetTop;\n\t\tconst offsetDragPosition =\n\t\t\tevent.clientY - scrollParentY.current.offsetTop;\n\n\t\tif ( event.clientY > offsetDragStartPosition ) {\n\t\t\t// User is dragging downwards.\n\t\t\tconst moveableDistance = Math.max(\n\t\t\t\tscrollParentHeight -\n\t\t\t\t\toffsetDragStartPosition -\n\t\t\t\t\tSCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst dragDistance = Math.max(\n\t\t\t\toffsetDragPosition -\n\t\t\t\t\toffsetDragStartPosition -\n\t\t\t\t\tSCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst distancePercentage =\n\t\t\t\tmoveableDistance === 0 || dragDistance === 0\n\t\t\t\t\t? 0\n\t\t\t\t\t: dragDistance / moveableDistance;\n\t\t\tvelocityY.current = VELOCITY_MULTIPLIER * distancePercentage;\n\t\t} else if ( event.clientY < offsetDragStartPosition ) {\n\t\t\t// User is dragging upwards.\n\t\t\tconst moveableDistance = Math.max(\n\t\t\t\toffsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst dragDistance = Math.max(\n\t\t\t\toffsetDragStartPosition -\n\t\t\t\t\toffsetDragPosition -\n\t\t\t\t\tSCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst distancePercentage =\n\t\t\t\tmoveableDistance === 0 || dragDistance === 0\n\t\t\t\t\t? 0\n\t\t\t\t\t: dragDistance / moveableDistance;\n\t\t\tvelocityY.current = -VELOCITY_MULTIPLIER * distancePercentage;\n\t\t} else {\n\t\t\tvelocityY.current = 0;\n\t\t}\n\t}, [] );\n\n\tconst stopScrolling = () => {\n\t\tdragStartY.current = null;\n\t\tscrollParentY.current = null;\n\n\t\tif ( scrollEditorInterval.current ) {\n\t\t\tclearInterval( scrollEditorInterval.current );\n\t\t\tscrollEditorInterval.current = null;\n\t\t}\n\t};\n\n\treturn [ startScrolling, scrollOnDragOver, stopScrolling ];\n}\n"]}
@@ -0,0 +1,34 @@
1
+ import { createElement } from "@wordpress/element";
2
+
3
+ /**
4
+ * WordPress dependencies
5
+ */
6
+ import { privateApis as componentsPrivateApis } from '@wordpress/components';
7
+ /**
8
+ * Internal dependencies
9
+ */
10
+
11
+ import { unlock } from '../../lock-unlock';
12
+ import useDisplayBlockControls from '../use-display-block-controls';
13
+ const {
14
+ createPrivateSlotFill
15
+ } = unlock(componentsPrivateApis);
16
+ const {
17
+ Fill,
18
+ Slot
19
+ } = createPrivateSlotFill('BlockInformation');
20
+
21
+ const BlockInfo = props => {
22
+ const isDisplayed = useDisplayBlockControls();
23
+
24
+ if (!isDisplayed) {
25
+ return null;
26
+ }
27
+
28
+ return createElement(Fill, props);
29
+ };
30
+
31
+ BlockInfo.Slot = props => createElement(Slot, props);
32
+
33
+ export default BlockInfo;
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-info-slot-fill/index.js"],"names":["privateApis","componentsPrivateApis","unlock","useDisplayBlockControls","createPrivateSlotFill","Fill","Slot","BlockInfo","props","isDisplayed"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,qBAAxB,QAAqD,uBAArD;AAEA;AACA;AACA;;AACA,SAASC,MAAT,QAAuB,mBAAvB;AACA,OAAOC,uBAAP,MAAoC,+BAApC;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAA4BF,MAAM,CAAED,qBAAF,CAAxC;AACA,MAAM;AAAEI,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IAAiBF,qBAAqB,CAAE,kBAAF,CAA5C;;AAEA,MAAMG,SAAS,GAAKC,KAAF,IAAa;AAC9B,QAAMC,WAAW,GAAGN,uBAAuB,EAA3C;;AACA,MAAK,CAAEM,WAAP,EAAqB;AACpB,WAAO,IAAP;AACA;;AACD,SAAO,cAAC,IAAD,EAAWD,KAAX,CAAP;AACA,CAND;;AAOAD,SAAS,CAACD,IAAV,GAAmBE,KAAF,IAAa,cAAC,IAAD,EAAWA,KAAX,CAA9B;;AAEA,eAAeD,SAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport useDisplayBlockControls from '../use-display-block-controls';\n\nconst { createPrivateSlotFill } = unlock( componentsPrivateApis );\nconst { Fill, Slot } = createPrivateSlotFill( 'BlockInformation' );\n\nconst BlockInfo = ( props ) => {\n\tconst isDisplayed = useDisplayBlockControls();\n\tif ( ! isDisplayed ) {\n\t\treturn null;\n\t}\n\treturn <Fill { ...props } />;\n};\nBlockInfo.Slot = ( props ) => <Slot { ...props } />;\n\nexport default BlockInfo;\n"]}
@@ -28,6 +28,7 @@ import useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-c
28
28
  import AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';
29
29
  import PositionControls from '../inspector-controls-tabs/position-controls-panel';
30
30
  import useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';
31
+ import BlockInfo from '../block-info-slot-fill';
31
32
 
32
33
  function useContentBlocks(blockTypes, block) {
33
34
  const contentBlocksObjectAux = useMemo(() => {
@@ -115,7 +116,7 @@ function BlockInspectorLockedBlocks(_ref4) {
115
116
  className: blockInformation.isSynced && 'is-synced'
116
117
  })), createElement(BlockVariationTransforms, {
117
118
  blockClientId: topLevelLockedBlock
118
- }), createElement(VStack, {
119
+ }), createElement(BlockInfo.Slot, null), createElement(VStack, {
119
120
  spacing: 1,
120
121
  padding: 4,
121
122
  className: "block-editor-block-inspector__block-buttons-container"
@@ -283,7 +284,7 @@ const BlockInspectorSingleBlock = _ref8 => {
283
284
  className: blockInformation.isSynced && 'is-synced'
284
285
  })), createElement(BlockVariationTransforms, {
285
286
  blockClientId: clientId
286
- }), showTabs && createElement(InspectorControlsTabs, {
287
+ }), createElement(BlockInfo.Slot, null), showTabs && createElement(InspectorControlsTabs, {
287
288
  hasBlockStyles: hasBlockStyles,
288
289
  clientId: clientId,
289
290
  blockName: blockName,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"names":["__","getBlockType","getUnregisteredTypeHandlerName","hasBlockSupport","store","blocksStore","FlexItem","PanelBody","__experimentalHStack","HStack","__experimentalVStack","VStack","Button","__unstableMotion","motion","useSelect","useDispatch","useMemo","useCallback","SkipToSelectedBlock","BlockCard","MultiSelectionInspector","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockIcon","BlockStyles","DefaultStylePicker","default","InspectorControls","InspectorControlsTabs","useInspectorControlsTabs","AdvancedControls","PositionControls","useBlockInspectorAnimationSettings","useContentBlocks","blockTypes","block","contentBlocksObjectAux","reduce","result","blockType","name","Object","entries","attributes","some","__experimentalRole","isContentBlock","blockName","getContentBlocks","blocks","push","innerBlocks","BlockNavigationButton","selectedBlock","selectBlock","find","isSelected","clientId","icon","title","BlockInspectorLockedBlocks","topLevelLockedBlock","select","getBlockTypes","getBlock","getSelectedBlock","blockInformation","contentBlocks","isSynced","map","contentBlock","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","undefined","availableTabs","showTabs","length","blockInspectorAnimationSettings","isSelectedBlockUnregistered","children","BlockInspectorSingleBlockWrapper","animate","wrapper","AnimatedContainer","animationOrigin","enterDirection","x","opacity","transition","ease","duration","BlockInspectorSingleBlock","hasBlockStyles","getBlockStyles","blockStyles"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tFlexItem,\n\tPanelBody,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockStyles from '../block-styles';\nimport DefaultStylePicker from '../default-style-picker';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\n\nfunction useContentBlocks( blockTypes, block ) {\n\tconst contentBlocksObjectAux = useMemo( () => {\n\t\treturn blockTypes.reduce( ( result, blockType ) => {\n\t\t\tif (\n\t\t\t\tblockType.name !== 'core/list-item' &&\n\t\t\t\tObject.entries( blockType.attributes ).some(\n\t\t\t\t\t( [ , { __experimentalRole } ] ) =>\n\t\t\t\t\t\t__experimentalRole === 'content'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tresult[ blockType.name ] = true;\n\t\t\t}\n\t\t\treturn result;\n\t\t}, {} );\n\t}, [ blockTypes ] );\n\tconst isContentBlock = useCallback(\n\t\t( blockName ) => {\n\t\t\treturn !! contentBlocksObjectAux[ blockName ];\n\t\t},\n\t\t[ contentBlocksObjectAux ]\n\t);\n\treturn useMemo( () => {\n\t\treturn getContentBlocks( [ block ], isContentBlock );\n\t}, [ block, isContentBlock ] );\n}\n\nfunction getContentBlocks( blocks, isContentBlock ) {\n\tconst result = [];\n\tfor ( const block of blocks ) {\n\t\tif ( isContentBlock( block.name ) ) {\n\t\t\tresult.push( block );\n\t\t}\n\t\tresult.push( ...getContentBlocks( block.innerBlocks, isContentBlock ) );\n\t}\n\treturn result;\n}\n\nfunction BlockNavigationButton( { blockTypes, block, selectedBlock } ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst blockType = blockTypes.find( ( { name } ) => name === block.name );\n\tconst isSelected =\n\t\tselectedBlock && selectedBlock.clientId === block.clientId;\n\treturn (\n\t\t<Button\n\t\t\tisPressed={ isSelected }\n\t\t\tonClick={ () => selectBlock( block.clientId ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<BlockIcon icon={ blockType.icon } />\n\t\t\t\t<FlexItem>{ blockType.title }</FlexItem>\n\t\t\t</HStack>\n\t\t</Button>\n\t);\n}\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst { blockTypes, block, selectedBlock } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tblockTypes: select( blocksStore ).getBlockTypes(),\n\t\t\t\tblock: select( blockEditorStore ).getBlock(\n\t\t\t\t\ttopLevelLockedBlock\n\t\t\t\t),\n\t\t\t\tselectedBlock: select( blockEditorStore ).getSelectedBlock(),\n\t\t\t};\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\tconst contentBlocks = useContentBlocks( blockTypes, block );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<VStack\n\t\t\t\tspacing={ 1 }\n\t\t\t\tpadding={ 4 }\n\t\t\t\tclassName=\"block-editor-block-inspector__block-buttons-container\"\n\t\t\t>\n\t\t\t\t<h2 className=\"block-editor-block-card__title\">\n\t\t\t\t\t{ __( 'Content' ) }\n\t\t\t\t</h2>\n\t\t\t\t{ contentBlocks.map( ( contentBlock ) => (\n\t\t\t\t\t<BlockNavigationButton\n\t\t\t\t\t\tselectedBlock={ selectedBlock }\n\t\t\t\t\t\tkey={ contentBlock.clientId }\n\t\t\t\t\t\tblock={ contentBlock }\n\t\t\t\t\t\tblockTypes={ blockTypes }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock:\n\t\t\t\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(\n\t\tblockType,\n\t\tselectedBlockClientId\n\t);\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n};\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t<DefaultStylePicker\n\t\t\t\t\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t<PositionControls />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"names":["__","getBlockType","getUnregisteredTypeHandlerName","hasBlockSupport","store","blocksStore","FlexItem","PanelBody","__experimentalHStack","HStack","__experimentalVStack","VStack","Button","__unstableMotion","motion","useSelect","useDispatch","useMemo","useCallback","SkipToSelectedBlock","BlockCard","MultiSelectionInspector","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockIcon","BlockStyles","DefaultStylePicker","default","InspectorControls","InspectorControlsTabs","useInspectorControlsTabs","AdvancedControls","PositionControls","useBlockInspectorAnimationSettings","BlockInfo","useContentBlocks","blockTypes","block","contentBlocksObjectAux","reduce","result","blockType","name","Object","entries","attributes","some","__experimentalRole","isContentBlock","blockName","getContentBlocks","blocks","push","innerBlocks","BlockNavigationButton","selectedBlock","selectBlock","find","isSelected","clientId","icon","title","BlockInspectorLockedBlocks","topLevelLockedBlock","select","getBlockTypes","getBlock","getSelectedBlock","blockInformation","contentBlocks","isSynced","map","contentBlock","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","undefined","availableTabs","showTabs","length","blockInspectorAnimationSettings","isSelectedBlockUnregistered","children","BlockInspectorSingleBlockWrapper","animate","wrapper","AnimatedContainer","animationOrigin","enterDirection","x","opacity","transition","ease","duration","BlockInspectorSingleBlock","hasBlockStyles","getBlockStyles","blockStyles"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tFlexItem,\n\tPanelBody,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockStyles from '../block-styles';\nimport DefaultStylePicker from '../default-style-picker';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockInfo from '../block-info-slot-fill';\n\nfunction useContentBlocks( blockTypes, block ) {\n\tconst contentBlocksObjectAux = useMemo( () => {\n\t\treturn blockTypes.reduce( ( result, blockType ) => {\n\t\t\tif (\n\t\t\t\tblockType.name !== 'core/list-item' &&\n\t\t\t\tObject.entries( blockType.attributes ).some(\n\t\t\t\t\t( [ , { __experimentalRole } ] ) =>\n\t\t\t\t\t\t__experimentalRole === 'content'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tresult[ blockType.name ] = true;\n\t\t\t}\n\t\t\treturn result;\n\t\t}, {} );\n\t}, [ blockTypes ] );\n\tconst isContentBlock = useCallback(\n\t\t( blockName ) => {\n\t\t\treturn !! contentBlocksObjectAux[ blockName ];\n\t\t},\n\t\t[ contentBlocksObjectAux ]\n\t);\n\treturn useMemo( () => {\n\t\treturn getContentBlocks( [ block ], isContentBlock );\n\t}, [ block, isContentBlock ] );\n}\n\nfunction getContentBlocks( blocks, isContentBlock ) {\n\tconst result = [];\n\tfor ( const block of blocks ) {\n\t\tif ( isContentBlock( block.name ) ) {\n\t\t\tresult.push( block );\n\t\t}\n\t\tresult.push( ...getContentBlocks( block.innerBlocks, isContentBlock ) );\n\t}\n\treturn result;\n}\n\nfunction BlockNavigationButton( { blockTypes, block, selectedBlock } ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst blockType = blockTypes.find( ( { name } ) => name === block.name );\n\tconst isSelected =\n\t\tselectedBlock && selectedBlock.clientId === block.clientId;\n\treturn (\n\t\t<Button\n\t\t\tisPressed={ isSelected }\n\t\t\tonClick={ () => selectBlock( block.clientId ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<BlockIcon icon={ blockType.icon } />\n\t\t\t\t<FlexItem>{ blockType.title }</FlexItem>\n\t\t\t</HStack>\n\t\t</Button>\n\t);\n}\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst { blockTypes, block, selectedBlock } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tblockTypes: select( blocksStore ).getBlockTypes(),\n\t\t\t\tblock: select( blockEditorStore ).getBlock(\n\t\t\t\t\ttopLevelLockedBlock\n\t\t\t\t),\n\t\t\t\tselectedBlock: select( blockEditorStore ).getSelectedBlock(),\n\t\t\t};\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\tconst contentBlocks = useContentBlocks( blockTypes, block );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t<VStack\n\t\t\t\tspacing={ 1 }\n\t\t\t\tpadding={ 4 }\n\t\t\t\tclassName=\"block-editor-block-inspector__block-buttons-container\"\n\t\t\t>\n\t\t\t\t<h2 className=\"block-editor-block-card__title\">\n\t\t\t\t\t{ __( 'Content' ) }\n\t\t\t\t</h2>\n\t\t\t\t{ contentBlocks.map( ( contentBlock ) => (\n\t\t\t\t\t<BlockNavigationButton\n\t\t\t\t\t\tselectedBlock={ selectedBlock }\n\t\t\t\t\t\tkey={ contentBlock.clientId }\n\t\t\t\t\t\tblock={ contentBlock }\n\t\t\t\t\t\tblockTypes={ blockTypes }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock:\n\t\t\t\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(\n\t\tblockType,\n\t\tselectedBlockClientId\n\t);\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n};\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t<DefaultStylePicker\n\t\t\t\t\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t<PositionControls />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"]}
@@ -10,7 +10,7 @@ import { TouchableWithoutFeedback } from 'react-native';
10
10
 
11
11
  import { __, sprintf } from '@wordpress/i18n';
12
12
  import { useSelect, useDispatch } from '@wordpress/data';
13
- import { createBlock } from '@wordpress/blocks';
13
+ import { createBlock, getBlockType } from '@wordpress/blocks';
14
14
  /**
15
15
  * Internal dependencies
16
16
  */
@@ -19,27 +19,35 @@ import Warning from '../warning';
19
19
  import { store as blockEditorStore } from '../../store';
20
20
  export default function BlockInvalidWarning(_ref) {
21
21
  let {
22
- blockTitle,
23
- icon,
24
22
  clientId
25
23
  } = _ref;
26
- const accessibilityLabel = sprintf(
27
- /* translators: accessibility text for blocks with invalid content. %d: localized block title */
28
- __('%s block. This block has invalid content'), blockTitle);
29
24
 
30
25
  const selector = select => {
31
26
  const {
32
27
  getBlock
33
28
  } = select(blockEditorStore);
34
29
  const block = getBlock(clientId);
30
+ const {
31
+ name
32
+ } = block || {};
33
+ const blockType = getBlockType(name || 'core/missing');
34
+ const title = blockType === null || blockType === void 0 ? void 0 : blockType.title;
35
+ const blockIcon = blockType === null || blockType === void 0 ? void 0 : blockType.icon;
35
36
  return {
36
- block
37
+ block,
38
+ blockTitle: title,
39
+ icon: blockIcon
37
40
  };
38
41
  };
39
42
 
40
43
  const {
41
- block
44
+ block,
45
+ blockTitle,
46
+ icon
42
47
  } = useSelect(selector, [clientId]);
48
+ const accessibilityLabel = sprintf(
49
+ /* translators: accessibility text for blocks with invalid content. %d: localized block title */
50
+ __('%s block. This block has invalid content'), blockTitle);
43
51
  const {
44
52
  replaceBlock
45
53
  } = useDispatch(blockEditorStore);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-invalid-warning.native.js"],"names":["TouchableWithoutFeedback","__","sprintf","useSelect","useDispatch","createBlock","Warning","store","blockEditorStore","BlockInvalidWarning","blockTitle","icon","clientId","accessibilityLabel","selector","select","getBlock","block","replaceBlock","recoverBlock","name","attributes","innerBlocks","attemptBlockRecovery"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,wBAAT,QAAyC,cAAzC;AAEA;AACA;AACA;;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,WAAT,QAA4B,mBAA5B;AAEA;AACA;AACA;;AACA,OAAOC,OAAP,MAAoB,YAApB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,eAAe,SAASC,mBAAT,OAA+D;AAAA,MAAjC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,IAAd;AAAoBC,IAAAA;AAApB,GAAiC;AAC7E,QAAMC,kBAAkB,GAAGX,OAAO;AACjC;AACAD,EAAAA,EAAE,CAAE,0CAAF,CAF+B,EAGjCS,UAHiC,CAAlC;;AAMA,QAAMI,QAAQ,GAAKC,MAAF,IAAc;AAC9B,UAAM;AAAEC,MAAAA;AAAF,QAAeD,MAAM,CAAEP,gBAAF,CAA3B;AACA,UAAMS,KAAK,GAAGD,QAAQ,CAAEJ,QAAF,CAAtB;AACA,WAAO;AACNK,MAAAA;AADM,KAAP;AAGA,GAND;;AAQA,QAAM;AAAEA,IAAAA;AAAF,MAAYd,SAAS,CAAEW,QAAF,EAAY,CAAEF,QAAF,CAAZ,CAA3B;AAEA,QAAM;AAAEM,IAAAA;AAAF,MAAmBd,WAAW,CAAEI,gBAAF,CAApC;;AAEA,QAAMW,YAAY,GAAG;AAAA,QAAE;AAAEC,MAAAA,IAAF;AAAQC,MAAAA,UAAR;AAAoBC,MAAAA;AAApB,KAAF;AAAA,WACpBjB,WAAW,CAAEe,IAAF,EAAQC,UAAR,EAAoBC,WAApB,CADS;AAAA,GAArB;;AAGA,QAAMC,oBAAoB,GAAG,MAAM;AAClCL,IAAAA,YAAY,CAAED,KAAK,CAACL,QAAR,EAAkBO,YAAY,CAAEF,KAAF,CAA9B,CAAZ;AACA,GAFD;;AAIA,SACC,cAAC,wBAAD;AACC,IAAA,OAAO,EAAGM,oBADX;AAEC,IAAA,UAAU,EAAG,IAFd;AAGC,IAAA,iBAAiB,EAAG;AAHrB,KAKC,cAAC,OAAD;AACC,IAAA,KAAK,EAAGb,UADT,CAEC;AAFD;AAGC,IAAA,OAAO,EAAGT,EAAE,CACX,4DADW,CAHb;AAMC,IAAA,IAAI,EAAGU,IANR;AAOC,IAAA,kBAAkB,EAAGE;AAPtB,IALD,CADD;AAiBA","sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport Warning from '../warning';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockInvalidWarning( { blockTitle, icon, clientId } ) {\n\tconst accessibilityLabel = sprintf(\n\t\t/* translators: accessibility text for blocks with invalid content. %d: localized block title */\n\t\t__( '%s block. This block has invalid content' ),\n\t\tblockTitle\n\t);\n\n\tconst selector = ( select ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\treturn {\n\t\t\tblock,\n\t\t};\n\t};\n\n\tconst { block } = useSelect( selector, [ clientId ] );\n\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tconst recoverBlock = ( { name, attributes, innerBlocks } ) =>\n\t\tcreateBlock( name, attributes, innerBlocks );\n\n\tconst attemptBlockRecovery = () => {\n\t\treplaceBlock( block.clientId, recoverBlock( block ) );\n\t};\n\n\treturn (\n\t\t<TouchableWithoutFeedback\n\t\t\tonPress={ attemptBlockRecovery }\n\t\t\taccessible={ true }\n\t\t\taccessibilityRole={ 'button' }\n\t\t>\n\t\t\t<Warning\n\t\t\t\ttitle={ blockTitle }\n\t\t\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\t\t\tmessage={ __(\n\t\t\t\t\t'Problem displaying block. \\nTap to attempt block recovery.'\n\t\t\t\t) }\n\t\t\t\ticon={ icon }\n\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t/>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-invalid-warning.native.js"],"names":["TouchableWithoutFeedback","__","sprintf","useSelect","useDispatch","createBlock","getBlockType","Warning","store","blockEditorStore","BlockInvalidWarning","clientId","selector","select","getBlock","block","name","blockType","title","blockIcon","icon","blockTitle","accessibilityLabel","replaceBlock","recoverBlock","attributes","innerBlocks","attemptBlockRecovery"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,wBAAT,QAAyC,cAAzC;AAEA;AACA;AACA;;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,WAAT,EAAsBC,YAAtB,QAA0C,mBAA1C;AAEA;AACA;AACA;;AACA,OAAOC,OAAP,MAAoB,YAApB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,eAAe,SAASC,mBAAT,OAA6C;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;;AAC3D,QAAMC,QAAQ,GAAKC,MAAF,IAAc;AAC9B,UAAM;AAAEC,MAAAA;AAAF,QAAeD,MAAM,CAAEJ,gBAAF,CAA3B;AACA,UAAMM,KAAK,GAAGD,QAAQ,CAAEH,QAAF,CAAtB;AACA,UAAM;AAAEK,MAAAA;AAAF,QAAWD,KAAK,IAAI,EAA1B;AAEA,UAAME,SAAS,GAAGX,YAAY,CAAEU,IAAI,IAAI,cAAV,CAA9B;AACA,UAAME,KAAK,GAAGD,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEC,KAAzB;AACA,UAAMC,SAAS,GAAGF,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEG,IAA7B;AAEA,WAAO;AACNL,MAAAA,KADM;AAENM,MAAAA,UAAU,EAAEH,KAFN;AAGNE,MAAAA,IAAI,EAAED;AAHA,KAAP;AAKA,GAdD;;AAgBA,QAAM;AAAEJ,IAAAA,KAAF;AAASM,IAAAA,UAAT;AAAqBD,IAAAA;AAArB,MAA8BjB,SAAS,CAAES,QAAF,EAAY,CAAED,QAAF,CAAZ,CAA7C;AAEA,QAAMW,kBAAkB,GAAGpB,OAAO;AACjC;AACAD,EAAAA,EAAE,CAAE,0CAAF,CAF+B,EAGjCoB,UAHiC,CAAlC;AAMA,QAAM;AAAEE,IAAAA;AAAF,MAAmBnB,WAAW,CAAEK,gBAAF,CAApC;;AAEA,QAAMe,YAAY,GAAG;AAAA,QAAE;AAAER,MAAAA,IAAF;AAAQS,MAAAA,UAAR;AAAoBC,MAAAA;AAApB,KAAF;AAAA,WACpBrB,WAAW,CAAEW,IAAF,EAAQS,UAAR,EAAoBC,WAApB,CADS;AAAA,GAArB;;AAGA,QAAMC,oBAAoB,GAAG,MAAM;AAClCJ,IAAAA,YAAY,CAAER,KAAK,CAACJ,QAAR,EAAkBa,YAAY,CAAET,KAAF,CAA9B,CAAZ;AACA,GAFD;;AAIA,SACC,cAAC,wBAAD;AACC,IAAA,OAAO,EAAGY,oBADX;AAEC,IAAA,UAAU,EAAG,IAFd;AAGC,IAAA,iBAAiB,EAAG;AAHrB,KAKC,cAAC,OAAD;AACC,IAAA,KAAK,EAAGN,UADT,CAEC;AAFD;AAGC,IAAA,OAAO,EAAGpB,EAAE,CACX,4DADW,CAHb;AAMC,IAAA,IAAI,EAAGmB,IANR;AAOC,IAAA,kBAAkB,EAAGE;AAPtB,IALD,CADD;AAiBA","sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock, getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport Warning from '../warning';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockInvalidWarning( { clientId } ) {\n\tconst selector = ( select ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst blockIcon = blockType?.icon;\n\n\t\treturn {\n\t\t\tblock,\n\t\t\tblockTitle: title,\n\t\t\ticon: blockIcon,\n\t\t};\n\t};\n\n\tconst { block, blockTitle, icon } = useSelect( selector, [ clientId ] );\n\n\tconst accessibilityLabel = sprintf(\n\t\t/* translators: accessibility text for blocks with invalid content. %d: localized block title */\n\t\t__( '%s block. This block has invalid content' ),\n\t\tblockTitle\n\t);\n\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tconst recoverBlock = ( { name, attributes, innerBlocks } ) =>\n\t\tcreateBlock( name, attributes, innerBlocks );\n\n\tconst attemptBlockRecovery = () => {\n\t\treplaceBlock( block.clientId, recoverBlock( block ) );\n\t};\n\n\treturn (\n\t\t<TouchableWithoutFeedback\n\t\t\tonPress={ attemptBlockRecovery }\n\t\t\taccessible={ true }\n\t\t\taccessibilityRole={ 'button' }\n\t\t>\n\t\t\t<Warning\n\t\t\t\ttitle={ blockTitle }\n\t\t\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\t\t\tmessage={ __(\n\t\t\t\t\t'Problem displaying block. \\nTap to attempt block recovery.'\n\t\t\t\t) }\n\t\t\t\ticon={ icon }\n\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t/>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\n"]}
@@ -9,23 +9,34 @@ import { View } from 'react-native';
9
9
  */
10
10
 
11
11
  import { useEffect, useCallback } from '@wordpress/element';
12
+ import { useSelect } from '@wordpress/data';
12
13
  /**
13
14
  * Internal dependencies
14
15
  */
15
16
 
16
17
  import { useBlockListContext } from './block-list-context';
18
+ import { store as blockEditorStore } from '../../store';
17
19
 
18
20
  function BlockListItemCell(_ref) {
19
21
  let {
20
22
  children,
21
- clientId,
22
- rootClientId,
23
+ item: clientId,
23
24
  onLayout
24
25
  } = _ref;
25
26
  const {
26
27
  blocksLayouts,
27
28
  updateBlocksLayouts
28
29
  } = useBlockListContext();
30
+ const {
31
+ rootClientId
32
+ } = useSelect(select => {
33
+ const {
34
+ getBlockRootClientId
35
+ } = select(blockEditorStore);
36
+ return {
37
+ rootClientId: getBlockRootClientId(clientId)
38
+ };
39
+ }, [clientId]);
29
40
  useEffect(() => {
30
41
  return () => {
31
42
  updateBlocksLayouts(blocksLayouts, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-item-cell.native.js"],"names":["View","useEffect","useCallback","useBlockListContext","BlockListItemCell","children","clientId","rootClientId","onLayout","blocksLayouts","updateBlocksLayouts","shouldRemove","onCellLayout","event","nativeEvent","layout"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,cAArB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,oBAAvC;AAEA;AACA;AACA;;AACA,SAASC,mBAAT,QAAoC,sBAApC;;AAEA,SAASC,iBAAT,OAA6E;AAAA,MAAjD;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,QAAZ;AAAsBC,IAAAA,YAAtB;AAAoCC,IAAAA;AAApC,GAAiD;AAC5E,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA;AAAjB,MAAyCP,mBAAmB,EAAlE;AAEAF,EAAAA,SAAS,CAAE,MAAM;AAChB,WAAO,MAAM;AACZS,MAAAA,mBAAmB,CAAED,aAAF,EAAiB;AACnCH,QAAAA,QADmC;AAEnCK,QAAAA,YAAY,EAAE;AAFqB,OAAjB,CAAnB;AAIA,KALD;AAMA,GAPQ,EAON,EAPM,CAAT;AASA,QAAMC,YAAY,GAAGV,WAAW,CAC7BW,KAAF,IAAa;AACZ,UAAM;AACLC,MAAAA,WAAW,EAAE;AAAEC,QAAAA;AAAF;AADR,QAEFF,KAFJ;AAGAH,IAAAA,mBAAmB,CAAED,aAAF,EAAiB;AACnCH,MAAAA,QADmC;AAEnCC,MAAAA,YAFmC;AAGnC,SAAGQ;AAHgC,KAAjB,CAAnB;;AAMA,QAAKP,QAAL,EAAgB;AACfA,MAAAA,QAAQ,CAAEK,KAAF,CAAR;AACA;AACD,GAd8B,EAe/B,CAAEP,QAAF,EAAYC,YAAZ,EAA0BG,mBAA1B,EAA+CF,QAA/C,CAf+B,CAAhC;AAkBA,SAAO,cAAC,IAAD;AAAM,IAAA,QAAQ,EAAGI;AAAjB,KAAkCP,QAAlC,CAAP;AACA;;AAED,eAAeD,iBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useBlockListContext } from './block-list-context';\n\nfunction BlockListItemCell( { children, clientId, rootClientId, onLayout } ) {\n\tconst { blocksLayouts, updateBlocksLayouts } = useBlockListContext();\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tupdateBlocksLayouts( blocksLayouts, {\n\t\t\t\tclientId,\n\t\t\t\tshouldRemove: true,\n\t\t\t} );\n\t\t};\n\t}, [] );\n\n\tconst onCellLayout = useCallback(\n\t\t( event ) => {\n\t\t\tconst {\n\t\t\t\tnativeEvent: { layout },\n\t\t\t} = event;\n\t\t\tupdateBlocksLayouts( blocksLayouts, {\n\t\t\t\tclientId,\n\t\t\t\trootClientId,\n\t\t\t\t...layout,\n\t\t\t} );\n\n\t\t\tif ( onLayout ) {\n\t\t\t\tonLayout( event );\n\t\t\t}\n\t\t},\n\t\t[ clientId, rootClientId, updateBlocksLayouts, onLayout ]\n\t);\n\n\treturn <View onLayout={ onCellLayout }>{ children }</View>;\n}\n\nexport default BlockListItemCell;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-item-cell.native.js"],"names":["View","useEffect","useCallback","useSelect","useBlockListContext","store","blockEditorStore","BlockListItemCell","children","item","clientId","onLayout","blocksLayouts","updateBlocksLayouts","rootClientId","select","getBlockRootClientId","shouldRemove","onCellLayout","event","nativeEvent","layout"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,cAArB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,oBAAvC;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,mBAAT,QAAoC,sBAApC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,SAASC,iBAAT,OAAqE;AAAA,MAAzC;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,IAAI,EAAEC,QAAlB;AAA4BC,IAAAA;AAA5B,GAAyC;AACpE,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA;AAAjB,MAAyCT,mBAAmB,EAAlE;AACA,QAAM;AAAEU,IAAAA;AAAF,MAAmBX,SAAS,CAC/BY,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAA2BD,MAAM,CAAET,gBAAF,CAAvC;AACA,WAAO;AAAEQ,MAAAA,YAAY,EAAEE,oBAAoB,CAAEN,QAAF;AAApC,KAAP;AACA,GAJgC,EAKjC,CAAEA,QAAF,CALiC,CAAlC;AAQAT,EAAAA,SAAS,CAAE,MAAM;AAChB,WAAO,MAAM;AACZY,MAAAA,mBAAmB,CAAED,aAAF,EAAiB;AACnCF,QAAAA,QADmC;AAEnCO,QAAAA,YAAY,EAAE;AAFqB,OAAjB,CAAnB;AAIA,KALD;AAMA,GAPQ,EAON,EAPM,CAAT;AASA,QAAMC,YAAY,GAAGhB,WAAW,CAC7BiB,KAAF,IAAa;AACZ,UAAM;AACLC,MAAAA,WAAW,EAAE;AAAEC,QAAAA;AAAF;AADR,QAEFF,KAFJ;AAGAN,IAAAA,mBAAmB,CAAED,aAAF,EAAiB;AACnCF,MAAAA,QADmC;AAEnCI,MAAAA,YAFmC;AAGnC,SAAGO;AAHgC,KAAjB,CAAnB;;AAMA,QAAKV,QAAL,EAAgB;AACfA,MAAAA,QAAQ,CAAEQ,KAAF,CAAR;AACA;AACD,GAd8B,EAe/B,CAAET,QAAF,EAAYI,YAAZ,EAA0BD,mBAA1B,EAA+CF,QAA/C,CAf+B,CAAhC;AAkBA,SAAO,cAAC,IAAD;AAAM,IAAA,QAAQ,EAAGO;AAAjB,KAAkCV,QAAlC,CAAP;AACA;;AAED,eAAeD,iBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useBlockListContext } from './block-list-context';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockListItemCell( { children, item: clientId, onLayout } ) {\n\tconst { blocksLayouts, updateBlocksLayouts } = useBlockListContext();\n\tconst { rootClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\t\t\treturn { rootClientId: getBlockRootClientId( clientId ) };\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tupdateBlocksLayouts( blocksLayouts, {\n\t\t\t\tclientId,\n\t\t\t\tshouldRemove: true,\n\t\t\t} );\n\t\t};\n\t}, [] );\n\n\tconst onCellLayout = useCallback(\n\t\t( event ) => {\n\t\t\tconst {\n\t\t\t\tnativeEvent: { layout },\n\t\t\t} = event;\n\t\t\tupdateBlocksLayouts( blocksLayouts, {\n\t\t\t\tclientId,\n\t\t\t\trootClientId,\n\t\t\t\t...layout,\n\t\t\t} );\n\n\t\t\tif ( onLayout ) {\n\t\t\t\tonLayout( event );\n\t\t\t}\n\t\t},\n\t\t[ clientId, rootClientId, updateBlocksLayouts, onLayout ]\n\t);\n\n\treturn <View onLayout={ onCellLayout }>{ children }</View>;\n}\n\nexport default BlockListItemCell;\n"]}