@wordpress/block-editor 12.0.0 → 12.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (627) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/build/autocompleters/block.js +13 -5
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-breadcrumb/index.js +6 -3
  6. package/build/components/block-breadcrumb/index.js.map +1 -1
  7. package/build/components/block-controls/slot.js +12 -4
  8. package/build/components/block-controls/slot.js.map +1 -1
  9. package/build/components/block-controls/slot.native.js +10 -1
  10. package/build/components/block-controls/slot.native.js.map +1 -1
  11. package/build/components/block-draggable/index.js +11 -7
  12. package/build/components/block-draggable/index.js.map +1 -1
  13. package/build/components/block-draggable/use-scroll-when-dragging.js +2 -2
  14. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  15. package/build/components/block-editing-mode/index.js +84 -0
  16. package/build/components/block-editing-mode/index.js.map +1 -0
  17. package/build/components/block-list/block-invalid-warning.native.js +15 -7
  18. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  19. package/build/components/block-list/block-list-block-context.js +15 -0
  20. package/build/components/block-list/block-list-block-context.js.map +1 -0
  21. package/build/components/block-list/block-list-item-cell.native.js +15 -2
  22. package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
  23. package/build/components/block-list/block-list-item.native.js +158 -195
  24. package/build/components/block-list/block-list-item.native.js.map +1 -1
  25. package/build/components/block-list/block-outline.native.js +57 -0
  26. package/build/components/block-list/block-outline.native.js.map +1 -0
  27. package/build/components/block-list/block.js +29 -37
  28. package/build/components/block-list/block.js.map +1 -1
  29. package/build/components/block-list/block.native.js +347 -311
  30. package/build/components/block-list/block.native.js.map +1 -1
  31. package/build/components/block-list/index.native.js +260 -357
  32. package/build/components/block-list/index.native.js.map +1 -1
  33. package/build/components/block-list/insertion-point.native.js +4 -2
  34. package/build/components/block-list/insertion-point.native.js.map +1 -1
  35. package/build/components/block-list/use-block-props/index.js +2 -2
  36. package/build/components/block-list/use-block-props/index.js.map +1 -1
  37. package/build/components/block-list/use-in-between-inserter.js +7 -5
  38. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  39. package/build/components/block-list-appender/index.js +15 -1
  40. package/build/components/block-list-appender/index.js.map +1 -1
  41. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +19 -4
  42. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  43. package/build/components/block-settings-menu/block-settings-dropdown.js +8 -10
  44. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  45. package/build/components/block-settings-menu-controls/index.js +15 -4
  46. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  47. package/build/components/block-styles/preview-panel.js +1 -2
  48. package/build/components/block-styles/preview-panel.js.map +1 -1
  49. package/build/components/block-switcher/block-transformations-menu.js +8 -0
  50. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  51. package/build/components/block-switcher/block-variation-transformations.js +125 -0
  52. package/build/components/block-switcher/block-variation-transformations.js.map +1 -0
  53. package/build/components/block-switcher/index.js +34 -12
  54. package/build/components/block-switcher/index.js.map +1 -1
  55. package/build/components/block-switcher/pattern-transformations-menu.js +3 -3
  56. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  57. package/build/components/block-toolbar/index.js +9 -7
  58. package/build/components/block-toolbar/index.js.map +1 -1
  59. package/build/components/block-tools/block-contextual-toolbar.js +22 -65
  60. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  61. package/build/components/block-tools/insertion-point.js +11 -5
  62. package/build/components/block-tools/insertion-point.js.map +1 -1
  63. package/build/components/block-tools/selected-block-popover.js +3 -8
  64. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  65. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  66. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  67. package/build/components/convert-to-group-buttons/index.js +7 -2
  68. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  69. package/build/components/convert-to-group-buttons/index.native.js +87 -3
  70. package/build/components/convert-to-group-buttons/index.native.js.map +1 -1
  71. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +23 -37
  72. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  73. package/build/components/global-styles/advanced-panel.js +86 -0
  74. package/build/components/global-styles/advanced-panel.js.map +1 -0
  75. package/build/components/global-styles/color-panel.js +4 -1
  76. package/build/components/global-styles/color-panel.js.map +1 -1
  77. package/build/components/global-styles/dimensions-panel.js +9 -8
  78. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  79. package/build/components/global-styles/hooks.js +1 -2
  80. package/build/components/global-styles/hooks.js.map +1 -1
  81. package/build/components/global-styles/index.js +24 -0
  82. package/build/components/global-styles/index.js.map +1 -1
  83. package/build/components/global-styles/typography-panel.js +1 -1
  84. package/build/components/global-styles/typography-panel.js.map +1 -1
  85. package/build/components/global-styles/use-global-styles-output.js +27 -4
  86. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  87. package/build/components/global-styles/utils.js +30 -0
  88. package/build/components/global-styles/utils.js.map +1 -1
  89. package/build/components/iframe/index.js +14 -7
  90. package/build/components/iframe/index.js.map +1 -1
  91. package/build/components/image-editor/use-save-image.js +24 -8
  92. package/build/components/image-editor/use-save-image.js.map +1 -1
  93. package/build/components/inner-blocks/index.js +2 -1
  94. package/build/components/inner-blocks/index.js.map +1 -1
  95. package/build/components/inner-blocks/index.native.js +7 -7
  96. package/build/components/inner-blocks/index.native.js.map +1 -1
  97. package/build/components/inner-blocks/use-nested-settings-update.js +13 -5
  98. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  99. package/build/components/inserter/index.js +3 -7
  100. package/build/components/inserter/index.js.map +1 -1
  101. package/build/components/inserter/quick-inserter.js +2 -4
  102. package/build/components/inserter/quick-inserter.js.map +1 -1
  103. package/build/components/inserter/search-results.js +19 -6
  104. package/build/components/inserter/search-results.js.map +1 -1
  105. package/build/components/inserter-draggable-blocks/index.js +5 -0
  106. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  107. package/build/components/inspector-controls/fill.js +1 -1
  108. package/build/components/inspector-controls/fill.js.map +1 -1
  109. package/build/components/inspector-controls/fill.native.js +1 -1
  110. package/build/components/inspector-controls/fill.native.js.map +1 -1
  111. package/build/components/inspector-controls/slot.js +3 -6
  112. package/build/components/inspector-controls/slot.js.map +1 -1
  113. package/build/components/inspector-controls/slot.native.js +1 -1
  114. package/build/components/inspector-controls/slot.native.js.map +1 -1
  115. package/build/components/line-height-control/index.js +7 -2
  116. package/build/components/line-height-control/index.js.map +1 -1
  117. package/build/components/link-control/use-internal-input-value.js +9 -8
  118. package/build/components/link-control/use-internal-input-value.js.map +1 -1
  119. package/build/components/list-view/appender.js +6 -1
  120. package/build/components/list-view/appender.js.map +1 -1
  121. package/build/components/list-view/block-contents.js +9 -2
  122. package/build/components/list-view/block-contents.js.map +1 -1
  123. package/build/components/list-view/block-select-button.js +2 -1
  124. package/build/components/list-view/block-select-button.js.map +1 -1
  125. package/build/components/list-view/block.js +25 -29
  126. package/build/components/list-view/block.js.map +1 -1
  127. package/build/components/list-view/branch.js +1 -3
  128. package/build/components/list-view/branch.js.map +1 -1
  129. package/build/components/list-view/index.js +43 -22
  130. package/build/components/list-view/index.js.map +1 -1
  131. package/build/components/list-view/use-list-view-client-ids.js +27 -3
  132. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  133. package/build/components/list-view/use-list-view-drop-zone.js +163 -11
  134. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  135. package/build/components/media-placeholder/index.js +68 -7
  136. package/build/components/media-placeholder/index.js.map +1 -1
  137. package/build/components/multi-selection-inspector/index.js +2 -2
  138. package/build/components/multi-selection-inspector/index.js.map +1 -1
  139. package/build/components/preview-options/index.js +6 -1
  140. package/build/components/preview-options/index.js.map +1 -1
  141. package/build/components/publish-date-time-picker/index.js +0 -2
  142. package/build/components/publish-date-time-picker/index.js.map +1 -1
  143. package/build/components/spacing-sizes-control/spacing-input-control.js +1 -1
  144. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  145. package/build/components/url-input/index.js +4 -2
  146. package/build/components/url-input/index.js.map +1 -1
  147. package/build/components/use-block-drop-zone/index.js +25 -15
  148. package/build/components/use-block-drop-zone/index.js.map +1 -1
  149. package/build/components/use-resize-canvas/index.js +8 -1
  150. package/build/components/use-resize-canvas/index.js.map +1 -1
  151. package/build/components/writing-flow/use-arrow-nav.js +13 -7
  152. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  153. package/build/hooks/align.js +4 -8
  154. package/build/hooks/align.js.map +1 -1
  155. package/build/hooks/behaviors.js +115 -0
  156. package/build/hooks/behaviors.js.map +1 -0
  157. package/build/hooks/border.js +1 -1
  158. package/build/hooks/border.js.map +1 -1
  159. package/build/hooks/color.js +1 -1
  160. package/build/hooks/color.js.map +1 -1
  161. package/build/hooks/content-lock-ui.js +8 -12
  162. package/build/hooks/content-lock-ui.js.map +1 -1
  163. package/build/hooks/dimensions.js +0 -30
  164. package/build/hooks/dimensions.js.map +1 -1
  165. package/build/hooks/duotone.js +5 -9
  166. package/build/hooks/duotone.js.map +1 -1
  167. package/build/hooks/index.js +2 -0
  168. package/build/hooks/index.js.map +1 -1
  169. package/build/hooks/index.native.js +8 -0
  170. package/build/hooks/index.native.js.map +1 -1
  171. package/build/hooks/layout.js +10 -11
  172. package/build/hooks/layout.js.map +1 -1
  173. package/build/hooks/position.js +1 -1
  174. package/build/hooks/position.js.map +1 -1
  175. package/build/hooks/style.js +1 -1
  176. package/build/hooks/style.js.map +1 -1
  177. package/build/hooks/use-editor-wrapper-styles.native.js +255 -0
  178. package/build/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  179. package/build/hooks/use-typography-props.js +14 -10
  180. package/build/hooks/use-typography-props.js.map +1 -1
  181. package/build/index.native.js +31 -0
  182. package/build/index.native.js.map +1 -0
  183. package/build/private-apis.js +4 -7
  184. package/build/private-apis.js.map +1 -1
  185. package/build/store/private-actions.js +46 -0
  186. package/build/store/private-actions.js.map +1 -1
  187. package/build/store/private-selectors.js +88 -0
  188. package/build/store/private-selectors.js.map +1 -1
  189. package/build/store/reducer.js +36 -1
  190. package/build/store/reducer.js.map +1 -1
  191. package/build/store/selectors.js +28 -18
  192. package/build/store/selectors.js.map +1 -1
  193. package/build/utils/order-inserter-block-items.js +41 -0
  194. package/build/utils/order-inserter-block-items.js.map +1 -0
  195. package/build/utils/use-should-contextual-toolbar-show.js +16 -12
  196. package/build/utils/use-should-contextual-toolbar-show.js.map +1 -1
  197. package/build-module/autocompleters/block.js +12 -5
  198. package/build-module/autocompleters/block.js.map +1 -1
  199. package/build-module/components/block-breadcrumb/index.js +5 -3
  200. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  201. package/build-module/components/block-controls/slot.js +11 -4
  202. package/build-module/components/block-controls/slot.js.map +1 -1
  203. package/build-module/components/block-controls/slot.native.js +9 -1
  204. package/build-module/components/block-controls/slot.native.js.map +1 -1
  205. package/build-module/components/block-draggable/index.js +10 -6
  206. package/build-module/components/block-draggable/index.js.map +1 -1
  207. package/build-module/components/block-draggable/use-scroll-when-dragging.js +2 -2
  208. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  209. package/build-module/components/block-editing-mode/index.js +72 -0
  210. package/build-module/components/block-editing-mode/index.js.map +1 -0
  211. package/build-module/components/block-list/block-invalid-warning.native.js +16 -8
  212. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  213. package/build-module/components/block-list/block-list-block-context.js +6 -0
  214. package/build-module/components/block-list/block-list-block-context.js.map +1 -0
  215. package/build-module/components/block-list/block-list-item-cell.native.js +13 -2
  216. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
  217. package/build-module/components/block-list/block-list-item.native.js +160 -190
  218. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  219. package/build-module/components/block-list/block-outline.native.js +44 -0
  220. package/build-module/components/block-list/block-outline.native.js.map +1 -0
  221. package/build-module/components/block-list/block.js +26 -34
  222. package/build-module/components/block-list/block.js.map +1 -1
  223. package/build-module/components/block-list/block.native.js +345 -310
  224. package/build-module/components/block-list/block.native.js.map +1 -1
  225. package/build-module/components/block-list/index.native.js +263 -355
  226. package/build-module/components/block-list/index.native.js.map +1 -1
  227. package/build-module/components/block-list/insertion-point.native.js +4 -2
  228. package/build-module/components/block-list/insertion-point.native.js.map +1 -1
  229. package/build-module/components/block-list/use-block-props/index.js +1 -1
  230. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  231. package/build-module/components/block-list/use-in-between-inserter.js +6 -5
  232. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  233. package/build-module/components/block-list-appender/index.js +15 -1
  234. package/build-module/components/block-list-appender/index.js.map +1 -1
  235. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +18 -4
  236. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  237. package/build-module/components/block-settings-menu/block-settings-dropdown.js +8 -9
  238. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  239. package/build-module/components/block-settings-menu-controls/index.js +13 -5
  240. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  241. package/build-module/components/block-styles/preview-panel.js +1 -2
  242. package/build-module/components/block-styles/preview-panel.js.map +1 -1
  243. package/build-module/components/block-switcher/block-transformations-menu.js +7 -0
  244. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  245. package/build-module/components/block-switcher/block-variation-transformations.js +108 -0
  246. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -0
  247. package/build-module/components/block-switcher/index.js +33 -12
  248. package/build-module/components/block-switcher/index.js.map +1 -1
  249. package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -3
  250. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  251. package/build-module/components/block-toolbar/index.js +8 -7
  252. package/build-module/components/block-toolbar/index.js.map +1 -1
  253. package/build-module/components/block-tools/block-contextual-toolbar.js +22 -65
  254. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  255. package/build-module/components/block-tools/insertion-point.js +11 -5
  256. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  257. package/build-module/components/block-tools/selected-block-popover.js +3 -7
  258. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  259. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  260. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  261. package/build-module/components/convert-to-group-buttons/index.js +7 -2
  262. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  263. package/build-module/components/convert-to-group-buttons/index.native.js +76 -1
  264. package/build-module/components/convert-to-group-buttons/index.native.js.map +1 -1
  265. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +22 -36
  266. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  267. package/build-module/components/global-styles/advanced-panel.js +74 -0
  268. package/build-module/components/global-styles/advanced-panel.js.map +1 -0
  269. package/build-module/components/global-styles/color-panel.js +5 -2
  270. package/build-module/components/global-styles/color-panel.js.map +1 -1
  271. package/build-module/components/global-styles/dimensions-panel.js +9 -8
  272. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  273. package/build-module/components/global-styles/hooks.js +1 -2
  274. package/build-module/components/global-styles/hooks.js.map +1 -1
  275. package/build-module/components/global-styles/index.js +3 -1
  276. package/build-module/components/global-styles/index.js.map +1 -1
  277. package/build-module/components/global-styles/typography-panel.js +1 -1
  278. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  279. package/build-module/components/global-styles/use-global-styles-output.js +25 -4
  280. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  281. package/build-module/components/global-styles/utils.js +25 -0
  282. package/build-module/components/global-styles/utils.js.map +1 -1
  283. package/build-module/components/iframe/index.js +15 -8
  284. package/build-module/components/iframe/index.js.map +1 -1
  285. package/build-module/components/image-editor/use-save-image.js +24 -8
  286. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  287. package/build-module/components/inner-blocks/index.js +2 -1
  288. package/build-module/components/inner-blocks/index.js.map +1 -1
  289. package/build-module/components/inner-blocks/index.native.js +7 -6
  290. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  291. package/build-module/components/inner-blocks/use-nested-settings-update.js +13 -5
  292. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  293. package/build-module/components/inserter/index.js +3 -7
  294. package/build-module/components/inserter/index.js.map +1 -1
  295. package/build-module/components/inserter/quick-inserter.js +2 -4
  296. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  297. package/build-module/components/inserter/search-results.js +16 -6
  298. package/build-module/components/inserter/search-results.js.map +1 -1
  299. package/build-module/components/inserter-draggable-blocks/index.js +4 -0
  300. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  301. package/build-module/components/inspector-controls/fill.js +1 -1
  302. package/build-module/components/inspector-controls/fill.js.map +1 -1
  303. package/build-module/components/inspector-controls/fill.native.js +1 -1
  304. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  305. package/build-module/components/inspector-controls/slot.js +4 -7
  306. package/build-module/components/inspector-controls/slot.js.map +1 -1
  307. package/build-module/components/inspector-controls/slot.native.js +1 -1
  308. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  309. package/build-module/components/line-height-control/index.js +7 -2
  310. package/build-module/components/line-height-control/index.js.map +1 -1
  311. package/build-module/components/link-control/use-internal-input-value.js +9 -8
  312. package/build-module/components/link-control/use-internal-input-value.js.map +1 -1
  313. package/build-module/components/list-view/appender.js +6 -2
  314. package/build-module/components/list-view/appender.js.map +1 -1
  315. package/build-module/components/list-view/block-contents.js +9 -3
  316. package/build-module/components/list-view/block-contents.js.map +1 -1
  317. package/build-module/components/list-view/block-select-button.js +2 -1
  318. package/build-module/components/list-view/block-select-button.js.map +1 -1
  319. package/build-module/components/list-view/block.js +24 -29
  320. package/build-module/components/list-view/block.js.map +1 -1
  321. package/build-module/components/list-view/branch.js +1 -3
  322. package/build-module/components/list-view/branch.js.map +1 -1
  323. package/build-module/components/list-view/index.js +44 -23
  324. package/build-module/components/list-view/index.js.map +1 -1
  325. package/build-module/components/list-view/use-list-view-client-ids.js +26 -3
  326. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  327. package/build-module/components/list-view/use-list-view-drop-zone.js +160 -11
  328. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  329. package/build-module/components/media-placeholder/index.js +66 -7
  330. package/build-module/components/media-placeholder/index.js.map +1 -1
  331. package/build-module/components/multi-selection-inspector/index.js +2 -2
  332. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  333. package/build-module/components/preview-options/index.js +7 -2
  334. package/build-module/components/preview-options/index.js.map +1 -1
  335. package/build-module/components/publish-date-time-picker/index.js +0 -2
  336. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  337. package/build-module/components/spacing-sizes-control/spacing-input-control.js +1 -1
  338. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  339. package/build-module/components/url-input/index.js +4 -2
  340. package/build-module/components/url-input/index.js.map +1 -1
  341. package/build-module/components/use-block-drop-zone/index.js +25 -16
  342. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  343. package/build-module/components/use-resize-canvas/index.js +8 -1
  344. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  345. package/build-module/components/writing-flow/use-arrow-nav.js +13 -7
  346. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  347. package/build-module/hooks/align.js +4 -7
  348. package/build-module/hooks/align.js.map +1 -1
  349. package/build-module/hooks/behaviors.js +97 -0
  350. package/build-module/hooks/behaviors.js.map +1 -0
  351. package/build-module/hooks/border.js +1 -1
  352. package/build-module/hooks/border.js.map +1 -1
  353. package/build-module/hooks/color.js +1 -1
  354. package/build-module/hooks/color.js.map +1 -1
  355. package/build-module/hooks/content-lock-ui.js +8 -11
  356. package/build-module/hooks/content-lock-ui.js.map +1 -1
  357. package/build-module/hooks/dimensions.js +0 -28
  358. package/build-module/hooks/dimensions.js.map +1 -1
  359. package/build-module/hooks/duotone.js +4 -7
  360. package/build-module/hooks/duotone.js.map +1 -1
  361. package/build-module/hooks/index.js +1 -0
  362. package/build-module/hooks/index.js.map +1 -1
  363. package/build-module/hooks/index.native.js +1 -0
  364. package/build-module/hooks/index.native.js.map +1 -1
  365. package/build-module/hooks/layout.js +9 -11
  366. package/build-module/hooks/layout.js.map +1 -1
  367. package/build-module/hooks/position.js +1 -1
  368. package/build-module/hooks/position.js.map +1 -1
  369. package/build-module/hooks/style.js +1 -1
  370. package/build-module/hooks/style.js.map +1 -1
  371. package/build-module/hooks/use-editor-wrapper-styles.native.js +242 -0
  372. package/build-module/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  373. package/build-module/hooks/use-typography-props.js +14 -10
  374. package/build-module/hooks/use-typography-props.js.map +1 -1
  375. package/build-module/index.native.js +6 -0
  376. package/build-module/index.native.js.map +1 -0
  377. package/build-module/private-apis.js +3 -5
  378. package/build-module/private-apis.js.map +1 -1
  379. package/build-module/store/private-actions.js +42 -0
  380. package/build-module/store/private-actions.js.map +1 -1
  381. package/build-module/store/private-selectors.js +79 -0
  382. package/build-module/store/private-selectors.js.map +1 -1
  383. package/build-module/store/reducer.js +34 -1
  384. package/build-module/store/reducer.js.map +1 -1
  385. package/build-module/store/selectors.js +26 -17
  386. package/build-module/store/selectors.js.map +1 -1
  387. package/build-module/utils/order-inserter-block-items.js +32 -0
  388. package/build-module/utils/order-inserter-block-items.js.map +1 -0
  389. package/build-module/utils/use-should-contextual-toolbar-show.js +16 -12
  390. package/build-module/utils/use-should-contextual-toolbar-show.js.map +1 -1
  391. package/build-style/content-rtl.css +32 -14
  392. package/build-style/content.css +32 -14
  393. package/build-style/default-editor-styles-rtl.css +1 -1
  394. package/build-style/default-editor-styles.css +1 -1
  395. package/build-style/style-rtl.css +56 -77
  396. package/build-style/style.css +57 -77
  397. package/package.json +32 -31
  398. package/src/autocompleters/block.js +15 -7
  399. package/src/components/block-breadcrumb/index.js +11 -3
  400. package/src/components/block-breadcrumb/style.scss +2 -1
  401. package/src/components/block-controls/slot.js +8 -4
  402. package/src/components/block-controls/slot.native.js +6 -1
  403. package/src/components/block-draggable/index.js +10 -6
  404. package/src/components/block-draggable/use-scroll-when-dragging.js +8 -2
  405. package/src/components/block-editing-mode/index.js +71 -0
  406. package/src/components/block-list/block-invalid-warning.native.js +17 -9
  407. package/src/components/block-list/block-list-block-context.js +6 -0
  408. package/src/components/block-list/block-list-item-cell.native.js +10 -1
  409. package/src/components/block-list/block-list-item.native.js +180 -208
  410. package/src/components/block-list/block-outline.native.js +58 -0
  411. package/src/components/block-list/block.js +38 -56
  412. package/src/components/block-list/block.native.js +531 -501
  413. package/src/components/block-list/content.scss +5 -6
  414. package/src/components/block-list/index.native.js +324 -382
  415. package/src/components/block-list/insertion-point.native.js +2 -2
  416. package/src/components/block-list/test/block-invalid-warning.native.js +48 -0
  417. package/src/components/block-list/test/index.native.js +205 -0
  418. package/src/components/block-list/use-block-props/index.js +1 -1
  419. package/src/components/block-list/use-in-between-inserter.js +7 -3
  420. package/src/components/block-list-appender/index.js +22 -4
  421. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +26 -1
  422. package/src/components/block-mover/style.scss +1 -0
  423. package/src/components/block-pattern-setup/style.scss +1 -4
  424. package/src/components/block-patterns-list/style.scss +1 -4
  425. package/src/components/block-settings-menu/block-settings-dropdown.js +10 -17
  426. package/src/components/block-settings-menu-controls/index.js +24 -4
  427. package/src/components/block-styles/preview-panel.js +1 -3
  428. package/src/components/block-styles/style.scss +4 -4
  429. package/src/components/block-switcher/block-transformations-menu.js +12 -0
  430. package/src/components/block-switcher/block-variation-transformations.js +115 -0
  431. package/src/components/block-switcher/index.js +38 -5
  432. package/src/components/block-switcher/pattern-transformations-menu.js +5 -5
  433. package/src/components/block-switcher/style.scss +6 -5
  434. package/src/components/block-toolbar/index.js +10 -11
  435. package/src/components/block-tools/block-contextual-toolbar.js +32 -67
  436. package/src/components/block-tools/insertion-point.js +23 -9
  437. package/src/components/block-tools/selected-block-popover.js +3 -5
  438. package/src/components/block-tools/style.scss +8 -0
  439. package/src/components/button-block-appender/content.scss +22 -0
  440. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +16 -2
  441. package/src/components/convert-to-group-buttons/index.js +9 -2
  442. package/src/components/convert-to-group-buttons/index.native.js +79 -1
  443. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +32 -38
  444. package/src/components/global-styles/advanced-panel.js +82 -0
  445. package/src/components/global-styles/color-panel.js +6 -1
  446. package/src/components/global-styles/dimensions-panel.js +9 -8
  447. package/src/components/global-styles/hooks.js +1 -5
  448. package/src/components/global-styles/index.js +6 -1
  449. package/src/components/global-styles/style.scss +17 -0
  450. package/src/components/global-styles/test/utils.js +57 -1
  451. package/src/components/global-styles/typography-panel.js +1 -1
  452. package/src/components/global-styles/use-global-styles-output.js +21 -3
  453. package/src/components/global-styles/utils.js +27 -0
  454. package/src/components/iframe/index.js +22 -12
  455. package/src/components/image-editor/use-save-image.js +20 -9
  456. package/src/components/inner-blocks/README.md +5 -0
  457. package/src/components/inner-blocks/index.js +2 -0
  458. package/src/components/inner-blocks/index.native.js +16 -6
  459. package/src/components/inner-blocks/use-nested-settings-update.js +20 -3
  460. package/src/components/inserter/index.js +1 -9
  461. package/src/components/inserter/quick-inserter.js +0 -2
  462. package/src/components/inserter/search-results.js +32 -6
  463. package/src/components/inserter-draggable-blocks/index.js +4 -0
  464. package/src/components/inspector-controls/fill.js +1 -1
  465. package/src/components/inspector-controls/fill.native.js +1 -1
  466. package/src/components/inspector-controls/slot.js +4 -9
  467. package/src/components/inspector-controls/slot.native.js +1 -1
  468. package/src/components/line-height-control/index.js +7 -2
  469. package/src/components/line-height-control/stories/index.js +1 -1
  470. package/src/components/link-control/test/index.js +42 -0
  471. package/src/components/link-control/use-internal-input-value.js +8 -7
  472. package/src/components/list-view/appender.js +3 -2
  473. package/src/components/list-view/block-contents.js +32 -20
  474. package/src/components/list-view/block-select-button.js +5 -1
  475. package/src/components/list-view/block.js +34 -37
  476. package/src/components/list-view/branch.js +1 -7
  477. package/src/components/list-view/index.js +42 -17
  478. package/src/components/list-view/style.scss +7 -7
  479. package/src/components/list-view/test/use-list-view-drop-zone.js +88 -12
  480. package/src/components/list-view/use-list-view-client-ids.js +21 -4
  481. package/src/components/list-view/use-list-view-drop-zone.js +194 -11
  482. package/src/components/media-placeholder/index.js +74 -1
  483. package/src/components/multi-selection-inspector/index.js +2 -2
  484. package/src/components/preview-options/index.js +9 -2
  485. package/src/components/publish-date-time-picker/index.js +0 -2
  486. package/src/components/spacing-sizes-control/spacing-input-control.js +1 -0
  487. package/src/components/url-input/README.md +6 -0
  488. package/src/components/url-input/index.js +2 -2
  489. package/src/components/use-block-drop-zone/index.js +31 -17
  490. package/src/components/use-resize-canvas/index.js +9 -1
  491. package/src/components/writing-flow/test/index.js +15 -0
  492. package/src/components/writing-flow/use-arrow-nav.js +17 -4
  493. package/src/hooks/align.js +5 -12
  494. package/src/hooks/behaviors.js +104 -0
  495. package/src/hooks/border.js +2 -1
  496. package/src/hooks/color.js +2 -1
  497. package/src/hooks/content-lock-ui.js +3 -15
  498. package/src/hooks/dimensions.js +0 -40
  499. package/src/hooks/duotone.js +4 -11
  500. package/src/hooks/index.js +1 -0
  501. package/src/hooks/index.native.js +1 -0
  502. package/src/hooks/layout.js +14 -20
  503. package/src/hooks/position.js +2 -1
  504. package/src/hooks/style.js +2 -1
  505. package/src/hooks/test/use-editor-wrapper-styles.native.js +282 -0
  506. package/src/hooks/test/use-typography-props.js +47 -2
  507. package/src/hooks/use-editor-wrapper-styles.native.js +250 -0
  508. package/src/hooks/use-editor-wrapper-styles.native.scss +11 -0
  509. package/src/hooks/use-typography-props.js +10 -11
  510. package/src/index.native.js +6 -0
  511. package/src/private-apis.js +2 -4
  512. package/src/store/private-actions.js +39 -0
  513. package/src/store/private-selectors.js +95 -0
  514. package/src/store/reducer.js +27 -0
  515. package/src/store/selectors.js +25 -15
  516. package/src/store/test/private-actions.js +32 -1
  517. package/src/store/test/private-selectors.js +158 -0
  518. package/src/store/test/reducer.js +48 -0
  519. package/src/style.scss +0 -3
  520. package/src/utils/order-inserter-block-items.js +26 -0
  521. package/src/utils/use-should-contextual-toolbar-show.js +19 -9
  522. package/tsconfig.json +1 -0
  523. package/tsconfig.tsbuildinfo +1 -1
  524. package/build/components/block-list/block-list-compact.native.js +0 -75
  525. package/build/components/block-list/block-list-compact.native.js.map +0 -1
  526. package/build/components/off-canvas-editor/appender.js +0 -125
  527. package/build/components/off-canvas-editor/appender.js.map +0 -1
  528. package/build/components/off-canvas-editor/block-contents.js +0 -141
  529. package/build/components/off-canvas-editor/block-contents.js.map +0 -1
  530. package/build/components/off-canvas-editor/block-select-button.js +0 -126
  531. package/build/components/off-canvas-editor/block-select-button.js.map +0 -1
  532. package/build/components/off-canvas-editor/block.js +0 -297
  533. package/build/components/off-canvas-editor/block.js.map +0 -1
  534. package/build/components/off-canvas-editor/branch.js +0 -197
  535. package/build/components/off-canvas-editor/branch.js.map +0 -1
  536. package/build/components/off-canvas-editor/context.js +0 -19
  537. package/build/components/off-canvas-editor/context.js.map +0 -1
  538. package/build/components/off-canvas-editor/drop-indicator.js +0 -118
  539. package/build/components/off-canvas-editor/drop-indicator.js.map +0 -1
  540. package/build/components/off-canvas-editor/expander.js +0 -41
  541. package/build/components/off-canvas-editor/expander.js.map +0 -1
  542. package/build/components/off-canvas-editor/index.js +0 -236
  543. package/build/components/off-canvas-editor/index.js.map +0 -1
  544. package/build/components/off-canvas-editor/leaf-more-menu.js +0 -146
  545. package/build/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
  546. package/build/components/off-canvas-editor/leaf.js +0 -60
  547. package/build/components/off-canvas-editor/leaf.js.map +0 -1
  548. package/build/components/off-canvas-editor/link-ui.js +0 -186
  549. package/build/components/off-canvas-editor/link-ui.js.map +0 -1
  550. package/build/components/off-canvas-editor/update-attributes.js +0 -108
  551. package/build/components/off-canvas-editor/update-attributes.js.map +0 -1
  552. package/build/components/off-canvas-editor/use-block-selection.js +0 -139
  553. package/build/components/off-canvas-editor/use-block-selection.js.map +0 -1
  554. package/build/components/off-canvas-editor/use-inserted-block.js +0 -58
  555. package/build/components/off-canvas-editor/use-inserted-block.js.map +0 -1
  556. package/build/components/off-canvas-editor/use-list-view-client-ids.js +0 -33
  557. package/build/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
  558. package/build/components/off-canvas-editor/use-list-view-drop-zone.js +0 -235
  559. package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
  560. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -60
  561. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
  562. package/build/components/off-canvas-editor/utils.js +0 -60
  563. package/build/components/off-canvas-editor/utils.js.map +0 -1
  564. package/build-module/components/block-list/block-list-compact.native.js +0 -60
  565. package/build-module/components/block-list/block-list-compact.native.js.map +0 -1
  566. package/build-module/components/off-canvas-editor/appender.js +0 -108
  567. package/build-module/components/off-canvas-editor/appender.js.map +0 -1
  568. package/build-module/components/off-canvas-editor/block-contents.js +0 -121
  569. package/build-module/components/off-canvas-editor/block-contents.js.map +0 -1
  570. package/build-module/components/off-canvas-editor/block-select-button.js +0 -107
  571. package/build-module/components/off-canvas-editor/block-select-button.js.map +0 -1
  572. package/build-module/components/off-canvas-editor/block.js +0 -273
  573. package/build-module/components/off-canvas-editor/block.js.map +0 -1
  574. package/build-module/components/off-canvas-editor/branch.js +0 -179
  575. package/build-module/components/off-canvas-editor/branch.js.map +0 -1
  576. package/build-module/components/off-canvas-editor/context.js +0 -7
  577. package/build-module/components/off-canvas-editor/context.js.map +0 -1
  578. package/build-module/components/off-canvas-editor/drop-indicator.js +0 -111
  579. package/build-module/components/off-canvas-editor/drop-indicator.js.map +0 -1
  580. package/build-module/components/off-canvas-editor/expander.js +0 -32
  581. package/build-module/components/off-canvas-editor/expander.js.map +0 -1
  582. package/build-module/components/off-canvas-editor/index.js +0 -213
  583. package/build-module/components/off-canvas-editor/index.js.map +0 -1
  584. package/build-module/components/off-canvas-editor/leaf-more-menu.js +0 -128
  585. package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
  586. package/build-module/components/off-canvas-editor/leaf.js +0 -45
  587. package/build-module/components/off-canvas-editor/leaf.js.map +0 -1
  588. package/build-module/components/off-canvas-editor/link-ui.js +0 -166
  589. package/build-module/components/off-canvas-editor/link-ui.js.map +0 -1
  590. package/build-module/components/off-canvas-editor/update-attributes.js +0 -97
  591. package/build-module/components/off-canvas-editor/update-attributes.js.map +0 -1
  592. package/build-module/components/off-canvas-editor/use-block-selection.js +0 -124
  593. package/build-module/components/off-canvas-editor/use-block-selection.js.map +0 -1
  594. package/build-module/components/off-canvas-editor/use-inserted-block.js +0 -47
  595. package/build-module/components/off-canvas-editor/use-inserted-block.js.map +0 -1
  596. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js +0 -24
  597. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
  598. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +0 -220
  599. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
  600. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -50
  601. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
  602. package/build-module/components/off-canvas-editor/utils.js +0 -44
  603. package/build-module/components/off-canvas-editor/utils.js.map +0 -1
  604. package/src/components/block-list/block-list-compact.native.js +0 -63
  605. package/src/components/off-canvas-editor/README.md +0 -5
  606. package/src/components/off-canvas-editor/appender.js +0 -124
  607. package/src/components/off-canvas-editor/block-contents.js +0 -156
  608. package/src/components/off-canvas-editor/block-select-button.js +0 -128
  609. package/src/components/off-canvas-editor/block.js +0 -347
  610. package/src/components/off-canvas-editor/branch.js +0 -238
  611. package/src/components/off-canvas-editor/context.js +0 -8
  612. package/src/components/off-canvas-editor/drop-indicator.js +0 -126
  613. package/src/components/off-canvas-editor/expander.js +0 -26
  614. package/src/components/off-canvas-editor/index.js +0 -271
  615. package/src/components/off-canvas-editor/leaf-more-menu.js +0 -157
  616. package/src/components/off-canvas-editor/leaf.js +0 -52
  617. package/src/components/off-canvas-editor/link-ui.js +0 -167
  618. package/src/components/off-canvas-editor/style.scss +0 -34
  619. package/src/components/off-canvas-editor/test/use-inserted-block.js +0 -108
  620. package/src/components/off-canvas-editor/test/utils.js +0 -50
  621. package/src/components/off-canvas-editor/update-attributes.js +0 -99
  622. package/src/components/off-canvas-editor/use-block-selection.js +0 -169
  623. package/src/components/off-canvas-editor/use-inserted-block.js +0 -47
  624. package/src/components/off-canvas-editor/use-list-view-client-ids.js +0 -29
  625. package/src/components/off-canvas-editor/use-list-view-drop-zone.js +0 -260
  626. package/src/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -58
  627. package/src/components/off-canvas-editor/utils.js +0 -58
