@wordpress/block-editor 11.2.0 → 11.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (675) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +28 -4
  3. package/build/components/alignment-control/ui.js +1 -1
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/autocomplete/index.js +2 -7
  6. package/build/components/autocomplete/index.js.map +1 -1
  7. package/build/components/block-actions/index.js +7 -2
  8. package/build/components/block-actions/index.js.map +1 -1
  9. package/build/components/block-alignment-matrix-control/index.js +2 -2
  10. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  11. package/build/components/block-card/index.js +2 -4
  12. package/build/components/block-card/index.js.map +1 -1
  13. package/build/components/block-edit/index.js +8 -0
  14. package/build/components/block-edit/index.js.map +1 -1
  15. package/build/components/block-inspector/index.js +15 -14
  16. package/build/components/block-inspector/index.js.map +1 -1
  17. package/build/components/block-list/use-in-between-inserter.js +5 -0
  18. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  19. package/build/components/block-lock/modal.js +0 -1
  20. package/build/components/block-lock/modal.js.map +1 -1
  21. package/build/components/block-mover/mover-description.js +2 -2
  22. package/build/components/block-mover/mover-description.js.map +1 -1
  23. package/build/components/block-navigation/dropdown.js +3 -1
  24. package/build/components/block-navigation/dropdown.js.map +1 -1
  25. package/build/components/block-pattern-setup/index.js +1 -1
  26. package/build/components/block-pattern-setup/index.js.map +1 -1
  27. package/build/components/block-pattern-setup/use-patterns-setup.js +2 -2
  28. package/build/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  29. package/build/components/block-patterns-list/index.js +31 -3
  30. package/build/components/block-patterns-list/index.js.map +1 -1
  31. package/build/components/block-preview/auto.js +9 -11
  32. package/build/components/block-preview/auto.js.map +1 -1
  33. package/build/components/block-preview/index.js +32 -8
  34. package/build/components/block-preview/index.js.map +1 -1
  35. package/build/components/block-selection-clearer/index.js +1 -1
  36. package/build/components/block-selection-clearer/index.js.map +1 -1
  37. package/build/components/block-settings/container.native.js +7 -33
  38. package/build/components/block-settings/container.native.js.map +1 -1
  39. package/build/components/block-settings-menu/block-settings-dropdown.js +12 -6
  40. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  41. package/build/components/block-settings-menu-controls/index.js +2 -8
  42. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  43. package/build/components/block-switcher/utils.js +1 -1
  44. package/build/components/block-switcher/utils.js.map +1 -1
  45. package/build/components/block-tools/selected-block-popover.js +55 -47
  46. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  47. package/build/components/block-vertical-alignment-control/icons.js +15 -1
  48. package/build/components/block-vertical-alignment-control/icons.js.map +1 -1
  49. package/build/components/block-vertical-alignment-control/ui.js +9 -4
  50. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  51. package/build/components/color-style-selector/index.js +3 -1
  52. package/build/components/color-style-selector/index.js.map +1 -1
  53. package/build/components/date-format-picker/index.js +3 -4
  54. package/build/components/date-format-picker/index.js.map +1 -1
  55. package/build/components/font-family/index.js +1 -7
  56. package/build/components/font-family/index.js.map +1 -1
  57. package/build/components/font-sizes/fluid-utils.js +1 -1
  58. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  59. package/build/components/font-sizes/utils.js +1 -1
  60. package/build/components/font-sizes/utils.js.map +1 -1
  61. package/build/components/global-styles/context.js +22 -0
  62. package/build/components/global-styles/context.js.map +1 -0
  63. package/build/components/global-styles/hooks.js +142 -0
  64. package/build/components/global-styles/hooks.js.map +1 -0
  65. package/build/components/global-styles/index.js +42 -0
  66. package/build/components/global-styles/index.js.map +1 -0
  67. package/build/components/global-styles/typography-utils.js +92 -0
  68. package/build/components/global-styles/typography-utils.js.map +1 -0
  69. package/build/components/global-styles/use-global-styles-output.js +974 -0
  70. package/build/components/global-styles/use-global-styles-output.js.map +1 -0
  71. package/build/components/global-styles/utils.js +340 -0
  72. package/build/components/global-styles/utils.js.map +1 -0
  73. package/build/components/height-control/index.js +13 -1
  74. package/build/components/height-control/index.js.map +1 -1
  75. package/build/components/iframe/index.js +5 -3
  76. package/build/components/iframe/index.js.map +1 -1
  77. package/build/components/image-editor/constants.js +1 -1
  78. package/build/components/image-editor/constants.js.map +1 -1
  79. package/build/components/image-editor/context.js +1 -2
  80. package/build/components/image-editor/context.js.map +1 -1
  81. package/build/components/image-editor/cropper.js +3 -1
  82. package/build/components/image-editor/cropper.js.map +1 -1
  83. package/build/components/image-editor/index.js +13 -9
  84. package/build/components/image-editor/index.js.map +1 -1
  85. package/build/components/image-editor/use-transform-image.js +11 -35
  86. package/build/components/image-editor/use-transform-image.js.map +1 -1
  87. package/build/components/image-size-control/index.js +1 -7
  88. package/build/components/image-size-control/index.js.map +1 -1
  89. package/build/components/index.js +8 -24
  90. package/build/components/index.js.map +1 -1
  91. package/build/components/inner-blocks/index.js +22 -32
  92. package/build/components/inner-blocks/index.js.map +1 -1
  93. package/build/components/inner-blocks/index.native.js +8 -23
  94. package/build/components/inner-blocks/index.native.js.map +1 -1
  95. package/build/components/inner-blocks/use-block-context.js +53 -0
  96. package/build/components/inner-blocks/use-block-context.js.map +1 -0
  97. package/build/components/inserter/block-patterns-explorer/explorer.js +0 -1
  98. package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  99. package/build/components/inserter/block-patterns-tab.js +9 -2
  100. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  101. package/build/components/inserter/block-types-tab.js +2 -2
  102. package/build/components/inserter/block-types-tab.js.map +1 -1
  103. package/build/components/inserter/hooks/use-patterns-state.js +1 -7
  104. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  105. package/build/components/inserter/index.js +5 -4
  106. package/build/components/inserter/index.js.map +1 -1
  107. package/build/components/inserter/media-tab/hooks.js +142 -56
  108. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  109. package/build/components/inserter/media-tab/media-list.js +74 -21
  110. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  111. package/build/components/inserter/media-tab/media-panel.js +11 -13
  112. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  113. package/build/components/inserter/media-tab/media-tab.js +6 -3
  114. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  115. package/build/components/inserter/media-tab/utils.js +26 -15
  116. package/build/components/inserter/media-tab/utils.js.map +1 -1
  117. package/build/components/inserter/menu.js +4 -0
  118. package/build/components/inserter/menu.js.map +1 -1
  119. package/build/components/inserter/preview-panel.js +5 -3
  120. package/build/components/inserter/preview-panel.js.map +1 -1
  121. package/build/components/inserter/search-results.js +2 -7
  122. package/build/components/inserter/search-results.js.map +1 -1
  123. package/build/components/inserter-list-item/index.js +1 -9
  124. package/build/components/inserter-list-item/index.js.map +1 -1
  125. package/build/components/inspector-controls/fill.js +15 -2
  126. package/build/components/inspector-controls/fill.js.map +1 -1
  127. package/build/components/inspector-controls/fill.native.js +14 -1
  128. package/build/components/inspector-controls/fill.native.js.map +1 -1
  129. package/build/components/inspector-controls/groups.js +4 -0
  130. package/build/components/inspector-controls/groups.js.map +1 -1
  131. package/build/components/inspector-controls/index.js +2 -2
  132. package/build/components/inspector-controls/index.js.map +1 -1
  133. package/build/components/inspector-controls/slot.js +14 -1
  134. package/build/components/inspector-controls/slot.js.map +1 -1
  135. package/build/components/inspector-controls/slot.native.js +14 -1
  136. package/build/components/inspector-controls/slot.native.js.map +1 -1
  137. package/build/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
  138. package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
  139. package/build/components/inspector-controls-tabs/index.js +2 -2
  140. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  141. package/build/components/inspector-controls-tabs/position-controls-panel.js +1 -1
  142. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  143. package/build/components/inspector-controls-tabs/styles-tab.js +6 -4
  144. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  145. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +17 -12
  146. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  147. package/build/components/justify-content-control/ui.js +8 -1
  148. package/build/components/justify-content-control/ui.js.map +1 -1
  149. package/build/components/link-control/index.js +45 -17
  150. package/build/components/link-control/index.js.map +1 -1
  151. package/build/components/list-view/block.js +1 -1
  152. package/build/components/list-view/block.js.map +1 -1
  153. package/build/components/list-view/use-list-view-drop-zone.js +1 -1
  154. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  155. package/build/components/media-upload/index.native.js +4 -1
  156. package/build/components/media-upload/index.native.js.map +1 -1
  157. package/build/components/off-canvas-editor/appender.js +50 -3
  158. package/build/components/off-canvas-editor/appender.js.map +1 -1
  159. package/build/components/off-canvas-editor/block-contents.js +3 -1
  160. package/build/components/off-canvas-editor/block-contents.js.map +1 -1
  161. package/build/components/off-canvas-editor/block-select-button.js +10 -4
  162. package/build/components/off-canvas-editor/block-select-button.js.map +1 -1
  163. package/build/components/off-canvas-editor/block.js +6 -27
  164. package/build/components/off-canvas-editor/block.js.map +1 -1
  165. package/build/components/off-canvas-editor/branch.js +25 -10
  166. package/build/components/off-canvas-editor/branch.js.map +1 -1
  167. package/build/components/off-canvas-editor/index.js +27 -20
  168. package/build/components/off-canvas-editor/index.js.map +1 -1
  169. package/build/components/off-canvas-editor/link-ui.js +2 -2
  170. package/build/components/off-canvas-editor/link-ui.js.map +1 -1
  171. package/build/components/off-canvas-editor/use-list-view-drop-zone.js +1 -1
  172. package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -1
  173. package/build/components/provider/index.js +21 -9
  174. package/build/components/provider/index.js.map +1 -1
  175. package/build/components/provider/index.native.js +5 -6
  176. package/build/components/provider/index.native.js.map +1 -1
  177. package/build/components/rich-text/use-before-input-rules.js +11 -3
  178. package/build/components/rich-text/use-before-input-rules.js.map +1 -1
  179. package/build/components/rich-text/utils.js +1 -1
  180. package/build/components/rich-text/utils.js.map +1 -1
  181. package/build/components/spacing-sizes-control/utils.js +2 -8
  182. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  183. package/build/components/tool-selector/index.js +3 -1
  184. package/build/components/tool-selector/index.js.map +1 -1
  185. package/build/components/url-popover/image-url-input-ui.js +7 -8
  186. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  187. package/build/components/use-block-display-information/index.js +1 -1
  188. package/build/components/use-block-display-information/index.js.map +1 -1
  189. package/build/experiments.js +45 -0
  190. package/build/experiments.js.map +1 -0
  191. package/build/experiments.native.js +40 -0
  192. package/build/experiments.native.js.map +1 -0
  193. package/build/hooks/anchor.js +2 -1
  194. package/build/hooks/anchor.js.map +1 -1
  195. package/build/hooks/border.js +1 -1
  196. package/build/hooks/border.js.map +1 -1
  197. package/build/hooks/child-layout.js +5 -1
  198. package/build/hooks/child-layout.js.map +1 -1
  199. package/build/hooks/color-panel.js +1 -1
  200. package/build/hooks/color-panel.js.map +1 -1
  201. package/build/hooks/color.js +3 -3
  202. package/build/hooks/color.js.map +1 -1
  203. package/build/hooks/custom-class-name.js +2 -1
  204. package/build/hooks/custom-class-name.js.map +1 -1
  205. package/build/hooks/dimensions.js +7 -5
  206. package/build/hooks/dimensions.js.map +1 -1
  207. package/build/hooks/margin.js +1 -0
  208. package/build/hooks/margin.js.map +1 -1
  209. package/build/hooks/padding.js +1 -0
  210. package/build/hooks/padding.js.map +1 -1
  211. package/build/hooks/position.js +39 -17
  212. package/build/hooks/position.js.map +1 -1
  213. package/build/hooks/typography.js +1 -1
  214. package/build/hooks/typography.js.map +1 -1
  215. package/build/hooks/use-color-props.js +3 -3
  216. package/build/hooks/use-color-props.js.map +1 -1
  217. package/build/hooks/utils.js +69 -3
  218. package/build/hooks/utils.js.map +1 -1
  219. package/build/index.js +10 -1
  220. package/build/index.js.map +1 -1
  221. package/build/layouts/constrained.js +3 -0
  222. package/build/layouts/constrained.js.map +1 -1
  223. package/build/layouts/flex.js +59 -9
  224. package/build/layouts/flex.js.map +1 -1
  225. package/build/layouts/flow.js +0 -18
  226. package/build/layouts/flow.js.map +1 -1
  227. package/build/store/actions.js +3 -30
  228. package/build/store/actions.js.map +1 -1
  229. package/build/store/defaults.js +5 -2
  230. package/build/store/defaults.js.map +1 -1
  231. package/build/store/index.js +11 -2
  232. package/build/store/index.js.map +1 -1
  233. package/build/store/private-actions.js +78 -0
  234. package/build/store/private-actions.js.map +1 -0
  235. package/build/store/private-selectors.js +32 -0
  236. package/build/store/private-selectors.js.map +1 -0
  237. package/build/store/reducer.js +1 -1
  238. package/build/store/reducer.js.map +1 -1
  239. package/build/store/selectors.js +60 -48
  240. package/build/store/selectors.js.map +1 -1
  241. package/build/utils/block-variation-transforms.js +1 -1
  242. package/build/utils/block-variation-transforms.js.map +1 -1
  243. package/build/utils/parse-css-unit-to-px.js +1 -1
  244. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  245. package/build/utils/transform-styles/index.js +1 -7
  246. package/build/utils/transform-styles/index.js.map +1 -1
  247. package/build-module/components/alignment-control/ui.js +1 -1
  248. package/build-module/components/alignment-control/ui.js.map +1 -1
  249. package/build-module/components/autocomplete/index.js +2 -6
  250. package/build-module/components/autocomplete/index.js.map +1 -1
  251. package/build-module/components/block-actions/index.js +7 -2
  252. package/build-module/components/block-actions/index.js.map +1 -1
  253. package/build-module/components/block-alignment-matrix-control/index.js +2 -2
  254. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  255. package/build-module/components/block-card/index.js +2 -4
  256. package/build-module/components/block-card/index.js.map +1 -1
  257. package/build-module/components/block-edit/index.js +7 -0
  258. package/build-module/components/block-edit/index.js.map +1 -1
  259. package/build-module/components/block-inspector/index.js +15 -14
  260. package/build-module/components/block-inspector/index.js.map +1 -1
  261. package/build-module/components/block-list/use-in-between-inserter.js +5 -0
  262. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  263. package/build-module/components/block-lock/modal.js +0 -1
  264. package/build-module/components/block-lock/modal.js.map +1 -1
  265. package/build-module/components/block-mover/mover-description.js +2 -2
  266. package/build-module/components/block-mover/mover-description.js.map +1 -1
  267. package/build-module/components/block-navigation/dropdown.js +3 -1
  268. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  269. package/build-module/components/block-pattern-setup/index.js +1 -1
  270. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  271. package/build-module/components/block-pattern-setup/use-patterns-setup.js +2 -2
  272. package/build-module/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  273. package/build-module/components/block-patterns-list/index.js +32 -3
  274. package/build-module/components/block-patterns-list/index.js.map +1 -1
  275. package/build-module/components/block-preview/auto.js +9 -11
  276. package/build-module/components/block-preview/auto.js.map +1 -1
  277. package/build-module/components/block-preview/index.js +31 -8
  278. package/build-module/components/block-preview/index.js.map +1 -1
  279. package/build-module/components/block-selection-clearer/index.js +1 -1
  280. package/build-module/components/block-selection-clearer/index.js.map +1 -1
  281. package/build-module/components/block-settings/container.native.js +6 -30
  282. package/build-module/components/block-settings/container.native.js.map +1 -1
  283. package/build-module/components/block-settings-menu/block-settings-dropdown.js +12 -6
  284. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  285. package/build-module/components/block-settings-menu-controls/index.js +2 -7
  286. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  287. package/build-module/components/block-switcher/utils.js +1 -1
  288. package/build-module/components/block-switcher/utils.js.map +1 -1
  289. package/build-module/components/block-tools/selected-block-popover.js +55 -48
  290. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  291. package/build-module/components/block-vertical-alignment-control/icons.js +12 -0
  292. package/build-module/components/block-vertical-alignment-control/icons.js.map +1 -1
  293. package/build-module/components/block-vertical-alignment-control/ui.js +10 -5
  294. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  295. package/build-module/components/color-style-selector/index.js +3 -1
  296. package/build-module/components/color-style-selector/index.js.map +1 -1
  297. package/build-module/components/date-format-picker/index.js +4 -5
  298. package/build-module/components/date-format-picker/index.js.map +1 -1
  299. package/build-module/components/font-family/index.js +1 -6
  300. package/build-module/components/font-family/index.js.map +1 -1
  301. package/build-module/components/font-sizes/fluid-utils.js +1 -1
  302. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  303. package/build-module/components/font-sizes/utils.js +1 -1
  304. package/build-module/components/font-sizes/utils.js.map +1 -1
  305. package/build-module/components/global-styles/context.js +12 -0
  306. package/build-module/components/global-styles/context.js.map +1 -0
  307. package/build-module/components/global-styles/hooks.js +121 -0
  308. package/build-module/components/global-styles/hooks.js.map +1 -0
  309. package/build-module/components/global-styles/index.js +4 -0
  310. package/build-module/components/global-styles/index.js.map +1 -0
  311. package/build-module/components/global-styles/typography-utils.js +84 -0
  312. package/build-module/components/global-styles/typography-utils.js.map +1 -0
  313. package/build-module/components/global-styles/use-global-styles-output.js +930 -0
  314. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -0
  315. package/build-module/components/global-styles/utils.js +321 -0
  316. package/build-module/components/global-styles/utils.js.map +1 -0
  317. package/build-module/components/height-control/index.js +14 -1
  318. package/build-module/components/height-control/index.js.map +1 -1
  319. package/build-module/components/iframe/index.js +6 -4
  320. package/build-module/components/iframe/index.js.map +1 -1
  321. package/build-module/components/image-editor/constants.js +1 -1
  322. package/build-module/components/image-editor/constants.js.map +1 -1
  323. package/build-module/components/image-editor/context.js +1 -2
  324. package/build-module/components/image-editor/context.js.map +1 -1
  325. package/build-module/components/image-editor/cropper.js +3 -1
  326. package/build-module/components/image-editor/cropper.js.map +1 -1
  327. package/build-module/components/image-editor/index.js +13 -3
  328. package/build-module/components/image-editor/index.js.map +1 -1
  329. package/build-module/components/image-editor/use-transform-image.js +12 -37
  330. package/build-module/components/image-editor/use-transform-image.js.map +1 -1
  331. package/build-module/components/image-size-control/index.js +1 -6
  332. package/build-module/components/image-size-control/index.js.map +1 -1
  333. package/build-module/components/index.js +2 -3
  334. package/build-module/components/index.js.map +1 -1
  335. package/build-module/components/inner-blocks/index.js +21 -32
  336. package/build-module/components/inner-blocks/index.js.map +1 -1
  337. package/build-module/components/inner-blocks/index.native.js +9 -22
  338. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  339. package/build-module/components/inner-blocks/use-block-context.js +43 -0
  340. package/build-module/components/inner-blocks/use-block-context.js.map +1 -0
  341. package/build-module/components/inserter/block-patterns-explorer/explorer.js +0 -1
  342. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  343. package/build-module/components/inserter/block-patterns-tab.js +9 -2
  344. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  345. package/build-module/components/inserter/block-types-tab.js +3 -3
  346. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  347. package/build-module/components/inserter/hooks/use-patterns-state.js +1 -6
  348. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  349. package/build-module/components/inserter/index.js +5 -4
  350. package/build-module/components/inserter/index.js.map +1 -1
  351. package/build-module/components/inserter/media-tab/hooks.js +145 -56
  352. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  353. package/build-module/components/inserter/media-tab/media-list.js +74 -24
  354. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  355. package/build-module/components/inserter/media-tab/media-panel.js +14 -14
  356. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  357. package/build-module/components/inserter/media-tab/media-tab.js +7 -4
  358. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  359. package/build-module/components/inserter/media-tab/utils.js +27 -15
  360. package/build-module/components/inserter/media-tab/utils.js.map +1 -1
  361. package/build-module/components/inserter/menu.js +4 -0
  362. package/build-module/components/inserter/menu.js.map +1 -1
  363. package/build-module/components/inserter/preview-panel.js +5 -3
  364. package/build-module/components/inserter/preview-panel.js.map +1 -1
  365. package/build-module/components/inserter/search-results.js +2 -6
  366. package/build-module/components/inserter/search-results.js.map +1 -1
  367. package/build-module/components/inserter-list-item/index.js +1 -9
  368. package/build-module/components/inserter-list-item/index.js.map +1 -1
  369. package/build-module/components/inspector-controls/fill.js +14 -2
  370. package/build-module/components/inspector-controls/fill.js.map +1 -1
  371. package/build-module/components/inspector-controls/fill.native.js +13 -1
  372. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  373. package/build-module/components/inspector-controls/groups.js +4 -0
  374. package/build-module/components/inspector-controls/groups.js.map +1 -1
  375. package/build-module/components/inspector-controls/index.js +2 -2
  376. package/build-module/components/inspector-controls/index.js.map +1 -1
  377. package/build-module/components/inspector-controls/slot.js +13 -1
  378. package/build-module/components/inspector-controls/slot.js.map +1 -1
  379. package/build-module/components/inspector-controls/slot.native.js +13 -1
  380. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  381. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
  382. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
  383. package/build-module/components/inspector-controls-tabs/index.js +2 -2
  384. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  385. package/build-module/components/inspector-controls-tabs/position-controls-panel.js +1 -1
  386. package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  387. package/build-module/components/inspector-controls-tabs/styles-tab.js +6 -4
  388. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  389. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +17 -12
  390. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  391. package/build-module/components/justify-content-control/ui.js +9 -2
  392. package/build-module/components/justify-content-control/ui.js.map +1 -1
  393. package/build-module/components/link-control/index.js +45 -16
  394. package/build-module/components/link-control/index.js.map +1 -1
  395. package/build-module/components/list-view/block.js +1 -1
  396. package/build-module/components/list-view/block.js.map +1 -1
  397. package/build-module/components/list-view/use-list-view-drop-zone.js +1 -1
  398. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  399. package/build-module/components/media-upload/index.native.js +4 -1
  400. package/build-module/components/media-upload/index.native.js.map +1 -1
  401. package/build-module/components/off-canvas-editor/appender.js +47 -4
  402. package/build-module/components/off-canvas-editor/appender.js.map +1 -1
  403. package/build-module/components/off-canvas-editor/block-contents.js +2 -1
  404. package/build-module/components/off-canvas-editor/block-contents.js.map +1 -1
  405. package/build-module/components/off-canvas-editor/block-select-button.js +9 -4
  406. package/build-module/components/off-canvas-editor/block-select-button.js.map +1 -1
  407. package/build-module/components/off-canvas-editor/block.js +6 -25
  408. package/build-module/components/off-canvas-editor/block.js.map +1 -1
  409. package/build-module/components/off-canvas-editor/branch.js +23 -11
  410. package/build-module/components/off-canvas-editor/branch.js.map +1 -1
  411. package/build-module/components/off-canvas-editor/index.js +27 -19
  412. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  413. package/build-module/components/off-canvas-editor/link-ui.js +2 -2
  414. package/build-module/components/off-canvas-editor/link-ui.js.map +1 -1
  415. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +1 -1
  416. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -1
  417. package/build-module/components/provider/index.js +16 -9
  418. package/build-module/components/provider/index.js.map +1 -1
  419. package/build-module/components/provider/index.native.js +4 -4
  420. package/build-module/components/provider/index.native.js.map +1 -1
  421. package/build-module/components/rich-text/use-before-input-rules.js +10 -2
  422. package/build-module/components/rich-text/use-before-input-rules.js.map +1 -1
  423. package/build-module/components/rich-text/utils.js +1 -1
  424. package/build-module/components/rich-text/utils.js.map +1 -1
  425. package/build-module/components/spacing-sizes-control/utils.js +2 -7
  426. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  427. package/build-module/components/tool-selector/index.js +3 -1
  428. package/build-module/components/tool-selector/index.js.map +1 -1
  429. package/build-module/components/url-popover/image-url-input-ui.js +8 -8
  430. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  431. package/build-module/components/use-block-display-information/index.js +1 -1
  432. package/build-module/components/use-block-display-information/index.js.map +1 -1
  433. package/build-module/experiments.js +25 -0
  434. package/build-module/experiments.js.map +1 -0
  435. package/build-module/experiments.native.js +23 -0
  436. package/build-module/experiments.native.js.map +1 -0
  437. package/build-module/hooks/anchor.js +2 -1
  438. package/build-module/hooks/anchor.js.map +1 -1
  439. package/build-module/hooks/border.js +1 -1
  440. package/build-module/hooks/border.js.map +1 -1
  441. package/build-module/hooks/child-layout.js +5 -1
  442. package/build-module/hooks/child-layout.js.map +1 -1
  443. package/build-module/hooks/color-panel.js +1 -1
  444. package/build-module/hooks/color-panel.js.map +1 -1
  445. package/build-module/hooks/color.js +3 -3
  446. package/build-module/hooks/color.js.map +1 -1
  447. package/build-module/hooks/custom-class-name.js +2 -1
  448. package/build-module/hooks/custom-class-name.js.map +1 -1
  449. package/build-module/hooks/dimensions.js +6 -5
  450. package/build-module/hooks/dimensions.js.map +1 -1
  451. package/build-module/hooks/margin.js +1 -0
  452. package/build-module/hooks/margin.js.map +1 -1
  453. package/build-module/hooks/padding.js +1 -0
  454. package/build-module/hooks/padding.js.map +1 -1
  455. package/build-module/hooks/position.js +36 -16
  456. package/build-module/hooks/position.js.map +1 -1
  457. package/build-module/hooks/typography.js +1 -1
  458. package/build-module/hooks/typography.js.map +1 -1
  459. package/build-module/hooks/use-color-props.js +3 -3
  460. package/build-module/hooks/use-color-props.js.map +1 -1
  461. package/build-module/hooks/utils.js +70 -4
  462. package/build-module/hooks/utils.js.map +1 -1
  463. package/build-module/index.js +1 -0
  464. package/build-module/index.js.map +1 -1
  465. package/build-module/layouts/constrained.js +3 -0
  466. package/build-module/layouts/constrained.js.map +1 -1
  467. package/build-module/layouts/flex.js +60 -10
  468. package/build-module/layouts/flex.js.map +1 -1
  469. package/build-module/layouts/flow.js +0 -18
  470. package/build-module/layouts/flow.js.map +1 -1
  471. package/build-module/store/actions.js +2 -26
  472. package/build-module/store/actions.js.map +1 -1
  473. package/build-module/store/defaults.js +5 -2
  474. package/build-module/store/defaults.js.map +1 -1
  475. package/build-module/store/index.js +8 -2
  476. package/build-module/store/index.js.map +1 -1
  477. package/build-module/store/private-actions.js +66 -0
  478. package/build-module/store/private-actions.js.map +1 -0
  479. package/build-module/store/private-selectors.js +23 -0
  480. package/build-module/store/private-selectors.js.map +1 -0
  481. package/build-module/store/reducer.js +1 -1
  482. package/build-module/store/reducer.js.map +1 -1
  483. package/build-module/store/selectors.js +48 -37
  484. package/build-module/store/selectors.js.map +1 -1
  485. package/build-module/utils/block-variation-transforms.js +1 -1
  486. package/build-module/utils/block-variation-transforms.js.map +1 -1
  487. package/build-module/utils/parse-css-unit-to-px.js +1 -1
  488. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  489. package/build-module/utils/transform-styles/index.js +1 -6
  490. package/build-module/utils/transform-styles/index.js.map +1 -1
  491. package/build-style/content-rtl.css +283 -3
  492. package/build-style/content.css +283 -3
  493. package/build-style/style-rtl.css +105 -221
  494. package/build-style/style.css +105 -221
  495. package/package.json +30 -29
  496. package/src/components/alignment-control/test/__snapshots__/index.js.snap +3 -3
  497. package/src/components/alignment-control/test/index.js +5 -15
  498. package/src/components/alignment-control/ui.js +1 -1
  499. package/src/components/autocomplete/index.js +3 -6
  500. package/src/components/block-actions/index.js +9 -0
  501. package/src/components/block-alignment-control/test/index.js +3 -11
  502. package/src/components/block-alignment-matrix-control/index.js +1 -2
  503. package/src/components/block-card/index.js +1 -4
  504. package/src/components/block-content-overlay/content.scss +4 -4
  505. package/src/components/block-edit/index.js +15 -1
  506. package/src/components/block-icon/content.scss +31 -0
  507. package/src/components/block-inspector/index.js +13 -17
  508. package/src/components/block-list/use-in-between-inserter.js +5 -0
  509. package/src/components/block-lock/modal.js +0 -1
  510. package/src/components/block-mover/mover-description.js +2 -2
  511. package/src/components/block-mover/stories/index.js +3 -3
  512. package/src/components/block-navigation/dropdown.js +1 -1
  513. package/src/components/block-pattern-setup/index.js +1 -4
  514. package/src/components/block-pattern-setup/use-patterns-setup.js +2 -5
  515. package/src/components/block-patterns-list/index.js +29 -3
  516. package/src/components/block-preview/README.md +9 -9
  517. package/src/components/block-preview/auto.js +9 -11
  518. package/src/components/block-preview/content.scss +23 -0
  519. package/src/components/block-preview/index.js +40 -10
  520. package/src/components/block-preview/style.scss +0 -23
  521. package/src/components/block-selection-clearer/index.js +1 -1
  522. package/src/components/block-selection-clearer/test/index.js +6 -6
  523. package/src/components/block-settings/container.native.js +7 -26
  524. package/src/components/block-settings-menu/block-settings-dropdown.js +13 -5
  525. package/src/components/block-settings-menu-controls/index.js +2 -10
  526. package/src/components/block-switcher/test/index.js +43 -44
  527. package/src/components/block-switcher/utils.js +1 -1
  528. package/src/components/block-tools/selected-block-popover.js +77 -80
  529. package/src/components/block-tools/style.scss +0 -1
  530. package/src/components/block-variation-picker/{style.scss → content.scss} +0 -0
  531. package/src/components/block-vertical-alignment-control/icons.js +12 -0
  532. package/src/components/block-vertical-alignment-control/test/index.js +3 -11
  533. package/src/components/block-vertical-alignment-control/ui.js +16 -6
  534. package/src/components/color-style-selector/index.js +1 -1
  535. package/src/components/colors/test/with-colors.js +2 -8
  536. package/src/components/date-format-picker/index.js +23 -24
  537. package/src/components/date-format-picker/style.scss +0 -6
  538. package/src/components/default-block-appender/content.scss +18 -0
  539. package/src/components/default-block-appender/test/index.js +2 -8
  540. package/src/components/font-family/index.js +1 -6
  541. package/src/components/font-sizes/fluid-utils.js +1 -1
  542. package/src/components/font-sizes/utils.js +1 -1
  543. package/src/components/global-styles/README.md +77 -0
  544. package/src/components/global-styles/context.js +15 -0
  545. package/src/components/global-styles/hooks.js +145 -0
  546. package/src/components/global-styles/index.js +7 -0
  547. package/src/components/global-styles/test/typography-utils.js +393 -0
  548. package/src/components/global-styles/test/use-global-styles-output.js +814 -0
  549. package/src/components/global-styles/test/utils.js +206 -0
  550. package/src/components/global-styles/typography-utils.js +87 -0
  551. package/src/components/global-styles/use-global-styles-output.js +1088 -0
  552. package/src/components/global-styles/utils.js +373 -0
  553. package/src/components/height-control/README.md +55 -0
  554. package/src/components/height-control/index.js +13 -1
  555. package/src/components/iframe/index.js +8 -2
  556. package/src/components/image-editor/constants.js +1 -1
  557. package/src/components/image-editor/context.js +5 -9
  558. package/src/components/image-editor/cropper.js +3 -1
  559. package/src/components/image-editor/index.js +13 -4
  560. package/src/components/image-editor/use-transform-image.js +14 -55
  561. package/src/components/image-size-control/index.js +1 -6
  562. package/src/components/index.js +2 -6
  563. package/src/components/inner-blocks/index.js +29 -33
  564. package/src/components/inner-blocks/index.native.js +27 -47
  565. package/src/components/inner-blocks/use-block-context.js +47 -0
  566. package/src/components/inserter/block-patterns-explorer/explorer.js +0 -1
  567. package/src/components/inserter/block-patterns-tab.js +9 -1
  568. package/src/components/inserter/block-types-tab.js +3 -4
  569. package/src/components/inserter/hooks/use-patterns-state.js +1 -6
  570. package/src/components/inserter/index.js +3 -4
  571. package/src/components/inserter/media-tab/hooks.js +167 -65
  572. package/src/components/inserter/media-tab/media-list.js +94 -26
  573. package/src/components/inserter/media-tab/media-panel.js +9 -20
  574. package/src/components/inserter/media-tab/media-tab.js +12 -4
  575. package/src/components/inserter/media-tab/utils.js +20 -10
  576. package/src/components/inserter/menu.js +8 -0
  577. package/src/components/inserter/preview-panel.js +4 -2
  578. package/src/components/inserter/search-results.js +2 -6
  579. package/src/components/inserter/stories/index.js +9 -9
  580. package/src/components/inserter/style.scss +58 -11
  581. package/src/components/inserter-list-item/index.js +0 -7
  582. package/src/components/inspector-controls/README.md +3 -7
  583. package/src/components/inspector-controls/fill.js +15 -1
  584. package/src/components/inspector-controls/fill.native.js +14 -1
  585. package/src/components/inspector-controls/groups.js +3 -0
  586. package/src/components/inspector-controls/index.js +2 -6
  587. package/src/components/inspector-controls/slot.js +14 -1
  588. package/src/components/inspector-controls/slot.native.js +14 -1
  589. package/src/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
  590. package/src/components/inspector-controls-tabs/index.js +2 -4
  591. package/src/components/inspector-controls-tabs/position-controls-panel.js +1 -1
  592. package/src/components/inspector-controls-tabs/styles-tab.js +5 -7
  593. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +21 -10
  594. package/src/components/justify-content-control/ui.js +9 -0
  595. package/src/components/link-control/index.js +59 -23
  596. package/src/components/link-control/style.scss +7 -24
  597. package/src/components/link-control/test/index.js +134 -5
  598. package/src/components/list-view/block.js +1 -1
  599. package/src/components/list-view/use-list-view-drop-zone.js +1 -1
  600. package/src/components/media-replace-flow/test/index.js +4 -12
  601. package/src/components/media-upload/index.native.js +2 -2
  602. package/src/components/off-canvas-editor/README.md +2 -2
  603. package/src/components/off-canvas-editor/appender.js +93 -37
  604. package/src/components/off-canvas-editor/block-contents.js +2 -1
  605. package/src/components/off-canvas-editor/block-select-button.js +12 -1
  606. package/src/components/off-canvas-editor/block.js +3 -42
  607. package/src/components/off-canvas-editor/branch.js +32 -5
  608. package/src/components/off-canvas-editor/index.js +20 -20
  609. package/src/components/off-canvas-editor/link-ui.js +2 -2
  610. package/src/components/off-canvas-editor/style.scss +5 -1
  611. package/src/components/off-canvas-editor/use-list-view-drop-zone.js +1 -1
  612. package/src/components/provider/index.js +33 -14
  613. package/src/components/provider/index.native.js +4 -3
  614. package/src/components/provider/test/experimental-provider.js +94 -0
  615. package/src/components/provider/test/use-block-sync.js +10 -0
  616. package/src/components/responsive-block-control/test/index.js +1 -5
  617. package/src/components/rich-text/use-before-input-rules.js +10 -2
  618. package/src/components/rich-text/utils.js +1 -1
  619. package/src/components/spacing-sizes-control/utils.js +2 -7
  620. package/src/components/tool-selector/index.js +1 -1
  621. package/src/components/url-input/test/button.js +24 -24
  622. package/src/components/url-popover/image-url-input-ui.js +7 -8
  623. package/src/components/url-popover/style.scss +0 -10
  624. package/src/components/use-block-display-information/index.js +1 -1
  625. package/src/components/warning/{style.scss → content.scss} +0 -0
  626. package/src/components/warning/test/index.js +1 -5
  627. package/src/content.scss +7 -0
  628. package/src/experiments.js +27 -0
  629. package/src/experiments.native.js +25 -0
  630. package/src/hooks/anchor.js +2 -1
  631. package/src/hooks/border.js +1 -1
  632. package/src/hooks/child-layout.js +6 -1
  633. package/src/hooks/color-panel.js +1 -1
  634. package/src/hooks/color.js +3 -3
  635. package/src/hooks/custom-class-name.js +2 -1
  636. package/src/hooks/dimensions.js +6 -6
  637. package/src/hooks/layout.scss +4 -0
  638. package/src/hooks/margin.js +1 -0
  639. package/src/hooks/padding.js +1 -0
  640. package/src/hooks/position.js +56 -36
  641. package/src/hooks/test/align.native.js +1 -1
  642. package/src/hooks/test/utils.js +104 -0
  643. package/src/hooks/typography.js +1 -1
  644. package/src/hooks/use-color-props.js +3 -3
  645. package/src/hooks/utils.js +68 -2
  646. package/src/index.js +1 -0
  647. package/src/layouts/constrained.js +3 -0
  648. package/src/layouts/flex.js +66 -14
  649. package/src/layouts/flow.js +0 -9
  650. package/src/store/actions.js +2 -26
  651. package/src/store/defaults.js +7 -2
  652. package/src/store/index.js +8 -2
  653. package/src/store/private-actions.js +65 -0
  654. package/src/store/private-selectors.js +20 -0
  655. package/src/store/reducer.js +1 -1
  656. package/src/store/selectors.js +103 -62
  657. package/src/store/test/actions.js +0 -18
  658. package/src/store/test/private-actions.js +22 -0
  659. package/src/store/test/private-selectors.js +52 -0
  660. package/src/store/test/selectors.js +52 -54
  661. package/src/style.scss +3 -5
  662. package/src/utils/block-variation-transforms.js +1 -1
  663. package/src/utils/parse-css-unit-to-px.js +3 -1
  664. package/src/utils/test/parse-css-unit-to-px.js +16 -24
  665. package/src/utils/transform-styles/index.js +1 -6
  666. package/build/components/inner-blocks/get-block-context.js +0 -45
  667. package/build/components/inner-blocks/get-block-context.js.map +0 -1
  668. package/build/components/off-canvas-editor/block-edit-button.js +0 -50
  669. package/build/components/off-canvas-editor/block-edit-button.js.map +0 -1
  670. package/build-module/components/inner-blocks/get-block-context.js +0 -37
  671. package/build-module/components/inner-blocks/get-block-context.js.map +0 -1
  672. package/build-module/components/off-canvas-editor/block-edit-button.js +0 -35
  673. package/build-module/components/off-canvas-editor/block-edit-button.js.map +0 -1
  674. package/src/components/inner-blocks/get-block-context.js +0 -39
  675. package/src/components/off-canvas-editor/block-edit-button.js +0 -27
