@wordpress/block-editor 15.19.1-next.v.202605131032.0 → 15.20.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 (352) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/build/components/block-card/index.cjs +51 -41
  3. package/build/components/block-card/index.cjs.map +3 -3
  4. package/build/components/block-heading-level-dropdown/heading-level-icon.cjs.map +3 -3
  5. package/build/components/block-icon/index.cjs +7 -1
  6. package/build/components/block-icon/index.cjs.map +3 -3
  7. package/build/components/block-inspector/index.cjs +156 -11
  8. package/build/components/block-inspector/index.cjs.map +3 -3
  9. package/build/components/block-inspector/inspector-pre-tabs-slot-fill.cjs +38 -0
  10. package/build/components/block-inspector/inspector-pre-tabs-slot-fill.cjs.map +7 -0
  11. package/build/components/block-list/use-block-props/index.cjs +1 -1
  12. package/build/components/block-list/use-block-props/index.cjs.map +2 -2
  13. package/build/components/block-list/use-block-props/use-focus-handler.cjs +3 -4
  14. package/build/components/block-list/use-block-props/use-focus-handler.cjs.map +3 -3
  15. package/build/components/block-list/use-block-props/use-is-hovered.cjs +24 -14
  16. package/build/components/block-list/use-block-props/use-is-hovered.cjs.map +3 -3
  17. package/build/components/block-lock/modal.cjs.map +3 -3
  18. package/build/components/block-patterns-list/index.cjs +13 -2
  19. package/build/components/block-patterns-list/index.cjs.map +2 -2
  20. package/build/components/block-popover/index.cjs +13 -3
  21. package/build/components/block-popover/index.cjs.map +2 -2
  22. package/build/components/block-toolbar/switch-section-style.cjs.map +3 -3
  23. package/build/components/block-visibility/modal.cjs.map +3 -3
  24. package/build/components/block-visibility/viewport-visibility-info.cjs.map +3 -3
  25. package/build/components/colors-gradients/control.cjs +7 -4
  26. package/build/components/colors-gradients/control.cjs.map +2 -2
  27. package/build/components/global-styles/advanced-panel.cjs +24 -22
  28. package/build/components/global-styles/advanced-panel.cjs.map +3 -3
  29. package/build/components/global-styles/color-panel.cjs +95 -58
  30. package/build/components/global-styles/color-panel.cjs.map +2 -2
  31. package/build/components/global-styles/dimensions-panel.cjs +11 -5
  32. package/build/components/global-styles/dimensions-panel.cjs.map +2 -2
  33. package/build/components/global-styles/index.cjs +3 -0
  34. package/build/components/global-styles/index.cjs.map +2 -2
  35. package/build/components/global-styles/shadow-panel-components.cjs +38 -26
  36. package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
  37. package/build/components/global-styles/state-control-badges.cjs +69 -0
  38. package/build/components/global-styles/state-control-badges.cjs.map +7 -0
  39. package/build/components/global-styles/state-control.cjs +54 -63
  40. package/build/components/global-styles/state-control.cjs.map +3 -3
  41. package/build/components/iframe/index.cjs +0 -3
  42. package/build/components/iframe/index.cjs.map +2 -2
  43. package/build/components/iframe/use-scale-canvas.cjs +4 -1
  44. package/build/components/iframe/use-scale-canvas.cjs.map +2 -2
  45. package/build/components/inserter/hooks/use-patterns-state.cjs +4 -6
  46. package/build/components/inserter/hooks/use-patterns-state.cjs.map +2 -2
  47. package/build/components/inserter/index.cjs +1 -0
  48. package/build/components/inserter/index.cjs.map +2 -2
  49. package/build/components/inserter/media-tab/media-preview.cjs +27 -18
  50. package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
  51. package/build/components/inserter/media-tab/utils.cjs +1 -1
  52. package/build/components/inserter/media-tab/utils.cjs.map +2 -2
  53. package/build/components/inserter/panel.cjs.map +3 -3
  54. package/build/components/inspector-controls/block-support-tools-panel.cjs +10 -2
  55. package/build/components/inspector-controls/block-support-tools-panel.cjs.map +2 -2
  56. package/build/components/inspector-controls/fill.cjs +14 -4
  57. package/build/components/inspector-controls/fill.cjs.map +2 -2
  58. package/build/components/inspector-controls/groups.cjs +2 -0
  59. package/build/components/inspector-controls/groups.cjs.map +2 -2
  60. package/build/components/inspector-controls-tabs/index.cjs +13 -8
  61. package/build/components/inspector-controls-tabs/index.cjs.map +3 -3
  62. package/build/components/inspector-controls-tabs/settings-tab.cjs +1 -4
  63. package/build/components/inspector-controls-tabs/settings-tab.cjs.map +3 -3
  64. package/build/components/inspector-controls-tabs/styles-tab.cjs +9 -0
  65. package/build/components/inspector-controls-tabs/styles-tab.cjs.map +3 -3
  66. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs +11 -5
  67. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs.map +2 -2
  68. package/build/components/list-view/block-select-button.cjs +20 -8
  69. package/build/components/list-view/block-select-button.cjs.map +2 -2
  70. package/build/components/list-view/block.cjs +2 -1
  71. package/build/components/list-view/block.cjs.map +2 -2
  72. package/build/components/preset-input-control/custom-value-controls.cjs +10 -1
  73. package/build/components/preset-input-control/custom-value-controls.cjs.map +2 -2
  74. package/build/components/preset-input-control/index.cjs.map +3 -3
  75. package/build/components/provider/use-media-upload-settings.cjs +1 -0
  76. package/build/components/provider/use-media-upload-settings.cjs.map +2 -2
  77. package/build/components/rich-text/event-listeners/enter.cjs +9 -2
  78. package/build/components/rich-text/event-listeners/enter.cjs.map +3 -3
  79. package/build/components/rich-text/event-listeners/paste-handler.cjs +4 -4
  80. package/build/components/rich-text/event-listeners/paste-handler.cjs.map +3 -3
  81. package/build/hooks/background.cjs +13 -3
  82. package/build/hooks/background.cjs.map +2 -2
  83. package/build/hooks/block-fields/link/index.cjs.map +3 -3
  84. package/build/hooks/block-fields/media/index.cjs.map +3 -3
  85. package/build/hooks/block-style-state.cjs +112 -0
  86. package/build/hooks/block-style-state.cjs.map +7 -0
  87. package/build/hooks/border.cjs +13 -3
  88. package/build/hooks/border.cjs.map +2 -2
  89. package/build/hooks/color.cjs +28 -9
  90. package/build/hooks/color.cjs.map +2 -2
  91. package/build/hooks/dimensions.cjs +15 -6
  92. package/build/hooks/dimensions.cjs.map +2 -2
  93. package/build/hooks/layout-child.cjs +147 -61
  94. package/build/hooks/layout-child.cjs.map +2 -2
  95. package/build/hooks/layout.cjs +263 -56
  96. package/build/hooks/layout.cjs.map +3 -3
  97. package/build/hooks/state-utils.cjs +94 -0
  98. package/build/hooks/state-utils.cjs.map +7 -0
  99. package/build/hooks/states.cjs +124 -0
  100. package/build/hooks/states.cjs.map +7 -0
  101. package/build/hooks/style.cjs +304 -17
  102. package/build/hooks/style.cjs.map +3 -3
  103. package/build/hooks/typography.cjs +14 -5
  104. package/build/hooks/typography.cjs.map +2 -2
  105. package/build/layouts/constrained.cjs +128 -55
  106. package/build/layouts/constrained.cjs.map +3 -3
  107. package/build/layouts/flex.cjs +119 -31
  108. package/build/layouts/flex.cjs.map +3 -3
  109. package/build/layouts/grid.cjs +103 -40
  110. package/build/layouts/grid.cjs.map +3 -3
  111. package/build/private-apis.cjs +2 -0
  112. package/build/private-apis.cjs.map +2 -2
  113. package/build/store/private-actions.cjs +18 -0
  114. package/build/store/private-actions.cjs.map +2 -2
  115. package/build/store/private-keys.cjs +10 -2
  116. package/build/store/private-keys.cjs.map +2 -2
  117. package/build/store/private-selectors.cjs +26 -2
  118. package/build/store/private-selectors.cjs.map +2 -2
  119. package/build/store/reducer.cjs +70 -1
  120. package/build/store/reducer.cjs.map +2 -2
  121. package/build/store/utils.cjs +1 -1
  122. package/build/store/utils.cjs.map +2 -2
  123. package/build/utils/color-values.cjs +44 -0
  124. package/build/utils/color-values.cjs.map +7 -0
  125. package/build-module/components/block-card/index.mjs +52 -45
  126. package/build-module/components/block-card/index.mjs.map +2 -2
  127. package/build-module/components/block-heading-level-dropdown/heading-level-icon.mjs +2 -2
  128. package/build-module/components/block-heading-level-dropdown/heading-level-icon.mjs.map +2 -2
  129. package/build-module/components/block-icon/index.mjs +8 -2
  130. package/build-module/components/block-icon/index.mjs.map +2 -2
  131. package/build-module/components/block-inspector/index.mjs +166 -13
  132. package/build-module/components/block-inspector/index.mjs.map +2 -2
  133. package/build-module/components/block-inspector/inspector-pre-tabs-slot-fill.mjs +12 -0
  134. package/build-module/components/block-inspector/inspector-pre-tabs-slot-fill.mjs.map +7 -0
  135. package/build-module/components/block-list/use-block-props/index.mjs +1 -1
  136. package/build-module/components/block-list/use-block-props/index.mjs.map +2 -2
  137. package/build-module/components/block-list/use-block-props/use-focus-handler.mjs +7 -5
  138. package/build-module/components/block-list/use-block-props/use-focus-handler.mjs.map +2 -2
  139. package/build-module/components/block-list/use-block-props/use-is-hovered.mjs +28 -15
  140. package/build-module/components/block-list/use-block-props/use-is-hovered.mjs.map +2 -2
  141. package/build-module/components/block-lock/modal.mjs +4 -4
  142. package/build-module/components/block-lock/modal.mjs.map +2 -2
  143. package/build-module/components/block-patterns-list/index.mjs +14 -4
  144. package/build-module/components/block-patterns-list/index.mjs.map +2 -2
  145. package/build-module/components/block-popover/index.mjs +13 -3
  146. package/build-module/components/block-popover/index.mjs.map +2 -2
  147. package/build-module/components/block-toolbar/switch-section-style.mjs +2 -2
  148. package/build-module/components/block-toolbar/switch-section-style.mjs.map +2 -2
  149. package/build-module/components/block-visibility/modal.mjs +2 -2
  150. package/build-module/components/block-visibility/modal.mjs.map +2 -2
  151. package/build-module/components/block-visibility/viewport-visibility-info.mjs +2 -2
  152. package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +2 -2
  153. package/build-module/components/colors-gradients/control.mjs +7 -4
  154. package/build-module/components/colors-gradients/control.mjs.map +2 -2
  155. package/build-module/components/global-styles/advanced-panel.mjs +25 -27
  156. package/build-module/components/global-styles/advanced-panel.mjs.map +2 -2
  157. package/build-module/components/global-styles/color-panel.mjs +96 -59
  158. package/build-module/components/global-styles/color-panel.mjs.map +2 -2
  159. package/build-module/components/global-styles/dimensions-panel.mjs +14 -5
  160. package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
  161. package/build-module/components/global-styles/index.mjs +2 -0
  162. package/build-module/components/global-styles/index.mjs.map +2 -2
  163. package/build-module/components/global-styles/shadow-panel-components.mjs +39 -28
  164. package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
  165. package/build-module/components/global-styles/state-control-badges.mjs +48 -0
  166. package/build-module/components/global-styles/state-control-badges.mjs.map +7 -0
  167. package/build-module/components/global-styles/state-control.mjs +57 -71
  168. package/build-module/components/global-styles/state-control.mjs.map +2 -2
  169. package/build-module/components/iframe/index.mjs +0 -3
  170. package/build-module/components/iframe/index.mjs.map +2 -2
  171. package/build-module/components/iframe/use-scale-canvas.mjs +4 -1
  172. package/build-module/components/iframe/use-scale-canvas.mjs.map +2 -2
  173. package/build-module/components/inserter/hooks/use-patterns-state.mjs +8 -7
  174. package/build-module/components/inserter/hooks/use-patterns-state.mjs.map +2 -2
  175. package/build-module/components/inserter/index.mjs +1 -0
  176. package/build-module/components/inserter/index.mjs.map +2 -2
  177. package/build-module/components/inserter/media-tab/media-preview.mjs +27 -19
  178. package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
  179. package/build-module/components/inserter/media-tab/utils.mjs +1 -1
  180. package/build-module/components/inserter/media-tab/utils.mjs.map +2 -2
  181. package/build-module/components/inserter/panel.mjs +2 -2
  182. package/build-module/components/inserter/panel.mjs.map +2 -2
  183. package/build-module/components/inspector-controls/block-support-tools-panel.mjs +10 -2
  184. package/build-module/components/inspector-controls/block-support-tools-panel.mjs.map +2 -2
  185. package/build-module/components/inspector-controls/fill.mjs +18 -5
  186. package/build-module/components/inspector-controls/fill.mjs.map +2 -2
  187. package/build-module/components/inspector-controls/groups.mjs +2 -0
  188. package/build-module/components/inspector-controls/groups.mjs.map +2 -2
  189. package/build-module/components/inspector-controls-tabs/index.mjs +14 -10
  190. package/build-module/components/inspector-controls-tabs/index.mjs.map +2 -2
  191. package/build-module/components/inspector-controls-tabs/settings-tab.mjs +1 -4
  192. package/build-module/components/inspector-controls-tabs/settings-tab.mjs.map +2 -2
  193. package/build-module/components/inspector-controls-tabs/styles-tab.mjs +9 -0
  194. package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
  195. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs +11 -5
  196. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs.map +2 -2
  197. package/build-module/components/list-view/block-select-button.mjs +20 -9
  198. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  199. package/build-module/components/list-view/block.mjs +2 -1
  200. package/build-module/components/list-view/block.mjs.map +2 -2
  201. package/build-module/components/preset-input-control/custom-value-controls.mjs +10 -2
  202. package/build-module/components/preset-input-control/custom-value-controls.mjs.map +2 -2
  203. package/build-module/components/preset-input-control/index.mjs +2 -2
  204. package/build-module/components/preset-input-control/index.mjs.map +2 -2
  205. package/build-module/components/provider/use-media-upload-settings.mjs +1 -0
  206. package/build-module/components/provider/use-media-upload-settings.mjs.map +2 -2
  207. package/build-module/components/rich-text/event-listeners/enter.mjs +9 -2
  208. package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
  209. package/build-module/components/rich-text/event-listeners/paste-handler.mjs +4 -4
  210. package/build-module/components/rich-text/event-listeners/paste-handler.mjs.map +2 -2
  211. package/build-module/hooks/background.mjs +18 -3
  212. package/build-module/hooks/background.mjs.map +2 -2
  213. package/build-module/hooks/block-fields/link/index.mjs +3 -3
  214. package/build-module/hooks/block-fields/link/index.mjs.map +2 -2
  215. package/build-module/hooks/block-fields/media/index.mjs +3 -3
  216. package/build-module/hooks/block-fields/media/index.mjs.map +2 -2
  217. package/build-module/hooks/block-style-state.mjs +79 -0
  218. package/build-module/hooks/block-style-state.mjs.map +7 -0
  219. package/build-module/hooks/border.mjs +18 -3
  220. package/build-module/hooks/border.mjs.map +2 -2
  221. package/build-module/hooks/color.mjs +33 -9
  222. package/build-module/hooks/color.mjs.map +2 -2
  223. package/build-module/hooks/dimensions.mjs +20 -6
  224. package/build-module/hooks/dimensions.mjs.map +2 -2
  225. package/build-module/hooks/layout-child.mjs +141 -61
  226. package/build-module/hooks/layout-child.mjs.map +2 -2
  227. package/build-module/hooks/layout.mjs +270 -58
  228. package/build-module/hooks/layout.mjs.map +2 -2
  229. package/build-module/hooks/state-utils.mjs +64 -0
  230. package/build-module/hooks/state-utils.mjs.map +7 -0
  231. package/build-module/hooks/states.mjs +85 -0
  232. package/build-module/hooks/states.mjs.map +7 -0
  233. package/build-module/hooks/style.mjs +309 -18
  234. package/build-module/hooks/style.mjs.map +2 -2
  235. package/build-module/hooks/typography.mjs +19 -5
  236. package/build-module/hooks/typography.mjs.map +2 -2
  237. package/build-module/layouts/constrained.mjs +130 -57
  238. package/build-module/layouts/constrained.mjs.map +2 -2
  239. package/build-module/layouts/flex.mjs +123 -35
  240. package/build-module/layouts/flex.mjs.map +2 -2
  241. package/build-module/layouts/grid.mjs +105 -42
  242. package/build-module/layouts/grid.mjs.map +2 -2
  243. package/build-module/private-apis.mjs +4 -0
  244. package/build-module/private-apis.mjs.map +2 -2
  245. package/build-module/store/private-actions.mjs +16 -0
  246. package/build-module/store/private-actions.mjs.map +2 -2
  247. package/build-module/store/private-keys.mjs +7 -1
  248. package/build-module/store/private-keys.mjs.map +2 -2
  249. package/build-module/store/private-selectors.mjs +25 -2
  250. package/build-module/store/private-selectors.mjs.map +2 -2
  251. package/build-module/store/reducer.mjs +69 -1
  252. package/build-module/store/reducer.mjs.map +2 -2
  253. package/build-module/store/utils.mjs +5 -2
  254. package/build-module/store/utils.mjs.map +2 -2
  255. package/build-module/utils/color-values.mjs +19 -0
  256. package/build-module/utils/color-values.mjs.map +7 -0
  257. package/build-style/content-rtl.css +18 -3
  258. package/build-style/content.css +18 -3
  259. package/build-style/style-rtl.css +14 -17
  260. package/build-style/style.css +14 -17
  261. package/package.json +41 -41
  262. package/src/components/audio-player/index.native.js +7 -3
  263. package/src/components/block-card/index.js +67 -60
  264. package/src/components/block-heading-level-dropdown/heading-level-icon.js +2 -2
  265. package/src/components/block-icon/index.js +5 -2
  266. package/src/components/block-icon/index.native.js +2 -2
  267. package/src/components/block-inspector/index.js +153 -7
  268. package/src/components/block-inspector/inspector-pre-tabs-slot-fill.js +11 -0
  269. package/src/components/block-list/block-selection-button.native.js +3 -3
  270. package/src/components/block-list/content.scss +0 -6
  271. package/src/components/block-list/use-block-props/index.js +1 -1
  272. package/src/components/block-list/use-block-props/use-focus-handler.js +8 -6
  273. package/src/components/block-list/use-block-props/use-is-hovered.js +32 -15
  274. package/src/components/block-lock/modal.js +4 -4
  275. package/src/components/block-patterns-list/index.js +14 -5
  276. package/src/components/block-patterns-list/stories/index.story.jsx +2 -0
  277. package/src/components/block-patterns-list/style.scss +0 -1
  278. package/src/components/block-popover/index.js +20 -10
  279. package/src/components/block-toolbar/switch-section-style.js +2 -2
  280. package/src/components/block-visibility/modal.js +2 -2
  281. package/src/components/block-visibility/viewport-visibility-info.js +2 -2
  282. package/src/components/colors/test/with-colors.js +1 -1
  283. package/src/components/colors-gradients/control.js +10 -8
  284. package/src/components/colors-gradients/test/control.js +98 -1
  285. package/src/components/global-styles/advanced-panel.js +44 -39
  286. package/src/components/global-styles/color-panel.js +133 -60
  287. package/src/components/global-styles/dimensions-panel.js +17 -4
  288. package/src/components/global-styles/index.js +1 -0
  289. package/src/components/global-styles/shadow-panel-components.js +29 -19
  290. package/src/components/global-styles/state-control-badges.js +58 -0
  291. package/src/components/global-styles/state-control.js +28 -36
  292. package/src/components/global-styles/test/color-panel.js +135 -0
  293. package/src/components/iframe/index.js +0 -3
  294. package/src/components/iframe/use-scale-canvas.js +8 -2
  295. package/src/components/inserter/hooks/use-patterns-state.js +12 -7
  296. package/src/components/inserter/index.js +1 -0
  297. package/src/components/inserter/media-tab/media-preview.js +29 -20
  298. package/src/components/inserter/media-tab/utils.js +1 -1
  299. package/src/components/inserter/panel.js +2 -2
  300. package/src/components/inserter/style.scss +1 -0
  301. package/src/components/inserter-button/index.native.js +5 -2
  302. package/src/components/inspector-controls/block-support-tools-panel.js +10 -2
  303. package/src/components/inspector-controls/fill.js +18 -5
  304. package/src/components/inspector-controls/groups.js +2 -0
  305. package/src/components/inspector-controls-tabs/index.js +9 -5
  306. package/src/components/inspector-controls-tabs/settings-tab.js +1 -7
  307. package/src/components/inspector-controls-tabs/styles-tab.js +6 -0
  308. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +13 -7
  309. package/src/components/list-view/block-select-button.js +19 -9
  310. package/src/components/list-view/block.js +6 -1
  311. package/src/components/media-replace-flow/style.scss +0 -18
  312. package/src/components/preset-input-control/custom-value-controls.js +13 -6
  313. package/src/components/preset-input-control/index.js +2 -2
  314. package/src/components/provider/use-media-upload-settings.js +1 -0
  315. package/src/components/rich-text/event-listeners/enter.js +14 -2
  316. package/src/components/rich-text/event-listeners/paste-handler.js +5 -4
  317. package/src/components/unsupported-block-details/index.native.js +6 -2
  318. package/src/components/video-player/index.native.js +2 -2
  319. package/src/components/warning/index.native.js +2 -2
  320. package/src/hooks/background.js +59 -37
  321. package/src/hooks/block-fields/link/index.js +3 -3
  322. package/src/hooks/block-fields/media/index.js +3 -3
  323. package/src/hooks/block-style-state.js +127 -0
  324. package/src/hooks/border.js +25 -6
  325. package/src/hooks/color.js +40 -18
  326. package/src/hooks/dimensions.js +32 -11
  327. package/src/hooks/layout-child.js +179 -62
  328. package/src/hooks/layout.js +349 -75
  329. package/src/hooks/layout.scss +6 -0
  330. package/src/hooks/state-utils.js +158 -0
  331. package/src/hooks/states.js +109 -0
  332. package/src/hooks/style.js +456 -19
  333. package/src/hooks/test/block-style-state.js +270 -0
  334. package/src/hooks/test/layout.js +185 -0
  335. package/src/hooks/test/state-utils.js +193 -0
  336. package/src/hooks/test/style.js +301 -1
  337. package/src/hooks/typography.js +33 -14
  338. package/src/layouts/constrained.js +182 -95
  339. package/src/layouts/flex.js +141 -36
  340. package/src/layouts/grid.js +122 -32
  341. package/src/layouts/test/flex.js +57 -20
  342. package/src/private-apis.js +4 -0
  343. package/src/store/private-actions.js +32 -0
  344. package/src/store/private-keys.js +4 -0
  345. package/src/store/private-selectors.js +44 -2
  346. package/src/store/reducer.js +105 -1
  347. package/src/store/test/private-actions.js +26 -0
  348. package/src/store/test/private-selectors.js +90 -0
  349. package/src/store/test/reducer.js +363 -0
  350. package/src/store/utils.js +6 -2
  351. package/src/utils/color-values.js +28 -0
  352. package/src/utils/test/color-values.js +78 -0
