@wordpress/block-editor 15.20.0 → 15.21.1

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 (430) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/build/components/block-compare/index.cjs +2 -2
  3. package/build/components/block-compare/index.cjs.map +2 -2
  4. package/build/components/block-list/use-block-props/index.cjs +1 -1
  5. package/build/components/block-list/use-block-props/index.cjs.map +2 -2
  6. package/build/components/block-patterns-list/index.cjs +1 -1
  7. package/build/components/block-patterns-list/index.cjs.map +2 -2
  8. package/build/components/block-switcher/block-transformations-menu.cjs +16 -15
  9. package/build/components/block-switcher/block-transformations-menu.cjs.map +2 -2
  10. package/build/components/block-switcher/index.cjs +4 -4
  11. package/build/components/block-switcher/index.cjs.map +2 -2
  12. package/build/components/child-layout-control/index.cjs +10 -5
  13. package/build/components/child-layout-control/index.cjs.map +2 -2
  14. package/build/components/global-styles/advanced-panel.cjs +23 -15
  15. package/build/components/global-styles/advanced-panel.cjs.map +2 -2
  16. package/build/components/global-styles/background-panel.cjs +2 -2
  17. package/build/components/global-styles/background-panel.cjs.map +2 -2
  18. package/build/components/global-styles/border-panel.cjs +2 -0
  19. package/build/components/global-styles/border-panel.cjs.map +2 -2
  20. package/build/components/global-styles/dimensions-panel.cjs +5 -4
  21. package/build/components/global-styles/dimensions-panel.cjs.map +2 -2
  22. package/build/components/iframe/index.cjs +3 -0
  23. package/build/components/iframe/index.cjs.map +2 -2
  24. package/build/components/inner-blocks/use-inner-block-template-sync.cjs +3 -1
  25. package/build/components/inner-blocks/use-inner-block-template-sync.cjs.map +2 -2
  26. package/build/components/inserter/hooks/use-patterns-state.cjs +1 -1
  27. package/build/components/inserter/hooks/use-patterns-state.cjs.map +2 -2
  28. package/build/components/inserter/index.cjs +179 -220
  29. package/build/components/inserter/index.cjs.map +3 -3
  30. package/build/components/inserter/media-tab/utils.cjs +1 -1
  31. package/build/components/inserter/media-tab/utils.cjs.map +2 -2
  32. package/build/components/inserter/search-results.cjs +1 -1
  33. package/build/components/inserter/search-results.cjs.map +2 -2
  34. package/build/components/list-view/block-select-button.cjs +10 -12
  35. package/build/components/list-view/block-select-button.cjs.map +2 -2
  36. package/build/components/list-view/block.cjs +2 -1
  37. package/build/components/list-view/block.cjs.map +2 -2
  38. package/build/components/provider/use-block-sync.cjs +11 -2
  39. package/build/components/provider/use-block-sync.cjs.map +2 -2
  40. package/build/components/rich-text/event-listeners/before-input-rules.cjs +4 -4
  41. package/build/components/rich-text/event-listeners/before-input-rules.cjs.map +3 -3
  42. package/build/components/rich-text/event-listeners/delete.cjs +4 -4
  43. package/build/components/rich-text/event-listeners/delete.cjs.map +3 -3
  44. package/build/components/rich-text/event-listeners/enter.cjs +7 -2
  45. package/build/components/rich-text/event-listeners/enter.cjs.map +2 -2
  46. package/build/components/rich-text/event-listeners/input-events.cjs +4 -4
  47. package/build/components/rich-text/event-listeners/input-events.cjs.map +3 -3
  48. package/build/components/rich-text/event-listeners/input-rules.cjs +17 -4
  49. package/build/components/rich-text/event-listeners/input-rules.cjs.map +3 -3
  50. package/build/components/rich-text/event-listeners/insert-replacement-text.cjs +4 -4
  51. package/build/components/rich-text/event-listeners/insert-replacement-text.cjs.map +3 -3
  52. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs +4 -4
  53. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs.map +3 -3
  54. package/build/components/rich-text/event-listeners/shortcuts.cjs +4 -4
  55. package/build/components/rich-text/event-listeners/shortcuts.cjs.map +3 -3
  56. package/build/components/rich-text/event-listeners/undo-automatic-change.cjs +4 -4
  57. package/build/components/rich-text/event-listeners/undo-automatic-change.cjs.map +3 -3
  58. package/build/components/rich-text/index.cjs +1 -23
  59. package/build/components/rich-text/index.cjs.map +2 -2
  60. package/build/components/use-block-commands/index.cjs +5 -5
  61. package/build/components/use-block-commands/index.cjs.map +2 -2
  62. package/build/hooks/anchor.cjs +11 -15
  63. package/build/hooks/anchor.cjs.map +2 -2
  64. package/build/hooks/border.cjs +0 -3
  65. package/build/hooks/border.cjs.map +2 -2
  66. package/build/hooks/color.cjs +1 -4
  67. package/build/hooks/color.cjs.map +2 -2
  68. package/build/hooks/dimensions.cjs +0 -3
  69. package/build/hooks/dimensions.cjs.map +2 -2
  70. package/build/hooks/fit-text.cjs +11 -0
  71. package/build/hooks/fit-text.cjs.map +2 -2
  72. package/build/hooks/position.cjs +19 -22
  73. package/build/hooks/position.cjs.map +2 -2
  74. package/build/hooks/supports.cjs +0 -7
  75. package/build/hooks/supports.cjs.map +2 -2
  76. package/build/store/actions.cjs +7 -3
  77. package/build/store/actions.cjs.map +2 -2
  78. package/build/store/private-actions.cjs +1 -2
  79. package/build/store/private-actions.cjs.map +2 -2
  80. package/build/store/private-selectors.cjs +29 -0
  81. package/build/store/private-selectors.cjs.map +2 -2
  82. package/build/store/reducer.cjs +14 -6
  83. package/build/store/reducer.cjs.map +2 -2
  84. package/build/store/selectors.cjs +60 -41
  85. package/build/store/selectors.cjs.map +2 -2
  86. package/build-module/components/block-compare/index.mjs +1 -1
  87. package/build-module/components/block-compare/index.mjs.map +2 -2
  88. package/build-module/components/block-list/use-block-props/index.mjs +1 -1
  89. package/build-module/components/block-list/use-block-props/index.mjs.map +2 -2
  90. package/build-module/components/block-patterns-list/index.mjs +1 -1
  91. package/build-module/components/block-patterns-list/index.mjs.map +2 -2
  92. package/build-module/components/block-switcher/block-transformations-menu.mjs +16 -15
  93. package/build-module/components/block-switcher/block-transformations-menu.mjs.map +2 -2
  94. package/build-module/components/block-switcher/index.mjs +4 -4
  95. package/build-module/components/block-switcher/index.mjs.map +2 -2
  96. package/build-module/components/child-layout-control/index.mjs +10 -5
  97. package/build-module/components/child-layout-control/index.mjs.map +2 -2
  98. package/build-module/components/global-styles/advanced-panel.mjs +23 -15
  99. package/build-module/components/global-styles/advanced-panel.mjs.map +2 -2
  100. package/build-module/components/global-styles/background-panel.mjs +3 -3
  101. package/build-module/components/global-styles/background-panel.mjs.map +2 -2
  102. package/build-module/components/global-styles/border-panel.mjs +2 -0
  103. package/build-module/components/global-styles/border-panel.mjs.map +2 -2
  104. package/build-module/components/global-styles/dimensions-panel.mjs +9 -6
  105. package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
  106. package/build-module/components/iframe/index.mjs +3 -0
  107. package/build-module/components/iframe/index.mjs.map +2 -2
  108. package/build-module/components/inner-blocks/use-inner-block-template-sync.mjs +3 -1
  109. package/build-module/components/inner-blocks/use-inner-block-template-sync.mjs.map +2 -2
  110. package/build-module/components/inserter/hooks/use-patterns-state.mjs +1 -1
  111. package/build-module/components/inserter/hooks/use-patterns-state.mjs.map +2 -2
  112. package/build-module/components/inserter/index.mjs +185 -222
  113. package/build-module/components/inserter/index.mjs.map +3 -3
  114. package/build-module/components/inserter/media-tab/utils.mjs +1 -1
  115. package/build-module/components/inserter/media-tab/utils.mjs.map +2 -2
  116. package/build-module/components/inserter/search-results.mjs +1 -1
  117. package/build-module/components/inserter/search-results.mjs.map +2 -2
  118. package/build-module/components/list-view/block-select-button.mjs +10 -12
  119. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  120. package/build-module/components/list-view/block.mjs +2 -1
  121. package/build-module/components/list-view/block.mjs.map +2 -2
  122. package/build-module/components/provider/use-block-sync.mjs +11 -2
  123. package/build-module/components/provider/use-block-sync.mjs.map +2 -2
  124. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs +4 -4
  125. package/build-module/components/rich-text/event-listeners/before-input-rules.mjs.map +2 -2
  126. package/build-module/components/rich-text/event-listeners/delete.mjs +4 -4
  127. package/build-module/components/rich-text/event-listeners/delete.mjs.map +2 -2
  128. package/build-module/components/rich-text/event-listeners/enter.mjs +7 -2
  129. package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
  130. package/build-module/components/rich-text/event-listeners/input-events.mjs +4 -4
  131. package/build-module/components/rich-text/event-listeners/input-events.mjs.map +2 -2
  132. package/build-module/components/rich-text/event-listeners/input-rules.mjs +17 -4
  133. package/build-module/components/rich-text/event-listeners/input-rules.mjs.map +2 -2
  134. package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs +4 -4
  135. package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs.map +2 -2
  136. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs +4 -4
  137. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs.map +2 -2
  138. package/build-module/components/rich-text/event-listeners/shortcuts.mjs +4 -4
  139. package/build-module/components/rich-text/event-listeners/shortcuts.mjs.map +2 -2
  140. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs +4 -4
  141. package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs.map +2 -2
  142. package/build-module/components/rich-text/index.mjs +1 -23
  143. package/build-module/components/rich-text/index.mjs.map +2 -2
  144. package/build-module/components/use-block-commands/index.mjs +5 -5
  145. package/build-module/components/use-block-commands/index.mjs.map +2 -2
  146. package/build-module/hooks/anchor.mjs +11 -15
  147. package/build-module/hooks/anchor.mjs.map +2 -2
  148. package/build-module/hooks/border.mjs +1 -4
  149. package/build-module/hooks/border.mjs.map +2 -2
  150. package/build-module/hooks/color.mjs +2 -5
  151. package/build-module/hooks/color.mjs.map +2 -2
  152. package/build-module/hooks/dimensions.mjs +1 -4
  153. package/build-module/hooks/dimensions.mjs.map +2 -2
  154. package/build-module/hooks/fit-text.mjs +11 -0
  155. package/build-module/hooks/fit-text.mjs.map +2 -2
  156. package/build-module/hooks/position.mjs +20 -23
  157. package/build-module/hooks/position.mjs.map +2 -2
  158. package/build-module/hooks/supports.mjs +0 -7
  159. package/build-module/hooks/supports.mjs.map +2 -2
  160. package/build-module/store/actions.mjs +7 -3
  161. package/build-module/store/actions.mjs.map +2 -2
  162. package/build-module/store/private-actions.mjs +1 -2
  163. package/build-module/store/private-actions.mjs.map +2 -2
  164. package/build-module/store/private-selectors.mjs +26 -0
  165. package/build-module/store/private-selectors.mjs.map +2 -2
  166. package/build-module/store/reducer.mjs +14 -6
  167. package/build-module/store/reducer.mjs.map +2 -2
  168. package/build-module/store/selectors.mjs +62 -42
  169. package/build-module/store/selectors.mjs.map +2 -2
  170. package/build-style/content-rtl.css +12 -0
  171. package/build-style/content.css +12 -0
  172. package/build-style/style-rtl.css +26 -8
  173. package/build-style/style.css +26 -8
  174. package/package.json +51 -48
  175. package/src/components/block-breadcrumb/README.md +2 -2
  176. package/src/components/block-compare/README.md +6 -6
  177. package/src/components/block-compare/index.js +1 -3
  178. package/src/components/block-list/use-block-props/index.js +1 -1
  179. package/src/components/block-patterns-list/index.js +1 -1
  180. package/src/components/block-preview/README.md +1 -1
  181. package/src/components/block-switcher/block-transformations-menu.js +16 -18
  182. package/src/components/block-switcher/index.js +4 -4
  183. package/src/components/block-types-list/README.md +0 -19
  184. package/src/components/child-layout-control/index.js +15 -8
  185. package/src/components/child-layout-control/test/index.js +126 -0
  186. package/src/components/colors/test/with-colors.js +1 -1
  187. package/src/components/global-styles/advanced-panel.js +5 -1
  188. package/src/components/global-styles/background-panel.js +3 -3
  189. package/src/components/global-styles/border-panel.js +2 -0
  190. package/src/components/global-styles/dimensions-panel.js +23 -16
  191. package/src/components/iframe/index.js +3 -0
  192. package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -1
  193. package/src/components/inserter/hooks/use-patterns-state.js +1 -1
  194. package/src/components/inserter/index.js +257 -288
  195. package/src/components/inserter/media-tab/utils.js +1 -1
  196. package/src/components/inserter/search-results.js +1 -3
  197. package/src/components/justify-content-control/README.md +1 -1
  198. package/src/components/list-view/block-select-button.js +9 -13
  199. package/src/components/list-view/block.js +1 -0
  200. package/src/components/media-placeholder/README.md +1 -29
  201. package/src/components/media-upload/README.md +0 -19
  202. package/src/components/provider/test/use-block-sync.js +40 -0
  203. package/src/components/provider/use-block-sync.js +12 -2
  204. package/src/components/rich-text/event-listeners/before-input-rules.js +5 -4
  205. package/src/components/rich-text/event-listeners/delete.js +9 -4
  206. package/src/components/rich-text/event-listeners/enter.js +9 -2
  207. package/src/components/rich-text/event-listeners/input-events.js +13 -4
  208. package/src/components/rich-text/event-listeners/input-rules.js +20 -4
  209. package/src/components/rich-text/event-listeners/insert-replacement-text.js +9 -4
  210. package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +9 -4
  211. package/src/components/rich-text/event-listeners/shortcuts.js +13 -4
  212. package/src/components/rich-text/event-listeners/undo-automatic-change.js +5 -4
  213. package/src/components/rich-text/index.js +1 -33
  214. package/src/components/unit-control/README.md +1 -1
  215. package/src/components/url-popover/README.md +1 -1
  216. package/src/components/use-block-commands/index.js +5 -5
  217. package/src/hooks/anchor.js +9 -17
  218. package/src/hooks/border.js +1 -5
  219. package/src/hooks/color.js +1 -6
  220. package/src/hooks/dimensions.js +1 -5
  221. package/src/hooks/fit-text.js +16 -0
  222. package/src/hooks/position.js +23 -27
  223. package/src/hooks/supports.js +0 -9
  224. package/src/store/actions.js +13 -3
  225. package/src/store/private-actions.js +1 -4
  226. package/src/store/private-selectors.js +59 -0
  227. package/src/store/reducer.js +19 -7
  228. package/src/store/selectors.js +91 -53
  229. package/src/store/test/actions.js +21 -0
  230. package/src/store/test/private-selectors.js +53 -0
  231. package/src/store/test/reducer.js +46 -0
  232. package/src/store/test/selectors.js +77 -0
  233. package/build/components/media-upload-progress/constants.cjs +0 -46
  234. package/build/components/media-upload-progress/constants.cjs.map +0 -7
  235. package/build/components/rich-text/native/format-edit.cjs +0 -60
  236. package/build/components/rich-text/native/format-edit.cjs.map +0 -7
  237. package/build/components/rich-text/native/index.cjs +0 -28
  238. package/build/components/rich-text/native/index.cjs.map +0 -7
  239. package/build/components/rich-text/native/use-format-types.cjs +0 -139
  240. package/build/components/rich-text/native/use-format-types.cjs.map +0 -7
  241. package/build-module/components/media-upload-progress/constants.mjs +0 -16
  242. package/build-module/components/media-upload-progress/constants.mjs.map +0 -7
  243. package/build-module/components/rich-text/native/format-edit.mjs +0 -39
  244. package/build-module/components/rich-text/native/format-edit.mjs.map +0 -7
  245. package/build-module/components/rich-text/native/index.mjs +0 -7
  246. package/build-module/components/rich-text/native/index.mjs.map +0 -7
  247. package/build-module/components/rich-text/native/use-format-types.mjs +0 -114
  248. package/build-module/components/rich-text/native/use-format-types.mjs.map +0 -7
  249. package/src/components/audio-player/audio-url-parser.native.js +0 -20
  250. package/src/components/audio-player/index.native.js +0 -225
  251. package/src/components/audio-player/styles.native.scss +0 -114
  252. package/src/components/audio-player/test/audio-url-parser.native.js +0 -53
  253. package/src/components/block-alignment-control/test/index.native.js +0 -37
  254. package/src/components/block-alignment-control/ui.native.js +0 -86
  255. package/src/components/block-caption/README.md +0 -104
  256. package/src/components/block-caption/index.native.js +0 -89
  257. package/src/components/block-caption/styles.native.scss +0 -7
  258. package/src/components/block-controls/slot.native.js +0 -33
  259. package/src/components/block-draggable/draggable-chip.native.js +0 -49
  260. package/src/components/block-draggable/dropping-insertion-point.native.js +0 -181
  261. package/src/components/block-draggable/dropping-insertion-point.native.scss +0 -8
  262. package/src/components/block-draggable/index.native.js +0 -467
  263. package/src/components/block-draggable/style.native.scss +0 -19
  264. package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +0 -73
  265. package/src/components/block-draggable/test/helpers.native.js +0 -182
  266. package/src/components/block-draggable/test/index.native.js +0 -419
  267. package/src/components/block-draggable/use-scroll-when-dragging.native.js +0 -135
  268. package/src/components/block-edit/edit.native.js +0 -49
  269. package/src/components/block-edit/test/edit.native.js +0 -65
  270. package/src/components/block-heading-level-dropdown/index.native.js +0 -68
  271. package/src/components/block-icon/index.native.js +0 -47
  272. package/src/components/block-icon/style.native.scss +0 -7
  273. package/src/components/block-list/block-crash-boundary.native.js +0 -43
  274. package/src/components/block-list/block-crash-warning.native.js +0 -21
  275. package/src/components/block-list/block-invalid-warning.native.js +0 -70
  276. package/src/components/block-list/block-list-context.native.js +0 -172
  277. package/src/components/block-list/block-list-item-cell.native.js +0 -62
  278. package/src/components/block-list/block-list-item.native.js +0 -209
  279. package/src/components/block-list/block-list-item.native.scss +0 -16
  280. package/src/components/block-list/block-outline.native.js +0 -77
  281. package/src/components/block-list/block-selection-button.native.js +0 -100
  282. package/src/components/block-list/block-selection-button.native.scss +0 -34
  283. package/src/components/block-list/block.native.js +0 -716
  284. package/src/components/block-list/block.native.scss +0 -62
  285. package/src/components/block-list/grid-item.native.js +0 -58
  286. package/src/components/block-list/index.native.js +0 -437
  287. package/src/components/block-list/insertion-point.native.js +0 -36
  288. package/src/components/block-list/style.native.scss +0 -117
  289. package/src/components/block-list/test/block-invalid-warning.native.js +0 -62
  290. package/src/components/block-list/test/block-list-context.native.js +0 -243
  291. package/src/components/block-list/test/block-outline.native.js +0 -255
  292. package/src/components/block-list/test/fixtures/block-list-context.native.js +0 -79
  293. package/src/components/block-list/test/index.native.js +0 -205
  294. package/src/components/block-list/use-block-props/index.native.js +0 -10
  295. package/src/components/block-list/use-scroll-upon-insertion.native.js +0 -52
  296. package/src/components/block-list-appender/index.native.js +0 -70
  297. package/src/components/block-list-appender/style.native.scss +0 -8
  298. package/src/components/block-media-update-progress/README.md +0 -100
  299. package/src/components/block-media-update-progress/index.native.js +0 -299
  300. package/src/components/block-media-update-progress/styles.native.scss +0 -9
  301. package/src/components/block-media-update-progress/test/index.native.js +0 -543
  302. package/src/components/block-mover/index.native.js +0 -193
  303. package/src/components/block-mover/mover-description.native.js +0 -155
  304. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +0 -218
  305. package/src/components/block-mover/test/index.native.js +0 -186
  306. package/src/components/block-settings/button.native.js +0 -41
  307. package/src/components/block-settings/container.native.js +0 -91
  308. package/src/components/block-settings/container.native.scss +0 -4
  309. package/src/components/block-settings/index.native.js +0 -5
  310. package/src/components/block-styles/index.native.js +0 -94
  311. package/src/components/block-styles/preview.native.js +0 -109
  312. package/src/components/block-styles/style.native.scss +0 -64
  313. package/src/components/block-switcher/block-transformations-menu.native.js +0 -91
  314. package/src/components/block-toolbar/block-toolbar-menu.native.js +0 -477
  315. package/src/components/block-toolbar/index.native.js +0 -126
  316. package/src/components/block-toolbar/test/__snapshots__/block-toolbar-menu.native.js.snap +0 -125
  317. package/src/components/block-toolbar/test/block-toolbar-menu.native.js +0 -405
  318. package/src/components/block-toolbar/test/index.native.js +0 -36
  319. package/src/components/block-types-list/index.native.js +0 -175
  320. package/src/components/block-types-list/style.native.scss +0 -25
  321. package/src/components/block-variation-picker/index.native.js +0 -107
  322. package/src/components/block-variation-picker/style.native.scss +0 -32
  323. package/src/components/button-block-appender/index.native.js +0 -92
  324. package/src/components/button-block-appender/styles.native.scss +0 -43
  325. package/src/components/caption/README.md +0 -44
  326. package/src/components/caption/index.native.js +0 -61
  327. package/src/components/colors-gradients/panel-color-gradient-settings.native.js +0 -59
  328. package/src/components/contrast-checker/index.native.js +0 -113
  329. package/src/components/contrast-checker/style.native.scss +0 -26
  330. package/src/components/convert-to-group-buttons/index.native.js +0 -79
  331. package/src/components/default-block-appender/index.native.js +0 -113
  332. package/src/components/default-block-appender/style.native.scss +0 -18
  333. package/src/components/floating-toolbar/floatingToolbar.android.scss +0 -4
  334. package/src/components/floating-toolbar/floatingToolbar.ios.scss +0 -3
  335. package/src/components/floating-toolbar/index.native.js +0 -141
  336. package/src/components/floating-toolbar/styles.native.scss +0 -43
  337. package/src/components/font-sizes/index.native.js +0 -7
  338. package/src/components/global-styles/color-panel.native.js +0 -207
  339. package/src/components/global-styles/test/use-global-styles-context.native.js +0 -435
  340. package/src/components/global-styles/use-global-styles-context.native.js +0 -592
  341. package/src/components/gradients/index.native.js +0 -2
  342. package/src/components/image-link-destinations/index.native.js +0 -152
  343. package/src/components/image-link-destinations/style.native.scss +0 -16
  344. package/src/components/index.native.js +0 -108
  345. package/src/components/inner-blocks/constants.native.js +0 -5
  346. package/src/components/inner-blocks/index.native.js +0 -221
  347. package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +0 -124
  348. package/src/components/inserter/block-types-tab.native.js +0 -76
  349. package/src/components/inserter/hooks/use-block-type-impressions.native.js +0 -47
  350. package/src/components/inserter/hooks/use-clipboard-block.native.js +0 -40
  351. package/src/components/inserter/index.native.js +0 -424
  352. package/src/components/inserter/menu.native.js +0 -237
  353. package/src/components/inserter/no-results.native.js +0 -49
  354. package/src/components/inserter/reusable-blocks-tab.native.js +0 -45
  355. package/src/components/inserter/search-results.native.js +0 -67
  356. package/src/components/inserter/style.native.scss +0 -83
  357. package/src/components/inserter/tabs.native.js +0 -152
  358. package/src/components/inserter/test/__snapshots__/index.native.js.snap +0 -117
  359. package/src/components/inserter/test/fixtures/index.native.js +0 -12
  360. package/src/components/inserter/test/index.native.js +0 -273
  361. package/src/components/inserter/test/reusable-blocks-tab.native.js +0 -62
  362. package/src/components/inserter/test/utils.native.js +0 -37
  363. package/src/components/inserter/utils.native.js +0 -46
  364. package/src/components/inserter-button/index.native.js +0 -108
  365. package/src/components/inserter-button/style.native.scss +0 -72
  366. package/src/components/inspector-controls/fill.native.js +0 -62
  367. package/src/components/inspector-controls/slot.native.js +0 -35
  368. package/src/components/inspector-controls-tabs/advanced-controls-panel.native.js +0 -31
  369. package/src/components/line-height-control/index.native.js +0 -28
  370. package/src/components/media-placeholder/index.native.js +0 -258
  371. package/src/components/media-placeholder/styles.native.scss +0 -108
  372. package/src/components/media-replace-flow/index.native.js +0 -12
  373. package/src/components/media-upload/constants.native.js +0 -14
  374. package/src/components/media-upload/index.native.js +0 -356
  375. package/src/components/media-upload/style.native.scss +0 -4
  376. package/src/components/media-upload/test/index.native.js +0 -172
  377. package/src/components/media-upload-progress/README.md +0 -100
  378. package/src/components/media-upload-progress/constants.js +0 -6
  379. package/src/components/media-upload-progress/index.native.js +0 -233
  380. package/src/components/media-upload-progress/styles.native.scss +0 -15
  381. package/src/components/media-upload-progress/test/index.native.js +0 -220
  382. package/src/components/plain-text/index.native.js +0 -164
  383. package/src/components/plain-text/style.native.scss +0 -10
  384. package/src/components/provider/index.native.js +0 -32
  385. package/src/components/rich-text/embed-handler-picker.native.js +0 -65
  386. package/src/components/rich-text/file-paste-handler.native.js +0 -3
  387. package/src/components/rich-text/format-toolbar/index.native.js +0 -21
  388. package/src/components/rich-text/format-toolbar-container.native.js +0 -16
  389. package/src/components/rich-text/index.native.js +0 -701
  390. package/src/components/rich-text/input-event.native.js +0 -10
  391. package/src/components/rich-text/native/format-edit.js +0 -44
  392. package/src/components/rich-text/native/get-format-colors.native.js +0 -47
  393. package/src/components/rich-text/native/index.js +0 -1
  394. package/src/components/rich-text/native/index.native.js +0 -1389
  395. package/src/components/rich-text/native/style.native.scss +0 -28
  396. package/src/components/rich-text/native/test/__snapshots__/index.native.js.snap +0 -79
  397. package/src/components/rich-text/native/test/index.native.js +0 -345
  398. package/src/components/rich-text/native/test/performance/rich-text.native.js +0 -44
  399. package/src/components/rich-text/native/toolbar-button-with-options.native.js +0 -61
  400. package/src/components/rich-text/native/use-format-types.js +0 -146
  401. package/src/components/rich-text/remove-browser-shortcuts.native.js +0 -1
  402. package/src/components/rich-text/shortcut.native.js +0 -10
  403. package/src/components/ungroup-button/README.md +0 -23
  404. package/src/components/ungroup-button/index.native.js +0 -77
  405. package/src/components/unsupported-block-details/index.native.js +0 -187
  406. package/src/components/unsupported-block-details/style.native.scss +0 -56
  407. package/src/components/url-input/index.native.js +0 -33
  408. package/src/components/use-block-drop-zone/index.native.js +0 -207
  409. package/src/components/use-on-block-drop/index.native.js +0 -115
  410. package/src/components/use-unsupported-block-editor/index.native.js +0 -59
  411. package/src/components/video-player/gridicon-play.native.js +0 -13
  412. package/src/components/video-player/index.native.js +0 -133
  413. package/src/components/video-player/styles.native.scss +0 -29
  414. package/src/components/warning/index.native.js +0 -64
  415. package/src/components/warning/style.native.scss +0 -47
  416. package/src/hooks/align.native.js +0 -49
  417. package/src/hooks/custom-class-name.native.js +0 -70
  418. package/src/hooks/index.native.js +0 -36
  419. package/src/hooks/layout.native.js +0 -23
  420. package/src/hooks/test/__snapshots__/align.native.js.snap +0 -73
  421. package/src/hooks/test/__snapshots__/anchor.native.js.snap +0 -7
  422. package/src/hooks/test/align.native.js +0 -134
  423. package/src/hooks/test/anchor.native.js +0 -32
  424. package/src/hooks/test/use-editor-wrapper-styles.native.js +0 -282
  425. package/src/hooks/typography.native.js +0 -60
  426. package/src/hooks/use-editor-wrapper-styles.native.js +0 -250
  427. package/src/hooks/use-editor-wrapper-styles.native.scss +0 -12
  428. package/src/index.native.js +0 -6
  429. package/src/private-apis.native.js +0 -21
  430. package/src/store/defaults.native.js +0 -23
