@wordpress/block-editor 15.21.0 → 15.22.1-next.v.202606191442.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 (554) hide show
  1. package/CHANGELOG.md +23 -1
  2. package/build/components/block-card/index.cjs +4 -5
  3. package/build/components/block-card/index.cjs.map +2 -2
  4. package/build/components/block-compare/index.cjs +2 -2
  5. package/build/components/block-compare/index.cjs.map +2 -2
  6. package/build/components/block-inspector/index.cjs +3 -4
  7. package/build/components/block-inspector/index.cjs.map +2 -2
  8. package/build/components/block-mover/mover-description.cjs +6 -6
  9. package/build/components/block-mover/mover-description.cjs.map +1 -1
  10. package/build/components/block-patterns-list/index.cjs +1 -1
  11. package/build/components/block-patterns-list/index.cjs.map +2 -2
  12. package/build/components/block-patterns-paging/index.cjs +4 -4
  13. package/build/components/block-patterns-paging/index.cjs.map +2 -2
  14. package/build/components/block-popover/use-popover-scroll.cjs.map +1 -1
  15. package/build/components/block-quick-navigation/index.cjs +7 -5
  16. package/build/components/block-quick-navigation/index.cjs.map +2 -2
  17. package/build/components/block-switcher/block-transformations-menu.cjs +16 -15
  18. package/build/components/block-switcher/block-transformations-menu.cjs.map +2 -2
  19. package/build/components/block-switcher/index.cjs +4 -4
  20. package/build/components/block-switcher/index.cjs.map +2 -2
  21. package/build/components/block-toolbar/edit-section-button.cjs.map +1 -1
  22. package/build/components/block-tools/use-block-toolbar-popover-props.cjs +10 -4
  23. package/build/components/block-tools/use-block-toolbar-popover-props.cjs.map +2 -2
  24. package/build/components/child-layout-control/index.cjs +51 -19
  25. package/build/components/child-layout-control/index.cjs.map +2 -2
  26. package/build/components/dimensions-tool/index.cjs +4 -5
  27. package/build/components/dimensions-tool/index.cjs.map +2 -2
  28. package/build/components/dimensions-tool/scale-tool.cjs +1 -1
  29. package/build/components/dimensions-tool/scale-tool.cjs.map +2 -2
  30. package/build/components/global-styles/advanced-panel.cjs +23 -15
  31. package/build/components/global-styles/advanced-panel.cjs.map +2 -2
  32. package/build/components/global-styles/background-panel.cjs +2 -2
  33. package/build/components/global-styles/background-panel.cjs.map +2 -2
  34. package/build/components/global-styles/border-panel.cjs +2 -0
  35. package/build/components/global-styles/border-panel.cjs.map +2 -2
  36. package/build/components/global-styles/dimensions-panel.cjs +2 -2
  37. package/build/components/global-styles/dimensions-panel.cjs.map +2 -2
  38. package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
  39. package/build/components/grid/grid-item-resizer.cjs.map +1 -1
  40. package/build/components/grid/grid-visualizer.cjs.map +1 -1
  41. package/build/components/iframe/index.cjs +6 -3
  42. package/build/components/iframe/index.cjs.map +3 -3
  43. package/build/components/image-editor/use-transform-image.cjs.map +1 -1
  44. package/build/components/inner-blocks/use-inner-block-template-sync.cjs +3 -1
  45. package/build/components/inner-blocks/use-inner-block-template-sync.cjs.map +2 -2
  46. package/build/components/inserter/get-appender-label.cjs.map +1 -1
  47. package/build/components/inserter/hooks/use-patterns-state.cjs +1 -1
  48. package/build/components/inserter/hooks/use-patterns-state.cjs.map +2 -2
  49. package/build/components/inserter/index.cjs +179 -220
  50. package/build/components/inserter/index.cjs.map +3 -3
  51. package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
  52. package/build/components/inserter/search-items.cjs.map +1 -1
  53. package/build/components/inserter/search-results.cjs +1 -1
  54. package/build/components/inserter/search-results.cjs.map +2 -2
  55. package/build/components/inspector-controls/fill.cjs +1 -3
  56. package/build/components/inspector-controls/fill.cjs.map +2 -2
  57. package/build/components/inspector-controls-tabs/index.cjs.map +2 -2
  58. package/build/components/inspector-controls-tabs/styles-tab.cjs +1 -1
  59. package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
  60. package/build/components/keyboard-shortcuts/index.cjs.map +1 -1
  61. package/build/components/line-height-control/index.cjs.map +1 -1
  62. package/build/components/link-control/index.cjs +1 -1
  63. package/build/components/link-control/index.cjs.map +1 -1
  64. package/build/components/link-control/normalize-url.cjs.map +1 -1
  65. package/build/components/list-view/block-select-button.cjs +10 -12
  66. package/build/components/list-view/block-select-button.cjs.map +2 -2
  67. package/build/components/list-view/block.cjs +2 -1
  68. package/build/components/list-view/block.cjs.map +2 -2
  69. package/build/components/list-view/utils.cjs.map +1 -1
  70. package/build/components/preset-input-control/custom-value-controls.cjs.map +2 -2
  71. package/build/components/provider/index.cjs.map +1 -1
  72. package/build/components/provider/use-block-sync.cjs +11 -2
  73. package/build/components/provider/use-block-sync.cjs.map +2 -2
  74. package/build/components/rich-text/event-listeners/before-input-rules.cjs +5 -5
  75. package/build/components/rich-text/event-listeners/before-input-rules.cjs.map +3 -3
  76. package/build/components/rich-text/event-listeners/delete.cjs +4 -4
  77. package/build/components/rich-text/event-listeners/delete.cjs.map +3 -3
  78. package/build/components/rich-text/event-listeners/enter.cjs +7 -2
  79. package/build/components/rich-text/event-listeners/enter.cjs.map +2 -2
  80. package/build/components/rich-text/event-listeners/input-events.cjs +4 -4
  81. package/build/components/rich-text/event-listeners/input-events.cjs.map +3 -3
  82. package/build/components/rich-text/event-listeners/input-rules.cjs +17 -4
  83. package/build/components/rich-text/event-listeners/input-rules.cjs.map +3 -3
  84. package/build/components/rich-text/event-listeners/insert-replacement-text.cjs +4 -4
  85. package/build/components/rich-text/event-listeners/insert-replacement-text.cjs.map +3 -3
  86. package/build/components/rich-text/event-listeners/paste-handler.cjs.map +1 -1
  87. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs +4 -4
  88. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs.map +3 -3
  89. package/build/components/rich-text/event-listeners/shortcuts.cjs +4 -4
  90. package/build/components/rich-text/event-listeners/shortcuts.cjs.map +3 -3
  91. package/build/components/rich-text/event-listeners/undo-automatic-change.cjs +4 -4
  92. package/build/components/rich-text/event-listeners/undo-automatic-change.cjs.map +3 -3
  93. package/build/components/rich-text/index.cjs +1 -23
  94. package/build/components/rich-text/index.cjs.map +2 -2
  95. package/build/components/rich-text/prevent-event-discovery.cjs +1 -1
  96. package/build/components/rich-text/prevent-event-discovery.cjs.map +1 -1
  97. package/build/components/use-block-commands/index.cjs +5 -5
  98. package/build/components/use-block-commands/index.cjs.map +2 -2
  99. package/build/components/writing-flow/use-tab-nav.cjs.map +1 -1
  100. package/build/hooks/anchor.cjs +12 -16
  101. package/build/hooks/anchor.cjs.map +2 -2
  102. package/build/hooks/background.cjs.map +1 -1
  103. package/build/hooks/block-fields/index.cjs +13 -2
  104. package/build/hooks/block-fields/index.cjs.map +2 -2
  105. package/build/hooks/border.cjs +0 -3
  106. package/build/hooks/border.cjs.map +2 -2
  107. package/build/hooks/color.cjs +1 -4
  108. package/build/hooks/color.cjs.map +2 -2
  109. package/build/hooks/dimensions.cjs +13 -5
  110. package/build/hooks/dimensions.cjs.map +2 -2
  111. package/build/hooks/fit-text.cjs +11 -0
  112. package/build/hooks/fit-text.cjs.map +2 -2
  113. package/build/hooks/layout-child.cjs +27 -2
  114. package/build/hooks/layout-child.cjs.map +2 -2
  115. package/build/hooks/list-view.cjs +10 -7
  116. package/build/hooks/list-view.cjs.map +2 -2
  117. package/build/hooks/position.cjs +19 -22
  118. package/build/hooks/position.cjs.map +2 -2
  119. package/build/hooks/spacing-visualizer.cjs.map +1 -1
  120. package/build/hooks/state-utils.cjs.map +1 -1
  121. package/build/hooks/style.cjs +42 -2
  122. package/build/hooks/style.cjs.map +2 -2
  123. package/build/hooks/supports.cjs +0 -7
  124. package/build/hooks/supports.cjs.map +2 -2
  125. package/build/private-apis.cjs +4 -0
  126. package/build/private-apis.cjs.map +2 -2
  127. package/build/store/actions.cjs +7 -3
  128. package/build/store/actions.cjs.map +2 -2
  129. package/build/store/private-actions.cjs +1 -2
  130. package/build/store/private-actions.cjs.map +2 -2
  131. package/build/store/private-selectors.cjs +42 -2
  132. package/build/store/private-selectors.cjs.map +2 -2
  133. package/build/store/reducer.cjs +14 -6
  134. package/build/store/reducer.cjs.map +2 -2
  135. package/build/store/selectors.cjs +60 -41
  136. package/build/store/selectors.cjs.map +2 -2
  137. package/build/utils/dom.cjs.map +1 -1
  138. package/build/utils/selection.cjs +1 -1
  139. package/build-module/components/block-card/index.mjs +5 -6
  140. package/build-module/components/block-card/index.mjs.map +2 -2
  141. package/build-module/components/block-compare/index.mjs +1 -1
  142. package/build-module/components/block-compare/index.mjs.map +2 -2
  143. package/build-module/components/block-inspector/index.mjs +3 -5
  144. package/build-module/components/block-inspector/index.mjs.map +2 -2
  145. package/build-module/components/block-mover/mover-description.mjs +6 -6
  146. package/build-module/components/block-mover/mover-description.mjs.map +1 -1
  147. package/build-module/components/block-patterns-list/index.mjs +1 -1
  148. package/build-module/components/block-patterns-list/index.mjs.map +2 -2
  149. package/build-module/components/block-patterns-paging/index.mjs +4 -4
  150. package/build-module/components/block-patterns-paging/index.mjs.map +2 -2
  151. package/build-module/components/block-popover/use-popover-scroll.mjs.map +1 -1
  152. package/build-module/components/block-quick-navigation/index.mjs +8 -6
  153. package/build-module/components/block-quick-navigation/index.mjs.map +2 -2
  154. package/build-module/components/block-switcher/block-transformations-menu.mjs +16 -15
  155. package/build-module/components/block-switcher/block-transformations-menu.mjs.map +2 -2
  156. package/build-module/components/block-switcher/index.mjs +4 -4
  157. package/build-module/components/block-switcher/index.mjs.map +2 -2
  158. package/build-module/components/block-toolbar/edit-section-button.mjs.map +1 -1
  159. package/build-module/components/block-tools/use-block-toolbar-popover-props.mjs +10 -4
  160. package/build-module/components/block-tools/use-block-toolbar-popover-props.mjs.map +2 -2
  161. package/build-module/components/child-layout-control/index.mjs +51 -19
  162. package/build-module/components/child-layout-control/index.mjs.map +2 -2
  163. package/build-module/components/dimensions-tool/index.mjs +4 -5
  164. package/build-module/components/dimensions-tool/index.mjs.map +2 -2
  165. package/build-module/components/dimensions-tool/scale-tool.mjs +1 -1
  166. package/build-module/components/dimensions-tool/scale-tool.mjs.map +2 -2
  167. package/build-module/components/global-styles/advanced-panel.mjs +23 -15
  168. package/build-module/components/global-styles/advanced-panel.mjs.map +2 -2
  169. package/build-module/components/global-styles/background-panel.mjs +3 -3
  170. package/build-module/components/global-styles/background-panel.mjs.map +2 -2
  171. package/build-module/components/global-styles/border-panel.mjs +2 -0
  172. package/build-module/components/global-styles/border-panel.mjs.map +2 -2
  173. package/build-module/components/global-styles/dimensions-panel.mjs +3 -4
  174. package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
  175. package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
  176. package/build-module/components/grid/grid-item-resizer.mjs.map +1 -1
  177. package/build-module/components/grid/grid-visualizer.mjs.map +1 -1
  178. package/build-module/components/iframe/index.mjs +6 -3
  179. package/build-module/components/iframe/index.mjs.map +2 -2
  180. package/build-module/components/image-editor/use-transform-image.mjs.map +1 -1
  181. package/build-module/components/inner-blocks/use-inner-block-template-sync.mjs +3 -1
  182. package/build-module/components/inner-blocks/use-inner-block-template-sync.mjs.map +2 -2
  183. package/build-module/components/inserter/get-appender-label.mjs.map +1 -1
  184. package/build-module/components/inserter/hooks/use-patterns-state.mjs +1 -1
  185. package/build-module/components/inserter/hooks/use-patterns-state.mjs.map +2 -2
  186. package/build-module/components/inserter/index.mjs +185 -222
  187. package/build-module/components/inserter/index.mjs.map +3 -3
  188. package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
  189. package/build-module/components/inserter/search-items.mjs.map +1 -1
  190. package/build-module/components/inserter/search-results.mjs +1 -1
  191. package/build-module/components/inserter/search-results.mjs.map +2 -2
  192. package/build-module/components/inspector-controls/fill.mjs +1 -3
  193. package/build-module/components/inspector-controls/fill.mjs.map +2 -2
  194. package/build-module/components/inspector-controls-tabs/index.mjs.map +2 -2
  195. package/build-module/components/inspector-controls-tabs/styles-tab.mjs +1 -1
  196. package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
  197. package/build-module/components/keyboard-shortcuts/index.mjs.map +1 -1
  198. package/build-module/components/line-height-control/index.mjs.map +1 -1
  199. package/build-module/components/link-control/index.mjs +1 -1
  200. package/build-module/components/link-control/index.mjs.map +1 -1
  201. package/build-module/components/link-control/normalize-url.mjs.map +1 -1
  202. package/build-module/components/list-view/block-select-button.mjs +10 -12
  203. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  204. package/build-module/components/list-view/block.mjs +2 -1
  205. package/build-module/components/list-view/block.mjs.map +2 -2
  206. package/build-module/components/list-view/utils.mjs.map +1 -1
  207. package/build-module/components/preset-input-control/custom-value-controls.mjs.map +2 -2
  208. package/build-module/components/provider/index.mjs.map +1 -1
  209. package/build-module/components/provider/use-block-sync.mjs +11 -2
  210. package/build-module/components/provider/use-block-sync.mjs.map +2 -2
  211. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs +5 -5
  212. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs.map +2 -2
  213. package/build-module/components/rich-text/event-listeners/delete.mjs +4 -4
  214. package/build-module/components/rich-text/event-listeners/delete.mjs.map +2 -2
  215. package/build-module/components/rich-text/event-listeners/enter.mjs +7 -2
  216. package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
  217. package/build-module/components/rich-text/event-listeners/input-events.mjs +4 -4
  218. package/build-module/components/rich-text/event-listeners/input-events.mjs.map +2 -2
  219. package/build-module/components/rich-text/event-listeners/input-rules.mjs +17 -4
  220. package/build-module/components/rich-text/event-listeners/input-rules.mjs.map +2 -2
  221. package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs +4 -4
  222. package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs.map +2 -2
  223. package/build-module/components/rich-text/event-listeners/paste-handler.mjs.map +1 -1
  224. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs +4 -4
  225. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs.map +2 -2
  226. package/build-module/components/rich-text/event-listeners/shortcuts.mjs +4 -4
  227. package/build-module/components/rich-text/event-listeners/shortcuts.mjs.map +2 -2
  228. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs +4 -4
  229. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs.map +2 -2
  230. package/build-module/components/rich-text/index.mjs +1 -23
  231. package/build-module/components/rich-text/index.mjs.map +2 -2
  232. package/build-module/components/rich-text/prevent-event-discovery.mjs +1 -1
  233. package/build-module/components/rich-text/prevent-event-discovery.mjs.map +1 -1
  234. package/build-module/components/use-block-commands/index.mjs +5 -5
  235. package/build-module/components/use-block-commands/index.mjs.map +2 -2
  236. package/build-module/components/writing-flow/use-tab-nav.mjs.map +1 -1
  237. package/build-module/hooks/anchor.mjs +12 -16
  238. package/build-module/hooks/anchor.mjs.map +2 -2
  239. package/build-module/hooks/background.mjs.map +1 -1
  240. package/build-module/hooks/block-fields/index.mjs +13 -2
  241. package/build-module/hooks/block-fields/index.mjs.map +2 -2
  242. package/build-module/hooks/border.mjs +1 -4
  243. package/build-module/hooks/border.mjs.map +2 -2
  244. package/build-module/hooks/color.mjs +2 -5
  245. package/build-module/hooks/color.mjs.map +2 -2
  246. package/build-module/hooks/dimensions.mjs +13 -6
  247. package/build-module/hooks/dimensions.mjs.map +2 -2
  248. package/build-module/hooks/fit-text.mjs +11 -0
  249. package/build-module/hooks/fit-text.mjs.map +2 -2
  250. package/build-module/hooks/layout-child.mjs +27 -2
  251. package/build-module/hooks/layout-child.mjs.map +2 -2
  252. package/build-module/hooks/list-view.mjs +10 -7
  253. package/build-module/hooks/list-view.mjs.map +2 -2
  254. package/build-module/hooks/position.mjs +20 -23
  255. package/build-module/hooks/position.mjs.map +2 -2
  256. package/build-module/hooks/spacing-visualizer.mjs.map +1 -1
  257. package/build-module/hooks/state-utils.mjs.map +1 -1
  258. package/build-module/hooks/style.mjs +44 -3
  259. package/build-module/hooks/style.mjs.map +2 -2
  260. package/build-module/hooks/supports.mjs +0 -7
  261. package/build-module/hooks/supports.mjs.map +2 -2
  262. package/build-module/private-apis.mjs +8 -0
  263. package/build-module/private-apis.mjs.map +2 -2
  264. package/build-module/store/actions.mjs +7 -3
  265. package/build-module/store/actions.mjs.map +2 -2
  266. package/build-module/store/private-actions.mjs +1 -2
  267. package/build-module/store/private-actions.mjs.map +2 -2
  268. package/build-module/store/private-selectors.mjs +39 -1
  269. package/build-module/store/private-selectors.mjs.map +2 -2
  270. package/build-module/store/reducer.mjs +14 -6
  271. package/build-module/store/reducer.mjs.map +2 -2
  272. package/build-module/store/selectors.mjs +62 -42
  273. package/build-module/store/selectors.mjs.map +2 -2
  274. package/build-module/utils/dom.mjs.map +1 -1
  275. package/build-module/utils/selection.mjs +1 -1
  276. package/build-style/content-rtl.css +12 -0
  277. package/build-style/content.css +12 -0
  278. package/build-style/style-rtl.css +26 -8
  279. package/build-style/style.css +26 -8
  280. package/package.json +54 -46
  281. package/src/components/block-breadcrumb/README.md +2 -2
  282. package/src/components/block-card/index.js +7 -13
  283. package/src/components/block-compare/README.md +6 -6
  284. package/src/components/block-compare/index.js +1 -3
  285. package/src/components/block-inspector/index.js +2 -10
  286. package/src/components/block-patterns-list/index.js +1 -2
  287. package/src/components/block-preview/README.md +1 -1
  288. package/src/components/block-quick-navigation/index.js +7 -7
  289. package/src/components/block-switcher/block-transformations-menu.js +16 -18
  290. package/src/components/block-switcher/index.js +4 -4
  291. package/src/components/block-tools/use-block-toolbar-popover-props.js +10 -4
  292. package/src/components/block-types-list/README.md +0 -19
  293. package/src/components/child-layout-control/index.js +65 -20
  294. package/src/components/child-layout-control/test/index.js +64 -0
  295. package/src/components/dimensions-tool/index.js +4 -9
  296. package/src/components/dimensions-tool/scale-tool.js +1 -2
  297. package/src/components/dimensions-tool/test/index.js +89 -11
  298. package/src/components/global-styles/advanced-panel.js +5 -1
  299. package/src/components/global-styles/background-panel.js +3 -3
  300. package/src/components/global-styles/border-panel.js +2 -0
  301. package/src/components/global-styles/dimensions-panel.js +13 -15
  302. package/src/components/global-styles/shadow-panel-components.js +0 -1
  303. package/src/components/iframe/index.js +8 -3
  304. package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -1
  305. package/src/components/inserter/hooks/use-patterns-state.js +1 -1
  306. package/src/components/inserter/index.js +257 -288
  307. package/src/components/inserter/media-tab/media-preview.js +0 -1
  308. package/src/components/inserter/search-results.js +1 -3
  309. package/src/components/inspector-controls/fill.js +6 -8
  310. package/src/components/inspector-controls-tabs/index.js +0 -1
  311. package/src/components/inspector-controls-tabs/styles-tab.js +5 -1
  312. package/src/components/justify-content-control/README.md +1 -1
  313. package/src/components/list-view/block-select-button.js +9 -14
  314. package/src/components/list-view/block.js +1 -0
  315. package/src/components/media-placeholder/README.md +1 -29
  316. package/src/components/media-upload/README.md +0 -19
  317. package/src/components/preset-input-control/custom-value-controls.js +0 -1
  318. package/src/components/provider/test/use-block-sync.js +40 -0
  319. package/src/components/provider/use-block-sync.js +12 -2
  320. package/src/components/rich-text/event-listeners/before-input-rules.js +5 -4
  321. package/src/components/rich-text/event-listeners/delete.js +9 -4
  322. package/src/components/rich-text/event-listeners/enter.js +9 -2
  323. package/src/components/rich-text/event-listeners/input-events.js +13 -4
  324. package/src/components/rich-text/event-listeners/input-rules.js +20 -4
  325. package/src/components/rich-text/event-listeners/insert-replacement-text.js +9 -4
  326. package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +9 -4
  327. package/src/components/rich-text/event-listeners/shortcuts.js +13 -4
  328. package/src/components/rich-text/event-listeners/undo-automatic-change.js +5 -4
  329. package/src/components/rich-text/index.js +1 -33
  330. package/src/components/unit-control/README.md +1 -1
  331. package/src/components/url-popover/README.md +1 -1
  332. package/src/components/use-block-commands/index.js +5 -5
  333. package/src/hooks/anchor.js +9 -17
  334. package/src/hooks/block-fields/index.js +27 -2
  335. package/src/hooks/border.js +1 -5
  336. package/src/hooks/color.js +1 -6
  337. package/src/hooks/dimensions.js +15 -8
  338. package/src/hooks/fit-text.js +16 -0
  339. package/src/hooks/layout-child.js +41 -2
  340. package/src/hooks/list-view.js +10 -11
  341. package/src/hooks/position.js +23 -27
  342. package/src/hooks/style.js +80 -2
  343. package/src/hooks/supports.js +0 -9
  344. package/src/hooks/test/dimensions.js +71 -0
  345. package/src/hooks/test/layout-child.js +165 -0
  346. package/src/hooks/test/style.js +126 -4
  347. package/src/private-apis.js +8 -0
  348. package/src/store/actions.js +13 -3
  349. package/src/store/private-actions.js +1 -4
  350. package/src/store/private-selectors.js +89 -0
  351. package/src/store/reducer.js +19 -7
  352. package/src/store/selectors.js +91 -53
  353. package/src/store/test/actions.js +21 -0
  354. package/src/store/test/private-selectors.js +138 -0
  355. package/src/store/test/reducer.js +46 -0
  356. package/src/store/test/selectors.js +77 -0
  357. package/build/components/media-upload-progress/constants.cjs +0 -46
  358. package/build/components/media-upload-progress/constants.cjs.map +0 -7
  359. package/build/components/rich-text/native/format-edit.cjs +0 -60
  360. package/build/components/rich-text/native/format-edit.cjs.map +0 -7
  361. package/build/components/rich-text/native/index.cjs +0 -28
  362. package/build/components/rich-text/native/index.cjs.map +0 -7
  363. package/build/components/rich-text/native/use-format-types.cjs +0 -139
  364. package/build/components/rich-text/native/use-format-types.cjs.map +0 -7
  365. package/build-module/components/media-upload-progress/constants.mjs +0 -16
  366. package/build-module/components/media-upload-progress/constants.mjs.map +0 -7
  367. package/build-module/components/rich-text/native/format-edit.mjs +0 -39
  368. package/build-module/components/rich-text/native/format-edit.mjs.map +0 -7
  369. package/build-module/components/rich-text/native/index.mjs +0 -7
  370. package/build-module/components/rich-text/native/index.mjs.map +0 -7
  371. package/build-module/components/rich-text/native/use-format-types.mjs +0 -114
  372. package/build-module/components/rich-text/native/use-format-types.mjs.map +0 -7
  373. package/src/components/audio-player/audio-url-parser.native.js +0 -20
  374. package/src/components/audio-player/index.native.js +0 -225
  375. package/src/components/audio-player/styles.native.scss +0 -114
  376. package/src/components/audio-player/test/audio-url-parser.native.js +0 -53
  377. package/src/components/block-alignment-control/test/index.native.js +0 -37
  378. package/src/components/block-alignment-control/ui.native.js +0 -86
  379. package/src/components/block-caption/README.md +0 -104
  380. package/src/components/block-caption/index.native.js +0 -89
  381. package/src/components/block-caption/styles.native.scss +0 -7
  382. package/src/components/block-controls/slot.native.js +0 -33
  383. package/src/components/block-draggable/draggable-chip.native.js +0 -49
  384. package/src/components/block-draggable/dropping-insertion-point.native.js +0 -181
  385. package/src/components/block-draggable/dropping-insertion-point.native.scss +0 -8
  386. package/src/components/block-draggable/index.native.js +0 -467
  387. package/src/components/block-draggable/style.native.scss +0 -19
  388. package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +0 -73
  389. package/src/components/block-draggable/test/helpers.native.js +0 -182
  390. package/src/components/block-draggable/test/index.native.js +0 -419
  391. package/src/components/block-draggable/use-scroll-when-dragging.native.js +0 -135
  392. package/src/components/block-edit/edit.native.js +0 -49
  393. package/src/components/block-edit/test/edit.native.js +0 -65
  394. package/src/components/block-heading-level-dropdown/index.native.js +0 -68
  395. package/src/components/block-icon/index.native.js +0 -47
  396. package/src/components/block-icon/style.native.scss +0 -7
  397. package/src/components/block-list/block-crash-boundary.native.js +0 -43
  398. package/src/components/block-list/block-crash-warning.native.js +0 -21
  399. package/src/components/block-list/block-invalid-warning.native.js +0 -70
  400. package/src/components/block-list/block-list-context.native.js +0 -172
  401. package/src/components/block-list/block-list-item-cell.native.js +0 -62
  402. package/src/components/block-list/block-list-item.native.js +0 -209
  403. package/src/components/block-list/block-list-item.native.scss +0 -16
  404. package/src/components/block-list/block-outline.native.js +0 -77
  405. package/src/components/block-list/block-selection-button.native.js +0 -100
  406. package/src/components/block-list/block-selection-button.native.scss +0 -34
  407. package/src/components/block-list/block.native.js +0 -716
  408. package/src/components/block-list/block.native.scss +0 -62
  409. package/src/components/block-list/grid-item.native.js +0 -58
  410. package/src/components/block-list/index.native.js +0 -437
  411. package/src/components/block-list/insertion-point.native.js +0 -36
  412. package/src/components/block-list/style.native.scss +0 -117
  413. package/src/components/block-list/test/block-invalid-warning.native.js +0 -62
  414. package/src/components/block-list/test/block-list-context.native.js +0 -243
  415. package/src/components/block-list/test/block-outline.native.js +0 -255
  416. package/src/components/block-list/test/fixtures/block-list-context.native.js +0 -79
  417. package/src/components/block-list/test/index.native.js +0 -205
  418. package/src/components/block-list/use-block-props/index.native.js +0 -10
  419. package/src/components/block-list/use-scroll-upon-insertion.native.js +0 -52
  420. package/src/components/block-list-appender/index.native.js +0 -70
  421. package/src/components/block-list-appender/style.native.scss +0 -8
  422. package/src/components/block-media-update-progress/README.md +0 -100
  423. package/src/components/block-media-update-progress/index.native.js +0 -299
  424. package/src/components/block-media-update-progress/styles.native.scss +0 -9
  425. package/src/components/block-media-update-progress/test/index.native.js +0 -543
  426. package/src/components/block-mover/index.native.js +0 -193
  427. package/src/components/block-mover/mover-description.native.js +0 -155
  428. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +0 -218
  429. package/src/components/block-mover/test/index.native.js +0 -186
  430. package/src/components/block-settings/button.native.js +0 -41
  431. package/src/components/block-settings/container.native.js +0 -91
  432. package/src/components/block-settings/container.native.scss +0 -4
  433. package/src/components/block-settings/index.native.js +0 -5
  434. package/src/components/block-styles/index.native.js +0 -94
  435. package/src/components/block-styles/preview.native.js +0 -109
  436. package/src/components/block-styles/style.native.scss +0 -64
  437. package/src/components/block-switcher/block-transformations-menu.native.js +0 -91
  438. package/src/components/block-toolbar/block-toolbar-menu.native.js +0 -477
  439. package/src/components/block-toolbar/index.native.js +0 -126
  440. package/src/components/block-toolbar/test/__snapshots__/block-toolbar-menu.native.js.snap +0 -125
  441. package/src/components/block-toolbar/test/block-toolbar-menu.native.js +0 -405
  442. package/src/components/block-toolbar/test/index.native.js +0 -36
  443. package/src/components/block-types-list/index.native.js +0 -175
  444. package/src/components/block-types-list/style.native.scss +0 -25
  445. package/src/components/block-variation-picker/index.native.js +0 -107
  446. package/src/components/block-variation-picker/style.native.scss +0 -32
  447. package/src/components/button-block-appender/index.native.js +0 -92
  448. package/src/components/button-block-appender/styles.native.scss +0 -43
  449. package/src/components/caption/README.md +0 -44
  450. package/src/components/caption/index.native.js +0 -61
  451. package/src/components/colors-gradients/panel-color-gradient-settings.native.js +0 -59
  452. package/src/components/contrast-checker/index.native.js +0 -113
  453. package/src/components/contrast-checker/style.native.scss +0 -26
  454. package/src/components/convert-to-group-buttons/index.native.js +0 -79
  455. package/src/components/default-block-appender/index.native.js +0 -113
  456. package/src/components/default-block-appender/style.native.scss +0 -18
  457. package/src/components/floating-toolbar/floatingToolbar.android.scss +0 -4
  458. package/src/components/floating-toolbar/floatingToolbar.ios.scss +0 -3
  459. package/src/components/floating-toolbar/index.native.js +0 -141
  460. package/src/components/floating-toolbar/styles.native.scss +0 -43
  461. package/src/components/font-sizes/index.native.js +0 -7
  462. package/src/components/global-styles/color-panel.native.js +0 -207
  463. package/src/components/global-styles/test/use-global-styles-context.native.js +0 -435
  464. package/src/components/global-styles/use-global-styles-context.native.js +0 -592
  465. package/src/components/gradients/index.native.js +0 -2
  466. package/src/components/image-link-destinations/index.native.js +0 -152
  467. package/src/components/image-link-destinations/style.native.scss +0 -16
  468. package/src/components/index.native.js +0 -108
  469. package/src/components/inner-blocks/constants.native.js +0 -5
  470. package/src/components/inner-blocks/index.native.js +0 -221
  471. package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +0 -124
  472. package/src/components/inserter/block-types-tab.native.js +0 -76
  473. package/src/components/inserter/hooks/use-block-type-impressions.native.js +0 -47
  474. package/src/components/inserter/hooks/use-clipboard-block.native.js +0 -40
  475. package/src/components/inserter/index.native.js +0 -424
  476. package/src/components/inserter/menu.native.js +0 -237
  477. package/src/components/inserter/no-results.native.js +0 -49
  478. package/src/components/inserter/reusable-blocks-tab.native.js +0 -45
  479. package/src/components/inserter/search-results.native.js +0 -67
  480. package/src/components/inserter/style.native.scss +0 -83
  481. package/src/components/inserter/tabs.native.js +0 -152
  482. package/src/components/inserter/test/__snapshots__/index.native.js.snap +0 -117
  483. package/src/components/inserter/test/fixtures/index.native.js +0 -12
  484. package/src/components/inserter/test/index.native.js +0 -273
  485. package/src/components/inserter/test/reusable-blocks-tab.native.js +0 -62
  486. package/src/components/inserter/test/utils.native.js +0 -37
  487. package/src/components/inserter/utils.native.js +0 -46
  488. package/src/components/inserter-button/index.native.js +0 -108
  489. package/src/components/inserter-button/style.native.scss +0 -72
  490. package/src/components/inspector-controls/fill.native.js +0 -62
  491. package/src/components/inspector-controls/slot.native.js +0 -35
  492. package/src/components/inspector-controls-tabs/advanced-controls-panel.native.js +0 -31
  493. package/src/components/line-height-control/index.native.js +0 -28
  494. package/src/components/media-placeholder/index.native.js +0 -258
  495. package/src/components/media-placeholder/styles.native.scss +0 -108
  496. package/src/components/media-replace-flow/index.native.js +0 -12
  497. package/src/components/media-upload/constants.native.js +0 -14
  498. package/src/components/media-upload/index.native.js +0 -356
  499. package/src/components/media-upload/style.native.scss +0 -4
  500. package/src/components/media-upload/test/index.native.js +0 -172
  501. package/src/components/media-upload-progress/README.md +0 -100
  502. package/src/components/media-upload-progress/constants.js +0 -6
  503. package/src/components/media-upload-progress/index.native.js +0 -233
  504. package/src/components/media-upload-progress/styles.native.scss +0 -15
  505. package/src/components/media-upload-progress/test/index.native.js +0 -220
  506. package/src/components/plain-text/index.native.js +0 -164
  507. package/src/components/plain-text/style.native.scss +0 -10
  508. package/src/components/provider/index.native.js +0 -32
  509. package/src/components/rich-text/embed-handler-picker.native.js +0 -65
  510. package/src/components/rich-text/file-paste-handler.native.js +0 -3
  511. package/src/components/rich-text/format-toolbar/index.native.js +0 -21
  512. package/src/components/rich-text/format-toolbar-container.native.js +0 -16
  513. package/src/components/rich-text/index.native.js +0 -701
  514. package/src/components/rich-text/input-event.native.js +0 -10
  515. package/src/components/rich-text/native/format-edit.js +0 -44
  516. package/src/components/rich-text/native/get-format-colors.native.js +0 -47
  517. package/src/components/rich-text/native/index.js +0 -1
  518. package/src/components/rich-text/native/index.native.js +0 -1389
  519. package/src/components/rich-text/native/style.native.scss +0 -28
  520. package/src/components/rich-text/native/test/__snapshots__/index.native.js.snap +0 -79
  521. package/src/components/rich-text/native/test/index.native.js +0 -345
  522. package/src/components/rich-text/native/test/performance/rich-text.native.js +0 -44
  523. package/src/components/rich-text/native/toolbar-button-with-options.native.js +0 -61
  524. package/src/components/rich-text/native/use-format-types.js +0 -146
  525. package/src/components/rich-text/remove-browser-shortcuts.native.js +0 -1
  526. package/src/components/rich-text/shortcut.native.js +0 -10
  527. package/src/components/ungroup-button/README.md +0 -23
  528. package/src/components/ungroup-button/index.native.js +0 -77
  529. package/src/components/unsupported-block-details/index.native.js +0 -187
  530. package/src/components/unsupported-block-details/style.native.scss +0 -56
  531. package/src/components/url-input/index.native.js +0 -33
  532. package/src/components/use-block-drop-zone/index.native.js +0 -207
  533. package/src/components/use-on-block-drop/index.native.js +0 -115
  534. package/src/components/use-unsupported-block-editor/index.native.js +0 -59
  535. package/src/components/video-player/gridicon-play.native.js +0 -13
  536. package/src/components/video-player/index.native.js +0 -133
  537. package/src/components/video-player/styles.native.scss +0 -29
  538. package/src/components/warning/index.native.js +0 -64
  539. package/src/components/warning/style.native.scss +0 -47
  540. package/src/hooks/align.native.js +0 -49
  541. package/src/hooks/custom-class-name.native.js +0 -70
  542. package/src/hooks/index.native.js +0 -36
  543. package/src/hooks/layout.native.js +0 -23
  544. package/src/hooks/test/__snapshots__/align.native.js.snap +0 -73
  545. package/src/hooks/test/__snapshots__/anchor.native.js.snap +0 -7
  546. package/src/hooks/test/align.native.js +0 -134
  547. package/src/hooks/test/anchor.native.js +0 -32
  548. package/src/hooks/test/use-editor-wrapper-styles.native.js +0 -282
  549. package/src/hooks/typography.native.js +0 -60
  550. package/src/hooks/use-editor-wrapper-styles.native.js +0 -250
  551. package/src/hooks/use-editor-wrapper-styles.native.scss +0 -12
  552. package/src/index.native.js +0 -6
  553. package/src/private-apis.native.js +0 -21
  554. package/src/store/defaults.native.js +0 -23