@@ -8,8 +8,12 @@ import {
8
8
  hasBlockSupport,
9
9
  store as blocksStore,
10
10
  } from '@wordpress/blocks';
11
- import { __unstableMotion as motion } from '@wordpress/components';
12
- import { useSelect } from '@wordpress/data';
11
+ import {
12
+ ToggleControl,
13
+ __experimentalSpacer as Spacer,
14
+ __unstableMotion as motion,
15
+ } from '@wordpress/components';
16
+ import { useDispatch, useSelect } from '@wordpress/data';
13
17
  import { useRef } from '@wordpress/element';
14
18
 
15
19
  /**
@@ -25,6 +29,7 @@ import { store as blockEditorStore } from '../../store';
25
29
  import BlockStyles from '../block-styles';
26
30
  import { ListViewContentPopover } from '../inspector-controls/list-view-content-popover';
27
31
  import InspectorControls from '../inspector-controls';
32
+ import { BlockInspectorPreTabsSlot } from './inspector-pre-tabs-slot-fill';
28
33
  import { default as InspectorControlsTabs } from '../inspector-controls-tabs';
29
34
  import useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';
30
35
  import InspectorControlsLastItem from '../inspector-controls/last-item';
@@ -32,9 +37,16 @@ import AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel
32
37
  import PositionControls from '../inspector-controls-tabs/position-controls-panel';
33
38
  import useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';
34
39
  import { useBorderPanelLabel } from '../../hooks/border';
40
+ import { BlockStateBadges, BlockStatesControl } from '../../hooks/states';
35
41
  import ContentTab from '../inspector-controls-tabs/content-tab';
36
42
  import ViewportVisibilityInfo from '../block-visibility/viewport-visibility-info';
37
43
  import { unlock } from '../../lock-unlock';
44
+ import {
45
+ hasPseudoBlockStyleState,
46
+ hasViewportBlockStyleState,
47
+ isDefaultBlockStyleState,
48
+ } from '../../hooks/block-style-state';
49
+ import { onViewportStateChangeKey } from '../../store/private-keys';
38
50
 
39
51
  function StyleInspectorSlots( {
40
52
  blockName,
@@ -60,13 +72,14 @@ function StyleInspectorSlots( {
60
72
  group="typography"
61
73
  label={ __( 'Typography' ) }
62
74
  />
75
+ <InspectorControls.Slot group="layout" label={ __( 'Layout' ) } />
63
76
  <InspectorControls.Slot
64
77
  group="dimensions"
65
78
  label={ __( 'Dimensions' ) }
66
79
  />
67
80
  <InspectorControls.Slot group="border" label={ borderPanelLabel } />
68
- <InspectorControls.Slot group="styles" />
69
81
  { showPositionControls && <PositionControls /> }
82
+ <InspectorControls.Slot group="styles" />
70
83
  { showBindingsControls && (
71
84
  <InspectorControls.Slot group="bindings" />
72
85
  ) }
@@ -79,6 +92,42 @@ function StyleInspectorSlots( {
79
92
  );
80
93
  }
81
94
 
95
+ function StyleStateInspectorSlots( { blockName, selectedBlockStyleState } ) {
96
+ const borderPanelLabel = useBorderPanelLabel( { blockName } );
97
+ const showLayoutControls =
98
+ hasViewportBlockStyleState( selectedBlockStyleState ) &&
99
+ ! hasPseudoBlockStyleState( selectedBlockStyleState );
100
+ return (
101
+ <>
102
+ <InspectorControls.Slot
103
+ group="color"
104
+ label={ __( 'Color' ) }
105
+ className="color-block-support-panel__inner-wrapper"
106
+ />
107
+ <InspectorControls.Slot
108
+ group="background"
109
+ label={ __( 'Background image' ) }
110
+ className="background-block-support-panel__inner-wrapper"
111
+ />
112
+ <InspectorControls.Slot
113
+ group="typography"
114
+ label={ __( 'Typography' ) }
115
+ />
116
+ { showLayoutControls && (
117
+ <InspectorControls.Slot
118
+ group="layout"
119
+ label={ __( 'Layout' ) }
120
+ />
121
+ ) }
122
+ <InspectorControls.Slot
123
+ group="dimensions"
124
+ label={ __( 'Dimensions' ) }
125
+ />
126
+ <InspectorControls.Slot group="border" label={ borderPanelLabel } />
127
+ </>
128
+ );
129
+ }
130
+
82
131
  function BlockInspector() {
83
132
  const {
84
133
  selectedBlockCount,
@@ -89,6 +138,10 @@ function BlockInspector() {
89
138
  isSectionBlockInSelection,
90
139
  hasBlockStyles,
91
140
  editedContentOnlySection,
141
+ blockEditingMode,
142
+ selectedBlockStyleState,
143
+ showStateOnCanvas,
144
+ onViewportStateChange,
92
145
  } = useSelect( ( select ) => {
93
146
  const {
94
147
  getSelectedBlockClientId,
@@ -99,7 +152,11 @@ function BlockInspector() {
99
152
  isSectionBlock: _isSectionBlock,
100
153
  getEditedContentOnlySection,
101
154
  isWithinEditedContentOnlySection,
155
+ getBlockEditingMode,
156
+ getSelectedBlockStyleState,
157
+ isSelectedBlockStyleStateShownOnCanvas,
102
158
  } = unlock( select( blockEditorStore ) );
159
+ const blockEditorSettings = select( blockEditorStore ).getSettings();
103
160
  const { getBlockStyles } = select( blocksStore );
104
161
  const _selectedBlockClientId = getSelectedBlockClientId();
105
162
  const isWithinEditedSection = isWithinEditedContentOnlySection(
@@ -130,6 +187,15 @@ function BlockInspector() {
130
187
  isSectionBlock: _isSectionBlock( _renderedBlockClientId ),
131
188
  hasBlockStyles: _hasBlockStyles,
132
189
  editedContentOnlySection: getEditedContentOnlySection(),
190
+ blockEditingMode: getBlockEditingMode( _renderedBlockClientId ),
191
+ selectedBlockStyleState: getSelectedBlockStyleState(
192
+ _renderedBlockClientId
193
+ ),
194
+ showStateOnCanvas: isSelectedBlockStyleStateShownOnCanvas(
195
+ _renderedBlockClientId
196
+ ),
197
+ onViewportStateChange:
198
+ blockEditorSettings?.[ onViewportStateChangeKey ],
133
199
  };
134
200
  }, [] );
135
201
 
@@ -198,6 +264,9 @@ function BlockInspector() {
198
264
  useBlockInspectorAnimationSettings( blockType );
199
265
 
200
266
  const hasSelectedBlocks = selectedBlockCount > 1;
267
+ const isBlockStyleStateSelected = ! isDefaultBlockStyleState(
268
+ selectedBlockStyleState
269
+ );
201
270
 
202
271
  if ( hasSelectedBlocks && ! isSectionBlockInSelection ) {
203
272
  return (
@@ -265,6 +334,11 @@ function BlockInspector() {
265
334
  contentClientIds={ contentClientIds }
266
335
  hasBlockStyles={ hasBlockStyles }
267
336
  editedContentOnlySection={ editedContentOnlySection }
337
+ blockEditingMode={ blockEditingMode }
338
+ selectedBlockStyleState={ selectedBlockStyleState }
339
+ showStateOnCanvas={ showStateOnCanvas }
340
+ onViewportStateChange={ onViewportStateChange }
341
+ isBlockStyleStateSelected={ isBlockStyleStateSelected }
268
342
  />
269
343
  </BlockInspectorSingleBlockWrapper>
270
344
  );
@@ -316,6 +390,11 @@ const BlockInspectorSingleBlock = ( {
316
390
  contentClientIds,
317
391
  hasBlockStyles,
318
392
  editedContentOnlySection,
393
+ blockEditingMode,
394
+ selectedBlockStyleState,
395
+ showStateOnCanvas,
396
+ onViewportStateChange,
397
+ isBlockStyleStateSelected,
319
398
  } ) => {
320
399
  const listViewRef = useRef( null );
321
400
  const hasMultipleTabs = availableTabs?.length > 1;
@@ -329,6 +408,38 @@ const BlockInspectorSingleBlock = ( {
329
408
  renderedBlockClientId
330
409
  );
331
410
  const isBlockSynced = blockInformation.isSynced;
411
+ const {
412
+ setSelectedBlockStyleState,
413
+ setSelectedBlockStyleStateCanvasPreview,
414
+ } = unlock( useDispatch( blockEditorStore ) );
415
+ const onBlockStyleStateChange = ( value ) => {
416
+ const nextSelectedBlockStyleState = {
417
+ ...selectedBlockStyleState,
418
+ ...value,
419
+ };
420
+
421
+ setSelectedBlockStyleState(
422
+ renderedBlockClientId,
423
+ nextSelectedBlockStyleState
424
+ );
425
+
426
+ if ( value.viewport ) {
427
+ onViewportStateChange?.( {
428
+ viewport: nextSelectedBlockStyleState.viewport,
429
+ showStateOnCanvas,
430
+ } );
431
+ }
432
+ };
433
+ const onShowStateOnCanvasChange = ( value ) => {
434
+ setSelectedBlockStyleStateCanvasPreview( renderedBlockClientId, value );
435
+
436
+ if ( value ) {
437
+ onViewportStateChange?.( {
438
+ viewport: selectedBlockStyleState.viewport,
439
+ showStateOnCanvas: value,
440
+ } );
441
+ }
442
+ };
332
443
 
333
444
  return (
334
445
  <div className="block-editor-block-inspector">
@@ -347,11 +458,44 @@ const BlockInspectorSingleBlock = ( {
347
458
  className={ isBlockSynced && 'is-synced' }
348
459
  isChild={ hasParentChildBlockCards }
349
460
  clientId={ renderedBlockClientId }
461
+ controls={
462
+ blockEditingMode === 'default' && (
463
+ <BlockStatesControl
464
+ name={ blockName }
465
+ value={ selectedBlockStyleState }
466
+ onChange={ onBlockStyleStateChange }
467
+ />
468
+ )
469
+ }
350
470
  />
471
+ { blockEditingMode === 'default' && isBlockStyleStateSelected && (
472
+ <Spacer paddingX={ 4 } paddingY={ 2 }>
473
+ <ToggleControl
474
+ label={ __( 'Show state on canvas' ) }
475
+ checked={ showStateOnCanvas }
476
+ onChange={ onShowStateOnCanvasChange }
477
+ />
478
+ <BlockStateBadges
479
+ name={ blockName }
480
+ value={ selectedBlockStyleState }
481
+ />
482
+ </Spacer>
483
+ ) }
351
484
  <ViewportVisibilityInfo clientId={ renderedBlockClientId } />
352
485
  <EditContents clientId={ renderedBlockClientId } />
353
- <BlockVariationTransforms blockClientId={ renderedBlockClientId } />
354
- { hasMultipleTabs && (
486
+ { ! isBlockStyleStateSelected && (
487
+ <BlockVariationTransforms
488
+ blockClientId={ renderedBlockClientId }
489
+ />
490
+ ) }
491
+ <BlockInspectorPreTabsSlot />
492
+ { isBlockStyleStateSelected && ! isSectionBlock && (
493
+ <StyleStateInspectorSlots
494
+ blockName={ blockName }
495
+ selectedBlockStyleState={ selectedBlockStyleState }
496
+ />
497
+ ) }
498
+ { ! isBlockStyleStateSelected && hasMultipleTabs && (
355
499
  <>
356
500
  <InspectorControlsTabs
357
501
  hasBlockStyles={ hasBlockStyles }
@@ -363,7 +507,7 @@ const BlockInspectorSingleBlock = ( {
363
507
  />
364
508
  </>
365
509
  ) }
366
- { ! hasMultipleTabs && (
510
+ { ! isBlockStyleStateSelected && ! hasMultipleTabs && (
367
511
  <>
368
512
  { hasBlockStyles && (
369
513
  <BlockStyles clientId={ renderedBlockClientId } />
@@ -377,7 +521,9 @@ const BlockInspectorSingleBlock = ( {
377
521
  ) }
378
522
  </>
379
523
  ) }
380
- <InspectorControlsLastItem.Slot />
524
+ { ! isBlockStyleStateSelected && (
525
+ <InspectorControlsLastItem.Slot />
526
+ ) }
381
527
  <SkipToSelectedBlock key="back" />
382
528
  </div>
383
529
  );
@@ -0,0 +1,11 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { createSlotFill } from '@wordpress/components';
5
+
6
+ const BlockInspectorPreTabsKey = Symbol( 'BlockInspectorPreTabs' );
7
+
8
+ export const {
9
+ Fill: BlockInspectorPreTabsFill,
10
+ Slot: BlockInspectorPreTabsSlot,
11
+ } = createSlotFill( BlockInspectorPreTabsKey );
@@ -1,16 +1,16 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { Icon } from '@wordpress/components';
4
+ import { Icon as WCIcon } from '@wordpress/components';
5
5
  import { withSelect } from '@wordpress/data';
6
6
  import { compose } from '@wordpress/compose';
7
7
  import { getBlockType } from '@wordpress/blocks';
8
+ import { View, Text, TouchableOpacity } from 'react-native';
8
9
  import { BlockIcon } from '@wordpress/block-editor';
9
10
 
10
11
  /**
11
12
  * External dependencies
12
13
  */
