@wordpress/block-editor 12.16.0 → 12.16.1-next.79a6196f.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 (650) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +3 -6
  3. package/build/components/block-canvas/index.js +0 -2
  4. package/build/components/block-canvas/index.js.map +1 -1
  5. package/build/components/block-card/index.js +1 -1
  6. package/build/components/block-card/index.js.map +1 -1
  7. package/build/components/block-draggable/draggable-chip.js +6 -1
  8. package/build/components/block-draggable/draggable-chip.js.map +1 -1
  9. package/build/components/block-draggable/index.js +76 -6
  10. package/build/components/block-draggable/index.js.map +1 -1
  11. package/build/components/block-draggable/index.native.js +0 -6
  12. package/build/components/block-draggable/index.native.js.map +1 -1
  13. package/build/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
  14. package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
  15. package/build/components/block-editing-mode/index.js +2 -3
  16. package/build/components/block-editing-mode/index.js.map +1 -1
  17. package/build/components/block-inspector/index.js +1 -1
  18. package/build/components/block-inspector/index.js.map +1 -1
  19. package/build/components/block-list/block-list-item-cell.native.js +1 -0
  20. package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
  21. package/build/components/block-list/block.js +245 -102
  22. package/build/components/block-list/block.js.map +1 -1
  23. package/build/components/block-list/block.native.js +46 -20
  24. package/build/components/block-list/block.native.js.map +1 -1
  25. package/build/components/block-list/index.native.js +3 -5
  26. package/build/components/block-list/index.native.js.map +1 -1
  27. package/build/components/block-list/private-block-context.js +14 -0
  28. package/build/components/block-list/private-block-context.js.map +1 -0
  29. package/build/components/block-list/use-block-props/index.js +33 -96
  30. package/build/components/block-list/use-block-props/index.js.map +1 -1
  31. package/build/components/block-list/use-in-between-inserter.js +3 -2
  32. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  33. package/build/components/block-list/use-scroll-upon-insertion.native.js +41 -0
  34. package/build/components/block-list/use-scroll-upon-insertion.native.js.map +1 -0
  35. package/build/components/block-lock/toolbar.js +21 -27
  36. package/build/components/block-lock/toolbar.js.map +1 -1
  37. package/build/components/block-mover/index.js +2 -1
  38. package/build/components/block-mover/index.js.map +1 -1
  39. package/build/components/block-patterns-list/index.js +4 -4
  40. package/build/components/block-patterns-list/index.js.map +1 -1
  41. package/build/components/block-switcher/index.js +4 -4
  42. package/build/components/block-switcher/index.js.map +1 -1
  43. package/build/components/block-toolbar/index.js +1 -2
  44. package/build/components/block-toolbar/index.js.map +1 -1
  45. package/build/components/block-tools/block-toolbar-popover.js +0 -2
  46. package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
  47. package/build/components/block-variation-transforms/index.js +29 -2
  48. package/build/components/block-variation-transforms/index.js.map +1 -1
  49. package/build/components/border-radius-control/linked-button.js +1 -1
  50. package/build/components/border-radius-control/linked-button.js.map +1 -1
  51. package/build/components/colors/utils.js +10 -2
  52. package/build/components/colors/utils.js.map +1 -1
  53. package/build/components/colors/with-colors.js +6 -2
  54. package/build/components/colors/with-colors.js.map +1 -1
  55. package/build/components/font-sizes/utils.js +10 -2
  56. package/build/components/font-sizes/utils.js.map +1 -1
  57. package/build/components/global-styles/border-panel.js +2 -1
  58. package/build/components/global-styles/border-panel.js.map +1 -1
  59. package/build/components/global-styles/color-panel.js +2 -1
  60. package/build/components/global-styles/color-panel.js.map +1 -1
  61. package/build/components/global-styles/dimensions-panel.js +4 -3
  62. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  63. package/build/components/global-styles/effects-panel.js +2 -1
  64. package/build/components/global-styles/effects-panel.js.map +1 -1
  65. package/build/components/global-styles/filters-panel.js +1 -4
  66. package/build/components/global-styles/filters-panel.js.map +1 -1
  67. package/build/components/global-styles/get-global-styles-changes.js +192 -0
  68. package/build/components/global-styles/get-global-styles-changes.js.map +1 -0
  69. package/build/components/global-styles/hooks.js +3 -2
  70. package/build/components/global-styles/hooks.js.map +1 -1
  71. package/build/components/global-styles/image-settings-panel.js +7 -1
  72. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  73. package/build/components/global-styles/index.js +7 -0
  74. package/build/components/global-styles/index.js.map +1 -1
  75. package/build/components/global-styles/typography-panel.js +33 -15
  76. package/build/components/global-styles/typography-panel.js.map +1 -1
  77. package/build/components/global-styles/use-global-styles-output.js +22 -8
  78. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  79. package/build/components/global-styles/utils.js +8 -1
  80. package/build/components/global-styles/utils.js.map +1 -1
  81. package/build/components/height-control/index.js +6 -2
  82. package/build/components/height-control/index.js.map +1 -1
  83. package/build/components/image-size-control/index.js +2 -2
  84. package/build/components/image-size-control/index.js.map +1 -1
  85. package/build/components/index.native.js +6 -5
  86. package/build/components/index.native.js.map +1 -1
  87. package/build/components/inner-blocks/index.js +61 -22
  88. package/build/components/inner-blocks/index.js.map +1 -1
  89. package/build/components/inner-blocks/index.native.js +18 -4
  90. package/build/components/inner-blocks/index.native.js.map +1 -1
  91. package/build/components/inner-blocks/use-inner-block-template-sync.js +5 -6
  92. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  93. package/build/components/inner-blocks/use-nested-settings-update.js +5 -9
  94. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  95. package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
  96. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  97. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +10 -9
  98. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  99. package/build/components/inserter/block-patterns-tab/patterns-filter.js +10 -10
  100. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  101. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +9 -9
  102. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  103. package/build/components/inserter/block-patterns-tab/utils.js +10 -14
  104. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
  105. package/build/components/inserter/hooks/use-block-types-state.js +4 -14
  106. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  107. package/build/components/inserter/hooks/use-patterns-state.js +1 -1
  108. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  109. package/build/components/inserter/index.js +1 -2
  110. package/build/components/inserter/index.js.map +1 -1
  111. package/build/components/inserter/library.js +3 -7
  112. package/build/components/inserter/library.js.map +1 -1
  113. package/build/components/inserter/menu.js +14 -28
  114. package/build/components/inserter/menu.js.map +1 -1
  115. package/build/components/inserter/tabs.js +21 -21
  116. package/build/components/inserter/tabs.js.map +1 -1
  117. package/build/components/inserter-draggable-blocks/index.js +1 -1
  118. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  119. package/build/components/inserter-list-item/index.js +2 -4
  120. package/build/components/inserter-list-item/index.js.map +1 -1
  121. package/build/components/inspector-controls/block-support-tools-panel.js +3 -1
  122. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  123. package/build/components/inspector-controls-tabs/index.js +34 -23
  124. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  125. package/build/components/list-view/block-select-button.js +4 -0
  126. package/build/components/list-view/block-select-button.js.map +1 -1
  127. package/build/components/list-view/block.js +57 -3
  128. package/build/components/list-view/block.js.map +1 -1
  129. package/build/components/media-upload-progress/constants.js +19 -0
  130. package/build/components/media-upload-progress/constants.js.map +1 -0
  131. package/build/components/media-upload-progress/index.native.js +42 -17
  132. package/build/components/media-upload-progress/index.native.js.map +1 -1
  133. package/build/components/navigable-toolbar/index.js +9 -14
  134. package/build/components/navigable-toolbar/index.js.map +1 -1
  135. package/build/components/plain-text/index.native.js +8 -3
  136. package/build/components/plain-text/index.native.js.map +1 -1
  137. package/build/components/provider/index.js +3 -1
  138. package/build/components/provider/index.js.map +1 -1
  139. package/build/components/provider/use-block-sync.js +7 -1
  140. package/build/components/provider/use-block-sync.js.map +1 -1
  141. package/build/components/rich-text/index.js +17 -7
  142. package/build/components/rich-text/index.js.map +1 -1
  143. package/build/components/rich-text/native/index.native.js +16 -24
  144. package/build/components/rich-text/native/index.native.js.map +1 -1
  145. package/build/components/rich-text/use-input-rules.js +2 -2
  146. package/build/components/rich-text/use-input-rules.js.map +1 -1
  147. package/build/components/rich-text/use-mark-persistent.js +1 -1
  148. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  149. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  150. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  151. package/build/components/url-input/index.js +9 -6
  152. package/build/components/url-input/index.js.map +1 -1
  153. package/build/components/use-block-commands/index.js +14 -18
  154. package/build/components/use-block-commands/index.js.map +1 -1
  155. package/build/components/use-block-drop-zone/index.js +51 -22
  156. package/build/components/use-block-drop-zone/index.js.map +1 -1
  157. package/build/components/use-moving-animation/index.js +100 -92
  158. package/build/components/use-moving-animation/index.js.map +1 -1
  159. package/build/components/use-on-block-drop/index.js +8 -11
  160. package/build/components/use-on-block-drop/index.js.map +1 -1
  161. package/build/components/writing-flow/index.js +0 -1
  162. package/build/components/writing-flow/index.js.map +1 -1
  163. package/build/components/writing-flow/use-drag-selection.js +15 -4
  164. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  165. package/build/components/writing-flow/use-selection-observer.js +73 -27
  166. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  167. package/build/components/writing-flow/use-tab-nav.js +7 -4
  168. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  169. package/build/hooks/align.js +1 -1
  170. package/build/hooks/align.js.map +1 -1
  171. package/build/hooks/anchor.js +1 -1
  172. package/build/hooks/anchor.js.map +1 -1
  173. package/build/hooks/aria-label.js +9 -1
  174. package/build/hooks/aria-label.js.map +1 -1
  175. package/build/hooks/background.js +185 -20
  176. package/build/hooks/background.js.map +1 -1
  177. package/build/hooks/border.js +5 -10
  178. package/build/hooks/border.js.map +1 -1
  179. package/build/hooks/color.js +13 -11
  180. package/build/hooks/color.js.map +1 -1
  181. package/build/hooks/custom-class-name.js +1 -1
  182. package/build/hooks/custom-class-name.js.map +1 -1
  183. package/build/hooks/custom-class-name.native.js +9 -1
  184. package/build/hooks/custom-class-name.native.js.map +1 -1
  185. package/build/hooks/dimensions.js +4 -9
  186. package/build/hooks/dimensions.js.map +1 -1
  187. package/build/hooks/font-family.js +7 -3
  188. package/build/hooks/font-family.js.map +1 -1
  189. package/build/hooks/font-size.js +1 -1
  190. package/build/hooks/font-size.js.map +1 -1
  191. package/build/hooks/index.js +4 -4
  192. package/build/hooks/index.js.map +1 -1
  193. package/build/hooks/index.native.js +5 -3
  194. package/build/hooks/index.native.js.map +1 -1
  195. package/build/hooks/layout.js +10 -4
  196. package/build/hooks/layout.js.map +1 -1
  197. package/build/hooks/style.js +1 -1
  198. package/build/hooks/style.js.map +1 -1
  199. package/build/hooks/typography.js +4 -9
  200. package/build/hooks/typography.js.map +1 -1
  201. package/build/hooks/typography.native.js +43 -18
  202. package/build/hooks/typography.native.js.map +1 -1
  203. package/build/hooks/use-typography-props.js +10 -2
  204. package/build/hooks/use-typography-props.js.map +1 -1
  205. package/build/hooks/utils.js +48 -5
  206. package/build/hooks/utils.js.map +1 -1
  207. package/build/private-apis.js +2 -4
  208. package/build/private-apis.js.map +1 -1
  209. package/build/private-apis.native.js +0 -2
  210. package/build/private-apis.native.js.map +1 -1
  211. package/build/store/actions.js +0 -16
  212. package/build/store/actions.js.map +1 -1
  213. package/build/store/private-actions.js +51 -5
  214. package/build/store/private-actions.js.map +1 -1
  215. package/build/store/private-selectors.js +12 -0
  216. package/build/store/private-selectors.js.map +1 -1
  217. package/build/store/reducer.js +14 -6
  218. package/build/store/reducer.js.map +1 -1
  219. package/build/store/selectors.js +1 -13
  220. package/build/store/selectors.js.map +1 -1
  221. package/build/store/undo-ignore.js +12 -0
  222. package/build/store/undo-ignore.js.map +1 -0
  223. package/build/store/utils.js +1 -1
  224. package/build/store/utils.js.map +1 -1
  225. package/build/utils/get-px-from-css-unit.js +16 -0
  226. package/build/utils/get-px-from-css-unit.js.map +1 -0
  227. package/build/utils/index.js +2 -2
  228. package/build/utils/index.js.map +1 -1
  229. package/build/utils/object.js +17 -38
  230. package/build/utils/object.js.map +1 -1
  231. package/build/utils/use-can-block-toolbar-be-focused.js +46 -0
  232. package/build/utils/use-can-block-toolbar-be-focused.js.map +1 -0
  233. package/build-module/components/block-canvas/index.js +0 -2
  234. package/build-module/components/block-canvas/index.js.map +1 -1
  235. package/build-module/components/block-card/index.js +1 -1
  236. package/build-module/components/block-card/index.js.map +1 -1
  237. package/build-module/components/block-draggable/draggable-chip.js +6 -1
  238. package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
  239. package/build-module/components/block-draggable/index.js +76 -6
  240. package/build-module/components/block-draggable/index.js.map +1 -1
  241. package/build-module/components/block-draggable/index.native.js +1 -7
  242. package/build-module/components/block-draggable/index.native.js.map +1 -1
  243. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
  244. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
  245. package/build-module/components/block-editing-mode/index.js +3 -4
  246. package/build-module/components/block-editing-mode/index.js.map +1 -1
  247. package/build-module/components/block-inspector/index.js +1 -1
  248. package/build-module/components/block-inspector/index.js.map +1 -1
  249. package/build-module/components/block-list/block-list-item-cell.native.js +1 -0
  250. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
  251. package/build-module/components/block-list/block.js +249 -106
  252. package/build-module/components/block-list/block.js.map +1 -1
  253. package/build-module/components/block-list/block.native.js +48 -22
  254. package/build-module/components/block-list/block.native.js.map +1 -1
  255. package/build-module/components/block-list/index.native.js +3 -5
  256. package/build-module/components/block-list/index.native.js.map +1 -1
  257. package/build-module/components/block-list/private-block-context.js +6 -0
  258. package/build-module/components/block-list/private-block-context.js.map +1 -0
  259. package/build-module/components/block-list/use-block-props/index.js +34 -97
  260. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  261. package/build-module/components/block-list/use-in-between-inserter.js +3 -2
  262. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  263. package/build-module/components/block-list/use-scroll-upon-insertion.native.js +33 -0
  264. package/build-module/components/block-list/use-scroll-upon-insertion.native.js.map +1 -0
  265. package/build-module/components/block-lock/toolbar.js +22 -28
  266. package/build-module/components/block-lock/toolbar.js.map +1 -1
  267. package/build-module/components/block-mover/index.js +2 -1
  268. package/build-module/components/block-mover/index.js.map +1 -1
  269. package/build-module/components/block-patterns-list/index.js +5 -5
  270. package/build-module/components/block-patterns-list/index.js.map +1 -1
  271. package/build-module/components/block-switcher/index.js +4 -4
  272. package/build-module/components/block-switcher/index.js.map +1 -1
  273. package/build-module/components/block-toolbar/index.js +1 -2
  274. package/build-module/components/block-toolbar/index.js.map +1 -1
  275. package/build-module/components/block-tools/block-toolbar-popover.js +0 -2
  276. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
  277. package/build-module/components/block-variation-transforms/index.js +30 -3
  278. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  279. package/build-module/components/border-radius-control/linked-button.js +1 -1
  280. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  281. package/build-module/components/colors/utils.js +9 -1
  282. package/build-module/components/colors/utils.js.map +1 -1
  283. package/build-module/components/colors/with-colors.js +5 -1
  284. package/build-module/components/colors/with-colors.js.map +1 -1
  285. package/build-module/components/font-sizes/utils.js +9 -1
  286. package/build-module/components/font-sizes/utils.js.map +1 -1
  287. package/build-module/components/global-styles/border-panel.js +3 -2
  288. package/build-module/components/global-styles/border-panel.js.map +1 -1
  289. package/build-module/components/global-styles/color-panel.js +3 -2
  290. package/build-module/components/global-styles/color-panel.js.map +1 -1
  291. package/build-module/components/global-styles/dimensions-panel.js +5 -4
  292. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  293. package/build-module/components/global-styles/effects-panel.js +3 -2
  294. package/build-module/components/global-styles/effects-panel.js.map +1 -1
  295. package/build-module/components/global-styles/filters-panel.js +2 -5
  296. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  297. package/build-module/components/global-styles/get-global-styles-changes.js +184 -0
  298. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -0
  299. package/build-module/components/global-styles/hooks.js +3 -2
  300. package/build-module/components/global-styles/hooks.js.map +1 -1
  301. package/build-module/components/global-styles/image-settings-panel.js +7 -1
  302. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  303. package/build-module/components/global-styles/index.js +1 -0
  304. package/build-module/components/global-styles/index.js.map +1 -1
  305. package/build-module/components/global-styles/typography-panel.js +35 -17
  306. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  307. package/build-module/components/global-styles/use-global-styles-output.js +15 -1
  308. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  309. package/build-module/components/global-styles/utils.js +7 -0
  310. package/build-module/components/global-styles/utils.js.map +1 -1
  311. package/build-module/components/height-control/index.js +6 -2
  312. package/build-module/components/height-control/index.js.map +1 -1
  313. package/build-module/components/image-size-control/index.js +2 -2
  314. package/build-module/components/image-size-control/index.js.map +1 -1
  315. package/build-module/components/index.native.js +2 -1
  316. package/build-module/components/index.native.js.map +1 -1
  317. package/build-module/components/inner-blocks/index.js +62 -23
  318. package/build-module/components/inner-blocks/index.js.map +1 -1
  319. package/build-module/components/inner-blocks/index.native.js +18 -4
  320. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  321. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +5 -6
  322. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  323. package/build-module/components/inner-blocks/use-nested-settings-update.js +6 -10
  324. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  325. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  326. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  327. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +11 -10
  328. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  329. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +11 -11
  330. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  331. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +11 -11
  332. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  333. package/build-module/components/inserter/block-patterns-tab/utils.js +7 -11
  334. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
  335. package/build-module/components/inserter/hooks/use-block-types-state.js +4 -14
  336. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  337. package/build-module/components/inserter/hooks/use-patterns-state.js +2 -2
  338. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  339. package/build-module/components/inserter/index.js +1 -2
  340. package/build-module/components/inserter/index.js.map +1 -1
  341. package/build-module/components/inserter/library.js +3 -7
  342. package/build-module/components/inserter/library.js.map +1 -1
  343. package/build-module/components/inserter/menu.js +14 -28
  344. package/build-module/components/inserter/menu.js.map +1 -1
  345. package/build-module/components/inserter/tabs.js +22 -22
  346. package/build-module/components/inserter/tabs.js.map +1 -1
  347. package/build-module/components/inserter-draggable-blocks/index.js +2 -2
  348. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  349. package/build-module/components/inserter-list-item/index.js +2 -4
  350. package/build-module/components/inserter-list-item/index.js.map +1 -1
  351. package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -1
  352. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  353. package/build-module/components/inspector-controls-tabs/index.js +35 -24
  354. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  355. package/build-module/components/list-view/block-select-button.js +4 -0
  356. package/build-module/components/list-view/block-select-button.js.map +1 -1
  357. package/build-module/components/list-view/block.js +58 -4
  358. package/build-module/components/list-view/block.js.map +1 -1
  359. package/build-module/components/media-upload-progress/constants.js +7 -0
  360. package/build-module/components/media-upload-progress/constants.js.map +1 -0
  361. package/build-module/components/media-upload-progress/index.native.js +37 -8
  362. package/build-module/components/media-upload-progress/index.native.js.map +1 -1
  363. package/build-module/components/navigable-toolbar/index.js +9 -14
  364. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  365. package/build-module/components/plain-text/index.native.js +6 -1
  366. package/build-module/components/plain-text/index.native.js.map +1 -1
  367. package/build-module/components/provider/index.js +3 -1
  368. package/build-module/components/provider/index.js.map +1 -1
  369. package/build-module/components/provider/use-block-sync.js +7 -1
  370. package/build-module/components/provider/use-block-sync.js.map +1 -1
  371. package/build-module/components/rich-text/index.js +17 -7
  372. package/build-module/components/rich-text/index.js.map +1 -1
  373. package/build-module/components/rich-text/native/index.native.js +16 -23
  374. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  375. package/build-module/components/rich-text/use-input-rules.js +2 -2
  376. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  377. package/build-module/components/rich-text/use-mark-persistent.js +1 -1
  378. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  379. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  380. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  381. package/build-module/components/url-input/index.js +9 -6
  382. package/build-module/components/url-input/index.js.map +1 -1
  383. package/build-module/components/use-block-commands/index.js +14 -18
  384. package/build-module/components/use-block-commands/index.js.map +1 -1
  385. package/build-module/components/use-block-drop-zone/index.js +51 -23
  386. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  387. package/build-module/components/use-moving-animation/index.js +102 -94
  388. package/build-module/components/use-moving-animation/index.js.map +1 -1
  389. package/build-module/components/use-on-block-drop/index.js +8 -11
  390. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  391. package/build-module/components/writing-flow/index.js +0 -1
  392. package/build-module/components/writing-flow/index.js.map +1 -1
  393. package/build-module/components/writing-flow/use-drag-selection.js +15 -4
  394. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  395. package/build-module/components/writing-flow/use-selection-observer.js +73 -27
  396. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  397. package/build-module/components/writing-flow/use-tab-nav.js +7 -4
  398. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  399. package/build-module/hooks/align.js +1 -1
  400. package/build-module/hooks/align.js.map +1 -1
  401. package/build-module/hooks/anchor.js +1 -1
  402. package/build-module/hooks/anchor.js.map +1 -1
  403. package/build-module/hooks/aria-label.js +7 -1
  404. package/build-module/hooks/aria-label.js.map +1 -1
  405. package/build-module/hooks/background.js +181 -19
  406. package/build-module/hooks/background.js.map +1 -1
  407. package/build-module/hooks/border.js +2 -8
  408. package/build-module/hooks/border.js.map +1 -1
  409. package/build-module/hooks/color.js +11 -9
  410. package/build-module/hooks/color.js.map +1 -1
  411. package/build-module/hooks/custom-class-name.js +1 -1
  412. package/build-module/hooks/custom-class-name.js.map +1 -1
  413. package/build-module/hooks/custom-class-name.native.js +7 -1
  414. package/build-module/hooks/custom-class-name.native.js.map +1 -1
  415. package/build-module/hooks/dimensions.js +1 -7
  416. package/build-module/hooks/dimensions.js.map +1 -1
  417. package/build-module/hooks/font-family.js +6 -2
  418. package/build-module/hooks/font-family.js.map +1 -1
  419. package/build-module/hooks/font-size.js +1 -1
  420. package/build-module/hooks/font-size.js.map +1 -1
  421. package/build-module/hooks/index.js +5 -5
  422. package/build-module/hooks/index.js.map +1 -1
  423. package/build-module/hooks/index.native.js +6 -4
  424. package/build-module/hooks/index.native.js.map +1 -1
  425. package/build-module/hooks/layout.js +9 -3
  426. package/build-module/hooks/layout.js.map +1 -1
  427. package/build-module/hooks/style.js +1 -1
  428. package/build-module/hooks/style.js.map +1 -1
  429. package/build-module/hooks/typography.js +1 -7
  430. package/build-module/hooks/typography.js.map +1 -1
  431. package/build-module/hooks/typography.native.js +43 -17
  432. package/build-module/hooks/typography.native.js.map +1 -1
  433. package/build-module/hooks/use-typography-props.js +9 -1
  434. package/build-module/hooks/use-typography-props.js.map +1 -1
  435. package/build-module/hooks/utils.js +47 -5
  436. package/build-module/hooks/utils.js.map +1 -1
  437. package/build-module/private-apis.js +2 -4
  438. package/build-module/private-apis.js.map +1 -1
  439. package/build-module/private-apis.native.js +0 -2
  440. package/build-module/private-apis.native.js.map +1 -1
  441. package/build-module/store/actions.js +0 -15
  442. package/build-module/store/actions.js.map +1 -1
  443. package/build-module/store/private-actions.js +49 -4
  444. package/build-module/store/private-actions.js.map +1 -1
  445. package/build-module/store/private-selectors.js +11 -0
  446. package/build-module/store/private-selectors.js.map +1 -1
  447. package/build-module/store/reducer.js +14 -6
  448. package/build-module/store/reducer.js.map +1 -1
  449. package/build-module/store/selectors.js +1 -12
  450. package/build-module/store/selectors.js.map +1 -1
  451. package/build-module/store/undo-ignore.js +5 -0
  452. package/build-module/store/undo-ignore.js.map +1 -0
  453. package/build-module/store/utils.js +2 -2
  454. package/build-module/store/utils.js.map +1 -1
  455. package/build-module/utils/get-px-from-css-unit.js +9 -0
  456. package/build-module/utils/get-px-from-css-unit.js.map +1 -0
  457. package/build-module/utils/index.js +1 -1
  458. package/build-module/utils/index.js.map +1 -1
  459. package/build-module/utils/object.js +16 -37
  460. package/build-module/utils/object.js.map +1 -1
  461. package/build-module/utils/use-can-block-toolbar-be-focused.js +40 -0
  462. package/build-module/utils/use-can-block-toolbar-be-focused.js.map +1 -0
  463. package/build-style/content-rtl.css +7 -6
  464. package/build-style/content.css +7 -6
  465. package/build-style/style-rtl.css +51 -8
  466. package/build-style/style.css +51 -8
  467. package/package.json +31 -31
  468. package/src/components/alignment-control/README.md +0 -5
  469. package/src/components/block-alignment-control/README.md +0 -5
  470. package/src/components/block-alignment-matrix-control/README.md +0 -10
  471. package/src/components/block-breadcrumb/README.md +0 -5
  472. package/src/components/block-canvas/index.js +0 -2
  473. package/src/components/block-canvas/style.scss +6 -0
  474. package/src/components/block-caption/README.md +0 -5
  475. package/src/components/block-card/README.md +0 -5
  476. package/src/components/block-card/index.js +1 -1
  477. package/src/components/block-draggable/draggable-chip.js +11 -1
  478. package/src/components/block-draggable/index.js +116 -4
  479. package/src/components/block-draggable/index.native.js +0 -5
  480. package/src/components/block-draggable/style.scss +35 -0
  481. package/src/components/block-draggable/test/helpers.native.js +8 -7
  482. package/src/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
  483. package/src/components/block-editing-mode/index.js +3 -3
  484. package/src/components/block-icon/README.md +0 -5
  485. package/src/components/block-inspector/README.md +0 -5
  486. package/src/components/block-inspector/index.js +3 -1
  487. package/src/components/block-list/block-list-item-cell.native.js +5 -1
  488. package/src/components/block-list/block.js +290 -119
  489. package/src/components/block-list/block.native.js +55 -21
  490. package/src/components/block-list/content.scss +14 -10
  491. package/src/components/block-list/index.native.js +3 -5
  492. package/src/components/block-list/{block-list-block-context.js → private-block-context.js} +1 -1
  493. package/src/components/block-list/use-block-props/index.js +32 -128
  494. package/src/components/block-list/use-in-between-inserter.js +4 -1
  495. package/src/components/block-list/use-scroll-upon-insertion.native.js +52 -0
  496. package/src/components/block-lock/toolbar.js +23 -34
  497. package/src/components/block-mover/README.md +0 -5
  498. package/src/components/block-mover/index.js +1 -1
  499. package/src/components/block-parent-selector/README.md +0 -5
  500. package/src/components/block-patterns-list/README.md +0 -5
  501. package/src/components/block-patterns-list/index.js +8 -5
  502. package/src/components/block-switcher/index.js +49 -59
  503. package/src/components/block-toolbar/README.md +0 -5
  504. package/src/components/block-toolbar/index.js +1 -2
  505. package/src/components/block-tools/block-toolbar-popover.js +4 -10
  506. package/src/components/block-types-list/README.md +0 -5
  507. package/src/components/block-variation-picker/README.md +0 -5
  508. package/src/components/block-variation-transforms/README.md +0 -5
  509. package/src/components/block-variation-transforms/index.js +49 -3
  510. package/src/components/border-radius-control/linked-button.js +1 -1
  511. package/src/components/caption/README.md +0 -5
  512. package/src/components/color-palette/test/__snapshots__/control.js.snap +0 -1
  513. package/src/components/colors/utils.js +8 -1
  514. package/src/components/colors/with-colors.js +3 -1
  515. package/src/components/contrast-checker/README.md +0 -4
  516. package/src/components/copy-handler/README.md +0 -10
  517. package/src/components/font-sizes/utils.js +7 -1
  518. package/src/components/global-styles/border-panel.js +2 -1
  519. package/src/components/global-styles/color-panel.js +2 -1
  520. package/src/components/global-styles/dimensions-panel.js +4 -3
  521. package/src/components/global-styles/effects-panel.js +2 -1
  522. package/src/components/global-styles/filters-panel.js +2 -5
  523. package/src/components/global-styles/get-global-styles-changes.js +210 -0
  524. package/src/components/global-styles/hooks.js +5 -0
  525. package/src/components/global-styles/image-settings-panel.js +6 -0
  526. package/src/components/global-styles/index.js +1 -0
  527. package/src/components/global-styles/test/get-global-styles-changes.js +234 -0
  528. package/src/components/global-styles/typography-panel.js +47 -14
  529. package/src/components/global-styles/use-global-styles-output.js +9 -5
  530. package/src/components/global-styles/utils.js +7 -0
  531. package/src/components/height-control/README.md +2 -7
  532. package/src/components/height-control/index.js +4 -0
  533. package/src/components/image-size-control/index.js +5 -2
  534. package/src/components/index.native.js +2 -2
  535. package/src/components/inner-blocks/index.js +68 -29
  536. package/src/components/inner-blocks/index.native.js +19 -7
  537. package/src/components/inner-blocks/use-inner-block-template-sync.js +5 -7
  538. package/src/components/inner-blocks/use-nested-settings-update.js +6 -13
  539. package/src/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  540. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +15 -15
  541. package/src/components/inserter/block-patterns-tab/patterns-filter.js +15 -13
  542. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +15 -18
  543. package/src/components/inserter/block-patterns-tab/utils.js +11 -12
  544. package/src/components/inserter/hooks/use-block-types-state.js +9 -11
  545. package/src/components/inserter/hooks/use-patterns-state.js +2 -2
  546. package/src/components/inserter/index.js +0 -1
  547. package/src/components/inserter/library.js +2 -8
  548. package/src/components/inserter/menu.js +13 -31
  549. package/src/components/inserter/style.scss +6 -4
  550. package/src/components/inserter/tabs.js +34 -25
  551. package/src/components/inserter-draggable-blocks/index.js +2 -2
  552. package/src/components/inserter-list-item/index.js +6 -6
  553. package/src/components/inspector-controls/block-support-tools-panel.js +2 -0
  554. package/src/components/inspector-controls-tabs/index.js +39 -28
  555. package/src/components/inspector-controls-tabs/style.scss +3 -2
  556. package/src/components/letter-spacing-control/README.md +0 -5
  557. package/src/components/line-height-control/README.md +0 -5
  558. package/src/components/list-view/README.md +0 -5
  559. package/src/components/list-view/block-select-button.js +4 -0
  560. package/src/components/list-view/block.js +73 -2
  561. package/src/components/list-view/style.scss +6 -0
  562. package/src/components/media-upload-progress/constants.js +6 -0
  563. package/src/components/media-upload-progress/index.native.js +66 -14
  564. package/src/components/media-upload-progress/test/index.native.js +2 -2
  565. package/src/components/multi-selection-inspector/README.md +0 -5
  566. package/src/components/navigable-toolbar/index.js +13 -11
  567. package/src/components/plain-text/index.native.js +6 -1
  568. package/src/components/provider/index.js +1 -1
  569. package/src/components/provider/test/use-block-sync.js +20 -17
  570. package/src/components/provider/use-block-sync.js +6 -0
  571. package/src/components/rich-text/index.js +18 -6
  572. package/src/components/rich-text/native/index.native.js +16 -24
  573. package/src/components/rich-text/native/test/__snapshots__/index.native.js.snap +3 -3
  574. package/src/components/rich-text/native/test/index.native.js +72 -5
  575. package/src/components/rich-text/use-input-rules.js +2 -2
  576. package/src/components/rich-text/use-mark-persistent.js +1 -2
  577. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  578. package/src/components/text-decoration-control/README.md +40 -0
  579. package/src/components/text-transform-control/README.md +0 -4
  580. package/src/components/ungroup-button/README.md +0 -5
  581. package/src/components/unit-control/README.md +0 -4
  582. package/src/components/url-input/index.js +11 -11
  583. package/src/components/use-block-commands/index.js +18 -21
  584. package/src/components/use-block-drop-zone/index.js +85 -34
  585. package/src/components/use-moving-animation/index.js +107 -103
  586. package/src/components/use-on-block-drop/index.js +7 -23
  587. package/src/components/use-on-block-drop/test/index.js +12 -26
  588. package/src/components/use-resize-canvas/README.md +0 -4
  589. package/src/components/use-settings/README.md +0 -4
  590. package/src/components/writing-flow/index.js +0 -1
  591. package/src/components/writing-flow/use-drag-selection.js +18 -4
  592. package/src/components/writing-flow/use-selection-observer.js +99 -37
  593. package/src/components/writing-flow/use-tab-nav.js +7 -7
  594. package/src/hooks/align.js +1 -5
  595. package/src/hooks/anchor.js +1 -5
  596. package/src/hooks/aria-label.js +8 -5
  597. package/src/hooks/background.js +253 -21
  598. package/src/hooks/border.js +2 -13
  599. package/src/hooks/color.js +19 -14
  600. package/src/hooks/custom-class-name.js +1 -5
  601. package/src/hooks/custom-class-name.native.js +8 -5
  602. package/src/hooks/dimensions.js +1 -7
  603. package/src/hooks/font-family.js +4 -7
  604. package/src/hooks/font-size.js +1 -6
  605. package/src/hooks/index.js +19 -5
  606. package/src/hooks/index.native.js +17 -4
  607. package/src/hooks/layout.js +5 -2
  608. package/src/hooks/style.js +1 -6
  609. package/src/hooks/test/anchor.js +4 -9
  610. package/src/hooks/test/custom-class-name.js +3 -8
  611. package/src/hooks/test/style.js +4 -14
  612. package/src/hooks/typography.js +1 -7
  613. package/src/hooks/typography.native.js +31 -33
  614. package/src/hooks/use-typography-props.js +7 -1
  615. package/src/hooks/utils.js +76 -6
  616. package/src/private-apis.js +2 -4
  617. package/src/private-apis.native.js +0 -2
  618. package/src/store/actions.js +0 -15
  619. package/src/store/private-actions.js +44 -4
  620. package/src/store/private-selectors.js +11 -0
  621. package/src/store/reducer.js +16 -5
  622. package/src/store/selectors.js +5 -13
  623. package/src/store/undo-ignore.js +4 -0
  624. package/src/store/utils.js +2 -2
  625. package/src/style.scss +1 -0
  626. package/src/utils/get-px-from-css-unit.js +8 -0
  627. package/src/utils/index.js +1 -1
  628. package/src/utils/object.js +16 -35
  629. package/src/utils/test/object.js +1 -96
  630. package/src/utils/use-can-block-toolbar-be-focused.js +48 -0
  631. package/build/components/block-list/block-list-block-context.js +0 -14
  632. package/build/components/block-list/block-list-block-context.js.map +0 -1
  633. package/build/hooks/custom-fields.js +0 -106
  634. package/build/hooks/custom-fields.js.map +0 -1
  635. package/build/utils/parse-css-unit-to-px.js +0 -302
  636. package/build/utils/parse-css-unit-to-px.js.map +0 -1
  637. package/build/utils/use-should-contextual-toolbar-show.js +0 -63
  638. package/build/utils/use-should-contextual-toolbar-show.js.map +0 -1
  639. package/build-module/components/block-list/block-list-block-context.js +0 -6
  640. package/build-module/components/block-list/block-list-block-context.js.map +0 -1
  641. package/build-module/hooks/custom-fields.js +0 -99
  642. package/build-module/hooks/custom-fields.js.map +0 -1
  643. package/build-module/utils/parse-css-unit-to-px.js +0 -294
  644. package/build-module/utils/parse-css-unit-to-px.js.map +0 -1
  645. package/build-module/utils/use-should-contextual-toolbar-show.js +0 -57
  646. package/build-module/utils/use-should-contextual-toolbar-show.js.map +0 -1
  647. package/src/hooks/custom-fields.js +0 -115
  648. package/src/utils/parse-css-unit-to-px.js +0 -329
  649. package/src/utils/test/parse-css-unit-to-px.js +0 -172
  650. package/src/utils/use-should-contextual-toolbar-show.js +0 -85
