@wordpress/block-editor 12.0.0 → 12.1.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 (311) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +1 -1
  3. package/build/components/block-controls/slot.js +12 -4
  4. package/build/components/block-controls/slot.js.map +1 -1
  5. package/build/components/block-controls/slot.native.js +10 -1
  6. package/build/components/block-controls/slot.native.js.map +1 -1
  7. package/build/components/block-draggable/index.js +11 -7
  8. package/build/components/block-draggable/index.js.map +1 -1
  9. package/build/components/block-draggable/use-scroll-when-dragging.js +2 -2
  10. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  11. package/build/components/block-list/block-invalid-warning.native.js +15 -7
  12. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  13. package/build/components/block-list/block-list-item-cell.native.js +15 -2
  14. package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
  15. package/build/components/block-list/block-list-item.native.js +158 -195
  16. package/build/components/block-list/block-list-item.native.js.map +1 -1
  17. package/build/components/block-list/block-outline.native.js +57 -0
  18. package/build/components/block-list/block-outline.native.js.map +1 -0
  19. package/build/components/block-list/block.native.js +343 -299
  20. package/build/components/block-list/block.native.js.map +1 -1
  21. package/build/components/block-list/index.native.js +202 -298
  22. package/build/components/block-list/index.native.js.map +1 -1
  23. package/build/components/block-list/insertion-point.native.js +4 -2
  24. package/build/components/block-list/insertion-point.native.js.map +1 -1
  25. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +1 -1
  26. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  27. package/build/components/block-settings-menu/block-settings-dropdown.js +8 -10
  28. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  29. package/build/components/block-settings-menu-controls/index.js +15 -4
  30. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  31. package/build/components/block-tools/block-contextual-toolbar.js +17 -62
  32. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  33. package/build/components/block-tools/selected-block-popover.js +3 -8
  34. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  35. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  36. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  37. package/build/components/global-styles/advanced-panel.js +86 -0
  38. package/build/components/global-styles/advanced-panel.js.map +1 -0
  39. package/build/components/global-styles/color-panel.js +4 -1
  40. package/build/components/global-styles/color-panel.js.map +1 -1
  41. package/build/components/global-styles/dimensions-panel.js +6 -6
  42. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  43. package/build/components/global-styles/hooks.js +1 -2
  44. package/build/components/global-styles/hooks.js.map +1 -1
  45. package/build/components/global-styles/index.js +24 -0
  46. package/build/components/global-styles/index.js.map +1 -1
  47. package/build/components/global-styles/typography-panel.js +1 -1
  48. package/build/components/global-styles/typography-panel.js.map +1 -1
  49. package/build/components/global-styles/use-global-styles-output.js +27 -4
  50. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  51. package/build/components/global-styles/utils.js +30 -0
  52. package/build/components/global-styles/utils.js.map +1 -1
  53. package/build/components/image-editor/use-save-image.js +24 -8
  54. package/build/components/image-editor/use-save-image.js.map +1 -1
  55. package/build/components/inserter-draggable-blocks/index.js +5 -0
  56. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  57. package/build/components/inspector-controls/fill.js +1 -1
  58. package/build/components/inspector-controls/fill.js.map +1 -1
  59. package/build/components/inspector-controls/fill.native.js +1 -1
  60. package/build/components/inspector-controls/fill.native.js.map +1 -1
  61. package/build/components/inspector-controls/slot.js +3 -6
  62. package/build/components/inspector-controls/slot.js.map +1 -1
  63. package/build/components/inspector-controls/slot.native.js +1 -1
  64. package/build/components/inspector-controls/slot.native.js.map +1 -1
  65. package/build/components/line-height-control/index.js +7 -2
  66. package/build/components/line-height-control/index.js.map +1 -1
  67. package/build/components/link-control/use-internal-input-value.js +9 -8
  68. package/build/components/link-control/use-internal-input-value.js.map +1 -1
  69. package/build/components/list-view/block-contents.js +7 -2
  70. package/build/components/list-view/block-contents.js.map +1 -1
  71. package/build/components/list-view/block-select-button.js +2 -1
  72. package/build/components/list-view/block-select-button.js.map +1 -1
  73. package/build/components/list-view/block.js +4 -4
  74. package/build/components/list-view/block.js.map +1 -1
  75. package/build/components/list-view/index.js +32 -18
  76. package/build/components/list-view/index.js.map +1 -1
  77. package/build/components/list-view/use-list-view-drop-zone.js +163 -11
  78. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  79. package/build/components/media-placeholder/index.js +68 -7
  80. package/build/components/media-placeholder/index.js.map +1 -1
  81. package/build/components/multi-selection-inspector/index.js +2 -2
  82. package/build/components/multi-selection-inspector/index.js.map +1 -1
  83. package/build/components/off-canvas-editor/leaf-more-menu.js +3 -1
  84. package/build/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
  85. package/build/components/preview-options/index.js +6 -1
  86. package/build/components/preview-options/index.js.map +1 -1
  87. package/build/components/spacing-sizes-control/spacing-input-control.js +1 -1
  88. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  89. package/build/components/url-input/index.js +1 -2
  90. package/build/components/url-input/index.js.map +1 -1
  91. package/build/hooks/align.js +1 -1
  92. package/build/hooks/align.js.map +1 -1
  93. package/build/hooks/border.js +1 -1
  94. package/build/hooks/border.js.map +1 -1
  95. package/build/hooks/color.js +1 -1
  96. package/build/hooks/color.js.map +1 -1
  97. package/build/hooks/content-lock-ui.js +8 -12
  98. package/build/hooks/content-lock-ui.js.map +1 -1
  99. package/build/hooks/duotone.js +1 -1
  100. package/build/hooks/duotone.js.map +1 -1
  101. package/build/hooks/index.native.js +8 -0
  102. package/build/hooks/index.native.js.map +1 -1
  103. package/build/hooks/layout.js +2 -2
  104. package/build/hooks/layout.js.map +1 -1
  105. package/build/hooks/position.js +1 -1
  106. package/build/hooks/position.js.map +1 -1
  107. package/build/hooks/style.js +1 -1
  108. package/build/hooks/style.js.map +1 -1
  109. package/build/hooks/use-editor-wrapper-styles.native.js +255 -0
  110. package/build/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  111. package/build/hooks/use-typography-props.js +14 -10
  112. package/build/hooks/use-typography-props.js.map +1 -1
  113. package/build/index.native.js +31 -0
  114. package/build/index.native.js.map +1 -0
  115. package/build/utils/use-should-contextual-toolbar-show.js +16 -12
  116. package/build/utils/use-should-contextual-toolbar-show.js.map +1 -1
  117. package/build-module/components/block-controls/slot.js +11 -4
  118. package/build-module/components/block-controls/slot.js.map +1 -1
  119. package/build-module/components/block-controls/slot.native.js +9 -1
  120. package/build-module/components/block-controls/slot.native.js.map +1 -1
  121. package/build-module/components/block-draggable/index.js +10 -6
  122. package/build-module/components/block-draggable/index.js.map +1 -1
  123. package/build-module/components/block-draggable/use-scroll-when-dragging.js +2 -2
  124. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  125. package/build-module/components/block-list/block-invalid-warning.native.js +16 -8
  126. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  127. package/build-module/components/block-list/block-list-item-cell.native.js +13 -2
  128. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
  129. package/build-module/components/block-list/block-list-item.native.js +160 -190
  130. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  131. package/build-module/components/block-list/block-outline.native.js +44 -0
  132. package/build-module/components/block-list/block-outline.native.js.map +1 -0
  133. package/build-module/components/block-list/block.native.js +341 -298
  134. package/build-module/components/block-list/block.native.js.map +1 -1
  135. package/build-module/components/block-list/index.native.js +203 -293
  136. package/build-module/components/block-list/index.native.js.map +1 -1
  137. package/build-module/components/block-list/insertion-point.native.js +4 -2
  138. package/build-module/components/block-list/insertion-point.native.js.map +1 -1
  139. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +1 -1
  140. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  141. package/build-module/components/block-settings-menu/block-settings-dropdown.js +8 -9
  142. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  143. package/build-module/components/block-settings-menu-controls/index.js +13 -5
  144. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  145. package/build-module/components/block-tools/block-contextual-toolbar.js +18 -62
  146. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  147. package/build-module/components/block-tools/selected-block-popover.js +3 -7
  148. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  149. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  150. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  151. package/build-module/components/global-styles/advanced-panel.js +74 -0
  152. package/build-module/components/global-styles/advanced-panel.js.map +1 -0
  153. package/build-module/components/global-styles/color-panel.js +5 -2
  154. package/build-module/components/global-styles/color-panel.js.map +1 -1
  155. package/build-module/components/global-styles/dimensions-panel.js +6 -6
  156. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  157. package/build-module/components/global-styles/hooks.js +1 -2
  158. package/build-module/components/global-styles/hooks.js.map +1 -1
  159. package/build-module/components/global-styles/index.js +3 -1
  160. package/build-module/components/global-styles/index.js.map +1 -1
  161. package/build-module/components/global-styles/typography-panel.js +1 -1
  162. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  163. package/build-module/components/global-styles/use-global-styles-output.js +25 -4
  164. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  165. package/build-module/components/global-styles/utils.js +25 -0
  166. package/build-module/components/global-styles/utils.js.map +1 -1
  167. package/build-module/components/image-editor/use-save-image.js +24 -8
  168. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  169. package/build-module/components/inserter-draggable-blocks/index.js +4 -0
  170. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  171. package/build-module/components/inspector-controls/fill.js +1 -1
  172. package/build-module/components/inspector-controls/fill.js.map +1 -1
  173. package/build-module/components/inspector-controls/fill.native.js +1 -1
  174. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  175. package/build-module/components/inspector-controls/slot.js +4 -7
  176. package/build-module/components/inspector-controls/slot.js.map +1 -1
  177. package/build-module/components/inspector-controls/slot.native.js +1 -1
  178. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  179. package/build-module/components/line-height-control/index.js +7 -2
  180. package/build-module/components/line-height-control/index.js.map +1 -1
  181. package/build-module/components/link-control/use-internal-input-value.js +9 -8
  182. package/build-module/components/link-control/use-internal-input-value.js.map +1 -1
  183. package/build-module/components/list-view/block-contents.js +7 -3
  184. package/build-module/components/list-view/block-contents.js.map +1 -1
  185. package/build-module/components/list-view/block-select-button.js +2 -1
  186. package/build-module/components/list-view/block-select-button.js.map +1 -1
  187. package/build-module/components/list-view/block.js +4 -4
  188. package/build-module/components/list-view/block.js.map +1 -1
  189. package/build-module/components/list-view/index.js +32 -18
  190. package/build-module/components/list-view/index.js.map +1 -1
  191. package/build-module/components/list-view/use-list-view-drop-zone.js +160 -11
  192. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  193. package/build-module/components/media-placeholder/index.js +66 -7
  194. package/build-module/components/media-placeholder/index.js.map +1 -1
  195. package/build-module/components/multi-selection-inspector/index.js +2 -2
  196. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  197. package/build-module/components/off-canvas-editor/leaf-more-menu.js +3 -1
  198. package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
  199. package/build-module/components/preview-options/index.js +7 -2
  200. package/build-module/components/preview-options/index.js.map +1 -1
  201. package/build-module/components/spacing-sizes-control/spacing-input-control.js +1 -1
  202. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  203. package/build-module/components/url-input/index.js +1 -2
  204. package/build-module/components/url-input/index.js.map +1 -1
  205. package/build-module/hooks/align.js +1 -1
  206. package/build-module/hooks/align.js.map +1 -1
  207. package/build-module/hooks/border.js +1 -1
  208. package/build-module/hooks/border.js.map +1 -1
  209. package/build-module/hooks/color.js +1 -1
  210. package/build-module/hooks/color.js.map +1 -1
  211. package/build-module/hooks/content-lock-ui.js +8 -11
  212. package/build-module/hooks/content-lock-ui.js.map +1 -1
  213. package/build-module/hooks/duotone.js +1 -1
  214. package/build-module/hooks/duotone.js.map +1 -1
  215. package/build-module/hooks/index.native.js +1 -0
  216. package/build-module/hooks/index.native.js.map +1 -1
  217. package/build-module/hooks/layout.js +2 -2
  218. package/build-module/hooks/layout.js.map +1 -1
  219. package/build-module/hooks/position.js +1 -1
  220. package/build-module/hooks/position.js.map +1 -1
  221. package/build-module/hooks/style.js +1 -1
  222. package/build-module/hooks/style.js.map +1 -1
  223. package/build-module/hooks/use-editor-wrapper-styles.native.js +242 -0
  224. package/build-module/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  225. package/build-module/hooks/use-typography-props.js +14 -10
  226. package/build-module/hooks/use-typography-props.js.map +1 -1
  227. package/build-module/index.native.js +6 -0
  228. package/build-module/index.native.js.map +1 -0
  229. package/build-module/utils/use-should-contextual-toolbar-show.js +16 -12
  230. package/build-module/utils/use-should-contextual-toolbar-show.js.map +1 -1
  231. package/build-style/content-rtl.css +0 -1
  232. package/build-style/content.css +0 -1
  233. package/build-style/style-rtl.css +37 -13
  234. package/build-style/style.css +37 -13
  235. package/package.json +31 -31
  236. package/src/components/block-breadcrumb/style.scss +2 -1
  237. package/src/components/block-controls/slot.js +8 -4
  238. package/src/components/block-controls/slot.native.js +6 -1
  239. package/src/components/block-draggable/index.js +10 -6
  240. package/src/components/block-draggable/use-scroll-when-dragging.js +8 -2
  241. package/src/components/block-list/block-invalid-warning.native.js +17 -9
  242. package/src/components/block-list/block-list-item-cell.native.js +10 -1
  243. package/src/components/block-list/block-list-item.native.js +180 -208
  244. package/src/components/block-list/block-outline.native.js +58 -0
  245. package/src/components/block-list/block.native.js +564 -523
  246. package/src/components/block-list/content.scss +0 -1
  247. package/src/components/block-list/index.native.js +229 -298
  248. package/src/components/block-list/insertion-point.native.js +2 -2
  249. package/src/components/block-list/test/block-invalid-warning.native.js +48 -0
  250. package/src/components/block-list/test/index.native.js +205 -0
  251. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +3 -1
  252. package/src/components/block-pattern-setup/style.scss +1 -4
  253. package/src/components/block-patterns-list/style.scss +1 -4
  254. package/src/components/block-settings-menu/block-settings-dropdown.js +10 -17
  255. package/src/components/block-settings-menu-controls/index.js +24 -4
  256. package/src/components/block-styles/style.scss +4 -4
  257. package/src/components/block-tools/block-contextual-toolbar.js +28 -62
  258. package/src/components/block-tools/selected-block-popover.js +3 -5
  259. package/src/components/block-tools/style.scss +8 -0
  260. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +16 -2
  261. package/src/components/global-styles/advanced-panel.js +82 -0
  262. package/src/components/global-styles/color-panel.js +6 -1
  263. package/src/components/global-styles/dimensions-panel.js +6 -6
  264. package/src/components/global-styles/hooks.js +1 -5
  265. package/src/components/global-styles/index.js +6 -1
  266. package/src/components/global-styles/style.scss +14 -0
  267. package/src/components/global-styles/test/utils.js +57 -1
  268. package/src/components/global-styles/typography-panel.js +1 -1
  269. package/src/components/global-styles/use-global-styles-output.js +21 -3
  270. package/src/components/global-styles/utils.js +27 -0
  271. package/src/components/image-editor/use-save-image.js +20 -9
  272. package/src/components/inserter-draggable-blocks/index.js +4 -0
  273. package/src/components/inspector-controls/fill.js +1 -1
  274. package/src/components/inspector-controls/fill.native.js +1 -1
  275. package/src/components/inspector-controls/slot.js +4 -9
  276. package/src/components/inspector-controls/slot.native.js +1 -1
  277. package/src/components/line-height-control/index.js +7 -2
  278. package/src/components/line-height-control/stories/index.js +1 -1
  279. package/src/components/link-control/test/index.js +42 -0
  280. package/src/components/link-control/use-internal-input-value.js +8 -7
  281. package/src/components/list-view/block-contents.js +26 -20
  282. package/src/components/list-view/block-select-button.js +5 -1
  283. package/src/components/list-view/block.js +5 -2
  284. package/src/components/list-view/index.js +26 -14
  285. package/src/components/list-view/style.scss +5 -2
  286. package/src/components/list-view/test/use-list-view-drop-zone.js +88 -12
  287. package/src/components/list-view/use-list-view-drop-zone.js +194 -11
  288. package/src/components/media-placeholder/index.js +74 -1
  289. package/src/components/multi-selection-inspector/index.js +2 -2
  290. package/src/components/off-canvas-editor/leaf-more-menu.js +2 -1
  291. package/src/components/preview-options/index.js +9 -2
  292. package/src/components/spacing-sizes-control/spacing-input-control.js +1 -0
  293. package/src/components/url-input/index.js +1 -2
  294. package/src/hooks/align.js +2 -1
  295. package/src/hooks/border.js +2 -1
  296. package/src/hooks/color.js +2 -1
  297. package/src/hooks/content-lock-ui.js +3 -15
  298. package/src/hooks/duotone.js +1 -0
  299. package/src/hooks/index.native.js +1 -0
  300. package/src/hooks/layout.js +4 -2
  301. package/src/hooks/position.js +2 -1
  302. package/src/hooks/style.js +2 -1
  303. package/src/hooks/test/use-editor-wrapper-styles.native.js +282 -0
  304. package/src/hooks/test/use-typography-props.js +47 -2
  305. package/src/hooks/use-editor-wrapper-styles.native.js +250 -0
  306. package/src/hooks/use-editor-wrapper-styles.native.scss +11 -0
  307. package/src/hooks/use-typography-props.js +10 -11
  308. package/src/index.native.js +6 -0
  309. package/src/utils/use-should-contextual-toolbar-show.js +19 -9
  310. package/tsconfig.json +1 -0
  311. package/tsconfig.tsbuildinfo +1 -1