13
- import { View, Text, TouchableOpacity } from 'react-native';
14
14
 
15
15
  /**
16
16
  * Internal dependencies
@@ -44,7 +44,7 @@ const BlockSelectionButton = ( {
44
44
  >
45
45
  { rootClientId &&
46
46
  rootBlockIcon && [
47
- <Icon
47
+ <WCIcon
48
48
  key="parent-icon"
49
49
  size={ 24 }
50
50
  icon={ rootBlockIcon.src }
@@ -163,12 +163,6 @@ _::-webkit-full-page-media, _:future, :root [data-has-multi-selection="true"] .b
163
163
  .components-with-notices-ui {
164
164
  margin: 0 0 12px 0;
165
165
  width: 100%;
166
-
167
- .components-notice {
168
- .components-notice__content {
169
- font-size: $default-font-size;
170
- }
171
- }
172
166
  }
173
167
 
174
168
  // Warnings
@@ -185,7 +185,7 @@ export function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {
185
185
  'data-block': clientId,
186
186
  'data-type': name,
187
187
  'data-title': blockTitle,
188
- inert: isSubtreeDisabled ? 'true' : undefined,
188
+ inert: isSubtreeDisabled ? true : undefined,
189
189
  className: clsx(
190
190
  'block-editor-block-list__block',
191
191
  {
@@ -2,13 +2,19 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { useSelect, useDispatch } from '@wordpress/data';
5
- import { useRefEffect } from '@wordpress/compose';
5
+ import {
6
+ useRefEffect,
7
+ privateApis as composePrivateApis,
8
+ } from '@wordpress/compose';
6
9
 
7
10
  /**
8
11
  * Internal dependencies
9
12
  */