@@ -1,10 +1,16 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useMemo } from '@wordpress/element';
5
- import { TabPanel } from '@wordpress/components';
4
+ import { privateApis as componentsPrivateApis } from '@wordpress/components';
6
5
  import { __ } from '@wordpress/i18n';
7
6
 
7
+ /**
8
+ * Internal dependencies
9
+ */
10
+ import { unlock } from '../../lock-unlock';
11
+
12
+ const { Tabs } = unlock( componentsPrivateApis );
13
+
8
14
  const blocksTab = {
9
15
  name: 'blocks',
10
16
  /* translators: Blocks tab title in the block inserter. */
@@ -23,35 +29,38 @@ const mediaTab = {
23
29
  };
24
30
 
25
31
  function InserterTabs( {
26
- children,
27
32
  showPatterns = false,
28
33
  showMedia = false,
29
34
  onSelect,
30
- prioritizePatterns,
35
+ tabsContents,
31
36
  } ) {
32
- const tabs = useMemo( () => {
33
- const tempTabs = [];
34
- if ( prioritizePatterns && showPatterns ) {
35
- tempTabs.push( patternsTab );
36
- }
37
- tempTabs.push( blocksTab );
38
- if ( ! prioritizePatterns && showPatterns ) {
39
- tempTabs.push( patternsTab );
40
- }
41
- if ( showMedia ) {
42
- tempTabs.push( mediaTab );
43
- }
44
- return tempTabs;
45
- }, [ prioritizePatterns, showPatterns, showMedia ] );
37
+ const tabs = [
38
+ blocksTab,
39
+ showPatterns && patternsTab,
40
+ showMedia && mediaTab,
41
+ ].filter( Boolean );
46
42
 
47
43
  return (
48
- <TabPanel
49
- className="block-editor-inserter__tabs"
50
- tabs={ tabs }
51
- onSelect={ onSelect }
52
- >
53
- { children }
54
- </TabPanel>
44
+ <div className="block-editor-inserter__tabs">
45
+ <Tabs onSelect={ onSelect }>
46
+ <Tabs.TabList>
47
+ { tabs.map( ( tab ) => (
48
+ <Tabs.Tab key={ tab.name } tabId={ tab.name }>
49
+ { tab.title }
50
+ </Tabs.Tab>
51
+ ) ) }
52
+ </Tabs.TabList>
53
+ { tabs.map( ( tab ) => (
54
+ <Tabs.TabPanel
55
+ key={ tab.name }
56
+ tabId={ tab.name }
57
+ focusable={ false }
58
+ >
59
+ { tabsContents[ tab.name ] }
60
+ </Tabs.TabPanel>
61
+ ) ) }
62
+ </Tabs>
63
+ </div>
55
64
  );
56
65
  }
57
66
 
@@ -12,7 +12,7 @@ import { useSelect } from '@wordpress/data';
12
12
  * Internal dependencies
13
13
  */
14
14
  import BlockDraggableChip from '../block-draggable/draggable-chip';
15
- import { PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';
15
+ import { INSERTER_PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';
16
16
 
17
17
  const InserterDraggableBlocks = ( {
18
18
  isEnabled,
@@ -42,7 +42,7 @@ const InserterDraggableBlocks = ( {
42
42
  transferData={ transferData }
43
43
  onDragStart={ ( event ) => {
44
44
  const parsedBlocks =
45
- pattern?.type === PATTERN_TYPES.user &&
45
+ pattern?.type === INSERTER_PATTERN_TYPES.user &&
46
46
  pattern?.syncStatus !== 'unsynced'
47
47
  ? [ createBlock( 'core/block', { ref: pattern.id } ) ]
48
48
  : blocks;
@@ -39,15 +39,16 @@ function InserterListItem( {
39
39
  color: item.icon.foreground,
40
40
  }
41
41
  : {};
42
- const blocks = useMemo( () => {
43
- return [
42
+ const blocks = useMemo(
43
+ () => [
44
44
  createBlock(
45
45
  item.name,
46
46
  item.initialAttributes,
47
47
  createBlocksFromInnerBlocksTemplate( item.innerBlocks )
48
48
  ),
49
- ];
50
- }, [ item.name, item.initialAttributes, item.initialAttributes ] );
49
+ ],
50
+ [ item.name, item.initialAttributes, item.innerBlocks ]
51
+ );
51
52
 
52
53
  const isSynced =
53
54
  ( isReusableBlock( item ) && item.syncStatus !== 'unsynced' ) ||
@@ -55,7 +56,7 @@ function InserterListItem( {
55
56
 
56
57
  return (
57
58
  <InserterDraggableBlocks
58
- isEnabled={ isDraggable && ! item.disabled }
59
+ isEnabled={ isDraggable && ! item.isDisabled }
59
60
  blocks={ blocks }
60
61
  icon={ item.icon }
61
62
  >
@@ -63,7 +64,6 @@ function InserterListItem( {
63
64
  <div
64
65
  className={ classnames(
65
66
  'block-editor-block-types-list__list-item',
66
-
67
67
  {
68
68
  'is-synced': isSynced,
69
69
  }
@@ -10,6 +10,7 @@ import { useCallback } from '@wordpress/element';
10
10
  */
11
11
  import { store as blockEditorStore } from '../../store';
12
12
  import { cleanEmptyObject } from '../../hooks/utils';
13
+ import { TOOLSPANEL_DROPDOWNMENU_PROPS } from '../global-styles/utils';
13
14
 
14
15
  export default function BlockSupportToolsPanel( { children, group, label } ) {
15
16
  const { updateBlockAttributes } = useDispatch( blockEditorStore );
@@ -71,6 +72,7 @@ export default function BlockSupportToolsPanel( { children, group, label } ) {
71
72
  shouldRenderPlaceholderItems={ true } // Required to maintain fills ordering.
72
73
  __experimentalFirstVisibleItemClass="first"
73
74
  __experimentalLastVisibleItemClass="last"
75
+ dropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }
74
76
  >
75
77
  { children }
76
78
  </ToolsPanel>
@@ -1,7 +1,10 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { TabPanel } from '@wordpress/components';
4
+ import {
5
+ Button,
6
+ privateApis as componentsPrivateApis,
7
+ } from '@wordpress/components';
5
8
 
6
9
  /**
7
10
  * Internal dependencies
@@ -11,6 +14,9 @@ import SettingsTab from './settings-tab';
11
14
  import StylesTab from './styles-tab';
12
15
  import InspectorControls from '../inspector-controls';
13
16
  import useIsListViewTabDisabled from './use-is-list-view-tab-disabled';
17
+ import { unlock } from '../../lock-unlock';
18
+
19
+ const { Tabs } = unlock( componentsPrivateApis );
14
20
 
15
21
  export default function InspectorControlsTabs( {
16
22
  blockName,
@@ -26,34 +32,39 @@ export default function InspectorControlsTabs( {
26
32
  const initialTabName = ! useIsListViewTabDisabled( blockName )
27
33
  ? TAB_LIST_VIEW.name
28
34
  : undefined;
29
- return (
30
- <TabPanel
31
- className="block-editor-block-inspector__tabs"
32
- tabs={ tabs }
33
- initialTabName={ initialTabName }
34
- key={ clientId }
35
- >
36
- { ( tab ) => {
37
- if ( tab.name === TAB_SETTINGS.name ) {
38
- return (
39
- <SettingsTab showAdvancedControls={ !! blockName } />
40
- );
41
- }
42
35
 
43
- if ( tab.name === TAB_STYLES.name ) {
44
- return (
45
- <StylesTab
46
- blockName={ blockName }
47
- clientId={ clientId }
48
- hasBlockStyles={ hasBlockStyles }
36
+ return (
37
+ <div className="block-editor-block-inspector__tabs">
38
+ <Tabs initialTabId={ initialTabName } key={ clientId }>
39
+ <Tabs.TabList>
40
+ { tabs.map( ( tab ) => (
41
+ <Tabs.Tab
42
+ key={ tab.name }
43
+ tabId={ tab.name }
44
+ render={
45
+ <Button
46
+ icon={ tab.icon }
47
+ label={ tab.title }
48
+ className={ tab.className }
49
+ />
50
+ }
49
51
  />
50
- );
51
- }
52
-
53
- if ( tab.name === TAB_LIST_VIEW.name ) {
54
- return <InspectorControls.Slot group="list" />;
55
- }
56
- } }
57
- </TabPanel>
52
+ ) ) }
53
+ </Tabs.TabList>
54
+ <Tabs.TabPanel tabId={ TAB_SETTINGS.name } focusable={ false }>
55
+ <SettingsTab showAdvancedControls={ !! blockName } />
56
+ </Tabs.TabPanel>
57
+ <Tabs.TabPanel tabId={ TAB_STYLES.name } focusable={ false }>
58
+ <StylesTab
59
+ blockName={ blockName }
60
+ clientId={ clientId }
61
+ hasBlockStyles={ hasBlockStyles }
62
+ />
63
+ </Tabs.TabPanel>
64
+ <Tabs.TabPanel tabId={ TAB_LIST_VIEW.name } focusable={ false }>
65
+ <InspectorControls.Slot group="list" />
66
+ </Tabs.TabPanel>
67
+ </Tabs>
68
+ </div>
58
69
  );
59
70
  }
@@ -1,5 +1,5 @@
1
1
  .show-icon-labels {
2
- .block-editor-block-inspector__tabs .components-tab-panel__tabs {
2
+ .block-editor-block-inspector__tabs [role="tablist"] {
3
3
  .components-button.has-icon {
4
4
  // Hide the button icons when labels are set to display...
5
5
  svg {
@@ -15,13 +15,14 @@
15
15
  }
16
16
 
17
17
  .block-editor-inspector-controls-tabs__hint {
18
- align-items: top;
18
+ align-items: flex-start;
19
19
  background: $gray-100;
20
20
  border-radius: $radius-block-ui;
21
21
  color: $gray-900;
22
22
  display: flex;
23
23
  flex-direction: row;
24
24
  margin: $grid-unit-20;
25
+ font-size: $default-font-size;
25
26
  }
26
27
 
27
28
  .block-editor-inspector-controls-tabs__hint-content {
@@ -5,11 +5,6 @@ The `LetterSpacingControl` component renders a [`UnitControl`](https://github.co
5
5
  This component is used for blocks that display text, commonly inside a
6
6
  [`ToolsPanelItem`](https://github.com/WordPress/gutenberg/blob/trunk/packages/components/src/tools-panel/tools-panel-item/README.md).
7
7
 
8
- ## Table of contents
9
-
10
- 1. [Development guidelines](#development-guidelines)
11
- 2. [Related components](#related-components)
12
-
13
8
  ## Development guidelines
14
9
 
15
10
  ### Usage
@@ -6,11 +6,6 @@ The `LineHeightControl` component adds a lineHeight attribute to the core Paragr
6
6
 
7
7
  _Note:_ It is worth noting that the line height setting option is an opt-in feature. [Themes need to declare support for it](/docs/how-to-guides/themes/theme-support.md#supporting-custom-line-heights) before it'll be available.
8
8
 
9
- ## Table of contents
10
-
11
- 1. [Development guidelines](#development-guidelines)
12
- 2. [Related components](#related-components)
13
-
14
9
  ## Development guidelines
15
10
 
16
11
  ### Usage
@@ -11,11 +11,6 @@ In addition to presenting the structure of the blocks in the editor, the ListVie
11
11
  ![List view](https://make.wordpress.org/core/files/2020/08/block-navigation.png)
12
12
  ![View of a group list view](https://make.wordpress.org/core/files/2020/08/view-of-group-block-navigation.png)
13
13
 
14
- ## Table of contents
15
-
16
- 1. [Development guidelines](#development-guidelines)
17
- 2. [Related components](#related-components)
18
-
19
14
  ## Development guidelines
20
15
 
21
16
  ### Usage
@@ -38,6 +38,8 @@ function ListViewBlockSelectButton(
38
38
  className,
39
39
  block: { clientId },
40
40
  onClick,
41
+ onContextMenu,
42
+ onMouseDown,
41
43
  onToggleExpanded,
42
44
  tabIndex,
43
45
  onFocus,
@@ -237,7 +239,9 @@ function ListViewBlockSelectButton(
237
239
  className
238
240
  ) }
239
241
  onClick={ onClick }
242
+ onContextMenu={ onContextMenu }
240
243
  onKeyDown={ onKeyDownHandler }
244
+ onMouseDown={ onMouseDown }
241
245
  ref={ ref }
242
246
  tabIndex={ tabIndex }
243
247
  onFocus={ onFocus }
@@ -13,7 +13,13 @@ import {
13
13
  } from '@wordpress/components';
14
14
  import { useInstanceId } from '@wordpress/compose';
15
15
  import { moreVertical } from '@wordpress/icons';
16
- import { useState, useRef, useCallback, memo } from '@wordpress/element';
16
+ import {
17
+ useCallback,
18
+ useMemo,
19
+ useState,
20
+ useRef,
21
+ memo,
22
+ } from '@wordpress/element';
17
23
  import { useDispatch, useSelect } from '@wordpress/data';
18
24
  import { sprintf, __ } from '@wordpress/i18n';
19
25
  import { ESCAPE } from '@wordpress/keycodes';
@@ -53,9 +59,11 @@ function ListViewBlock( {
53
59
  } ) {
54
60
  const cellRef = useRef( null );
55
61
  const rowRef = useRef( null );
62
+ const settingsRef = useRef( null );
56
63
  const [ isHovered, setIsHovered ] = useState( false );
64
+ const [ settingsAnchorRect, setSettingsAnchorRect ] = useState();
57
65
 
58
- const { isLocked, canEdit } = useBlockLock( clientId );
66
+ const { isLocked, canEdit, canMove } = useBlockLock( clientId );
59
67
 
60
68
  const isFirstSelectedBlock =
61
69
  isSelected && selectedClientIds[ 0 ] === clientId;
@@ -82,6 +90,11 @@ function ListViewBlock( {
82
90
  },
83
91
  [ clientId ]
84
92
  );
93
+ const allowRightClickOverrides = useSelect(
94
+ ( select ) =>
95
+ select( blockEditorStore ).getSettings().allowRightClickOverrides,
96
+ []
97
+ );
85
98
 
86
99
  const showBlockActions =
87
100
  // When a block hides its toolbar it also hides the block settings menu,
@@ -190,6 +203,56 @@ function ListViewBlock( {
190
203
  [ clientId, expand, collapse, isExpanded ]
191
204
  );
192
205
 
206
+ // Allow right-clicking an item in the List View to open up the block settings dropdown.
207
+ const onContextMenu = useCallback(
208
+ ( event ) => {
209
+ if ( showBlockActions && allowRightClickOverrides ) {
210
+ settingsRef.current?.click();
211
+ // Ensure the position of the settings dropdown is at the cursor.
212
+ setSettingsAnchorRect(
213
+ new window.DOMRect( event.clientX, event.clientY, 0, 0 )
214
+ );
215
+ event.preventDefault();
216
+ }
217
+ },
218
+ [ allowRightClickOverrides, settingsRef, showBlockActions ]
219
+ );
220
+
221
+ const onMouseDown = useCallback(
222
+ ( event ) => {
223
+ // Prevent right-click from focusing the block,
224
+ // because focus will be handled when opening the block settings dropdown.
225
+ if ( allowRightClickOverrides && event.button === 2 ) {
226
+ event.preventDefault();
227
+ }
228
+ },
229
+ [ allowRightClickOverrides ]
230
+ );
231
+
232
+ const settingsPopoverAnchor = useMemo( () => {
233
+ const { ownerDocument } = rowRef?.current || {};
234
+
235
+ // If no custom position is set, the settings dropdown will be anchored to the
236
+ // DropdownMenu toggle button.
237
+ if ( ! settingsAnchorRect || ! ownerDocument ) {
238
+ return undefined;
239
+ }
240
+
241
+ // Position the settings dropdown at the cursor when right-clicking a block.
242
+ return {
243
+ ownerDocument,
244
+ getBoundingClientRect() {
245
+ return settingsAnchorRect;
246
+ },
247
+ };
248
+ }, [ settingsAnchorRect ] );
249
+
250
+ const clearSettingsAnchorRect = useCallback( () => {
251
+ // Clear the custom position for the settings dropdown so that it is restored back
252
+ // to being anchored to the DropdownMenu toggle button.
253
+ setSettingsAnchorRect( undefined );
254
+ }, [ setSettingsAnchorRect ] );
255
+
193
256
  let colSpan;
194
257
  if ( hasRenderedMovers ) {
195
258
  colSpan = 2;
@@ -206,6 +269,7 @@ function ListViewBlock( {
206
269
  'is-dragging': isDragged,
207
270
  'has-single-cell': ! showBlockActions,
208
271
  'is-synced': blockInformation?.isSynced,
272
+ 'is-draggable': canMove,
209
273
  } );
210
274
 
211
275
  // Only include all selected blocks if the currently clicked on block
@@ -257,6 +321,8 @@ function ListViewBlock( {
257
321
  <ListViewBlockContents
258
322
  block={ block }
259
323
  onClick={ selectEditorBlock }
324
+ onContextMenu={ onContextMenu }
325
+ onMouseDown={ onMouseDown }
260
326
  onToggleExpanded={ toggleExpanded }
261
327
  isSelected={ isSelected }
262
328
  position={ position }
@@ -315,6 +381,7 @@ function ListViewBlock( {
315
381
  <TreeGridCell
316
382
  className={ listViewBlockSettingsClassName }
317
383
  aria-selected={ !! isSelected }
384
+ ref={ settingsRef }
318
385
  >
319
386
  { ( { ref, tabIndex, onFocus } ) => (
320
387
  <BlockSettingsMenu
@@ -322,10 +389,14 @@ function ListViewBlock( {
322
389
  block={ block }
323
390
  icon={ moreVertical }
324
391
  label={ settingsAriaLabel }
392
+ popoverProps={ {
393
+ anchor: settingsPopoverAnchor, // Used to position the settings at the cursor on right-click.
394
+ } }
325
395
  toggleProps={ {
326
396
  ref,
327
397
  className: 'block-editor-list-view-block__menu',
328
398
  tabIndex,
399
+ onClick: clearSettingsAnchorRect,
329
400
  onFocus,
330
401
  } }
331
402
  disableOpenOnArrowDown
@@ -15,6 +15,11 @@
15
15
  // Use position relative for row animation.
16
16
  position: relative;
17
17
 
18
+ &.is-draggable,
19
+ &.is-draggable .block-editor-list-view-block-contents {
20
+ cursor: grab;
21
+ }
22
+
18
23
  .block-editor-list-view-block-select-button {
19
24
  // When a row is expanded, retain the dark color.
20
25
  &[aria-expanded="true"] {
@@ -378,6 +383,7 @@
378
383
  height: $icon-size;
379
384
  margin-left: $grid-unit-05;
380
385
  width: $icon-size;
386
+ cursor: pointer;
381
387
  }
382
388
 
383
389
  // First level of indentation is aria-level 2, max indent is 8.
@@ -0,0 +1,6 @@
1
+ export const MEDIA_UPLOAD_STATE_IDLE = 0;
2
+ export const MEDIA_UPLOAD_STATE_UPLOADING = 1;
3
+ export const MEDIA_UPLOAD_STATE_SUCCEEDED = 2;
4
+ export const MEDIA_UPLOAD_STATE_FAILED = 3;
5
+ export const MEDIA_UPLOAD_STATE_RESET = 4;
6
+ export const MEDIA_UPLOAD_STATE_PAUSED = 11;
@@ -15,23 +15,28 @@ import { subscribeMediaUpload } from '@wordpress/react-native-bridge';
15
15
  * Internal dependencies
16
16
  */
17
17
  import styles from './styles.scss';
18
-
19
- export const MEDIA_UPLOAD_STATE_UPLOADING = 1;
20
- export const MEDIA_UPLOAD_STATE_SUCCEEDED = 2;
21
- export const MEDIA_UPLOAD_STATE_FAILED = 3;
22
- export const MEDIA_UPLOAD_STATE_RESET = 4;
18
+ import {
19
+ MEDIA_UPLOAD_STATE_IDLE,
20
+ MEDIA_UPLOAD_STATE_UPLOADING,
21
+ MEDIA_UPLOAD_STATE_SUCCEEDED,
22
+ MEDIA_UPLOAD_STATE_FAILED,
23
+ MEDIA_UPLOAD_STATE_RESET,
24
+ MEDIA_UPLOAD_STATE_PAUSED,
25
+ } from './constants';
23
26
 
24
27
  export class MediaUploadProgress extends Component {
25
28
  constructor( props ) {
26
29
  super( props );
27
30
 
28
31
  this.state = {
32
+ uploadState: MEDIA_UPLOAD_STATE_IDLE,
29
33
  progress: 0,
30
34
  isUploadInProgress: false,
31
35
  isUploadFailed: false,
32
36
  };
33
37
 
34
38
  this.mediaUpload = this.mediaUpload.bind( this );
39
+ this.getRetryMessage = this.getRetryMessage.bind( this );
35
40
  }
36
41
 
37
42
  componentDidMount() {
@@ -45,7 +50,11 @@ export class MediaUploadProgress extends Component {
45
50
  mediaUpload( payload ) {
46
51
  const { mediaId } = this.props;
47
52
 
48
- if ( payload.mediaId !== mediaId ) {
53
+ if (
54
+ payload.mediaId !== mediaId ||
55
+ ( payload.state === this.state.uploadState &&
56
+ payload.progress === this.state.progress )
57
+ ) {
49
58
  return;
50
59
  }
51
60
 
@@ -56,6 +65,9 @@ export class MediaUploadProgress extends Component {
56
65
  case MEDIA_UPLOAD_STATE_SUCCEEDED:
57
66
  this.finishMediaUploadWithSuccess( payload );
58
67
  break;
68
+ case MEDIA_UPLOAD_STATE_PAUSED:
69
+ this.finishMediaUploadWithPause( payload );
70
+ break;
59
71
  case MEDIA_UPLOAD_STATE_FAILED:
60
72
  this.finishMediaUploadWithFailure( payload );
61
73
  break;
@@ -68,6 +80,7 @@ export class MediaUploadProgress extends Component {
68
80
  updateMediaProgress( payload ) {
69
81
  this.setState( {
70
82
  progress: payload.progress,
83
+ uploadState: payload.state,
71
84
  isUploadInProgress: true,
72
85
  isUploadFailed: false,
73
86
  } );
@@ -77,21 +90,48 @@ export class MediaUploadProgress extends Component {
77
90
  }
78
91
 
79
92
  finishMediaUploadWithSuccess( payload ) {
80
- this.setState( { isUploadInProgress: false } );
93
+ this.setState( {
94
+ uploadState: payload.state,
95
+ isUploadInProgress: false,
96
+ } );
81
97
  if ( this.props.onFinishMediaUploadWithSuccess ) {
82
98
  this.props.onFinishMediaUploadWithSuccess( payload );
83
99
  }
84
100
  }
85
101
 
102
+ finishMediaUploadWithPause( payload ) {
103
+ if ( ! this.props.enablePausedUploads ) {
104
+ this.finishMediaUploadWithFailure( payload );
105
+ return;
106
+ }
107
+
108
+ this.setState( {
109
+ uploadState: payload.state,
110
+ isUploadInProgress: true,
111
+ isUploadFailed: false,
112
+ } );
113
+ if ( this.props.onFinishMediaUploadWithFailure ) {
114
+ this.props.onFinishMediaUploadWithFailure( payload );
115
+ }
116
+ }
117
+
86
118
  finishMediaUploadWithFailure( payload ) {
87
- this.setState( { isUploadInProgress: false, isUploadFailed: true } );
119
+ this.setState( {
120
+ uploadState: payload.state,
121
+ isUploadInProgress: false,
122
+ isUploadFailed: true,
123
+ } );
88
124
  if ( this.props.onFinishMediaUploadWithFailure ) {
89
125
  this.props.onFinishMediaUploadWithFailure( payload );
90
126
  }
91
127
  }
92
128
 
93
129
  mediaUploadStateReset( payload ) {
94
- this.setState( { isUploadInProgress: false, isUploadFailed: false } );
130
+ this.setState( {
131
+ uploadState: payload.state,
132
+ isUploadInProgress: false,
133
+ isUploadFailed: false,
134
+ } );
95
135
  if ( this.props.onMediaUploadStateReset ) {
96
136
  this.props.onMediaUploadStateReset( payload );
97
137
  }
@@ -115,15 +155,24 @@ export class MediaUploadProgress extends Component {
115
155
  }
116
156
  }
117
157
 
158
+ getRetryMessage() {
159
+ if (
160
+ this.state.uploadState === MEDIA_UPLOAD_STATE_PAUSED &&
161
+ this.props.enablePausedUploads
162
+ ) {
163
+ return __( 'Waiting for connection' );
164
+ }
165
+
166
+ // eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace
167
+ return __( 'Failed to insert media.\nTap for more info.' );
168
+ }
169
+
118
170
  render() {
119
171
  const { renderContent = () => null } = this.props;
120
- const { isUploadInProgress, isUploadFailed } = this.state;
172
+ const { isUploadInProgress, isUploadFailed, uploadState } = this.state;
121
173
  const showSpinner = this.state.isUploadInProgress;
122
174
  const progress = this.state.progress * 100;
123
- // eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace
124
- const retryMessage = __(
125
- 'Failed to insert media.\nTap for more info.'
126
- );
175
+ const retryMessage = this.getRetryMessage();
127
176
 
128
177
  const progressBarStyle = [
129
178
  styles.progressBar,
@@ -149,6 +198,9 @@ export class MediaUploadProgress extends Component {
149
198
  ) }
150
199
  </View>
151
200
  { renderContent( {
201
+ isUploadPaused:
202
+ uploadState === MEDIA_UPLOAD_STATE_PAUSED &&
203
+ this.props.enablePausedUploads,
152
204
  isUploadInProgress,
153
205
  isUploadFailed,
154
206
  retryMessage,
@@ -14,13 +14,13 @@ import {
14
14
  /**
15
15
  * Internal dependencies
16
16
  */
17
+ import { MediaUploadProgress } from '../';
17
18
  import {
18
- MediaUploadProgress,
19
19
  MEDIA_UPLOAD_STATE_UPLOADING,
20
20
  MEDIA_UPLOAD_STATE_SUCCEEDED,
21
21
  MEDIA_UPLOAD_STATE_FAILED,
22
22
  MEDIA_UPLOAD_STATE_RESET,
23
- } from '../';
23
+ } from '../constants';
24
24
 
25
25
  let uploadCallBack;
26
26
  subscribeMediaUpload.mockImplementation( ( callback ) => {
@@ -6,11 +6,6 @@ This card contains information on the number of blocks selected, and in the case
6
6
 
7
7
  ![Multi selection inspector card](https://make.wordpress.org/core/files/2020/09/multi-selection-inspector-card.png)
8
8
 
9
- ## Table of contents
10
-
11
- 1. [Development guidelines](#development-guidelines)
12
- 2. [Related components](#related-components)
13
-
14
9
  ## Development guidelines
15
10
 
16
11
  ### Usage