@@ -10,7 +10,7 @@ import classnames from 'classnames';
10
10
  */
11
11
 
12
12
  import { __ } from '@wordpress/i18n';
13
- import { forwardRef, useEffect, useRef, useState } from '@wordpress/element';
13
+ import { useEffect, useRef, useState } from '@wordpress/element';
14
14
  import { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';
15
15
  import { useSelect } from '@wordpress/data';
16
16
  import { ToolbarItem, ToolbarButton, ToolbarGroup } from '@wordpress/components';
@@ -24,62 +24,17 @@ import NavigableToolbar from '../navigable-toolbar';
24
24
  import BlockToolbar from '../block-toolbar';
25
25
  import { store as blockEditorStore } from '../../store';
26
26
  import BlockIcon from '../block-icon';
27
- const CollapseFixedToolbarButton = forwardRef((_ref, ref) => {
28
- let {
29
- onClick
30
- } = _ref;
31
- return createElement(ToolbarItem, {
32
- as: ToolbarButton,
33
- className: "block-editor-block-toolbar__collapse-fixed-toolbar",
34
- icon: levelUp,
35
- onClick: onClick,
36
- ref: ref,
37
- label: __('Show document tools')
38
- });
39
- });
40
- const ExpandFixedToolbarButton = forwardRef((_ref2, ref) => {
41
- let {
42
- onClick,
43
- icon
44
- } = _ref2;
45
- return createElement(ToolbarItem, {
46
- as: ToolbarButton,
47
- className: "block-editor-block-toolbar__expand-fixed-toolbar",
48
- icon: createElement(BlockIcon, {
49
- icon: icon
50
- }),
51
- onClick: onClick,
52
- ref: ref,
53
- label: __('Show block tools')
54
- });
55
- });
56
27
 
57
- function BlockContextualToolbar(_ref3) {
28
+ function BlockContextualToolbar(_ref) {
58
29
  let {
59
30
  focusOnMount,
60
31
  isFixed,
61
32
  ...props
62
- } = _ref3;
33
+ } = _ref;
63
34
  // When the toolbar is fixed it can be collapsed
64
35
  const [isCollapsed, setIsCollapsed] = useState(false);
65
- const expandFixedToolbarButtonRef = useRef();
66
- const collapseFixedToolbarButtonRef = useRef(); // Don't focus the block toolbar just because it mounts
67
-
68
- const initialRender = useRef(true);
69
- useEffect(() => {
70
- if (initialRender.current) {
71
- initialRender.current = false;
72
- return;
73
- }
74
-
75
- if (isCollapsed && expandFixedToolbarButtonRef.current) {
76
- expandFixedToolbarButtonRef.current.focus();
77
- }
78
-
79
- if (!isCollapsed && collapseFixedToolbarButtonRef.current) {
80
- collapseFixedToolbarButtonRef.current.focus();
81
- }
82
- }, [isCollapsed]);
36
+ const toolbarButtonRef = useRef();
37
+ const isLargeViewport = useViewportMatch('medium');
83
38
  const {
84
39
  blockType,
85
40
  hasParents,
@@ -111,12 +66,9 @@ function BlockContextualToolbar(_ref3) {
111
66
  useEffect(() => {
112
67
  setIsCollapsed(false);
113
68
  }, [selectedBlockClientId]);
114
- const isLargeViewport = useViewportMatch('medium');
115
69
 
116
- if (blockType) {
117
- if (!hasBlockSupport(blockType, '__experimentalToolbar', true)) {
118
- return null;
119
- }
70
+ if (blockType && !hasBlockSupport(blockType, '__experimentalToolbar', true)) {
71
+ return null;
120
72
  } // Shifts the toolbar to make room for the parent block selector.
121
73
 
122
74
 
@@ -133,13 +85,17 @@ function BlockContextualToolbar(_ref3) {
133
85
  "aria-label": __('Block tools')
134
86
  }, props), isFixed && isLargeViewport && blockType && createElement(ToolbarGroup, {
135
87
  className: isCollapsed ? 'block-editor-block-toolbar__group-expand-fixed-toolbar' : 'block-editor-block-toolbar__group-collapse-fixed-toolbar'
136
- }, isCollapsed ? createElement(ExpandFixedToolbarButton, {
137
- onClick: () => setIsCollapsed(false),
138
- icon: blockType.icon,
139
- ref: expandFixedToolbarButtonRef
140
- }) : createElement(CollapseFixedToolbarButton, {
141
- onClick: () => setIsCollapsed(true),
142
- ref: collapseFixedToolbarButtonRef
88
+ }, createElement(ToolbarItem, {
89
+ as: ToolbarButton,
90
+ ref: toolbarButtonRef,
91
+ icon: isCollapsed ? createElement(BlockIcon, {
92
+ icon: blockType.icon
93
+ }) : levelUp,
94
+ onClick: () => {
95
+ setIsCollapsed(collapsed => !collapsed);
96
+ toolbarButtonRef.current.focus();
97
+ },
98
+ label: isCollapsed ? __('Show block tools') : __('Show document tools')
143
99
  })), !isCollapsed && createElement(BlockToolbar, {
144
100
  hideDragHandle: isFixed
145
101
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/block-contextual-toolbar.js"],"names":["classnames","__","forwardRef","useEffect","useRef","useState","hasBlockSupport","store","blocksStore","useSelect","ToolbarItem","ToolbarButton","ToolbarGroup","levelUp","useViewportMatch","NavigableToolbar","BlockToolbar","blockEditorStore","BlockIcon","CollapseFixedToolbarButton","ref","onClick","ExpandFixedToolbarButton","icon","BlockContextualToolbar","focusOnMount","isFixed","props","isCollapsed","setIsCollapsed","expandFixedToolbarButtonRef","collapseFixedToolbarButtonRef","initialRender","current","focus","blockType","hasParents","showParentSelector","selectedBlockClientId","select","getBlockName","getBlockParents","getSelectedBlockClientIds","__unstableGetContentLockingParent","getBlockType","selectedBlockClientIds","_selectedBlockClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","isLargeViewport","classes"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef, useEffect, useRef, useState } from '@wordpress/element';\nimport { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tToolbarItem,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { levelUp } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport NavigableToolbar from '../navigable-toolbar';\nimport BlockToolbar from '../block-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\n\nconst CollapseFixedToolbarButton = forwardRef( ( { onClick }, ref ) => {\n\treturn (\n\t\t<ToolbarItem\n\t\t\tas={ ToolbarButton }\n\t\t\tclassName=\"block-editor-block-toolbar__collapse-fixed-toolbar\"\n\t\t\ticon={ levelUp }\n\t\t\tonClick={ onClick }\n\t\t\tref={ ref }\n\t\t\tlabel={ __( 'Show document tools' ) }\n\t\t/>\n\t);\n} );\n\nconst ExpandFixedToolbarButton = forwardRef( ( { onClick, icon }, ref ) => {\n\treturn (\n\t\t<ToolbarItem\n\t\t\tas={ ToolbarButton }\n\t\t\tclassName=\"block-editor-block-toolbar__expand-fixed-toolbar\"\n\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\tonClick={ onClick }\n\t\t\tref={ ref }\n\t\t\tlabel={ __( 'Show block tools' ) }\n\t\t/>\n\t);\n} );\n\nfunction BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {\n\t// When the toolbar is fixed it can be collapsed\n\tconst [ isCollapsed, setIsCollapsed ] = useState( false );\n\tconst expandFixedToolbarButtonRef = useRef();\n\tconst collapseFixedToolbarButtonRef = useRef();\n\n\t// Don't focus the block toolbar just because it mounts\n\tconst initialRender = useRef( true );\n\tuseEffect( () => {\n\t\tif ( initialRender.current ) {\n\t\t\tinitialRender.current = false;\n\t\t\treturn;\n\t\t}\n\t\tif ( isCollapsed && expandFixedToolbarButtonRef.current ) {\n\t\t\texpandFixedToolbarButtonRef.current.focus();\n\t\t}\n\t\tif ( ! isCollapsed && collapseFixedToolbarButtonRef.current ) {\n\t\t\tcollapseFixedToolbarButtonRef.current.focus();\n\t\t}\n\t}, [ isCollapsed ] );\n\n\tconst { blockType, hasParents, showParentSelector, selectedBlockClientId } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetContentLockingParent,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockType } = select( blocksStore );\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\t\tconst _selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst parents = getBlockParents( _selectedBlockClientId );\n\t\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\t\tconst parentBlockType = getBlockType( parentBlockName );\n\n\t\t\treturn {\n\t\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\t\tblockType:\n\t\t\t\t\t_selectedBlockClientId &&\n\t\t\t\t\tgetBlockType( getBlockName( _selectedBlockClientId ) ),\n\t\t\t\thasParents: parents.length,\n\t\t\t\tshowParentSelector:\n\t\t\t\t\tparentBlockType &&\n\t\t\t\t\thasBlockSupport(\n\t\t\t\t\t\tparentBlockType,\n\t\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) &&\n\t\t\t\t\tselectedBlockClientIds.length <= 1 &&\n\t\t\t\t\t! __unstableGetContentLockingParent(\n\t\t\t\t\t\t_selectedBlockClientId\n\t\t\t\t\t),\n\t\t\t};\n\t\t}, [] );\n\n\tuseEffect( () => {\n\t\tsetIsCollapsed( false );\n\t}, [ selectedBlockClientId ] );\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\n\tif ( blockType ) {\n\t\tif ( ! hasBlockSupport( blockType, '__experimentalToolbar', true ) ) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = classnames( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': hasParents && showParentSelector,\n\t\t'is-fixed': isFixed,\n\t\t'is-collapsed': isCollapsed,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ isFixed && isLargeViewport && blockType && (\n\t\t\t\t<ToolbarGroup\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tisCollapsed\n\t\t\t\t\t\t\t? 'block-editor-block-toolbar__group-expand-fixed-toolbar'\n\t\t\t\t\t\t\t: 'block-editor-block-toolbar__group-collapse-fixed-toolbar'\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isCollapsed ? (\n\t\t\t\t\t\t<ExpandFixedToolbarButton\n\t\t\t\t\t\t\tonClick={ () => setIsCollapsed( false ) }\n\t\t\t\t\t\t\ticon={ blockType.icon }\n\t\t\t\t\t\t\tref={ expandFixedToolbarButtonRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<CollapseFixedToolbarButton\n\t\t\t\t\t\t\tonClick={ () => setIsCollapsed( true ) }\n\t\t\t\t\t\t\tref={ collapseFixedToolbarButtonRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarGroup>\n\t\t\t) }\n\t\t\t{ ! isCollapsed && <BlockToolbar hideDragHandle={ isFixed } /> }\n\t\t</NavigableToolbar>\n\t);\n}\n\nexport default BlockContextualToolbar;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/block-contextual-toolbar.js"],"names":["classnames","__","useEffect","useRef","useState","hasBlockSupport","store","blocksStore","useSelect","ToolbarItem","ToolbarButton","ToolbarGroup","levelUp","useViewportMatch","NavigableToolbar","BlockToolbar","blockEditorStore","BlockIcon","BlockContextualToolbar","focusOnMount","isFixed","props","isCollapsed","setIsCollapsed","toolbarButtonRef","isLargeViewport","blockType","hasParents","showParentSelector","selectedBlockClientId","select","getBlockName","getBlockParents","getSelectedBlockClientIds","__unstableGetContentLockingParent","getBlockType","selectedBlockClientIds","_selectedBlockClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","classes","icon","collapsed","current","focus"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tToolbarItem,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { levelUp } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport NavigableToolbar from '../navigable-toolbar';\nimport BlockToolbar from '../block-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\n\nfunction BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {\n\t// When the toolbar is fixed it can be collapsed\n\tconst [ isCollapsed, setIsCollapsed ] = useState( false );\n\tconst toolbarButtonRef = useRef();\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst { blockType, hasParents, showParentSelector, selectedBlockClientId } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetContentLockingParent,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockType } = select( blocksStore );\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\t\tconst _selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst parents = getBlockParents( _selectedBlockClientId );\n\t\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\t\tconst parentBlockType = getBlockType( parentBlockName );\n\n\t\t\treturn {\n\t\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\t\tblockType:\n\t\t\t\t\t_selectedBlockClientId &&\n\t\t\t\t\tgetBlockType( getBlockName( _selectedBlockClientId ) ),\n\t\t\t\thasParents: parents.length,\n\t\t\t\tshowParentSelector:\n\t\t\t\t\tparentBlockType &&\n\t\t\t\t\thasBlockSupport(\n\t\t\t\t\t\tparentBlockType,\n\t\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) &&\n\t\t\t\t\tselectedBlockClientIds.length <= 1 &&\n\t\t\t\t\t! __unstableGetContentLockingParent(\n\t\t\t\t\t\t_selectedBlockClientId\n\t\t\t\t\t),\n\t\t\t};\n\t\t}, [] );\n\n\tuseEffect( () => {\n\t\tsetIsCollapsed( false );\n\t}, [ selectedBlockClientId ] );\n\n\tif (\n\t\tblockType &&\n\t\t! hasBlockSupport( blockType, '__experimentalToolbar', true )\n\t) {\n\t\treturn null;\n\t}\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = classnames( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': hasParents && showParentSelector,\n\t\t'is-fixed': isFixed,\n\t\t'is-collapsed': isCollapsed,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ isFixed && isLargeViewport && blockType && (\n\t\t\t\t<ToolbarGroup\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tisCollapsed\n\t\t\t\t\t\t\t? 'block-editor-block-toolbar__group-expand-fixed-toolbar'\n\t\t\t\t\t\t\t: 'block-editor-block-toolbar__group-collapse-fixed-toolbar'\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\tas={ ToolbarButton }\n\t\t\t\t\t\tref={ toolbarButtonRef }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\tisCollapsed ? (\n\t\t\t\t\t\t\t\t<BlockIcon icon={ blockType.icon } />\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\tlevelUp\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetIsCollapsed( ( collapsed ) => ! collapsed );\n\t\t\t\t\t\t\ttoolbarButtonRef.current.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tisCollapsed\n\t\t\t\t\t\t\t\t? __( 'Show block tools' )\n\t\t\t\t\t\t\t\t: __( 'Show document tools' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t) }\n\t\t\t{ ! isCollapsed && <BlockToolbar hideDragHandle={ isFixed } /> }\n\t\t</NavigableToolbar>\n\t);\n}\n\nexport default BlockContextualToolbar;\n"]}
@@ -23,8 +23,7 @@ import { store as blockEditorStore } from '../../store';
23
23
  import BlockPopover from '../block-popover';
24
24
  import useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';
25
25
  import Inserter from '../inserter';
26
- import { unlock } from '../../lock-unlock';
27
- import { privateApis } from '../../private-apis';
26
+ import { useShouldContextualToolbarShow } from '../../utils/use-should-contextual-toolbar-show';
28
27
 
29
28
  function selector(select) {
30
29
  const {
@@ -32,7 +31,7 @@ function selector(select) {
32
31
  hasMultiSelection,
33
32
  isTyping,
34
33
  getLastMultiSelectedBlockClientId
35
- } = unlock(select(blockEditorStore));
34
+ } = select(blockEditorStore);
36
35
  return {
37
36
  editorMode: __unstableGetEditorMode(),
38
37
  hasMultiSelection: hasMultiSelection(),
@@ -56,9 +55,6 @@ function SelectedBlockPopover(_ref) {
56
55
  isTyping,
57
56
  lastClientId
58
57
  } = useSelect(selector, []);
59
- const {
60
- useShouldContextualToolbarShow
61
- } = unlock(privateApis);
62
58
  const isInsertionPointVisible = useSelect(select => {
63
59
  const {
64
60
  isBlockInsertionPointVisible,
@@ -78,7 +74,7 @@ function SelectedBlockPopover(_ref) {
78
74
  const {
79
75
  shouldShowContextualToolbar,
80
76
  canFocusHiddenToolbar
81
- } = useShouldContextualToolbarShow(clientId);
77
+ } = useShouldContextualToolbarShow();
82
78
  const {
83
79
  stopTyping
84
80
  } = useDispatch(blockEditorStore);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/selected-block-popover.js"],"names":["classnames","useRef","useEffect","isUnmodifiedDefaultBlock","useDispatch","useSelect","useShortcut","BlockSelectionButton","BlockContextualToolbar","store","blockEditorStore","BlockPopover","useBlockToolbarPopoverProps","Inserter","unlock","privateApis","selector","select","__unstableGetEditorMode","hasMultiSelection","isTyping","getLastMultiSelectedBlockClientId","editorMode","lastClientId","SelectedBlockPopover","clientId","rootClientId","isEmptyDefaultBlock","capturingClientId","__unstablePopoverSlot","__unstableContentRef","useShouldContextualToolbarShow","isInsertionPointVisible","isBlockInsertionPointVisible","getBlockInsertionPoint","getBlockOrder","insertionPoint","order","index","isToolbarForced","shouldShowContextualToolbar","canFocusHiddenToolbar","stopTyping","showEmptyBlockSideInserter","shouldShowBreadcrumb","current","isDisabled","initialToolbarItemIndexRef","popoverProps","contentElement","wrapperSelector","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getBlockRootClientId","getBlock","getBlockParents","__experimentalGetBlockListSettingsForBlocks","name","attributes","blockParentsClientIds","parentBlockListSettings","find","parentClientId","__experimentalCaptureToolbars","WrappedBlockPopover","selected"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useEffect } from '@wordpress/element';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport BlockSelectionButton from './block-selection-button';\nimport BlockContextualToolbar from './block-contextual-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopover from '../block-popover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\nimport Inserter from '../inserter';\nimport { unlock } from '../../lock-unlock';\nimport { privateApis } from '../../private-apis';\n\nfunction selector( select ) {\n\tconst {\n\t\t__unstableGetEditorMode,\n\t\thasMultiSelection,\n\t\tisTyping,\n\t\tgetLastMultiSelectedBlockClientId,\n\t} = unlock( select( blockEditorStore ) );\n\n\treturn {\n\t\teditorMode: __unstableGetEditorMode(),\n\t\thasMultiSelection: hasMultiSelection(),\n\t\tisTyping: isTyping(),\n\t\tlastClientId: hasMultiSelection()\n\t\t\t? getLastMultiSelectedBlockClientId()\n\t\t\t: null,\n\t};\n}\n\nfunction SelectedBlockPopover( {\n\tclientId,\n\trootClientId,\n\tisEmptyDefaultBlock,\n\tcapturingClientId,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst { editorMode, hasMultiSelection, isTyping, lastClientId } = useSelect(\n\t\tselector,\n\t\t[]\n\t);\n\n\tconst { useShouldContextualToolbarShow } = unlock( privateApis );\n\tconst isInsertionPointVisible = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tif ( ! isBlockInsertionPointVisible() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\t\t\treturn order[ insertionPoint.index ] === clientId;\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst isToolbarForced = useRef( false );\n\tconst { shouldShowContextualToolbar, canFocusHiddenToolbar } =\n\t\tuseShouldContextualToolbarShow( clientId );\n\n\tconst { stopTyping } = useDispatch( blockEditorStore );\n\n\tconst showEmptyBlockSideInserter =\n\t\t! isTyping && editorMode === 'edit' && isEmptyDefaultBlock;\n\tconst shouldShowBreadcrumb =\n\t\t! hasMultiSelection &&\n\t\t( editorMode === 'navigation' || editorMode === 'zoom-out' );\n\n\tuseShortcut(\n\t\t'core/block-editor/focus-toolbar',\n\t\t() => {\n\t\t\tisToolbarForced.current = true;\n\t\t\tstopTyping( true );\n\t\t},\n\t\t{\n\t\t\tisDisabled: ! canFocusHiddenToolbar,\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tisToolbarForced.current = false;\n\t} );\n\n\t// Stores the active toolbar item index so the block toolbar can return focus\n\t// to it when re-mounting.\n\tconst initialToolbarItemIndexRef = useRef();\n\n\tconst popoverProps = useBlockToolbarPopoverProps( {\n\t\tcontentElement: __unstableContentRef?.current,\n\t\tclientId,\n\t} );\n\n\tif ( showEmptyBlockSideInserter ) {\n\t\treturn (\n\t\t\t<BlockPopover\n\t\t\t\tclientId={ capturingClientId || clientId }\n\t\t\t\t__unstableCoverTarget\n\t\t\t\tbottomClientId={ lastClientId }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-block-list__block-side-inserter-popover',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\tresize={ false }\n\t\t\t\tshift={ false }\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-list__empty-block-inserter\">\n\t\t\t\t\t<Inserter\n\t\t\t\t\t\tposition=\"bottom right\"\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</BlockPopover>\n\t\t);\n\t}\n\n\tif ( shouldShowBreadcrumb || shouldShowContextualToolbar ) {\n\t\treturn (\n\t\t\t<BlockPopover\n\t\t\t\tclientId={ capturingClientId || clientId }\n\t\t\t\tbottomClientId={ lastClientId }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-block-list__block-popover',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\tresize={ false }\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t{ shouldShowContextualToolbar && (\n\t\t\t\t\t<BlockContextualToolbar\n\t\t\t\t\t\t// If the toolbar is being shown because of being forced\n\t\t\t\t\t\t// it should focus the toolbar right after the mount.\n\t\t\t\t\t\tfocusOnMount={ isToolbarForced.current }\n\t\t\t\t\t\t__experimentalInitialIndex={\n\t\t\t\t\t\t\tinitialToolbarItemIndexRef.current\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__experimentalOnIndexChange={ ( index ) => {\n\t\t\t\t\t\t\tinitialToolbarItemIndexRef.current = index;\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t// Resets the index whenever the active block changes so\n\t\t\t\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\t\t\t\tkey={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ shouldShowBreadcrumb && (\n\t\t\t\t\t<BlockSelectionButton\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockPopover>\n\t\t);\n\t}\n\n\treturn null;\n}\n\nfunction wrapperSelector( select ) {\n\tconst {\n\t\tgetSelectedBlockClientId,\n\t\tgetFirstMultiSelectedBlockClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlock,\n\t\tgetBlockParents,\n\t\t__experimentalGetBlockListSettingsForBlocks,\n\t} = select( blockEditorStore );\n\n\tconst clientId =\n\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\tif ( ! clientId ) {\n\t\treturn;\n\t}\n\n\tconst { name, attributes = {} } = getBlock( clientId ) || {};\n\tconst blockParentsClientIds = getBlockParents( clientId );\n\n\t// Get Block List Settings for all ancestors of the current Block clientId.\n\tconst parentBlockListSettings = __experimentalGetBlockListSettingsForBlocks(\n\t\tblockParentsClientIds\n\t);\n\n\t// Get the clientId of the topmost parent with the capture toolbars setting.\n\tconst capturingClientId = blockParentsClientIds.find(\n\t\t( parentClientId ) =>\n\t\t\tparentBlockListSettings[ parentClientId ]\n\t\t\t\t?.__experimentalCaptureToolbars\n\t);\n\n\treturn {\n\t\tclientId,\n\t\trootClientId: getBlockRootClientId( clientId ),\n\t\tname,\n\t\tisEmptyDefaultBlock:\n\t\t\tname && isUnmodifiedDefaultBlock( { name, attributes } ),\n\t\tcapturingClientId,\n\t};\n}\n\nexport default function WrappedBlockPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst selected = useSelect( wrapperSelector, [] );\n\n\tif ( ! selected ) {\n\t\treturn null;\n\t}\n\n\tconst {\n\t\tclientId,\n\t\trootClientId,\n\t\tname,\n\t\tisEmptyDefaultBlock,\n\t\tcapturingClientId,\n\t} = selected;\n\n\tif ( ! name ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<SelectedBlockPopover\n\t\t\tclientId={ clientId }\n\t\t\trootClientId={ rootClientId }\n\t\t\tisEmptyDefaultBlock={ isEmptyDefaultBlock }\n\t\t\tcapturingClientId={ capturingClientId }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/selected-block-popover.js"],"names":["classnames","useRef","useEffect","isUnmodifiedDefaultBlock","useDispatch","useSelect","useShortcut","BlockSelectionButton","BlockContextualToolbar","store","blockEditorStore","BlockPopover","useBlockToolbarPopoverProps","Inserter","useShouldContextualToolbarShow","selector","select","__unstableGetEditorMode","hasMultiSelection","isTyping","getLastMultiSelectedBlockClientId","editorMode","lastClientId","SelectedBlockPopover","clientId","rootClientId","isEmptyDefaultBlock","capturingClientId","__unstablePopoverSlot","__unstableContentRef","isInsertionPointVisible","isBlockInsertionPointVisible","getBlockInsertionPoint","getBlockOrder","insertionPoint","order","index","isToolbarForced","shouldShowContextualToolbar","canFocusHiddenToolbar","stopTyping","showEmptyBlockSideInserter","shouldShowBreadcrumb","current","isDisabled","initialToolbarItemIndexRef","popoverProps","contentElement","wrapperSelector","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getBlockRootClientId","getBlock","getBlockParents","__experimentalGetBlockListSettingsForBlocks","name","attributes","blockParentsClientIds","parentBlockListSettings","find","parentClientId","__experimentalCaptureToolbars","WrappedBlockPopover","selected"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,MAAT,EAAiBC,SAAjB,QAAkC,oBAAlC;AACA,SAASC,wBAAT,QAAyC,mBAAzC;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,WAAT,QAA4B,+BAA5B;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,0BAAjC;AACA,OAAOC,sBAAP,MAAmC,4BAAnC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,OAAOC,YAAP,MAAyB,kBAAzB;AACA,OAAOC,2BAAP,MAAwC,mCAAxC;AACA,OAAOC,QAAP,MAAqB,aAArB;AACA,SAASC,8BAAT,QAA+C,gDAA/C;;AAEA,SAASC,QAAT,CAAmBC,MAAnB,EAA4B;AAC3B,QAAM;AACLC,IAAAA,uBADK;AAELC,IAAAA,iBAFK;AAGLC,IAAAA,QAHK;AAILC,IAAAA;AAJK,MAKFJ,MAAM,CAAEN,gBAAF,CALV;AAOA,SAAO;AACNW,IAAAA,UAAU,EAAEJ,uBAAuB,EAD7B;AAENC,IAAAA,iBAAiB,EAAEA,iBAAiB,EAF9B;AAGNC,IAAAA,QAAQ,EAAEA,QAAQ,EAHZ;AAING,IAAAA,YAAY,EAAEJ,iBAAiB,KAC5BE,iCAAiC,EADL,GAE5B;AANG,GAAP;AAQA;;AAED,SAASG,oBAAT,OAOI;AAAA,MAP2B;AAC9BC,IAAAA,QAD8B;AAE9BC,IAAAA,YAF8B;AAG9BC,IAAAA,mBAH8B;AAI9BC,IAAAA,iBAJ8B;AAK9BC,IAAAA,qBAL8B;AAM9BC,IAAAA;AAN8B,GAO3B;AACH,QAAM;AAAER,IAAAA,UAAF;AAAcH,IAAAA,iBAAd;AAAiCC,IAAAA,QAAjC;AAA2CG,IAAAA;AAA3C,MAA4DjB,SAAS,CAC1EU,QAD0E,EAE1E,EAF0E,CAA3E;AAKA,QAAMe,uBAAuB,GAAGzB,SAAS,CACtCW,MAAF,IAAc;AACb,UAAM;AACLe,MAAAA,4BADK;AAELC,MAAAA,sBAFK;AAGLC,MAAAA;AAHK,QAIFjB,MAAM,CAAEN,gBAAF,CAJV;;AAMA,QAAK,CAAEqB,4BAA4B,EAAnC,EAAwC;AACvC,aAAO,KAAP;AACA;;AAED,UAAMG,cAAc,GAAGF,sBAAsB,EAA7C;AACA,UAAMG,KAAK,GAAGF,aAAa,CAAEC,cAAc,CAACT,YAAjB,CAA3B;AACA,WAAOU,KAAK,CAAED,cAAc,CAACE,KAAjB,CAAL,KAAkCZ,QAAzC;AACA,GAfuC,EAgBxC,CAAEA,QAAF,CAhBwC,CAAzC;AAkBA,QAAMa,eAAe,GAAGpC,MAAM,CAAE,KAAF,CAA9B;AACA,QAAM;AAAEqC,IAAAA,2BAAF;AAA+BC,IAAAA;AAA/B,MACLzB,8BAA8B,EAD/B;AAGA,QAAM;AAAE0B,IAAAA;AAAF,MAAiBpC,WAAW,CAAEM,gBAAF,CAAlC;AAEA,QAAM+B,0BAA0B,GAC/B,CAAEtB,QAAF,IAAcE,UAAU,KAAK,MAA7B,IAAuCK,mBADxC;AAEA,QAAMgB,oBAAoB,GACzB,CAAExB,iBAAF,KACEG,UAAU,KAAK,YAAf,IAA+BA,UAAU,KAAK,UADhD,CADD;AAIAf,EAAAA,WAAW,CACV,iCADU,EAEV,MAAM;AACL+B,IAAAA,eAAe,CAACM,OAAhB,GAA0B,IAA1B;AACAH,IAAAA,UAAU,CAAE,IAAF,CAAV;AACA,GALS,EAMV;AACCI,IAAAA,UAAU,EAAE,CAAEL;AADf,GANU,CAAX;AAWArC,EAAAA,SAAS,CAAE,MAAM;AAChBmC,IAAAA,eAAe,CAACM,OAAhB,GAA0B,KAA1B;AACA,GAFQ,CAAT,CA/CG,CAmDH;AACA;;AACA,QAAME,0BAA0B,GAAG5C,MAAM,EAAzC;AAEA,QAAM6C,YAAY,GAAGlC,2BAA2B,CAAE;AACjDmC,IAAAA,cAAc,EAAElB,oBAAF,aAAEA,oBAAF,uBAAEA,oBAAoB,CAAEc,OADW;AAEjDnB,IAAAA;AAFiD,GAAF,CAAhD;;AAKA,MAAKiB,0BAAL,EAAkC;AACjC,WACC,cAAC,YAAD;AACC,MAAA,QAAQ,EAAGd,iBAAiB,IAAIH,QADjC;AAEC,MAAA,qBAAqB,MAFtB;AAGC,MAAA,cAAc,EAAGF,YAHlB;AAIC,MAAA,SAAS,EAAGtB,UAAU,CACrB,sDADqB,EAErB;AACC,sCAA8B8B;AAD/B,OAFqB,CAJvB;AAUC,MAAA,qBAAqB,EAAGF,qBAVzB;AAWC,MAAA,oBAAoB,EAAGC,oBAXxB;AAYC,MAAA,MAAM,EAAG,KAZV;AAaC,MAAA,KAAK,EAAG;AAbT,OAcMiB,YAdN,GAgBC;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,cAAC,QAAD;AACC,MAAA,QAAQ,EAAC,cADV;AAEC,MAAA,YAAY,EAAGrB,YAFhB;AAGC,MAAA,QAAQ,EAAGD,QAHZ;AAIC,MAAA,qBAAqB;AAJtB,MADD,CAhBD,CADD;AA2BA;;AAED,MAAKkB,oBAAoB,IAAIJ,2BAA7B,EAA2D;AAC1D,WACC,cAAC,YAAD;AACC,MAAA,QAAQ,EAAGX,iBAAiB,IAAIH,QADjC;AAEC,MAAA,cAAc,EAAGF,YAFlB;AAGC,MAAA,SAAS,EAAGtB,UAAU,CACrB,wCADqB,EAErB;AACC,sCAA8B8B;AAD/B,OAFqB,CAHvB;AASC,MAAA,qBAAqB,EAAGF,qBATzB;AAUC,MAAA,oBAAoB,EAAGC,oBAVxB;AAWC,MAAA,MAAM,EAAG;AAXV,OAYMiB,YAZN,GAcGR,2BAA2B,IAC5B,cAAC,sBAAD,CACC;AACA;AAFD;AAGC,MAAA,YAAY,EAAGD,eAAe,CAACM,OAHhC;AAIC,MAAA,0BAA0B,EACzBE,0BAA0B,CAACF,OAL7B;AAOC,MAAA,2BAA2B,EAAKP,KAAF,IAAa;AAC1CS,QAAAA,0BAA0B,CAACF,OAA3B,GAAqCP,KAArC;AACA,OATF,CAUC;AACA;AAXD;AAYC,MAAA,GAAG,EAAGZ;AAZP,MAfF,EA8BGkB,oBAAoB,IACrB,cAAC,oBAAD;AACC,MAAA,QAAQ,EAAGlB,QADZ;AAEC,MAAA,YAAY,EAAGC;AAFhB,MA/BF,CADD;AAuCA;;AAED,SAAO,IAAP;AACA;;AAED,SAASuB,eAAT,CAA0BhC,MAA1B,EAAmC;AAClC,QAAM;AACLiC,IAAAA,wBADK;AAELC,IAAAA,kCAFK;AAGLC,IAAAA,oBAHK;AAILC,IAAAA,QAJK;AAKLC,IAAAA,eALK;AAMLC,IAAAA;AANK,MAOFtC,MAAM,CAAEN,gBAAF,CAPV;AASA,QAAMc,QAAQ,GACbyB,wBAAwB,MAAMC,kCAAkC,EADjE;;AAGA,MAAK,CAAE1B,QAAP,EAAkB;AACjB;AACA;;AAED,QAAM;AAAE+B,IAAAA,IAAF;AAAQC,IAAAA,UAAU,GAAG;AAArB,MAA4BJ,QAAQ,CAAE5B,QAAF,CAAR,IAAwB,EAA1D;AACA,QAAMiC,qBAAqB,GAAGJ,eAAe,CAAE7B,QAAF,CAA7C,CAlBkC,CAoBlC;;AACA,QAAMkC,uBAAuB,GAAGJ,2CAA2C,CAC1EG,qBAD0E,CAA3E,CArBkC,CAyBlC;;;AACA,QAAM9B,iBAAiB,GAAG8B,qBAAqB,CAACE,IAAtB,CACvBC,cAAF;AAAA;;AAAA,oCACCF,uBAAuB,CAAEE,cAAF,CADxB,0DACC,sBACGC,6BAFJ;AAAA,GADyB,CAA1B;AAMA,SAAO;AACNrC,IAAAA,QADM;AAENC,IAAAA,YAAY,EAAE0B,oBAAoB,CAAE3B,QAAF,CAF5B;AAGN+B,IAAAA,IAHM;AAIN7B,IAAAA,mBAAmB,EAClB6B,IAAI,IAAIpD,wBAAwB,CAAE;AAAEoD,MAAAA,IAAF;AAAQC,MAAAA;AAAR,KAAF,CAL3B;AAMN7B,IAAAA;AANM,GAAP;AAQA;;AAED,eAAe,SAASmC,mBAAT,QAGX;AAAA,MAHyC;AAC5ClC,IAAAA,qBAD4C;AAE5CC,IAAAA;AAF4C,GAGzC;AACH,QAAMkC,QAAQ,GAAG1D,SAAS,CAAE2C,eAAF,EAAmB,EAAnB,CAA1B;;AAEA,MAAK,CAAEe,QAAP,EAAkB;AACjB,WAAO,IAAP;AACA;;AAED,QAAM;AACLvC,IAAAA,QADK;AAELC,IAAAA,YAFK;AAGL8B,IAAAA,IAHK;AAIL7B,IAAAA,mBAJK;AAKLC,IAAAA;AALK,MAMFoC,QANJ;;AAQA,MAAK,CAAER,IAAP,EAAc;AACb,WAAO,IAAP;AACA;;AAED,SACC,cAAC,oBAAD;AACC,IAAA,QAAQ,EAAG/B,QADZ;AAEC,IAAA,YAAY,EAAGC,YAFhB;AAGC,IAAA,mBAAmB,EAAGC,mBAHvB;AAIC,IAAA,iBAAiB,EAAGC,iBAJrB;AAKC,IAAA,qBAAqB,EAAGC,qBALzB;AAMC,IAAA,oBAAoB,EAAGC;AANxB,IADD;AAUA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useEffect } from '@wordpress/element';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport BlockSelectionButton from './block-selection-button';\nimport BlockContextualToolbar from './block-contextual-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopover from '../block-popover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\nimport Inserter from '../inserter';\nimport { useShouldContextualToolbarShow } from '../../utils/use-should-contextual-toolbar-show';\n\nfunction selector( select ) {\n\tconst {\n\t\t__unstableGetEditorMode,\n\t\thasMultiSelection,\n\t\tisTyping,\n\t\tgetLastMultiSelectedBlockClientId,\n\t} = select( blockEditorStore );\n\n\treturn {\n\t\teditorMode: __unstableGetEditorMode(),\n\t\thasMultiSelection: hasMultiSelection(),\n\t\tisTyping: isTyping(),\n\t\tlastClientId: hasMultiSelection()\n\t\t\t? getLastMultiSelectedBlockClientId()\n\t\t\t: null,\n\t};\n}\n\nfunction SelectedBlockPopover( {\n\tclientId,\n\trootClientId,\n\tisEmptyDefaultBlock,\n\tcapturingClientId,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst { editorMode, hasMultiSelection, isTyping, lastClientId } = useSelect(\n\t\tselector,\n\t\t[]\n\t);\n\n\tconst isInsertionPointVisible = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tif ( ! isBlockInsertionPointVisible() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\t\t\treturn order[ insertionPoint.index ] === clientId;\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst isToolbarForced = useRef( false );\n\tconst { shouldShowContextualToolbar, canFocusHiddenToolbar } =\n\t\tuseShouldContextualToolbarShow();\n\n\tconst { stopTyping } = useDispatch( blockEditorStore );\n\n\tconst showEmptyBlockSideInserter =\n\t\t! isTyping && editorMode === 'edit' && isEmptyDefaultBlock;\n\tconst shouldShowBreadcrumb =\n\t\t! hasMultiSelection &&\n\t\t( editorMode === 'navigation' || editorMode === 'zoom-out' );\n\n\tuseShortcut(\n\t\t'core/block-editor/focus-toolbar',\n\t\t() => {\n\t\t\tisToolbarForced.current = true;\n\t\t\tstopTyping( true );\n\t\t},\n\t\t{\n\t\t\tisDisabled: ! canFocusHiddenToolbar,\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tisToolbarForced.current = false;\n\t} );\n\n\t// Stores the active toolbar item index so the block toolbar can return focus\n\t// to it when re-mounting.\n\tconst initialToolbarItemIndexRef = useRef();\n\n\tconst popoverProps = useBlockToolbarPopoverProps( {\n\t\tcontentElement: __unstableContentRef?.current,\n\t\tclientId,\n\t} );\n\n\tif ( showEmptyBlockSideInserter ) {\n\t\treturn (\n\t\t\t<BlockPopover\n\t\t\t\tclientId={ capturingClientId || clientId }\n\t\t\t\t__unstableCoverTarget\n\t\t\t\tbottomClientId={ lastClientId }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-block-list__block-side-inserter-popover',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\tresize={ false }\n\t\t\t\tshift={ false }\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-list__empty-block-inserter\">\n\t\t\t\t\t<Inserter\n\t\t\t\t\t\tposition=\"bottom right\"\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</BlockPopover>\n\t\t);\n\t}\n\n\tif ( shouldShowBreadcrumb || shouldShowContextualToolbar ) {\n\t\treturn (\n\t\t\t<BlockPopover\n\t\t\t\tclientId={ capturingClientId || clientId }\n\t\t\t\tbottomClientId={ lastClientId }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-block-list__block-popover',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\tresize={ false }\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t{ shouldShowContextualToolbar && (\n\t\t\t\t\t<BlockContextualToolbar\n\t\t\t\t\t\t// If the toolbar is being shown because of being forced\n\t\t\t\t\t\t// it should focus the toolbar right after the mount.\n\t\t\t\t\t\tfocusOnMount={ isToolbarForced.current }\n\t\t\t\t\t\t__experimentalInitialIndex={\n\t\t\t\t\t\t\tinitialToolbarItemIndexRef.current\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__experimentalOnIndexChange={ ( index ) => {\n\t\t\t\t\t\t\tinitialToolbarItemIndexRef.current = index;\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t// Resets the index whenever the active block changes so\n\t\t\t\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\t\t\t\tkey={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ shouldShowBreadcrumb && (\n\t\t\t\t\t<BlockSelectionButton\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockPopover>\n\t\t);\n\t}\n\n\treturn null;\n}\n\nfunction wrapperSelector( select ) {\n\tconst {\n\t\tgetSelectedBlockClientId,\n\t\tgetFirstMultiSelectedBlockClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlock,\n\t\tgetBlockParents,\n\t\t__experimentalGetBlockListSettingsForBlocks,\n\t} = select( blockEditorStore );\n\n\tconst clientId =\n\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\tif ( ! clientId ) {\n\t\treturn;\n\t}\n\n\tconst { name, attributes = {} } = getBlock( clientId ) || {};\n\tconst blockParentsClientIds = getBlockParents( clientId );\n\n\t// Get Block List Settings for all ancestors of the current Block clientId.\n\tconst parentBlockListSettings = __experimentalGetBlockListSettingsForBlocks(\n\t\tblockParentsClientIds\n\t);\n\n\t// Get the clientId of the topmost parent with the capture toolbars setting.\n\tconst capturingClientId = blockParentsClientIds.find(\n\t\t( parentClientId ) =>\n\t\t\tparentBlockListSettings[ parentClientId ]\n\t\t\t\t?.__experimentalCaptureToolbars\n\t);\n\n\treturn {\n\t\tclientId,\n\t\trootClientId: getBlockRootClientId( clientId ),\n\t\tname,\n\t\tisEmptyDefaultBlock:\n\t\t\tname && isUnmodifiedDefaultBlock( { name, attributes } ),\n\t\tcapturingClientId,\n\t};\n}\n\nexport default function WrappedBlockPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst selected = useSelect( wrapperSelector, [] );\n\n\tif ( ! selected ) {\n\t\treturn null;\n\t}\n\n\tconst {\n\t\tclientId,\n\t\trootClientId,\n\t\tname,\n\t\tisEmptyDefaultBlock,\n\t\tcapturingClientId,\n\t} = selected;\n\n\tif ( ! name ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<SelectedBlockPopover\n\t\t\tclientId={ clientId }\n\t\t\trootClientId={ rootClientId }\n\t\t\tisEmptyDefaultBlock={ isEmptyDefaultBlock }\n\t\t\tcapturingClientId={ capturingClientId }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t/>\n\t);\n}\n"]}
@@ -51,7 +51,7 @@ export default function useMultipleOriginColorsAndGradients() {
51
51
  }
52
52
 
53
53
  return result;
54
- }, [defaultColors, themeColors, customColors]);
54
+ }, [defaultColors, themeColors, customColors, shouldDisplayDefaultColors]);
55
55
  const customGradients = useSetting('color.gradients.custom');
56
56
  const themeGradients = useSetting('color.gradients.theme');
57
57
  const defaultGradients = useSetting('color.gradients.default');
@@ -81,7 +81,8 @@ export default function useMultipleOriginColorsAndGradients() {
81
81
  }
82
82
 
83
83
  return result;
84
- }, [customGradients, themeGradients, defaultGradients]);
84
+ }, [customGradients, themeGradients, defaultGradients, shouldDisplayDefaultGradients]);
85
+ colorGradientSettings.hasColorsOrGradients = !!colorGradientSettings.colors.length || !!colorGradientSettings.gradients.length;
85
86
  return colorGradientSettings;
86
87
  }
87
88
  //# sourceMappingURL=use-multiple-origin-colors-and-gradients.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js"],"names":["useMemo","_x","useSetting","useMultipleOriginColorsAndGradients","colorGradientSettings","disableCustomColors","disableCustomGradients","customColors","themeColors","defaultColors","shouldDisplayDefaultColors","colors","result","length","push","name","customGradients","themeGradients","defaultGradients","shouldDisplayDefaultGradients","gradients"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../use-setting';\n\n/**\n * Retrieves color and gradient related settings.\n *\n * The arrays for colors and gradients are made up of color palettes from each\n * origin i.e. \"Core\", \"Theme\", and \"User\".\n *\n * @return {Object} Color and gradient related settings.\n */\nexport default function useMultipleOriginColorsAndGradients() {\n\tconst colorGradientSettings = {\n\t\tdisableCustomColors: ! useSetting( 'color.custom' ),\n\t\tdisableCustomGradients: ! useSetting( 'color.customGradient' ),\n\t};\n\tconst customColors = useSetting( 'color.palette.custom' );\n\tconst themeColors = useSetting( 'color.palette.theme' );\n\tconst defaultColors = useSetting( 'color.palette.default' );\n\tconst shouldDisplayDefaultColors = useSetting( 'color.defaultPalette' );\n\n\tcolorGradientSettings.colors = useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeColors && themeColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tcolors: themeColors,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultColors &&\n\t\t\tdefaultColors &&\n\t\t\tdefaultColors.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tcolors: defaultColors,\n\t\t\t} );\n\t\t}\n\t\tif ( customColors && customColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tcolors: customColors,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [ defaultColors, themeColors, customColors ] );\n\n\tconst customGradients = useSetting( 'color.gradients.custom' );\n\tconst themeGradients = useSetting( 'color.gradients.theme' );\n\tconst defaultGradients = useSetting( 'color.gradients.default' );\n\tconst shouldDisplayDefaultGradients = useSetting(\n\t\t'color.defaultGradients'\n\t);\n\tcolorGradientSettings.gradients = useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeGradients && themeGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tgradients: themeGradients,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultGradients &&\n\t\t\tdefaultGradients &&\n\t\t\tdefaultGradients.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tgradients: defaultGradients,\n\t\t\t} );\n\t\t}\n\t\tif ( customGradients && customGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette is created by the user.'\n\t\t\t\t),\n\t\t\t\tgradients: customGradients,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [ customGradients, themeGradients, defaultGradients ] );\n\n\treturn colorGradientSettings;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js"],"names":["useMemo","_x","useSetting","useMultipleOriginColorsAndGradients","colorGradientSettings","disableCustomColors","disableCustomGradients","customColors","themeColors","defaultColors","shouldDisplayDefaultColors","colors","result","length","push","name","customGradients","themeGradients","defaultGradients","shouldDisplayDefaultGradients","gradients","hasColorsOrGradients"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../use-setting';\n\n/**\n * Retrieves color and gradient related settings.\n *\n * The arrays for colors and gradients are made up of color palettes from each\n * origin i.e. \"Core\", \"Theme\", and \"User\".\n *\n * @return {Object} Color and gradient related settings.\n */\nexport default function useMultipleOriginColorsAndGradients() {\n\tconst colorGradientSettings = {\n\t\tdisableCustomColors: ! useSetting( 'color.custom' ),\n\t\tdisableCustomGradients: ! useSetting( 'color.customGradient' ),\n\t};\n\tconst customColors = useSetting( 'color.palette.custom' );\n\tconst themeColors = useSetting( 'color.palette.theme' );\n\tconst defaultColors = useSetting( 'color.palette.default' );\n\tconst shouldDisplayDefaultColors = useSetting( 'color.defaultPalette' );\n\n\tcolorGradientSettings.colors = useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeColors && themeColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tcolors: themeColors,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultColors &&\n\t\t\tdefaultColors &&\n\t\t\tdefaultColors.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tcolors: defaultColors,\n\t\t\t} );\n\t\t}\n\t\tif ( customColors && customColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tcolors: customColors,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [\n\t\tdefaultColors,\n\t\tthemeColors,\n\t\tcustomColors,\n\t\tshouldDisplayDefaultColors,\n\t] );\n\n\tconst customGradients = useSetting( 'color.gradients.custom' );\n\tconst themeGradients = useSetting( 'color.gradients.theme' );\n\tconst defaultGradients = useSetting( 'color.gradients.default' );\n\tconst shouldDisplayDefaultGradients = useSetting(\n\t\t'color.defaultGradients'\n\t);\n\tcolorGradientSettings.gradients = useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeGradients && themeGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tgradients: themeGradients,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultGradients &&\n\t\t\tdefaultGradients &&\n\t\t\tdefaultGradients.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tgradients: defaultGradients,\n\t\t\t} );\n\t\t}\n\t\tif ( customGradients && customGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette is created by the user.'\n\t\t\t\t),\n\t\t\t\tgradients: customGradients,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [\n\t\tcustomGradients,\n\t\tthemeGradients,\n\t\tdefaultGradients,\n\t\tshouldDisplayDefaultGradients,\n\t] );\n\n\tcolorGradientSettings.hasColorsOrGradients =\n\t\t!! colorGradientSettings.colors.length ||\n\t\t!! colorGradientSettings.gradients.length;\n\n\treturn colorGradientSettings;\n}\n"]}
@@ -0,0 +1,74 @@
1
+ import { createElement } from "@wordpress/element";
2
+
3
+ /**
4
+ * WordPress dependencies
5
+ */
6
+ import { TextareaControl, Tooltip, __experimentalVStack as VStack } from '@wordpress/components';
7
+ import { useState } from '@wordpress/element';
8
+ import { __ } from '@wordpress/i18n';
9
+ import { Icon, info } from '@wordpress/icons';
10
+ /**
11
+ * Internal dependencies
12
+ */
13
+
14
+ import { default as transformStyles } from '../../utils/transform-styles';
15
+ export default function AdvancedPanel(_ref) {
16
+ let {
17
+ value,
18
+ onChange,
19
+ inheritedValue = value
20
+ } = _ref;
21
+ // Custom CSS
22
+ const [cssError, setCSSError] = useState(null);
23
+ const customCSS = inheritedValue === null || inheritedValue === void 0 ? void 0 : inheritedValue.css;
24
+
25
+ function handleOnChange(newValue) {
26
+ onChange({ ...value,
27
+ css: newValue
28
+ });
29
+
30
+ if (cssError) {
31
+ const [transformed] = transformStyles([{
32
+ css: value
33
+ }], '.editor-styles-wrapper');
34
+
35
+ if (transformed) {
36
+ setCSSError(null);
37
+ }
38
+ }
39
+ }
40
+
41
+ function handleOnBlur(event) {
42
+ var _event$target;
43
+
44
+ if (!(event !== null && event !== void 0 && (_event$target = event.target) !== null && _event$target !== void 0 && _event$target.value)) {
45
+ setCSSError(null);
46
+ return;
47
+ }
48
+
49
+ const [transformed] = transformStyles([{
50
+ css: event.target.value
51
+ }], '.editor-styles-wrapper');
52
+ setCSSError(transformed === null ? __('There is an error with your CSS structure.') : null);
53
+ }
54
+
55
+ return createElement(VStack, {
56
+ spacing: 3
57
+ }, createElement(TextareaControl, {
58
+ label: __('Additional CSS'),
59
+ __nextHasNoMarginBottom: true,
60
+ value: customCSS,
61
+ onChange: newValue => handleOnChange(newValue),
62
+ onBlur: handleOnBlur,
63
+ className: "block-editor-global-styles-advanced-panel__custom-css-input",
64
+ spellCheck: false
65
+ }), cssError && createElement(Tooltip, {
66
+ text: cssError
67
+ }, createElement("div", {
68
+ className: "block-editor-global-styles-advanced-panel__custom-css-validation-wrapper"
69
+ }, createElement(Icon, {
70
+ icon: info,
71
+ className: "block-editor-global-styles-advanced-panel__custom-css-validation-icon"
72
+ }))));
73
+ }
74
+ //# sourceMappingURL=advanced-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/advanced-panel.js"],"names":["TextareaControl","Tooltip","__experimentalVStack","VStack","useState","__","Icon","info","default","transformStyles","AdvancedPanel","value","onChange","inheritedValue","cssError","setCSSError","customCSS","css","handleOnChange","newValue","transformed","handleOnBlur","event","target"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,eADD,EAECC,OAFD,EAGCC,oBAAoB,IAAIC,MAHzB,QAIO,uBAJP;AAKA,SAASC,QAAT,QAAyB,oBAAzB;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,IAAT,EAAeC,IAAf,QAA2B,kBAA3B;AAEA;AACA;AACA;;AACA,SAASC,OAAO,IAAIC,eAApB,QAA2C,8BAA3C;AAEA,eAAe,SAASC,aAAT,OAIX;AAAA,MAJmC;AACtCC,IAAAA,KADsC;AAEtCC,IAAAA,QAFsC;AAGtCC,IAAAA,cAAc,GAAGF;AAHqB,GAInC;AACH;AACA,QAAM,CAAEG,QAAF,EAAYC,WAAZ,IAA4BX,QAAQ,CAAE,IAAF,CAA1C;AACA,QAAMY,SAAS,GAAGH,cAAH,aAAGA,cAAH,uBAAGA,cAAc,CAAEI,GAAlC;;AACA,WAASC,cAAT,CAAyBC,QAAzB,EAAoC;AACnCP,IAAAA,QAAQ,CAAE,EACT,GAAGD,KADM;AAETM,MAAAA,GAAG,EAAEE;AAFI,KAAF,CAAR;;AAIA,QAAKL,QAAL,EAAgB;AACf,YAAM,CAAEM,WAAF,IAAkBX,eAAe,CACtC,CAAE;AAAEQ,QAAAA,GAAG,EAAEN;AAAP,OAAF,CADsC,EAEtC,wBAFsC,CAAvC;;AAIA,UAAKS,WAAL,EAAmB;AAClBL,QAAAA,WAAW,CAAE,IAAF,CAAX;AACA;AACD;AACD;;AACD,WAASM,YAAT,CAAuBC,KAAvB,EAA+B;AAAA;;AAC9B,QAAK,EAAEA,KAAF,aAAEA,KAAF,gCAAEA,KAAK,CAAEC,MAAT,0CAAE,cAAeZ,KAAjB,CAAL,EAA8B;AAC7BI,MAAAA,WAAW,CAAE,IAAF,CAAX;AACA;AACA;;AAED,UAAM,CAAEK,WAAF,IAAkBX,eAAe,CACtC,CAAE;AAAEQ,MAAAA,GAAG,EAAEK,KAAK,CAACC,MAAN,CAAaZ;AAApB,KAAF,CADsC,EAEtC,wBAFsC,CAAvC;AAKAI,IAAAA,WAAW,CACVK,WAAW,KAAK,IAAhB,GACGf,EAAE,CAAE,4CAAF,CADL,GAEG,IAHO,CAAX;AAKA;;AAED,SACC,cAAC,MAAD;AAAQ,IAAA,OAAO,EAAG;AAAlB,KACC,cAAC,eAAD;AACC,IAAA,KAAK,EAAGA,EAAE,CAAE,gBAAF,CADX;AAEC,IAAA,uBAAuB,MAFxB;AAGC,IAAA,KAAK,EAAGW,SAHT;AAIC,IAAA,QAAQ,EAAKG,QAAF,IAAgBD,cAAc,CAAEC,QAAF,CAJ1C;AAKC,IAAA,MAAM,EAAGE,YALV;AAMC,IAAA,SAAS,EAAC,6DANX;AAOC,IAAA,UAAU,EAAG;AAPd,IADD,EAUGP,QAAQ,IACT,cAAC,OAAD;AAAS,IAAA,IAAI,EAAGA;AAAhB,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,IAAD;AACC,IAAA,IAAI,EAAGP,IADR;AAEC,IAAA,SAAS,EAAC;AAFX,IADD,CADD,CAXF,CADD;AAuBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tTextareaControl,\n\tTooltip,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, info } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { default as transformStyles } from '../../utils/transform-styles';\n\nexport default function AdvancedPanel( {\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n} ) {\n\t// Custom CSS\n\tconst [ cssError, setCSSError ] = useState( null );\n\tconst customCSS = inheritedValue?.css;\n\tfunction handleOnChange( newValue ) {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\tcss: newValue,\n\t\t} );\n\t\tif ( cssError ) {\n\t\t\tconst [ transformed ] = transformStyles(\n\t\t\t\t[ { css: value } ],\n\t\t\t\t'.editor-styles-wrapper'\n\t\t\t);\n\t\t\tif ( transformed ) {\n\t\t\t\tsetCSSError( null );\n\t\t\t}\n\t\t}\n\t}\n\tfunction handleOnBlur( event ) {\n\t\tif ( ! event?.target?.value ) {\n\t\t\tsetCSSError( null );\n\t\t\treturn;\n\t\t}\n\n\t\tconst [ transformed ] = transformStyles(\n\t\t\t[ { css: event.target.value } ],\n\t\t\t'.editor-styles-wrapper'\n\t\t);\n\n\t\tsetCSSError(\n\t\t\ttransformed === null\n\t\t\t\t? __( 'There is an error with your CSS structure.' )\n\t\t\t\t: null\n\t\t);\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t<TextareaControl\n\t\t\t\tlabel={ __( 'Additional CSS' ) }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tvalue={ customCSS }\n\t\t\t\tonChange={ ( newValue ) => handleOnChange( newValue ) }\n\t\t\t\tonBlur={ handleOnBlur }\n\t\t\t\tclassName=\"block-editor-global-styles-advanced-panel__custom-css-input\"\n\t\t\t\tspellCheck={ false }\n\t\t\t/>\n\t\t\t{ cssError && (\n\t\t\t\t<Tooltip text={ cssError }>\n\t\t\t\t\t<div className=\"block-editor-global-styles-advanced-panel__custom-css-validation-wrapper\">\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\ticon={ info }\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles-advanced-panel__custom-css-validation-icon\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n"]}
@@ -11,7 +11,7 @@ import classnames from 'classnames';
11
11
 
12
12
  import { __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalHStack as HStack, __experimentalZStack as ZStack, __experimentalDropdownContentWrapper as DropdownContentWrapper, TabPanel, ColorIndicator, Flex, FlexItem, Dropdown, Button } from '@wordpress/components';
13
13
  import { useCallback } from '@wordpress/element';
14
- import { __ } from '@wordpress/i18n';
14
+ import { __, sprintf } from '@wordpress/i18n';
15
15
  /**
16
16
  * Internal dependencies
17
17
  */
@@ -193,7 +193,10 @@ function ColorPanelDropdown(_ref4) {
193
193
  className: classnames('block-editor-panel-color-gradient-settings__dropdown', {
194
194
  'is-open': isOpen
195
195
  }),
196
- 'aria-expanded': isOpen
196
+ 'aria-expanded': isOpen,
197
+ 'aria-label': sprintf(
198
+ /* translators: %s is the type of color property, e.g., "background" */
199
+ __('Color %s styles'), label)
197
200
  };
198
201
  return createElement(Button, toggleProps, createElement(LabeledColorIndicators, {
199
202
  indicators: indicators,