@@ -4,13 +4,16 @@
4
4
  import { render, screen } from '@testing-library/react';
5
5
  import userEvent from '@testing-library/user-event';
6
6
 
7
+ /**
8
+ * WordPress dependencies
9
+ */
10
+ import { useState } from '@wordpress/element';
11
+
7
12
  /**
8
13
  * Internal dependencies
9
14
  */
10
15
  import URLInputButton from '../button';
11
16
 
12
- jest.useFakeTimers();
13
-
14
17
  describe( 'URLInputButton', () => {
15
18
  it( 'should render a `Insert link` button and not be pressed when `url` is not provided', () => {
16
19
  render( <URLInputButton /> );
@@ -57,9 +60,7 @@ describe( 'URLInputButton', () => {
57
60
  } );
58
61
 
59
62
  it( 'should render a form when `Insert link` button is clicked', async () => {
60
- const user = userEvent.setup( {
61
- advanceTimers: jest.advanceTimersByTime,
62
- } );
63
+ const user = userEvent.setup();
63
64
  render( <URLInputButton /> );
64
65
 
65
66
  // Click the button to insert a link.
@@ -76,9 +77,7 @@ describe( 'URLInputButton', () => {
76
77
  } );
77
78
 
78
79
  it( 'should call `onChange` function once per each value change', async () => {
79
- const user = userEvent.setup( {
80
- advanceTimers: jest.advanceTimersByTime,
81
- } );
80
+ const user = userEvent.setup();
82
81
  const onChangeMock = jest.fn();
83
82
 
84
83
  render( <URLInputButton onChange={ onChangeMock } /> );
@@ -104,9 +103,7 @@ describe( 'URLInputButton', () => {
104
103
  } );
105
104
 
106
105
  it( 'should close the form when the user clicks the `Close` button', async () => {
107
- const user = userEvent.setup( {
108
- advanceTimers: jest.advanceTimersByTime,
109
- } );
106
+ const user = userEvent.setup();
110
107
 
111
108
  render( <URLInputButton /> );
112
109
 
@@ -135,12 +132,15 @@ describe( 'URLInputButton', () => {
135
132
  } );
136
133
 
137
134
  it( 'should close the form when user submits it', async () => {
138
- const user = userEvent.setup( {
139
- advanceTimers: jest.advanceTimersByTime,
140
- } );
141
- const onChangeMock = jest.fn();
135
+ const user = userEvent.setup();
142
136
 
143
- render( <URLInputButton onChange={ onChangeMock } /> );
137
+ function TestURLInputButton() {
138
+ // maintain state for the controlled component and process value changes
139
+ const [ url, setUrl ] = useState( '' );
140
+ return <URLInputButton url={ url } onChange={ setUrl } />;
141
+ }
142
+
143
+ render( <TestURLInputButton /> );
144
144
 
145
145
  // Click the button to insert a link.
146
146
  await user.click(
@@ -153,15 +153,15 @@ describe( 'URLInputButton', () => {
153
153
  // Type something into the URL field.
154
154
  await user.type( screen.getByRole( 'combobox' ), 'foo' );
155
155
 
156
+ const submitButton = screen.getByRole( 'button', {
157
+ name: 'Submit',
158
+ } );
159
+
160
+ expect( submitButton ).toBeInTheDocument();
161
+
156
162
  // Submit the form.
157
- await user.click(
158
- screen.getByRole( 'button', {
159
- name: 'Submit',
160
- } )
161
- );
163
+ await user.click( submitButton );
162
164
 
163
- expect(
164
- screen.queryByRole( 'button', { name: 'Submit' } )
165
- ).not.toBeInTheDocument();
165
+ expect( submitButton ).not.toBeInTheDocument();
166
166
  } );
167
167
  } );
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { map } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -17,6 +12,7 @@ import {
17
12
  TextControl,
18
13
  SVG,
19
14
  Path,
15
+ __experimentalVStack as VStack,
20
16
  } from '@wordpress/components';
21
17
  import { link as linkIcon, close } from '@wordpress/icons';
22
18
 
@@ -214,23 +210,26 @@ const ImageURLInputUI = ( {
214
210
  };
215
211
 
216
212
  const advancedOptions = (
217
- <>
213
+ <VStack spacing="3">
218
214
  <ToggleControl
215
+ __nextHasNoMarginBottom
219
216
  label={ __( 'Open in new tab' ) }
220
217
  onChange={ onSetNewTab }
221
218
  checked={ linkTarget === '_blank' }
222
219
  />
223
220
  <TextControl
221
+ __nextHasNoMarginBottom
224
222
  label={ __( 'Link rel' ) }
225
223
  value={ rel ?? '' }
226
224
  onChange={ onSetLinkRel }
227
225
  />
228
226
  <TextControl
227
+ __nextHasNoMarginBottom
229
228
  label={ __( 'Link CSS Class' ) }
230
229
  value={ linkClass || '' }
231
230
  onChange={ onSetLinkClass }
232
231
  />
233
- </>
232
+ </VStack>
234
233
  );
235
234
 
236
235
  const linkEditorValue = urlInput !== null ? urlInput : url;
@@ -260,7 +259,7 @@ const ImageURLInputUI = ( {
260
259
  additionalControls={
261
260
  ! linkEditorValue && (
262
261
  <NavigableMenu>
263
- { map( getLinkDestinations(), ( link ) => (
262
+ { getLinkDestinations().map( ( link ) => (
264
263
  <MenuItem
265
264
  key={ link.linkDestination }
266
265
  icon={ link.icon }
@@ -52,12 +52,6 @@
52
52
  transform: rotate(180deg);
53
53
  }
54
54
  }
55
- .block-editor-url-popover__input-container {
56
- .components-base-control:last-child,
57
- .components-base-control:last-child .components-base-control__field {
58
- margin-bottom: 0;
59
- }
60
- }
61
55
 
62
56
  .block-editor-url-popover__settings {
63
57
  display: block;
@@ -68,10 +62,6 @@
68
62
  .block-editor-url-popover__link-editor,
69
63
  .block-editor-url-popover__link-viewer {
70
64
  display: flex;
71
-
72
- .block-editor-url-input .components-base-control__field {
73
- margin-bottom: 0;
74
- }
75
65
  }
76
66
 
77
67
  .block-editor-url-popover__link-viewer-url {
@@ -34,7 +34,7 @@ import { store as blockEditorStore } from '../../store';
34
34
  * 1. Block's client id to extract it's current attributes.
35
35
  * 2. A block variation should have set `isActive` prop to a proper function.
36
36
  *
37
- * If for any reason a block variaton match cannot be found,
37
+ * If for any reason a block variation match cannot be found,
38
38
  * the returned information come from the Block Type.
39
39
  * If no blockType is found with the provided clientId, returns null.
40
40
  *
@@ -9,8 +9,6 @@ import userEvent from '@testing-library/user-event';
9
9
  */
10
10
  import Warning from '../index';
11
11
 
12
- jest.useFakeTimers();
13
-
14
12
  describe( 'Warning', () => {
15
13
  it( 'should match snapshot', () => {
16
14
  const { container } = render( <Warning>error</Warning> );
@@ -33,9 +31,7 @@ describe( 'Warning', () => {
33
31
  } );
34
32
 
35
33
  it( 'should show hidden secondary actions', async () => {
36
- const user = userEvent.setup( {
37
- advanceTimers: jest.advanceTimersByTime,
38
- } );
34
+ const user = userEvent.setup();
39
35
 
40
36
  render(
41
37
  <Warning secondaryActions={ [ { title: 'test', onClick: null } ] }>
package/src/content.scss CHANGED
@@ -1,11 +1,18 @@
1
+ @import "./components/block-icon/content.scss";
1
2
  @import "./components/block-list/content.scss";
2
3
  @import "./components/block-list-appender/content.scss";
3
4
  @import "./components/block-content-overlay/content.scss";
4
5
  @import "./components/block-draggable/content.scss";
5
6
  @import "./components/block-preview/content.scss";
7
+ @import "./components/block-variation-picker/content.scss";
6
8
  @import "./components/button-block-appender/content.scss";
7
9
  @import "./components/default-block-appender/content.scss";
8
10
  @import "./components/inner-blocks/content.scss";
9
11
  @import "./components/media-placeholder/content.scss";
10
12
  @import "./components/plain-text/content.scss";
11
13
  @import "./components/rich-text/content.scss";
14
+ @import "./components/warning/content.scss";
15
+
16
+ // To do: ideally the iframe does not contain UI, but there's still the block
17
+ // placeholders that will be moved to shadow DOM in the future.
18
+ @include wordpress-admin-schemes();
@@ -0,0 +1,27 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/experiments';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import * as globalStyles from './components/global-styles';
10
+ import { ExperimentalBlockEditorProvider } from './components/provider';
11
+ import OffCanvasEditor from './components/off-canvas-editor';
12
+
13
+ export const { lock, unlock } =
14
+ __dangerousOptInToUnstableAPIsOnlyForCoreModules(
15
+ 'I know using unstable features means my plugin or theme will inevitably break on the next WordPress release.',
16
+ '@wordpress/block-editor'
17
+ );
18
+
19
+ /**
20
+ * Experimental @wordpress/block-editor APIs.
21
+ */
22
+ export const experiments = {};
23
+ lock( experiments, {
24
+ ...globalStyles,
25
+ ExperimentalBlockEditorProvider,
26
+ OffCanvasEditor,
27
+ } );
@@ -0,0 +1,25 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/experiments';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import * as globalStyles from './components/global-styles';
10
+ import { ExperimentalBlockEditorProvider } from './components/provider';
11
+
12
+ export const { lock, unlock } =
13
+ __dangerousOptInToUnstableAPIsOnlyForCoreModules(
14
+ 'I know using unstable features means my plugin or theme will inevitably break on the next WordPress release.',
15
+ '@wordpress/block-editor'
16
+ );
17
+
18
+ /**
19
+ * Experimental @wordpress/block-editor APIs.
20
+ */
21
+ export const experiments = {};
22
+ lock( experiments, {
23
+ ...globalStyles,
24
+ ExperimentalBlockEditorProvider,
25
+ } );
@@ -68,6 +68,7 @@ export const withInspectorControl = createHigherOrderComponent(
68
68
  const isWeb = Platform.OS === 'web';
69
69
  const textControl = (
70
70
  <TextControl
71
+ __nextHasNoMarginBottom
71
72
  className="html-anchor-control"
72
73
  label={ __( 'HTML anchor' ) }
73
74
  help={
@@ -104,7 +105,7 @@ export const withInspectorControl = createHigherOrderComponent(
104
105
  <>
105
106
  <BlockEdit { ...props } />
106
107
  { isWeb && (
107
- <InspectorControls __experimentalGroup="advanced">
108
+ <InspectorControls group="advanced">
108
109
  { textControl }
109
110
  </InspectorControls>
110
111
  ) }
@@ -255,7 +255,7 @@ export function BorderPanel( props ) {
255
255
  const hydratedBorder = getBorderObject( attributes, colors );
256
256
 
257
257
  return (
258
- <InspectorControls __experimentalGroup="border">
258
+ <InspectorControls group="border">
259
259
  { ( isWidthSupported || isColorSupported ) && (
260
260
  <ToolsPanelItem
261
261
  hasValue={ () => hasBorderValue( props ) }
@@ -65,6 +65,7 @@ export function ChildLayoutEdit( {
65
65
  return (
66
66
  <>
67
67
  <ToggleGroupControl
68
+ __nextHasNoMarginBottom
68
69
  size={ '__unstable-large' }
69
70
  label={ childLayoutOrientation( parentLayout ) }
70
71
  value={ selfStretch || 'fit' }
@@ -134,9 +135,13 @@ export function hasChildLayoutSupport( {
134
135
  } ) {
135
136
  const {
136
137
  type: parentLayoutType = 'default',
138
+ default: { type: defaultParentLayoutType = 'default' } = {},
137
139
  allowSizingOnChildren = false,
138
140
  } = parentLayout;
139
- const support = parentLayoutType === 'flex' && allowSizingOnChildren;
141
+
142
+ const support =
143
+ ( defaultParentLayoutType === 'flex' || parentLayoutType === 'flex' ) &&
144
+ allowSizingOnChildren;
140
145
 
141
146
  return support;
142
147
  }
@@ -75,7 +75,7 @@ export default function ColorPanel( {
75
75
  const colorGradientSettings = useMultipleOriginColorsAndGradients();
76
76
 
77
77
  return (
78
- <InspectorControls __experimentalGroup="color">
78
+ <InspectorControls group="color">
79
79
  <ColorGradientSettingsDropdown
80
80
  enableAlpha={ enableAlpha }
81
81
  panelId={ clientId }
@@ -544,9 +544,9 @@ export const withColorPaletteStyles = createHigherOrderComponent(
544
544
  ( BlockListBlock ) => ( props ) => {
545
545
  const { name, attributes } = props;
546
546
  const { backgroundColor, textColor } = attributes;
547
- const userPalette = useSetting( 'color.palette.custom' ) || [];
548
- const themePalette = useSetting( 'color.palette.theme' ) || [];
549
- const defaultPalette = useSetting( 'color.palette.default' ) || [];
547
+ const userPalette = useSetting( 'color.palette.custom' );
548
+ const themePalette = useSetting( 'color.palette.theme' );
549
+ const defaultPalette = useSetting( 'color.palette.default' );
550
550
  const colors = useMemo(
551
551
  () => [
552
552
  ...( userPalette || [] ),
@@ -59,8 +59,9 @@ export const withInspectorControl = createHigherOrderComponent(
59
59
  return (
60
60
  <>
61
61
  <BlockEdit { ...props } />
62
- <InspectorControls __experimentalGroup="advanced">
62
+ <InspectorControls group="advanced">
63
63
  <TextControl
64
+ __nextHasNoMarginBottom
64
65
  autoComplete="off"
65
66
  label={ __( 'Additional CSS class(es)' ) }
66
67
  value={ props.attributes.className || '' }
@@ -59,6 +59,7 @@ import {
59
59
  } from './child-layout';
60
60
  import useSetting from '../components/use-setting';
61
61
  import { store as blockEditorStore } from '../store';
62
+ import { unlock } from '../experiments';
62
63
 
63
64
  export const DIMENSIONS_SUPPORT_KEY = 'dimensions';
64
65
  export const SPACING_SUPPORT_KEY = 'spacing';
@@ -67,10 +68,9 @@ export const AXIAL_SIDES = [ 'vertical', 'horizontal' ];
67
68
 
68
69
  function useVisualizerMouseOver() {
69
70
  const [ isMouseOver, setIsMouseOver ] = useState( false );
70
- const {
71
- __experimentalHideBlockInterface: hideBlockInterface,
72
- __experimentalShowBlockInterface: showBlockInterface,
73
- } = useDispatch( blockEditorStore );
71
+ const { hideBlockInterface, showBlockInterface } = unlock(
72
+ useDispatch( blockEditorStore )
73
+ );
74
74
  const onMouseOver = ( e ) => {
75
75
  e.stopPropagation();
76
76
  hideBlockInterface();
@@ -137,7 +137,7 @@ export function DimensionsPanel( props ) {
137
137
 
138
138
  return (
139
139
  <>
140
- <InspectorControls __experimentalGroup="dimensions">
140
+ <InspectorControls group="dimensions">
141
141
  { ! isPaddingDisabled && (
142
142
  <ToolsPanelItem
143
143
  className={ spacingClassnames }
@@ -301,7 +301,7 @@ const useIsDimensionsDisabled = ( props = {} ) => {
301
301
  * @param {string} blockName Block name.
302
302
  * @param {string} feature The feature custom sides relate to e.g. padding or margins.
303
303
  *
304
- * @return {?string[]} Strings representing the custom sides available.
304
+ * @return {string[] | undefined} Strings representing the custom sides available.
305
305
  */
306
306
  export function useCustomSides( blockName, feature ) {
307
307
  const support = getBlockSupport( blockName, SPACING_SUPPORT_KEY );
@@ -12,6 +12,10 @@
12
12
  }
13
13
  }
14
14
 
15
+ .block-editor-block-inspector .block-editor-hooks__layout-controls-unit-input {
16
+ margin-bottom: 0;
17
+ }
18
+
15
19
  .block-editor-hooks__layout-controls-reset {
16
20
  display: flex;
17
21
  justify-content: flex-end;
@@ -237,6 +237,7 @@ export function MarginVisualizer( { clientId, attributes, forceShow } ) {
237
237
  clientId={ clientId }
238
238
  __unstableCoverTarget
239
239
  __unstableRefreshSize={ margin }
240
+ __unstablePopoverSlot="block-toolbar"
240
241
  shift={ false }
241
242
  >
242
243
  <div className="block-editor__padding-visualizer" style={ style } />
@@ -226,6 +226,7 @@ export function PaddingVisualizer( { clientId, attributes, forceShow } ) {
226
226
  clientId={ clientId }
227
227
  __unstableCoverTarget
228
228
  __unstableRefreshSize={ padding }
229
+ __unstablePopoverSlot="block-toolbar"
229
230
  shift={ false }
230
231
  >
231
232
  <div className="block-editor__padding-visualizer" style={ style } />
@@ -10,6 +10,7 @@ import { __, sprintf } from '@wordpress/i18n';
10
10
  import { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';
11
11
  import { BaseControl, CustomSelectControl } from '@wordpress/components';
12
12
  import { createHigherOrderComponent, useInstanceId } from '@wordpress/compose';
13
+ import { useSelect } from '@wordpress/data';
13
14
  import {
14
15
  useContext,
15
16
  useMemo,
@@ -25,6 +26,7 @@ import BlockList from '../components/block-list';
25
26
  import useSetting from '../components/use-setting';
26
27
  import InspectorControls from '../components/inspector-controls';
27
28
  import { cleanEmptyObject } from './utils';
29
+ import { store as blockEditorStore } from '../store';
28
30
 
29
31
  const POSITION_SUPPORT_KEY = 'position';
30
32
 
@@ -196,15 +198,16 @@ export function useIsPositionDisabled( { name: blockName } = {} ) {
196
198
  }
197
199
 
198
200
  /*
199
- * Position controls to be rendered in an inspector control panel.
201
+ * Position controls rendered in an inspector control panel.
200
202
  *
201
203
  * @param {Object} props
202
204
  *
203
- * @return {WPElement} Padding edit element.
205
+ * @return {WPElement} Position panel.
204
206
  */
205
- export function PositionEdit( props ) {
207
+ export function PositionPanel( props ) {
206
208
  const {
207
209
  attributes: { style = {} },
210
+ clientId,
208
211
  name: blockName,
209
212
  setAttributes,
210
213
  } = props;
@@ -213,16 +216,32 @@ export function PositionEdit( props ) {
213
216
  const allowSticky = hasStickyPositionSupport( blockName );
214
217
  const value = style?.position?.type;
215
218
 
219
+ const { hasParents } = useSelect(
220
+ ( select ) => {
221
+ const { getBlockParents } = select( blockEditorStore );
222
+ const parents = getBlockParents( clientId );
223
+ return {
224
+ hasParents: parents.length,
225
+ };
226
+ },
227
+ [ clientId ]
228
+ );
229
+
216
230
  const options = useMemo( () => {
217
231
  const availableOptions = [ DEFAULT_OPTION ];
218
- if ( allowSticky || value === STICKY_OPTION.value ) {
232
+ // Only display sticky option if the block has no parents (is at the root of the document),
233
+ // or if the block already has a sticky position value set.
234
+ if (
235
+ ( allowSticky && ! hasParents ) ||
236
+ value === STICKY_OPTION.value
237
+ ) {
219
238
  availableOptions.push( STICKY_OPTION );
220
239
  }
221
240
  if ( allowFixed || value === FIXED_OPTION.value ) {
222
241
  availableOptions.push( FIXED_OPTION );
223
242
  }
224
243
  return availableOptions;
225
- }, [ allowFixed, allowSticky, value ] );
244
+ }, [ allowFixed, allowSticky, hasParents, value ] );
226
245
 
227
246
  const onChangeType = ( next ) => {
228
247
  // For now, use a hard-coded `0px` value for the position.
@@ -251,32 +270,34 @@ export function PositionEdit( props ) {
251
270
  ? options.find( ( option ) => option.value === value ) || DEFAULT_OPTION
252
271
  : DEFAULT_OPTION;
253
272
 
273
+ // Only display position controls if there is at least one option to choose from.
254
274
  return Platform.select( {
255
- web: (
256
- <>
257
- <BaseControl className="block-editor-hooks__position-selection">
258
- <CustomSelectControl
259
- __nextUnconstrainedWidth
260
- __next36pxDefaultSize
261
- className="block-editor-hooks__position-selection__select-control"
262
- label={ __( 'Position' ) }
263
- hideLabelFromVision
264
- describedBy={ sprintf(
265
- // translators: %s: Currently selected font size.
266
- __( 'Currently selected position: %s' ),
267
- selectedOption.name
268
- ) }
269
- options={ options }
270
- value={ selectedOption }
271
- __experimentalShowSelectedHint
272
- onChange={ ( { selectedItem } ) => {
273
- onChangeType( selectedItem.value );
274
- } }
275
- size={ '__unstable-large' }
276
- />
277
- </BaseControl>
278
- </>
279
- ),
275
+ web:
276
+ options.length > 1 ? (
277
+ <InspectorControls group="position">
278
+ <BaseControl className="block-editor-hooks__position-selection">
279
+ <CustomSelectControl
280
+ __nextUnconstrainedWidth
281
+ __next36pxDefaultSize
282
+ className="block-editor-hooks__position-selection__select-control"
283
+ label={ __( 'Position' ) }
284
+ hideLabelFromVision
285
+ describedBy={ sprintf(
286
+ // translators: %s: Currently selected position.
287
+ __( 'Currently selected position: %s' ),
288
+ selectedOption.name
289
+ ) }
290
+ options={ options }
291
+ value={ selectedOption }
292
+ __experimentalShowSelectedHint
293
+ onChange={ ( { selectedItem } ) => {
294
+ onChangeType( selectedItem.value );
295
+ } }
296
+ size={ '__unstable-large' }
297
+ />
298
+ </BaseControl>
299
+ </InspectorControls>
300
+ ) : null,
280
301
  native: null,
281
302
  } );
282
303
  }
@@ -300,12 +321,7 @@ export const withInspectorControls = createHigherOrderComponent(
300
321
 
301
322
  return [
302
323
  showPositionControls && (
303
- <InspectorControls
304
- key="position"
305
- __experimentalGroup="position"
306
- >
307
- <PositionEdit { ...props } />
308
- </InspectorControls>
324
+ <PositionPanel key="position" { ...props } />
309
325
  ),
310
326
  <BlockEdit key="edit" { ...props } />,
311
327
  ];
@@ -349,6 +365,10 @@ export const withPositionStyles = createHigherOrderComponent(
349
365
  // Attach a `wp-container-` id-based class name.
350
366
  const className = classnames( props?.className, {
351
367
  [ `wp-container-${ id }` ]: allowPositionStyles && !! css, // Only attach a container class if there is generated CSS to be attached.
368
+ [ `is-position-${ attributes?.style?.position?.type }` ]:
369
+ allowPositionStyles &&
370
+ !! css &&
371
+ !! attributes?.style?.position?.type,
352
372
  } );
353
373
 
354
374
  return (
@@ -83,7 +83,7 @@ describe( 'Align options', () => {
83
83
  expect( paragraphBlock ).toBeVisible();
84
84
 
85
85
  // Open alignments menu
86
- const alignmentButtons = getByLabelText( 'Align' );
86
+ const alignmentButtons = getByLabelText( 'Align text' );
87
87
  fireEvent.press( alignmentButtons );
88
88
 
89
89
  // Select alignment option.