@wordpress/block-editor 11.2.0 → 11.3.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 (660) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +28 -4
  3. package/build/components/alignment-control/ui.js +1 -1
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/autocomplete/index.js +2 -7
  6. package/build/components/autocomplete/index.js.map +1 -1
  7. package/build/components/block-alignment-matrix-control/index.js +2 -2
  8. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  9. package/build/components/block-card/index.js +2 -4
  10. package/build/components/block-card/index.js.map +1 -1
  11. package/build/components/block-edit/index.js +8 -0
  12. package/build/components/block-edit/index.js.map +1 -1
  13. package/build/components/block-inspector/index.js +15 -14
  14. package/build/components/block-inspector/index.js.map +1 -1
  15. package/build/components/block-list/use-in-between-inserter.js +5 -0
  16. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  17. package/build/components/block-lock/modal.js +0 -1
  18. package/build/components/block-lock/modal.js.map +1 -1
  19. package/build/components/block-mover/mover-description.js +2 -2
  20. package/build/components/block-mover/mover-description.js.map +1 -1
  21. package/build/components/block-navigation/dropdown.js +3 -1
  22. package/build/components/block-navigation/dropdown.js.map +1 -1
  23. package/build/components/block-pattern-setup/index.js +1 -1
  24. package/build/components/block-pattern-setup/index.js.map +1 -1
  25. package/build/components/block-pattern-setup/use-patterns-setup.js +2 -2
  26. package/build/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  27. package/build/components/block-patterns-list/index.js +31 -3
  28. package/build/components/block-patterns-list/index.js.map +1 -1
  29. package/build/components/block-preview/auto.js +9 -11
  30. package/build/components/block-preview/auto.js.map +1 -1
  31. package/build/components/block-preview/index.js +32 -8
  32. package/build/components/block-preview/index.js.map +1 -1
  33. package/build/components/block-selection-clearer/index.js +1 -1
  34. package/build/components/block-selection-clearer/index.js.map +1 -1
  35. package/build/components/block-settings/container.native.js +7 -33
  36. package/build/components/block-settings/container.native.js.map +1 -1
  37. package/build/components/block-settings-menu/block-settings-dropdown.js +12 -6
  38. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  39. package/build/components/block-settings-menu-controls/index.js +2 -8
  40. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  41. package/build/components/block-switcher/utils.js +1 -1
  42. package/build/components/block-switcher/utils.js.map +1 -1
  43. package/build/components/block-tools/selected-block-popover.js +55 -47
  44. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  45. package/build/components/block-vertical-alignment-control/icons.js +15 -1
  46. package/build/components/block-vertical-alignment-control/icons.js.map +1 -1
  47. package/build/components/block-vertical-alignment-control/ui.js +9 -4
  48. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  49. package/build/components/color-style-selector/index.js +3 -1
  50. package/build/components/color-style-selector/index.js.map +1 -1
  51. package/build/components/date-format-picker/index.js +3 -4
  52. package/build/components/date-format-picker/index.js.map +1 -1
  53. package/build/components/font-family/index.js +1 -7
  54. package/build/components/font-family/index.js.map +1 -1
  55. package/build/components/font-sizes/fluid-utils.js +1 -1
  56. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  57. package/build/components/font-sizes/utils.js +1 -1
  58. package/build/components/font-sizes/utils.js.map +1 -1
  59. package/build/components/global-styles/context.js +22 -0
  60. package/build/components/global-styles/context.js.map +1 -0
  61. package/build/components/global-styles/hooks.js +142 -0
  62. package/build/components/global-styles/hooks.js.map +1 -0
  63. package/build/components/global-styles/index.js +42 -0
  64. package/build/components/global-styles/index.js.map +1 -0
  65. package/build/components/global-styles/typography-utils.js +92 -0
  66. package/build/components/global-styles/typography-utils.js.map +1 -0
  67. package/build/components/global-styles/use-global-styles-output.js +974 -0
  68. package/build/components/global-styles/use-global-styles-output.js.map +1 -0
  69. package/build/components/global-styles/utils.js +340 -0
  70. package/build/components/global-styles/utils.js.map +1 -0
  71. package/build/components/height-control/index.js +13 -1
  72. package/build/components/height-control/index.js.map +1 -1
  73. package/build/components/image-editor/constants.js +1 -1
  74. package/build/components/image-editor/constants.js.map +1 -1
  75. package/build/components/image-editor/context.js +1 -2
  76. package/build/components/image-editor/context.js.map +1 -1
  77. package/build/components/image-editor/cropper.js +3 -1
  78. package/build/components/image-editor/cropper.js.map +1 -1
  79. package/build/components/image-editor/index.js +13 -9
  80. package/build/components/image-editor/index.js.map +1 -1
  81. package/build/components/image-editor/use-transform-image.js +11 -35
  82. package/build/components/image-editor/use-transform-image.js.map +1 -1
  83. package/build/components/image-size-control/index.js +1 -7
  84. package/build/components/image-size-control/index.js.map +1 -1
  85. package/build/components/index.js +8 -24
  86. package/build/components/index.js.map +1 -1
  87. package/build/components/inner-blocks/index.js +22 -32
  88. package/build/components/inner-blocks/index.js.map +1 -1
  89. package/build/components/inner-blocks/index.native.js +8 -23
  90. package/build/components/inner-blocks/index.native.js.map +1 -1
  91. package/build/components/inner-blocks/use-block-context.js +53 -0
  92. package/build/components/inner-blocks/use-block-context.js.map +1 -0
  93. package/build/components/inserter/block-patterns-explorer/explorer.js +0 -1
  94. package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  95. package/build/components/inserter/block-patterns-tab.js +7 -1
  96. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  97. package/build/components/inserter/block-types-tab.js +2 -2
  98. package/build/components/inserter/block-types-tab.js.map +1 -1
  99. package/build/components/inserter/hooks/use-patterns-state.js +1 -7
  100. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  101. package/build/components/inserter/index.js +5 -4
  102. package/build/components/inserter/index.js.map +1 -1
  103. package/build/components/inserter/media-tab/hooks.js +142 -56
  104. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  105. package/build/components/inserter/media-tab/media-list.js +74 -21
  106. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  107. package/build/components/inserter/media-tab/media-panel.js +11 -13
  108. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  109. package/build/components/inserter/media-tab/media-tab.js +6 -3
  110. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  111. package/build/components/inserter/media-tab/utils.js +26 -15
  112. package/build/components/inserter/media-tab/utils.js.map +1 -1
  113. package/build/components/inserter/menu.js +1 -0
  114. package/build/components/inserter/menu.js.map +1 -1
  115. package/build/components/inserter/preview-panel.js +5 -3
  116. package/build/components/inserter/preview-panel.js.map +1 -1
  117. package/build/components/inserter/search-results.js +2 -7
  118. package/build/components/inserter/search-results.js.map +1 -1
  119. package/build/components/inserter-list-item/index.js +1 -9
  120. package/build/components/inserter-list-item/index.js.map +1 -1
  121. package/build/components/inspector-controls/fill.js +15 -2
  122. package/build/components/inspector-controls/fill.js.map +1 -1
  123. package/build/components/inspector-controls/fill.native.js +14 -1
  124. package/build/components/inspector-controls/fill.native.js.map +1 -1
  125. package/build/components/inspector-controls/groups.js +4 -0
  126. package/build/components/inspector-controls/groups.js.map +1 -1
  127. package/build/components/inspector-controls/index.js +2 -2
  128. package/build/components/inspector-controls/index.js.map +1 -1
  129. package/build/components/inspector-controls/slot.js +14 -1
  130. package/build/components/inspector-controls/slot.js.map +1 -1
  131. package/build/components/inspector-controls/slot.native.js +14 -1
  132. package/build/components/inspector-controls/slot.native.js.map +1 -1
  133. package/build/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
  134. package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
  135. package/build/components/inspector-controls-tabs/index.js +2 -2
  136. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  137. package/build/components/inspector-controls-tabs/position-controls-panel.js +1 -1
  138. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  139. package/build/components/inspector-controls-tabs/styles-tab.js +6 -4
  140. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  141. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +17 -12
  142. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  143. package/build/components/justify-content-control/ui.js +8 -1
  144. package/build/components/justify-content-control/ui.js.map +1 -1
  145. package/build/components/link-control/index.js +45 -17
  146. package/build/components/link-control/index.js.map +1 -1
  147. package/build/components/list-view/block.js +1 -1
  148. package/build/components/list-view/block.js.map +1 -1
  149. package/build/components/list-view/use-list-view-drop-zone.js +1 -1
  150. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  151. package/build/components/media-upload/index.native.js +4 -1
  152. package/build/components/media-upload/index.native.js.map +1 -1
  153. package/build/components/off-canvas-editor/appender.js +50 -3
  154. package/build/components/off-canvas-editor/appender.js.map +1 -1
  155. package/build/components/off-canvas-editor/block-select-button.js +10 -4
  156. package/build/components/off-canvas-editor/block-select-button.js.map +1 -1
  157. package/build/components/off-canvas-editor/block.js +6 -27
  158. package/build/components/off-canvas-editor/block.js.map +1 -1
  159. package/build/components/off-canvas-editor/branch.js +25 -10
  160. package/build/components/off-canvas-editor/branch.js.map +1 -1
  161. package/build/components/off-canvas-editor/index.js +11 -16
  162. package/build/components/off-canvas-editor/index.js.map +1 -1
  163. package/build/components/off-canvas-editor/link-ui.js +2 -2
  164. package/build/components/off-canvas-editor/link-ui.js.map +1 -1
  165. package/build/components/off-canvas-editor/use-list-view-drop-zone.js +1 -1
  166. package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -1
  167. package/build/components/provider/index.js +21 -9
  168. package/build/components/provider/index.js.map +1 -1
  169. package/build/components/provider/index.native.js +5 -6
  170. package/build/components/provider/index.native.js.map +1 -1
  171. package/build/components/rich-text/use-before-input-rules.js +11 -3
  172. package/build/components/rich-text/use-before-input-rules.js.map +1 -1
  173. package/build/components/rich-text/utils.js +1 -1
  174. package/build/components/rich-text/utils.js.map +1 -1
  175. package/build/components/spacing-sizes-control/utils.js +2 -8
  176. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  177. package/build/components/tool-selector/index.js +3 -1
  178. package/build/components/tool-selector/index.js.map +1 -1
  179. package/build/components/url-popover/image-url-input-ui.js +7 -8
  180. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  181. package/build/components/use-block-display-information/index.js +1 -1
  182. package/build/components/use-block-display-information/index.js.map +1 -1
  183. package/build/experiments.js +45 -0
  184. package/build/experiments.js.map +1 -0
  185. package/build/experiments.native.js +40 -0
  186. package/build/experiments.native.js.map +1 -0
  187. package/build/hooks/anchor.js +2 -1
  188. package/build/hooks/anchor.js.map +1 -1
  189. package/build/hooks/border.js +1 -1
  190. package/build/hooks/border.js.map +1 -1
  191. package/build/hooks/child-layout.js +5 -1
  192. package/build/hooks/child-layout.js.map +1 -1
  193. package/build/hooks/color-panel.js +1 -1
  194. package/build/hooks/color-panel.js.map +1 -1
  195. package/build/hooks/color.js +3 -3
  196. package/build/hooks/color.js.map +1 -1
  197. package/build/hooks/custom-class-name.js +2 -1
  198. package/build/hooks/custom-class-name.js.map +1 -1
  199. package/build/hooks/dimensions.js +7 -5
  200. package/build/hooks/dimensions.js.map +1 -1
  201. package/build/hooks/margin.js +1 -0
  202. package/build/hooks/margin.js.map +1 -1
  203. package/build/hooks/padding.js +1 -0
  204. package/build/hooks/padding.js.map +1 -1
  205. package/build/hooks/position.js +34 -15
  206. package/build/hooks/position.js.map +1 -1
  207. package/build/hooks/typography.js +1 -1
  208. package/build/hooks/typography.js.map +1 -1
  209. package/build/hooks/use-color-props.js +3 -3
  210. package/build/hooks/use-color-props.js.map +1 -1
  211. package/build/hooks/utils.js +69 -3
  212. package/build/hooks/utils.js.map +1 -1
  213. package/build/index.js +10 -1
  214. package/build/index.js.map +1 -1
  215. package/build/layouts/constrained.js +3 -0
  216. package/build/layouts/constrained.js.map +1 -1
  217. package/build/layouts/flex.js +59 -9
  218. package/build/layouts/flex.js.map +1 -1
  219. package/build/layouts/flow.js +0 -18
  220. package/build/layouts/flow.js.map +1 -1
  221. package/build/store/actions.js +3 -30
  222. package/build/store/actions.js.map +1 -1
  223. package/build/store/defaults.js +5 -2
  224. package/build/store/defaults.js.map +1 -1
  225. package/build/store/index.js +11 -2
  226. package/build/store/index.js.map +1 -1
  227. package/build/store/private-actions.js +78 -0
  228. package/build/store/private-actions.js.map +1 -0
  229. package/build/store/private-selectors.js +18 -0
  230. package/build/store/private-selectors.js.map +1 -0
  231. package/build/store/reducer.js +1 -1
  232. package/build/store/reducer.js.map +1 -1
  233. package/build/store/selectors.js +60 -34
  234. package/build/store/selectors.js.map +1 -1
  235. package/build/utils/block-variation-transforms.js +1 -1
  236. package/build/utils/block-variation-transforms.js.map +1 -1
  237. package/build/utils/parse-css-unit-to-px.js +1 -1
  238. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  239. package/build/utils/transform-styles/index.js +1 -7
  240. package/build/utils/transform-styles/index.js.map +1 -1
  241. package/build-module/components/alignment-control/ui.js +1 -1
  242. package/build-module/components/alignment-control/ui.js.map +1 -1
  243. package/build-module/components/autocomplete/index.js +2 -6
  244. package/build-module/components/autocomplete/index.js.map +1 -1
  245. package/build-module/components/block-alignment-matrix-control/index.js +2 -2
  246. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  247. package/build-module/components/block-card/index.js +2 -4
  248. package/build-module/components/block-card/index.js.map +1 -1
  249. package/build-module/components/block-edit/index.js +7 -0
  250. package/build-module/components/block-edit/index.js.map +1 -1
  251. package/build-module/components/block-inspector/index.js +15 -14
  252. package/build-module/components/block-inspector/index.js.map +1 -1
  253. package/build-module/components/block-list/use-in-between-inserter.js +5 -0
  254. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  255. package/build-module/components/block-lock/modal.js +0 -1
  256. package/build-module/components/block-lock/modal.js.map +1 -1
  257. package/build-module/components/block-mover/mover-description.js +2 -2
  258. package/build-module/components/block-mover/mover-description.js.map +1 -1
  259. package/build-module/components/block-navigation/dropdown.js +3 -1
  260. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  261. package/build-module/components/block-pattern-setup/index.js +1 -1
  262. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  263. package/build-module/components/block-pattern-setup/use-patterns-setup.js +2 -2
  264. package/build-module/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  265. package/build-module/components/block-patterns-list/index.js +32 -3
  266. package/build-module/components/block-patterns-list/index.js.map +1 -1
  267. package/build-module/components/block-preview/auto.js +9 -11
  268. package/build-module/components/block-preview/auto.js.map +1 -1
  269. package/build-module/components/block-preview/index.js +31 -8
  270. package/build-module/components/block-preview/index.js.map +1 -1
  271. package/build-module/components/block-selection-clearer/index.js +1 -1
  272. package/build-module/components/block-selection-clearer/index.js.map +1 -1
  273. package/build-module/components/block-settings/container.native.js +6 -30
  274. package/build-module/components/block-settings/container.native.js.map +1 -1
  275. package/build-module/components/block-settings-menu/block-settings-dropdown.js +12 -6
  276. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  277. package/build-module/components/block-settings-menu-controls/index.js +2 -7
  278. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  279. package/build-module/components/block-switcher/utils.js +1 -1
  280. package/build-module/components/block-switcher/utils.js.map +1 -1
  281. package/build-module/components/block-tools/selected-block-popover.js +55 -48
  282. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  283. package/build-module/components/block-vertical-alignment-control/icons.js +12 -0
  284. package/build-module/components/block-vertical-alignment-control/icons.js.map +1 -1
  285. package/build-module/components/block-vertical-alignment-control/ui.js +10 -5
  286. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  287. package/build-module/components/color-style-selector/index.js +3 -1
  288. package/build-module/components/color-style-selector/index.js.map +1 -1
  289. package/build-module/components/date-format-picker/index.js +4 -5
  290. package/build-module/components/date-format-picker/index.js.map +1 -1
  291. package/build-module/components/font-family/index.js +1 -6
  292. package/build-module/components/font-family/index.js.map +1 -1
  293. package/build-module/components/font-sizes/fluid-utils.js +1 -1
  294. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  295. package/build-module/components/font-sizes/utils.js +1 -1
  296. package/build-module/components/font-sizes/utils.js.map +1 -1
  297. package/build-module/components/global-styles/context.js +12 -0
  298. package/build-module/components/global-styles/context.js.map +1 -0
  299. package/build-module/components/global-styles/hooks.js +121 -0
  300. package/build-module/components/global-styles/hooks.js.map +1 -0
  301. package/build-module/components/global-styles/index.js +4 -0
  302. package/build-module/components/global-styles/index.js.map +1 -0
  303. package/build-module/components/global-styles/typography-utils.js +84 -0
  304. package/build-module/components/global-styles/typography-utils.js.map +1 -0
  305. package/build-module/components/global-styles/use-global-styles-output.js +930 -0
  306. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -0
  307. package/build-module/components/global-styles/utils.js +321 -0
  308. package/build-module/components/global-styles/utils.js.map +1 -0
  309. package/build-module/components/height-control/index.js +14 -1
  310. package/build-module/components/height-control/index.js.map +1 -1
  311. package/build-module/components/image-editor/constants.js +1 -1
  312. package/build-module/components/image-editor/constants.js.map +1 -1
  313. package/build-module/components/image-editor/context.js +1 -2
  314. package/build-module/components/image-editor/context.js.map +1 -1
  315. package/build-module/components/image-editor/cropper.js +3 -1
  316. package/build-module/components/image-editor/cropper.js.map +1 -1
  317. package/build-module/components/image-editor/index.js +13 -3
  318. package/build-module/components/image-editor/index.js.map +1 -1
  319. package/build-module/components/image-editor/use-transform-image.js +12 -37
  320. package/build-module/components/image-editor/use-transform-image.js.map +1 -1
  321. package/build-module/components/image-size-control/index.js +1 -6
  322. package/build-module/components/image-size-control/index.js.map +1 -1
  323. package/build-module/components/index.js +2 -3
  324. package/build-module/components/index.js.map +1 -1
  325. package/build-module/components/inner-blocks/index.js +21 -32
  326. package/build-module/components/inner-blocks/index.js.map +1 -1
  327. package/build-module/components/inner-blocks/index.native.js +9 -22
  328. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  329. package/build-module/components/inner-blocks/use-block-context.js +43 -0
  330. package/build-module/components/inner-blocks/use-block-context.js.map +1 -0
  331. package/build-module/components/inserter/block-patterns-explorer/explorer.js +0 -1
  332. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  333. package/build-module/components/inserter/block-patterns-tab.js +7 -1
  334. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  335. package/build-module/components/inserter/block-types-tab.js +3 -3
  336. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  337. package/build-module/components/inserter/hooks/use-patterns-state.js +1 -6
  338. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  339. package/build-module/components/inserter/index.js +5 -4
  340. package/build-module/components/inserter/index.js.map +1 -1
  341. package/build-module/components/inserter/media-tab/hooks.js +145 -56
  342. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  343. package/build-module/components/inserter/media-tab/media-list.js +74 -24
  344. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  345. package/build-module/components/inserter/media-tab/media-panel.js +14 -14
  346. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  347. package/build-module/components/inserter/media-tab/media-tab.js +7 -4
  348. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  349. package/build-module/components/inserter/media-tab/utils.js +27 -15
  350. package/build-module/components/inserter/media-tab/utils.js.map +1 -1
  351. package/build-module/components/inserter/menu.js +1 -0
  352. package/build-module/components/inserter/menu.js.map +1 -1
  353. package/build-module/components/inserter/preview-panel.js +5 -3
  354. package/build-module/components/inserter/preview-panel.js.map +1 -1
  355. package/build-module/components/inserter/search-results.js +2 -6
  356. package/build-module/components/inserter/search-results.js.map +1 -1
  357. package/build-module/components/inserter-list-item/index.js +1 -9
  358. package/build-module/components/inserter-list-item/index.js.map +1 -1
  359. package/build-module/components/inspector-controls/fill.js +14 -2
  360. package/build-module/components/inspector-controls/fill.js.map +1 -1
  361. package/build-module/components/inspector-controls/fill.native.js +13 -1
  362. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  363. package/build-module/components/inspector-controls/groups.js +4 -0
  364. package/build-module/components/inspector-controls/groups.js.map +1 -1
  365. package/build-module/components/inspector-controls/index.js +2 -2
  366. package/build-module/components/inspector-controls/index.js.map +1 -1
  367. package/build-module/components/inspector-controls/slot.js +13 -1
  368. package/build-module/components/inspector-controls/slot.js.map +1 -1
  369. package/build-module/components/inspector-controls/slot.native.js +13 -1
  370. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  371. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
  372. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
  373. package/build-module/components/inspector-controls-tabs/index.js +2 -2
  374. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  375. package/build-module/components/inspector-controls-tabs/position-controls-panel.js +1 -1
  376. package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  377. package/build-module/components/inspector-controls-tabs/styles-tab.js +6 -4
  378. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  379. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +17 -12
  380. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  381. package/build-module/components/justify-content-control/ui.js +9 -2
  382. package/build-module/components/justify-content-control/ui.js.map +1 -1
  383. package/build-module/components/link-control/index.js +45 -16
  384. package/build-module/components/link-control/index.js.map +1 -1
  385. package/build-module/components/list-view/block.js +1 -1
  386. package/build-module/components/list-view/block.js.map +1 -1
  387. package/build-module/components/list-view/use-list-view-drop-zone.js +1 -1
  388. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  389. package/build-module/components/media-upload/index.native.js +4 -1
  390. package/build-module/components/media-upload/index.native.js.map +1 -1
  391. package/build-module/components/off-canvas-editor/appender.js +47 -4
  392. package/build-module/components/off-canvas-editor/appender.js.map +1 -1
  393. package/build-module/components/off-canvas-editor/block-select-button.js +9 -4
  394. package/build-module/components/off-canvas-editor/block-select-button.js.map +1 -1
  395. package/build-module/components/off-canvas-editor/block.js +6 -25
  396. package/build-module/components/off-canvas-editor/block.js.map +1 -1
  397. package/build-module/components/off-canvas-editor/branch.js +23 -11
  398. package/build-module/components/off-canvas-editor/branch.js.map +1 -1
  399. package/build-module/components/off-canvas-editor/index.js +11 -15
  400. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  401. package/build-module/components/off-canvas-editor/link-ui.js +2 -2
  402. package/build-module/components/off-canvas-editor/link-ui.js.map +1 -1
  403. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +1 -1
  404. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -1
  405. package/build-module/components/provider/index.js +16 -9
  406. package/build-module/components/provider/index.js.map +1 -1
  407. package/build-module/components/provider/index.native.js +4 -4
  408. package/build-module/components/provider/index.native.js.map +1 -1
  409. package/build-module/components/rich-text/use-before-input-rules.js +10 -2
  410. package/build-module/components/rich-text/use-before-input-rules.js.map +1 -1
  411. package/build-module/components/rich-text/utils.js +1 -1
  412. package/build-module/components/rich-text/utils.js.map +1 -1
  413. package/build-module/components/spacing-sizes-control/utils.js +2 -7
  414. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  415. package/build-module/components/tool-selector/index.js +3 -1
  416. package/build-module/components/tool-selector/index.js.map +1 -1
  417. package/build-module/components/url-popover/image-url-input-ui.js +8 -8
  418. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  419. package/build-module/components/use-block-display-information/index.js +1 -1
  420. package/build-module/components/use-block-display-information/index.js.map +1 -1
  421. package/build-module/experiments.js +25 -0
  422. package/build-module/experiments.js.map +1 -0
  423. package/build-module/experiments.native.js +23 -0
  424. package/build-module/experiments.native.js.map +1 -0
  425. package/build-module/hooks/anchor.js +2 -1
  426. package/build-module/hooks/anchor.js.map +1 -1
  427. package/build-module/hooks/border.js +1 -1
  428. package/build-module/hooks/border.js.map +1 -1
  429. package/build-module/hooks/child-layout.js +5 -1
  430. package/build-module/hooks/child-layout.js.map +1 -1
  431. package/build-module/hooks/color-panel.js +1 -1
  432. package/build-module/hooks/color-panel.js.map +1 -1
  433. package/build-module/hooks/color.js +3 -3
  434. package/build-module/hooks/color.js.map +1 -1
  435. package/build-module/hooks/custom-class-name.js +2 -1
  436. package/build-module/hooks/custom-class-name.js.map +1 -1
  437. package/build-module/hooks/dimensions.js +6 -5
  438. package/build-module/hooks/dimensions.js.map +1 -1
  439. package/build-module/hooks/margin.js +1 -0
  440. package/build-module/hooks/margin.js.map +1 -1
  441. package/build-module/hooks/padding.js +1 -0
  442. package/build-module/hooks/padding.js.map +1 -1
  443. package/build-module/hooks/position.js +31 -14
  444. package/build-module/hooks/position.js.map +1 -1
  445. package/build-module/hooks/typography.js +1 -1
  446. package/build-module/hooks/typography.js.map +1 -1
  447. package/build-module/hooks/use-color-props.js +3 -3
  448. package/build-module/hooks/use-color-props.js.map +1 -1
  449. package/build-module/hooks/utils.js +70 -4
  450. package/build-module/hooks/utils.js.map +1 -1
  451. package/build-module/index.js +1 -0
  452. package/build-module/index.js.map +1 -1
  453. package/build-module/layouts/constrained.js +3 -0
  454. package/build-module/layouts/constrained.js.map +1 -1
  455. package/build-module/layouts/flex.js +60 -10
  456. package/build-module/layouts/flex.js.map +1 -1
  457. package/build-module/layouts/flow.js +0 -18
  458. package/build-module/layouts/flow.js.map +1 -1
  459. package/build-module/store/actions.js +2 -26
  460. package/build-module/store/actions.js.map +1 -1
  461. package/build-module/store/defaults.js +5 -2
  462. package/build-module/store/defaults.js.map +1 -1
  463. package/build-module/store/index.js +8 -2
  464. package/build-module/store/index.js.map +1 -1
  465. package/build-module/store/private-actions.js +66 -0
  466. package/build-module/store/private-actions.js.map +1 -0
  467. package/build-module/store/private-selectors.js +11 -0
  468. package/build-module/store/private-selectors.js.map +1 -0
  469. package/build-module/store/reducer.js +1 -1
  470. package/build-module/store/reducer.js.map +1 -1
  471. package/build-module/store/selectors.js +48 -25
  472. package/build-module/store/selectors.js.map +1 -1
  473. package/build-module/utils/block-variation-transforms.js +1 -1
  474. package/build-module/utils/block-variation-transforms.js.map +1 -1
  475. package/build-module/utils/parse-css-unit-to-px.js +1 -1
  476. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  477. package/build-module/utils/transform-styles/index.js +1 -6
  478. package/build-module/utils/transform-styles/index.js.map +1 -1
  479. package/build-style/content-rtl.css +283 -3
  480. package/build-style/content.css +283 -3
  481. package/build-style/style-rtl.css +105 -221
  482. package/build-style/style.css +105 -221
  483. package/package.json +30 -29
  484. package/src/components/alignment-control/test/__snapshots__/index.js.snap +3 -3
  485. package/src/components/alignment-control/test/index.js +5 -15
  486. package/src/components/alignment-control/ui.js +1 -1
  487. package/src/components/autocomplete/index.js +3 -6
  488. package/src/components/block-alignment-control/test/index.js +3 -11
  489. package/src/components/block-alignment-matrix-control/index.js +1 -2
  490. package/src/components/block-card/index.js +1 -4
  491. package/src/components/block-content-overlay/content.scss +4 -4
  492. package/src/components/block-edit/index.js +15 -1
  493. package/src/components/block-icon/content.scss +31 -0
  494. package/src/components/block-inspector/index.js +13 -17
  495. package/src/components/block-list/use-in-between-inserter.js +5 -0
  496. package/src/components/block-lock/modal.js +0 -1
  497. package/src/components/block-mover/mover-description.js +2 -2
  498. package/src/components/block-mover/stories/index.js +3 -3
  499. package/src/components/block-navigation/dropdown.js +1 -1
  500. package/src/components/block-pattern-setup/index.js +1 -4
  501. package/src/components/block-pattern-setup/use-patterns-setup.js +2 -5
  502. package/src/components/block-patterns-list/index.js +29 -3
  503. package/src/components/block-preview/README.md +9 -9
  504. package/src/components/block-preview/auto.js +9 -11
  505. package/src/components/block-preview/content.scss +23 -0
  506. package/src/components/block-preview/index.js +40 -10
  507. package/src/components/block-preview/style.scss +0 -23
  508. package/src/components/block-selection-clearer/index.js +1 -1
  509. package/src/components/block-selection-clearer/test/index.js +6 -6
  510. package/src/components/block-settings/container.native.js +7 -26
  511. package/src/components/block-settings-menu/block-settings-dropdown.js +13 -5
  512. package/src/components/block-settings-menu-controls/index.js +2 -10
  513. package/src/components/block-switcher/test/index.js +43 -44
  514. package/src/components/block-switcher/utils.js +1 -1
  515. package/src/components/block-tools/selected-block-popover.js +77 -80
  516. package/src/components/block-tools/style.scss +0 -1
  517. package/src/components/block-variation-picker/{style.scss → content.scss} +0 -0
  518. package/src/components/block-vertical-alignment-control/icons.js +12 -0
  519. package/src/components/block-vertical-alignment-control/test/index.js +3 -11
  520. package/src/components/block-vertical-alignment-control/ui.js +16 -6
  521. package/src/components/color-style-selector/index.js +1 -1
  522. package/src/components/colors/test/with-colors.js +2 -8
  523. package/src/components/date-format-picker/index.js +23 -24
  524. package/src/components/date-format-picker/style.scss +0 -6
  525. package/src/components/default-block-appender/content.scss +18 -0
  526. package/src/components/default-block-appender/test/index.js +2 -8
  527. package/src/components/font-family/index.js +1 -6
  528. package/src/components/font-sizes/fluid-utils.js +1 -1
  529. package/src/components/font-sizes/utils.js +1 -1
  530. package/src/components/global-styles/README.md +77 -0
  531. package/src/components/global-styles/context.js +15 -0
  532. package/src/components/global-styles/hooks.js +145 -0
  533. package/src/components/global-styles/index.js +7 -0
  534. package/src/components/global-styles/test/typography-utils.js +393 -0
  535. package/src/components/global-styles/test/use-global-styles-output.js +814 -0
  536. package/src/components/global-styles/test/utils.js +206 -0
  537. package/src/components/global-styles/typography-utils.js +87 -0
  538. package/src/components/global-styles/use-global-styles-output.js +1088 -0
  539. package/src/components/global-styles/utils.js +373 -0
  540. package/src/components/height-control/README.md +55 -0
  541. package/src/components/height-control/index.js +13 -1
  542. package/src/components/image-editor/constants.js +1 -1
  543. package/src/components/image-editor/context.js +5 -9
  544. package/src/components/image-editor/cropper.js +3 -1
  545. package/src/components/image-editor/index.js +13 -4
  546. package/src/components/image-editor/use-transform-image.js +14 -55
  547. package/src/components/image-size-control/index.js +1 -6
  548. package/src/components/index.js +2 -6
  549. package/src/components/inner-blocks/index.js +29 -33
  550. package/src/components/inner-blocks/index.native.js +27 -47
  551. package/src/components/inner-blocks/use-block-context.js +47 -0
  552. package/src/components/inserter/block-patterns-explorer/explorer.js +0 -1
  553. package/src/components/inserter/block-patterns-tab.js +7 -0
  554. package/src/components/inserter/block-types-tab.js +3 -4
  555. package/src/components/inserter/hooks/use-patterns-state.js +1 -6
  556. package/src/components/inserter/index.js +3 -4
  557. package/src/components/inserter/media-tab/hooks.js +167 -65
  558. package/src/components/inserter/media-tab/media-list.js +94 -26
  559. package/src/components/inserter/media-tab/media-panel.js +9 -20
  560. package/src/components/inserter/media-tab/media-tab.js +12 -4
  561. package/src/components/inserter/media-tab/utils.js +20 -10
  562. package/src/components/inserter/menu.js +1 -0
  563. package/src/components/inserter/preview-panel.js +4 -2
  564. package/src/components/inserter/search-results.js +2 -6
  565. package/src/components/inserter/stories/index.js +9 -9
  566. package/src/components/inserter/style.scss +58 -11
  567. package/src/components/inserter-list-item/index.js +0 -7
  568. package/src/components/inspector-controls/README.md +3 -7
  569. package/src/components/inspector-controls/fill.js +15 -1
  570. package/src/components/inspector-controls/fill.native.js +14 -1
  571. package/src/components/inspector-controls/groups.js +3 -0
  572. package/src/components/inspector-controls/index.js +2 -6
  573. package/src/components/inspector-controls/slot.js +14 -1
  574. package/src/components/inspector-controls/slot.native.js +14 -1
  575. package/src/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
  576. package/src/components/inspector-controls-tabs/index.js +2 -4
  577. package/src/components/inspector-controls-tabs/position-controls-panel.js +1 -1
  578. package/src/components/inspector-controls-tabs/styles-tab.js +5 -7
  579. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +21 -10
  580. package/src/components/justify-content-control/ui.js +9 -0
  581. package/src/components/link-control/index.js +59 -23
  582. package/src/components/link-control/style.scss +7 -24
  583. package/src/components/link-control/test/index.js +134 -5
  584. package/src/components/list-view/block.js +1 -1
  585. package/src/components/list-view/use-list-view-drop-zone.js +1 -1
  586. package/src/components/media-replace-flow/test/index.js +4 -12
  587. package/src/components/media-upload/index.native.js +2 -2
  588. package/src/components/off-canvas-editor/README.md +2 -2
  589. package/src/components/off-canvas-editor/appender.js +93 -37
  590. package/src/components/off-canvas-editor/block-select-button.js +12 -1
  591. package/src/components/off-canvas-editor/block.js +3 -42
  592. package/src/components/off-canvas-editor/branch.js +32 -5
  593. package/src/components/off-canvas-editor/index.js +10 -25
  594. package/src/components/off-canvas-editor/link-ui.js +2 -2
  595. package/src/components/off-canvas-editor/style.scss +5 -1
  596. package/src/components/off-canvas-editor/use-list-view-drop-zone.js +1 -1
  597. package/src/components/provider/index.js +33 -14
  598. package/src/components/provider/index.native.js +4 -3
  599. package/src/components/provider/test/experimental-provider.js +94 -0
  600. package/src/components/provider/test/use-block-sync.js +10 -0
  601. package/src/components/responsive-block-control/test/index.js +1 -5
  602. package/src/components/rich-text/use-before-input-rules.js +10 -2
  603. package/src/components/rich-text/utils.js +1 -1
  604. package/src/components/spacing-sizes-control/utils.js +2 -7
  605. package/src/components/tool-selector/index.js +1 -1
  606. package/src/components/url-input/test/button.js +24 -24
  607. package/src/components/url-popover/image-url-input-ui.js +7 -8
  608. package/src/components/url-popover/style.scss +0 -10
  609. package/src/components/use-block-display-information/index.js +1 -1
  610. package/src/components/warning/{style.scss → content.scss} +0 -0
  611. package/src/components/warning/test/index.js +1 -5
  612. package/src/content.scss +7 -0
  613. package/src/experiments.js +27 -0
  614. package/src/experiments.native.js +25 -0
  615. package/src/hooks/anchor.js +2 -1
  616. package/src/hooks/border.js +1 -1
  617. package/src/hooks/child-layout.js +6 -1
  618. package/src/hooks/color-panel.js +1 -1
  619. package/src/hooks/color.js +3 -3
  620. package/src/hooks/custom-class-name.js +2 -1
  621. package/src/hooks/dimensions.js +6 -6
  622. package/src/hooks/layout.scss +4 -0
  623. package/src/hooks/margin.js +1 -0
  624. package/src/hooks/padding.js +1 -0
  625. package/src/hooks/position.js +52 -36
  626. package/src/hooks/test/align.native.js +1 -1
  627. package/src/hooks/test/utils.js +104 -0
  628. package/src/hooks/typography.js +1 -1
  629. package/src/hooks/use-color-props.js +3 -3
  630. package/src/hooks/utils.js +68 -2
  631. package/src/index.js +1 -0
  632. package/src/layouts/constrained.js +3 -0
  633. package/src/layouts/flex.js +66 -14
  634. package/src/layouts/flow.js +0 -9
  635. package/src/store/actions.js +2 -26
  636. package/src/store/defaults.js +7 -2
  637. package/src/store/index.js +8 -2
  638. package/src/store/private-actions.js +65 -0
  639. package/src/store/private-selectors.js +10 -0
  640. package/src/store/reducer.js +1 -1
  641. package/src/store/selectors.js +103 -52
  642. package/src/store/test/actions.js +0 -18
  643. package/src/store/test/private-actions.js +22 -0
  644. package/src/store/test/private-selectors.js +24 -0
  645. package/src/store/test/selectors.js +52 -30
  646. package/src/style.scss +3 -5
  647. package/src/utils/block-variation-transforms.js +1 -1
  648. package/src/utils/parse-css-unit-to-px.js +3 -1
  649. package/src/utils/test/parse-css-unit-to-px.js +16 -24
  650. package/src/utils/transform-styles/index.js +1 -6
  651. package/build/components/inner-blocks/get-block-context.js +0 -45
  652. package/build/components/inner-blocks/get-block-context.js.map +0 -1
  653. package/build/components/off-canvas-editor/block-edit-button.js +0 -50
  654. package/build/components/off-canvas-editor/block-edit-button.js.map +0 -1
  655. package/build-module/components/inner-blocks/get-block-context.js +0 -37
  656. package/build-module/components/inner-blocks/get-block-context.js.map +0 -1
  657. package/build-module/components/off-canvas-editor/block-edit-button.js +0 -35
  658. package/build-module/components/off-canvas-editor/block-edit-button.js.map +0 -1
  659. package/src/components/inner-blocks/get-block-context.js +0 -39
  660. package/src/components/off-canvas-editor/block-edit-button.js +0 -27
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/block.js"],"names":["classnames","hasBlockSupport","__experimentalTreeGridCell","TreeGridCell","__experimentalTreeGridItem","TreeGridItem","useInstanceId","moreVertical","useState","useRef","useEffect","useCallback","memo","useDispatch","useSelect","sprintf","__","ListViewLeaf","BlockMoverUpButton","BlockMoverDownButton","ListViewBlockContents","BlockSettingsDropdown","BlockEditButton","useListViewContext","getBlockPositionDescription","store","blockEditorStore","useBlockDisplayInformation","useBlockLock","ListViewBlock","block","clientId","isDragged","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","preventAnnouncement","selectBlockInCanvas","cellRef","isHovered","setIsHovered","isLocked","isContentLocked","forceSelectionContentLock","select","hasSelectedInnerBlock","isFirstSelectedBlock","isLastSelectedBlock","length","toggleBlockHighlight","blockInformation","getBlock","isTreeGridMounted","current","focus","onMouseEnter","onMouseLeave","selectEditorBlock","event","preventDefault","updateSelection","newClientId","undefined","expand","collapse","LeafMoreMenu","toggleExpanded","stopPropagation","instanceId","showBlockActions","name","descriptionId","blockPositionDescription","blockAriaLabel","title","settingsAriaLabel","editAriaLabel","isEditable","hasSiblings","hasRenderedMovers","moverCellClassName","listViewBlockSettingsClassName","listViewBlockEditClassName","colSpan","classes","dropdownClientIds","includes","MoreMenuComponent","ref","tabIndex","onFocus","props","className"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport BlockSettingsDropdown from '../block-settings-menu/block-settings-dropdown';\nimport BlockEditButton from './block-edit-button';\nimport { useListViewContext } from './context';\nimport { getBlockPositionDescription } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\n\nfunction ListViewBlock( {\n\tblock: { clientId },\n\tisDragged,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tpreventAnnouncement,\n\tselectBlockInCanvas,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\n\tconst { isLocked, isContentLocked } = useBlockLock( clientId );\n\tconst forceSelectionContentLock = useSelect(\n\t\t( select ) => {\n\t\t\tif ( isSelected ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif ( ! isContentLocked ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn select( blockEditorStore ).hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t},\n\t\t[ isContentLocked, clientId, isSelected ]\n\t);\n\n\tconst isFirstSelectedBlock =\n\t\tforceSelectionContentLock ||\n\t\t( isSelected && selectedClientIds[ 0 ] === clientId );\n\tconst isLastSelectedBlock =\n\t\tforceSelectionContentLock ||\n\t\t( isSelected &&\n\t\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId );\n\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst block = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\n\t// If ListView has experimental features related to the Persistent List View,\n\t// only focus the selected list item on mount; otherwise the list would always\n\t// try to steal the focus from the editor canvas.\n\tuseEffect( () => {\n\t\tif ( ! isTreeGridMounted && isSelected ) {\n\t\t\tcellRef.current.focus();\n\t\t}\n\t}, [] );\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\ttoggleBlockHighlight( clientId, true );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\ttoggleBlockHighlight( clientId, false );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateSelection = useCallback(\n\t\t( newClientId ) => {\n\t\t\tselectBlock( undefined, newClientId );\n\t\t},\n\t\t[ selectBlock ]\n\t);\n\n\tconst { isTreeGridMounted, expand, collapse, LeafMoreMenu } =\n\t\tuseListViewContext();\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\tconst instanceId = useInstanceId( ListViewBlock );\n\n\tif ( ! block ) {\n\t\treturn null;\n\t}\n\n\t// When a block hides its toolbar it also hides the block settings menu,\n\t// since that menu is part of the toolbar in the editor canvas.\n\t// List View respects this by also hiding the block settings menu.\n\tconst showBlockActions =\n\t\t!! block &&\n\t\thasBlockSupport( block.name, '__experimentalToolbar', true );\n\n\tconst descriptionId = `list-view-block-select-button__${ instanceId }`;\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tlet blockAriaLabel = __( 'Link' );\n\tif ( blockInformation ) {\n\t\tblockAriaLabel = isLocked\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the locked block.\n\t\t\t\t\t__( '%s link (locked)' ),\n\t\t\t\t\tblockInformation.title\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the block.\n\t\t\t\t\t__( '%s link' ),\n\t\t\t\t\tblockInformation.title\n\t\t\t );\n\t}\n\n\tconst settingsAriaLabel = blockInformation\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block.\n\t\t\t\t__( 'Options for %s block' ),\n\t\t\t\tblockInformation.title\n\t\t )\n\t\t: __( 'Options' );\n\n\tconst editAriaLabel = blockInformation\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block.\n\t\t\t\t__( 'Edit %s block' ),\n\t\t\t\tblockInformation.title\n\t\t )\n\t\t: __( 'Edit' );\n\n\tconst isEditable = !! block && block.name !== 'core/page-list-item';\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\tconst listViewBlockEditClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( ! showBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected || forceSelectionContentLock,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected': isBranchSelected,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': ! showBlockActions,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\tconst MoreMenuComponent = LeafMoreMenu\n\t\t? LeafMoreMenu\n\t\t: BlockSettingsDropdown;\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tisExpanded={ isContentLocked ? undefined : isExpanded }\n\t\t\taria-selected={ !! isSelected || forceSelectionContentLock }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-label={ blockAriaLabel }\n\t\t\t\taria-selected={ !! isSelected || forceSelectionContentLock }\n\t\t\t\taria-expanded={ isContentLocked ? undefined : isExpanded }\n\t\t\t\taria-describedby={ descriptionId }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\tselectBlockInCanvas\n\t\t\t\t\t\t\t\t\t? selectEditorBlock\n\t\t\t\t\t\t\t\t\t: ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tpreventAnnouncement={ preventAnnouncement }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__description\"\n\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ blockPositionDescription }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && (\n\t\t\t\t<>\n\t\t\t\t\t{ isEditable && (\n\t\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\t\tclassName={ listViewBlockEditClassName }\n\t\t\t\t\t\t\taria-selected={\n\t\t\t\t\t\t\t\t!! isSelected || forceSelectionContentLock\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ ( props ) => (\n\t\t\t\t\t\t\t\t<BlockEditButton\n\t\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\t\tlabel={ editAriaLabel }\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridCell>\n\t\t\t\t\t) }\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\t\taria-selected={\n\t\t\t\t\t\t\t!! isSelected || forceSelectionContentLock\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcolSpan={ isEditable ? 1 : 2 } // When an item is not editable then we don't output the cell for the edit button, so we need to adjust the colspan so that the HTML is valid.\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<MoreMenuComponent\n\t\t\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\tlabel={ settingsAriaLabel }\n\t\t\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\t\t\t__experimentalSelectBlock={\n\t\t\t\t\t\t\t\t\t\tupdateSelection\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</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/block.js"],"names":["classnames","hasBlockSupport","__experimentalTreeGridCell","TreeGridCell","__experimentalTreeGridItem","TreeGridItem","useInstanceId","moreVertical","useState","useRef","useEffect","useCallback","memo","useDispatch","useSelect","sprintf","__","ListViewLeaf","BlockMoverUpButton","BlockMoverDownButton","ListViewBlockContents","BlockSettingsDropdown","useListViewContext","getBlockPositionDescription","store","blockEditorStore","useBlockDisplayInformation","useBlockLock","ListViewBlock","block","clientId","isDragged","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","preventAnnouncement","cellRef","isHovered","setIsHovered","isLocked","isContentLocked","forceSelectionContentLock","select","hasSelectedInnerBlock","isFirstSelectedBlock","isLastSelectedBlock","length","toggleBlockHighlight","blockInformation","getBlock","isTreeGridMounted","current","focus","onMouseEnter","onMouseLeave","selectEditorBlock","event","preventDefault","updateSelection","newClientId","undefined","expand","collapse","LeafMoreMenu","toggleExpanded","stopPropagation","instanceId","showBlockActions","name","descriptionId","blockPositionDescription","blockAriaLabel","title","settingsAriaLabel","hasSiblings","hasRenderedMovers","moverCellClassName","listViewBlockSettingsClassName","colSpan","classes","dropdownClientIds","includes","MoreMenuComponent","ref","tabIndex","onFocus","className"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport BlockSettingsDropdown from '../block-settings-menu/block-settings-dropdown';\nimport { useListViewContext } from './context';\nimport { getBlockPositionDescription } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\n\nfunction ListViewBlock( {\n\tblock: { clientId },\n\tisDragged,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tpreventAnnouncement,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\n\tconst { isLocked, isContentLocked } = useBlockLock( clientId );\n\tconst forceSelectionContentLock = useSelect(\n\t\t( select ) => {\n\t\t\tif ( isSelected ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif ( ! isContentLocked ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn select( blockEditorStore ).hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t},\n\t\t[ isContentLocked, clientId, isSelected ]\n\t);\n\n\tconst isFirstSelectedBlock =\n\t\tforceSelectionContentLock ||\n\t\t( isSelected && selectedClientIds[ 0 ] === clientId );\n\tconst isLastSelectedBlock =\n\t\tforceSelectionContentLock ||\n\t\t( isSelected &&\n\t\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId );\n\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst block = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\n\t// If ListView has experimental features related to the Persistent List View,\n\t// only focus the selected list item on mount; otherwise the list would always\n\t// try to steal the focus from the editor canvas.\n\tuseEffect( () => {\n\t\tif ( ! isTreeGridMounted && isSelected ) {\n\t\t\tcellRef.current.focus();\n\t\t}\n\t}, [] );\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\ttoggleBlockHighlight( clientId, true );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\ttoggleBlockHighlight( clientId, false );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateSelection = useCallback(\n\t\t( newClientId ) => {\n\t\t\tselectBlock( undefined, newClientId );\n\t\t},\n\t\t[ selectBlock ]\n\t);\n\n\tconst { isTreeGridMounted, expand, collapse, LeafMoreMenu } =\n\t\tuseListViewContext();\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\tconst instanceId = useInstanceId( ListViewBlock );\n\n\tif ( ! block ) {\n\t\treturn null;\n\t}\n\n\t// When a block hides its toolbar it also hides the block settings menu,\n\t// since that menu is part of the toolbar in the editor canvas.\n\t// List View respects this by also hiding the block settings menu.\n\tconst showBlockActions =\n\t\t!! block &&\n\t\thasBlockSupport( block.name, '__experimentalToolbar', true );\n\n\tconst descriptionId = `list-view-block-select-button__${ instanceId }`;\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tlet blockAriaLabel = __( 'Link' );\n\tif ( blockInformation ) {\n\t\tblockAriaLabel = isLocked\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the locked block.\n\t\t\t\t\t__( '%s link (locked)' ),\n\t\t\t\t\tblockInformation.title\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the block.\n\t\t\t\t\t__( '%s link' ),\n\t\t\t\t\tblockInformation.title\n\t\t\t );\n\t}\n\n\tconst settingsAriaLabel = blockInformation\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block.\n\t\t\t\t__( 'Options for %s block' ),\n\t\t\t\tblockInformation.title\n\t\t )\n\t\t: __( 'Options' );\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 1;\n\t} else if ( ! showBlockActions ) {\n\t\tcolSpan = 2;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected || forceSelectionContentLock,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected': isBranchSelected,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': ! showBlockActions,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\tconst MoreMenuComponent = LeafMoreMenu\n\t\t? LeafMoreMenu\n\t\t: BlockSettingsDropdown;\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tisExpanded={ isContentLocked ? undefined : isExpanded }\n\t\t\taria-selected={ !! isSelected || forceSelectionContentLock }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-label={ blockAriaLabel }\n\t\t\t\taria-selected={ !! isSelected || forceSelectionContentLock }\n\t\t\t\taria-expanded={ isContentLocked ? undefined : isExpanded }\n\t\t\t\taria-describedby={ descriptionId }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tpreventAnnouncement={ preventAnnouncement }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__description\"\n\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ blockPositionDescription }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\t\taria-selected={\n\t\t\t\t\t\t\t!! isSelected || forceSelectionContentLock\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<MoreMenuComponent\n\t\t\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\tlabel={ settingsAriaLabel }\n\t\t\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\t\t\t__experimentalSelectBlock={\n\t\t\t\t\t\t\t\t\t\tupdateSelection\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</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"]}
@@ -1,14 +1,17 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
1
2
  import { createElement, Fragment } from "@wordpress/element";
2
3
 
3
4
  /**
4
5
  * WordPress dependencies
5
6
  */
6
- import { memo } from '@wordpress/element';
7
+ import { __experimentalTreeGridRow as TreeGridRow, __experimentalTreeGridCell as TreeGridCell } from '@wordpress/components';
7
8
  import { AsyncModeProvider, useSelect } from '@wordpress/data';
9
+ import { memo } from '@wordpress/element';
8
10
  /**
9
11
  * Internal dependencies
10
12
  */
11
13
 
14
+ import { Appender } from './appender';
12
15
  import ListViewBlock from './block';
13
16
  import { useListViewContext } from './context';
14
17
  import { isClientIdSelected } from './utils';
@@ -78,8 +81,7 @@ function ListViewBranch(props) {
78
81
  fixedListWindow,
79
82
  isExpanded,
80
83
  parentId,
81
- shouldShowInnerBlocks = true,
82
- selectBlockInCanvas
84
+ shouldShowInnerBlocks = true
83
85
  } = props;
84
86
  const isContentLocked = useSelect(select => {
85
87
  return !!(parentId && select(blockEditorStore).getTemplateLock(parentId) === 'contentOnly');
@@ -91,10 +93,14 @@ function ListViewBranch(props) {
91
93
 
92
94
  if (isContentLocked) {
93
95
  return null;
94
- }
96
+ } // Only show the appender at the first level.
95
97
 
98
+
99
+ const showAppender = level === 1;
96
100
  const filteredBlocks = blocks.filter(Boolean);
97
- const blockCount = filteredBlocks.length;
101
+ const blockCount = filteredBlocks.length; // The appender means an extra row in List View, so add 1 to the row count.
102
+
103
+ const rowCount = showAppender ? blockCount + 1 : blockCount;
98
104
  let nextPosition = listPosition;
99
105
  return createElement(Fragment, null, filteredBlocks.map((block, index) => {
100
106
  var _expandedState$client;
@@ -133,14 +139,13 @@ function ListViewBranch(props) {
133
139
  isDragged: isDragged,
134
140
  level: level,
135
141
  position: position,
136
- rowCount: blockCount,
142
+ rowCount: rowCount,
137
143
  siblingBlockCount: blockCount,
138
144
  showBlockMovers: showBlockMovers,
139
145
  path: updatedPath,
140
146
  isExpanded: shouldExpand,
141
147
  listPosition: nextPosition,
142
- selectedClientIds: selectedClientIds,
143
- selectBlockInCanvas: selectBlockInCanvas
148
+ selectedClientIds: selectedClientIds
144
149
  }), !showBlock && createElement("tr", null, createElement("td", {
145
150
  className: "block-editor-list-view-placeholder"
146
151
  })), hasNestedBlocks && shouldExpand && !isDragged && createElement(ListViewBranch, {
@@ -154,10 +159,17 @@ function ListViewBranch(props) {
154
159
  fixedListWindow: fixedListWindow,
155
160
  isBranchSelected: isSelectedBranch,
156
161
  selectedClientIds: selectedClientIds,
157
- isExpanded: isExpanded,
158
- selectBlockInCanvas: selectBlockInCanvas
162
+ isExpanded: isExpanded
159
163
  }));
160
- }));
164
+ }), showAppender && createElement(TreeGridRow, {
165
+ level: level,
166
+ setSize: rowCount,
167
+ positionInSet: rowCount,
168
+ isExpanded: true
169
+ }, createElement(TreeGridCell, null, treeGridCellProps => createElement(Appender, _extends({
170
+ nestingLevel: level,
171
+ blockCount: blockCount
172
+ }, treeGridCellProps)))));
161
173
  }
162
174
 
163
175
  export default memo(ListViewBranch);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/branch.js"],"names":["memo","AsyncModeProvider","useSelect","ListViewBlock","useListViewContext","isClientIdSelected","store","blockEditorStore","countBlocks","block","expandedState","draggedClientIds","isExpandedByDefault","isDragged","includes","clientId","isExpanded","innerBlocks","reduce","countReducer","count","length","noop","ListViewBranch","props","blocks","selectBlock","showBlockMovers","selectedClientIds","level","path","isBranchSelected","listPosition","fixedListWindow","parentId","shouldShowInnerBlocks","selectBlockInCanvas","isContentLocked","select","getTemplateLock","filteredBlocks","filter","Boolean","blockCount","nextPosition","map","index","itemInView","blockInView","position","updatedPath","hasNestedBlocks","shouldExpand","undefined","showBlock","isSelected","isSelectedBranch"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { memo } from '@wordpress/element';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport ListViewBlock from './block';\nimport { useListViewContext } from './context';\nimport { isClientIdSelected } from './utils';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Given a block, returns the total number of blocks in that subtree. This is used to help determine\n * the list position of a block.\n *\n * When a block is collapsed, we do not count their children as part of that total. In the current drag\n * implementation dragged blocks and their children are not counted.\n *\n * @param {Object} block block tree\n * @param {Object} expandedState state that notes which branches are collapsed\n * @param {Array} draggedClientIds a list of dragged client ids\n * @param {boolean} isExpandedByDefault flag to determine the default fallback expanded state.\n * @return {number} block count\n */\nfunction countBlocks(\n\tblock,\n\texpandedState,\n\tdraggedClientIds,\n\tisExpandedByDefault\n) {\n\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\tif ( isDragged ) {\n\t\treturn 0;\n\t}\n\tconst isExpanded = expandedState[ block.clientId ] ?? isExpandedByDefault;\n\n\tif ( isExpanded ) {\n\t\treturn (\n\t\t\t1 +\n\t\t\tblock.innerBlocks.reduce(\n\t\t\t\tcountReducer(\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t),\n\t\t\t\t0\n\t\t\t)\n\t\t);\n\t}\n\treturn 1;\n}\nconst countReducer =\n\t( expandedState, draggedClientIds, isExpandedByDefault ) =>\n\t( count, block ) => {\n\t\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\t\tif ( isDragged ) {\n\t\t\treturn count;\n\t\t}\n\t\tconst isExpanded =\n\t\t\texpandedState[ block.clientId ] ?? isExpandedByDefault;\n\t\tif ( isExpanded && block.innerBlocks.length > 0 ) {\n\t\t\treturn (\n\t\t\t\tcount +\n\t\t\t\tcountBlocks(\n\t\t\t\t\tblock,\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn count + 1;\n\t};\n\nconst noop = () => {};\n\nfunction ListViewBranch( props ) {\n\tconst {\n\t\tblocks,\n\t\tselectBlock = noop,\n\t\tshowBlockMovers,\n\t\tselectedClientIds,\n\t\tlevel = 1,\n\t\tpath = '',\n\t\tisBranchSelected = false,\n\t\tlistPosition = 0,\n\t\tfixedListWindow,\n\t\tisExpanded,\n\t\tparentId,\n\t\tshouldShowInnerBlocks = true,\n\t\tselectBlockInCanvas,\n\t} = props;\n\n\tconst isContentLocked = useSelect(\n\t\t( select ) => {\n\t\t\treturn !! (\n\t\t\t\tparentId &&\n\t\t\t\tselect( blockEditorStore ).getTemplateLock( parentId ) ===\n\t\t\t\t\t'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ parentId ]\n\t);\n\n\tconst { expandedState, draggedClientIds } = useListViewContext();\n\n\tif ( isContentLocked ) {\n\t\treturn null;\n\t}\n\n\tconst filteredBlocks = blocks.filter( Boolean );\n\tconst blockCount = filteredBlocks.length;\n\tlet nextPosition = listPosition;\n\n\treturn (\n\t\t<>\n\t\t\t{ filteredBlocks.map( ( block, index ) => {\n\t\t\t\tconst { clientId, innerBlocks } = block;\n\n\t\t\t\tif ( index > 0 ) {\n\t\t\t\t\tnextPosition += countBlocks(\n\t\t\t\t\t\tfilteredBlocks[ index - 1 ],\n\t\t\t\t\t\texpandedState,\n\t\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\t\tisExpanded\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst { itemInView } = fixedListWindow;\n\t\t\t\tconst blockInView = itemInView( nextPosition );\n\n\t\t\t\tconst position = index + 1;\n\t\t\t\tconst updatedPath =\n\t\t\t\t\tpath.length > 0\n\t\t\t\t\t\t? `${ path }_${ position }`\n\t\t\t\t\t\t: `${ position }`;\n\t\t\t\tconst hasNestedBlocks = !! innerBlocks?.length;\n\n\t\t\t\tconst shouldExpand =\n\t\t\t\t\thasNestedBlocks && shouldShowInnerBlocks\n\t\t\t\t\t\t? expandedState[ clientId ] ?? isExpanded\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\tconst isDragged = !! draggedClientIds?.includes( clientId );\n\n\t\t\t\tconst showBlock = isDragged || blockInView;\n\n\t\t\t\t// Make updates to the selected or dragged blocks synchronous,\n\t\t\t\t// but asynchronous for any other block.\n\t\t\t\tconst isSelected = isClientIdSelected(\n\t\t\t\t\tclientId,\n\t\t\t\t\tselectedClientIds\n\t\t\t\t);\n\t\t\t\tconst isSelectedBranch =\n\t\t\t\t\tisBranchSelected || ( isSelected && hasNestedBlocks );\n\t\t\t\treturn (\n\t\t\t\t\t<AsyncModeProvider key={ clientId } value={ ! isSelected }>\n\t\t\t\t\t\t{ showBlock && (\n\t\t\t\t\t\t\t<ListViewBlock\n\t\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tisDragged={ isDragged }\n\t\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\t\trowCount={ blockCount }\n\t\t\t\t\t\t\t\tsiblingBlockCount={ blockCount }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tisExpanded={ shouldExpand }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tselectBlockInCanvas={ selectBlockInCanvas }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! showBlock && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td className=\"block-editor-list-view-placeholder\" />\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasNestedBlocks && shouldExpand && ! isDragged && (\n\t\t\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\t\t\tparentId={ clientId }\n\t\t\t\t\t\t\t\tblocks={ innerBlocks }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tlevel={ level + 1 }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition + 1 }\n\t\t\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\t\tselectBlockInCanvas={ selectBlockInCanvas }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</AsyncModeProvider>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n\nexport default memo( ListViewBranch );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/branch.js"],"names":["__experimentalTreeGridRow","TreeGridRow","__experimentalTreeGridCell","TreeGridCell","AsyncModeProvider","useSelect","memo","Appender","ListViewBlock","useListViewContext","isClientIdSelected","store","blockEditorStore","countBlocks","block","expandedState","draggedClientIds","isExpandedByDefault","isDragged","includes","clientId","isExpanded","innerBlocks","reduce","countReducer","count","length","noop","ListViewBranch","props","blocks","selectBlock","showBlockMovers","selectedClientIds","level","path","isBranchSelected","listPosition","fixedListWindow","parentId","shouldShowInnerBlocks","isContentLocked","select","getTemplateLock","showAppender","filteredBlocks","filter","Boolean","blockCount","rowCount","nextPosition","map","index","itemInView","blockInView","position","updatedPath","hasNestedBlocks","shouldExpand","undefined","showBlock","isSelected","isSelectedBranch","treeGridCellProps"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalTreeGridRow as TreeGridRow,\n\t__experimentalTreeGridCell as TreeGridCell,\n} from '@wordpress/components';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\nimport { memo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport { Appender } from './appender';\nimport ListViewBlock from './block';\nimport { useListViewContext } from './context';\nimport { isClientIdSelected } from './utils';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Given a block, returns the total number of blocks in that subtree. This is used to help determine\n * the list position of a block.\n *\n * When a block is collapsed, we do not count their children as part of that total. In the current drag\n * implementation dragged blocks and their children are not counted.\n *\n * @param {Object} block block tree\n * @param {Object} expandedState state that notes which branches are collapsed\n * @param {Array} draggedClientIds a list of dragged client ids\n * @param {boolean} isExpandedByDefault flag to determine the default fallback expanded state.\n * @return {number} block count\n */\nfunction countBlocks(\n\tblock,\n\texpandedState,\n\tdraggedClientIds,\n\tisExpandedByDefault\n) {\n\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\tif ( isDragged ) {\n\t\treturn 0;\n\t}\n\tconst isExpanded = expandedState[ block.clientId ] ?? isExpandedByDefault;\n\n\tif ( isExpanded ) {\n\t\treturn (\n\t\t\t1 +\n\t\t\tblock.innerBlocks.reduce(\n\t\t\t\tcountReducer(\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t),\n\t\t\t\t0\n\t\t\t)\n\t\t);\n\t}\n\treturn 1;\n}\nconst countReducer =\n\t( expandedState, draggedClientIds, isExpandedByDefault ) =>\n\t( count, block ) => {\n\t\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\t\tif ( isDragged ) {\n\t\t\treturn count;\n\t\t}\n\t\tconst isExpanded =\n\t\t\texpandedState[ block.clientId ] ?? isExpandedByDefault;\n\t\tif ( isExpanded && block.innerBlocks.length > 0 ) {\n\t\t\treturn (\n\t\t\t\tcount +\n\t\t\t\tcountBlocks(\n\t\t\t\t\tblock,\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn count + 1;\n\t};\n\nconst noop = () => {};\n\nfunction ListViewBranch( props ) {\n\tconst {\n\t\tblocks,\n\t\tselectBlock = noop,\n\t\tshowBlockMovers,\n\t\tselectedClientIds,\n\t\tlevel = 1,\n\t\tpath = '',\n\t\tisBranchSelected = false,\n\t\tlistPosition = 0,\n\t\tfixedListWindow,\n\t\tisExpanded,\n\t\tparentId,\n\t\tshouldShowInnerBlocks = true,\n\t} = props;\n\n\tconst isContentLocked = useSelect(\n\t\t( select ) => {\n\t\t\treturn !! (\n\t\t\t\tparentId &&\n\t\t\t\tselect( blockEditorStore ).getTemplateLock( parentId ) ===\n\t\t\t\t\t'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ parentId ]\n\t);\n\n\tconst { expandedState, draggedClientIds } = useListViewContext();\n\n\tif ( isContentLocked ) {\n\t\treturn null;\n\t}\n\n\t// Only show the appender at the first level.\n\tconst showAppender = level === 1;\n\n\tconst filteredBlocks = blocks.filter( Boolean );\n\tconst blockCount = filteredBlocks.length;\n\n\t// The appender means an extra row in List View, so add 1 to the row count.\n\tconst rowCount = showAppender ? blockCount + 1 : blockCount;\n\tlet nextPosition = listPosition;\n\n\treturn (\n\t\t<>\n\t\t\t{ filteredBlocks.map( ( block, index ) => {\n\t\t\t\tconst { clientId, innerBlocks } = block;\n\n\t\t\t\tif ( index > 0 ) {\n\t\t\t\t\tnextPosition += countBlocks(\n\t\t\t\t\t\tfilteredBlocks[ index - 1 ],\n\t\t\t\t\t\texpandedState,\n\t\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\t\tisExpanded\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst { itemInView } = fixedListWindow;\n\t\t\t\tconst blockInView = itemInView( nextPosition );\n\n\t\t\t\tconst position = index + 1;\n\t\t\t\tconst updatedPath =\n\t\t\t\t\tpath.length > 0\n\t\t\t\t\t\t? `${ path }_${ position }`\n\t\t\t\t\t\t: `${ position }`;\n\t\t\t\tconst hasNestedBlocks = !! innerBlocks?.length;\n\n\t\t\t\tconst shouldExpand =\n\t\t\t\t\thasNestedBlocks && shouldShowInnerBlocks\n\t\t\t\t\t\t? expandedState[ clientId ] ?? isExpanded\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\tconst isDragged = !! draggedClientIds?.includes( clientId );\n\n\t\t\t\tconst showBlock = isDragged || blockInView;\n\n\t\t\t\t// Make updates to the selected or dragged blocks synchronous,\n\t\t\t\t// but asynchronous for any other block.\n\t\t\t\tconst isSelected = isClientIdSelected(\n\t\t\t\t\tclientId,\n\t\t\t\t\tselectedClientIds\n\t\t\t\t);\n\t\t\t\tconst isSelectedBranch =\n\t\t\t\t\tisBranchSelected || ( isSelected && hasNestedBlocks );\n\t\t\t\treturn (\n\t\t\t\t\t<AsyncModeProvider key={ clientId } value={ ! isSelected }>\n\t\t\t\t\t\t{ showBlock && (\n\t\t\t\t\t\t\t<ListViewBlock\n\t\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tisDragged={ isDragged }\n\t\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\t\trowCount={ rowCount }\n\t\t\t\t\t\t\t\tsiblingBlockCount={ blockCount }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tisExpanded={ shouldExpand }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! showBlock && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td className=\"block-editor-list-view-placeholder\" />\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasNestedBlocks && shouldExpand && ! isDragged && (\n\t\t\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\t\t\tparentId={ clientId }\n\t\t\t\t\t\t\t\tblocks={ innerBlocks }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tlevel={ level + 1 }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition + 1 }\n\t\t\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</AsyncModeProvider>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t\t{ showAppender && (\n\t\t\t\t<TreeGridRow\n\t\t\t\t\tlevel={ level }\n\t\t\t\t\tsetSize={ rowCount }\n\t\t\t\t\tpositionInSet={ rowCount }\n\t\t\t\t\tisExpanded={ true }\n\t\t\t\t>\n\t\t\t\t\t<TreeGridCell>\n\t\t\t\t\t\t{ ( treeGridCellProps ) => (\n\t\t\t\t\t\t\t<Appender\n\t\t\t\t\t\t\t\tnestingLevel={ level }\n\t\t\t\t\t\t\t\tblockCount={ blockCount }\n\t\t\t\t\t\t\t\t{ ...treeGridCellProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</TreeGridRow>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default memo( ListViewBranch );\n"]}
@@ -20,7 +20,6 @@ import useListViewClientIds from './use-list-view-client-ids';
20
20
  import useListViewDropZone from './use-list-view-drop-zone';
21
21
  import useListViewExpandSelectedItem from './use-list-view-expand-selected-item';
22
22
  import { store as blockEditorStore } from '../../store';
23
- import { Appender } from './appender';
24
23
 
25
24
  const expanded = (state, action) => {
26
25
  if (Array.isArray(action.clientIds)) {
@@ -38,23 +37,21 @@ export const BLOCK_LIST_ITEM_HEIGHT = 36;
38
37
  /**
39
38
  * Show a hierarchical list of blocks.
40
39
  *
41
- * @param {Object} props Components props.
42
- * @param {string} props.id An HTML element id for the root element of ListView.
43
- * @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.
44
- * @param {boolean} props.showBlockMovers Flag to enable block movers
45
- * @param {boolean} props.isExpanded Flag to determine whether nested levels are expanded by default.
46
- * @param {boolean} props.selectBlockInCanvas Flag to determine whether the list view should be a block selection mechanism.
47
- * @param {Object} props.LeafMoreMenu Optional more menu substitution.
48
- * @param {Object} ref Forwarded ref
40
+ * @param {Object} props Components props.
41
+ * @param {string} props.id An HTML element id for the root element of ListView.
42
+ * @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.
43
+ * @param {boolean} props.showBlockMovers Flag to enable block movers
44
+ * @param {boolean} props.isExpanded Flag to determine whether nested levels are expanded by default.
45
+ * @param {Object} props.LeafMoreMenu Optional more menu substitution.
46
+ * @param {Object} ref Forwarded ref
49
47
  */
50
48
 
51
- function __ExperimentalOffCanvasEditor(_ref, ref) {
49
+ function OffCanvasEditor(_ref, ref) {
52
50
  let {
53
51
  id,
54
52
  blocks,
55
53
  showBlockMovers = false,
56
54
  isExpanded = false,
57
- selectBlockInCanvas = true,
58
55
  LeafMoreMenu
59
56
  } = _ref;
60
57
  const {
@@ -178,19 +175,18 @@ function __ExperimentalOffCanvasEditor(_ref, ref) {
178
175
  fixedListWindow: fixedListWindow,
179
176
  selectedClientIds: selectedClientIds,
180
177
  isExpanded: isExpanded,
181
- shouldShowInnerBlocks: shouldShowInnerBlocks,
182
- selectBlockInCanvas: selectBlockInCanvas
178
+ shouldShowInnerBlocks: shouldShowInnerBlocks
183
179
  }), createElement(TreeGridRow, {
184
180
  level: 1,
185
181
  setSize: 1,
186
182
  positionInSet: 1,
187
183
  isExpanded: true
188
- }, createElement(TreeGridCell, null, treeGridCellProps => createElement(Appender, treeGridCellProps)), !clientIdsTree.length && createElement(TreeGridCell, {
184
+ }, !clientIdsTree.length && createElement(TreeGridCell, {
189
185
  withoutGridItem: true
190
186
  }, createElement("div", {
191
187
  className: "offcanvas-editor-list-view-is-empty"
192
188
  }, __('Your menu is currently empty. Add your first menu item to get started.'))))))));
193
189
  }
194
190
 
195
- export default forwardRef(__ExperimentalOffCanvasEditor);
191
+ export default forwardRef(OffCanvasEditor);
196
192
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/index.js"],"names":["useMergeRefs","__experimentalUseFixedWindowList","useFixedWindowList","__experimentalTreeGrid","TreeGrid","__experimentalTreeGridRow","TreeGridRow","__experimentalTreeGridCell","TreeGridCell","AsyncModeProvider","useSelect","useCallback","useEffect","useMemo","useRef","useReducer","forwardRef","__","ListViewBranch","ListViewContext","ListViewDropIndicator","useBlockSelection","useListViewClientIds","useListViewDropZone","useListViewExpandSelectedItem","store","blockEditorStore","Appender","expanded","state","action","Array","isArray","clientIds","reduce","newState","id","type","BLOCK_LIST_ITEM_HEIGHT","__ExperimentalOffCanvasEditor","ref","blocks","showBlockMovers","isExpanded","selectBlockInCanvas","LeafMoreMenu","clientIdsTree","draggedClientIds","selectedClientIds","visibleBlockCount","shouldShowInnerBlocks","select","getGlobalBlockCount","getClientIdsOfDescendants","__unstableGetEditorMode","draggedBlockCount","length","updateBlockSelection","expandedState","setExpandedState","dropZoneRef","target","blockDropTarget","elementRef","treeGridRef","isMounted","setSelectedTreeId","firstSelectedBlockClientId","selectEditorBlock","event","blockClientId","current","fixedListWindow","useWindowing","windowOverscan","expand","collapse","expandRow","row","dataset","block","collapseRow","focusRow","startRow","endRow","shiftKey","contextValue","isTreeGridMounted","treeGridCellProps"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseMergeRefs,\n\t__experimentalUseFixedWindowList as useFixedWindowList,\n} from '@wordpress/compose';\nimport {\n\t__experimentalTreeGrid as TreeGrid,\n\t__experimentalTreeGridRow as TreeGridRow,\n\t__experimentalTreeGridCell as TreeGridCell,\n} from '@wordpress/components';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseReducer,\n\tforwardRef,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewBranch from './branch';\nimport { ListViewContext } from './context';\nimport ListViewDropIndicator from './drop-indicator';\nimport useBlockSelection from './use-block-selection';\nimport useListViewClientIds from './use-list-view-client-ids';\nimport useListViewDropZone from './use-list-view-drop-zone';\nimport useListViewExpandSelectedItem from './use-list-view-expand-selected-item';\nimport { store as blockEditorStore } from '../../store';\nimport { Appender } from './appender';\n\nconst expanded = ( state, action ) => {\n\tif ( Array.isArray( action.clientIds ) ) {\n\t\treturn {\n\t\t\t...state,\n\t\t\t...action.clientIds.reduce(\n\t\t\t\t( newState, id ) => ( {\n\t\t\t\t\t...newState,\n\t\t\t\t\t[ id ]: action.type === 'expand',\n\t\t\t\t} ),\n\t\t\t\t{}\n\t\t\t),\n\t\t};\n\t}\n\treturn state;\n};\n\nexport const BLOCK_LIST_ITEM_HEIGHT = 36;\n\n/**\n * Show a hierarchical list of blocks.\n *\n * @param {Object} props Components props.\n * @param {string} props.id An HTML element id for the root element of ListView.\n * @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.\n * @param {boolean} props.showBlockMovers Flag to enable block movers\n * @param {boolean} props.isExpanded Flag to determine whether nested levels are expanded by default.\n * @param {boolean} props.selectBlockInCanvas Flag to determine whether the list view should be a block selection mechanism.\n * @param {Object} props.LeafMoreMenu Optional more menu substitution.\n * @param {Object} ref Forwarded ref\n */\nfunction __ExperimentalOffCanvasEditor(\n\t{\n\t\tid,\n\t\tblocks,\n\t\tshowBlockMovers = false,\n\t\tisExpanded = false,\n\t\tselectBlockInCanvas = true,\n\t\tLeafMoreMenu,\n\t},\n\tref\n) {\n\tconst { clientIdsTree, draggedClientIds, selectedClientIds } =\n\t\tuseListViewClientIds( blocks );\n\n\tconst { visibleBlockCount, shouldShowInnerBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetGlobalBlockCount,\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst draggedBlockCount =\n\t\t\t\tdraggedClientIds?.length > 0\n\t\t\t\t\t? getClientIdsOfDescendants( draggedClientIds ).length + 1\n\t\t\t\t\t: 0;\n\t\t\treturn {\n\t\t\t\tvisibleBlockCount: getGlobalBlockCount() - draggedBlockCount,\n\t\t\t\tshouldShowInnerBlocks: __unstableGetEditorMode() !== 'zoom-out',\n\t\t\t};\n\t\t},\n\t\t[ draggedClientIds ]\n\t);\n\n\tconst { updateBlockSelection } = useBlockSelection();\n\n\tconst [ expandedState, setExpandedState ] = useReducer( expanded, {} );\n\n\tconst { ref: dropZoneRef, target: blockDropTarget } = useListViewDropZone();\n\tconst elementRef = useRef();\n\tconst treeGridRef = useMergeRefs( [ elementRef, dropZoneRef, ref ] );\n\n\tconst isMounted = useRef( false );\n\tconst { setSelectedTreeId } = useListViewExpandSelectedItem( {\n\t\tfirstSelectedBlockClientId: selectedClientIds[ 0 ],\n\t\tsetExpandedState,\n\t} );\n\tconst selectEditorBlock = useCallback(\n\t\t( event, blockClientId ) => {\n\t\t\tupdateBlockSelection( event, blockClientId );\n\t\t\tsetSelectedTreeId( blockClientId );\n\t\t},\n\t\t[ setSelectedTreeId, updateBlockSelection ]\n\t);\n\tuseEffect( () => {\n\t\tisMounted.current = true;\n\t}, [] );\n\n\t// List View renders a fixed number of items and relies on each having a fixed item height of 36px.\n\t// If this value changes, we should also change the itemHeight value set in useFixedWindowList.\n\t// See: https://github.com/WordPress/gutenberg/pull/35230 for additional context.\n\tconst [ fixedListWindow ] = useFixedWindowList(\n\t\telementRef,\n\t\tBLOCK_LIST_ITEM_HEIGHT,\n\t\tvisibleBlockCount,\n\t\t{\n\t\t\tuseWindowing: true,\n\t\t\twindowOverscan: 40,\n\t\t}\n\t);\n\n\tconst expand = useCallback(\n\t\t( blockClientId ) => {\n\t\t\tif ( ! blockClientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( {\n\t\t\t\ttype: 'expand',\n\t\t\t\tclientIds: [ blockClientId ],\n\t\t\t} );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst collapse = useCallback(\n\t\t( blockClientId ) => {\n\t\t\tif ( ! blockClientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( {\n\t\t\t\ttype: 'collapse',\n\t\t\t\tclientIds: [ blockClientId ],\n\t\t\t} );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst expandRow = useCallback(\n\t\t( row ) => {\n\t\t\texpand( row?.dataset?.block );\n\t\t},\n\t\t[ expand ]\n\t);\n\tconst collapseRow = useCallback(\n\t\t( row ) => {\n\t\t\tcollapse( row?.dataset?.block );\n\t\t},\n\t\t[ collapse ]\n\t);\n\tconst focusRow = useCallback(\n\t\t( event, startRow, endRow ) => {\n\t\t\tif ( event.shiftKey ) {\n\t\t\t\tupdateBlockSelection(\n\t\t\t\t\tevent,\n\t\t\t\t\tstartRow?.dataset?.block,\n\t\t\t\t\tendRow?.dataset?.block\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ updateBlockSelection ]\n\t);\n\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\tisTreeGridMounted: isMounted.current,\n\t\t\tdraggedClientIds,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tcollapse,\n\t\t\tLeafMoreMenu,\n\t\t} ),\n\t\t[\n\t\t\tisMounted.current,\n\t\t\tdraggedClientIds,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tcollapse,\n\t\t\tLeafMoreMenu,\n\t\t]\n\t);\n\n\treturn (\n\t\t<AsyncModeProvider value={ true }>\n\t\t\t<ListViewDropIndicator\n\t\t\t\tlistViewRef={ elementRef }\n\t\t\t\tblockDropTarget={ blockDropTarget }\n\t\t\t/>\n\t\t\t<div className=\"offcanvas-editor-list-view-tree-wrapper\">\n\t\t\t\t<TreeGrid\n\t\t\t\t\tid={ id }\n\t\t\t\t\tclassName=\"block-editor-list-view-tree\"\n\t\t\t\t\taria-label={ __( 'Block navigation structure' ) }\n\t\t\t\t\tref={ treeGridRef }\n\t\t\t\t\tonCollapseRow={ collapseRow }\n\t\t\t\t\tonExpandRow={ expandRow }\n\t\t\t\t\tonFocusRow={ focusRow }\n\t\t\t\t\tapplicationAriaLabel={ __( 'Block navigation structure' ) }\n\t\t\t\t>\n\t\t\t\t\t<ListViewContext.Provider value={ contextValue }>\n\t\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\t\tblocks={ clientIdsTree }\n\t\t\t\t\t\t\tselectBlock={ selectEditorBlock }\n\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\tshouldShowInnerBlocks={ shouldShowInnerBlocks }\n\t\t\t\t\t\t\tselectBlockInCanvas={ selectBlockInCanvas }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<TreeGridRow\n\t\t\t\t\t\t\tlevel={ 1 }\n\t\t\t\t\t\t\tsetSize={ 1 }\n\t\t\t\t\t\t\tpositionInSet={ 1 }\n\t\t\t\t\t\t\tisExpanded={ true }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TreeGridCell>\n\t\t\t\t\t\t\t\t{ ( treeGridCellProps ) => (\n\t\t\t\t\t\t\t\t\t<Appender { ...treeGridCellProps } />\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</TreeGridCell>\n\t\t\t\t\t\t\t{ ! clientIdsTree.length && (\n\t\t\t\t\t\t\t\t<TreeGridCell withoutGridItem>\n\t\t\t\t\t\t\t\t\t<div className=\"offcanvas-editor-list-view-is-empty\">\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Your menu is currently empty. Add your first menu item to get started.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</TreeGridCell>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridRow>\n\t\t\t\t\t</ListViewContext.Provider>\n\t\t\t\t</TreeGrid>\n\t\t\t</div>\n\t\t</AsyncModeProvider>\n\t);\n}\n\nexport default forwardRef( __ExperimentalOffCanvasEditor );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/index.js"],"names":["useMergeRefs","__experimentalUseFixedWindowList","useFixedWindowList","__experimentalTreeGrid","TreeGrid","__experimentalTreeGridRow","TreeGridRow","__experimentalTreeGridCell","TreeGridCell","AsyncModeProvider","useSelect","useCallback","useEffect","useMemo","useRef","useReducer","forwardRef","__","ListViewBranch","ListViewContext","ListViewDropIndicator","useBlockSelection","useListViewClientIds","useListViewDropZone","useListViewExpandSelectedItem","store","blockEditorStore","expanded","state","action","Array","isArray","clientIds","reduce","newState","id","type","BLOCK_LIST_ITEM_HEIGHT","OffCanvasEditor","ref","blocks","showBlockMovers","isExpanded","LeafMoreMenu","clientIdsTree","draggedClientIds","selectedClientIds","visibleBlockCount","shouldShowInnerBlocks","select","getGlobalBlockCount","getClientIdsOfDescendants","__unstableGetEditorMode","draggedBlockCount","length","updateBlockSelection","expandedState","setExpandedState","dropZoneRef","target","blockDropTarget","elementRef","treeGridRef","isMounted","setSelectedTreeId","firstSelectedBlockClientId","selectEditorBlock","event","blockClientId","current","fixedListWindow","useWindowing","windowOverscan","expand","collapse","expandRow","row","dataset","block","collapseRow","focusRow","startRow","endRow","shiftKey","contextValue","isTreeGridMounted"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseMergeRefs,\n\t__experimentalUseFixedWindowList as useFixedWindowList,\n} from '@wordpress/compose';\nimport {\n\t__experimentalTreeGrid as TreeGrid,\n\t__experimentalTreeGridRow as TreeGridRow,\n\t__experimentalTreeGridCell as TreeGridCell,\n} from '@wordpress/components';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseReducer,\n\tforwardRef,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewBranch from './branch';\nimport { ListViewContext } from './context';\nimport ListViewDropIndicator from './drop-indicator';\nimport useBlockSelection from './use-block-selection';\nimport useListViewClientIds from './use-list-view-client-ids';\nimport useListViewDropZone from './use-list-view-drop-zone';\nimport useListViewExpandSelectedItem from './use-list-view-expand-selected-item';\nimport { store as blockEditorStore } from '../../store';\n\nconst expanded = ( state, action ) => {\n\tif ( Array.isArray( action.clientIds ) ) {\n\t\treturn {\n\t\t\t...state,\n\t\t\t...action.clientIds.reduce(\n\t\t\t\t( newState, id ) => ( {\n\t\t\t\t\t...newState,\n\t\t\t\t\t[ id ]: action.type === 'expand',\n\t\t\t\t} ),\n\t\t\t\t{}\n\t\t\t),\n\t\t};\n\t}\n\treturn state;\n};\n\nexport const BLOCK_LIST_ITEM_HEIGHT = 36;\n\n/**\n * Show a hierarchical list of blocks.\n *\n * @param {Object} props Components props.\n * @param {string} props.id An HTML element id for the root element of ListView.\n * @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.\n * @param {boolean} props.showBlockMovers Flag to enable block movers\n * @param {boolean} props.isExpanded Flag to determine whether nested levels are expanded by default.\n * @param {Object} props.LeafMoreMenu Optional more menu substitution.\n * @param {Object} ref Forwarded ref\n */\nfunction OffCanvasEditor(\n\t{ id, blocks, showBlockMovers = false, isExpanded = false, LeafMoreMenu },\n\tref\n) {\n\tconst { clientIdsTree, draggedClientIds, selectedClientIds } =\n\t\tuseListViewClientIds( blocks );\n\n\tconst { visibleBlockCount, shouldShowInnerBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetGlobalBlockCount,\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst draggedBlockCount =\n\t\t\t\tdraggedClientIds?.length > 0\n\t\t\t\t\t? getClientIdsOfDescendants( draggedClientIds ).length + 1\n\t\t\t\t\t: 0;\n\t\t\treturn {\n\t\t\t\tvisibleBlockCount: getGlobalBlockCount() - draggedBlockCount,\n\t\t\t\tshouldShowInnerBlocks: __unstableGetEditorMode() !== 'zoom-out',\n\t\t\t};\n\t\t},\n\t\t[ draggedClientIds ]\n\t);\n\n\tconst { updateBlockSelection } = useBlockSelection();\n\n\tconst [ expandedState, setExpandedState ] = useReducer( expanded, {} );\n\n\tconst { ref: dropZoneRef, target: blockDropTarget } = useListViewDropZone();\n\tconst elementRef = useRef();\n\tconst treeGridRef = useMergeRefs( [ elementRef, dropZoneRef, ref ] );\n\n\tconst isMounted = useRef( false );\n\tconst { setSelectedTreeId } = useListViewExpandSelectedItem( {\n\t\tfirstSelectedBlockClientId: selectedClientIds[ 0 ],\n\t\tsetExpandedState,\n\t} );\n\tconst selectEditorBlock = useCallback(\n\t\t( event, blockClientId ) => {\n\t\t\tupdateBlockSelection( event, blockClientId );\n\t\t\tsetSelectedTreeId( blockClientId );\n\t\t},\n\t\t[ setSelectedTreeId, updateBlockSelection ]\n\t);\n\tuseEffect( () => {\n\t\tisMounted.current = true;\n\t}, [] );\n\n\t// List View renders a fixed number of items and relies on each having a fixed item height of 36px.\n\t// If this value changes, we should also change the itemHeight value set in useFixedWindowList.\n\t// See: https://github.com/WordPress/gutenberg/pull/35230 for additional context.\n\tconst [ fixedListWindow ] = useFixedWindowList(\n\t\telementRef,\n\t\tBLOCK_LIST_ITEM_HEIGHT,\n\t\tvisibleBlockCount,\n\t\t{\n\t\t\tuseWindowing: true,\n\t\t\twindowOverscan: 40,\n\t\t}\n\t);\n\n\tconst expand = useCallback(\n\t\t( blockClientId ) => {\n\t\t\tif ( ! blockClientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( {\n\t\t\t\ttype: 'expand',\n\t\t\t\tclientIds: [ blockClientId ],\n\t\t\t} );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst collapse = useCallback(\n\t\t( blockClientId ) => {\n\t\t\tif ( ! blockClientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( {\n\t\t\t\ttype: 'collapse',\n\t\t\t\tclientIds: [ blockClientId ],\n\t\t\t} );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst expandRow = useCallback(\n\t\t( row ) => {\n\t\t\texpand( row?.dataset?.block );\n\t\t},\n\t\t[ expand ]\n\t);\n\tconst collapseRow = useCallback(\n\t\t( row ) => {\n\t\t\tcollapse( row?.dataset?.block );\n\t\t},\n\t\t[ collapse ]\n\t);\n\tconst focusRow = useCallback(\n\t\t( event, startRow, endRow ) => {\n\t\t\tif ( event.shiftKey ) {\n\t\t\t\tupdateBlockSelection(\n\t\t\t\t\tevent,\n\t\t\t\t\tstartRow?.dataset?.block,\n\t\t\t\t\tendRow?.dataset?.block\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ updateBlockSelection ]\n\t);\n\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\tisTreeGridMounted: isMounted.current,\n\t\t\tdraggedClientIds,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tcollapse,\n\t\t\tLeafMoreMenu,\n\t\t} ),\n\t\t[\n\t\t\tisMounted.current,\n\t\t\tdraggedClientIds,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tcollapse,\n\t\t\tLeafMoreMenu,\n\t\t]\n\t);\n\n\treturn (\n\t\t<AsyncModeProvider value={ true }>\n\t\t\t<ListViewDropIndicator\n\t\t\t\tlistViewRef={ elementRef }\n\t\t\t\tblockDropTarget={ blockDropTarget }\n\t\t\t/>\n\t\t\t<div className=\"offcanvas-editor-list-view-tree-wrapper\">\n\t\t\t\t<TreeGrid\n\t\t\t\t\tid={ id }\n\t\t\t\t\tclassName=\"block-editor-list-view-tree\"\n\t\t\t\t\taria-label={ __( 'Block navigation structure' ) }\n\t\t\t\t\tref={ treeGridRef }\n\t\t\t\t\tonCollapseRow={ collapseRow }\n\t\t\t\t\tonExpandRow={ expandRow }\n\t\t\t\t\tonFocusRow={ focusRow }\n\t\t\t\t\tapplicationAriaLabel={ __( 'Block navigation structure' ) }\n\t\t\t\t>\n\t\t\t\t\t<ListViewContext.Provider value={ contextValue }>\n\t\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\t\tblocks={ clientIdsTree }\n\t\t\t\t\t\t\tselectBlock={ selectEditorBlock }\n\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\tshouldShowInnerBlocks={ shouldShowInnerBlocks }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<TreeGridRow\n\t\t\t\t\t\t\tlevel={ 1 }\n\t\t\t\t\t\t\tsetSize={ 1 }\n\t\t\t\t\t\t\tpositionInSet={ 1 }\n\t\t\t\t\t\t\tisExpanded={ true }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ ! clientIdsTree.length && (\n\t\t\t\t\t\t\t\t<TreeGridCell withoutGridItem>\n\t\t\t\t\t\t\t\t\t<div className=\"offcanvas-editor-list-view-is-empty\">\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Your menu is currently empty. Add your first menu item to get started.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</TreeGridCell>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridRow>\n\t\t\t\t\t</ListViewContext.Provider>\n\t\t\t\t</TreeGrid>\n\t\t\t</div>\n\t\t</AsyncModeProvider>\n\t);\n}\n\nexport default forwardRef( OffCanvasEditor );\n"]}
@@ -116,9 +116,9 @@ function LinkControlTransforms(_ref) {
116
116
  className: "link-control-transform__subheading"
117
117
  }, __('Transform')), createElement("div", {
118
118
  className: "link-control-transform__items"
119
- }, transforms.map((item, index) => {
119
+ }, transforms.map(item => {
120
120
  return createElement(Button, {
121
- key: `transform-${index}`,
121
+ key: `transform-${item.name}`,
122
122
  onClick: () => replaceBlock(clientId, switchToBlockType(getBlock(clientId), item.name)),
123
123
  className: "link-control-transform__item"
124
124
  }, createElement(BlockIcon, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/link-ui.js"],"names":["__unstableStripHTML","stripHTML","Popover","Button","__","switchToBlockType","useSelect","useDispatch","store","blockEditorStore","LinkControl","BlockIcon","getSuggestionsQuery","type","kind","subtype","LinkControlTransforms","clientId","getBlock","blockTransforms","select","_getBlock","getBlockRootClientId","getBlockTransformItems","replaceBlock","featuredBlocks","transforms","filter","item","includes","name","length","map","index","icon","title","LinkUI","props","label","url","opensInNewTab","link","onClose","anchor","className","hasCreateSuggestion","onChange","onRemove"],"mappings":"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","sourcesContent":["// Note: this file is copied directly from packages/block-library/src/navigation-link/link-ui.js\n\n/**\n * WordPress dependencies\n */\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { Popover, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { switchToBlockType } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport LinkControl from '../link-control';\nimport BlockIcon from '../block-icon';\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nexport function getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {};\n\t}\n}\n\n/**\n * Add transforms to Link Control\n *\n * @param {Object} props Component props.\n * @param {string} props.clientId Block client ID.\n */\nfunction LinkControlTransforms( { clientId } ) {\n\tconst { getBlock, blockTransforms } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tblockTransforms: getBlockTransformItems(\n\t\t\t\t\t_getBlock( clientId ),\n\t\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tconst featuredBlocks = [\n\t\t'core/page-list',\n\t\t'core/site-logo',\n\t\t'core/social-links',\n\t\t'core/search',\n\t];\n\n\tconst transforms = blockTransforms.filter( ( item ) => {\n\t\treturn featuredBlocks.includes( item.name );\n\t} );\n\n\tif ( ! transforms?.length ) {\n\t\treturn null;\n\t}\n\n\tif ( ! clientId ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"link-control-transform\">\n\t\t\t<h3 className=\"link-control-transform__subheading\">\n\t\t\t\t{ __( 'Transform' ) }\n\t\t\t</h3>\n\t\t\t<div className=\"link-control-transform__items\">\n\t\t\t\t{ transforms.map( ( item, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ `transform-${ index }` }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\treplaceBlock(\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\tswitchToBlockType(\n\t\t\t\t\t\t\t\t\t\tgetBlock( clientId ),\n\t\t\t\t\t\t\t\t\t\titem.name\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}\n\t\t\t\t\t\t\tclassName=\"link-control-transform__item\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockIcon icon={ item.icon } />\n\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport function LinkUI( props ) {\n\tconst { label, url, opensInNewTab, type, kind } = props.link;\n\tconst link = {\n\t\turl,\n\t\topensInNewTab,\n\t\ttitle: label && stripHTML( label ),\n\t};\n\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"bottom\"\n\t\t\tonClose={ props.onClose }\n\t\t\tanchor={ props.anchor }\n\t\t\tshift\n\t\t>\n\t\t\t<LinkControl\n\t\t\t\thasTextControl\n\t\t\t\thasRichPreviews\n\t\t\t\tclassName={ props.className }\n\t\t\t\tvalue={ link }\n\t\t\t\tshowInitialSuggestions={ true }\n\t\t\t\twithCreateSuggestion={ props.hasCreateSuggestion }\n\t\t\t\tnoDirectEntry={ !! type }\n\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\tsuggestionsQuery={ getSuggestionsQuery( type, kind ) }\n\t\t\t\tonChange={ props.onChange }\n\t\t\t\tonRemove={ props.onRemove }\n\t\t\t\trenderControlBottom={\n\t\t\t\t\t! url\n\t\t\t\t\t\t? () => (\n\t\t\t\t\t\t\t\t<LinkControlTransforms\n\t\t\t\t\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: null\n\t\t\t\t}\n\t\t\t/>\n\t\t</Popover>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/link-ui.js"],"names":["__unstableStripHTML","stripHTML","Popover","Button","__","switchToBlockType","useSelect","useDispatch","store","blockEditorStore","LinkControl","BlockIcon","getSuggestionsQuery","type","kind","subtype","LinkControlTransforms","clientId","getBlock","blockTransforms","select","_getBlock","getBlockRootClientId","getBlockTransformItems","replaceBlock","featuredBlocks","transforms","filter","item","includes","name","length","map","icon","title","LinkUI","props","label","url","opensInNewTab","link","onClose","anchor","className","hasCreateSuggestion","onChange","onRemove"],"mappings":";AAAA;;AAEA;AACA;AACA;AACA,SAASA,mBAAmB,IAAIC,SAAhC,QAAiD,gBAAjD;AACA,SAASC,OAAT,EAAkBC,MAAlB,QAAgC,uBAAhC;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,iBAAT,QAAkC,mBAAlC;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,OAAOC,WAAP,MAAwB,iBAAxB;AACA,OAAOC,SAAP,MAAsB,eAAtB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,mBAAT,CAA8BC,IAA9B,EAAoCC,IAApC,EAA2C;AACjD,UAASD,IAAT;AACC,SAAK,MAAL;AACA,SAAK,MAAL;AACC,aAAO;AAAEA,QAAAA,IAAI,EAAE,MAAR;AAAgBE,QAAAA,OAAO,EAAEF;AAAzB,OAAP;;AACD,SAAK,UAAL;AACC,aAAO;AAAEA,QAAAA,IAAI,EAAE,MAAR;AAAgBE,QAAAA,OAAO,EAAE;AAAzB,OAAP;;AACD,SAAK,KAAL;AACC,aAAO;AAAEF,QAAAA,IAAI,EAAE,MAAR;AAAgBE,QAAAA,OAAO,EAAE;AAAzB,OAAP;;AACD,SAAK,aAAL;AACC,aAAO;AAAEF,QAAAA,IAAI,EAAE;AAAR,OAAP;;AACD;AACC,UAAKC,IAAI,KAAK,UAAd,EAA2B;AAC1B,eAAO;AAAED,UAAAA,IAAI,EAAE,MAAR;AAAgBE,UAAAA,OAAO,EAAEF;AAAzB,SAAP;AACA;;AACD,UAAKC,IAAI,KAAK,WAAd,EAA4B;AAC3B,eAAO;AAAED,UAAAA,IAAI,EAAE,MAAR;AAAgBE,UAAAA,OAAO,EAAEF;AAAzB,SAAP;AACA;;AACD,aAAO,EAAP;AAjBF;AAmBA;AAED;AACA;AACA;AACA;AACA;AACA;;AACA,SAASG,qBAAT,OAA+C;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AAC9C,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAAgCb,SAAS,CAC5Cc,MAAF,IAAc;AACb,UAAM;AACLF,MAAAA,QAAQ,EAAEG,SADL;AAELC,MAAAA,oBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEX,gBAAF,CAJV;AAMA,WAAO;AACNS,MAAAA,QAAQ,EAAEG,SADJ;AAENF,MAAAA,eAAe,EAAEI,sBAAsB,CACtCF,SAAS,CAAEJ,QAAF,CAD6B,EAEtCK,oBAAoB,CAAEL,QAAF,CAFkB;AAFjC,KAAP;AAOA,GAf6C,EAgB9C,CAAEA,QAAF,CAhB8C,CAA/C;AAmBA,QAAM;AAAEO,IAAAA;AAAF,MAAmBjB,WAAW,CAAEE,gBAAF,CAApC;AAEA,QAAMgB,cAAc,GAAG,CACtB,gBADsB,EAEtB,gBAFsB,EAGtB,mBAHsB,EAItB,aAJsB,CAAvB;AAOA,QAAMC,UAAU,GAAGP,eAAe,CAACQ,MAAhB,CAA0BC,IAAF,IAAY;AACtD,WAAOH,cAAc,CAACI,QAAf,CAAyBD,IAAI,CAACE,IAA9B,CAAP;AACA,GAFkB,CAAnB;;AAIA,MAAK,EAAEJ,UAAF,aAAEA,UAAF,eAAEA,UAAU,CAAEK,MAAd,CAAL,EAA4B;AAC3B,WAAO,IAAP;AACA;;AAED,MAAK,CAAEd,QAAP,EAAkB;AACjB,WAAO,IAAP;AACA;;AAED,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAI,IAAA,SAAS,EAAC;AAAd,KACGb,EAAE,CAAE,WAAF,CADL,CADD,EAIC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGsB,UAAU,CAACM,GAAX,CAAkBJ,IAAF,IAAY;AAC7B,WACC,cAAC,MAAD;AACC,MAAA,GAAG,EAAI,aAAaA,IAAI,CAACE,IAAM,EADhC;AAEC,MAAA,OAAO,EAAG,MACTN,YAAY,CACXP,QADW,EAEXZ,iBAAiB,CAChBa,QAAQ,CAAED,QAAF,CADQ,EAEhBW,IAAI,CAACE,IAFW,CAFN,CAHd;AAWC,MAAA,SAAS,EAAC;AAXX,OAaC,cAAC,SAAD;AAAW,MAAA,IAAI,EAAGF,IAAI,CAACK;AAAvB,MAbD,EAcGL,IAAI,CAACM,KAdR,CADD;AAkBA,GAnBC,CADH,CAJD,CADD;AA6BA;;AAED,OAAO,SAASC,MAAT,CAAiBC,KAAjB,EAAyB;AAC/B,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,GAAT;AAAcC,IAAAA,aAAd;AAA6B1B,IAAAA,IAA7B;AAAmCC,IAAAA;AAAnC,MAA4CsB,KAAK,CAACI,IAAxD;AACA,QAAMA,IAAI,GAAG;AACZF,IAAAA,GADY;AAEZC,IAAAA,aAFY;AAGZL,IAAAA,KAAK,EAAEG,KAAK,IAAIpC,SAAS,CAAEoC,KAAF;AAHb,GAAb;AAMA,SACC,cAAC,OAAD;AACC,IAAA,SAAS,EAAC,QADX;AAEC,IAAA,OAAO,EAAGD,KAAK,CAACK,OAFjB;AAGC,IAAA,MAAM,EAAGL,KAAK,CAACM,MAHhB;AAIC,IAAA,KAAK;AAJN,KAMC,cAAC,WAAD;AACC,IAAA,cAAc,MADf;AAEC,IAAA,eAAe,MAFhB;AAGC,IAAA,SAAS,EAAGN,KAAK,CAACO,SAHnB;AAIC,IAAA,KAAK,EAAGH,IAJT;AAKC,IAAA,sBAAsB,EAAG,IAL1B;AAMC,IAAA,oBAAoB,EAAGJ,KAAK,CAACQ,mBAN9B;AAOC,IAAA,aAAa,EAAG,CAAC,CAAE/B,IAPpB;AAQC,IAAA,eAAe,EAAG,CAAC,CAAEA,IARtB;AASC,IAAA,gBAAgB,EAAGD,mBAAmB,CAAEC,IAAF,EAAQC,IAAR,CATvC;AAUC,IAAA,QAAQ,EAAGsB,KAAK,CAACS,QAVlB;AAWC,IAAA,QAAQ,EAAGT,KAAK,CAACU,QAXlB;AAYC,IAAA,mBAAmB,EAClB,CAAER,GAAF,GACG,MACA,cAAC,qBAAD;AACC,MAAA,QAAQ,EAAGF,KAAK,CAACnB;AADlB,MAFH,GAMG;AAnBL,IAND,CADD;AA+BA","sourcesContent":["// Note: this file is copied directly from packages/block-library/src/navigation-link/link-ui.js\n\n/**\n * WordPress dependencies\n */\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { Popover, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { switchToBlockType } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport LinkControl from '../link-control';\nimport BlockIcon from '../block-icon';\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nexport function getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {};\n\t}\n}\n\n/**\n * Add transforms to Link Control\n *\n * @param {Object} props Component props.\n * @param {string} props.clientId Block client ID.\n */\nfunction LinkControlTransforms( { clientId } ) {\n\tconst { getBlock, blockTransforms } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tblockTransforms: getBlockTransformItems(\n\t\t\t\t\t_getBlock( clientId ),\n\t\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tconst featuredBlocks = [\n\t\t'core/page-list',\n\t\t'core/site-logo',\n\t\t'core/social-links',\n\t\t'core/search',\n\t];\n\n\tconst transforms = blockTransforms.filter( ( item ) => {\n\t\treturn featuredBlocks.includes( item.name );\n\t} );\n\n\tif ( ! transforms?.length ) {\n\t\treturn null;\n\t}\n\n\tif ( ! clientId ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"link-control-transform\">\n\t\t\t<h3 className=\"link-control-transform__subheading\">\n\t\t\t\t{ __( 'Transform' ) }\n\t\t\t</h3>\n\t\t\t<div className=\"link-control-transform__items\">\n\t\t\t\t{ transforms.map( ( item ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ `transform-${ item.name }` }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\treplaceBlock(\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\tswitchToBlockType(\n\t\t\t\t\t\t\t\t\t\tgetBlock( clientId ),\n\t\t\t\t\t\t\t\t\t\titem.name\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}\n\t\t\t\t\t\t\tclassName=\"link-control-transform__item\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockIcon icon={ item.icon } />\n\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport function LinkUI( props ) {\n\tconst { label, url, opensInNewTab, type, kind } = props.link;\n\tconst link = {\n\t\turl,\n\t\topensInNewTab,\n\t\ttitle: label && stripHTML( label ),\n\t};\n\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"bottom\"\n\t\t\tonClose={ props.onClose }\n\t\t\tanchor={ props.anchor }\n\t\t\tshift\n\t\t>\n\t\t\t<LinkControl\n\t\t\t\thasTextControl\n\t\t\t\thasRichPreviews\n\t\t\t\tclassName={ props.className }\n\t\t\t\tvalue={ link }\n\t\t\t\tshowInitialSuggestions={ true }\n\t\t\t\twithCreateSuggestion={ props.hasCreateSuggestion }\n\t\t\t\tnoDirectEntry={ !! type }\n\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\tsuggestionsQuery={ getSuggestionsQuery( type, kind ) }\n\t\t\t\tonChange={ props.onChange }\n\t\t\t\tonRemove={ props.onRemove }\n\t\t\t\trenderControlBottom={\n\t\t\t\t\t! url\n\t\t\t\t\t\t? () => (\n\t\t\t\t\t\t\t\t<LinkControlTransforms\n\t\t\t\t\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: null\n\t\t\t\t}\n\t\t\t/>\n\t\t</Popover>\n\t);\n}\n"]}
@@ -69,7 +69,7 @@ const ALLOWED_DROP_EDGES = ['top', 'bottom'];
69
69
  * @param {WPListViewDropZoneBlocks} blocksData Data about the blocks in list view.
70
70
  * @param {WPPoint} position The point representing the cursor position when dragging.
71
71
  *
72
- * @return {WPListViewDropZoneTarget} An object containing data about the drop target.
72
+ * @return {WPListViewDropZoneTarget | undefined} An object containing data about the drop target.
73
73
  */
74
74
 
75
75
  function getListViewDropTarget(blocksData, position) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/use-list-view-drop-zone.js"],"names":["useSelect","useState","useCallback","useThrottle","__experimentalUseDropZone","useDropZone","getDistanceToNearestEdge","isPointContainedByRect","useOnBlockDrop","store","blockEditorStore","isNestingGesture","point","rect","blockCenterX","left","width","x","ALLOWED_DROP_EDGES","getListViewDropTarget","blocksData","position","candidateEdge","candidateBlockData","candidateDistance","candidateRect","blockData","isDraggedBlock","element","getBoundingClientRect","distance","edge","isCursorWithinBlock","undefined","index","indexOf","previousBlockData","rootClientId","isDraggingBelow","canInsertDraggedBlocksAsChild","innerBlockCount","clientId","blockIndex","dropPosition","canInsertDraggedBlocksAsSibling","offset","useListViewDropZone","getBlockRootClientId","getBlockIndex","getBlockCount","getDraggedBlockClientIds","canInsertBlocks","target","setTarget","targetRootClientId","targetBlockIndex","onBlockDrop","draggedBlockClientIds","throttled","event","currentTarget","clientX","y","clientY","isBlockDrag","length","blockElements","Array","from","querySelectorAll","map","blockElement","dataset","block","includes","newTarget","ref","onDrop","onDragOver","onDragEnd","cancel"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useState, useCallback } from '@wordpress/element';\nimport {\n\tuseThrottle,\n\t__experimentalUseDropZone as useDropZone,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetDistanceToNearestEdge,\n\tisPointContainedByRect,\n} from '../../utils/math';\nimport useOnBlockDrop from '../use-on-block-drop';\nimport { store as blockEditorStore } from '../../store';\n\n/** @typedef {import('../../utils/math').WPPoint} WPPoint */\n\n/**\n * The type of a drag event.\n *\n * @typedef {'default'|'file'|'html'} WPDragEventType\n */\n\n/**\n * An array representing data for blocks in the DOM used by drag and drop.\n *\n * @typedef {Object} WPListViewDropZoneBlocks\n * @property {string} clientId The client id for the block.\n * @property {string} rootClientId The root client id for the block.\n * @property {number} blockIndex The block's index.\n * @property {Element} element The DOM element representing the block.\n * @property {number} innerBlockCount The number of inner blocks the block has.\n * @property {boolean} isDraggedBlock Whether the block is currently being dragged.\n * @property {boolean} canInsertDraggedBlocksAsSibling Whether the dragged block can be a sibling of this block.\n * @property {boolean} canInsertDraggedBlocksAsChild Whether the dragged block can be a child of this block.\n */\n\n/**\n * An object containing details of a drop target.\n *\n * @typedef {Object} WPListViewDropZoneTarget\n * @property {string} blockIndex The insertion index.\n * @property {string} rootClientId The root client id for the block.\n * @property {string|undefined} clientId The client id for the block.\n * @property {'top'|'bottom'|'inside'} dropPosition The position relative to the block that the user is dropping to.\n * 'inside' refers to nesting as an inner block.\n */\n\n/**\n * Determines whether the user positioning the dragged block to nest as an\n * inner block.\n *\n * Presently this is determined by whether the cursor is on the right hand side\n * of the block.\n *\n * @param {WPPoint} point The point representing the cursor position when dragging.\n * @param {DOMRect} rect The rectangle.\n */\nfunction isNestingGesture( point, rect ) {\n\tconst blockCenterX = rect.left + rect.width / 2;\n\treturn point.x > blockCenterX;\n}\n\n// Block navigation is always a vertical list, so only allow dropping\n// to the above or below a block.\nconst ALLOWED_DROP_EDGES = [ 'top', 'bottom' ];\n\n/**\n * Given blocks data and the cursor position, compute the drop target.\n *\n * @param {WPListViewDropZoneBlocks} blocksData Data about the blocks in list view.\n * @param {WPPoint} position The point representing the cursor position when dragging.\n *\n * @return {WPListViewDropZoneTarget} An object containing data about the drop target.\n */\nfunction getListViewDropTarget( blocksData, position ) {\n\tlet candidateEdge;\n\tlet candidateBlockData;\n\tlet candidateDistance;\n\tlet candidateRect;\n\n\tfor ( const blockData of blocksData ) {\n\t\tif ( blockData.isDraggedBlock ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst rect = blockData.element.getBoundingClientRect();\n\t\tconst [ distance, edge ] = getDistanceToNearestEdge(\n\t\t\tposition,\n\t\t\trect,\n\t\t\tALLOWED_DROP_EDGES\n\t\t);\n\n\t\tconst isCursorWithinBlock = isPointContainedByRect( position, rect );\n\t\tif (\n\t\t\tcandidateDistance === undefined ||\n\t\t\tdistance < candidateDistance ||\n\t\t\tisCursorWithinBlock\n\t\t) {\n\t\t\tcandidateDistance = distance;\n\n\t\t\tconst index = blocksData.indexOf( blockData );\n\t\t\tconst previousBlockData = blocksData[ index - 1 ];\n\n\t\t\t// If dragging near the top of a block and the preceding block\n\t\t\t// is at the same level, use the preceding block as the candidate\n\t\t\t// instead, as later it makes determining a nesting drop easier.\n\t\t\tif (\n\t\t\t\tedge === 'top' &&\n\t\t\t\tpreviousBlockData &&\n\t\t\t\tpreviousBlockData.rootClientId === blockData.rootClientId &&\n\t\t\t\t! previousBlockData.isDraggedBlock\n\t\t\t) {\n\t\t\t\tcandidateBlockData = previousBlockData;\n\t\t\t\tcandidateEdge = 'bottom';\n\t\t\t\tcandidateRect =\n\t\t\t\t\tpreviousBlockData.element.getBoundingClientRect();\n\t\t\t} else {\n\t\t\t\tcandidateBlockData = blockData;\n\t\t\t\tcandidateEdge = edge;\n\t\t\t\tcandidateRect = rect;\n\t\t\t}\n\n\t\t\t// If the mouse position is within the block, break early\n\t\t\t// as the user would intend to drop either before or after\n\t\t\t// this block.\n\t\t\t//\n\t\t\t// This solves an issue where some rows in the list view\n\t\t\t// tree overlap slightly due to sub-pixel rendering.\n\t\t\tif ( isCursorWithinBlock ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( ! candidateBlockData ) {\n\t\treturn;\n\t}\n\n\tconst isDraggingBelow = candidateEdge === 'bottom';\n\n\t// If the user is dragging towards the bottom of the block check whether\n\t// they might be trying to nest the block as a child.\n\t// If the block already has inner blocks, this should always be treated\n\t// as nesting since the next block in the tree will be the first child.\n\tif (\n\t\tisDraggingBelow &&\n\t\tcandidateBlockData.canInsertDraggedBlocksAsChild &&\n\t\t( candidateBlockData.innerBlockCount > 0 ||\n\t\t\tisNestingGesture( position, candidateRect ) )\n\t) {\n\t\treturn {\n\t\t\trootClientId: candidateBlockData.clientId,\n\t\t\tblockIndex: 0,\n\t\t\tdropPosition: 'inside',\n\t\t};\n\t}\n\n\t// If dropping as a sibling, but block cannot be inserted in\n\t// this context, return early.\n\tif ( ! candidateBlockData.canInsertDraggedBlocksAsSibling ) {\n\t\treturn;\n\t}\n\n\tconst offset = isDraggingBelow ? 1 : 0;\n\treturn {\n\t\trootClientId: candidateBlockData.rootClientId,\n\t\tclientId: candidateBlockData.clientId,\n\t\tblockIndex: candidateBlockData.blockIndex + offset,\n\t\tdropPosition: candidateEdge,\n\t};\n}\n\n/**\n * A react hook for implementing a drop zone in list view.\n *\n * @return {WPListViewDropZoneTarget} The drop target.\n */\nexport default function useListViewDropZone() {\n\tconst {\n\t\tgetBlockRootClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockCount,\n\t\tgetDraggedBlockClientIds,\n\t\tcanInsertBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst [ target, setTarget ] = useState();\n\tconst { rootClientId: targetRootClientId, blockIndex: targetBlockIndex } =\n\t\ttarget || {};\n\n\tconst onBlockDrop = useOnBlockDrop( targetRootClientId, targetBlockIndex );\n\n\tconst draggedBlockClientIds = getDraggedBlockClientIds();\n\tconst throttled = useThrottle(\n\t\tuseCallback(\n\t\t\t( event, currentTarget ) => {\n\t\t\t\tconst position = { x: event.clientX, y: event.clientY };\n\t\t\t\tconst isBlockDrag = !! draggedBlockClientIds?.length;\n\n\t\t\t\tconst blockElements = Array.from(\n\t\t\t\t\tcurrentTarget.querySelectorAll( '[data-block]' )\n\t\t\t\t);\n\n\t\t\t\tconst blocksData = blockElements.map( ( blockElement ) => {\n\t\t\t\t\tconst clientId = blockElement.dataset.block;\n\t\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\tblockIndex: getBlockIndex( clientId ),\n\t\t\t\t\t\telement: blockElement,\n\t\t\t\t\t\tisDraggedBlock: isBlockDrag\n\t\t\t\t\t\t\t? draggedBlockClientIds.includes( clientId )\n\t\t\t\t\t\t\t: false,\n\t\t\t\t\t\tinnerBlockCount: getBlockCount( clientId ),\n\t\t\t\t\t\tcanInsertDraggedBlocksAsSibling: isBlockDrag\n\t\t\t\t\t\t\t? canInsertBlocks(\n\t\t\t\t\t\t\t\t\tdraggedBlockClientIds,\n\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: true,\n\t\t\t\t\t\tcanInsertDraggedBlocksAsChild: isBlockDrag\n\t\t\t\t\t\t\t? canInsertBlocks( draggedBlockClientIds, clientId )\n\t\t\t\t\t\t\t: true,\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\t\tconst newTarget = getListViewDropTarget( blocksData, position );\n\n\t\t\t\tif ( newTarget ) {\n\t\t\t\t\tsetTarget( newTarget );\n\t\t\t\t}\n\t\t\t},\n\t\t\t[ draggedBlockClientIds ]\n\t\t),\n\t\t200\n\t);\n\n\tconst ref = useDropZone( {\n\t\tonDrop: onBlockDrop,\n\t\tonDragOver( event ) {\n\t\t\t// `currentTarget` is only available while the event is being\n\t\t\t// handled, so get it now and pass it to the thottled function.\n\t\t\t// https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget\n\t\t\tthrottled( event, event.currentTarget );\n\t\t},\n\t\tonDragEnd() {\n\t\t\tthrottled.cancel();\n\t\t\tsetTarget( null );\n\t\t},\n\t} );\n\n\treturn { ref, target };\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/use-list-view-drop-zone.js"],"names":["useSelect","useState","useCallback","useThrottle","__experimentalUseDropZone","useDropZone","getDistanceToNearestEdge","isPointContainedByRect","useOnBlockDrop","store","blockEditorStore","isNestingGesture","point","rect","blockCenterX","left","width","x","ALLOWED_DROP_EDGES","getListViewDropTarget","blocksData","position","candidateEdge","candidateBlockData","candidateDistance","candidateRect","blockData","isDraggedBlock","element","getBoundingClientRect","distance","edge","isCursorWithinBlock","undefined","index","indexOf","previousBlockData","rootClientId","isDraggingBelow","canInsertDraggedBlocksAsChild","innerBlockCount","clientId","blockIndex","dropPosition","canInsertDraggedBlocksAsSibling","offset","useListViewDropZone","getBlockRootClientId","getBlockIndex","getBlockCount","getDraggedBlockClientIds","canInsertBlocks","target","setTarget","targetRootClientId","targetBlockIndex","onBlockDrop","draggedBlockClientIds","throttled","event","currentTarget","clientX","y","clientY","isBlockDrag","length","blockElements","Array","from","querySelectorAll","map","blockElement","dataset","block","includes","newTarget","ref","onDrop","onDragOver","onDragEnd","cancel"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useState, useCallback } from '@wordpress/element';\nimport {\n\tuseThrottle,\n\t__experimentalUseDropZone as useDropZone,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetDistanceToNearestEdge,\n\tisPointContainedByRect,\n} from '../../utils/math';\nimport useOnBlockDrop from '../use-on-block-drop';\nimport { store as blockEditorStore } from '../../store';\n\n/** @typedef {import('../../utils/math').WPPoint} WPPoint */\n\n/**\n * The type of a drag event.\n *\n * @typedef {'default'|'file'|'html'} WPDragEventType\n */\n\n/**\n * An array representing data for blocks in the DOM used by drag and drop.\n *\n * @typedef {Object} WPListViewDropZoneBlocks\n * @property {string} clientId The client id for the block.\n * @property {string} rootClientId The root client id for the block.\n * @property {number} blockIndex The block's index.\n * @property {Element} element The DOM element representing the block.\n * @property {number} innerBlockCount The number of inner blocks the block has.\n * @property {boolean} isDraggedBlock Whether the block is currently being dragged.\n * @property {boolean} canInsertDraggedBlocksAsSibling Whether the dragged block can be a sibling of this block.\n * @property {boolean} canInsertDraggedBlocksAsChild Whether the dragged block can be a child of this block.\n */\n\n/**\n * An object containing details of a drop target.\n *\n * @typedef {Object} WPListViewDropZoneTarget\n * @property {string} blockIndex The insertion index.\n * @property {string} rootClientId The root client id for the block.\n * @property {string|undefined} clientId The client id for the block.\n * @property {'top'|'bottom'|'inside'} dropPosition The position relative to the block that the user is dropping to.\n * 'inside' refers to nesting as an inner block.\n */\n\n/**\n * Determines whether the user positioning the dragged block to nest as an\n * inner block.\n *\n * Presently this is determined by whether the cursor is on the right hand side\n * of the block.\n *\n * @param {WPPoint} point The point representing the cursor position when dragging.\n * @param {DOMRect} rect The rectangle.\n */\nfunction isNestingGesture( point, rect ) {\n\tconst blockCenterX = rect.left + rect.width / 2;\n\treturn point.x > blockCenterX;\n}\n\n// Block navigation is always a vertical list, so only allow dropping\n// to the above or below a block.\nconst ALLOWED_DROP_EDGES = [ 'top', 'bottom' ];\n\n/**\n * Given blocks data and the cursor position, compute the drop target.\n *\n * @param {WPListViewDropZoneBlocks} blocksData Data about the blocks in list view.\n * @param {WPPoint} position The point representing the cursor position when dragging.\n *\n * @return {WPListViewDropZoneTarget | undefined} An object containing data about the drop target.\n */\nfunction getListViewDropTarget( blocksData, position ) {\n\tlet candidateEdge;\n\tlet candidateBlockData;\n\tlet candidateDistance;\n\tlet candidateRect;\n\n\tfor ( const blockData of blocksData ) {\n\t\tif ( blockData.isDraggedBlock ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst rect = blockData.element.getBoundingClientRect();\n\t\tconst [ distance, edge ] = getDistanceToNearestEdge(\n\t\t\tposition,\n\t\t\trect,\n\t\t\tALLOWED_DROP_EDGES\n\t\t);\n\n\t\tconst isCursorWithinBlock = isPointContainedByRect( position, rect );\n\t\tif (\n\t\t\tcandidateDistance === undefined ||\n\t\t\tdistance < candidateDistance ||\n\t\t\tisCursorWithinBlock\n\t\t) {\n\t\t\tcandidateDistance = distance;\n\n\t\t\tconst index = blocksData.indexOf( blockData );\n\t\t\tconst previousBlockData = blocksData[ index - 1 ];\n\n\t\t\t// If dragging near the top of a block and the preceding block\n\t\t\t// is at the same level, use the preceding block as the candidate\n\t\t\t// instead, as later it makes determining a nesting drop easier.\n\t\t\tif (\n\t\t\t\tedge === 'top' &&\n\t\t\t\tpreviousBlockData &&\n\t\t\t\tpreviousBlockData.rootClientId === blockData.rootClientId &&\n\t\t\t\t! previousBlockData.isDraggedBlock\n\t\t\t) {\n\t\t\t\tcandidateBlockData = previousBlockData;\n\t\t\t\tcandidateEdge = 'bottom';\n\t\t\t\tcandidateRect =\n\t\t\t\t\tpreviousBlockData.element.getBoundingClientRect();\n\t\t\t} else {\n\t\t\t\tcandidateBlockData = blockData;\n\t\t\t\tcandidateEdge = edge;\n\t\t\t\tcandidateRect = rect;\n\t\t\t}\n\n\t\t\t// If the mouse position is within the block, break early\n\t\t\t// as the user would intend to drop either before or after\n\t\t\t// this block.\n\t\t\t//\n\t\t\t// This solves an issue where some rows in the list view\n\t\t\t// tree overlap slightly due to sub-pixel rendering.\n\t\t\tif ( isCursorWithinBlock ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( ! candidateBlockData ) {\n\t\treturn;\n\t}\n\n\tconst isDraggingBelow = candidateEdge === 'bottom';\n\n\t// If the user is dragging towards the bottom of the block check whether\n\t// they might be trying to nest the block as a child.\n\t// If the block already has inner blocks, this should always be treated\n\t// as nesting since the next block in the tree will be the first child.\n\tif (\n\t\tisDraggingBelow &&\n\t\tcandidateBlockData.canInsertDraggedBlocksAsChild &&\n\t\t( candidateBlockData.innerBlockCount > 0 ||\n\t\t\tisNestingGesture( position, candidateRect ) )\n\t) {\n\t\treturn {\n\t\t\trootClientId: candidateBlockData.clientId,\n\t\t\tblockIndex: 0,\n\t\t\tdropPosition: 'inside',\n\t\t};\n\t}\n\n\t// If dropping as a sibling, but block cannot be inserted in\n\t// this context, return early.\n\tif ( ! candidateBlockData.canInsertDraggedBlocksAsSibling ) {\n\t\treturn;\n\t}\n\n\tconst offset = isDraggingBelow ? 1 : 0;\n\treturn {\n\t\trootClientId: candidateBlockData.rootClientId,\n\t\tclientId: candidateBlockData.clientId,\n\t\tblockIndex: candidateBlockData.blockIndex + offset,\n\t\tdropPosition: candidateEdge,\n\t};\n}\n\n/**\n * A react hook for implementing a drop zone in list view.\n *\n * @return {WPListViewDropZoneTarget} The drop target.\n */\nexport default function useListViewDropZone() {\n\tconst {\n\t\tgetBlockRootClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockCount,\n\t\tgetDraggedBlockClientIds,\n\t\tcanInsertBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst [ target, setTarget ] = useState();\n\tconst { rootClientId: targetRootClientId, blockIndex: targetBlockIndex } =\n\t\ttarget || {};\n\n\tconst onBlockDrop = useOnBlockDrop( targetRootClientId, targetBlockIndex );\n\n\tconst draggedBlockClientIds = getDraggedBlockClientIds();\n\tconst throttled = useThrottle(\n\t\tuseCallback(\n\t\t\t( event, currentTarget ) => {\n\t\t\t\tconst position = { x: event.clientX, y: event.clientY };\n\t\t\t\tconst isBlockDrag = !! draggedBlockClientIds?.length;\n\n\t\t\t\tconst blockElements = Array.from(\n\t\t\t\t\tcurrentTarget.querySelectorAll( '[data-block]' )\n\t\t\t\t);\n\n\t\t\t\tconst blocksData = blockElements.map( ( blockElement ) => {\n\t\t\t\t\tconst clientId = blockElement.dataset.block;\n\t\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\tblockIndex: getBlockIndex( clientId ),\n\t\t\t\t\t\telement: blockElement,\n\t\t\t\t\t\tisDraggedBlock: isBlockDrag\n\t\t\t\t\t\t\t? draggedBlockClientIds.includes( clientId )\n\t\t\t\t\t\t\t: false,\n\t\t\t\t\t\tinnerBlockCount: getBlockCount( clientId ),\n\t\t\t\t\t\tcanInsertDraggedBlocksAsSibling: isBlockDrag\n\t\t\t\t\t\t\t? canInsertBlocks(\n\t\t\t\t\t\t\t\t\tdraggedBlockClientIds,\n\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: true,\n\t\t\t\t\t\tcanInsertDraggedBlocksAsChild: isBlockDrag\n\t\t\t\t\t\t\t? canInsertBlocks( draggedBlockClientIds, clientId )\n\t\t\t\t\t\t\t: true,\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\t\tconst newTarget = getListViewDropTarget( blocksData, position );\n\n\t\t\t\tif ( newTarget ) {\n\t\t\t\t\tsetTarget( newTarget );\n\t\t\t\t}\n\t\t\t},\n\t\t\t[ draggedBlockClientIds ]\n\t\t),\n\t\t200\n\t);\n\n\tconst ref = useDropZone( {\n\t\tonDrop: onBlockDrop,\n\t\tonDragOver( event ) {\n\t\t\t// `currentTarget` is only available while the event is being\n\t\t\t// handled, so get it now and pass it to the thottled function.\n\t\t\t// https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget\n\t\t\tthrottled( event, event.currentTarget );\n\t\t},\n\t\tonDragEnd() {\n\t\t\tthrottled.cancel();\n\t\t\tsetTarget( null );\n\t\t},\n\t} );\n\n\treturn { ref, target };\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
1
2
  import { createElement } from "@wordpress/element";
2
3
 
3
4
  /**
@@ -13,25 +14,31 @@ import withRegistryProvider from './with-registry-provider';
13
14
  import useBlockSync from './use-block-sync';
14
15
  import { store as blockEditorStore } from '../../store';
15
16
  import { BlockRefsProvider } from './block-refs-provider';
17
+ import { unlock } from '../../experiments';
16
18
  /** @typedef {import('@wordpress/data').WPDataRegistry} WPDataRegistry */
17
19
 
18
- function BlockEditorProvider(props) {
20
+ export const ExperimentalBlockEditorProvider = withRegistryProvider(props => {
19
21
  const {
20
22
  children,
21
- settings
23
+ settings,
24
+ stripExperimentalSettings = false
22
25
  } = props;
23
26
  const {
24
- updateSettings
25
- } = useDispatch(blockEditorStore);
27
+ __experimentalUpdateSettings
28
+ } = unlock(useDispatch(blockEditorStore));
26
29
  useEffect(() => {
27
- updateSettings({ ...settings,
30
+ __experimentalUpdateSettings({ ...settings,
28
31
  __internalIsInitialized: true
29
- });
32
+ }, stripExperimentalSettings);
30
33
  }, [settings]); // Syncs the entity provider with changes in the block-editor store.
31
34
 
32
35
  useBlockSync(props);
33
36
  return createElement(BlockRefsProvider, null, children);
34
- }
35
-
36
- export default withRegistryProvider(BlockEditorProvider);
37
+ });
38
+ export const BlockEditorProvider = props => {
39
+ return createElement(ExperimentalBlockEditorProvider, _extends({}, props, {
40
+ stripExperimentalSettings: true
41
+ }), props.children);
42
+ };
43
+ export default BlockEditorProvider;
37
44
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/provider/index.js"],"names":["useDispatch","useEffect","withRegistryProvider","useBlockSync","store","blockEditorStore","BlockRefsProvider","BlockEditorProvider","props","children","settings","updateSettings","__internalIsInitialized"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,WAAT,QAA4B,iBAA5B;AACA,SAASC,SAAT,QAA0B,oBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,0BAAjC;AACA,OAAOC,YAAP,MAAyB,kBAAzB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,iBAAT,QAAkC,uBAAlC;AAEA;;AAEA,SAASC,mBAAT,CAA8BC,KAA9B,EAAsC;AACrC,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAAyBF,KAA/B;AAEA,QAAM;AAAEG,IAAAA;AAAF,MAAqBX,WAAW,CAAEK,gBAAF,CAAtC;AACAJ,EAAAA,SAAS,CAAE,MAAM;AAChBU,IAAAA,cAAc,CAAE,EACf,GAAGD,QADY;AAEfE,MAAAA,uBAAuB,EAAE;AAFV,KAAF,CAAd;AAIA,GALQ,EAKN,CAAEF,QAAF,CALM,CAAT,CAJqC,CAWrC;;AACAP,EAAAA,YAAY,CAAEK,KAAF,CAAZ;AAEA,SAAO,cAAC,iBAAD,QAAqBC,QAArB,CAAP;AACA;;AAED,eAAeP,oBAAoB,CAAEK,mBAAF,CAAnC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport useBlockSync from './use-block-sync';\nimport { store as blockEditorStore } from '../../store';\nimport { BlockRefsProvider } from './block-refs-provider';\n\n/** @typedef {import('@wordpress/data').WPDataRegistry} WPDataRegistry */\n\nfunction BlockEditorProvider( props ) {\n\tconst { children, settings } = props;\n\n\tconst { updateSettings } = useDispatch( blockEditorStore );\n\tuseEffect( () => {\n\t\tupdateSettings( {\n\t\t\t...settings,\n\t\t\t__internalIsInitialized: true,\n\t\t} );\n\t}, [ settings ] );\n\n\t// Syncs the entity provider with changes in the block-editor store.\n\tuseBlockSync( props );\n\n\treturn <BlockRefsProvider>{ children }</BlockRefsProvider>;\n}\n\nexport default withRegistryProvider( BlockEditorProvider );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/provider/index.js"],"names":["useDispatch","useEffect","withRegistryProvider","useBlockSync","store","blockEditorStore","BlockRefsProvider","unlock","ExperimentalBlockEditorProvider","props","children","settings","stripExperimentalSettings","__experimentalUpdateSettings","__internalIsInitialized","BlockEditorProvider"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,WAAT,QAA4B,iBAA5B;AACA,SAASC,SAAT,QAA0B,oBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,0BAAjC;AACA,OAAOC,YAAP,MAAyB,kBAAzB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,iBAAT,QAAkC,uBAAlC;AACA,SAASC,MAAT,QAAuB,mBAAvB;AAEA;;AAEA,OAAO,MAAMC,+BAA+B,GAAGN,oBAAoB,CAChEO,KAAF,IAAa;AACZ,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,QAAZ;AAAsBC,IAAAA,yBAAyB,GAAG;AAAlD,MAA4DH,KAAlE;AAEA,QAAM;AAAEI,IAAAA;AAAF,MAAmCN,MAAM,CAC9CP,WAAW,CAAEK,gBAAF,CADmC,CAA/C;AAGAJ,EAAAA,SAAS,CAAE,MAAM;AAChBY,IAAAA,4BAA4B,CAC3B,EACC,GAAGF,QADJ;AAECG,MAAAA,uBAAuB,EAAE;AAF1B,KAD2B,EAK3BF,yBAL2B,CAA5B;AAOA,GARQ,EAQN,CAAED,QAAF,CARM,CAAT,CANY,CAgBZ;;AACAR,EAAAA,YAAY,CAAEM,KAAF,CAAZ;AAEA,SAAO,cAAC,iBAAD,QAAqBC,QAArB,CAAP;AACA,CArBiE,CAA5D;AAwBP,OAAO,MAAMK,mBAAmB,GAAKN,KAAF,IAAa;AAC/C,SACC,cAAC,+BAAD,eACMA,KADN;AAEC,IAAA,yBAAyB,EAAG;AAF7B,MAIGA,KAAK,CAACC,QAJT,CADD;AAQA,CATM;AAWP,eAAeK,mBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport useBlockSync from './use-block-sync';\nimport { store as blockEditorStore } from '../../store';\nimport { BlockRefsProvider } from './block-refs-provider';\nimport { unlock } from '../../experiments';\n\n/** @typedef {import('@wordpress/data').WPDataRegistry} WPDataRegistry */\n\nexport const ExperimentalBlockEditorProvider = withRegistryProvider(\n\t( props ) => {\n\t\tconst { children, settings, stripExperimentalSettings = false } = props;\n\n\t\tconst { __experimentalUpdateSettings } = unlock(\n\t\t\tuseDispatch( blockEditorStore )\n\t\t);\n\t\tuseEffect( () => {\n\t\t\t__experimentalUpdateSettings(\n\t\t\t\t{\n\t\t\t\t\t...settings,\n\t\t\t\t\t__internalIsInitialized: true,\n\t\t\t\t},\n\t\t\t\tstripExperimentalSettings\n\t\t\t);\n\t\t}, [ settings ] );\n\n\t\t// Syncs the entity provider with changes in the block-editor store.\n\t\tuseBlockSync( props );\n\n\t\treturn <BlockRefsProvider>{ children }</BlockRefsProvider>;\n\t}\n);\n\nexport const BlockEditorProvider = ( props ) => {\n\treturn (\n\t\t<ExperimentalBlockEditorProvider\n\t\t\t{ ...props }\n\t\t\tstripExperimentalSettings={ true }\n\t\t>\n\t\t\t{ props.children }\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n};\n\nexport default BlockEditorProvider;\n"]}