@@ -1,73 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`BlockDraggable moves blocks: Initial order 1`] = `
4
- "<!-- wp:paragraph -->
5
- <p>This is a paragraph.</p>
6
- <!-- /wp:paragraph -->
7
-
8
- <!-- wp:image {"sizeSlug":"large"} -->
9
- <figure class="wp-block-image size-large"><img src="https://cldup.com/cXyG__fTLN.jpg" alt=""/></figure>
10
- <!-- /wp:image -->
11
-
12
- <!-- wp:spacer -->
13
- <div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
14
- <!-- /wp:spacer -->
15
-
16
- <!-- wp:gallery {"linkTo":"none"} -->
17
- <figure class="wp-block-gallery has-nested-images columns-default is-cropped"><!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
18
- <figure class="wp-block-image size-large"><img src="https://cldup.com/cXyG__fTLN.jpg" alt=""/></figure>
19
- <!-- /wp:image -->
20
-
21
- <!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
22
- <figure class="wp-block-image size-large"><img src="https://cldup.com/cXyG__fTLN.jpg" alt=""/></figure>
23
- <!-- /wp:image --></figure>
24
- <!-- /wp:gallery -->"
25
- `;
26
-
27
- exports[`BlockDraggable moves blocks: Paragraph block moved from first to second position 1`] = `
28
- "<!-- wp:image {"sizeSlug":"large"} -->
29
- <figure class="wp-block-image size-large"><img src="https://cldup.com/cXyG__fTLN.jpg" alt=""/></figure>
30
- <!-- /wp:image -->
31
-
32
- <!-- wp:paragraph -->
33
- <p>This is a paragraph.</p>
34
- <!-- /wp:paragraph -->
35
-
36
- <!-- wp:spacer -->
37
- <div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
38
- <!-- /wp:spacer -->
39
-
40
- <!-- wp:gallery {"linkTo":"none"} -->
41
- <figure class="wp-block-gallery has-nested-images columns-default is-cropped"><!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
42
- <figure class="wp-block-image size-large"><img src="https://cldup.com/cXyG__fTLN.jpg" alt=""/></figure>
43
- <!-- /wp:image -->
44
-
45
- <!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
46
- <figure class="wp-block-image size-large"><img src="https://cldup.com/cXyG__fTLN.jpg" alt=""/></figure>
47
- <!-- /wp:image --></figure>
48
- <!-- /wp:gallery -->"
49
- `;
50
-
51
- exports[`BlockDraggable moves blocks: Spacer block moved from third to first position 1`] = `
52
- "<!-- wp:spacer -->
53
- <div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
54
- <!-- /wp:spacer -->
55
-
56
- <!-- wp:image {"sizeSlug":"large"} -->
57
- <figure class="wp-block-image size-large"><img src="https://cldup.com/cXyG__fTLN.jpg" alt=""/></figure>
58
- <!-- /wp:image -->
59
-
60
- <!-- wp:paragraph -->
61
- <p>This is a paragraph.</p>
62
- <!-- /wp:paragraph -->
63
-
64
- <!-- wp:gallery {"linkTo":"none"} -->
65
- <figure class="wp-block-gallery has-nested-images columns-default is-cropped"><!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
66
- <figure class="wp-block-image size-large"><img src="https://cldup.com/cXyG__fTLN.jpg" alt=""/></figure>
67
- <!-- /wp:image -->
68
-
69
- <!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
70
- <figure class="wp-block-image size-large"><img src="https://cldup.com/cXyG__fTLN.jpg" alt=""/></figure>
71
- <!-- /wp:image --></figure>
72
- <!-- /wp:gallery -->"
73
- `;
@@ -1,182 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import {
5
- act,
6
- advanceAnimationByFrames,
7
- fireEvent,
8
- initializeEditor,
9
- screen,
10
- waitForStoreResolvers,
11
- within,
12
- } from 'test/helpers';
13
- import { fireGestureHandler } from 'react-native-gesture-handler/jest-utils';
14
- import { State } from 'react-native-gesture-handler';
15
-
16
- // Touch event type constants have been extracted from original source code, as they are not exported in the package.
17
- // Reference: https://github.com/software-mansion/react-native-gesture-handler/blob/90895e5f38616a6be256fceec6c6a391cd9ad7c7/src/TouchEventType.ts
18
- export const TouchEventType = {
19
- UNDETERMINED: 0,
20
- TOUCHES_DOWN: 1,
21
- TOUCHES_MOVE: 2,
22
- TOUCHES_UP: 3,
23
- TOUCHES_CANCELLED: 4,
24
- };
25
-
26
- const DEFAULT_TOUCH_EVENTS = [
27
- {
28
- id: 1,
29
- eventType: TouchEventType.TOUCHES_DOWN,
30
- x: 0,
31
- y: 0,
32
- },
33
- ];
34
-
35
- /**
36
- * @typedef {Object} WPBlockWithLayout
37
- * @property {string} name Name of the block (e.g. Paragraph).
38
- * @property {string} html HTML content.
39
- * @property {Object} layout Layout data.
40
- * @property {Object} layout.x X position.
41
- * @property {Object} layout.y Y position.
42
- * @property {Object} layout.width Width.
43
- * @property {Object} layout.height Height.
44
- */
45
-
46
- /**
47
- * Initialize the editor with an array of blocks that include their HTML and layout.
48
- *
49
- * @param {WPBlockWithLayout[]} blocks Initial blocks.
50
- *
51
- * @return {import('@testing-library/react-native').RenderAPI} The Testing Library screen.
52
- */
53
- export const initializeWithBlocksLayouts = async ( blocks ) => {
54
- const initialHtml = blocks.map( ( block ) => block.html ).join( '\n' );
55
-
56
- await initializeEditor( { initialHtml } );
57
-
58
- const waitPromises = [];
59
- const blockListItems = screen.getAllByTestId( 'block-list-item-cell' );
60
- // Check that rendered block list items match expected block count.
61
- expect( blockListItems.length ).toBe( blocks.length );
62
-
63
- blocks.forEach( ( block, index ) => {
64
- const element = blockListItems[ index ];
65
- // "onLayout" event will populate the blocks layouts data.
66
- fireEvent( element, 'layout', {
67
- nativeEvent: { layout: block.layout },
68
- } );
69
- if ( block.nestedBlocks ) {
70
- // Nested blocks are rendered via the FlatList of the inner block list.
71
- // In order to render the items of a FlatList, it's required to trigger the
72
- // "onLayout" event. Additionally, the call is wrapped over "waitForStoreResolvers"
73
- // because the nested blocks might make API requests (e.g. the Gallery block).
74
- waitPromises.push(
75
- waitForStoreResolvers( () =>
76
- fireEvent(
77
- within( element ).getByTestId( 'block-list-wrapper' ),
78
- 'layout',
79
- {
80
- nativeEvent: {
81
- layout: {
82
- width: block.layout.width,
83
- height: block.layout.height,
84
- },
85
- },
86
- }
87
- )
88
- )
89
- );
90
-
91
- block.nestedBlocks.forEach( ( nestedBlock, nestedIndex ) => {
92
- const nestedA11yLabel = new RegExp(
93
- `${ nestedBlock.name } Block\\. Row ${ nestedIndex + 1 }`
94
- );
95
- const [ nestedElement ] =
96
- within( element ).getAllByLabelText( nestedA11yLabel );
97
- fireEvent( nestedElement, 'layout', {
98
- nativeEvent: { layout: nestedBlock.layout },
99
- } );
100
- } );
101
- }
102
- } );
103
- await Promise.all( waitPromises );
104
-
105
- return screen;
106
- };
107
-
108
- /**
109
- * Fires long-press gesture event on a block.
110
- *
111
- * @param {ReturnType<import('@testing-library/react-native').RenderAPI['getByTestId']>} block Block test instance.
112
- * @param {string} testID Id for querying the draggable trigger element.
113
- * @param {Object} [options] Configuration options for the gesture event.
114
- * @param {boolean} [options.failed] Determines if the gesture should fail.
115
- * @param {number} [options.triggerIndex] In case there are multiple draggable triggers, this specifies the index to use.
116
- */
117
- export const fireLongPress = (
118
- block,
119
- testID,
120
- { failed = false, triggerIndex } = {}
121
- ) => {
122
- const draggableTrigger =
123
- typeof triggerIndex !== 'undefined'
124
- ? within( block ).getAllByTestId( testID )[ triggerIndex ]
125
- : within( block ).getByTestId( testID );
126
- if ( failed ) {
127
- fireGestureHandler( draggableTrigger, [ { state: State.FAILED } ] );
128
- } else {
129
- fireGestureHandler( draggableTrigger, [
130
- { oldState: State.BEGAN, state: State.ACTIVE },
131
- { state: State.ACTIVE },
132
- { state: State.END },
133
- ] );
134
- }
135
- // Advance timers one frame to ensure that shared values
136
- // are updated and trigger animation reactions.
137
- act( () => advanceAnimationByFrames( 1 ) );
138
- };
139
-
140
- /**
141
- * Fires pan gesture event on a BlockDraggable component.
142
- *
143
- * @param {ReturnType<import('@testing-library/react-native').RenderAPI['getByTestId']>} blockDraggable BlockDraggable test instance.
144
- * @param {Object} [touchEvents] Array of touch events to dispatch on the pan gesture.
145
- */
146
- export const firePanGesture = (
147
- blockDraggable,
148
- touchEvents = DEFAULT_TOUCH_EVENTS
149
- ) => {
150
- const gestureTouchEvents = touchEvents.map(
151
- ( { eventType, ...touchEvent } ) => ( {
152
- allTouches: [ touchEvent ],
153
- eventType,
154
- } )
155
- );
156
- fireGestureHandler( blockDraggable, [
157
- // TOUCHES_DOWN event is only received on ACTIVE state, so we have to fire it manually.
158
- { oldState: State.BEGAN, state: State.ACTIVE },
159
- ...gestureTouchEvents,
160
- { state: State.END },
161
- ] );
162
- // Advance timers one frame to ensure that shared values
163
- // are updated and trigger animation reactions.
164
- act( () => advanceAnimationByFrames( 1 ) );
165
- };
166
-
167
- /**
168
- * Gets the draggable chip element.
169
- *
170
- * @param {import('@testing-library/react-native').RenderAPI} screen The Testing Library screen.
171
- *
172
- * @return {ReturnType<import('@testing-library/react-native').RenderAPI['getByTestId']>} Draggable chip test instance.
173
- */
174
- export const getDraggableChip = ( { getByTestId } ) => {
175
- let draggableChip;
176
- try {
177
- draggableChip = getByTestId( 'draggable-chip' );
178
- } catch {
179
- // NOOP.
180
- }
181
- return draggableChip;
182
- };
@@ -1,419 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import {
5
- fireEvent,
6
- getEditorHtml,
7
- within,
8
- waitForStoreResolvers,
9
- withReanimatedTimer,
10
- } from 'test/helpers';
11
- import { getByGestureTestId } from 'react-native-gesture-handler/jest-utils';
12
- import TextInputState from 'react-native/Libraries/Components/TextInput/TextInputState';
13
-
14
- /**
15
- * WordPress dependencies
16
- */
17
- import { getBlockTypes, unregisterBlockType } from '@wordpress/blocks';
18
- import { registerCoreBlocks } from '@wordpress/block-library';
19
-
20
- /**
21
- * Internal dependencies
22
- */
23
- import {
24
- initializeWithBlocksLayouts,
25
- fireLongPress,
26
- firePanGesture,
27
- TouchEventType,
28
- getDraggableChip,
29
- } from './helpers';
30
-
31
- beforeAll( () => {
32
- // Register all core blocks
33
- registerCoreBlocks();
34
- } );
35
-
36
- afterAll( () => {
37
- // Clean up registered blocks
38
- getBlockTypes().forEach( ( block ) => {
39
- unregisterBlockType( block.name );
40
- } );
41
- } );
42
-
43
- const TOUCH_EVENT_ID = 1;
44
- const BLOCKS = [
45
- {
46
- name: 'Paragraph',
47
- html: `
48
- <!-- wp:paragraph -->
49
- <p>This is a paragraph.</p>
50
- <!-- /wp:paragraph -->`,
51
- layout: { x: 0, y: 0, width: 100, height: 100 },
52
- },
53
- {
54
- name: 'Image',
55
- html: `
56
- <!-- wp:image {"sizeSlug":"large"} -->
57
- <figure class="wp-block-image size-large"><img src="https://cldup.com/cXyG__fTLN.jpg" alt=""/></figure>
58
- <!-- /wp:image -->`,
59
- layout: { x: 0, y: 100, width: 100, height: 100 },
60
- },
61
- {
62
- name: 'Spacer',
63
- html: `
64
- <!-- wp:spacer -->
65
- <div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
66
- <!-- /wp:spacer -->`,
67
- layout: { x: 0, y: 200, width: 100, height: 100 },
68
- },
69
- {
70
- name: 'Gallery',
71
- html: `
72
- <!-- wp:gallery {"linkTo":"none"} -->
73
- <figure class="wp-block-gallery has-nested-images columns-default is-cropped"><!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
74
- <figure class="wp-block-image size-large"><img src="https://cldup.com/cXyG__fTLN.jpg" alt=""/></figure>
75
- <!-- /wp:image -->
76
-
77
- <!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
78
- <figure class="wp-block-image size-large"><img src="https://cldup.com/cXyG__fTLN.jpg" alt=""/></figure>
79
- <!-- /wp:image --></figure>
80
- <!-- /wp:gallery -->`,
81
- layout: { x: 0, y: 300, width: 100, height: 100 },
82
- nestedBlocks: [
83
- { name: 'Image', layout: { x: 0, y: 300, width: 50, height: 50 } },
84
- { name: 'Image', layout: { x: 50, y: 300, width: 50, height: 50 } },
85
- ],
86
- },
87
- ];
88
-
89
- describe( 'BlockDraggable', () => {
90
- describe( 'drag mode', () => {
91
- describe( 'Text block', () => {
92
- it( 'enables drag mode when unselected', async () =>
93
- withReanimatedTimer( async () => {
94
- const screen = await initializeWithBlocksLayouts( BLOCKS );
95
-
96
- // Start dragging from block's content
97
- const [ paragraphBlock ] = screen.getAllByLabelText(
98
- /Paragraph Block\. Row 1/
99
- );
100
- fireLongPress(
101
- paragraphBlock,
102
- 'draggable-trigger-content'
103
- );
104
- expect( getDraggableChip( screen ) ).toBeVisible();
105
-
106
- // "firePanGesture" finishes the dragging gesture
107
- firePanGesture(
108
- getByGestureTestId( 'block-draggable-wrapper' )
109
- );
110
- expect( getDraggableChip( screen ) ).not.toBeDefined();
111
- } ) );
112
-
113
- it( 'enables drag mode when selected', async () =>
114
- withReanimatedTimer( async () => {
115
- const screen = await initializeWithBlocksLayouts( BLOCKS );
116
-
117
- const blockDraggableWrapper = getByGestureTestId(
118
- 'block-draggable-wrapper'
119
- );
120
-
121
- const [ paragraphBlock ] = screen.getAllByLabelText(
122
- /Paragraph Block\. Row 1/
123
- );
124
- fireEvent.press( paragraphBlock );
125
-
126
- // Start dragging from block's content
127
- fireLongPress(
128
- paragraphBlock,
129
- 'draggable-trigger-content'
130
- );
131
- expect( getDraggableChip( screen ) ).toBeVisible();
132
- // "firePanGesture" finishes the dragging gesture
133
- firePanGesture( blockDraggableWrapper );
134
- expect( getDraggableChip( screen ) ).not.toBeDefined();
135
- } ) );
136
-
137
- it( 'does not enable drag mode when selected and editing text', async () =>
138
- withReanimatedTimer( async () => {
139
- const screen = await initializeWithBlocksLayouts( BLOCKS );
140
-
141
- const [ paragraphBlock ] = screen.getAllByLabelText(
142
- /Paragraph Block\. Row 1/
143
- );
144
-
145
- // Select Paragraph block and start editing text
146
- fireEvent.press( paragraphBlock );
147
- fireEvent(
148
- within( paragraphBlock ).getByPlaceholderText(
149
- 'Start writing…'
150
- ),
151
- 'focus'
152
- );
153
-
154
- // Start dragging from block's content
155
- fireLongPress(
156
- paragraphBlock,
157
- 'draggable-trigger-content',
158
- { failed: true }
159
- );
160
- expect( getDraggableChip( screen ) ).not.toBeDefined();
161
- // Check that no text input has been unfocused to confirm
162
- // that editing text is still enabled.
163
- expect(
164
- TextInputState.blurTextInput
165
- ).not.toHaveBeenCalled();
166
- } ) );
167
-
168
- it( 'finishes editing text and enables drag mode when long-pressing over a different block', async () =>
169
- withReanimatedTimer( async () => {
170
- const screen = await initializeWithBlocksLayouts( BLOCKS );
171
-
172
- const [ paragraphBlock ] = screen.getAllByLabelText(
173
- /Paragraph Block\. Row 1/
174
- );
175
- const [ spacerBlock ] =
176
- screen.getAllByLabelText( /Spacer Block\. Row 3/ );
177
-
178
- // Select Paragraph block and start editing text
179
- fireEvent.press( paragraphBlock );
180
- fireEvent(
181
- within( paragraphBlock ).getByPlaceholderText(
182
- 'Start writing…'
183
- ),
184
- 'focus'
185
- );
186
-
187
- // Start dragging from a different block's content
188
- fireLongPress( spacerBlock, 'draggable-trigger-content' );
189
- expect( getDraggableChip( screen ) ).toBeVisible();
190
- // Check that any text input has been unfocused to confirm
191
- // that editing text finished.
192
- expect( TextInputState.blurTextInput ).toHaveBeenCalled();
193
- } ) );
194
- } );
195
-
196
- describe( 'Media block', () => {
197
- it( 'enables drag mode when unselected', async () =>
198
- withReanimatedTimer( async () => {
199
- const screen = await initializeWithBlocksLayouts( BLOCKS );
200
-
201
- // We select the first Image block as the Gallery block
202
- // also contains Image blocks.
203
- const [ imageBlock ] =
204
- screen.getAllByLabelText( /Image Block\. Row 2/ );
205
- // Start dragging from block's content
206
- fireLongPress( imageBlock, 'draggable-trigger-content' );
207
- expect( getDraggableChip( screen ) ).toBeVisible();
208
-
209
- // "firePanGesture" finishes the dragging gesture
210
- firePanGesture(
211
- getByGestureTestId( 'block-draggable-wrapper' )
212
- );
213
- expect( getDraggableChip( screen ) ).not.toBeDefined();
214
- } ) );
215
-
216
- it( 'enables drag mode when selected', async () =>
217
- withReanimatedTimer( async () => {
218
- const screen = await initializeWithBlocksLayouts( BLOCKS );
219
- const blockDraggableWrapper = getByGestureTestId(
220
- 'block-draggable-wrapper'
221
- );
222
-
223
- // We select the first Image block as the Gallery block
224
- // also contains Image blocks.
225
- const [ imageBlock ] =
226
- screen.getAllByLabelText( /Image Block\. Row 2/ );
227
- fireEvent.press( imageBlock );
228
-
229
- // Start dragging from block's content
230
- fireLongPress( imageBlock, 'draggable-trigger-content' );
231
- expect( getDraggableChip( screen ) ).toBeVisible();
232
- // "firePanGesture" finishes the dragging gesture
233
- firePanGesture( blockDraggableWrapper );
234
- expect( getDraggableChip( screen ) ).not.toBeDefined();
235
- } ) );
236
- } );
237
-
238
- describe( 'Nested block', () => {
239
- it( 'enables drag mode when unselected', async () =>
240
- withReanimatedTimer( async () => {
241
- const screen = await initializeWithBlocksLayouts( BLOCKS );
242
-
243
- // Start dragging from block's content, specifically the first
244
- // trigger index, which corresponds to the Gallery block content.
245
- const [ galleryBlock ] = screen.getAllByLabelText(
246
- /Gallery Block\. Row 4/
247
- );
248
- fireLongPress( galleryBlock, 'draggable-trigger-content', {
249
- triggerIndex: 0,
250
- } );
251
- expect( getDraggableChip( screen ) ).toBeVisible();
252
-
253
- // "firePanGesture" finishes the dragging gesture
254
- firePanGesture(
255
- getByGestureTestId( 'block-draggable-wrapper' )
256
- );
257
- expect( getDraggableChip( screen ) ).not.toBeDefined();
258
- } ) );
259
-
260
- it( 'enables drag mode when selected', async () =>
261
- withReanimatedTimer( async () => {
262
- const screen = await initializeWithBlocksLayouts( BLOCKS );
263
- const blockDraggableWrapper = getByGestureTestId(
264
- 'block-draggable-wrapper'
265
- );
266
-
267
- const [ galleryBlock ] = screen.getAllByLabelText(
268
- /Gallery Block\. Row 4/
269
- );
270
- await waitForStoreResolvers( () =>
271
- fireEvent.press( galleryBlock )
272
- );
273
-
274
- // Start dragging from block's content, specifically the first
275
- // trigger index, which corresponds to the Gallery block content.
276
- fireLongPress( galleryBlock, 'draggable-trigger-content', {
277
- triggerIndex: 0,
278
- } );
279
- expect( getDraggableChip( screen ) ).toBeVisible();
280
- // "firePanGesture" finishes the dragging gesture
281
- firePanGesture( blockDraggableWrapper );
282
- expect( getDraggableChip( screen ) ).not.toBeDefined();
283
- } ) );
284
-
285
- it( 'enables drag mode when nested block is selected', async () =>
286
- withReanimatedTimer( async () => {
287
- const screen = await initializeWithBlocksLayouts( BLOCKS );
288
- const blockDraggableWrapper = getByGestureTestId(
289
- 'block-draggable-wrapper'
290
- );
291
-
292
- const [ galleryBlock ] = screen.getAllByLabelText(
293
- /Gallery Block\. Row 4/
294
- );
295
- const [ galleryItem ] =
296
- within( galleryBlock ).getAllByLabelText(
297
- /Image Block\. Row 2/
298
- );
299
- fireEvent.press( galleryBlock );
300
- fireEvent.press( galleryItem );
301
-
302
- // Start dragging from nested block's content
303
- fireLongPress( galleryItem, 'draggable-trigger-content' );
304
- expect( getDraggableChip( screen ) ).toBeVisible();
305
- // "firePanGesture" finishes the dragging gesture
306
- firePanGesture( blockDraggableWrapper );
307
- expect( getDraggableChip( screen ) ).not.toBeDefined();
308
- } ) );
309
- } );
310
-
311
- describe( 'Other block', () => {
312
- it( 'enables drag mode when unselected', async () =>
313
- withReanimatedTimer( async () => {
314
- const screen = await initializeWithBlocksLayouts( BLOCKS );
315
-
316
- // Start dragging from block's content
317
- const [ spacerBlock ] =
318
- screen.getAllByLabelText( /Spacer Block\. Row 3/ );
319
- fireLongPress( spacerBlock, 'draggable-trigger-content' );
320
- expect( getDraggableChip( screen ) ).toBeVisible();
321
-
322
- // "firePanGesture" finishes the dragging gesture
323
- firePanGesture(
324
- getByGestureTestId( 'block-draggable-wrapper' )
325
- );
326
- expect( getDraggableChip( screen ) ).not.toBeDefined();
327
- } ) );
328
-
329
- it( 'enables drag mode when selected', async () =>
330
- withReanimatedTimer( async () => {
331
- const screen = await initializeWithBlocksLayouts( BLOCKS );
332
- const blockDraggableWrapper = getByGestureTestId(
333
- 'block-draggable-wrapper'
334
- );
335
-
336
- const [ spacerBlock ] =
337
- screen.getAllByLabelText( /Spacer Block\. Row 3/ );
338
- await waitForStoreResolvers( () =>
339
- fireEvent.press( spacerBlock )
340
- );
341
-
342
- // Start dragging from block's content
343
- fireLongPress( spacerBlock, 'draggable-trigger-content' );
344
- expect( getDraggableChip( screen ) ).toBeVisible();
345
- // "firePanGesture" finishes the dragging gesture
346
- firePanGesture( blockDraggableWrapper );
347
- expect( getDraggableChip( screen ) ).not.toBeDefined();
348
- } ) );
349
- } );
350
- } );
351
-
352
- it( 'moves blocks', async () =>
353
- withReanimatedTimer( async () => {
354
- const screen = await initializeWithBlocksLayouts( BLOCKS );
355
- const blockDraggableWrapper = getByGestureTestId(
356
- 'block-draggable-wrapper'
357
- );
358
-
359
- expect( getEditorHtml() ).toMatchSnapshot( 'Initial order' );
360
-
361
- // Move Paragraph block from first to second position
362
- const [ paragraphBlock ] = screen.getAllByLabelText(
363
- /Paragraph Block\. Row 1/
364
- );
365
- fireLongPress( paragraphBlock, 'draggable-trigger-content' );
366
- firePanGesture( blockDraggableWrapper, [
367
- {
368
- id: TOUCH_EVENT_ID,
369
- eventType: TouchEventType.TOUCHES_DOWN,
370
- x: 0,
371
- y: 0,
372
- },
373
- {
374
- id: TOUCH_EVENT_ID,
375
- eventType: TouchEventType.TOUCHES_MOVE,
376
- x: 0,
377
- // Dropping position is in the second half of the second block's height.
378
- y: 180,
379
- },
380
- ] );
381
- // Draggable Pan gesture uses the Gesture state manager to manually
382
- // activate the gesture. Since this not available in tests, the library
383
- // displays a warning message.
384
- expect( console ).toHaveWarnedWith(
385
- '[Reanimated] setGestureState() cannot be used with Jest.'
386
- );
387
- expect( getEditorHtml() ).toMatchSnapshot(
388
- 'Paragraph block moved from first to second position'
389
- );
390
-
391
- // Move Spacer block from third to first position
392
- const [ spacerBlock ] =
393
- screen.getAllByLabelText( /Spacer Block\. Row 3/ );
394
- fireLongPress( spacerBlock, 'draggable-trigger-content' );
395
- firePanGesture( blockDraggableWrapper, [
396
- {
397
- id: TOUCH_EVENT_ID,
398
- eventType: TouchEventType.TOUCHES_DOWN,
399
- x: 0,
400
- y: 250,
401
- },
402
- {
403
- id: TOUCH_EVENT_ID,
404
- eventType: TouchEventType.TOUCHES_MOVE,
405
- x: 0,
406
- y: 0,
407
- },
408
- ] );
409
- // Draggable Pan gesture uses the Gesture state manager to manually
410
- // activate the gesture. Since this not available in tests, the library
411
- // displays a warning message.
412
- expect( console ).toHaveWarnedWith(
413
- '[Reanimated] setGestureState() cannot be used with Jest.'
414
- );
415
- expect( getEditorHtml() ).toMatchSnapshot(
416
- 'Spacer block moved from third to first position'
417
- );
418
- } ) );
419
- } );