@wordpress/block-editor 12.1.0 → 12.2.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 (391) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/autocompleters/block.js +13 -5
  3. package/build/autocompleters/block.js.map +1 -1
  4. package/build/components/block-breadcrumb/index.js +6 -3
  5. package/build/components/block-breadcrumb/index.js.map +1 -1
  6. package/build/components/block-editing-mode/index.js +84 -0
  7. package/build/components/block-editing-mode/index.js.map +1 -0
  8. package/build/components/block-list/block-list-block-context.js +15 -0
  9. package/build/components/block-list/block-list-block-context.js.map +1 -0
  10. package/build/components/block-list/block.js +29 -37
  11. package/build/components/block-list/block.js.map +1 -1
  12. package/build/components/block-list/block.native.js +14 -22
  13. package/build/components/block-list/block.native.js.map +1 -1
  14. package/build/components/block-list/index.native.js +107 -108
  15. package/build/components/block-list/index.native.js.map +1 -1
  16. package/build/components/block-list/use-block-props/index.js +2 -2
  17. package/build/components/block-list/use-block-props/index.js.map +1 -1
  18. package/build/components/block-list/use-in-between-inserter.js +7 -5
  19. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  20. package/build/components/block-list-appender/index.js +15 -1
  21. package/build/components/block-list-appender/index.js.map +1 -1
  22. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +19 -4
  23. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  24. package/build/components/block-styles/preview-panel.js +1 -2
  25. package/build/components/block-styles/preview-panel.js.map +1 -1
  26. package/build/components/block-switcher/block-transformations-menu.js +8 -0
  27. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  28. package/build/components/block-switcher/block-variation-transformations.js +125 -0
  29. package/build/components/block-switcher/block-variation-transformations.js.map +1 -0
  30. package/build/components/block-switcher/index.js +34 -12
  31. package/build/components/block-switcher/index.js.map +1 -1
  32. package/build/components/block-switcher/pattern-transformations-menu.js +3 -3
  33. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  34. package/build/components/block-toolbar/index.js +9 -7
  35. package/build/components/block-toolbar/index.js.map +1 -1
  36. package/build/components/block-tools/block-contextual-toolbar.js +5 -3
  37. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  38. package/build/components/block-tools/insertion-point.js +11 -5
  39. package/build/components/block-tools/insertion-point.js.map +1 -1
  40. package/build/components/convert-to-group-buttons/index.js +7 -2
  41. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  42. package/build/components/convert-to-group-buttons/index.native.js +87 -3
  43. package/build/components/convert-to-group-buttons/index.native.js.map +1 -1
  44. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +23 -37
  45. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  46. package/build/components/global-styles/dimensions-panel.js +3 -2
  47. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  48. package/build/components/iframe/index.js +14 -7
  49. package/build/components/iframe/index.js.map +1 -1
  50. package/build/components/inner-blocks/index.js +2 -1
  51. package/build/components/inner-blocks/index.js.map +1 -1
  52. package/build/components/inner-blocks/index.native.js +7 -7
  53. package/build/components/inner-blocks/index.native.js.map +1 -1
  54. package/build/components/inner-blocks/use-nested-settings-update.js +13 -5
  55. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  56. package/build/components/inserter/index.js +3 -7
  57. package/build/components/inserter/index.js.map +1 -1
  58. package/build/components/inserter/quick-inserter.js +2 -4
  59. package/build/components/inserter/quick-inserter.js.map +1 -1
  60. package/build/components/inserter/search-results.js +19 -6
  61. package/build/components/inserter/search-results.js.map +1 -1
  62. package/build/components/list-view/appender.js +6 -1
  63. package/build/components/list-view/appender.js.map +1 -1
  64. package/build/components/list-view/block-contents.js +4 -2
  65. package/build/components/list-view/block-contents.js.map +1 -1
  66. package/build/components/list-view/block.js +21 -25
  67. package/build/components/list-view/block.js.map +1 -1
  68. package/build/components/list-view/branch.js +1 -3
  69. package/build/components/list-view/branch.js.map +1 -1
  70. package/build/components/list-view/index.js +14 -7
  71. package/build/components/list-view/index.js.map +1 -1
  72. package/build/components/list-view/use-list-view-client-ids.js +27 -3
  73. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  74. package/build/components/publish-date-time-picker/index.js +0 -2
  75. package/build/components/publish-date-time-picker/index.js.map +1 -1
  76. package/build/components/url-input/index.js +3 -0
  77. package/build/components/url-input/index.js.map +1 -1
  78. package/build/components/use-block-drop-zone/index.js +25 -15
  79. package/build/components/use-block-drop-zone/index.js.map +1 -1
  80. package/build/components/use-resize-canvas/index.js +8 -1
  81. package/build/components/use-resize-canvas/index.js.map +1 -1
  82. package/build/components/writing-flow/use-arrow-nav.js +13 -7
  83. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  84. package/build/hooks/align.js +3 -7
  85. package/build/hooks/align.js.map +1 -1
  86. package/build/hooks/behaviors.js +115 -0
  87. package/build/hooks/behaviors.js.map +1 -0
  88. package/build/hooks/dimensions.js +0 -30
  89. package/build/hooks/dimensions.js.map +1 -1
  90. package/build/hooks/duotone.js +4 -8
  91. package/build/hooks/duotone.js.map +1 -1
  92. package/build/hooks/index.js +2 -0
  93. package/build/hooks/index.js.map +1 -1
  94. package/build/hooks/layout.js +8 -9
  95. package/build/hooks/layout.js.map +1 -1
  96. package/build/private-apis.js +4 -7
  97. package/build/private-apis.js.map +1 -1
  98. package/build/store/private-actions.js +46 -0
  99. package/build/store/private-actions.js.map +1 -1
  100. package/build/store/private-selectors.js +88 -0
  101. package/build/store/private-selectors.js.map +1 -1
  102. package/build/store/reducer.js +36 -1
  103. package/build/store/reducer.js.map +1 -1
  104. package/build/store/selectors.js +28 -18
  105. package/build/store/selectors.js.map +1 -1
  106. package/build/utils/order-inserter-block-items.js +41 -0
  107. package/build/utils/order-inserter-block-items.js.map +1 -0
  108. package/build-module/autocompleters/block.js +12 -5
  109. package/build-module/autocompleters/block.js.map +1 -1
  110. package/build-module/components/block-breadcrumb/index.js +5 -3
  111. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  112. package/build-module/components/block-editing-mode/index.js +72 -0
  113. package/build-module/components/block-editing-mode/index.js.map +1 -0
  114. package/build-module/components/block-list/block-list-block-context.js +6 -0
  115. package/build-module/components/block-list/block-list-block-context.js.map +1 -0
  116. package/build-module/components/block-list/block.js +26 -34
  117. package/build-module/components/block-list/block.js.map +1 -1
  118. package/build-module/components/block-list/block.native.js +14 -22
  119. package/build-module/components/block-list/block.native.js.map +1 -1
  120. package/build-module/components/block-list/index.native.js +108 -110
  121. package/build-module/components/block-list/index.native.js.map +1 -1
  122. package/build-module/components/block-list/use-block-props/index.js +1 -1
  123. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  124. package/build-module/components/block-list/use-in-between-inserter.js +6 -5
  125. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  126. package/build-module/components/block-list-appender/index.js +15 -1
  127. package/build-module/components/block-list-appender/index.js.map +1 -1
  128. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +18 -4
  129. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  130. package/build-module/components/block-styles/preview-panel.js +1 -2
  131. package/build-module/components/block-styles/preview-panel.js.map +1 -1
  132. package/build-module/components/block-switcher/block-transformations-menu.js +7 -0
  133. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  134. package/build-module/components/block-switcher/block-variation-transformations.js +108 -0
  135. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -0
  136. package/build-module/components/block-switcher/index.js +33 -12
  137. package/build-module/components/block-switcher/index.js.map +1 -1
  138. package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -3
  139. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  140. package/build-module/components/block-toolbar/index.js +8 -7
  141. package/build-module/components/block-toolbar/index.js.map +1 -1
  142. package/build-module/components/block-tools/block-contextual-toolbar.js +4 -3
  143. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  144. package/build-module/components/block-tools/insertion-point.js +11 -5
  145. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  146. package/build-module/components/convert-to-group-buttons/index.js +7 -2
  147. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  148. package/build-module/components/convert-to-group-buttons/index.native.js +76 -1
  149. package/build-module/components/convert-to-group-buttons/index.native.js.map +1 -1
  150. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +22 -36
  151. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  152. package/build-module/components/global-styles/dimensions-panel.js +3 -2
  153. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  154. package/build-module/components/iframe/index.js +15 -8
  155. package/build-module/components/iframe/index.js.map +1 -1
  156. package/build-module/components/inner-blocks/index.js +2 -1
  157. package/build-module/components/inner-blocks/index.js.map +1 -1
  158. package/build-module/components/inner-blocks/index.native.js +7 -6
  159. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  160. package/build-module/components/inner-blocks/use-nested-settings-update.js +13 -5
  161. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  162. package/build-module/components/inserter/index.js +3 -7
  163. package/build-module/components/inserter/index.js.map +1 -1
  164. package/build-module/components/inserter/quick-inserter.js +2 -4
  165. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  166. package/build-module/components/inserter/search-results.js +16 -6
  167. package/build-module/components/inserter/search-results.js.map +1 -1
  168. package/build-module/components/list-view/appender.js +6 -2
  169. package/build-module/components/list-view/appender.js.map +1 -1
  170. package/build-module/components/list-view/block-contents.js +4 -2
  171. package/build-module/components/list-view/block-contents.js.map +1 -1
  172. package/build-module/components/list-view/block.js +20 -25
  173. package/build-module/components/list-view/block.js.map +1 -1
  174. package/build-module/components/list-view/branch.js +1 -3
  175. package/build-module/components/list-view/branch.js.map +1 -1
  176. package/build-module/components/list-view/index.js +15 -8
  177. package/build-module/components/list-view/index.js.map +1 -1
  178. package/build-module/components/list-view/use-list-view-client-ids.js +26 -3
  179. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  180. package/build-module/components/publish-date-time-picker/index.js +0 -2
  181. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  182. package/build-module/components/url-input/index.js +3 -0
  183. package/build-module/components/url-input/index.js.map +1 -1
  184. package/build-module/components/use-block-drop-zone/index.js +25 -16
  185. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  186. package/build-module/components/use-resize-canvas/index.js +8 -1
  187. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  188. package/build-module/components/writing-flow/use-arrow-nav.js +13 -7
  189. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  190. package/build-module/hooks/align.js +3 -6
  191. package/build-module/hooks/align.js.map +1 -1
  192. package/build-module/hooks/behaviors.js +97 -0
  193. package/build-module/hooks/behaviors.js.map +1 -0
  194. package/build-module/hooks/dimensions.js +0 -28
  195. package/build-module/hooks/dimensions.js.map +1 -1
  196. package/build-module/hooks/duotone.js +3 -6
  197. package/build-module/hooks/duotone.js.map +1 -1
  198. package/build-module/hooks/index.js +1 -0
  199. package/build-module/hooks/index.js.map +1 -1
  200. package/build-module/hooks/layout.js +7 -9
  201. package/build-module/hooks/layout.js.map +1 -1
  202. package/build-module/private-apis.js +3 -5
  203. package/build-module/private-apis.js.map +1 -1
  204. package/build-module/store/private-actions.js +42 -0
  205. package/build-module/store/private-actions.js.map +1 -1
  206. package/build-module/store/private-selectors.js +79 -0
  207. package/build-module/store/private-selectors.js.map +1 -1
  208. package/build-module/store/reducer.js +34 -1
  209. package/build-module/store/reducer.js.map +1 -1
  210. package/build-module/store/selectors.js +26 -17
  211. package/build-module/store/selectors.js.map +1 -1
  212. package/build-module/utils/order-inserter-block-items.js +32 -0
  213. package/build-module/utils/order-inserter-block-items.js.map +1 -0
  214. package/build-style/content-rtl.css +32 -13
  215. package/build-style/content.css +32 -13
  216. package/build-style/default-editor-styles-rtl.css +1 -1
  217. package/build-style/default-editor-styles.css +1 -1
  218. package/build-style/style-rtl.css +19 -64
  219. package/build-style/style.css +20 -64
  220. package/package.json +32 -31
  221. package/src/autocompleters/block.js +15 -7
  222. package/src/components/block-breadcrumb/index.js +11 -3
  223. package/src/components/block-editing-mode/index.js +71 -0
  224. package/src/components/block-list/block-list-block-context.js +6 -0
  225. package/src/components/block-list/block.js +38 -56
  226. package/src/components/block-list/block.native.js +30 -41
  227. package/src/components/block-list/content.scss +5 -5
  228. package/src/components/block-list/index.native.js +164 -153
  229. package/src/components/block-list/test/index.native.js +2 -2
  230. package/src/components/block-list/use-block-props/index.js +1 -1
  231. package/src/components/block-list/use-in-between-inserter.js +7 -3
  232. package/src/components/block-list-appender/index.js +22 -4
  233. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +23 -0
  234. package/src/components/block-mover/style.scss +1 -0
  235. package/src/components/block-styles/preview-panel.js +1 -3
  236. package/src/components/block-switcher/block-transformations-menu.js +12 -0
  237. package/src/components/block-switcher/block-variation-transformations.js +115 -0
  238. package/src/components/block-switcher/index.js +38 -5
  239. package/src/components/block-switcher/pattern-transformations-menu.js +5 -5
  240. package/src/components/block-switcher/style.scss +6 -5
  241. package/src/components/block-toolbar/index.js +10 -11
  242. package/src/components/block-tools/block-contextual-toolbar.js +4 -5
  243. package/src/components/block-tools/insertion-point.js +23 -9
  244. package/src/components/button-block-appender/content.scss +22 -0
  245. package/src/components/convert-to-group-buttons/index.js +9 -2
  246. package/src/components/convert-to-group-buttons/index.native.js +79 -1
  247. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +32 -38
  248. package/src/components/global-styles/dimensions-panel.js +3 -2
  249. package/src/components/global-styles/style.scss +3 -0
  250. package/src/components/iframe/index.js +22 -12
  251. package/src/components/inner-blocks/README.md +5 -0
  252. package/src/components/inner-blocks/index.js +2 -0
  253. package/src/components/inner-blocks/index.native.js +16 -6
  254. package/src/components/inner-blocks/use-nested-settings-update.js +20 -3
  255. package/src/components/inserter/index.js +1 -9
  256. package/src/components/inserter/quick-inserter.js +0 -2
  257. package/src/components/inserter/search-results.js +32 -6
  258. package/src/components/list-view/appender.js +3 -2
  259. package/src/components/list-view/block-contents.js +8 -2
  260. package/src/components/list-view/block.js +29 -35
  261. package/src/components/list-view/branch.js +1 -7
  262. package/src/components/list-view/index.js +17 -4
  263. package/src/components/list-view/style.scss +2 -5
  264. package/src/components/list-view/use-list-view-client-ids.js +21 -4
  265. package/src/components/publish-date-time-picker/index.js +0 -2
  266. package/src/components/url-input/README.md +6 -0
  267. package/src/components/url-input/index.js +1 -0
  268. package/src/components/use-block-drop-zone/index.js +31 -17
  269. package/src/components/use-resize-canvas/index.js +9 -1
  270. package/src/components/writing-flow/test/index.js +15 -0
  271. package/src/components/writing-flow/use-arrow-nav.js +17 -4
  272. package/src/hooks/align.js +3 -11
  273. package/src/hooks/behaviors.js +104 -0
  274. package/src/hooks/dimensions.js +0 -40
  275. package/src/hooks/duotone.js +3 -11
  276. package/src/hooks/index.js +1 -0
  277. package/src/hooks/layout.js +10 -18
  278. package/src/private-apis.js +2 -4
  279. package/src/store/private-actions.js +39 -0
  280. package/src/store/private-selectors.js +95 -0
  281. package/src/store/reducer.js +27 -0
  282. package/src/store/selectors.js +25 -15
  283. package/src/store/test/private-actions.js +32 -1
  284. package/src/store/test/private-selectors.js +158 -0
  285. package/src/store/test/reducer.js +48 -0
  286. package/src/style.scss +0 -3
  287. package/src/utils/order-inserter-block-items.js +26 -0
  288. package/build/components/block-list/block-list-compact.native.js +0 -75
  289. package/build/components/block-list/block-list-compact.native.js.map +0 -1
  290. package/build/components/off-canvas-editor/appender.js +0 -125
  291. package/build/components/off-canvas-editor/appender.js.map +0 -1
  292. package/build/components/off-canvas-editor/block-contents.js +0 -141
  293. package/build/components/off-canvas-editor/block-contents.js.map +0 -1
  294. package/build/components/off-canvas-editor/block-select-button.js +0 -126
  295. package/build/components/off-canvas-editor/block-select-button.js.map +0 -1
  296. package/build/components/off-canvas-editor/block.js +0 -297
  297. package/build/components/off-canvas-editor/block.js.map +0 -1
  298. package/build/components/off-canvas-editor/branch.js +0 -197
  299. package/build/components/off-canvas-editor/branch.js.map +0 -1
  300. package/build/components/off-canvas-editor/context.js +0 -19
  301. package/build/components/off-canvas-editor/context.js.map +0 -1
  302. package/build/components/off-canvas-editor/drop-indicator.js +0 -118
  303. package/build/components/off-canvas-editor/drop-indicator.js.map +0 -1
  304. package/build/components/off-canvas-editor/expander.js +0 -41
  305. package/build/components/off-canvas-editor/expander.js.map +0 -1
  306. package/build/components/off-canvas-editor/index.js +0 -236
  307. package/build/components/off-canvas-editor/index.js.map +0 -1
  308. package/build/components/off-canvas-editor/leaf-more-menu.js +0 -148
  309. package/build/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
  310. package/build/components/off-canvas-editor/leaf.js +0 -60
  311. package/build/components/off-canvas-editor/leaf.js.map +0 -1
  312. package/build/components/off-canvas-editor/link-ui.js +0 -186
  313. package/build/components/off-canvas-editor/link-ui.js.map +0 -1
  314. package/build/components/off-canvas-editor/update-attributes.js +0 -108
  315. package/build/components/off-canvas-editor/update-attributes.js.map +0 -1
  316. package/build/components/off-canvas-editor/use-block-selection.js +0 -139
  317. package/build/components/off-canvas-editor/use-block-selection.js.map +0 -1
  318. package/build/components/off-canvas-editor/use-inserted-block.js +0 -58
  319. package/build/components/off-canvas-editor/use-inserted-block.js.map +0 -1
  320. package/build/components/off-canvas-editor/use-list-view-client-ids.js +0 -33
  321. package/build/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
  322. package/build/components/off-canvas-editor/use-list-view-drop-zone.js +0 -235
  323. package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
  324. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -60
  325. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
  326. package/build/components/off-canvas-editor/utils.js +0 -60
  327. package/build/components/off-canvas-editor/utils.js.map +0 -1
  328. package/build-module/components/block-list/block-list-compact.native.js +0 -60
  329. package/build-module/components/block-list/block-list-compact.native.js.map +0 -1
  330. package/build-module/components/off-canvas-editor/appender.js +0 -108
  331. package/build-module/components/off-canvas-editor/appender.js.map +0 -1
  332. package/build-module/components/off-canvas-editor/block-contents.js +0 -121
  333. package/build-module/components/off-canvas-editor/block-contents.js.map +0 -1
  334. package/build-module/components/off-canvas-editor/block-select-button.js +0 -107
  335. package/build-module/components/off-canvas-editor/block-select-button.js.map +0 -1
  336. package/build-module/components/off-canvas-editor/block.js +0 -273
  337. package/build-module/components/off-canvas-editor/block.js.map +0 -1
  338. package/build-module/components/off-canvas-editor/branch.js +0 -179
  339. package/build-module/components/off-canvas-editor/branch.js.map +0 -1
  340. package/build-module/components/off-canvas-editor/context.js +0 -7
  341. package/build-module/components/off-canvas-editor/context.js.map +0 -1
  342. package/build-module/components/off-canvas-editor/drop-indicator.js +0 -111
  343. package/build-module/components/off-canvas-editor/drop-indicator.js.map +0 -1
  344. package/build-module/components/off-canvas-editor/expander.js +0 -32
  345. package/build-module/components/off-canvas-editor/expander.js.map +0 -1
  346. package/build-module/components/off-canvas-editor/index.js +0 -213
  347. package/build-module/components/off-canvas-editor/index.js.map +0 -1
  348. package/build-module/components/off-canvas-editor/leaf-more-menu.js +0 -130
  349. package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
  350. package/build-module/components/off-canvas-editor/leaf.js +0 -45
  351. package/build-module/components/off-canvas-editor/leaf.js.map +0 -1
  352. package/build-module/components/off-canvas-editor/link-ui.js +0 -166
  353. package/build-module/components/off-canvas-editor/link-ui.js.map +0 -1
  354. package/build-module/components/off-canvas-editor/update-attributes.js +0 -97
  355. package/build-module/components/off-canvas-editor/update-attributes.js.map +0 -1
  356. package/build-module/components/off-canvas-editor/use-block-selection.js +0 -124
  357. package/build-module/components/off-canvas-editor/use-block-selection.js.map +0 -1
  358. package/build-module/components/off-canvas-editor/use-inserted-block.js +0 -47
  359. package/build-module/components/off-canvas-editor/use-inserted-block.js.map +0 -1
  360. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js +0 -24
  361. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
  362. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +0 -220
  363. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
  364. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -50
  365. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
  366. package/build-module/components/off-canvas-editor/utils.js +0 -44
  367. package/build-module/components/off-canvas-editor/utils.js.map +0 -1
  368. package/src/components/block-list/block-list-compact.native.js +0 -63
  369. package/src/components/off-canvas-editor/README.md +0 -5
  370. package/src/components/off-canvas-editor/appender.js +0 -124
  371. package/src/components/off-canvas-editor/block-contents.js +0 -156
  372. package/src/components/off-canvas-editor/block-select-button.js +0 -128
  373. package/src/components/off-canvas-editor/block.js +0 -347
  374. package/src/components/off-canvas-editor/branch.js +0 -238
  375. package/src/components/off-canvas-editor/context.js +0 -8
  376. package/src/components/off-canvas-editor/drop-indicator.js +0 -126
  377. package/src/components/off-canvas-editor/expander.js +0 -26
  378. package/src/components/off-canvas-editor/index.js +0 -271
  379. package/src/components/off-canvas-editor/leaf-more-menu.js +0 -158
  380. package/src/components/off-canvas-editor/leaf.js +0 -52
  381. package/src/components/off-canvas-editor/link-ui.js +0 -167
  382. package/src/components/off-canvas-editor/style.scss +0 -34
  383. package/src/components/off-canvas-editor/test/use-inserted-block.js +0 -108
  384. package/src/components/off-canvas-editor/test/utils.js +0 -50
  385. package/src/components/off-canvas-editor/update-attributes.js +0 -99
  386. package/src/components/off-canvas-editor/use-block-selection.js +0 -169
  387. package/src/components/off-canvas-editor/use-inserted-block.js +0 -47
  388. package/src/components/off-canvas-editor/use-list-view-client-ids.js +0 -29
  389. package/src/components/off-canvas-editor/use-list-view-drop-zone.js +0 -260
  390. package/src/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -58
  391. package/src/components/off-canvas-editor/utils.js +0 -58