10
13
  import { isInsideRootBlock } from '../../../utils/dom';
11
14
  import { store as blockEditorStore } from '../../../store';
15
+ import { unlock } from '../../../lock-unlock';
16
+
17
+ const { subscribeDelegatedListener } = unlock( composePrivateApis );
12
18
 
13
19
  /**
14
20
  * Selects the block if it receives focus.
@@ -57,11 +63,7 @@ export function useFocusHandler( clientId ) {
57
63
  selectBlock( clientId );
58
64
  }
59
65
 
60
- node.addEventListener( 'focusin', onFocus );
61
-
62
- return () => {
63
- node.removeEventListener( 'focusin', onFocus );
64
- };
66
+ return subscribeDelegatedListener( node, 'focusin', onFocus );
65
67
  },
66
68
  [ isBlockSelected, selectBlock ]
67
69
  );
@@ -1,19 +1,17 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useRefEffect } from '@wordpress/compose';
4
+ import {
5
+ useRefEffect,
6
+ privateApis as composePrivateApis,
7
+ } from '@wordpress/compose';
5
8
 
6
- function listener( event ) {
7
- if ( event.defaultPrevented ) {
8
- return;
9
- }
9
+ /**
10
+ * Internal dependencies
11
+ */
12
+ import { unlock } from '../../../lock-unlock';
10
13
 