@@ -1,152 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { useNavigation, useRoute } from '@react-navigation/native';
5
- import { StyleSheet } from 'react-native';
6
-
7
- /**
8
- * WordPress dependencies
9
- */
10
- import { __ } from '@wordpress/i18n';
11
- import { Icon, check, chevronRight } from '@wordpress/icons';
12
- import { usePreferredColorSchemeStyle } from '@wordpress/compose';
13
- import { BottomSheet, PanelBody } from '@wordpress/components';
14
-
15
- /**
16
- * Internal dependencies
17
- */
18
- import styles from './style.native.scss';
19
- import { blockSettingsScreens } from '../block-settings';
20
-
21
- const LINK_DESTINATION_NONE = 'none';
22
- const LINK_DESTINATION_MEDIA = 'media';
23
- const LINK_DESTINATION_ATTACHMENT = 'attachment';
24
- const LINK_DESTINATION_CUSTOM = 'custom';
25
-
26
- function LinkDestination( {
27
- children,
28
- isSelected,
29
- label,
30
- onPress,
31
- value,
32
- valueStyle,
33
- } ) {
34
- const optionIcon = usePreferredColorSchemeStyle(
35
- styles.optionIcon,
36
- styles.optionIconDark
37
- );
38
-
39
- return (
40
- <BottomSheet.Cell
41
- icon={ check }
42
- iconStyle={ StyleSheet.flatten( [
43
- optionIcon,
44
- ! isSelected && styles.unselectedOptionIcon,
45
- ] ) }
46
- label={ label }
47
- leftAlign
48
- onPress={ onPress }
49
- value={ value }
50
- valueStyle={ valueStyle }
51
- separatorType="leftMargin"
52
- >
53
- { children }
54
- </BottomSheet.Cell>
55
- );
56
- }
57
-
58
- function ImageLinkDestinationsScreen( props ) {
59
- const navigation = useNavigation();
60
- const route = useRoute();
61
- const { url = '' } = props;
62
- const {
63
- inputValue = url,
64
- imageUrl,
65
- attachmentPageUrl,
66
- linkDestination,
67
- } = route.params || {};
68
-
69
- function goToLinkPicker() {
70
- navigation.navigate( blockSettingsScreens.linkPicker, {
71
- inputValue:
72
- linkDestination === LINK_DESTINATION_CUSTOM ? inputValue : '',
73
- } );
74
- }
75
-
76
- const setLinkDestination = ( newLinkDestination ) => () => {
77
- let newUrl;
78
- switch ( newLinkDestination ) {
79
- case LINK_DESTINATION_MEDIA:
80
- newUrl = imageUrl;
81
- break;
82
- case LINK_DESTINATION_ATTACHMENT:
83
- newUrl = attachmentPageUrl;
84
- break;
85
- default:
86
- newUrl = '';
87
- break;
88
- }
89
-
90
- navigation.navigate( blockSettingsScreens.settings, {
91
- // The `inputValue` name is reused from LinkPicker, as it helps avoid
92
- // bugs from stale values remaining in the React Navigation route
93
- // parameters.
94
- inputValue: newUrl,
95
- // Clear link text value that may be set from LinkPicker.
96
- text: '',
97
- } );
98
- };
99
-
100
- return (
101
- <>
102
- <BottomSheet.NavBar>
103
- <BottomSheet.NavBar.BackButton onPress={ navigation.goBack } />
104
- <BottomSheet.NavBar.Heading>
105
- { __( 'Link To' ) }
106
- </BottomSheet.NavBar.Heading>
107
- </BottomSheet.NavBar>
108
- <PanelBody>
109
- <LinkDestination
110
- isSelected={ linkDestination === LINK_DESTINATION_NONE }
111
- label={ __( 'None' ) }
112
- onPress={ setLinkDestination( LINK_DESTINATION_NONE ) }
113
- />
114
- <LinkDestination
115
- isSelected={ linkDestination === LINK_DESTINATION_MEDIA }
116
- label={ __( 'Media File' ) }
117
- onPress={ setLinkDestination( LINK_DESTINATION_MEDIA ) }
118
- />
119
- { !! attachmentPageUrl && (
120
- <LinkDestination
121
- isSelected={
122
- linkDestination === LINK_DESTINATION_ATTACHMENT
123
- }
124
- label={ __( 'Attachment Page' ) }
125
- onPress={ setLinkDestination(
126
- LINK_DESTINATION_ATTACHMENT
127
- ) }
128
- />
129
- ) }
130
- <LinkDestination
131
- isSelected={ linkDestination === LINK_DESTINATION_CUSTOM }
132
- label={ __( 'Custom URL' ) }
133
- onPress={ goToLinkPicker }
134
- value={
135
- linkDestination === LINK_DESTINATION_CUSTOM
136
- ? inputValue
137
- : ''
138
- }
139
- valueStyle={
140
- linkDestination === LINK_DESTINATION_CUSTOM
141
- ? undefined
142
- : styles.placeholderTextColor
143
- }
144
- >
145
- <Icon icon={ chevronRight }></Icon>
146
- </LinkDestination>
147
- </PanelBody>
148
- </>
149
- );
150
- }
151
-
152
- export default ImageLinkDestinationsScreen;
@@ -1,16 +0,0 @@
1
- // used in both light and dark modes
2
- .placeholderTextColor {
3
- color: #87a6bc;
4
- }
5
-
6
- .optionIcon {
7
- color: $blue-50;
8
- }
9
-
10
- .optionIconDark {
11
- color: $blue-30;
12
- }
13
-
14
- .unselectedOptionIcon {
15
- opacity: 0;
16
- }
@@ -1,108 +0,0 @@
1
- // Block Creation Components.
2
- export {
3
- BlockAlignmentControl,
4
- BlockAlignmentToolbar,
5
- } from './block-alignment-control';
6
- export { BlockContextProvider } from './block-context';
7
- export {
8
- default as BlockControls,
9
- BlockFormatControls,
10
- } from './block-controls';
11
- export { default as BlockEdit, useBlockEditContext } from './block-edit';
12
- export { default as BlockIcon } from './block-icon';
13
- export {
14
- BlockVerticalAlignmentToolbar,
15
- BlockVerticalAlignmentControl,
16
- } from './block-vertical-alignment-control';
17
- export * from './colors';
18
- export * from './gradients';
19
- export * from './font-sizes';
20
- export { AlignmentControl, AlignmentToolbar } from './alignment-control';
21
- export { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';
22
- export {
23
- default as InspectorControls,
24
- InspectorAdvancedControls,
25
- } from './inspector-controls';
26
- export {
27
- JustifyToolbar,
28
- JustifyContentControl,
29
- } from './justify-content-control';
30
- export { default as LineHeightControl } from './line-height-control';
31
- export { default as HeadingLevelDropdown } from './block-heading-level-dropdown';
32
- export { default as PlainText } from './plain-text';
33
- export {
34
- default as RichText,
35
- RichTextShortcut,
36
- RichTextToolbarButton,
37
- __unstableRichTextInputEvent,
38
- } from './rich-text';
39
- export { default as MediaReplaceFlow } from './media-replace-flow';
40
- export { default as MediaPlaceholder } from './media-placeholder';
41
- export { default as MediaUpload } from './media-upload';
42
- export {
43
- MEDIA_TYPE_IMAGE,
44
- MEDIA_TYPE_VIDEO,
45
- MEDIA_TYPE_AUDIO,
46
- MEDIA_TYPE_ANY,
47
- } from './media-upload/constants';
48
- export { default as MediaUploadProgress } from './media-upload-progress';
49
- export {
50
- MEDIA_UPLOAD_STATE_UPLOADING,
51
- MEDIA_UPLOAD_STATE_SUCCEEDED,
52
- MEDIA_UPLOAD_STATE_PAUSED,
53
- MEDIA_UPLOAD_STATE_FAILED,
54
- MEDIA_UPLOAD_STATE_RESET,
55
- } from './media-upload-progress/constants';
56
- export { default as BlockMediaUpdateProgress } from './block-media-update-progress';
57
- export { default as URLInput } from './url-input';
58
- export { default as BlockInvalidWarning } from './block-list/block-invalid-warning';
59
- export { default as BlockCaption } from './block-caption';
60
- export { default as Caption } from './caption';
61
- export { default as PanelColorSettings } from './panel-color-settings';
62
- export { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';
63
- export { useSettings, default as useSetting } from './use-settings';
64
- export {
65
- RecursionProvider,
66
- DeprecatedExperimentalRecursionProvider as __experimentalRecursionProvider,
67
- useHasRecursion,
68
- DeprecatedExperimentalUseHasRecursion as __experimentalUseHasRecursion,
69
- } from './recursion-provider';
70
- export { default as Warning } from './warning';
71
- export { default as ContrastChecker } from './contrast-checker';
72
- export { default as useMultipleOriginColorsAndGradients } from './colors-gradients/use-multiple-origin-colors-and-gradients';
73
- export { default as UnsupportedBlockDetails } from './unsupported-block-details';
74
- export {
75
- useGlobalStyles,
76
- getGlobalStyles,
77
- getColorsAndGradients,
78
- useMobileGlobalStylesColors,
79
- } from './global-styles/use-global-styles-context';
80
-
81
- export {
82
- BottomSheetSettings,
83
- BlockSettingsButton,
84
- blockSettingsScreens,
85
- } from './block-settings';
86
- export { default as VideoPlayer, VIDEO_ASPECT_RATIO } from './video-player';
87
- export { default as AudioPlayer } from './audio-player';
88
-
89
- export {
90
- getSpacingPresetCssVar,
91
- getCustomValueFromPreset,
92
- isValueSpacingPreset,
93
- } from './spacing-sizes-control/utils';
94
- // Content Related Components.
95
- export { default as BlockList } from './block-list';
96
- export { default as BlockMover } from './block-mover';
97
- export { default as BlockToolbar } from './block-toolbar';
98
- export { default as BlockVariationPicker } from './block-variation-picker';
99
- export { default as BlockStyles } from './block-styles';
100
- export { default as DefaultBlockAppender } from './default-block-appender';
101
- export { default as __unstableEditorStyles } from './editor-styles';
102
- export { default as Inserter } from './inserter';
103
- export { default as InserterButton } from './inserter-button';
104
- export { useBlockProps } from './block-list/use-block-props';
105
- export { default as FloatingToolbar } from './floating-toolbar';
106
-
107
- // State Related Components.
108
- export { default as BlockEditorProvider } from './provider';
@@ -1,5 +0,0 @@
1
- // Hermes has a limit for the call stack depth to avoid infinite recursion.
2
- // When creating a deep nested structure of inner blocks, the editor might exceed
3
- // this limit and crash. In order to avoid this, we set a maximum depth level where
4
- // we stop rendering blocks.
5
- export const MAX_NESTING_DEPTH = 10;
@@ -1,221 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { __unstableGetInnerBlocksProps as getInnerBlocksProps } from '@wordpress/blocks';
5
- import { useRef } from '@wordpress/element';
6
- import { useSelect } from '@wordpress/data';
7
-
8
- /**
9
- * Internal dependencies
10
- */
11
- import ButtonBlockAppender from './button-block-appender';
12
- import DefaultBlockAppender from './default-block-appender';
13
- import useNestedSettingsUpdate from './use-nested-settings-update';
14
- import useInnerBlockTemplateSync from './use-inner-block-template-sync';
15
- import useBlockContext from './use-block-context';
16
-
17
- /**
18
- * Internal dependencies
19
- */
20
- import BlockList from '../block-list';
21
- import { useBlockEditContext } from '../block-edit/context';
22
- import useBlockSync from '../provider/use-block-sync';
23
- import { BlockContextProvider } from '../block-context';
24
- import { defaultLayout, LayoutProvider } from '../block-list/layout';
25
- import { store as blockEditorStore } from '../../store';
26
- import WarningMaxDepthExceeded from './warning-max-depth-exceeded';
27
- import { MAX_NESTING_DEPTH } from './constants';
28
-
29
- /**
30
- * This hook is used to lightly mark an element as an inner blocks wrapper
31
- * element. Call this hook and pass the returned props to the element to mark as
32
- * an inner blocks wrapper, automatically rendering inner blocks as children. If
33
- * you define a ref for the element, it is important to pass the ref to this
34
- * hook, which the hook in turn will pass to the component through the props it
35
- * returns. Optionally, you can also pass any other props through this hook, and
36
- * they will be merged and returned.
37
- *
38
- * @see https://github.com/WordPress/gutenberg/blob/trunk/packages/block-editor/src/components/inner-blocks/README.md
39
- *
40
- * @param {Object} props Optional. Props to pass to the element. Must contain
41
- * the ref if one is defined.
42
- * @param {Object} options Optional. Inner blocks options.
43
- */
44
- export function useInnerBlocksProps( props = {}, options = {} ) {
45
- const fallbackRef = useRef();
46
- const { clientId } = useBlockEditContext();
47
-
48
- const ref = props.ref || fallbackRef;
49
- const InnerBlocks =
50
- options.value && options.onChange
51
- ? ControlledInnerBlocks
52
- : UncontrolledInnerBlocks;
53
-
54
- return {
55
- ...props,
56
- ref,
57
- children: (
58
- <InnerBlocks
59
- { ...options }
60
- clientId={ clientId }
61
- wrapperRef={ ref }
62
- />
63
- ),
64
- };
65
- }
66
-
67
- /**
68
- * InnerBlocks is a component which allows a single block to have multiple blocks
69
- * as children. The UncontrolledInnerBlocks component is used whenever the inner
70
- * blocks are not controlled by another entity. In other words, it is normally
71
- * used for inner blocks in the post editor
72
- *
73
- * @param {Object} props The component props.
74
- */
75
- function UncontrolledInnerBlocks( props ) {
76
- const {
77
- clientId,
78
- allowedBlocks,
79
- prioritizedInserterBlocks,
80
- defaultBlock,
81
- directInsert,
82
- __experimentalDefaultBlock,
83
- __experimentalDirectInsert,
84
- template,
85
- templateLock,
86
- templateInsertUpdatesSelection,
87
- __experimentalCaptureToolbars: captureToolbars,
88
- orientation,
89
- renderAppender,
90
- renderFooterAppender,
91
- parentWidth,
92
- horizontal,
93
- contentResizeMode,
94
- contentStyle,
95
- onAddBlock,
96
- onDeleteBlock,
97
- marginVertical,
98
- marginHorizontal,
99
- horizontalAlignment,
100
- filterInnerBlocks,
101
- blockWidth,
102
- layout = defaultLayout,
103
- gridProperties,
104
- } = props;
105
-
106
- const context = useBlockContext( clientId );
107
-
108
- const { nestingLevel, parentLock } = useSelect(
109
- ( select ) => {
110
- const { getBlockParents, getTemplateLock, getBlockRootClientId } =
111
- select( blockEditorStore );
112
- return {
113
- nestingLevel: getBlockParents( clientId )?.length,
114
- parentLock: getTemplateLock( getBlockRootClientId( clientId ) ),
115
- };
116
- },
117
- [ clientId ]
118
- );
119
-
120
- useNestedSettingsUpdate(
121
- clientId,
122
- parentLock,
123
- allowedBlocks,
124
- prioritizedInserterBlocks,
125
- defaultBlock,
126
- directInsert,
127
- __experimentalDefaultBlock,
128
- __experimentalDirectInsert,
129
- templateLock,
130
- captureToolbars,
131
- orientation,
132
- layout
133
- );
134
-
135
- useInnerBlockTemplateSync(
136
- clientId,
137
- template,
138
- templateLock,
139
- templateInsertUpdatesSelection
140
- );
141
-
142
- if ( nestingLevel >= MAX_NESTING_DEPTH ) {
143
- return <WarningMaxDepthExceeded clientId={ clientId } />;
144
- }
145
-
146
- return (
147
- <LayoutProvider value={ layout }>
148
- <BlockContextProvider value={ context }>
149
- <BlockList
150
- marginVertical={ marginVertical }
151
- marginHorizontal={ marginHorizontal }
152
- rootClientId={ clientId }
153
- renderAppender={ renderAppender }
154
- renderFooterAppender={ renderFooterAppender }
155
- withFooter={ false }
156
- orientation={ orientation }
157
- parentWidth={ parentWidth }
158
- horizontalAlignment={ horizontalAlignment }
159
- horizontal={ horizontal }
160
- contentResizeMode={ contentResizeMode }
161
- contentStyle={ contentStyle }
162
- onAddBlock={ onAddBlock }
163
- onDeleteBlock={ onDeleteBlock }
164
- filterInnerBlocks={ filterInnerBlocks }
165
- gridProperties={ gridProperties }
166
- blockWidth={ blockWidth }
167
- />
168
- </BlockContextProvider>
169
- </LayoutProvider>
170
- );
171
- }
172
-
173
- /**
174
- * The controlled inner blocks component wraps the uncontrolled inner blocks
175
- * component with the blockSync hook. This keeps the innerBlocks of the block in
176
- * the block-editor store in sync with the blocks of the controlling entity. An
177
- * example of an inner block controller is a template part block, which provides
178
- * its own blocks from the template part entity data source.
179
- *
180
- * @param {Object} props The component props.
181
- */
182
- function ControlledInnerBlocks( props ) {
183
- useBlockSync( props );
184
- return <UncontrolledInnerBlocks { ...props } />;
185
- }
186
-
187
- /**
188
- * Wrapped InnerBlocks component which detects whether to use the controlled or
189
- * uncontrolled variations of the InnerBlocks component. This is the component
190
- * which should be used throughout the application.
191
- *
192
- * @param {Object} props The component props.
193
- */
194
- const InnerBlocks = ( props ) => {
195
- const { clientId } = useBlockEditContext();
196
-
197
- const allProps = {
198
- clientId,
199
- ...props,
200
- };
201
-
202
- // Detects if the InnerBlocks should be controlled by an incoming value.
203
- return props.value && props.onChange ? (
204
- <ControlledInnerBlocks { ...allProps } />
205
- ) : (
206
- <UncontrolledInnerBlocks { ...allProps } />
207
- );
208
- };
209
-
210
- // Expose default appender placeholders as components.
211
- InnerBlocks.DefaultBlockAppender = DefaultBlockAppender;
212
- InnerBlocks.ButtonBlockAppender = ButtonBlockAppender;
213
-
214
- useInnerBlocksProps.save = getInnerBlocksProps;
215
-
216
- InnerBlocks.Content = () => useInnerBlocksProps.save().children;
217
-
218
- /**
219
- * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inner-blocks/README.md
220
- */
221
- export default InnerBlocks;
@@ -1,124 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { TouchableWithoutFeedback, View } from 'react-native';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { __, sprintf } from '@wordpress/i18n';
10
- import { useState } from '@wordpress/element';
11
- import { useSelect } from '@wordpress/data';
12
-
13
- /**
14
- * Internal dependencies
15
- */
16
- import Warning from '../warning';
17
- import UnsupportedBlockDetails from '../unsupported-block-details';
18
- import { store as blockEditorStore } from '../../store';
19
- import { MAX_NESTING_DEPTH } from './constants';
20
- import useUnsupportedBlockEditor from '../use-unsupported-block-editor';
21
- import {
22
- useConvertToGroupButtons,
23
- useConvertToGroupButtonProps,
24
- } from '../convert-to-group-buttons';
25
-
26
- const EMPTY_ARRAY = [];
27
-
28
- const WarningMaxDepthExceeded = ( { clientId } ) => {
29
- const [ showDetails, setShowDetails ] = useState( false );
30
-
31
- const isSelected = useSelect(
32
- ( select ) => select( blockEditorStore ).isBlockSelected( clientId ),
33
- [ clientId ]
34
- );
35
-
36
- // We rely on the logic related to the Group/Ungroup buttons used in the block options to
37
- // determine whether to use the Ungroup action.
38
- const convertToGroupButtonProps = useConvertToGroupButtonProps( [
39
- clientId,
40
- ] );
41
- const { isUngroupable } = convertToGroupButtonProps;
42
- const convertToGroupButtons = useConvertToGroupButtons( {
43
- ...convertToGroupButtonProps,
44
- } );
45
- const onUngroup = convertToGroupButtons.ungroup.onSelect;
46
-
47
- const {
48
- isUnsupportedBlockEditorSupported,
49
- canEnableUnsupportedBlockEditor,
50
- } = useUnsupportedBlockEditor( clientId );
51
-
52
- /* translators: Warning related to having blocks deeply nested. %d: The deepest nesting level. */
53
- const descriptionFormat = __(
54
- 'Blocks nested deeper than %d levels may not render properly in the mobile editor.'
55
- );
56
- let description = sprintf( descriptionFormat, MAX_NESTING_DEPTH );
57
- if (
58
- ! isUnsupportedBlockEditorSupported &&
59
- ! canEnableUnsupportedBlockEditor
60
- ) {
61
- // When UBE can't be used, the description mentions using the web browser to edit the block.
62
- description +=
63
- ' ' +
64
- /* translators: Recommendation included in a warning related to having blocks deeply nested. */
65
- __(
66
- 'For this reason, we recommend editing the block using your web browser.'
67
- );
68
- }
69
- // Otherwise, the description mentions using the web editor (i.e. UBE).
70
- else {
71
- description +=
72
- ' ' +
73
- /* translators: Recommendation included in a warning related to having blocks deeply nested. */
74
- __(
75
- 'For this reason, we recommend editing the block using the web editor.'
76
- );
77
- }
78
- // If the block can be flattened, we also suggest to ungroup the block.
79
- if ( isUngroupable ) {
80
- description +=
81
- ' ' +
82
- /* translators: Alternative option included in a warning related to having blocks deeply nested. */
83
- __(
84
- 'Alternatively, you can flatten the content by ungrouping the block.'
85
- );
86
- }
87
-
88
- return (
89
- <TouchableWithoutFeedback
90
- disabled={ ! isSelected }
91
- accessibilityLabel={ __( 'Warning message' ) }
92
- accessibilityRole="button"
93
- accessibilityHint={ __( 'Tap here to show more details.' ) }
94
- onPress={ () => setShowDetails( true ) }
95
- >
96
- <View>
97
- <Warning
98
- message={ __(
99
- 'Block cannot be rendered because it is deeply nested. Tap here for more details.'
100
- ) }
101
- />
102
- <UnsupportedBlockDetails
103
- clientId={ clientId }
104
- showSheet={ showDetails }
105
- onCloseSheet={ () => setShowDetails( false ) }
106
- title={ __( 'Deeply nested block' ) }
107
- description={ description }
108
- customActions={
109
- isUngroupable
110
- ? [
111
- {
112
- label: __( 'Ungroup block' ),
113
- onPress: onUngroup,
114
- },
115
- ]
116
- : EMPTY_ARRAY
117
- }
118
- />
119
- </View>
120
- </TouchableWithoutFeedback>
121
- );
122
- };
123
-
124
- export default WarningMaxDepthExceeded;
@@ -1,76 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useMemo } from '@wordpress/element';
5
- import { __ } from '@wordpress/i18n';
6
-
7
- /**
8
- * Internal dependencies
9
- */
10
- import BlockTypesList from '../block-types-list';
11
- import useClipboardBlock from './hooks/use-clipboard-block';
12
- import useBlockTypeImpressions from './hooks/use-block-type-impressions';
13
- import { createInserterSection, filterInserterItems } from './utils';
14
- import useBlockTypesState from './hooks/use-block-types-state';
15
-
16
- const getBlockNamespace = ( item ) => item.name.split( '/' )[ 0 ];
17
-
18
- function BlockTypesTab( { onSelect, rootClientId, listProps } ) {
19
- const [ rawBlockTypes, , collections ] = useBlockTypesState(
20
- rootClientId,
21
- onSelect,
22
- true
23
- );
24
- const clipboardBlock = useClipboardBlock( rootClientId );
25
- const filteredBlockTypes = filterInserterItems( rawBlockTypes );
26
- const blockTypes = clipboardBlock
27
- ? [ clipboardBlock, ...filteredBlockTypes ]
28
- : filteredBlockTypes;
29
- const { items, trackBlockTypeSelected } =
30
- useBlockTypeImpressions( blockTypes );
31
-
32
- const handleSelect = ( ...args ) => {
33
- trackBlockTypeSelected( ...args );
34
- onSelect( ...args );
35
- };
36
-
37
- const collectionSections = useMemo( () => {
38
- const result = [];
39
- Object.keys( collections ).forEach( ( namespace ) => {
40
- const data = items.filter(
41
- ( item ) => getBlockNamespace( item ) === namespace
42
- );
43
- if ( data.length > 0 ) {
44
- result.push(
45
- createInserterSection( {
46
- key: `collection-${ namespace }`,
47
- metadata: {
48
- icon: collections[ namespace ].icon,
49
- title: collections[ namespace ].title,
50
- },
51
- items: data,
52
- } )
53
- );
54
- }
55
- } );
56
-
57
- return result;
58
- }, [ items, collections ] );
59
-
60
- const sections = [
61
- createInserterSection( { key: 'default', items } ),
62
- ...collectionSections,
63
- ];
64
-
65
- return (
66
- <BlockTypesList
67
- name="Blocks"
68
- sections={ sections }
69
- onSelect={ handleSelect }
70
- listProps={ listProps }
71
- label={ __( 'Blocks menu' ) }
72
- />
73
- );
74
- }
75
-
76
- export default BlockTypesTab;