@@ -1,157 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { createBlock } from '@wordpress/blocks';
5
- import {
6
- addSubmenu,
7
- chevronUp,
8
- chevronDown,
9
- moreVertical,
10
- } from '@wordpress/icons';
11
- import { DropdownMenu, MenuItem, MenuGroup } from '@wordpress/components';
12
- import { useDispatch, useSelect } from '@wordpress/data';
13
- import { __, sprintf } from '@wordpress/i18n';
14
-
15
- /**
16
- * Internal dependencies
17
- */
18
- import { store as blockEditorStore } from '../../store';
19
- import BlockTitle from '../block-title';
20
- import { useListViewContext } from './context';
21
-
22
- const POPOVER_PROPS = {
23
- className: 'block-editor-block-settings-menu__popover',
24
- position: 'bottom right',
25
- variant: 'toolbar',
26
- };
27
-
28
- const BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU = [
29
- 'core/navigation-link',
30
- 'core/navigation-submenu',
31
- ];
32
-
33
- function AddSubmenuItem( { block, onClose } ) {
34
- const { expandedState, expand } = useListViewContext();
35
- const { insertBlock, replaceBlock, replaceInnerBlocks } =
36
- useDispatch( blockEditorStore );
37
-
38
- const clientId = block.clientId;
39
- const isDisabled = ! BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU.includes(
40
- block.name
41
- );
42
- return (
43
- <MenuItem
44
- icon={ addSubmenu }
45
- disabled={ isDisabled }
46
- onClick={ () => {
47
- const updateSelectionOnInsert = false;
48
- const newLink = createBlock( 'core/navigation-link' );
49
-
50
- if ( block.name === 'core/navigation-submenu' ) {
51
- insertBlock(
52
- newLink,
53
- block.innerBlocks.length,
54
- clientId,
55
- updateSelectionOnInsert
56
- );
57
- } else {
58
- // Convert to a submenu if the block currently isn't one.
59
- const newSubmenu = createBlock(
60
- 'core/navigation-submenu',
61
- block.attributes,
62
- block.innerBlocks
63
- );
64
-
65
- // The following must happen as two independent actions.
66
- // Why? Because the offcanvas editor relies on the getLastInsertedBlocksClientIds
67
- // selector to determine which block is "active". As the UX needs the newLink to be
68
- // the "active" block it must be the last block to be inserted.
69
- // Therefore the Submenu is first created and **then** the newLink is inserted
70
- // thus ensuring it is the last inserted block.
71
- replaceBlock( clientId, newSubmenu );
72
-
73
- replaceInnerBlocks(
74
- newSubmenu.clientId,
75
- [ newLink ],
76
- updateSelectionOnInsert
77
- );
78
- }
79
- if ( ! expandedState[ block.clientId ] ) {
80
- expand( block.clientId );
81
- }
82
- onClose();
83
- } }
84
- >
85
- { __( 'Add submenu link' ) }
86
- </MenuItem>
87
- );
88
- }
89
-
90
- export default function LeafMoreMenu( props ) {
91
- const { clientId, block } = props;
92
-
93
- const { moveBlocksDown, moveBlocksUp, removeBlocks } =
94
- useDispatch( blockEditorStore );
95
-
96
- const removeLabel = sprintf(
97
- /* translators: %s: block name */
98
- __( 'Remove %s' ),
99
- BlockTitle( { clientId, maximumLength: 25 } )
100
- );
101
-
102
- const rootClientId = useSelect(
103
- ( select ) => {
104
- const { getBlockRootClientId } = select( blockEditorStore );
105
-
106
- return getBlockRootClientId( clientId );
107
- },
108
- [ clientId ]
109
- );
110
-
111
- return (
112
- <DropdownMenu
113
- icon={ moreVertical }
114
- label={ __( 'Options' ) }
115
- className="block-editor-block-settings-menu"
116
- popoverProps={ POPOVER_PROPS }
117
- noIcons
118
- { ...props }
119
- >
120
- { ( { onClose } ) => (
121
- <>
122
- <MenuGroup>
123
- <MenuItem
124
- icon={ chevronUp }
125
- onClick={ () => {
126
- moveBlocksUp( [ clientId ], rootClientId );
127
- onClose();
128
- } }
129
- >
130
- { __( 'Move up' ) }
131
- </MenuItem>
132
- <MenuItem
133
- icon={ chevronDown }
134
- onClick={ () => {
135
- moveBlocksDown( [ clientId ], rootClientId );
136
- onClose();
137
- } }
138
- >
139
- { __( 'Move down' ) }
140
- </MenuItem>
141
- <AddSubmenuItem block={ block } onClose={ onClose } />
142
- </MenuGroup>
143
- <MenuGroup>
144
- <MenuItem
145
- onClick={ () => {
146
- removeBlocks( [ clientId ], false );
147
- onClose();
148
- } }
149
- >
150
- { removeLabel }
151
- </MenuItem>
152
- </MenuGroup>
153
- </>
154
- ) }
155
- </DropdownMenu>
156
- );
157
- }
@@ -1,52 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { animated } from '@react-spring/web';
5
- import classnames from 'classnames';
6
-
7
- /**
8
- * WordPress dependencies
9
- */
10
- import { __experimentalTreeGridRow as TreeGridRow } from '@wordpress/components';
11
-
12
- /**
13
- * Internal dependencies
14
- */
15
- import useMovingAnimation from '../use-moving-animation';
16
-
17
- const AnimatedTreeGridRow = animated( TreeGridRow );
18
-
19
- export default function ListViewLeaf( {
20
- isSelected,
21
- position,
22
- level,
23
- rowCount,
24
- children,
25
- className,
26
- path,
27
- ...props
28
- } ) {
29
- const ref = useMovingAnimation( {
30
- isSelected,
31
- adjustScrolling: false,
32
- enableAnimation: true,
33
- triggerAnimationOnChange: path,
34
- } );
35
-
36
- return (
37
- <AnimatedTreeGridRow
38
- ref={ ref }
39
- className={ classnames(
40
- 'block-editor-list-view-leaf',
41
- 'offcanvas-editor-list-view-leaf',
42
- className
43
- ) }
44
- level={ level }
45
- positionInSet={ position }
46
- setSize={ rowCount }
47
- { ...props }
48
- >
49
- { children }
50
- </AnimatedTreeGridRow>
51
- );
52
- }
@@ -1,167 +0,0 @@
1
- // Note: this file is copied directly from packages/block-library/src/navigation-link/link-ui.js
2
-
3
- /**
4
- * WordPress dependencies
5
- */
6
- import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
7
- import { Popover, Button } from '@wordpress/components';
8
- import { __ } from '@wordpress/i18n';
9
- import { switchToBlockType } from '@wordpress/blocks';
10
- import { useSelect, useDispatch } from '@wordpress/data';
11
-
12
- /**
13
- * Internal dependencies
14
- */
15
- import { store as blockEditorStore } from '../../store';
16
- import LinkControl from '../link-control';
17
- import BlockIcon from '../block-icon';
18
-
19
- /**
20
- * Given the Link block's type attribute, return the query params to give to
21
- * /wp/v2/search.
22
- *
23
- * @param {string} type Link block's type attribute.
24
- * @param {string} kind Link block's entity of kind (post-type|taxonomy)
25
- * @return {{ type?: string, subtype?: string }} Search query params.
26
- */
27
- export function getSuggestionsQuery( type, kind ) {
28
- switch ( type ) {
29
- case 'post':
30
- case 'page':
31
- return { type: 'post', subtype: type };
32
- case 'category':
33
- return { type: 'term', subtype: 'category' };
34
- case 'tag':
35
- return { type: 'term', subtype: 'post_tag' };
36
- case 'post_format':
37
- return { type: 'post-format' };
38
- default:
39
- if ( kind === 'taxonomy' ) {
40
- return { type: 'term', subtype: type };
41
- }
42
- if ( kind === 'post-type' ) {
43
- return { type: 'post', subtype: type };
44
- }
45
- return {};
46
- }
47
- }
48
-
49
- /**
50
- * Add transforms to Link Control
51
- *
52
- * @param {Object} props Component props.
53
- * @param {string} props.clientId Block client ID.
54
- */
55
- function LinkControlTransforms( { clientId } ) {
56
- const { getBlock, blockTransforms } = useSelect(
57
- ( select ) => {
58
- const {
59
- getBlock: _getBlock,
60
- getBlockRootClientId,
61
- getBlockTransformItems,
62
- } = select( blockEditorStore );
63
-
64
- return {
65
- getBlock: _getBlock,
66
- blockTransforms: getBlockTransformItems(
67
- _getBlock( clientId ),
68
- getBlockRootClientId( clientId )
69
- ),
70
- };
71
- },
72
- [ clientId ]
73
- );
74
-
75
- const { replaceBlock } = useDispatch( blockEditorStore );
76
-
77
- const featuredBlocks = [
78
- 'core/page-list',
79
- 'core/site-logo',
80
- 'core/social-links',
81
- 'core/search',
82
- ];
83
-
84
- const transforms = blockTransforms.filter( ( item ) => {
85
- return featuredBlocks.includes( item.name );
86
- } );
87
-
88
- if ( ! transforms?.length ) {
89
- return null;
90
- }
91
-
92
- if ( ! clientId ) {
93
- return null;
94
- }
95
-
96
- return (
97
- <div className="link-control-transform">
98
- <h3 className="link-control-transform__subheading">
99
- { __( 'Transform' ) }
100
- </h3>
101
- <div className="link-control-transform__items">
102
- { transforms.map( ( item ) => {
103
- return (
104
- <Button
105
- key={ `transform-${ item.name }` }
106
- onClick={ () =>
107
- replaceBlock(
108
- clientId,
109
- switchToBlockType(
110
- getBlock( clientId ),
111
- item.name
112
- )
113
- )
114
- }
115
- className="link-control-transform__item"
116
- >
117
- <BlockIcon icon={ item.icon } />
118
- { item.title }
119
- </Button>
120
- );
121
- } ) }
122
- </div>
123
- </div>
124
- );
125
- }
126
-
127
- export function LinkUI( props ) {
128
- const { label, url, opensInNewTab, type, kind } = props.link;
129
- const link = {
130
- url,
131
- opensInNewTab,
132
- title: label && stripHTML( label ),
133
- };
134
-
135
- return (
136
- <Popover
137
- placement="bottom"
138
- onClose={ props.onClose }
139
- anchor={ props.anchor }
140
- shift
141
- >
142
- <LinkControl
143
- hasTextControl
144
- hasRichPreviews
145
- className={ props.className }
146
- value={ link }
147
- showInitialSuggestions={ true }
148
- withCreateSuggestion={ props.hasCreateSuggestion }
149
- noDirectEntry={ !! type }
150
- noURLSuggestion={ !! type }
151
- suggestionsQuery={ getSuggestionsQuery( type, kind ) }
152
- onChange={ props.onChange }
153
- onRemove={ props.onRemove }
154
- onCancel={ props.onCancel }
155
- renderControlBottom={
156
- ! url
157
- ? () => (
158
- <LinkControlTransforms
159
- clientId={ props.clientId }
160
- />
161
- )
162
- : null
163
- }
164
- />
165
- </Popover>
166
- );
167
- }
@@ -1,34 +0,0 @@
1
- .offcanvas-editor-appender .block-editor-inserter__toggle {
2
- background-color: #1e1e1e;
3
- color: #fff;
4
- margin: $grid-unit-10 0 0 24px;
5
- border-radius: 2px;
6
- height: 24px;
7
- min-width: 24px;
8
- padding: 0;
9
-
10
- &:hover,
11
- &:focus {
12
- background: var(--wp-admin-theme-color);
13
- color: #fff;
14
- }
15
- }
16
-
17
- .offcanvas-editor-appender__description {
18
- display: none;
19
- }
20
-
21
- .offcanvas-editor-list-view-tree-wrapper {
22
- max-width: 100%;
23
- overflow-x: auto;
24
- }
25
-
26
- .offcanvas-editor-list-view-leaf {
27
- display: block;
28
- // sidebar width - tab panel padding
29
- max-width: $sidebar-width - (2 * $grid-unit-20);
30
- }
31
-
32
- .offcanvas-editor-list-view-is-empty {
33
- margin-left: $grid-unit-20;
34
- }
@@ -1,108 +0,0 @@
1
- /**
2
- * Internal dependencies
3
- */
4
- import { useInsertedBlock } from '../use-inserted-block';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { useDispatch, useSelect } from '@wordpress/data';
10
-
11
- /**
12
- * External dependencies
13
- */
14
- import { act, renderHook } from '@testing-library/react';
15
-
16
- jest.mock( '@wordpress/data/src/components/use-select', () => {
17
- // This allows us to tweak the returned value on each test.
18
- const mock = jest.fn();
19
- return mock;
20
- } );
21
-
22
- jest.mock( '@wordpress/data/src/components/use-dispatch', () => ( {
23
- useDispatch: jest.fn(),
24
- } ) );
25
-
26
- describe( 'useInsertedBlock', () => {
27
- const mockUpdateBlockAttributes = jest.fn();
28
-
29
- it( 'returns undefined values when called without a block clientId', () => {
30
- useSelect.mockImplementation( () => ( {
31
- insertedBlockAttributes: {
32
- 'some-attribute': 'some-value',
33
- },
34
- insertedBlockName: 'core/navigation-link',
35
- } ) );
36
-
37
- useDispatch.mockImplementation( () => ( {
38
- updateBlockAttributes: mockUpdateBlockAttributes,
39
- } ) );
40
-
41
- const { result } = renderHook( () => useInsertedBlock() );
42
-
43
- const {
44
- insertedBlockName,
45
- insertedBlockAttributes,
46
- setInsertedBlockAttributes,
47
- } = result.current;
48
-
49
- expect( insertedBlockName ).toBeUndefined();
50
- expect( insertedBlockAttributes ).toBeUndefined();
51
- expect(
52
- setInsertedBlockAttributes( { 'some-attribute': 'new-value' } )
53
- ).toBeUndefined();
54
- } );
55
-
56
- it( 'returns name and attributes when called with a block clientId', () => {
57
- useSelect.mockImplementation( () => ( {
58
- insertedBlockAttributes: {
59
- 'some-attribute': 'some-value',
60
- },
61
- insertedBlockName: 'core/navigation-link',
62
- } ) );
63
-
64
- useDispatch.mockImplementation( () => ( {
65
- updateBlockAttributes: mockUpdateBlockAttributes,
66
- } ) );
67
-
68
- const { result } = renderHook( () =>
69
- useInsertedBlock( 'some-client-id-here' )
70
- );
71
-
72
- const { insertedBlockName, insertedBlockAttributes } = result.current;
73
-
74
- expect( insertedBlockName ).toBe( 'core/navigation-link' );
75
- expect( insertedBlockAttributes ).toEqual( {
76
- 'some-attribute': 'some-value',
77
- } );
78
- } );
79
-
80
- it( 'dispatches updateBlockAttributes on provided client ID with new attributes when setInsertedBlockAttributes is called', () => {
81
- useSelect.mockImplementation( () => ( {
82
- insertedBlockAttributes: {
83
- 'some-attribute': 'some-value',
84
- },
85
- insertedBlockName: 'core/navigation-link',
86
- } ) );
87
-
88
- useDispatch.mockImplementation( () => ( {
89
- updateBlockAttributes: mockUpdateBlockAttributes,
90
- } ) );
91
-
92
- const clientId = '123456789';
93
-
94
- const { result } = renderHook( () => useInsertedBlock( clientId ) );
95
-
96
- const { setInsertedBlockAttributes } = result.current;
97
-
98
- act( () => {
99
- setInsertedBlockAttributes( {
100
- 'some-attribute': 'new-value',
101
- } );
102
- } );
103
-
104
- expect( mockUpdateBlockAttributes ).toHaveBeenCalledWith( clientId, {
105
- 'some-attribute': 'new-value',
106
- } );
107
- } );
108
- } );
@@ -1,50 +0,0 @@
1
- /**
2
- * Internal dependencies
3
- */
4
- import { getCommonDepthClientIds } from '../utils';
5
-
6
- describe( 'getCommonDepthClientIds', () => {
7
- it( 'should return start and end when no depth is provided', () => {
8
- const result = getCommonDepthClientIds(
9
- 'start-id',
10
- 'clicked-id',
11
- [],
12
- []
13
- );
14
-
15
- expect( result ).toEqual( { start: 'start-id', end: 'clicked-id' } );
16
- } );
17
-
18
- it( 'should return deepest start and end when depths match', () => {
19
- const result = getCommonDepthClientIds(
20
- 'start-id',
21
- 'clicked-id',
22
- [ 'start-1', 'start-2', 'start-3' ],
23
- [ 'end-1', 'end-2', 'end-3' ]
24
- );
25
-
26
- expect( result ).toEqual( { start: 'start-id', end: 'clicked-id' } );
27
- } );
28
-
29
- it( 'should return shallower ids when start is shallower', () => {
30
- const result = getCommonDepthClientIds(
31
- 'start-id',
32
- 'clicked-id',
33
- [ 'start-1' ],
34
- [ 'end-1', 'end-2', 'end-3' ]
35
- );
36
-
37
- expect( result ).toEqual( { start: 'start-id', end: 'end-2' } );
38
- } );
39
-
40
- it( 'should return shallower ids when end is shallower', () => {
41
- const result = getCommonDepthClientIds(
42
- 'start-id',
43
- 'clicked-id',
44
- [ 'start-1', 'start-2', 'start-3' ],
45
- [ 'end-1', 'end-2' ]
46
- );
47
-
48
- expect( result ).toEqual( { start: 'start-3', end: 'clicked-id' } );
49
- } );
50
- } );
@@ -1,99 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { escapeHTML } from '@wordpress/escape-html';
5
- import { safeDecodeURI } from '@wordpress/url';
6
-
7
- /**
8
- * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind
9
- */
10
- /**
11
- * Navigation Link Block Attributes
12
- *
13
- * @typedef {Object} WPNavigationLinkBlockAttributes
14
- *
15
- * @property {string} [label] Link text.
16
- * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.
17
- * @property {string} [type] The type such as post, page, tag, category and other custom types.
18
- * @property {string} [rel] The relationship of the linked URL.
19
- * @property {number} [id] A post or term id.
20
- * @property {boolean} [opensInNewTab] Sets link target to _blank when true.
21
- * @property {string} [url] Link href.
22
- * @property {string} [title] Link title attribute.
23
- */
24
- /**
25
- * Link Control onChange handler that updates block attributes when a setting is changed.
26
- *
27
- * @param {Object} updatedValue New block attributes to update.
28
- * @param {Function} setAttributes Block attribute update function.
29
- * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.
30
- *
31
- */
32
-
33
- export const updateAttributes = (
34
- updatedValue = {},
35
- setAttributes,
36
- blockAttributes = {}
37
- ) => {
38
- const {
39
- label: originalLabel = '',
40
- kind: originalKind = '',
41
- type: originalType = '',
42
- } = blockAttributes;
43
-
44
- const {
45
- title: newLabel = '', // the title of any provided Post.
46
- url: newUrl = '',
47
- opensInNewTab,
48
- id,
49
- kind: newKind = originalKind,
50
- type: newType = originalType,
51
- } = updatedValue;
52
-
53
- const newLabelWithoutHttp = newLabel.replace( /http(s?):\/\//gi, '' );
54
- const newUrlWithoutHttp = newUrl.replace( /http(s?):\/\//gi, '' );
55
-
56
- const useNewLabel =
57
- newLabel &&
58
- newLabel !== originalLabel &&
59
- // LinkControl without the title field relies
60
- // on the check below. Specifically, it assumes that
61
- // the URL is the same as a title.
62
- // This logic a) looks suspicious and b) should really
63
- // live in the LinkControl and not here. It's a great
64
- // candidate for future refactoring.
65
- newLabelWithoutHttp !== newUrlWithoutHttp;
66
-
67
- // Unfortunately this causes the escaping model to be inverted.
68
- // The escaped content is stored in the block attributes (and ultimately in the database),
69
- // and then the raw data is "recovered" when outputting into the DOM.
70
- // It would be preferable to store the **raw** data in the block attributes and escape it in JS.
71
- // Why? Because there isn't one way to escape data. Depending on the context, you need to do
72
- // different transforms. It doesn't make sense to me to choose one of them for the purposes of storage.
73
- // See also:
74
- // - https://github.com/WordPress/gutenberg/pull/41063
75
- // - https://github.com/WordPress/gutenberg/pull/18617.
76
- const label = useNewLabel
77
- ? escapeHTML( newLabel )
78
- : originalLabel || escapeHTML( newUrlWithoutHttp );
79
-
80
- // In https://github.com/WordPress/gutenberg/pull/24670 we decided to use "tag" in favor of "post_tag"
81
- const type = newType === 'post_tag' ? 'tag' : newType.replace( '-', '_' );
82
-
83
- const isBuiltInType =
84
- [ 'post', 'page', 'tag', 'category' ].indexOf( type ) > -1;
85
-
86
- const isCustomLink =
87
- ( ! newKind && ! isBuiltInType ) || newKind === 'custom';
88
- const kind = isCustomLink ? 'custom' : newKind;
89
-
90
- setAttributes( {
91
- // Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.
92
- ...( newUrl && { url: encodeURI( safeDecodeURI( newUrl ) ) } ),
93
- ...( label && { label } ),
94
- ...( undefined !== opensInNewTab && { opensInNewTab } ),
95
- ...( id && Number.isInteger( id ) && { id } ),
96
- ...( kind && { kind } ),
97
- ...( type && type !== 'URL' && { type } ),
98
- } );
99
- };