11
- event.preventDefault();
12
- event.currentTarget.classList.toggle(
13
- 'is-hovered',
14
- event.type === 'mouseover'
15
- );
16
- }
14
+ const { subscribeDelegatedListener } = unlock( composePrivateApis );
17
15
 
18
16
  /**
19
17
  * Adds `is-hovered` class when the block is hovered and in navigation or
@@ -31,12 +29,31 @@ export function useIsHovered( { isEnabled = true } = {} ) {
31
29
  return;
32
30
  }
33
31
 
34
- node.addEventListener( 'mouseout', listener );
35
- node.addEventListener( 'mouseover', listener );
32
+ function listener( event ) {
33
+ if ( event.defaultPrevented ) {
34
+ return;
35
+ }
36
+ event.preventDefault();
37
+ node.classList.toggle(
38
+ 'is-hovered',
39
+ event.type === 'mouseover'
40
+ );
41
+ }
42
+
43
+ const unsubscribeOut = subscribeDelegatedListener(
44
+ node,
45
+ 'mouseout',
46
+ listener
47
+ );
48
+ const unsubscribeOver = subscribeDelegatedListener(
49
+ node,
50
+ 'mouseover',
51
+ listener
52
+ );
36
53
 
37
54
  return () => {
38
- node.removeEventListener( 'mouseout', listener );
39
- node.removeEventListener( 'mouseover', listener );
55
+ unsubscribeOut();
56
+ unsubscribeOver();
40
57
 
41
58
  // Remove class in case it lingers.
42
59
  node.classList.remove( 'is-hovered' );
@@ -8,7 +8,7 @@ import {
8
8
  CheckboxControl,
9
9
  Flex,
10
10
  FlexItem,
11
- Icon,
11
+ Icon as WCIcon,
12
12
  Modal,
13
13
  ToggleControl,
14
14
  } from '@wordpress/components';
@@ -153,7 +153,7 @@ export default function BlockLockModal( { clientId, onClose } ) {
153
153
  } ) )
154
154
  }
155
155
  />
156
- <Icon
156
+ <WCIcon
157
157
  className="block-editor-block-lock-modal__lock-icon"
158
158
  icon={
159
159
  lock.edit
@@ -174,7 +174,7 @@ export default function BlockLockModal( { clientId, onClose } ) {
174
174
  } ) )
175
175
  }
176
176
  />
177
- <Icon
177
+ <WCIcon
178
178
  className="block-editor-block-lock-modal__lock-icon"
179
179
  icon={
180
180
  lock.move ? lockIcon : unlockIcon
@@ -192,7 +192,7 @@ export default function BlockLockModal( { clientId, onClose } ) {
192
192
  } ) )
193
193
  }
194
194
  />
195
- <Icon
195
+ <WCIcon
196
196
  className="block-editor-block-lock-modal__lock-icon"
197
197
  icon={
198
198
  lock.remove ? lockIcon : unlockIcon
@@ -10,10 +10,10 @@ import { cloneBlock } from '@wordpress/blocks';
10
10
  import { useEffect, useState, forwardRef, useMemo } from '@wordpress/element';
11
11
  import {
12
12
  Composite,
13
- Tooltip,
14
13
  __experimentalHStack as HStack,
15
14
  } from '@wordpress/components';
16
- import { VisuallyHidden } from '@wordpress/ui';
15
+ // eslint-disable-next-line @wordpress/use-recommended-components -- `Tooltip` is not yet on the recommended `@wordpress/ui` allow-list; landing as a migration step ahead of the wider rollout.
16
+ import { VisuallyHidden, Text, Tooltip } from '@wordpress/ui';
17
17
  import { useInstanceId } from '@wordpress/compose';
18
18
  import { __ } from '@wordpress/i18n';
19
19
  import { Icon, symbol } from '@wordpress/icons';
@@ -28,7 +28,12 @@ import { INSERTER_PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';
28
28
 
29
29
  const WithToolTip = ( { showTooltip, title, children } ) => {
30
30
  if ( showTooltip ) {
31
- return <Tooltip text={ title }>{ children }</Tooltip>;
31
+ return (
32
+ <Tooltip.Root>
33
+ <Tooltip.Trigger render={ children } />
34
+ <Tooltip.Popup>{ title }</Tooltip.Popup>
35
+ </Tooltip.Root>
36
+ );
32
37
  }
33
38
  return <>{ children }</>;
34
39
  };
@@ -154,9 +159,13 @@ function BlockPattern( {
154
159
  />
155
160
  </div>
156
161
  ) }
157
- <div className="block-editor-block-patterns-list__item-title">
162
+ <Text
163
+ render={ <div /> }
164
+ className="block-editor-block-patterns-list__item-title"
165
+ variant="body-sm"
166
+ >
158
167
  { pattern.title }
159
- </div>
168
+ </Text>
160
169
  </HStack>
161
170
  ) }
162
171
 
@@ -9,6 +9,8 @@ import { fn } from 'storybook/test';
9
9
  import BlockPatternsList from '../';
10
10
  import { ExperimentalBlockEditorProvider } from '../../provider';
11
11
  import patterns from './fixtures';
12
+ // Reason: Styles are contained in ExperimentalBlockEditorProvider iframe.
13
+ // eslint-disable-next-line @wordpress/no-non-module-stylesheet-imports
12
14
  import blockLibraryStyles from '../../../../../block-library/build-style/style.css?raw';
13
15
 
14
16
  const blockEditorSettings = {
@@ -33,7 +33,6 @@
33
33
 
34
34
  .block-editor-block-patterns-list__item-title {
35
35
  flex-grow: 1;
36
- font-size: $helptext-font-size;
37
36
  text-align: left;
38
37
  }
39
38
 
@@ -52,25 +52,35 @@ function BlockPopover(
52
52
  0
53
53
  );
54
54
 
55
- // When blocks are moved up/down, they are animated to their new position by
56
- // updating the `transform` property manually (i.e. without using CSS
57
- // transitions or animations). The animation, which can also scroll the block
58
- // editor, can sometimes cause the position of the Popover to get out of sync.
59
- // A MutationObserver is therefore used to make sure that changes to the
60
- // selectedElement's attribute (i.e. `transform`) can be tracked and used to
61
- // trigger the Popover to rerender.
55
+ // `useMovingAnimation` writes the block's `transform` on every spring tick.
56
+ // Reacting synchronously to each mutation would race with Floating UI's own
57
+ // autoUpdate frame loop and cause the toolbar to visibly jump. Coalescing
58
+ // to one recompute per animation frame avoids that. The observer can't
59
+ // simply be removed: with autoUpdate's animationFrame mode alone, the
60
+ // toolbar trails the block by ~1 frame because the spring's rAF and
61
+ // autoUpdate's rAF are independently scheduled.
62
62
  useLayoutEffect( () => {
63
63
  if ( ! selectedElement ) {
64
64
  return;
65
65
  }
66
66
 
67
- const observer = new window.MutationObserver(
68
- forceRecomputePopoverDimensions
69
- );
67
+ let rafId;
68
+ const observer = new window.MutationObserver( () => {
69
+ if ( rafId ) {
70
+ return;
71
+ }
72
+ rafId = window.requestAnimationFrame( () => {
73
+ rafId = null;
74
+ forceRecomputePopoverDimensions();
75
+ } );
76
+ } );
70
77
  observer.observe( selectedElement, { attributes: true } );
71
78
 
72
79
  return () => {
73
80
  observer.disconnect();
81
+ if ( rafId ) {
82
+ window.cancelAnimationFrame( rafId );
83
+ }
74
84
  };
75
85
  }, [ selectedElement ] );
76
86
 
@@ -4,7 +4,7 @@
4
4
  import {
5
5
  ToolbarButton,
6
6
  ToolbarGroup,
7
- Icon,
7
+ Icon as WCIcon,
8
8
  Path,
9
9
  SVG,
10
10
  } from '@wordpress/components';
@@ -98,7 +98,7 @@ function SwitchSectionStyle( { clientId } ) {
98
98
  onClick={ handleStyleSwitch }
99
99
  label={ __( 'Shuffle styles' ) }
100
100
  >
101
- <Icon
101
+ <WCIcon
102
102
  icon={ styleIcon }
103
103
  style={ {
104
104
  fill: activeStyleBackground || 'transparent',
@@ -18,7 +18,7 @@ import {
18
18
  CheckboxControl,
19
19
  Flex,
20
20
  FlexItem,
21
- Icon,
21
+ Icon as WCIcon,
22
22
  Modal,
23
23
  } from '@wordpress/components';
24
24
  import { useDispatch, useSelect } from '@wordpress/data';
@@ -287,7 +287,7 @@ export default function BlockVisibilityModal( { clientIds, onClose } ) {
287
287
  )
288
288
  }
289
289
  />
290
- <Icon
290
+ <WCIcon
291
291
  icon={ icon }
292
292
  className={ clsx( {
293
293
  'block-editor-block-visibility-modal__options-icon--checked':
@@ -2,7 +2,7 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import {
5
- Icon,
5
+ Icon as WCIcon,
6
6
  __experimentalText as WCText,
7
7
  __experimentalHStack as HStack,
8
8
  privateApis as componentsPrivateApis,
@@ -130,7 +130,7 @@ export default function ViewportVisibilityInfo( { clientId } ) {
130
130
  return (
131
131
  <WCBadge className="block-editor-block-visibility-info">
132
132
  <HStack spacing={ 2 } justify="start">
133
- <Icon icon={ unseen } />
133
+ <WCIcon icon={ unseen } />
134
134
  <WCText>{ label }</WCText>
135
135
  </HStack>
136
136
  </WCBadge>
@@ -37,7 +37,7 @@ describe( 'createCustomColorsHOC', () => {
37
37
  colors: undefined,
38
38
  setBackgroundColor: expect.any( Function ),
39
39
  } ),
40
- expect.anything()
40
+ undefined
41
41
  );
42
42
  } );
43
43