@wordpress/block-editor 11.2.0 → 11.3.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 (660) 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-alignment-matrix-control/index.js +2 -2
  8. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  9. package/build/components/block-card/index.js +2 -4
  10. package/build/components/block-card/index.js.map +1 -1
  11. package/build/components/block-edit/index.js +8 -0
  12. package/build/components/block-edit/index.js.map +1 -1
  13. package/build/components/block-inspector/index.js +15 -14
  14. package/build/components/block-inspector/index.js.map +1 -1
  15. package/build/components/block-list/use-in-between-inserter.js +5 -0
  16. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  17. package/build/components/block-lock/modal.js +0 -1
  18. package/build/components/block-lock/modal.js.map +1 -1
  19. package/build/components/block-mover/mover-description.js +2 -2
  20. package/build/components/block-mover/mover-description.js.map +1 -1
  21. package/build/components/block-navigation/dropdown.js +3 -1
  22. package/build/components/block-navigation/dropdown.js.map +1 -1
  23. package/build/components/block-pattern-setup/index.js +1 -1
  24. package/build/components/block-pattern-setup/index.js.map +1 -1
  25. package/build/components/block-pattern-setup/use-patterns-setup.js +2 -2
  26. package/build/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  27. package/build/components/block-patterns-list/index.js +31 -3
  28. package/build/components/block-patterns-list/index.js.map +1 -1
  29. package/build/components/block-preview/auto.js +9 -11
  30. package/build/components/block-preview/auto.js.map +1 -1
  31. package/build/components/block-preview/index.js +32 -8
  32. package/build/components/block-preview/index.js.map +1 -1
  33. package/build/components/block-selection-clearer/index.js +1 -1
  34. package/build/components/block-selection-clearer/index.js.map +1 -1
  35. package/build/components/block-settings/container.native.js +7 -33
  36. package/build/components/block-settings/container.native.js.map +1 -1
  37. package/build/components/block-settings-menu/block-settings-dropdown.js +12 -6
  38. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  39. package/build/components/block-settings-menu-controls/index.js +2 -8
  40. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  41. package/build/components/block-switcher/utils.js +1 -1
  42. package/build/components/block-switcher/utils.js.map +1 -1
  43. package/build/components/block-tools/selected-block-popover.js +55 -47
  44. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  45. package/build/components/block-vertical-alignment-control/icons.js +15 -1
  46. package/build/components/block-vertical-alignment-control/icons.js.map +1 -1
  47. package/build/components/block-vertical-alignment-control/ui.js +9 -4
  48. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  49. package/build/components/color-style-selector/index.js +3 -1
  50. package/build/components/color-style-selector/index.js.map +1 -1
  51. package/build/components/date-format-picker/index.js +3 -4
  52. package/build/components/date-format-picker/index.js.map +1 -1
  53. package/build/components/font-family/index.js +1 -7
  54. package/build/components/font-family/index.js.map +1 -1
  55. package/build/components/font-sizes/fluid-utils.js +1 -1
  56. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  57. package/build/components/font-sizes/utils.js +1 -1
  58. package/build/components/font-sizes/utils.js.map +1 -1
  59. package/build/components/global-styles/context.js +22 -0
  60. package/build/components/global-styles/context.js.map +1 -0
  61. package/build/components/global-styles/hooks.js +142 -0
  62. package/build/components/global-styles/hooks.js.map +1 -0
  63. package/build/components/global-styles/index.js +42 -0
  64. package/build/components/global-styles/index.js.map +1 -0
  65. package/build/components/global-styles/typography-utils.js +92 -0
  66. package/build/components/global-styles/typography-utils.js.map +1 -0
  67. package/build/components/global-styles/use-global-styles-output.js +974 -0
  68. package/build/components/global-styles/use-global-styles-output.js.map +1 -0
  69. package/build/components/global-styles/utils.js +340 -0
  70. package/build/components/global-styles/utils.js.map +1 -0
  71. package/build/components/height-control/index.js +13 -1
  72. package/build/components/height-control/index.js.map +1 -1
  73. package/build/components/image-editor/constants.js +1 -1
  74. package/build/components/image-editor/constants.js.map +1 -1
  75. package/build/components/image-editor/context.js +1 -2
  76. package/build/components/image-editor/context.js.map +1 -1
  77. package/build/components/image-editor/cropper.js +3 -1
  78. package/build/components/image-editor/cropper.js.map +1 -1
  79. package/build/components/image-editor/index.js +13 -9
  80. package/build/components/image-editor/index.js.map +1 -1
  81. package/build/components/image-editor/use-transform-image.js +11 -35
  82. package/build/components/image-editor/use-transform-image.js.map +1 -1
  83. package/build/components/image-size-control/index.js +1 -7
  84. package/build/components/image-size-control/index.js.map +1 -1
  85. package/build/components/index.js +8 -24
  86. package/build/components/index.js.map +1 -1
  87. package/build/components/inner-blocks/index.js +22 -32
  88. package/build/components/inner-blocks/index.js.map +1 -1
  89. package/build/components/inner-blocks/index.native.js +8 -23
  90. package/build/components/inner-blocks/index.native.js.map +1 -1
  91. package/build/components/inner-blocks/use-block-context.js +53 -0
  92. package/build/components/inner-blocks/use-block-context.js.map +1 -0
  93. package/build/components/inserter/block-patterns-explorer/explorer.js +0 -1
  94. package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  95. package/build/components/inserter/block-patterns-tab.js +7 -1
  96. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  97. package/build/components/inserter/block-types-tab.js +2 -2
  98. package/build/components/inserter/block-types-tab.js.map +1 -1
  99. package/build/components/inserter/hooks/use-patterns-state.js +1 -7
  100. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  101. package/build/components/inserter/index.js +5 -4
  102. package/build/components/inserter/index.js.map +1 -1
  103. package/build/components/inserter/media-tab/hooks.js +142 -56
  104. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  105. package/build/components/inserter/media-tab/media-list.js +74 -21
  106. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  107. package/build/components/inserter/media-tab/media-panel.js +11 -13
  108. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  109. package/build/components/inserter/media-tab/media-tab.js +6 -3
  110. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  111. package/build/components/inserter/media-tab/utils.js +26 -15
  112. package/build/components/inserter/media-tab/utils.js.map +1 -1
  113. package/build/components/inserter/menu.js +1 -0
  114. package/build/components/inserter/menu.js.map +1 -1
  115. package/build/components/inserter/preview-panel.js +5 -3
  116. package/build/components/inserter/preview-panel.js.map +1 -1
  117. package/build/components/inserter/search-results.js +2 -7
  118. package/build/components/inserter/search-results.js.map +1 -1
  119. package/build/components/inserter-list-item/index.js +1 -9
  120. package/build/components/inserter-list-item/index.js.map +1 -1
  121. package/build/components/inspector-controls/fill.js +15 -2
  122. package/build/components/inspector-controls/fill.js.map +1 -1
  123. package/build/components/inspector-controls/fill.native.js +14 -1
  124. package/build/components/inspector-controls/fill.native.js.map +1 -1
  125. package/build/components/inspector-controls/groups.js +4 -0
  126. package/build/components/inspector-controls/groups.js.map +1 -1
  127. package/build/components/inspector-controls/index.js +2 -2
  128. package/build/components/inspector-controls/index.js.map +1 -1
  129. package/build/components/inspector-controls/slot.js +14 -1
  130. package/build/components/inspector-controls/slot.js.map +1 -1
  131. package/build/components/inspector-controls/slot.native.js +14 -1
  132. package/build/components/inspector-controls/slot.native.js.map +1 -1
  133. package/build/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
  134. package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
  135. package/build/components/inspector-controls-tabs/index.js +2 -2
  136. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  137. package/build/components/inspector-controls-tabs/position-controls-panel.js +1 -1
  138. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  139. package/build/components/inspector-controls-tabs/styles-tab.js +6 -4
  140. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  141. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +17 -12
  142. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  143. package/build/components/justify-content-control/ui.js +8 -1
  144. package/build/components/justify-content-control/ui.js.map +1 -1
  145. package/build/components/link-control/index.js +45 -17
  146. package/build/components/link-control/index.js.map +1 -1
  147. package/build/components/list-view/block.js +1 -1
  148. package/build/components/list-view/block.js.map +1 -1
  149. package/build/components/list-view/use-list-view-drop-zone.js +1 -1
  150. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  151. package/build/components/media-upload/index.native.js +4 -1
  152. package/build/components/media-upload/index.native.js.map +1 -1
  153. package/build/components/off-canvas-editor/appender.js +50 -3
  154. package/build/components/off-canvas-editor/appender.js.map +1 -1
  155. package/build/components/off-canvas-editor/block-select-button.js +10 -4
  156. package/build/components/off-canvas-editor/block-select-button.js.map +1 -1
  157. package/build/components/off-canvas-editor/block.js +6 -27
  158. package/build/components/off-canvas-editor/block.js.map +1 -1
  159. package/build/components/off-canvas-editor/branch.js +25 -10
  160. package/build/components/off-canvas-editor/branch.js.map +1 -1
  161. package/build/components/off-canvas-editor/index.js +11 -16
  162. package/build/components/off-canvas-editor/index.js.map +1 -1
  163. package/build/components/off-canvas-editor/link-ui.js +2 -2
  164. package/build/components/off-canvas-editor/link-ui.js.map +1 -1
  165. package/build/components/off-canvas-editor/use-list-view-drop-zone.js +1 -1
  166. package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -1
  167. package/build/components/provider/index.js +21 -9
  168. package/build/components/provider/index.js.map +1 -1
  169. package/build/components/provider/index.native.js +5 -6
  170. package/build/components/provider/index.native.js.map +1 -1
  171. package/build/components/rich-text/use-before-input-rules.js +11 -3
  172. package/build/components/rich-text/use-before-input-rules.js.map +1 -1
  173. package/build/components/rich-text/utils.js +1 -1
  174. package/build/components/rich-text/utils.js.map +1 -1
  175. package/build/components/spacing-sizes-control/utils.js +2 -8
  176. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  177. package/build/components/tool-selector/index.js +3 -1
  178. package/build/components/tool-selector/index.js.map +1 -1
  179. package/build/components/url-popover/image-url-input-ui.js +7 -8
  180. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  181. package/build/components/use-block-display-information/index.js +1 -1
  182. package/build/components/use-block-display-information/index.js.map +1 -1
  183. package/build/experiments.js +45 -0
  184. package/build/experiments.js.map +1 -0
  185. package/build/experiments.native.js +40 -0
  186. package/build/experiments.native.js.map +1 -0
  187. package/build/hooks/anchor.js +2 -1
  188. package/build/hooks/anchor.js.map +1 -1
  189. package/build/hooks/border.js +1 -1
  190. package/build/hooks/border.js.map +1 -1
  191. package/build/hooks/child-layout.js +5 -1
  192. package/build/hooks/child-layout.js.map +1 -1
  193. package/build/hooks/color-panel.js +1 -1
  194. package/build/hooks/color-panel.js.map +1 -1
  195. package/build/hooks/color.js +3 -3
  196. package/build/hooks/color.js.map +1 -1
  197. package/build/hooks/custom-class-name.js +2 -1
  198. package/build/hooks/custom-class-name.js.map +1 -1
  199. package/build/hooks/dimensions.js +7 -5
  200. package/build/hooks/dimensions.js.map +1 -1
  201. package/build/hooks/margin.js +1 -0
  202. package/build/hooks/margin.js.map +1 -1
  203. package/build/hooks/padding.js +1 -0
  204. package/build/hooks/padding.js.map +1 -1
  205. package/build/hooks/position.js +34 -15
  206. package/build/hooks/position.js.map +1 -1
  207. package/build/hooks/typography.js +1 -1
  208. package/build/hooks/typography.js.map +1 -1
  209. package/build/hooks/use-color-props.js +3 -3
  210. package/build/hooks/use-color-props.js.map +1 -1
  211. package/build/hooks/utils.js +69 -3
  212. package/build/hooks/utils.js.map +1 -1
  213. package/build/index.js +10 -1
  214. package/build/index.js.map +1 -1
  215. package/build/layouts/constrained.js +3 -0
  216. package/build/layouts/constrained.js.map +1 -1
  217. package/build/layouts/flex.js +59 -9
  218. package/build/layouts/flex.js.map +1 -1
  219. package/build/layouts/flow.js +0 -18
  220. package/build/layouts/flow.js.map +1 -1
  221. package/build/store/actions.js +3 -30
  222. package/build/store/actions.js.map +1 -1
  223. package/build/store/defaults.js +5 -2
  224. package/build/store/defaults.js.map +1 -1
  225. package/build/store/index.js +11 -2
  226. package/build/store/index.js.map +1 -1
  227. package/build/store/private-actions.js +78 -0
  228. package/build/store/private-actions.js.map +1 -0
  229. package/build/store/private-selectors.js +18 -0
  230. package/build/store/private-selectors.js.map +1 -0
  231. package/build/store/reducer.js +1 -1
  232. package/build/store/reducer.js.map +1 -1
  233. package/build/store/selectors.js +60 -34
  234. package/build/store/selectors.js.map +1 -1
  235. package/build/utils/block-variation-transforms.js +1 -1
  236. package/build/utils/block-variation-transforms.js.map +1 -1
  237. package/build/utils/parse-css-unit-to-px.js +1 -1
  238. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  239. package/build/utils/transform-styles/index.js +1 -7
  240. package/build/utils/transform-styles/index.js.map +1 -1
  241. package/build-module/components/alignment-control/ui.js +1 -1
  242. package/build-module/components/alignment-control/ui.js.map +1 -1
  243. package/build-module/components/autocomplete/index.js +2 -6
  244. package/build-module/components/autocomplete/index.js.map +1 -1
  245. package/build-module/components/block-alignment-matrix-control/index.js +2 -2
  246. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  247. package/build-module/components/block-card/index.js +2 -4
  248. package/build-module/components/block-card/index.js.map +1 -1
  249. package/build-module/components/block-edit/index.js +7 -0
  250. package/build-module/components/block-edit/index.js.map +1 -1
  251. package/build-module/components/block-inspector/index.js +15 -14
  252. package/build-module/components/block-inspector/index.js.map +1 -1
  253. package/build-module/components/block-list/use-in-between-inserter.js +5 -0
  254. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  255. package/build-module/components/block-lock/modal.js +0 -1
  256. package/build-module/components/block-lock/modal.js.map +1 -1
  257. package/build-module/components/block-mover/mover-description.js +2 -2
  258. package/build-module/components/block-mover/mover-description.js.map +1 -1
  259. package/build-module/components/block-navigation/dropdown.js +3 -1
  260. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  261. package/build-module/components/block-pattern-setup/index.js +1 -1
  262. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  263. package/build-module/components/block-pattern-setup/use-patterns-setup.js +2 -2
  264. package/build-module/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  265. package/build-module/components/block-patterns-list/index.js +32 -3
  266. package/build-module/components/block-patterns-list/index.js.map +1 -1
  267. package/build-module/components/block-preview/auto.js +9 -11
  268. package/build-module/components/block-preview/auto.js.map +1 -1
  269. package/build-module/components/block-preview/index.js +31 -8
  270. package/build-module/components/block-preview/index.js.map +1 -1
  271. package/build-module/components/block-selection-clearer/index.js +1 -1
  272. package/build-module/components/block-selection-clearer/index.js.map +1 -1
  273. package/build-module/components/block-settings/container.native.js +6 -30
  274. package/build-module/components/block-settings/container.native.js.map +1 -1
  275. package/build-module/components/block-settings-menu/block-settings-dropdown.js +12 -6
  276. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  277. package/build-module/components/block-settings-menu-controls/index.js +2 -7
  278. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  279. package/build-module/components/block-switcher/utils.js +1 -1
  280. package/build-module/components/block-switcher/utils.js.map +1 -1
  281. package/build-module/components/block-tools/selected-block-popover.js +55 -48
  282. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  283. package/build-module/components/block-vertical-alignment-control/icons.js +12 -0
  284. package/build-module/components/block-vertical-alignment-control/icons.js.map +1 -1
  285. package/build-module/components/block-vertical-alignment-control/ui.js +10 -5
  286. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  287. package/build-module/components/color-style-selector/index.js +3 -1
  288. package/build-module/components/color-style-selector/index.js.map +1 -1
  289. package/build-module/components/date-format-picker/index.js +4 -5
  290. package/build-module/components/date-format-picker/index.js.map +1 -1
  291. package/build-module/components/font-family/index.js +1 -6
  292. package/build-module/components/font-family/index.js.map +1 -1
  293. package/build-module/components/font-sizes/fluid-utils.js +1 -1
  294. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  295. package/build-module/components/font-sizes/utils.js +1 -1
  296. package/build-module/components/font-sizes/utils.js.map +1 -1
  297. package/build-module/components/global-styles/context.js +12 -0
  298. package/build-module/components/global-styles/context.js.map +1 -0
  299. package/build-module/components/global-styles/hooks.js +121 -0
  300. package/build-module/components/global-styles/hooks.js.map +1 -0
  301. package/build-module/components/global-styles/index.js +4 -0
  302. package/build-module/components/global-styles/index.js.map +1 -0
  303. package/build-module/components/global-styles/typography-utils.js +84 -0
  304. package/build-module/components/global-styles/typography-utils.js.map +1 -0
  305. package/build-module/components/global-styles/use-global-styles-output.js +930 -0
  306. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -0
  307. package/build-module/components/global-styles/utils.js +321 -0
  308. package/build-module/components/global-styles/utils.js.map +1 -0
  309. package/build-module/components/height-control/index.js +14 -1
  310. package/build-module/components/height-control/index.js.map +1 -1
  311. package/build-module/components/image-editor/constants.js +1 -1
  312. package/build-module/components/image-editor/constants.js.map +1 -1
  313. package/build-module/components/image-editor/context.js +1 -2
  314. package/build-module/components/image-editor/context.js.map +1 -1
  315. package/build-module/components/image-editor/cropper.js +3 -1
  316. package/build-module/components/image-editor/cropper.js.map +1 -1
  317. package/build-module/components/image-editor/index.js +13 -3
  318. package/build-module/components/image-editor/index.js.map +1 -1
  319. package/build-module/components/image-editor/use-transform-image.js +12 -37
  320. package/build-module/components/image-editor/use-transform-image.js.map +1 -1
  321. package/build-module/components/image-size-control/index.js +1 -6
  322. package/build-module/components/image-size-control/index.js.map +1 -1
  323. package/build-module/components/index.js +2 -3
  324. package/build-module/components/index.js.map +1 -1
  325. package/build-module/components/inner-blocks/index.js +21 -32
  326. package/build-module/components/inner-blocks/index.js.map +1 -1
  327. package/build-module/components/inner-blocks/index.native.js +9 -22
  328. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  329. package/build-module/components/inner-blocks/use-block-context.js +43 -0
  330. package/build-module/components/inner-blocks/use-block-context.js.map +1 -0
  331. package/build-module/components/inserter/block-patterns-explorer/explorer.js +0 -1
  332. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  333. package/build-module/components/inserter/block-patterns-tab.js +7 -1
  334. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  335. package/build-module/components/inserter/block-types-tab.js +3 -3
  336. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  337. package/build-module/components/inserter/hooks/use-patterns-state.js +1 -6
  338. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  339. package/build-module/components/inserter/index.js +5 -4
  340. package/build-module/components/inserter/index.js.map +1 -1
  341. package/build-module/components/inserter/media-tab/hooks.js +145 -56
  342. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  343. package/build-module/components/inserter/media-tab/media-list.js +74 -24
  344. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  345. package/build-module/components/inserter/media-tab/media-panel.js +14 -14
  346. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  347. package/build-module/components/inserter/media-tab/media-tab.js +7 -4
  348. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  349. package/build-module/components/inserter/media-tab/utils.js +27 -15
  350. package/build-module/components/inserter/media-tab/utils.js.map +1 -1
  351. package/build-module/components/inserter/menu.js +1 -0
  352. package/build-module/components/inserter/menu.js.map +1 -1
  353. package/build-module/components/inserter/preview-panel.js +5 -3
  354. package/build-module/components/inserter/preview-panel.js.map +1 -1
  355. package/build-module/components/inserter/search-results.js +2 -6
  356. package/build-module/components/inserter/search-results.js.map +1 -1
  357. package/build-module/components/inserter-list-item/index.js +1 -9
  358. package/build-module/components/inserter-list-item/index.js.map +1 -1
  359. package/build-module/components/inspector-controls/fill.js +14 -2
  360. package/build-module/components/inspector-controls/fill.js.map +1 -1
  361. package/build-module/components/inspector-controls/fill.native.js +13 -1
  362. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  363. package/build-module/components/inspector-controls/groups.js +4 -0
  364. package/build-module/components/inspector-controls/groups.js.map +1 -1
  365. package/build-module/components/inspector-controls/index.js +2 -2
  366. package/build-module/components/inspector-controls/index.js.map +1 -1
  367. package/build-module/components/inspector-controls/slot.js +13 -1
  368. package/build-module/components/inspector-controls/slot.js.map +1 -1
  369. package/build-module/components/inspector-controls/slot.native.js +13 -1
  370. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  371. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
  372. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
  373. package/build-module/components/inspector-controls-tabs/index.js +2 -2
  374. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  375. package/build-module/components/inspector-controls-tabs/position-controls-panel.js +1 -1
  376. package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  377. package/build-module/components/inspector-controls-tabs/styles-tab.js +6 -4
  378. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  379. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +17 -12
  380. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  381. package/build-module/components/justify-content-control/ui.js +9 -2
  382. package/build-module/components/justify-content-control/ui.js.map +1 -1
  383. package/build-module/components/link-control/index.js +45 -16
  384. package/build-module/components/link-control/index.js.map +1 -1
  385. package/build-module/components/list-view/block.js +1 -1
  386. package/build-module/components/list-view/block.js.map +1 -1
  387. package/build-module/components/list-view/use-list-view-drop-zone.js +1 -1
  388. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  389. package/build-module/components/media-upload/index.native.js +4 -1
  390. package/build-module/components/media-upload/index.native.js.map +1 -1
  391. package/build-module/components/off-canvas-editor/appender.js +47 -4
  392. package/build-module/components/off-canvas-editor/appender.js.map +1 -1
  393. package/build-module/components/off-canvas-editor/block-select-button.js +9 -4
  394. package/build-module/components/off-canvas-editor/block-select-button.js.map +1 -1
  395. package/build-module/components/off-canvas-editor/block.js +6 -25
  396. package/build-module/components/off-canvas-editor/block.js.map +1 -1
  397. package/build-module/components/off-canvas-editor/branch.js +23 -11
  398. package/build-module/components/off-canvas-editor/branch.js.map +1 -1
  399. package/build-module/components/off-canvas-editor/index.js +11 -15
  400. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  401. package/build-module/components/off-canvas-editor/link-ui.js +2 -2
  402. package/build-module/components/off-canvas-editor/link-ui.js.map +1 -1
  403. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +1 -1
  404. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -1
  405. package/build-module/components/provider/index.js +16 -9
  406. package/build-module/components/provider/index.js.map +1 -1
  407. package/build-module/components/provider/index.native.js +4 -4
  408. package/build-module/components/provider/index.native.js.map +1 -1
  409. package/build-module/components/rich-text/use-before-input-rules.js +10 -2
  410. package/build-module/components/rich-text/use-before-input-rules.js.map +1 -1
  411. package/build-module/components/rich-text/utils.js +1 -1
  412. package/build-module/components/rich-text/utils.js.map +1 -1
  413. package/build-module/components/spacing-sizes-control/utils.js +2 -7
  414. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  415. package/build-module/components/tool-selector/index.js +3 -1
  416. package/build-module/components/tool-selector/index.js.map +1 -1
  417. package/build-module/components/url-popover/image-url-input-ui.js +8 -8
  418. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  419. package/build-module/components/use-block-display-information/index.js +1 -1
  420. package/build-module/components/use-block-display-information/index.js.map +1 -1
  421. package/build-module/experiments.js +25 -0
  422. package/build-module/experiments.js.map +1 -0
  423. package/build-module/experiments.native.js +23 -0
  424. package/build-module/experiments.native.js.map +1 -0
  425. package/build-module/hooks/anchor.js +2 -1
  426. package/build-module/hooks/anchor.js.map +1 -1
  427. package/build-module/hooks/border.js +1 -1
  428. package/build-module/hooks/border.js.map +1 -1
  429. package/build-module/hooks/child-layout.js +5 -1
  430. package/build-module/hooks/child-layout.js.map +1 -1
  431. package/build-module/hooks/color-panel.js +1 -1
  432. package/build-module/hooks/color-panel.js.map +1 -1
  433. package/build-module/hooks/color.js +3 -3
  434. package/build-module/hooks/color.js.map +1 -1
  435. package/build-module/hooks/custom-class-name.js +2 -1
  436. package/build-module/hooks/custom-class-name.js.map +1 -1
  437. package/build-module/hooks/dimensions.js +6 -5
  438. package/build-module/hooks/dimensions.js.map +1 -1
  439. package/build-module/hooks/margin.js +1 -0
  440. package/build-module/hooks/margin.js.map +1 -1
  441. package/build-module/hooks/padding.js +1 -0
  442. package/build-module/hooks/padding.js.map +1 -1
  443. package/build-module/hooks/position.js +31 -14
  444. package/build-module/hooks/position.js.map +1 -1
  445. package/build-module/hooks/typography.js +1 -1
  446. package/build-module/hooks/typography.js.map +1 -1
  447. package/build-module/hooks/use-color-props.js +3 -3
  448. package/build-module/hooks/use-color-props.js.map +1 -1
  449. package/build-module/hooks/utils.js +70 -4
  450. package/build-module/hooks/utils.js.map +1 -1
  451. package/build-module/index.js +1 -0
  452. package/build-module/index.js.map +1 -1
  453. package/build-module/layouts/constrained.js +3 -0
  454. package/build-module/layouts/constrained.js.map +1 -1
  455. package/build-module/layouts/flex.js +60 -10
  456. package/build-module/layouts/flex.js.map +1 -1
  457. package/build-module/layouts/flow.js +0 -18
  458. package/build-module/layouts/flow.js.map +1 -1
  459. package/build-module/store/actions.js +2 -26
  460. package/build-module/store/actions.js.map +1 -1
  461. package/build-module/store/defaults.js +5 -2
  462. package/build-module/store/defaults.js.map +1 -1
  463. package/build-module/store/index.js +8 -2
  464. package/build-module/store/index.js.map +1 -1
  465. package/build-module/store/private-actions.js +66 -0
  466. package/build-module/store/private-actions.js.map +1 -0
  467. package/build-module/store/private-selectors.js +11 -0
  468. package/build-module/store/private-selectors.js.map +1 -0
  469. package/build-module/store/reducer.js +1 -1
  470. package/build-module/store/reducer.js.map +1 -1
  471. package/build-module/store/selectors.js +48 -25
  472. package/build-module/store/selectors.js.map +1 -1
  473. package/build-module/utils/block-variation-transforms.js +1 -1
  474. package/build-module/utils/block-variation-transforms.js.map +1 -1
  475. package/build-module/utils/parse-css-unit-to-px.js +1 -1
  476. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  477. package/build-module/utils/transform-styles/index.js +1 -6
  478. package/build-module/utils/transform-styles/index.js.map +1 -1
  479. package/build-style/content-rtl.css +283 -3
  480. package/build-style/content.css +283 -3
  481. package/build-style/style-rtl.css +105 -221
  482. package/build-style/style.css +105 -221
  483. package/package.json +30 -29
  484. package/src/components/alignment-control/test/__snapshots__/index.js.snap +3 -3
  485. package/src/components/alignment-control/test/index.js +5 -15
  486. package/src/components/alignment-control/ui.js +1 -1
  487. package/src/components/autocomplete/index.js +3 -6
  488. package/src/components/block-alignment-control/test/index.js +3 -11
  489. package/src/components/block-alignment-matrix-control/index.js +1 -2
  490. package/src/components/block-card/index.js +1 -4
  491. package/src/components/block-content-overlay/content.scss +4 -4
  492. package/src/components/block-edit/index.js +15 -1
  493. package/src/components/block-icon/content.scss +31 -0
  494. package/src/components/block-inspector/index.js +13 -17
  495. package/src/components/block-list/use-in-between-inserter.js +5 -0
  496. package/src/components/block-lock/modal.js +0 -1
  497. package/src/components/block-mover/mover-description.js +2 -2
  498. package/src/components/block-mover/stories/index.js +3 -3
  499. package/src/components/block-navigation/dropdown.js +1 -1
  500. package/src/components/block-pattern-setup/index.js +1 -4
  501. package/src/components/block-pattern-setup/use-patterns-setup.js +2 -5
  502. package/src/components/block-patterns-list/index.js +29 -3
  503. package/src/components/block-preview/README.md +9 -9
  504. package/src/components/block-preview/auto.js +9 -11
  505. package/src/components/block-preview/content.scss +23 -0
  506. package/src/components/block-preview/index.js +40 -10
  507. package/src/components/block-preview/style.scss +0 -23
  508. package/src/components/block-selection-clearer/index.js +1 -1
  509. package/src/components/block-selection-clearer/test/index.js +6 -6
  510. package/src/components/block-settings/container.native.js +7 -26
  511. package/src/components/block-settings-menu/block-settings-dropdown.js +13 -5
  512. package/src/components/block-settings-menu-controls/index.js +2 -10
  513. package/src/components/block-switcher/test/index.js +43 -44
  514. package/src/components/block-switcher/utils.js +1 -1
  515. package/src/components/block-tools/selected-block-popover.js +77 -80
  516. package/src/components/block-tools/style.scss +0 -1
  517. package/src/components/block-variation-picker/{style.scss → content.scss} +0 -0
  518. package/src/components/block-vertical-alignment-control/icons.js +12 -0
  519. package/src/components/block-vertical-alignment-control/test/index.js +3 -11
  520. package/src/components/block-vertical-alignment-control/ui.js +16 -6
  521. package/src/components/color-style-selector/index.js +1 -1
  522. package/src/components/colors/test/with-colors.js +2 -8
  523. package/src/components/date-format-picker/index.js +23 -24
  524. package/src/components/date-format-picker/style.scss +0 -6
  525. package/src/components/default-block-appender/content.scss +18 -0
  526. package/src/components/default-block-appender/test/index.js +2 -8
  527. package/src/components/font-family/index.js +1 -6
  528. package/src/components/font-sizes/fluid-utils.js +1 -1
  529. package/src/components/font-sizes/utils.js +1 -1
  530. package/src/components/global-styles/README.md +77 -0
  531. package/src/components/global-styles/context.js +15 -0
  532. package/src/components/global-styles/hooks.js +145 -0
  533. package/src/components/global-styles/index.js +7 -0
  534. package/src/components/global-styles/test/typography-utils.js +393 -0
  535. package/src/components/global-styles/test/use-global-styles-output.js +814 -0
  536. package/src/components/global-styles/test/utils.js +206 -0
  537. package/src/components/global-styles/typography-utils.js +87 -0
  538. package/src/components/global-styles/use-global-styles-output.js +1088 -0
  539. package/src/components/global-styles/utils.js +373 -0
  540. package/src/components/height-control/README.md +55 -0
  541. package/src/components/height-control/index.js +13 -1
  542. package/src/components/image-editor/constants.js +1 -1
  543. package/src/components/image-editor/context.js +5 -9
  544. package/src/components/image-editor/cropper.js +3 -1
  545. package/src/components/image-editor/index.js +13 -4
  546. package/src/components/image-editor/use-transform-image.js +14 -55
  547. package/src/components/image-size-control/index.js +1 -6
  548. package/src/components/index.js +2 -6
  549. package/src/components/inner-blocks/index.js +29 -33
  550. package/src/components/inner-blocks/index.native.js +27 -47
  551. package/src/components/inner-blocks/use-block-context.js +47 -0
  552. package/src/components/inserter/block-patterns-explorer/explorer.js +0 -1
  553. package/src/components/inserter/block-patterns-tab.js +7 -0
  554. package/src/components/inserter/block-types-tab.js +3 -4
  555. package/src/components/inserter/hooks/use-patterns-state.js +1 -6
  556. package/src/components/inserter/index.js +3 -4
  557. package/src/components/inserter/media-tab/hooks.js +167 -65
  558. package/src/components/inserter/media-tab/media-list.js +94 -26
  559. package/src/components/inserter/media-tab/media-panel.js +9 -20
  560. package/src/components/inserter/media-tab/media-tab.js +12 -4
  561. package/src/components/inserter/media-tab/utils.js +20 -10
  562. package/src/components/inserter/menu.js +1 -0
  563. package/src/components/inserter/preview-panel.js +4 -2
  564. package/src/components/inserter/search-results.js +2 -6
  565. package/src/components/inserter/stories/index.js +9 -9
  566. package/src/components/inserter/style.scss +58 -11
  567. package/src/components/inserter-list-item/index.js +0 -7
  568. package/src/components/inspector-controls/README.md +3 -7
  569. package/src/components/inspector-controls/fill.js +15 -1
  570. package/src/components/inspector-controls/fill.native.js +14 -1
  571. package/src/components/inspector-controls/groups.js +3 -0
  572. package/src/components/inspector-controls/index.js +2 -6
  573. package/src/components/inspector-controls/slot.js +14 -1
  574. package/src/components/inspector-controls/slot.native.js +14 -1
  575. package/src/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
  576. package/src/components/inspector-controls-tabs/index.js +2 -4
  577. package/src/components/inspector-controls-tabs/position-controls-panel.js +1 -1
  578. package/src/components/inspector-controls-tabs/styles-tab.js +5 -7
  579. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +21 -10
  580. package/src/components/justify-content-control/ui.js +9 -0
  581. package/src/components/link-control/index.js +59 -23
  582. package/src/components/link-control/style.scss +7 -24
  583. package/src/components/link-control/test/index.js +134 -5
  584. package/src/components/list-view/block.js +1 -1
  585. package/src/components/list-view/use-list-view-drop-zone.js +1 -1
  586. package/src/components/media-replace-flow/test/index.js +4 -12
  587. package/src/components/media-upload/index.native.js +2 -2
  588. package/src/components/off-canvas-editor/README.md +2 -2
  589. package/src/components/off-canvas-editor/appender.js +93 -37
  590. package/src/components/off-canvas-editor/block-select-button.js +12 -1
  591. package/src/components/off-canvas-editor/block.js +3 -42
  592. package/src/components/off-canvas-editor/branch.js +32 -5
  593. package/src/components/off-canvas-editor/index.js +10 -25
  594. package/src/components/off-canvas-editor/link-ui.js +2 -2
  595. package/src/components/off-canvas-editor/style.scss +5 -1
  596. package/src/components/off-canvas-editor/use-list-view-drop-zone.js +1 -1
  597. package/src/components/provider/index.js +33 -14
  598. package/src/components/provider/index.native.js +4 -3
  599. package/src/components/provider/test/experimental-provider.js +94 -0
  600. package/src/components/provider/test/use-block-sync.js +10 -0
  601. package/src/components/responsive-block-control/test/index.js +1 -5
  602. package/src/components/rich-text/use-before-input-rules.js +10 -2
  603. package/src/components/rich-text/utils.js +1 -1
  604. package/src/components/spacing-sizes-control/utils.js +2 -7
  605. package/src/components/tool-selector/index.js +1 -1
  606. package/src/components/url-input/test/button.js +24 -24
  607. package/src/components/url-popover/image-url-input-ui.js +7 -8
  608. package/src/components/url-popover/style.scss +0 -10
  609. package/src/components/use-block-display-information/index.js +1 -1
  610. package/src/components/warning/{style.scss → content.scss} +0 -0
  611. package/src/components/warning/test/index.js +1 -5
  612. package/src/content.scss +7 -0
  613. package/src/experiments.js +27 -0
  614. package/src/experiments.native.js +25 -0
  615. package/src/hooks/anchor.js +2 -1
  616. package/src/hooks/border.js +1 -1
  617. package/src/hooks/child-layout.js +6 -1
  618. package/src/hooks/color-panel.js +1 -1
  619. package/src/hooks/color.js +3 -3
  620. package/src/hooks/custom-class-name.js +2 -1
  621. package/src/hooks/dimensions.js +6 -6
  622. package/src/hooks/layout.scss +4 -0
  623. package/src/hooks/margin.js +1 -0
  624. package/src/hooks/padding.js +1 -0
  625. package/src/hooks/position.js +52 -36
  626. package/src/hooks/test/align.native.js +1 -1
  627. package/src/hooks/test/utils.js +104 -0
  628. package/src/hooks/typography.js +1 -1
  629. package/src/hooks/use-color-props.js +3 -3
  630. package/src/hooks/utils.js +68 -2
  631. package/src/index.js +1 -0
  632. package/src/layouts/constrained.js +3 -0
  633. package/src/layouts/flex.js +66 -14
  634. package/src/layouts/flow.js +0 -9
  635. package/src/store/actions.js +2 -26
  636. package/src/store/defaults.js +7 -2
  637. package/src/store/index.js +8 -2
  638. package/src/store/private-actions.js +65 -0
  639. package/src/store/private-selectors.js +10 -0
  640. package/src/store/reducer.js +1 -1
  641. package/src/store/selectors.js +103 -52
  642. package/src/store/test/actions.js +0 -18
  643. package/src/store/test/private-actions.js +22 -0
  644. package/src/store/test/private-selectors.js +24 -0
  645. package/src/store/test/selectors.js +52 -30
  646. package/src/style.scss +3 -5
  647. package/src/utils/block-variation-transforms.js +1 -1
  648. package/src/utils/parse-css-unit-to-px.js +3 -1
  649. package/src/utils/test/parse-css-unit-to-px.js +16 -24
  650. package/src/utils/transform-styles/index.js +1 -6
  651. package/build/components/inner-blocks/get-block-context.js +0 -45
  652. package/build/components/inner-blocks/get-block-context.js.map +0 -1
  653. package/build/components/off-canvas-editor/block-edit-button.js +0 -50
  654. package/build/components/off-canvas-editor/block-edit-button.js.map +0 -1
  655. package/build-module/components/inner-blocks/get-block-context.js +0 -37
  656. package/build-module/components/inner-blocks/get-block-context.js.map +0 -1
  657. package/build-module/components/off-canvas-editor/block-edit-button.js +0 -35
  658. package/build-module/components/off-canvas-editor/block-edit-button.js.map +0 -1
  659. package/src/components/inner-blocks/get-block-context.js +0 -39
  660. package/src/components/off-canvas-editor/block-edit-button.js +0 -27