@@ -1,238 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import {
5
- __experimentalTreeGridRow as TreeGridRow,
6
- __experimentalTreeGridCell as TreeGridCell,
7
- } from '@wordpress/components';
8
- import { AsyncModeProvider, useSelect } from '@wordpress/data';
9
- import { memo } from '@wordpress/element';
10
-
11
- /**
12
- * Internal dependencies
13
- */
14
-
15
- import { Appender } from './appender';
16
- import ListViewBlock from './block';
17
- import { useListViewContext } from './context';
18
- import { isClientIdSelected } from './utils';
19
- import { store as blockEditorStore } from '../../store';
20
-
21
- /**
22
- * Given a block, returns the total number of blocks in that subtree. This is used to help determine
23
- * the list position of a block.
24
- *
25
- * When a block is collapsed, we do not count their children as part of that total. In the current drag
26
- * implementation dragged blocks and their children are not counted.
27
- *
28
- * @param {Object} block block tree
29
- * @param {Object} expandedState state that notes which branches are collapsed
30
- * @param {Array} draggedClientIds a list of dragged client ids
31
- * @param {boolean} isExpandedByDefault flag to determine the default fallback expanded state.
32
- * @return {number} block count
33
- */
34
- function countBlocks(
35
- block,
36
- expandedState,
37
- draggedClientIds,
38
- isExpandedByDefault
39
- ) {
40
- const isDragged = draggedClientIds?.includes( block.clientId );
41
- if ( isDragged ) {
42
- return 0;
43
- }
44
- const isExpanded = expandedState[ block.clientId ] ?? isExpandedByDefault;
45
-
46
- if ( isExpanded ) {
47
- return (
48
- 1 +
49
- block.innerBlocks.reduce(
50
- countReducer(
51
- expandedState,
52
- draggedClientIds,
53
- isExpandedByDefault
54
- ),
55
- 0
56
- )
57
- );
58
- }
59
- return 1;
60
- }
61
- const countReducer =
62
- ( expandedState, draggedClientIds, isExpandedByDefault ) =>
63
- ( count, block ) => {
64
- const isDragged = draggedClientIds?.includes( block.clientId );
65
- if ( isDragged ) {
66
- return count;
67
- }
68
- const isExpanded =
69
- expandedState[ block.clientId ] ?? isExpandedByDefault;
70
- if ( isExpanded && block.innerBlocks.length > 0 ) {
71
- return (
72
- count +
73
- countBlocks(
74
- block,
75
- expandedState,
76
- draggedClientIds,
77
- isExpandedByDefault
78
- )
79
- );
80
- }
81
- return count + 1;
82
- };
83
-
84
- const noop = () => {};
85
-
86
- function ListViewBranch( props ) {
87
- const {
88
- blocks,
89
- selectBlock = noop,
90
- showBlockMovers,
91
- selectedClientIds,
92
- level = 1,
93
- path = '',
94
- isBranchSelected = false,
95
- listPosition = 0,
96
- fixedListWindow,
97
- isExpanded,
98
- parentId,
99
- shouldShowInnerBlocks = true,
100
- showAppender: showAppenderProp = true,
101
- } = props;
102
-
103
- const isContentLocked = useSelect(
104
- ( select ) => {
105
- return !! (
106
- parentId &&
107
- select( blockEditorStore ).getTemplateLock( parentId ) ===
108
- 'contentOnly'
109
- );
110
- },
111
- [ parentId ]
112
- );
113
-
114
- const { expandedState, draggedClientIds } = useListViewContext();
115
-
116
- if ( isContentLocked ) {
117
- return null;
118
- }
119
-
120
- // Only show the appender at the first level.
121
- const showAppender = showAppenderProp && level === 1;
122
-
123
- const filteredBlocks = blocks.filter( Boolean );
124
- const blockCount = filteredBlocks.length;
125
-
126
- // The appender means an extra row in List View, so add 1 to the row count.
127
- const rowCount = showAppender ? blockCount + 1 : blockCount;
128
- let nextPosition = listPosition;
129
-
130
- return (
131
- <>
132
- { filteredBlocks.map( ( block, index ) => {
133
- const { clientId, innerBlocks } = block;
134
-
135
- if ( index > 0 ) {
136
- nextPosition += countBlocks(
137
- filteredBlocks[ index - 1 ],
138
- expandedState,
139
- draggedClientIds,
140
- isExpanded
141
- );
142
- }
143
-
144
- const { itemInView } = fixedListWindow;
145
- const blockInView = itemInView( nextPosition );
146
-
147
- const position = index + 1;
148
- const updatedPath =
149
- path.length > 0
150
- ? `${ path }_${ position }`
151
- : `${ position }`;
152
- const hasNestedBlocks = !! innerBlocks?.length;
153
-
154
- const shouldExpand =
155
- hasNestedBlocks && shouldShowInnerBlocks
156
- ? expandedState[ clientId ] ?? isExpanded
157
- : undefined;
158
-
159
- const isDragged = !! draggedClientIds?.includes( clientId );
160
-
161
- const showBlock = isDragged || blockInView;
162
-
163
- // Make updates to the selected or dragged blocks synchronous,
164
- // but asynchronous for any other block.
165
- const isSelected = isClientIdSelected(
166
- clientId,
167
- selectedClientIds
168
- );
169
- const isSelectedBranch =
170
- isBranchSelected || ( isSelected && hasNestedBlocks );
171
- return (
172
- <AsyncModeProvider key={ clientId } value={ ! isSelected }>
173
- { showBlock && (
174
- <ListViewBlock
175
- block={ block }
176
- selectBlock={ selectBlock }
177
- isSelected={ isSelected }
178
- isBranchSelected={ isSelectedBranch }
179
- isDragged={ isDragged }
180
- level={ level }
181
- position={ position }
182
- rowCount={ rowCount }
183
- siblingBlockCount={ blockCount }
184
- showBlockMovers={ showBlockMovers }
185
- path={ updatedPath }
186
- isExpanded={ shouldExpand }
187
- listPosition={ nextPosition }
188
- selectedClientIds={ selectedClientIds }
189
- />
190
- ) }
191
- { ! showBlock && (
192
- <tr>
193
- <td className="block-editor-list-view-placeholder" />
194
- </tr>
195
- ) }
196
- { hasNestedBlocks && shouldExpand && ! isDragged && (
197
- <ListViewBranch
198
- parentId={ clientId }
199
- blocks={ innerBlocks }
200
- selectBlock={ selectBlock }
201
- showBlockMovers={ showBlockMovers }
202
- level={ level + 1 }
203
- path={ updatedPath }
204
- listPosition={ nextPosition + 1 }
205
- fixedListWindow={ fixedListWindow }
206
- isBranchSelected={ isSelectedBranch }
207
- selectedClientIds={ selectedClientIds }
208
- isExpanded={ isExpanded }
209
- showAppender={ showAppenderProp }
210
- />
211
- ) }
212
- </AsyncModeProvider>
213
- );
214
- } ) }
215
- { showAppender && (
216
- <TreeGridRow
217
- level={ level }
218
- setSize={ rowCount }
219
- positionInSet={ rowCount }
220
- isExpanded={ true }
221
- >
222
- <TreeGridCell>
223
- { ( treeGridCellProps ) => (
224
- <Appender
225
- clientId={ parentId }
226
- nestingLevel={ level }
227
- blockCount={ blockCount }
228
- { ...treeGridCellProps }
229
- />
230
- ) }
231
- </TreeGridCell>
232
- </TreeGridRow>
233
- ) }
234
- </>
235
- );
236
- }
237
-
238
- export default memo( ListViewBranch );
@@ -1,8 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { createContext, useContext } from '@wordpress/element';
5
-
6
- export const ListViewContext = createContext( {} );
7
-
8
- export const useListViewContext = () => useContext( ListViewContext );
@@ -1,126 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { Popover } from '@wordpress/components';
5
- import { useCallback, useMemo } from '@wordpress/element';
6
-
7
- export default function ListViewDropIndicator( {
8
- listViewRef,
9
- blockDropTarget,
10
- } ) {
11
- const { rootClientId, clientId, dropPosition } = blockDropTarget || {};
12
-
13
- const [ rootBlockElement, blockElement ] = useMemo( () => {
14
- if ( ! listViewRef.current ) {
15
- return [];
16
- }
17
-
18
- // The rootClientId will be defined whenever dropping into inner
19
- // block lists, but is undefined when dropping at the root level.
20
- const _rootBlockElement = rootClientId
21
- ? listViewRef.current.querySelector(
22
- `[data-block="${ rootClientId }"]`
23
- )
24
- : undefined;
25
-
26
- // The clientId represents the sibling block, the dragged block will
27
- // usually be inserted adjacent to it. It will be undefined when
28
- // dropping a block into an empty block list.
29
- const _blockElement = clientId
30
- ? listViewRef.current.querySelector(
31
- `[data-block="${ clientId }"]`
32
- )
33
- : undefined;
34
-
35
- return [ _rootBlockElement, _blockElement ];
36
- }, [ rootClientId, clientId ] );
37
-
38
- // The targetElement is the element that the drop indicator will appear
39
- // before or after. When dropping into an empty block list, blockElement
40
- // is undefined, so the indicator will appear after the rootBlockElement.
41
- const targetElement = blockElement || rootBlockElement;
42
-
43
- const getDropIndicatorIndent = useCallback( () => {
44
- if ( ! rootBlockElement ) {
45
- return 0;
46
- }
47
-
48
- // Calculate the indent using the block icon of the root block.
49
- // Using a classname selector here might be flaky and could be
50
- // improved.
51
- const targetElementRect = targetElement.getBoundingClientRect();
52
- const rootBlockIconElement = rootBlockElement.querySelector(
53
- '.block-editor-block-icon'
54
- );
55
- const rootBlockIconRect = rootBlockIconElement.getBoundingClientRect();
56
- return rootBlockIconRect.right - targetElementRect.left;
57
- }, [ rootBlockElement, targetElement ] );
58
-
59
- const style = useMemo( () => {
60
- if ( ! targetElement ) {
61
- return {};
62
- }
63
-
64
- const indent = getDropIndicatorIndent();
65
-
66
- return {
67
- width: targetElement.offsetWidth - indent,
68
- };
69
- }, [ getDropIndicatorIndent, targetElement ] );
70
-
71
- const popoverAnchor = useMemo( () => {
72
- const isValidDropPosition =
73
- dropPosition === 'top' ||
74
- dropPosition === 'bottom' ||
75
- dropPosition === 'inside';
76
- if ( ! targetElement || ! isValidDropPosition ) {
77
- return undefined;
78
- }
79
-
80
- return {
81
- ownerDocument: targetElement.ownerDocument,
82
- getBoundingClientRect() {
83
- const rect = targetElement.getBoundingClientRect();
84
- const indent = getDropIndicatorIndent();
85
-
86
- const left = rect.left + indent;
87
- const right = rect.right;
88
- let top = 0;
89
- let bottom = 0;
90
-
91
- if ( dropPosition === 'top' ) {
92
- top = rect.top;
93
- bottom = rect.top;
94
- } else {
95
- // `dropPosition` is either `bottom` or `inside`
96
- top = rect.bottom;
97
- bottom = rect.bottom;
98
- }
99
-
100
- const width = right - left;
101
- const height = bottom - top;
102
-
103
- return new window.DOMRect( left, top, width, height );
104
- },
105
- };
106
- }, [ targetElement, dropPosition, getDropIndicatorIndent ] );
107
-
108
- if ( ! targetElement ) {
109
- return null;
110
- }
111
-
112
- return (
113
- <Popover
114
- animate={ false }
115
- anchor={ popoverAnchor }
116
- focusOnMount={ false }
117
- className="block-editor-list-view-drop-indicator"
118
- variant="unstyled"
119
- >
120
- <div
121
- style={ style }
122
- className="block-editor-list-view-drop-indicator__line"
123
- />
124
- </Popover>
125
- );
126
- }
@@ -1,26 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { chevronRightSmall, chevronLeftSmall, Icon } from '@wordpress/icons';
5
- import { isRTL } from '@wordpress/i18n';
6
-
7
- export default function ListViewExpander( { onClick } ) {
8
- return (
9
- // Keyboard events are handled by TreeGrid see: components/src/tree-grid/index.js
10
- //
11
- // The expander component is implemented as a pseudo element in the w3 example
12
- // https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html
13
- //
14
- // We've mimicked this by adding an icon with aria-hidden set to true to hide this from the accessibility tree.
15
- // For the current tree grid implementation, please do not try to make this a button.
16
- //
17
- // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
18
- <span
19
- className="block-editor-list-view__expander"
20
- onClick={ ( event ) => onClick( event, { forceToggle: true } ) }
21
- aria-hidden="true"
22
- >
23
- <Icon icon={ isRTL() ? chevronLeftSmall : chevronRightSmall } />
24
- </span>
25
- );
26
- }
@@ -1,271 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import {
5
- useMergeRefs,
6
- __experimentalUseFixedWindowList as useFixedWindowList,
7
- } from '@wordpress/compose';
8
- import {
9
- __experimentalTreeGrid as TreeGrid,
10
- __experimentalTreeGridRow as TreeGridRow,
11
- __experimentalTreeGridCell as TreeGridCell,
12
- } from '@wordpress/components';
13
- import { AsyncModeProvider, useSelect } from '@wordpress/data';
14
- import {
15
- useCallback,
16
- useEffect,
17
- useMemo,
18
- useRef,
19
- useReducer,
20
- forwardRef,
21
- } from '@wordpress/element';
22
- import { __ } from '@wordpress/i18n';
23
-
24
- /**
25
- * Internal dependencies
26
- */
27
- import ListViewBranch from './branch';
28
- import { ListViewContext } from './context';
29
- import ListViewDropIndicator from './drop-indicator';
30
- import useBlockSelection from './use-block-selection';
31
- import useListViewClientIds from './use-list-view-client-ids';
32
- import useListViewDropZone from './use-list-view-drop-zone';
33
- import useListViewExpandSelectedItem from './use-list-view-expand-selected-item';
34
- import { store as blockEditorStore } from '../../store';
35
-
36
- const expanded = ( state, action ) => {
37
- if ( Array.isArray( action.clientIds ) ) {
38
- return {
39
- ...state,
40
- ...action.clientIds.reduce(
41
- ( newState, id ) => ( {
42
- ...newState,
43
- [ id ]: action.type === 'expand',
44
- } ),
45
- {}
46
- ),
47
- };
48
- }
49
- return state;
50
- };
51
-
52
- export const BLOCK_LIST_ITEM_HEIGHT = 36;
53
-
54
- /**
55
- * Show a hierarchical list of blocks.
56
- *
57
- * @param {Object} props Components props.
58
- * @param {string} props.id An HTML element id for the root element of ListView.
59
- * @param {string} props.parentClientId The client id of the parent block.
60
- * @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.
61
- * @param {boolean} props.showBlockMovers Flag to enable block movers
62
- * @param {boolean} props.isExpanded Flag to determine whether nested levels are expanded by default.
63
- * @param {Object} props.LeafMoreMenu Optional more menu substitution.
64
- * @param {string} props.description Optional accessible description for the tree grid component.
65
- * @param {string} props.onSelect Optional callback to be invoked when a block is selected.
66
- * @param {string} props.showAppender Flag to show or hide the block appender.
67
- * @param {Function} props.renderAdditionalBlockUI Function that renders additional block content UI.
68
- * @param {Object} ref Forwarded ref.
69
- */
70
- function OffCanvasEditor(
71
- {
72
- id,
73
- parentClientId,
74
- blocks,
75
- showBlockMovers = false,
76
- isExpanded = false,
77
- showAppender = true,
78
- LeafMoreMenu,
79
- description = __( 'Block navigation structure' ),
80
- onSelect,
81
- renderAdditionalBlockUI,
82
- },
83
- ref
84
- ) {
85
- const { getBlock } = useSelect( blockEditorStore );
86
- const { clientIdsTree, draggedClientIds, selectedClientIds } =
87
- useListViewClientIds( blocks );
88
-
89
- const { visibleBlockCount, shouldShowInnerBlocks } = useSelect(
90
- ( select ) => {
91
- const {
92
- getGlobalBlockCount,
93
- getClientIdsOfDescendants,
94
- __unstableGetEditorMode,
95
- } = select( blockEditorStore );
96
- const draggedBlockCount =
97
- draggedClientIds?.length > 0
98
- ? getClientIdsOfDescendants( draggedClientIds ).length + 1
99
- : 0;
100
- return {
101
- visibleBlockCount: getGlobalBlockCount() - draggedBlockCount,
102
- shouldShowInnerBlocks: __unstableGetEditorMode() !== 'zoom-out',
103
- };
104
- },
105
- [ draggedClientIds, blocks ]
106
- );
107
-
108
- const { updateBlockSelection } = useBlockSelection();
109
-
110
- const [ expandedState, setExpandedState ] = useReducer( expanded, {} );
111
-
112
- const { ref: dropZoneRef, target: blockDropTarget } = useListViewDropZone();
113
- const elementRef = useRef();
114
- const treeGridRef = useMergeRefs( [ elementRef, dropZoneRef, ref ] );
115
-
116
- const isMounted = useRef( false );
117
- const { setSelectedTreeId } = useListViewExpandSelectedItem( {
118
- firstSelectedBlockClientId: selectedClientIds[ 0 ],
119
- setExpandedState,
120
- } );
121
- const selectEditorBlock = useCallback(
122
- ( event, blockClientId ) => {
123
- updateBlockSelection( event, blockClientId );
124
- setSelectedTreeId( blockClientId );
125
- if ( onSelect ) {
126
- onSelect( getBlock( blockClientId ) );
127
- }
128
- },
129
- [ setSelectedTreeId, updateBlockSelection, onSelect, getBlock ]
130
- );
131
- useEffect( () => {
132
- isMounted.current = true;
133
- }, [] );
134
-
135
- // List View renders a fixed number of items and relies on each having a fixed item height of 36px.
136
- // If this value changes, we should also change the itemHeight value set in useFixedWindowList.
137
- // See: https://github.com/WordPress/gutenberg/pull/35230 for additional context.
138
- const [ fixedListWindow ] = useFixedWindowList(
139
- elementRef,
140
- BLOCK_LIST_ITEM_HEIGHT,
141
- visibleBlockCount,
142
- {
143
- useWindowing: true,
144
- windowOverscan: 40,
145
- }
146
- );
147
-
148
- const expand = useCallback(
149
- ( blockClientId ) => {
150
- if ( ! blockClientId ) {
151
- return;
152
- }
153
- setExpandedState( {
154
- type: 'expand',
155
- clientIds: [ blockClientId ],
156
- } );
157
- },
158
- [ setExpandedState ]
159
- );
160
- const collapse = useCallback(
161
- ( blockClientId ) => {
162
- if ( ! blockClientId ) {
163
- return;
164
- }
165
- setExpandedState( {
166
- type: 'collapse',
167
- clientIds: [ blockClientId ],
168
- } );
169
- },
170
- [ setExpandedState ]
171
- );
172
- const expandRow = useCallback(
173
- ( row ) => {
174
- expand( row?.dataset?.block );
175
- },
176
- [ expand ]
177
- );
178
- const collapseRow = useCallback(
179
- ( row ) => {
180
- collapse( row?.dataset?.block );
181
- },
182
- [ collapse ]
183
- );
184
- const focusRow = useCallback(
185
- ( event, startRow, endRow ) => {
186
- if ( event.shiftKey ) {
187
- updateBlockSelection(
188
- event,
189
- startRow?.dataset?.block,
190
- endRow?.dataset?.block
191
- );
192
- }
193
- },
194
- [ updateBlockSelection ]
195
- );
196
-
197
- const contextValue = useMemo(
198
- () => ( {
199
- isTreeGridMounted: isMounted.current,
200
- draggedClientIds,
201
- expandedState,
202
- expand,
203
- collapse,
204
- LeafMoreMenu,
205
- renderAdditionalBlockUI,
206
- } ),
207
- [
208
- isMounted.current,
209
- draggedClientIds,
210
- expandedState,
211
- expand,
212
- collapse,
213
- LeafMoreMenu,
214
- renderAdditionalBlockUI,
215
- ]
216
- );
217
-
218
- return (
219
- <AsyncModeProvider value={ true }>
220
- <ListViewDropIndicator
221
- listViewRef={ elementRef }
222
- blockDropTarget={ blockDropTarget }
223
- />
224
- <div className="offcanvas-editor-list-view-tree-wrapper">
225
- <TreeGrid
226
- id={ id }
227
- className="block-editor-list-view-tree"
228
- aria-label={ __( 'Block navigation structure' ) }
229
- ref={ treeGridRef }
230
- onCollapseRow={ collapseRow }
231
- onExpandRow={ expandRow }
232
- onFocusRow={ focusRow }
233
- // eslint-disable-next-line jsx-a11y/aria-props
234
- aria-description={ description }
235
- >
236
- <ListViewContext.Provider value={ contextValue }>
237
- <ListViewBranch
238
- parentId={ parentClientId }
239
- blocks={ clientIdsTree }
240
- selectBlock={ selectEditorBlock }
241
- showBlockMovers={ showBlockMovers }
242
- fixedListWindow={ fixedListWindow }
243
- selectedClientIds={ selectedClientIds }
244
- isExpanded={ isExpanded }
245
- shouldShowInnerBlocks={ shouldShowInnerBlocks }
246
- showAppender={ showAppender }
247
- />
248
- <TreeGridRow
249
- level={ 1 }
250
- setSize={ 1 }
251
- positionInSet={ 1 }
252
- isExpanded={ true }
253
- >
254
- { ! clientIdsTree.length && (
255
- <TreeGridCell withoutGridItem>
256
- <div className="offcanvas-editor-list-view-is-empty">
257
- { __(
258
- 'Your menu is currently empty. Add your first menu item to get started.'
259
- ) }
260
- </div>
261
- </TreeGridCell>
262
- ) }
263
- </TreeGridRow>
264
- </ListViewContext.Provider>
265
- </TreeGrid>
266
- </div>
267
- </AsyncModeProvider>
268
- );
269
- }
270
-
271
- export default forwardRef( OffCanvasEditor );