@@ -0,0 +1,65 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { Platform } from '@wordpress/element';
5
+
6
+ /**
7
+ * A list of private/experimental block editor settings that
8
+ * should not become a part of the WordPress public API.
9
+ * BlockEditorProvider will remove these settings from the
10
+ * settings object it receives.
11
+ *
12
+ * @see https://github.com/WordPress/gutenberg/pull/46131
13
+ */
14
+ const privateSettings = [ 'inserterMediaCategories' ];
15
+
16
+ /**
17
+ * Action that updates the block editor settings and
18
+ * conditionally preserves the experimental ones.
19
+ *
20
+ * @param {Object} settings Updated settings
21
+ * @param {boolean} stripExperimentalSettings Whether to strip experimental settings.
22
+ * @return {Object} Action object
23
+ */
24
+ export function __experimentalUpdateSettings(
25
+ settings,
26
+ stripExperimentalSettings = false
27
+ ) {
28
+ let cleanSettings = settings;
29
+ // There are no plugins in the mobile apps, so there is no
30
+ // need to strip the experimental settings:
31
+ if ( stripExperimentalSettings && Platform.OS === 'web' ) {
32
+ cleanSettings = {};
33
+ for ( const key in settings ) {
34
+ if ( ! privateSettings.includes( key ) ) {
35
+ cleanSettings[ key ] = settings[ key ];
36
+ }
37
+ }
38
+ }
39
+ return {
40
+ type: 'UPDATE_SETTINGS',
41
+ settings: cleanSettings,
42
+ };
43
+ }
44
+
45
+ /**
46
+ * Hides the block interface (eg. toolbar, outline, etc.)
47
+ *
48
+ * @return {Object} Action object.
49
+ */
50
+ export function hideBlockInterface() {
51
+ return {
52
+ type: 'HIDE_BLOCK_INTERFACE',
53
+ };
54
+ }
55
+
56
+ /**
57
+ * Shows the block interface (eg. toolbar, outline, etc.)
58
+ *
59
+ * @return {Object} Action object.
60
+ */
61
+ export function showBlockInterface() {
62
+ return {
63
+ type: 'SHOW_BLOCK_INTERFACE',
64
+ };
65
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Returns true if the block interface is hidden, or false otherwise.
3
+ *
4
+ * @param {Object} state Global application state.
5
+ *
6
+ * @return {boolean} Whether the block toolbar is hidden.
7
+ */
8
+ export function isBlockInterfaceHidden( state ) {
9
+ return state.isBlockInterfaceHidden;
10
+ }
@@ -1756,7 +1756,7 @@ export function lastBlockAttributesChange( state = null, action ) {
1756
1756
  * @param {?string} state Current state.
1757
1757
  * @param {Object} action Dispatched action.
1758
1758
  *
1759
- * @return {string} Updated state.
1759
+ * @return {string | undefined} Updated state.
1760
1760
  */
1761
1761
  export function automaticChangeStatus( state, action ) {
1762
1762
  switch ( action.type ) {
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { map } from 'lodash';
5
4
  import createSelector from 'rememo';
6
5
 
7
6
  /**
@@ -202,7 +201,7 @@ export const __unstableGetClientIdWithClientIdsTree = createSelector(
202
201
  */
203
202
  export const __unstableGetClientIdsTree = createSelector(
204
203
  ( state, rootClientId = '' ) =>
205
- map( getBlockOrder( state, rootClientId ), ( clientId ) =>
204
+ getBlockOrder( state, rootClientId ).map( ( clientId ) =>
206
205
  __unstableGetClientIdWithClientIdsTree( state, clientId )
207
206
  ),
208
207
  ( state ) => [ state.blocks.order ]
@@ -314,17 +313,32 @@ export const __experimentalGetGlobalBlocksByName = createSelector(
314
313
  */
315
314
  export const getBlocksByClientId = createSelector(
316
315
  ( state, clientIds ) =>
317
- map(
318
- Array.isArray( clientIds ) ? clientIds : [ clientIds ],
316
+ ( Array.isArray( clientIds ) ? clientIds : [ clientIds ] ).map(
319
317
  ( clientId ) => getBlock( state, clientId )
320
318
  ),
321
319
  ( state, clientIds ) =>
322
- map(
323
- Array.isArray( clientIds ) ? clientIds : [ clientIds ],
320
+ ( Array.isArray( clientIds ) ? clientIds : [ clientIds ] ).map(
324
321
  ( clientId ) => state.blocks.tree.get( clientId )
325
322
  )
326
323
  );
327
324
 
325
+ /**
326
+ * Given an array of block client IDs, returns the corresponding array of block
327
+ * names.
328
+ *
329
+ * @param {Object} state Editor state.
330
+ * @param {string[]} clientIds Client IDs for which block names are to be returned.
331
+ *
332
+ * @return {string[]} Block names.
333
+ */
334
+ export const getBlockNamesByClientId = createSelector(
335
+ ( state, clientIds ) =>
336
+ getBlocksByClientId( state, clientIds )
337
+ .filter( Boolean )
338
+ .map( ( block ) => block.name ),
339
+ ( state, clientIds ) => getBlocksByClientId( state, clientIds )
340
+ );
341
+
328
342
  /**
329
343
  * Returns the number of blocks currently present in the post.
330
344
  *
@@ -507,18 +521,18 @@ export const getBlockParents = createSelector(
507
521
  export const getBlockParentsByBlockName = createSelector(
508
522
  ( state, clientId, blockName, ascending = false ) => {
509
523
  const parents = getBlockParents( state, clientId, ascending );
510
- return map(
511
- map( parents, ( id ) => ( {
524
+ return parents
525
+ .map( ( id ) => ( {
512
526
  id,
513
527
  name: getBlockName( state, id ),
514
- } ) ).filter( ( { name } ) => {
528
+ } ) )
529
+ .filter( ( { name } ) => {
515
530
  if ( Array.isArray( blockName ) ) {
516
531
  return blockName.includes( name );
517
532
  }
518
533
  return name === blockName;
519
- } ),
520
- ( { id } ) => id
521
- );
534
+ } )
535
+ .map( ( { id } ) => id );
522
536
  },
523
537
  ( state ) => [ state.blocks.parents ]
524
538
  );
@@ -1265,17 +1279,6 @@ export function isTyping( state ) {
1265
1279
  return state.isTyping;
1266
1280
  }
1267
1281
 
1268
- /**
1269
- * Returns true if the the block interface should be hidden, or false otherwise.
1270
- *
1271
- * @param {Object} state Global application state.
1272
- *
1273
- * @return {boolean} Whether the block toolbar is hidden.
1274
- */
1275
- export function __experimentalIsBlockInterfaceHidden( state ) {
1276
- return state.isBlockInterfaceHidden;
1277
- }
1278
-
1279
1282
  /**
1280
1283
  * Returns true if the user is dragging blocks, or false otherwise.
1281
1284
  *
@@ -1364,28 +1367,36 @@ export function isCaretWithinFormattedText() {
1364
1367
  *
1365
1368
  * @return {Object} Insertion point object with `rootClientId`, `index`.
1366
1369
  */
1367
- export function getBlockInsertionPoint( state ) {
1368
- let rootClientId, index;
1369
-
1370
- const {
1371
- insertionPoint,
1372
- selection: { selectionEnd },
1373
- } = state;
1374
- if ( insertionPoint !== null ) {
1375
- return insertionPoint;
1376
- }
1370
+ export const getBlockInsertionPoint = createSelector(
1371
+ ( state ) => {
1372
+ let rootClientId, index;
1373
+
1374
+ const {
1375
+ insertionPoint,
1376
+ selection: { selectionEnd },
1377
+ } = state;
1378
+ if ( insertionPoint !== null ) {
1379
+ return insertionPoint;
1380
+ }
1377
1381
 
1378
- const { clientId } = selectionEnd;
1382
+ const { clientId } = selectionEnd;
1379
1383
 
1380
- if ( clientId ) {
1381
- rootClientId = getBlockRootClientId( state, clientId ) || undefined;
1382
- index = getBlockIndex( state, selectionEnd.clientId ) + 1;
1383
- } else {
1384
- index = getBlockOrder( state ).length;
1385
- }
1384
+ if ( clientId ) {
1385
+ rootClientId = getBlockRootClientId( state, clientId ) || undefined;
1386
+ index = getBlockIndex( state, selectionEnd.clientId ) + 1;
1387
+ } else {
1388
+ index = getBlockOrder( state ).length;
1389
+ }
1386
1390
 
1387
- return { rootClientId, index };
1388
- }
1391
+ return { rootClientId, index };
1392
+ },
1393
+ ( state ) => [
1394
+ state.insertionPoint,
1395
+ state.selection.selectionEnd.clientId,
1396
+ state.blocks.parents,
1397
+ state.blocks.order,
1398
+ ]
1399
+ );
1389
1400
 
1390
1401
  /**
1391
1402
  * Returns true if we should show the block insertion point.
@@ -1660,7 +1671,7 @@ export function canRemoveBlocks( state, clientIds, rootClientId = null ) {
1660
1671
  * @param {string} clientId The block client Id.
1661
1672
  * @param {?string} rootClientId Optional root client ID of block list.
1662
1673
  *
1663
- * @return {boolean} Whether the given block is allowed to be moved.
1674
+ * @return {boolean | undefined} Whether the given block is allowed to be moved.
1664
1675
  */
1665
1676
  export function canMoveBlock( state, clientId, rootClientId = null ) {
1666
1677
  const attributes = getBlockAttributes( state, clientId );
@@ -2144,14 +2155,14 @@ export const hasInserterItems = createSelector(
2144
2155
  );
2145
2156
 
2146
2157
  /**
2147
- * Returns the list of allowed inserter blocks for inner blocks children
2158
+ * Returns the list of allowed inserter blocks for inner blocks children.
2148
2159
  *
2149
2160
  * @param {Object} state Editor state.
2150
2161
  * @param {?string} rootClientId Optional root client ID of block list.
2151
2162
  *
2152
2163
  * @return {Array?} The list of allowed block types.
2153
2164
  */
2154
- export const __experimentalGetAllowedBlocks = createSelector(
2165
+ export const getAllowedBlocks = createSelector(
2155
2166
  ( state, rootClientId = null ) => {
2156
2167
  if ( ! rootClientId ) {
2157
2168
  return;
@@ -2170,6 +2181,24 @@ export const __experimentalGetAllowedBlocks = createSelector(
2170
2181
  ]
2171
2182
  );
2172
2183
 
2184
+ export const __experimentalGetAllowedBlocks = createSelector(
2185
+ ( state, rootClientId = null ) => {
2186
+ deprecated(
2187
+ 'wp.data.select( "core/block-editor" ).__experimentalGetAllowedBlocks',
2188
+ {
2189
+ alternative:
2190
+ 'wp.data.select( "core/block-editor" ).getAllowedBlocks',
2191
+ since: '6.2',
2192
+ version: '6.4',
2193
+ }
2194
+ );
2195
+ return getAllowedBlocks( state, rootClientId );
2196
+ },
2197
+ ( state, rootClientId ) => [
2198
+ ...getAllowedBlocks.getDependants( state, rootClientId ),
2199
+ ]
2200
+ );
2201
+
2173
2202
  /**
2174
2203
  * Returns the block to be directly inserted by the block appender.
2175
2204
  *
@@ -2313,7 +2342,7 @@ export const __experimentalGetAllowedPatterns = createSelector(
2313
2342
  *
2314
2343
  * @return {Array} The list of matched block patterns based on declared `blockTypes` and block name.
2315
2344
  */
2316
- export const __experimentalGetPatternsByBlockTypes = createSelector(
2345
+ export const getPatternsByBlockTypes = createSelector(
2317
2346
  ( state, blockNames, rootClientId = null ) => {
2318
2347
  if ( ! blockNames ) return EMPTY_ARRAY;
2319
2348
  const patterns = __experimentalGetAllowedPatterns(
@@ -2323,11 +2352,36 @@ export const __experimentalGetPatternsByBlockTypes = createSelector(
2323
2352
  const normalizedBlockNames = Array.isArray( blockNames )
2324
2353
  ? blockNames
2325
2354
  : [ blockNames ];
2326
- return patterns.filter( ( pattern ) =>
2355
+ const filteredPatterns = patterns.filter( ( pattern ) =>
2327
2356
  pattern?.blockTypes?.some?.( ( blockName ) =>
2328
2357
  normalizedBlockNames.includes( blockName )
2329
2358
  )
2330
2359
  );
2360
+ if ( filteredPatterns.length === 0 ) {
2361
+ return EMPTY_ARRAY;
2362
+ }
2363
+ return filteredPatterns;
2364
+ },
2365
+ ( state, blockNames, rootClientId ) => [
2366
+ ...__experimentalGetAllowedPatterns.getDependants(
2367
+ state,
2368
+ rootClientId
2369
+ ),
2370
+ ]
2371
+ );
2372
+
2373
+ export const __experimentalGetPatternsByBlockTypes = createSelector(
2374
+ ( state, blockNames, rootClientId = null ) => {
2375
+ deprecated(
2376
+ 'wp.data.select( "core/block-editor" ).__experimentalGetPatternsByBlockTypes',
2377
+ {
2378
+ alternative:
2379
+ 'wp.data.select( "core/block-editor" ).getPatternsByBlockTypes',
2380
+ since: '6.2',
2381
+ version: '6.4',
2382
+ }
2383
+ );
2384
+ return getPatternsByBlockTypes( state, blockNames, rootClientId );
2331
2385
  },
2332
2386
  ( state, blockNames, rootClientId ) => [
2333
2387
  ...__experimentalGetAllowedPatterns.getDependants(
@@ -2384,17 +2438,14 @@ export const __experimentalGetPatternTransformItems = createSelector(
2384
2438
  * block pattern's blocks and try to find matches from the selected blocks.
2385
2439
  * Now this happens in the consumer to avoid heavy operations in the selector.
2386
2440
  */
2387
- return __experimentalGetPatternsByBlockTypes(
2441
+ return getPatternsByBlockTypes(
2388
2442
  state,
2389
2443
  selectedBlockNames,
2390
2444
  rootClientId
2391
2445
  );
2392
2446
  },
2393
2447
  ( state, blocks, rootClientId ) => [
2394
- ...__experimentalGetPatternsByBlockTypes.getDependants(
2395
- state,
2396
- rootClientId
2397
- ),
2448
+ ...getPatternsByBlockTypes.getDependants( state, rootClientId ),
2398
2449
  ]
2399
2450
  );
2400
2451
 
@@ -27,7 +27,6 @@ const noop = () => {};
27
27
 
28
28
  const {
29
29
  clearSelectedBlock,
30
- __experimentalHideBlockInterface: hideBlockInterface,
31
30
  insertBlock,
32
31
  insertBlocks,
33
32
  mergeBlocks,
@@ -40,7 +39,6 @@ const {
40
39
  replaceInnerBlocks,
41
40
  resetBlocks,
42
41
  selectBlock,
43
- __experimentalShowBlockInterface: showBlockInterface,
44
42
  showInsertionPoint,
45
43
  startMultiSelect,
46
44
  startTyping,
@@ -777,22 +775,6 @@ describe( 'actions', () => {
777
775
  } );
778
776
  } );
779
777
 
780
- describe( 'hideBlockInterface', () => {
781
- it( 'should return the HIDE_BLOCK_INTERFACE action', () => {
782
- expect( hideBlockInterface() ).toEqual( {
783
- type: 'HIDE_BLOCK_INTERFACE',
784
- } );
785
- } );
786
- } );
787
-
788
- describe( 'showBlockInterface', () => {
789
- it( 'should return the SHOW_BLOCK_INTERFACE action', () => {
790
- expect( showBlockInterface() ).toEqual( {
791
- type: 'SHOW_BLOCK_INTERFACE',
792
- } );
793
- } );
794
- } );
795
-
796
778
  describe( 'startTyping', () => {
797
779
  it( 'should return the START_TYPING action', () => {
798
780
  expect( startTyping() ).toEqual( {
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import { hideBlockInterface, showBlockInterface } from '../private-actions';
5
+
6
+ describe( 'private actions', () => {
7
+ describe( 'hideBlockInterface', () => {
8
+ it( 'should return the HIDE_BLOCK_INTERFACE action', () => {
9
+ expect( hideBlockInterface() ).toEqual( {
10
+ type: 'HIDE_BLOCK_INTERFACE',
11
+ } );
12
+ } );
13
+ } );
14
+
15
+ describe( 'showBlockInterface', () => {
16
+ it( 'should return the SHOW_BLOCK_INTERFACE action', () => {
17
+ expect( showBlockInterface() ).toEqual( {
18
+ type: 'SHOW_BLOCK_INTERFACE',
19
+ } );
20
+ } );
21
+ } );
22
+ } );
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import { isBlockInterfaceHidden } from '../private-selectors';
5
+
6
+ describe( 'private selectors', () => {
7
+ describe( 'isBlockInterfaceHidden', () => {
8
+ it( 'should return the true if toggled true in state', () => {
9
+ const state = {
10
+ isBlockInterfaceHidden: true,
11
+ };
12
+
13
+ expect( isBlockInterfaceHidden( state ) ).toBe( true );
14
+ } );
15
+
16
+ it( 'should return false if toggled false in state', () => {
17
+ const state = {
18
+ isBlockInterfaceHidden: false,
19
+ };
20
+
21
+ expect( isBlockInterfaceHidden( state ) ).toBe( false );
22
+ } );
23
+ } );
24
+ } );
@@ -44,7 +44,6 @@ const {
44
44
  isBlockMultiSelected,
45
45
  isFirstMultiSelectedBlock,
46
46
  getBlockMode,
47
- __experimentalIsBlockInterfaceHidden: isBlockInterfaceHidden,
48
47
  isTyping,
49
48
  isDraggingBlocks,
50
49
  getDraggedBlockClientIds,
@@ -67,7 +66,7 @@ const {
67
66
  __experimentalGetActiveBlockIdByBlockNames: getActiveBlockIdByBlockNames,
68
67
  __experimentalGetAllowedPatterns,
69
68
  __experimentalGetParsedPattern,
70
- __experimentalGetPatternsByBlockTypes,
69
+ getPatternsByBlockTypes,
71
70
  __unstableGetClientIdWithClientIdsTree,
72
71
  __unstableGetClientIdsTree,
73
72
  __experimentalGetPatternTransformItems,
@@ -2259,24 +2258,6 @@ describe( 'selectors', () => {
2259
2258
  } );
2260
2259
  } );
2261
2260
 
2262
- describe( 'isBlockInterfaceHidden', () => {
2263
- it( 'should return the true if toggled true in state', () => {
2264
- const state = {
2265
- isBlockInterfaceHidden: true,
2266
- };
2267
-
2268
- expect( isBlockInterfaceHidden( state ) ).toBe( true );
2269
- } );
2270
-
2271
- it( 'should return false if toggled false in state', () => {
2272
- const state = {
2273
- isBlockInterfaceHidden: false,
2274
- };
2275
-
2276
- expect( isBlockInterfaceHidden( state ) ).toBe( false );
2277
- } );
2278
- } );
2279
-
2280
2261
  describe( 'isTyping', () => {
2281
2262
  it( 'should return the isTyping flag if the block is selected', () => {
2282
2263
  const state = {
@@ -2493,6 +2474,44 @@ describe( 'selectors', () => {
2493
2474
  } );
2494
2475
  } );
2495
2476
 
2477
+ it( 'should cache and return the same object if state has not changed', () => {
2478
+ const state = {
2479
+ selection: {
2480
+ selectionStart: { clientId: 'clientId1' },
2481
+ selectionEnd: { clientId: 'clientId1' },
2482
+ },
2483
+ blocks: {
2484
+ byClientId: new Map(
2485
+ Object.entries( {
2486
+ clientId1: { clientId: 'clientId1' },
2487
+ } )
2488
+ ),
2489
+ attributes: new Map(
2490
+ Object.entries( {
2491
+ clientId1: {},
2492
+ } )
2493
+ ),
2494
+ order: new Map(
2495
+ Object.entries( {
2496
+ '': [ 'clientId1' ],
2497
+ clientId1: [],
2498
+ } )
2499
+ ),
2500
+ parents: new Map(
2501
+ Object.entries( {
2502
+ clientId1: '',
2503
+ } )
2504
+ ),
2505
+ },
2506
+ insertionPoint: null,
2507
+ };
2508
+
2509
+ const insertionPoint1 = getBlockInsertionPoint( state );
2510
+ const insertionPoint2 = getBlockInsertionPoint( state );
2511
+
2512
+ expect( insertionPoint1 ).toBe( insertionPoint2 );
2513
+ } );
2514
+
2496
2515
  it( 'should return an object for the nested selected block', () => {
2497
2516
  const state = {
2498
2517
  selection: {
@@ -4223,7 +4242,7 @@ describe( 'selectors', () => {
4223
4242
  );
4224
4243
  } );
4225
4244
  } );
4226
- describe( '__experimentalGetPatternsByBlockTypes', () => {
4245
+ describe( 'getPatternsByBlockTypes', () => {
4227
4246
  const state = {
4228
4247
  blocks: {
4229
4248
  byClientId: new Map(
@@ -4263,22 +4282,25 @@ describe( 'selectors', () => {
4263
4282
  },
4264
4283
  };
4265
4284
  it( 'should return empty array if no block name is provided', () => {
4266
- expect( __experimentalGetPatternsByBlockTypes( state ) ).toEqual(
4267
- []
4268
- );
4285
+ expect( getPatternsByBlockTypes( state ) ).toEqual( [] );
4269
4286
  } );
4270
- it( 'shoud return empty array if no match is found', () => {
4271
- const patterns = __experimentalGetPatternsByBlockTypes(
4287
+ it( 'should return empty array if no match is found', () => {
4288
+ const patterns = getPatternsByBlockTypes(
4272
4289
  state,
4273
4290
  'test/block-not-exists'
4274
4291
  );
4275
4292
  expect( patterns ).toEqual( [] );
4276
4293
  } );
4277
- it( 'should return proper results when there are matched block patterns', () => {
4278
- const patterns = __experimentalGetPatternsByBlockTypes(
4294
+ it( 'should return the same empty array in both empty array cases', () => {
4295
+ const patterns1 = getPatternsByBlockTypes( state );
4296
+ const patterns2 = getPatternsByBlockTypes(
4279
4297
  state,
4280
- 'test/block-a'
4298
+ 'test/block-not-exists'
4281
4299
  );
4300
+ expect( patterns1 ).toBe( patterns2 );
4301
+ } );
4302
+ it( 'should return proper results when there are matched block patterns', () => {
4303
+ const patterns = getPatternsByBlockTypes( state, 'test/block-a' );
4282
4304
  expect( patterns ).toHaveLength( 2 );
4283
4305
  expect( patterns ).toEqual(
4284
4306
  expect.arrayContaining( [
@@ -4288,7 +4310,7 @@ describe( 'selectors', () => {
4288
4310
  );
4289
4311
  } );
4290
4312
  it( 'should return proper result with matched patterns and allowed blocks from rootClientId', () => {
4291
- const patterns = __experimentalGetPatternsByBlockTypes(
4313
+ const patterns = getPatternsByBlockTypes(
4292
4314
  state,
4293
4315
  'test/block-a',
4294
4316
  'block1'
package/src/style.scss CHANGED
@@ -18,7 +18,6 @@
18
18
  @import "./components/block-styles/style.scss";
19
19
  @import "./components/block-switcher/style.scss";
20
20
  @import "./components/block-types-list/style.scss";
21
- @import "./components/block-variation-picker/style.scss";
22
21
  @import "./components/block-pattern-setup/style.scss";
23
22
  @import "./components/block-variation-transforms/style.scss";
24
23
  @import "./components/border-radius-control/style.scss";
@@ -45,15 +44,14 @@
45
44
  @import "./components/tool-selector/style.scss";
46
45
  @import "./components/url-input/style.scss";
47
46
  @import "./components/url-popover/style.scss";
48
- @import "./components/warning/style.scss";
49
47
  @import "./hooks/anchor.scss";
50
- @import "./hooks/layout.scss";
51
48
  @import "./hooks/border.scss";
49
+ @import "./hooks/color.scss";
52
50
  @import "./hooks/dimensions.scss";
51
+ @import "./hooks/layout.scss";
52
+ @import "./hooks/padding.scss";
53
53
  @import "./hooks/position.scss";
54
54
  @import "./hooks/typography.scss";
55
- @import "./hooks/color.scss";
56
- @import "./hooks/padding.scss";
57
55
 
58
56
  @import "./components/block-toolbar/style.scss";
59
57
  @import "./components/inserter/style.scss";
@@ -22,7 +22,7 @@ function matchesAttributes( blockAttributes, variation ) {
22
22
  *
23
23
  * @param {Object} blockAttributes - The block attributes to try to find a match.
24
24
  * @param {WPBlockVariation[]} variations - A list of block variations to test for a match.
25
- * @return {?WPBlockVariation} - If a match is found returns it. If not or more than one matches are found returns `undefined`.
25
+ * @return {WPBlockVariation | undefined} - If a match is found returns it. If not or more than one matches are found returns `undefined`.
26
26
  */
27
27
  export const __experimentalGetMatchingVariation = (
28
28
  blockAttributes,
@@ -117,7 +117,9 @@ function isMathExpression( cssUnit ) {
117
117
  function evalMathExpression( cssUnit ) {
118
118
  let errorFound = false;
119
119
  // Convert every part of the expression to px values.
120
- const cssUnitsBits = cssUnit.split( /[+-/*/]/g ).filter( Boolean );
120
+ const cssUnitsBits = cssUnit
121
+ .split( /(?!^-)[+*\/-](\s?-)?/g )
122
+ .filter( Boolean );
121
123
  for ( const unit of cssUnitsBits ) {
122
124
  // Standardize the unit to px and extract the value.
123
125
  const parsedUnit = parseUnit( getPxFromCssUnit( unit ) );