@wordpress/block-editor 8.6.0 → 9.2.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 (466) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +5 -2
  3. package/build/components/block-alignment-control/constants.js +48 -0
  4. package/build/components/block-alignment-control/constants.js.map +1 -0
  5. package/build/components/block-alignment-control/ui.js +9 -40
  6. package/build/components/block-alignment-control/ui.js.map +1 -1
  7. package/build/components/block-alignment-control/ui.native.js +92 -0
  8. package/build/components/block-alignment-control/ui.native.js.map +1 -0
  9. package/build/components/block-alignment-matrix-control/index.js +1 -6
  10. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  11. package/build/components/block-content-overlay/index.js +4 -82
  12. package/build/components/block-content-overlay/index.js.map +1 -1
  13. package/build/components/block-draggable/draggable-chip.native.js +65 -0
  14. package/build/components/block-draggable/draggable-chip.native.js.map +1 -0
  15. package/build/components/block-draggable/dropping-insertion-point.native.js +157 -0
  16. package/build/components/block-draggable/dropping-insertion-point.native.js.map +1 -0
  17. package/build/components/block-draggable/index.native.js +488 -0
  18. package/build/components/block-draggable/index.native.js.map +1 -0
  19. package/build/components/block-draggable/use-scroll-when-dragging.native.js +130 -0
  20. package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -0
  21. package/build/components/block-list/block-list-context.native.js +195 -0
  22. package/build/components/block-list/block-list-context.native.js.map +1 -0
  23. package/build/components/block-list/block-list-item-cell.native.js +67 -0
  24. package/build/components/block-list/block-list-item-cell.native.js.map +1 -0
  25. package/build/components/block-list/block-list-item.native.js +12 -9
  26. package/build/components/block-list/block-list-item.native.js.map +1 -1
  27. package/build/components/block-list/block.native.js +27 -5
  28. package/build/components/block-list/block.native.js.map +1 -1
  29. package/build/components/block-list/index.js +34 -32
  30. package/build/components/block-list/index.js.map +1 -1
  31. package/build/components/block-list/index.native.js +75 -23
  32. package/build/components/block-list/index.native.js.map +1 -1
  33. package/build/components/block-list/use-block-props/index.js +8 -4
  34. package/build/components/block-list/use-block-props/index.js.map +1 -1
  35. package/build/components/block-list/use-block-props/use-block-class-names.js +1 -7
  36. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  37. package/build/components/block-list/use-in-between-inserter.js +1 -1
  38. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  39. package/build/components/block-mobile-toolbar/index.native.js +10 -3
  40. package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
  41. package/build/components/block-mover/index.native.js +17 -4
  42. package/build/components/block-mover/index.native.js.map +1 -1
  43. package/build/components/block-navigation/dropdown.js +11 -5
  44. package/build/components/block-navigation/dropdown.js.map +1 -1
  45. package/build/components/block-popover/inbetween.js +19 -8
  46. package/build/components/block-popover/inbetween.js.map +1 -1
  47. package/build/components/block-popover/index.js +20 -16
  48. package/build/components/block-popover/index.js.map +1 -1
  49. package/build/components/block-preview/index.js +1 -1
  50. package/build/components/block-preview/index.js.map +1 -1
  51. package/build/components/block-tools/block-selection-button.js +1 -0
  52. package/build/components/block-tools/block-selection-button.js.map +1 -1
  53. package/build/components/block-tools/selected-block-popover.js +1 -29
  54. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  55. package/build/components/block-variation-transforms/index.js +16 -2
  56. package/build/components/block-variation-transforms/index.js.map +1 -1
  57. package/build/components/border-radius-control/input-controls.js +10 -3
  58. package/build/components/border-radius-control/input-controls.js.map +1 -1
  59. package/build/components/color-style-selector/index.js +9 -0
  60. package/build/components/color-style-selector/index.js.map +1 -1
  61. package/build/components/colors-gradients/dropdown.js +122 -41
  62. package/build/components/colors-gradients/dropdown.js.map +1 -1
  63. package/build/components/colors-gradients/panel-color-gradient-settings.js +35 -60
  64. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  65. package/build/components/convert-to-group-buttons/toolbar.js +22 -5
  66. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  67. package/build/components/iframe/index.js +51 -50
  68. package/build/components/iframe/index.js.map +1 -1
  69. package/build/components/image-editor/use-save-image.js +3 -1
  70. package/build/components/image-editor/use-save-image.js.map +1 -1
  71. package/build/components/index.js +14 -23
  72. package/build/components/index.js.map +1 -1
  73. package/build/components/inserter/index.js +21 -7
  74. package/build/components/inserter/index.js.map +1 -1
  75. package/build/components/inserter/index.native.js +2 -2
  76. package/build/components/inserter/index.native.js.map +1 -1
  77. package/build/components/inserter/quick-inserter.js +4 -5
  78. package/build/components/inserter/quick-inserter.js.map +1 -1
  79. package/build/components/link-control/constants.js +11 -1
  80. package/build/components/link-control/constants.js.map +1 -1
  81. package/build/components/link-control/search-results.js +4 -3
  82. package/build/components/link-control/search-results.js.map +1 -1
  83. package/build/components/link-control/use-search-handler.js +4 -4
  84. package/build/components/link-control/use-search-handler.js.map +1 -1
  85. package/build/components/list-view/block.js +15 -15
  86. package/build/components/list-view/block.js.map +1 -1
  87. package/build/components/list-view/branch.js +9 -13
  88. package/build/components/list-view/branch.js.map +1 -1
  89. package/build/components/list-view/context.js +1 -4
  90. package/build/components/list-view/context.js.map +1 -1
  91. package/build/components/list-view/drop-indicator.js +0 -1
  92. package/build/components/list-view/drop-indicator.js.map +1 -1
  93. package/build/components/list-view/index.js +15 -32
  94. package/build/components/list-view/index.js.map +1 -1
  95. package/build/components/media-placeholder/index.js +0 -2
  96. package/build/components/media-placeholder/index.js.map +1 -1
  97. package/build/components/media-replace-flow/index.js +0 -2
  98. package/build/components/media-replace-flow/index.js.map +1 -1
  99. package/build/components/media-upload/index.native.js +10 -4
  100. package/build/components/media-upload/index.native.js.map +1 -1
  101. package/build/components/navigable-toolbar/index.js +12 -2
  102. package/build/components/navigable-toolbar/index.js.map +1 -1
  103. package/build/components/plain-text/index.native.js +62 -7
  104. package/build/components/plain-text/index.native.js.map +1 -1
  105. package/build/components/publish-date-time-picker/index.js +55 -0
  106. package/build/components/publish-date-time-picker/index.js.map +1 -0
  107. package/build/components/rich-text/format-toolbar-container.js +0 -1
  108. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  109. package/build/components/rich-text/index.js +2 -2
  110. package/build/components/rich-text/index.js.map +1 -1
  111. package/build/components/rich-text/index.native.js +5 -1
  112. package/build/components/rich-text/index.native.js.map +1 -1
  113. package/build/components/url-input/index.js +11 -4
  114. package/build/components/url-input/index.js.map +1 -1
  115. package/build/components/use-block-drop-zone/index.native.js +167 -0
  116. package/build/components/use-block-drop-zone/index.native.js.map +1 -0
  117. package/build/components/use-on-block-drop/index.native.js +95 -0
  118. package/build/components/use-on-block-drop/index.native.js.map +1 -0
  119. package/build/components/use-setting/index.js +42 -18
  120. package/build/components/use-setting/index.js.map +1 -1
  121. package/build/components/warning/index.js +6 -1
  122. package/build/components/warning/index.js.map +1 -1
  123. package/build/components/writing-flow/use-click-selection.js +1 -3
  124. package/build/components/writing-flow/use-click-selection.js.map +1 -1
  125. package/build/components/writing-flow/use-input.js +15 -0
  126. package/build/components/writing-flow/use-input.js.map +1 -1
  127. package/build/components/writing-flow/use-selection-observer.js +49 -8
  128. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  129. package/build/elements/index.js +9 -0
  130. package/build/elements/index.js.map +1 -0
  131. package/build/hooks/anchor.js.map +1 -1
  132. package/build/hooks/border.js +2 -7
  133. package/build/hooks/border.js.map +1 -1
  134. package/build/hooks/color-panel.js +14 -7
  135. package/build/hooks/color-panel.js.map +1 -1
  136. package/build/hooks/color.js +8 -88
  137. package/build/hooks/color.js.map +1 -1
  138. package/build/hooks/dimensions.js +16 -6
  139. package/build/hooks/dimensions.js.map +1 -1
  140. package/build/hooks/index.js +2 -0
  141. package/build/hooks/index.js.map +1 -1
  142. package/build/hooks/margin.js +64 -12
  143. package/build/hooks/margin.js.map +1 -1
  144. package/build/hooks/padding.js +60 -12
  145. package/build/hooks/padding.js.map +1 -1
  146. package/build/hooks/settings.js +32 -0
  147. package/build/hooks/settings.js.map +1 -0
  148. package/build/hooks/style.js +14 -13
  149. package/build/hooks/style.js.map +1 -1
  150. package/build/hooks/typography.js +6 -2
  151. package/build/hooks/typography.js.map +1 -1
  152. package/build/index.js +14 -0
  153. package/build/index.js.map +1 -1
  154. package/build/layouts/flex.js +5 -2
  155. package/build/layouts/flex.js.map +1 -1
  156. package/build/store/actions.js +14 -0
  157. package/build/store/actions.js.map +1 -1
  158. package/build/store/defaults.js +0 -1
  159. package/build/store/defaults.js.map +1 -1
  160. package/build/store/reducer.js +17 -2
  161. package/build/store/reducer.js.map +1 -1
  162. package/build/store/selectors.js +43 -13
  163. package/build/store/selectors.js.map +1 -1
  164. package/build-module/components/block-alignment-control/constants.js +36 -0
  165. package/build-module/components/block-alignment-control/constants.js.map +1 -0
  166. package/build-module/components/block-alignment-control/ui.js +4 -35
  167. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  168. package/build-module/components/block-alignment-control/ui.native.js +78 -0
  169. package/build-module/components/block-alignment-control/ui.native.js.map +1 -0
  170. package/build-module/components/block-alignment-matrix-control/index.js +1 -6
  171. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  172. package/build-module/components/block-content-overlay/index.js +3 -78
  173. package/build-module/components/block-content-overlay/index.js.map +1 -1
  174. package/build-module/components/block-draggable/draggable-chip.native.js +51 -0
  175. package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -0
  176. package/build-module/components/block-draggable/dropping-insertion-point.native.js +137 -0
  177. package/build-module/components/block-draggable/dropping-insertion-point.native.js.map +1 -0
  178. package/build-module/components/block-draggable/index.native.js +453 -0
  179. package/build-module/components/block-draggable/index.native.js.map +1 -0
  180. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js +120 -0
  181. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -0
  182. package/build-module/components/block-list/block-list-context.native.js +179 -0
  183. package/build-module/components/block-list/block-list-context.native.js.map +1 -0
  184. package/build-module/components/block-list/block-list-item-cell.native.js +59 -0
  185. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -0
  186. package/build-module/components/block-list/block-list-item.native.js +12 -9
  187. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  188. package/build-module/components/block-list/block.native.js +26 -5
  189. package/build-module/components/block-list/block.native.js.map +1 -1
  190. package/build-module/components/block-list/index.js +35 -33
  191. package/build-module/components/block-list/index.js.map +1 -1
  192. package/build-module/components/block-list/index.native.js +72 -23
  193. package/build-module/components/block-list/index.native.js.map +1 -1
  194. package/build-module/components/block-list/use-block-props/index.js +9 -5
  195. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  196. package/build-module/components/block-list/use-block-props/use-block-class-names.js +1 -7
  197. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  198. package/build-module/components/block-list/use-in-between-inserter.js +1 -1
  199. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  200. package/build-module/components/block-mobile-toolbar/index.native.js +9 -3
  201. package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
  202. package/build-module/components/block-mover/index.native.js +18 -5
  203. package/build-module/components/block-mover/index.native.js.map +1 -1
  204. package/build-module/components/block-navigation/dropdown.js +10 -5
  205. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  206. package/build-module/components/block-popover/inbetween.js +19 -8
  207. package/build-module/components/block-popover/inbetween.js.map +1 -1
  208. package/build-module/components/block-popover/index.js +21 -15
  209. package/build-module/components/block-popover/index.js.map +1 -1
  210. package/build-module/components/block-preview/index.js +1 -1
  211. package/build-module/components/block-preview/index.js.map +1 -1
  212. package/build-module/components/block-tools/block-selection-button.js +1 -0
  213. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  214. package/build-module/components/block-tools/selected-block-popover.js +2 -29
  215. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  216. package/build-module/components/block-variation-transforms/index.js +13 -2
  217. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  218. package/build-module/components/border-radius-control/input-controls.js +11 -4
  219. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  220. package/build-module/components/color-style-selector/index.js +6 -0
  221. package/build-module/components/color-style-selector/index.js.map +1 -1
  222. package/build-module/components/colors-gradients/dropdown.js +124 -43
  223. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  224. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +36 -64
  225. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  226. package/build-module/components/convert-to-group-buttons/toolbar.js +23 -6
  227. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  228. package/build-module/components/iframe/index.js +52 -51
  229. package/build-module/components/iframe/index.js.map +1 -1
  230. package/build-module/components/image-editor/use-save-image.js +2 -1
  231. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  232. package/build-module/components/index.js +2 -3
  233. package/build-module/components/index.js.map +1 -1
  234. package/build-module/components/inserter/index.js +21 -7
  235. package/build-module/components/inserter/index.js.map +1 -1
  236. package/build-module/components/inserter/index.native.js +2 -2
  237. package/build-module/components/inserter/index.native.js.map +1 -1
  238. package/build-module/components/inserter/quick-inserter.js +4 -5
  239. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  240. package/build-module/components/link-control/constants.js +5 -0
  241. package/build-module/components/link-control/constants.js.map +1 -1
  242. package/build-module/components/link-control/search-results.js +3 -4
  243. package/build-module/components/link-control/search-results.js.map +1 -1
  244. package/build-module/components/link-control/use-search-handler.js +5 -5
  245. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  246. package/build-module/components/list-view/block.js +15 -16
  247. package/build-module/components/list-view/block.js.map +1 -1
  248. package/build-module/components/list-view/branch.js +9 -13
  249. package/build-module/components/list-view/branch.js.map +1 -1
  250. package/build-module/components/list-view/context.js +1 -4
  251. package/build-module/components/list-view/context.js.map +1 -1
  252. package/build-module/components/list-view/drop-indicator.js +0 -1
  253. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  254. package/build-module/components/list-view/index.js +15 -31
  255. package/build-module/components/list-view/index.js.map +1 -1
  256. package/build-module/components/media-placeholder/index.js +0 -2
  257. package/build-module/components/media-placeholder/index.js.map +1 -1
  258. package/build-module/components/media-replace-flow/index.js +0 -2
  259. package/build-module/components/media-replace-flow/index.js.map +1 -1
  260. package/build-module/components/media-upload/index.native.js +8 -3
  261. package/build-module/components/media-upload/index.native.js.map +1 -1
  262. package/build-module/components/navigable-toolbar/index.js +12 -2
  263. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  264. package/build-module/components/plain-text/index.native.js +63 -8
  265. package/build-module/components/plain-text/index.native.js.map +1 -1
  266. package/build-module/components/publish-date-time-picker/index.js +42 -0
  267. package/build-module/components/publish-date-time-picker/index.js.map +1 -0
  268. package/build-module/components/rich-text/format-toolbar-container.js +0 -1
  269. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  270. package/build-module/components/rich-text/index.js +2 -2
  271. package/build-module/components/rich-text/index.js.map +1 -1
  272. package/build-module/components/rich-text/index.native.js +5 -1
  273. package/build-module/components/rich-text/index.native.js.map +1 -1
  274. package/build-module/components/url-input/index.js +11 -4
  275. package/build-module/components/url-input/index.js.map +1 -1
  276. package/build-module/components/use-block-drop-zone/index.native.js +148 -0
  277. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -0
  278. package/build-module/components/use-on-block-drop/index.native.js +83 -0
  279. package/build-module/components/use-on-block-drop/index.native.js.map +1 -0
  280. package/build-module/components/use-setting/index.js +43 -19
  281. package/build-module/components/use-setting/index.js.map +1 -1
  282. package/build-module/components/warning/index.js +6 -1
  283. package/build-module/components/warning/index.js.map +1 -1
  284. package/build-module/components/writing-flow/use-click-selection.js +1 -3
  285. package/build-module/components/writing-flow/use-click-selection.js.map +1 -1
  286. package/build-module/components/writing-flow/use-input.js +15 -0
  287. package/build-module/components/writing-flow/use-input.js.map +1 -1
  288. package/build-module/components/writing-flow/use-selection-observer.js +49 -8
  289. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  290. package/build-module/elements/index.js +2 -0
  291. package/build-module/elements/index.js.map +1 -0
  292. package/build-module/hooks/anchor.js.map +1 -1
  293. package/build-module/hooks/border.js +2 -7
  294. package/build-module/hooks/border.js.map +1 -1
  295. package/build-module/hooks/color-panel.js +11 -6
  296. package/build-module/hooks/color-panel.js.map +1 -1
  297. package/build-module/hooks/color.js +8 -88
  298. package/build-module/hooks/color.js.map +1 -1
  299. package/build-module/hooks/dimensions.js +19 -9
  300. package/build-module/hooks/dimensions.js.map +1 -1
  301. package/build-module/hooks/index.js +1 -0
  302. package/build-module/hooks/index.js.map +1 -1
  303. package/build-module/hooks/margin.js +61 -13
  304. package/build-module/hooks/margin.js.map +1 -1
  305. package/build-module/hooks/padding.js +57 -13
  306. package/build-module/hooks/padding.js.map +1 -1
  307. package/build-module/hooks/settings.js +29 -0
  308. package/build-module/hooks/settings.js.map +1 -0
  309. package/build-module/hooks/style.js +15 -14
  310. package/build-module/hooks/style.js.map +1 -1
  311. package/build-module/hooks/typography.js +6 -2
  312. package/build-module/hooks/typography.js.map +1 -1
  313. package/build-module/index.js +1 -0
  314. package/build-module/index.js.map +1 -1
  315. package/build-module/layouts/flex.js +4 -2
  316. package/build-module/layouts/flex.js.map +1 -1
  317. package/build-module/store/actions.js +12 -0
  318. package/build-module/store/actions.js.map +1 -1
  319. package/build-module/store/defaults.js +0 -1
  320. package/build-module/store/defaults.js.map +1 -1
  321. package/build-module/store/reducer.js +17 -2
  322. package/build-module/store/reducer.js.map +1 -1
  323. package/build-module/store/selectors.js +37 -12
  324. package/build-module/store/selectors.js.map +1 -1
  325. package/build-style/style-rtl.css +100 -225
  326. package/build-style/style.css +100 -225
  327. package/package.json +30 -30
  328. package/src/components/block-alignment-control/constants.js +45 -0
  329. package/src/components/block-alignment-control/ui.js +69 -109
  330. package/src/components/block-alignment-control/ui.native.js +86 -0
  331. package/src/components/block-alignment-matrix-control/index.js +1 -5
  332. package/src/components/block-content-overlay/index.js +8 -95
  333. package/src/components/block-content-overlay/style.scss +2 -12
  334. package/src/components/block-draggable/draggable-chip.native.js +49 -0
  335. package/src/components/block-draggable/dropping-insertion-point.native.js +181 -0
  336. package/src/components/block-draggable/dropping-insertion-point.native.scss +8 -0
  337. package/src/components/block-draggable/index.native.js +462 -0
  338. package/src/components/block-draggable/style.native.scss +19 -0
  339. package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +73 -0
  340. package/src/components/block-draggable/test/helpers.native.js +183 -0
  341. package/src/components/block-draggable/test/index.native.js +496 -0
  342. package/src/components/block-draggable/use-scroll-when-dragging.native.js +135 -0
  343. package/src/components/block-list/block-list-context.native.js +175 -0
  344. package/src/components/block-list/block-list-item-cell.native.js +49 -0
  345. package/src/components/block-list/block-list-item.native.js +7 -11
  346. package/src/components/block-list/block.native.js +37 -8
  347. package/src/components/block-list/index.js +44 -44
  348. package/src/components/block-list/index.native.js +54 -13
  349. package/src/components/block-list/style.scss +7 -18
  350. package/src/components/block-list/test/block-list-context.native.js +253 -0
  351. package/src/components/block-list/test/fixtures/block-list-context.native.js +79 -0
  352. package/src/components/block-list/use-block-props/index.js +10 -5
  353. package/src/components/block-list/use-block-props/use-block-class-names.js +1 -11
  354. package/src/components/block-list/use-in-between-inserter.js +1 -1
  355. package/src/components/block-mobile-toolbar/index.native.js +9 -1
  356. package/src/components/block-mover/index.native.js +22 -6
  357. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +10 -0
  358. package/src/components/block-navigation/dropdown.js +12 -8
  359. package/src/components/block-popover/inbetween.js +21 -8
  360. package/src/components/block-popover/index.js +18 -15
  361. package/src/components/block-popover/style.scss +4 -0
  362. package/src/components/block-preview/index.js +1 -4
  363. package/src/components/block-switcher/style.scss +2 -39
  364. package/src/components/block-tools/block-selection-button.js +1 -0
  365. package/src/components/block-tools/selected-block-popover.js +1 -36
  366. package/src/components/block-tools/style.scss +1 -12
  367. package/src/components/block-variation-transforms/index.js +6 -2
  368. package/src/components/border-radius-control/input-controls.js +16 -8
  369. package/src/components/border-radius-control/style.scss +3 -2
  370. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
  371. package/src/components/color-style-selector/index.js +18 -9
  372. package/src/components/colors-gradients/dropdown.js +130 -62
  373. package/src/components/colors-gradients/panel-color-gradient-settings.js +30 -76
  374. package/src/components/colors-gradients/style.scss +52 -50
  375. package/src/components/convert-to-group-buttons/toolbar.js +30 -13
  376. package/src/components/duotone-control/style.scss +1 -7
  377. package/src/components/iframe/index.js +62 -54
  378. package/src/components/image-editor/use-save-image.js +2 -1
  379. package/src/components/image-size-control/README.md +1 -1
  380. package/src/components/index.js +2 -3
  381. package/src/components/inserter/index.js +20 -0
  382. package/src/components/inserter/index.native.js +2 -2
  383. package/src/components/inserter/quick-inserter.js +3 -11
  384. package/src/components/inserter/style.native.scss +1 -0
  385. package/src/components/inserter/style.scss +2 -1
  386. package/src/components/link-control/constants.js +11 -0
  387. package/src/components/link-control/search-results.js +4 -5
  388. package/src/components/link-control/use-search-handler.js +11 -5
  389. package/src/components/list-view/block.js +24 -34
  390. package/src/components/list-view/branch.js +10 -20
  391. package/src/components/list-view/context.js +1 -4
  392. package/src/components/list-view/drop-indicator.js +0 -1
  393. package/src/components/list-view/index.js +11 -41
  394. package/src/components/list-view/style.scss +2 -1
  395. package/src/components/media-placeholder/index.js +0 -2
  396. package/src/components/media-replace-flow/index.js +0 -2
  397. package/src/components/media-upload/index.native.js +6 -2
  398. package/src/components/media-upload/test/index.native.js +31 -6
  399. package/src/components/navigable-toolbar/index.js +12 -2
  400. package/src/components/plain-text/index.native.js +64 -8
  401. package/src/components/preview-options/style.scss +0 -4
  402. package/src/components/publish-date-time-picker/README.md +52 -0
  403. package/src/components/publish-date-time-picker/index.js +50 -0
  404. package/src/components/publish-date-time-picker/style.scss +20 -0
  405. package/src/components/rich-text/format-toolbar-container.js +0 -1
  406. package/src/components/rich-text/index.js +3 -1
  407. package/src/components/rich-text/index.native.js +4 -0
  408. package/src/components/rich-text/style.scss +2 -8
  409. package/src/components/url-input/index.js +9 -4
  410. package/src/components/use-block-drop-zone/index.native.js +173 -0
  411. package/src/components/use-on-block-drop/index.native.js +119 -0
  412. package/src/components/use-setting/index.js +57 -21
  413. package/src/components/warning/index.js +47 -42
  414. package/src/components/warning/test/__snapshots__/index.js.snap +15 -6
  415. package/src/components/warning/test/index.js +1 -1
  416. package/src/components/writing-flow/use-click-selection.js +1 -4
  417. package/src/components/writing-flow/use-input.js +12 -0
  418. package/src/components/writing-flow/use-selection-observer.js +55 -10
  419. package/src/elements/index.js +1 -0
  420. package/src/hooks/anchor.js +1 -1
  421. package/src/hooks/border.js +2 -11
  422. package/src/hooks/border.scss +0 -48
  423. package/src/hooks/color-panel.js +13 -9
  424. package/src/hooks/color.js +5 -74
  425. package/src/hooks/color.scss +5 -58
  426. package/src/hooks/dimensions.js +55 -41
  427. package/src/hooks/index.js +1 -0
  428. package/src/hooks/margin.js +64 -15
  429. package/src/hooks/padding.js +60 -15
  430. package/src/hooks/padding.scss +12 -0
  431. package/src/hooks/settings.js +32 -0
  432. package/src/hooks/style.js +25 -39
  433. package/src/hooks/test/settings.js +48 -0
  434. package/src/hooks/typography.js +2 -0
  435. package/src/index.js +1 -0
  436. package/src/layouts/flex.js +11 -3
  437. package/src/store/actions.js +12 -0
  438. package/src/store/defaults.js +0 -1
  439. package/src/store/reducer.js +14 -1
  440. package/src/store/selectors.js +42 -12
  441. package/src/store/test/reducer.js +5 -0
  442. package/src/store/test/selectors.js +17 -0
  443. package/src/style.scss +2 -2
  444. package/tsconfig.tsbuildinfo +1 -1
  445. package/build/components/border-style-control/index.js +0 -60
  446. package/build/components/border-style-control/index.js.map +0 -1
  447. package/build/components/colors/color-panel.js +0 -82
  448. package/build/components/colors/color-panel.js.map +0 -1
  449. package/build/components/colors/color-panel.native.js +0 -11
  450. package/build/components/colors/color-panel.native.js.map +0 -1
  451. package/build/components/colors-gradients/tools-panel-color-dropdown.js +0 -89
  452. package/build/components/colors-gradients/tools-panel-color-dropdown.js.map +0 -1
  453. package/build-module/components/border-style-control/index.js +0 -50
  454. package/build-module/components/border-style-control/index.js.map +0 -1
  455. package/build-module/components/colors/color-panel.js +0 -70
  456. package/build-module/components/colors/color-panel.js.map +0 -1
  457. package/build-module/components/colors/color-panel.native.js +0 -4
  458. package/build-module/components/colors/color-panel.native.js.map +0 -1
  459. package/build-module/components/colors-gradients/tools-panel-color-dropdown.js +0 -75
  460. package/build-module/components/colors-gradients/tools-panel-color-dropdown.js.map +0 -1
  461. package/src/components/block-alignment-matrix-control/style.scss +0 -10
  462. package/src/components/border-style-control/index.js +0 -47
  463. package/src/components/border-style-control/style.scss +0 -18
  464. package/src/components/colors/color-panel.js +0 -91
  465. package/src/components/colors/color-panel.native.js +0 -3
  466. package/src/components/colors-gradients/tools-panel-color-dropdown.js +0 -85
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"names":["classnames","Popover","getScrollContainer","__unstableUseBlockElement","useBlockElement","usePopoverScroll","BlockPopover","clientId","bottomClientId","children","__unstablePopoverSlot","__unstableContentRef","props","selectedElement","lastSelectedElement","popoverScrollRef","anchorRef","top","bottom","ownerDocument","stickyBoundaryElement","defaultView","frameElement","body","current","className"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,OAAT,QAAwB,uBAAxB;AACA,SAASC,kBAAT,QAAmC,gBAAnC;AAEA;AACA;AACA;;AACA,SAASC,yBAAyB,IAAIC,eAAtC,QAA6D,8CAA7D;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AAEA,eAAe,SAASC,YAAT,OAOX;AAAA,MAPkC;AACrCC,IAAAA,QADqC;AAErCC,IAAAA,cAFqC;AAGrCC,IAAAA,QAHqC;AAIrCC,IAAAA,qBAJqC;AAKrCC,IAAAA,oBALqC;AAMrC,OAAGC;AANkC,GAOlC;AACH,QAAMC,eAAe,GAAGT,eAAe,CAAEG,QAAF,CAAvC;AACA,QAAMO,mBAAmB,GAAGV,eAAe,CAAEI,cAAF,aAAEA,cAAF,cAAEA,cAAF,GAAoBD,QAApB,CAA3C;AACA,QAAMQ,gBAAgB,GAAGV,gBAAgB,CAAEM,oBAAF,CAAzC;;AAEA,MAAK,CAAEE,eAAF,IAAuBL,cAAc,IAAI,CAAEM,mBAAhD,EAAwE;AACvE,WAAO,IAAP;AACA;;AAED,QAAME,SAAS,GAAG;AACjBC,IAAAA,GAAG,EAAEJ,eADY;AAEjBK,IAAAA,MAAM,EAAEJ;AAFS,GAAlB;AAKA,QAAM;AAAEK,IAAAA;AAAF,MAAoBN,eAA1B;AACA,QAAMO,qBAAqB,GAC1BD,aAAa,CAACE,WAAd,CAA0BC,YAA1B,IACApB,kBAAkB,CAAEW,eAAF,CADlB,IAEAM,aAAa,CAACI,IAHf;AAKA,SACC,cAAC,OAAD;AACC,IAAA,GAAG,EAAGR,gBADP;AAEC,IAAA,OAAO,MAFR;AAGC,IAAA,OAAO,EAAG,KAHX;AAIC,IAAA,QAAQ,EAAC,gBAJV;AAKC,IAAA,YAAY,EAAG,KALhB;AAMC,IAAA,SAAS,EAAGC,SANb;AAOC,IAAA,+BAA+B,EAAGI,qBAPnC,CAQC;AACA;AATD;AAUC,IAAA,kBAAkB,EAAGV,qBAAqB,IAAI,IAV/C;AAWC,IAAA,wBAAwB,MAXzB,CAYC;AAZD;AAaC,IAAA,wBAAwB,EAAGG,eAb5B;AAcC,IAAA,0BAA0B,MAd3B,CAeC;AACA;AAhBD;AAiBC,IAAA,6BAA6B,EAAGF,oBAAH,aAAGA,oBAAH,uBAAGA,oBAAoB,CAAEa;AAjBvD,KAkBMZ,KAlBN;AAmBC,IAAA,SAAS,EAAGZ,UAAU,CACrB,4BADqB,EAErBY,KAAK,CAACa,SAFe;AAnBvB,MAwBGhB,QAxBH,CADD;AA4BA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Popover } from '@wordpress/components';\nimport { getScrollContainer } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nexport default function BlockPopover( {\n\tclientId,\n\tbottomClientId,\n\tchildren,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst selectedElement = useBlockElement( clientId );\n\tconst lastSelectedElement = useBlockElement( bottomClientId ?? clientId );\n\tconst popoverScrollRef = usePopoverScroll( __unstableContentRef );\n\n\tif ( ! selectedElement || ( bottomClientId && ! lastSelectedElement ) ) {\n\t\treturn null;\n\t}\n\n\tconst anchorRef = {\n\t\ttop: selectedElement,\n\t\tbottom: lastSelectedElement,\n\t};\n\n\tconst { ownerDocument } = selectedElement;\n\tconst stickyBoundaryElement =\n\t\townerDocument.defaultView.frameElement ||\n\t\tgetScrollContainer( selectedElement ) ||\n\t\townerDocument.body;\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ popoverScrollRef }\n\t\t\tnoArrow\n\t\t\tanimate={ false }\n\t\t\tposition=\"top right left\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchorRef={ anchorRef }\n\t\t\t__unstableStickyBoundaryElement={ stickyBoundaryElement }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t\t__unstableBoundaryParent\n\t\t\t// Observe movement for block animations (especially horizontal).\n\t\t\t__unstableObserveElement={ selectedElement }\n\t\t\tshouldAnchorIncludePadding\n\t\t\t// Used to safeguard sticky position behavior against cases where it would permanently\n\t\t\t// obscure specific sections of a block.\n\t\t\t__unstableEditorCanvasWrapper={ __unstableContentRef?.current }\n\t\t\t{ ...props }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t>\n\t\t\t{ children }\n\t\t</Popover>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"names":["classnames","Popover","useMemo","__unstableUseBlockElement","useBlockElement","usePopoverScroll","BlockPopover","clientId","bottomClientId","children","__unstableRefreshSize","__unstableCoverTarget","__unstablePopoverSlot","__unstableContentRef","props","selectedElement","lastSelectedElement","popoverScrollRef","style","position","width","offsetWidth","height","offsetHeight","anchorRef","top","bottom","className"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,OAAT,QAAwB,uBAAxB;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,SAASC,yBAAyB,IAAIC,eAAtC,QAA6D,8CAA7D;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AAEA,eAAe,SAASC,YAAT,OASX;AAAA,MATkC;AACrCC,IAAAA,QADqC;AAErCC,IAAAA,cAFqC;AAGrCC,IAAAA,QAHqC;AAIrCC,IAAAA,qBAJqC;AAKrCC,IAAAA,qBAAqB,GAAG,KALa;AAMrCC,IAAAA,qBANqC;AAOrCC,IAAAA,oBAPqC;AAQrC,OAAGC;AARkC,GASlC;AACH,QAAMC,eAAe,GAAGX,eAAe,CAAEG,QAAF,CAAvC;AACA,QAAMS,mBAAmB,GAAGZ,eAAe,CAAEI,cAAF,aAAEA,cAAF,cAAEA,cAAF,GAAoBD,QAApB,CAA3C;AACA,QAAMU,gBAAgB,GAAGZ,gBAAgB,CAAEQ,oBAAF,CAAzC;AACA,QAAMK,KAAK,GAAGhB,OAAO,CAAE,MAAM;AAC5B,QAAK,CAAEa,eAAF,IAAqBC,mBAAmB,KAAKD,eAAlD,EAAoE;AACnE,aAAO,EAAP;AACA;;AAED,WAAO;AACNI,MAAAA,QAAQ,EAAE,UADJ;AAENC,MAAAA,KAAK,EAAEL,eAAe,CAACM,WAFjB;AAGNC,MAAAA,MAAM,EAAEP,eAAe,CAACQ;AAHlB,KAAP;AAKA,GAVoB,EAUlB,CAAER,eAAF,EAAmBC,mBAAnB,EAAwCN,qBAAxC,CAVkB,CAArB;;AAYA,MAAK,CAAEK,eAAF,IAAuBP,cAAc,IAAI,CAAEQ,mBAAhD,EAAwE;AACvE,WAAO,IAAP;AACA;;AAED,QAAMQ,SAAS,GAAG;AACjBC,IAAAA,GAAG,EAAEV,eADY;AAEjBW,IAAAA,MAAM,EAAEV;AAFS,GAAlB;AAKA,SACC,cAAC,OAAD;AACC,IAAA,GAAG,EAAGC,gBADP;AAEC,IAAA,OAAO,EAAG,KAFX;AAGC,IAAA,QAAQ,EAAC,gBAHV;AAIC,IAAA,YAAY,EAAG,KAJhB;AAKC,IAAA,SAAS,EAAGO,SALb,CAMC;AACA;AAPD;AAQC,IAAA,kBAAkB,EAAGZ,qBAAqB,IAAI,IAR/C,CASC;AATD;AAUC,IAAA,wBAAwB,EAAGG,eAV5B;AAWC,IAAA,uBAAuB,MAXxB;AAYC,IAAA,eAAe;AAZhB,KAaMD,KAbN;AAcC,IAAA,SAAS,EAAGd,UAAU,CACrB,4BADqB,EAErBc,KAAK,CAACa,SAFe;AAdvB,MAmBGhB,qBAAqB,IAAI;AAAK,IAAA,KAAK,EAAGO;AAAb,KAAuBT,QAAvB,CAnB5B,EAoBG,CAAEE,qBAAF,IAA2BF,QApB9B,CADD;AAwBA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Popover } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nexport default function BlockPopover( {\n\tclientId,\n\tbottomClientId,\n\tchildren,\n\t__unstableRefreshSize,\n\t__unstableCoverTarget = false,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst selectedElement = useBlockElement( clientId );\n\tconst lastSelectedElement = useBlockElement( bottomClientId ?? clientId );\n\tconst popoverScrollRef = usePopoverScroll( __unstableContentRef );\n\tconst style = useMemo( () => {\n\t\tif ( ! selectedElement || lastSelectedElement !== selectedElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tposition: 'absolute',\n\t\t\twidth: selectedElement.offsetWidth,\n\t\t\theight: selectedElement.offsetHeight,\n\t\t};\n\t}, [ selectedElement, lastSelectedElement, __unstableRefreshSize ] );\n\n\tif ( ! selectedElement || ( bottomClientId && ! lastSelectedElement ) ) {\n\t\treturn null;\n\t}\n\n\tconst anchorRef = {\n\t\ttop: selectedElement,\n\t\tbottom: lastSelectedElement,\n\t};\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ popoverScrollRef }\n\t\t\tanimate={ false }\n\t\t\tposition=\"top right left\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchorRef={ anchorRef }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t\t// Observe movement for block animations (especially horizontal).\n\t\t\t__unstableObserveElement={ selectedElement }\n\t\t\t__unstableForcePosition\n\t\t\t__unstableShift\n\t\t\t{ ...props }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t>\n\t\t\t{ __unstableCoverTarget && <div style={ style }>{ children }</div> }\n\t\t\t{ ! __unstableCoverTarget && children }\n\t\t</Popover>\n\t);\n}\n"]}
@@ -9,7 +9,7 @@ import classnames from 'classnames';
9
9
  * WordPress dependencies
10
10
  */
11
11
 
12
- import { __experimentalUseDisabled as useDisabled, useMergeRefs } from '@wordpress/compose';
12
+ import { useDisabled, useMergeRefs } from '@wordpress/compose';
13
13
  import { useSelect } from '@wordpress/data';
14
14
  import { memo, useMemo } from '@wordpress/element';
15
15
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-preview/index.js"],"names":["castArray","classnames","__experimentalUseDisabled","useDisabled","useMergeRefs","useSelect","memo","useMemo","BlockEditorProvider","LiveBlockPreview","AutoHeightBlockPreview","store","blockEditorStore","BlockListItems","BlockPreview","blocks","__experimentalPadding","viewportWidth","__experimentalLive","__experimentalOnClick","__experimentalMinHeight","originalSettings","select","getSettings","settings","_settings","__experimentalBlockPatterns","renderedBlocks","length","useBlockPreview","props","__experimentalLayout","disabledRef","ref","children","className"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,QAA1B;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SACCC,yBAAyB,IAAIC,WAD9B,EAECC,YAFD,QAGO,oBAHP;AAIA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,IAAT,EAAeC,OAAf,QAA8B,oBAA9B;AAEA;AACA;AACA;;AACA,OAAOC,mBAAP,MAAgC,aAAhC;AACA,OAAOC,gBAAP,MAA6B,QAA7B;AACA,OAAOC,sBAAP,MAAmC,QAAnC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,cAAT,QAA+B,eAA/B;AAEA,OAAO,SAASC,YAAT,OAOH;AAAA,MAP0B;AAC7BC,IAAAA,MAD6B;AAE7BC,IAAAA,qBAAqB,GAAG,CAFK;AAG7BC,IAAAA,aAAa,GAAG,IAHa;AAI7BC,IAAAA,kBAAkB,GAAG,KAJQ;AAK7BC,IAAAA,qBAL6B;AAM7BC,IAAAA;AAN6B,GAO1B;AACH,QAAMC,gBAAgB,GAAGhB,SAAS,CAC/BiB,MAAF,IAAcA,MAAM,CAAEV,gBAAF,CAAN,CAA2BW,WAA3B,EADmB,EAEjC,EAFiC,CAAlC;AAIA,QAAMC,QAAQ,GAAGjB,OAAO,CAAE,MAAM;AAC/B,UAAMkB,SAAS,GAAG,EAAE,GAAGJ;AAAL,KAAlB;AACAI,IAAAA,SAAS,CAACC,2BAAV,GAAwC,EAAxC;AACA,WAAOD,SAAP;AACA,GAJuB,EAIrB,CAAEJ,gBAAF,CAJqB,CAAxB;AAKA,QAAMM,cAAc,GAAGpB,OAAO,CAAE,MAAMP,SAAS,CAAEe,MAAF,CAAjB,EAA6B,CAAEA,MAAF,CAA7B,CAA9B;;AACA,MAAK,CAAEA,MAAF,IAAYA,MAAM,CAACa,MAAP,KAAkB,CAAnC,EAAuC;AACtC,WAAO,IAAP;AACA;;AACD,SACC,cAAC,mBAAD;AAAqB,IAAA,KAAK,EAAGD,cAA7B;AAA8C,IAAA,QAAQ,EAAGH;AAAzD,KACGN,kBAAkB,GACnB,cAAC,gBAAD;AAAkB,IAAA,OAAO,EAAGC;AAA5B,IADmB,GAGnB,cAAC,sBAAD;AACC,IAAA,aAAa,EAAGF,aADjB;AAEC,IAAA,qBAAqB,EAAGD,qBAFzB;AAGC,IAAA,uBAAuB,EAAGI;AAH3B,IAJF,CADD;AAaA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAed,IAAI,CAAEQ,YAAF,CAAnB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASe,eAAT,QAIH;AAAA,MAJ6B;AAChCd,IAAAA,MADgC;AAEhCe,IAAAA,KAAK,GAAG,EAFwB;AAGhCC,IAAAA;AAHgC,GAI7B;AACH,QAAMV,gBAAgB,GAAGhB,SAAS,CAC/BiB,MAAF,IAAcA,MAAM,CAAEV,gBAAF,CAAN,CAA2BW,WAA3B,EADmB,EAEjC,EAFiC,CAAlC;AAIA,QAAMS,WAAW,GAAG7B,WAAW,EAA/B;AACA,QAAM8B,GAAG,GAAG7B,YAAY,CAAE,CAAE0B,KAAK,CAACG,GAAR,EAAaD,WAAb,CAAF,CAAxB;AACA,QAAMR,QAAQ,GAAGjB,OAAO,CACvB,OAAQ,EAAE,GAAGc,gBAAL;AAAuBK,IAAAA,2BAA2B,EAAE;AAApD,GAAR,CADuB,EAEvB,CAAEL,gBAAF,CAFuB,CAAxB;AAIA,QAAMM,cAAc,GAAGpB,OAAO,CAAE,MAAMP,SAAS,CAAEe,MAAF,CAAjB,EAA6B,CAAEA,MAAF,CAA7B,CAA9B;AAEA,QAAMmB,QAAQ,GACb,cAAC,mBAAD;AAAqB,IAAA,KAAK,EAAGP,cAA7B;AAA8C,IAAA,QAAQ,EAAGH;AAAzD,KACC,cAAC,cAAD;AACC,IAAA,cAAc,EAAG,KADlB;AAEC,IAAA,oBAAoB,EAAGO;AAFxB,IADD,CADD;AASA,SAAO,EACN,GAAGD,KADG;AAENG,IAAAA,GAFM;AAGNE,IAAAA,SAAS,EAAElC,UAAU,CACpB6B,KAAK,CAACK,SADc,EAEpB,0CAFoB,EAGpB,qBAHoB,CAHf;AAQND,IAAAA,QAAQ,EAAEnB,MAAM,SAAN,IAAAA,MAAM,WAAN,IAAAA,MAAM,CAAEa,MAAR,GAAiBM,QAAjB,GAA4B;AARhC,GAAP;AAUA","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalUseDisabled as useDisabled,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { memo, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockEditorProvider from '../provider';\nimport LiveBlockPreview from './live';\nimport AutoHeightBlockPreview from './auto';\nimport { store as blockEditorStore } from '../../store';\nimport { BlockListItems } from '../block-list';\n\nexport function BlockPreview( {\n\tblocks,\n\t__experimentalPadding = 0,\n\tviewportWidth = 1200,\n\t__experimentalLive = false,\n\t__experimentalOnClick,\n\t__experimentalMinHeight,\n} ) {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo( () => {\n\t\tconst _settings = { ...originalSettings };\n\t\t_settings.__experimentalBlockPatterns = [];\n\t\treturn _settings;\n\t}, [ originalSettings ] );\n\tconst renderedBlocks = useMemo( () => castArray( blocks ), [ blocks ] );\n\tif ( ! blocks || blocks.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<BlockEditorProvider value={ renderedBlocks } settings={ settings }>\n\t\t\t{ __experimentalLive ? (\n\t\t\t\t<LiveBlockPreview onClick={ __experimentalOnClick } />\n\t\t\t) : (\n\t\t\t\t<AutoHeightBlockPreview\n\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t\t__experimentalPadding={ __experimentalPadding }\n\t\t\t\t\t__experimentalMinHeight={ __experimentalMinHeight }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</BlockEditorProvider>\n\t);\n}\n\n/**\n * BlockPreview renders a preview of a block or array of blocks.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-preview/README.md\n *\n * @param {Object} preview options for how the preview should be shown\n * @param {Array|Object} preview.blocks A block instance (object) or an array of blocks to be previewed.\n * @param {number} preview.viewportWidth Width of the preview container in pixels. Controls at what size the blocks will be rendered inside the preview. Default: 700.\n *\n * @return {WPComponent} The component to be rendered.\n */\nexport default memo( BlockPreview );\n\n/**\n * This hook is used to lightly mark an element as a block preview wrapper\n * element. Call this hook and pass the returned props to the element to mark as\n * a block preview wrapper, automatically rendering inner blocks as children. If\n * you define a ref for the element, it is important to pass the ref to this\n * hook, which the hook in turn will pass to the component through the props it\n * returns. Optionally, you can also pass any other props through this hook, and\n * they will be merged and returned.\n *\n * @param {Object} options Preview options.\n * @param {WPBlock[]} options.blocks Block objects.\n * @param {Object} options.props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options.__experimentalLayout Layout settings to be used in the preview.\n *\n */\nexport function useBlockPreview( {\n\tblocks,\n\tprops = {},\n\t__experimentalLayout,\n} ) {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst disabledRef = useDisabled();\n\tconst ref = useMergeRefs( [ props.ref, disabledRef ] );\n\tconst settings = useMemo(\n\t\t() => ( { ...originalSettings, __experimentalBlockPatterns: [] } ),\n\t\t[ originalSettings ]\n\t);\n\tconst renderedBlocks = useMemo( () => castArray( blocks ), [ blocks ] );\n\n\tconst children = (\n\t\t<BlockEditorProvider value={ renderedBlocks } settings={ settings }>\n\t\t\t<BlockListItems\n\t\t\t\trenderAppender={ false }\n\t\t\t\t__experimentalLayout={ __experimentalLayout }\n\t\t\t/>\n\t\t</BlockEditorProvider>\n\t);\n\n\treturn {\n\t\t...props,\n\t\tref,\n\t\tclassName: classnames(\n\t\t\tprops.className,\n\t\t\t'block-editor-block-preview__live-content',\n\t\t\t'components-disabled'\n\t\t),\n\t\tchildren: blocks?.length ? children : null,\n\t};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-preview/index.js"],"names":["castArray","classnames","useDisabled","useMergeRefs","useSelect","memo","useMemo","BlockEditorProvider","LiveBlockPreview","AutoHeightBlockPreview","store","blockEditorStore","BlockListItems","BlockPreview","blocks","__experimentalPadding","viewportWidth","__experimentalLive","__experimentalOnClick","__experimentalMinHeight","originalSettings","select","getSettings","settings","_settings","__experimentalBlockPatterns","renderedBlocks","length","useBlockPreview","props","__experimentalLayout","disabledRef","ref","children","className"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useDisabled, useMergeRefs } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { memo, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockEditorProvider from '../provider';\nimport LiveBlockPreview from './live';\nimport AutoHeightBlockPreview from './auto';\nimport { store as blockEditorStore } from '../../store';\nimport { BlockListItems } from '../block-list';\n\nexport function BlockPreview( {\n\tblocks,\n\t__experimentalPadding = 0,\n\tviewportWidth = 1200,\n\t__experimentalLive = false,\n\t__experimentalOnClick,\n\t__experimentalMinHeight,\n} ) {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo( () => {\n\t\tconst _settings = { ...originalSettings };\n\t\t_settings.__experimentalBlockPatterns = [];\n\t\treturn _settings;\n\t}, [ originalSettings ] );\n\tconst renderedBlocks = useMemo( () => castArray( blocks ), [ blocks ] );\n\tif ( ! blocks || blocks.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<BlockEditorProvider value={ renderedBlocks } settings={ settings }>\n\t\t\t{ __experimentalLive ? (\n\t\t\t\t<LiveBlockPreview onClick={ __experimentalOnClick } />\n\t\t\t) : (\n\t\t\t\t<AutoHeightBlockPreview\n\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t\t__experimentalPadding={ __experimentalPadding }\n\t\t\t\t\t__experimentalMinHeight={ __experimentalMinHeight }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</BlockEditorProvider>\n\t);\n}\n\n/**\n * BlockPreview renders a preview of a block or array of blocks.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-preview/README.md\n *\n * @param {Object} preview options for how the preview should be shown\n * @param {Array|Object} preview.blocks A block instance (object) or an array of blocks to be previewed.\n * @param {number} preview.viewportWidth Width of the preview container in pixels. Controls at what size the blocks will be rendered inside the preview. Default: 700.\n *\n * @return {WPComponent} The component to be rendered.\n */\nexport default memo( BlockPreview );\n\n/**\n * This hook is used to lightly mark an element as a block preview wrapper\n * element. Call this hook and pass the returned props to the element to mark as\n * a block preview wrapper, automatically rendering inner blocks as children. If\n * you define a ref for the element, it is important to pass the ref to this\n * hook, which the hook in turn will pass to the component through the props it\n * returns. Optionally, you can also pass any other props through this hook, and\n * they will be merged and returned.\n *\n * @param {Object} options Preview options.\n * @param {WPBlock[]} options.blocks Block objects.\n * @param {Object} options.props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options.__experimentalLayout Layout settings to be used in the preview.\n *\n */\nexport function useBlockPreview( {\n\tblocks,\n\tprops = {},\n\t__experimentalLayout,\n} ) {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst disabledRef = useDisabled();\n\tconst ref = useMergeRefs( [ props.ref, disabledRef ] );\n\tconst settings = useMemo(\n\t\t() => ( { ...originalSettings, __experimentalBlockPatterns: [] } ),\n\t\t[ originalSettings ]\n\t);\n\tconst renderedBlocks = useMemo( () => castArray( blocks ), [ blocks ] );\n\n\tconst children = (\n\t\t<BlockEditorProvider value={ renderedBlocks } settings={ settings }>\n\t\t\t<BlockListItems\n\t\t\t\trenderAppender={ false }\n\t\t\t\t__experimentalLayout={ __experimentalLayout }\n\t\t\t/>\n\t\t</BlockEditorProvider>\n\t);\n\n\treturn {\n\t\t...props,\n\t\tref,\n\t\tclassName: classnames(\n\t\t\tprops.className,\n\t\t\t'block-editor-block-preview__live-content',\n\t\t\t'components-disabled'\n\t\t),\n\t\tchildren: blocks?.length ? children : null,\n\t};\n}\n"]}
@@ -239,6 +239,7 @@ function BlockSelectionButton(_ref) {
239
239
  onClick: () => setNavigationMode(false),
240
240
  onKeyDown: onKeyDown,
241
241
  label: label,
242
+ showTooltip: false,
242
243
  className: "block-selection-button_select-button"
243
244
  }, createElement(BlockTitle, {
244
245
  clientId: clientId,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/block-selection-button.js"],"names":["classnames","dragHandle","Button","Flex","FlexItem","useSelect","useDispatch","useEffect","useRef","BACKSPACE","DELETE","UP","DOWN","LEFT","RIGHT","TAB","ESCAPE","ENTER","SPACE","getBlockType","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","speak","focus","__","BlockTitle","BlockIcon","store","blockEditorStore","BlockDraggable","useBlockDisplayInformation","__unstableUseBlockElement","useBlockElement","BlockSelectionButton","clientId","rootClientId","blockInformation","selected","select","getBlock","getBlockIndex","hasBlockMovingClientId","getBlockListSettings","index","name","attributes","blockMovingMode","orientation","setNavigationMode","removeBlock","ref","blockType","label","current","blockElement","getBlockRootClientId","getClientIdsOfDescendants","getSelectedBlockClientId","getMultiSelectedBlocksEndClientId","getPreviousBlockClientId","getNextBlockClientId","isNavigationMode","selectBlock","clearSelectedBlock","setBlockMovingClientId","moveBlockToPosition","onKeyDown","event","keyCode","isUp","isDown","isLeft","isRight","isTab","isEscape","isEnter","isSpace","isShift","shiftKey","preventDefault","selectedBlockClientId","selectionEndClientId","selectionBeforeEndClientId","selectionAfterEndClientId","navigateUp","navigateDown","navigateOut","navigateIn","focusedBlockUid","startingBlockClientId","defaultPrevented","sourceRoot","destRoot","sourceBlockIndex","destinationBlockIndex","nextTabbable","tabbable","findNext","contains","ownerDocument","defaultView","frameElement","findPrevious","classNames","dragHandleLabel","icon","draggableProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle } from '@wordpress/icons';\nimport { Button, Flex, FlexItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tBACKSPACE,\n\tDELETE,\n\tUP,\n\tDOWN,\n\tLEFT,\n\tRIGHT,\n\tTAB,\n\tESCAPE,\n\tENTER,\n\tSPACE,\n} from '@wordpress/keycodes';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n} from '@wordpress/blocks';\nimport { speak } from '@wordpress/a11y';\nimport { focus } from '@wordpress/dom';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockTitle from '../block-title';\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\n\n/**\n * Block selection button component, displaying the label of the block. If the block\n * descends from a root block, a button is displayed enabling the user to select\n * the root block.\n *\n * @param {string} props Component props.\n * @param {string} props.clientId Client ID of block.\n *\n * @return {WPComponent} The component to be rendered.\n */\nfunction BlockSelectionButton( { clientId, rootClientId } ) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockIndex,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tgetBlockListSettings,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst { name, attributes } = getBlock( clientId );\n\t\t\tconst blockMovingMode = hasBlockMovingClientId();\n\t\t\treturn {\n\t\t\t\tindex,\n\t\t\t\tname,\n\t\t\t\tattributes,\n\t\t\t\tblockMovingMode,\n\t\t\t\torientation: getBlockListSettings( rootClientId )?.orientation,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\tconst { index, name, attributes, blockMovingMode, orientation } = selected;\n\tconst { setNavigationMode, removeBlock } = useDispatch( blockEditorStore );\n\tconst ref = useRef();\n\n\tconst blockType = getBlockType( name );\n\tconst label = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\tindex + 1,\n\t\torientation\n\t);\n\n\t// Focus the breadcrumb in navigation mode.\n\tuseEffect( () => {\n\t\tref.current.focus();\n\n\t\tspeak( label );\n\t}, [ label ] );\n\tconst blockElement = useBlockElement( clientId );\n\n\tconst {\n\t\thasBlockMovingClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockRootClientId,\n\t\tgetClientIdsOfDescendants,\n\t\tgetSelectedBlockClientId,\n\t\tgetMultiSelectedBlocksEndClientId,\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t\tisNavigationMode,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t\tsetBlockMovingClientId,\n\t\tmoveBlockToPosition,\n\t} = useDispatch( blockEditorStore );\n\n\tfunction onKeyDown( event ) {\n\t\tconst { keyCode } = event;\n\t\tconst isUp = keyCode === UP;\n\t\tconst isDown = keyCode === DOWN;\n\t\tconst isLeft = keyCode === LEFT;\n\t\tconst isRight = keyCode === RIGHT;\n\t\tconst isTab = keyCode === TAB;\n\t\tconst isEscape = keyCode === ESCAPE;\n\t\tconst isEnter = keyCode === ENTER;\n\t\tconst isSpace = keyCode === SPACE;\n\t\tconst isShift = event.shiftKey;\n\n\t\tif ( keyCode === BACKSPACE || keyCode === DELETE ) {\n\t\t\tremoveBlock( clientId );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst selectionEndClientId = getMultiSelectedBlocksEndClientId();\n\t\tconst selectionBeforeEndClientId = getPreviousBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\t\tconst selectionAfterEndClientId = getNextBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\n\t\tconst navigateUp = ( isTab && isShift ) || isUp;\n\t\tconst navigateDown = ( isTab && ! isShift ) || isDown;\n\t\t// Move out of current nesting level (no effect if at root level).\n\t\tconst navigateOut = isLeft;\n\t\t// Move into next nesting level (no effect if the current block has no innerBlocks).\n\t\tconst navigateIn = isRight;\n\n\t\tlet focusedBlockUid;\n\t\tif ( navigateUp ) {\n\t\t\tfocusedBlockUid = selectionBeforeEndClientId;\n\t\t} else if ( navigateDown ) {\n\t\t\tfocusedBlockUid = selectionAfterEndClientId;\n\t\t} else if ( navigateOut ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetBlockRootClientId( selectedBlockClientId ) ??\n\t\t\t\tselectedBlockClientId;\n\t\t} else if ( navigateIn ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetClientIdsOfDescendants( [ selectedBlockClientId ] )[ 0 ] ??\n\t\t\t\tselectedBlockClientId;\n\t\t}\n\t\tconst startingBlockClientId = hasBlockMovingClientId();\n\t\tif ( isEscape && isNavigationMode() ) {\n\t\t\tclearSelectedBlock();\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif ( isEscape && startingBlockClientId && ! event.defaultPrevented ) {\n\t\t\tsetBlockMovingClientId( null );\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif ( ( isEnter || isSpace ) && startingBlockClientId ) {\n\t\t\tconst sourceRoot = getBlockRootClientId( startingBlockClientId );\n\t\t\tconst destRoot = getBlockRootClientId( selectedBlockClientId );\n\t\t\tconst sourceBlockIndex = getBlockIndex( startingBlockClientId );\n\t\t\tlet destinationBlockIndex = getBlockIndex( selectedBlockClientId );\n\t\t\tif (\n\t\t\t\tsourceBlockIndex < destinationBlockIndex &&\n\t\t\t\tsourceRoot === destRoot\n\t\t\t) {\n\t\t\t\tdestinationBlockIndex -= 1;\n\t\t\t}\n\t\t\tmoveBlockToPosition(\n\t\t\t\tstartingBlockClientId,\n\t\t\t\tsourceRoot,\n\t\t\t\tdestRoot,\n\t\t\t\tdestinationBlockIndex\n\t\t\t);\n\t\t\tselectBlock( startingBlockClientId );\n\t\t\tsetBlockMovingClientId( null );\n\t\t}\n\t\tif ( navigateDown || navigateUp || navigateOut || navigateIn ) {\n\t\t\tif ( focusedBlockUid ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectBlock( focusedBlockUid );\n\t\t\t} else if ( isTab && selectedBlockClientId ) {\n\t\t\t\tlet nextTabbable;\n\n\t\t\t\tif ( navigateDown ) {\n\t\t\t\t\tnextTabbable = blockElement;\n\t\t\t\t\tdo {\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t} while (\n\t\t\t\t\t\tnextTabbable &&\n\t\t\t\t\t\tblockElement.contains( nextTabbable )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! nextTabbable ) {\n\t\t\t\t\t\tnextTabbable =\n\t\t\t\t\t\t\tblockElement.ownerDocument.defaultView.frameElement;\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tnextTabbable = focus.tabbable.findPrevious( blockElement );\n\t\t\t\t}\n\n\t\t\t\tif ( nextTabbable ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnextTabbable.focus();\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tconst classNames = classnames(\n\t\t'block-editor-block-list__block-selection-button',\n\t\t{\n\t\t\t'is-block-moving-mode': !! blockMovingMode,\n\t\t}\n\t);\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\treturn (\n\t\t<div className={ classNames }>\n\t\t\t<Flex\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName=\"block-editor-block-list__block-selection-button__content\"\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockIcon icon={ blockInformation?.icon } showColors />\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockDraggable clientIds={ [ clientId ] }>\n\t\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\t\tclassName=\"block-selection-button_drag-handle\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockDraggable>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tonClick={ () => setNavigationMode( false ) }\n\t\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tclassName=\"block-selection-button_select-button\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tmaximumLength={ 35 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default BlockSelectionButton;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/block-selection-button.js"],"names":["classnames","dragHandle","Button","Flex","FlexItem","useSelect","useDispatch","useEffect","useRef","BACKSPACE","DELETE","UP","DOWN","LEFT","RIGHT","TAB","ESCAPE","ENTER","SPACE","getBlockType","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","speak","focus","__","BlockTitle","BlockIcon","store","blockEditorStore","BlockDraggable","useBlockDisplayInformation","__unstableUseBlockElement","useBlockElement","BlockSelectionButton","clientId","rootClientId","blockInformation","selected","select","getBlock","getBlockIndex","hasBlockMovingClientId","getBlockListSettings","index","name","attributes","blockMovingMode","orientation","setNavigationMode","removeBlock","ref","blockType","label","current","blockElement","getBlockRootClientId","getClientIdsOfDescendants","getSelectedBlockClientId","getMultiSelectedBlocksEndClientId","getPreviousBlockClientId","getNextBlockClientId","isNavigationMode","selectBlock","clearSelectedBlock","setBlockMovingClientId","moveBlockToPosition","onKeyDown","event","keyCode","isUp","isDown","isLeft","isRight","isTab","isEscape","isEnter","isSpace","isShift","shiftKey","preventDefault","selectedBlockClientId","selectionEndClientId","selectionBeforeEndClientId","selectionAfterEndClientId","navigateUp","navigateDown","navigateOut","navigateIn","focusedBlockUid","startingBlockClientId","defaultPrevented","sourceRoot","destRoot","sourceBlockIndex","destinationBlockIndex","nextTabbable","tabbable","findNext","contains","ownerDocument","defaultView","frameElement","findPrevious","classNames","dragHandleLabel","icon","draggableProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle } from '@wordpress/icons';\nimport { Button, Flex, FlexItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tBACKSPACE,\n\tDELETE,\n\tUP,\n\tDOWN,\n\tLEFT,\n\tRIGHT,\n\tTAB,\n\tESCAPE,\n\tENTER,\n\tSPACE,\n} from '@wordpress/keycodes';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n} from '@wordpress/blocks';\nimport { speak } from '@wordpress/a11y';\nimport { focus } from '@wordpress/dom';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockTitle from '../block-title';\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\n\n/**\n * Block selection button component, displaying the label of the block. If the block\n * descends from a root block, a button is displayed enabling the user to select\n * the root block.\n *\n * @param {string} props Component props.\n * @param {string} props.clientId Client ID of block.\n *\n * @return {WPComponent} The component to be rendered.\n */\nfunction BlockSelectionButton( { clientId, rootClientId } ) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockIndex,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tgetBlockListSettings,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst { name, attributes } = getBlock( clientId );\n\t\t\tconst blockMovingMode = hasBlockMovingClientId();\n\t\t\treturn {\n\t\t\t\tindex,\n\t\t\t\tname,\n\t\t\t\tattributes,\n\t\t\t\tblockMovingMode,\n\t\t\t\torientation: getBlockListSettings( rootClientId )?.orientation,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\tconst { index, name, attributes, blockMovingMode, orientation } = selected;\n\tconst { setNavigationMode, removeBlock } = useDispatch( blockEditorStore );\n\tconst ref = useRef();\n\n\tconst blockType = getBlockType( name );\n\tconst label = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\tindex + 1,\n\t\torientation\n\t);\n\n\t// Focus the breadcrumb in navigation mode.\n\tuseEffect( () => {\n\t\tref.current.focus();\n\n\t\tspeak( label );\n\t}, [ label ] );\n\tconst blockElement = useBlockElement( clientId );\n\n\tconst {\n\t\thasBlockMovingClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockRootClientId,\n\t\tgetClientIdsOfDescendants,\n\t\tgetSelectedBlockClientId,\n\t\tgetMultiSelectedBlocksEndClientId,\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t\tisNavigationMode,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t\tsetBlockMovingClientId,\n\t\tmoveBlockToPosition,\n\t} = useDispatch( blockEditorStore );\n\n\tfunction onKeyDown( event ) {\n\t\tconst { keyCode } = event;\n\t\tconst isUp = keyCode === UP;\n\t\tconst isDown = keyCode === DOWN;\n\t\tconst isLeft = keyCode === LEFT;\n\t\tconst isRight = keyCode === RIGHT;\n\t\tconst isTab = keyCode === TAB;\n\t\tconst isEscape = keyCode === ESCAPE;\n\t\tconst isEnter = keyCode === ENTER;\n\t\tconst isSpace = keyCode === SPACE;\n\t\tconst isShift = event.shiftKey;\n\n\t\tif ( keyCode === BACKSPACE || keyCode === DELETE ) {\n\t\t\tremoveBlock( clientId );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst selectionEndClientId = getMultiSelectedBlocksEndClientId();\n\t\tconst selectionBeforeEndClientId = getPreviousBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\t\tconst selectionAfterEndClientId = getNextBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\n\t\tconst navigateUp = ( isTab && isShift ) || isUp;\n\t\tconst navigateDown = ( isTab && ! isShift ) || isDown;\n\t\t// Move out of current nesting level (no effect if at root level).\n\t\tconst navigateOut = isLeft;\n\t\t// Move into next nesting level (no effect if the current block has no innerBlocks).\n\t\tconst navigateIn = isRight;\n\n\t\tlet focusedBlockUid;\n\t\tif ( navigateUp ) {\n\t\t\tfocusedBlockUid = selectionBeforeEndClientId;\n\t\t} else if ( navigateDown ) {\n\t\t\tfocusedBlockUid = selectionAfterEndClientId;\n\t\t} else if ( navigateOut ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetBlockRootClientId( selectedBlockClientId ) ??\n\t\t\t\tselectedBlockClientId;\n\t\t} else if ( navigateIn ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetClientIdsOfDescendants( [ selectedBlockClientId ] )[ 0 ] ??\n\t\t\t\tselectedBlockClientId;\n\t\t}\n\t\tconst startingBlockClientId = hasBlockMovingClientId();\n\t\tif ( isEscape && isNavigationMode() ) {\n\t\t\tclearSelectedBlock();\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif ( isEscape && startingBlockClientId && ! event.defaultPrevented ) {\n\t\t\tsetBlockMovingClientId( null );\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif ( ( isEnter || isSpace ) && startingBlockClientId ) {\n\t\t\tconst sourceRoot = getBlockRootClientId( startingBlockClientId );\n\t\t\tconst destRoot = getBlockRootClientId( selectedBlockClientId );\n\t\t\tconst sourceBlockIndex = getBlockIndex( startingBlockClientId );\n\t\t\tlet destinationBlockIndex = getBlockIndex( selectedBlockClientId );\n\t\t\tif (\n\t\t\t\tsourceBlockIndex < destinationBlockIndex &&\n\t\t\t\tsourceRoot === destRoot\n\t\t\t) {\n\t\t\t\tdestinationBlockIndex -= 1;\n\t\t\t}\n\t\t\tmoveBlockToPosition(\n\t\t\t\tstartingBlockClientId,\n\t\t\t\tsourceRoot,\n\t\t\t\tdestRoot,\n\t\t\t\tdestinationBlockIndex\n\t\t\t);\n\t\t\tselectBlock( startingBlockClientId );\n\t\t\tsetBlockMovingClientId( null );\n\t\t}\n\t\tif ( navigateDown || navigateUp || navigateOut || navigateIn ) {\n\t\t\tif ( focusedBlockUid ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectBlock( focusedBlockUid );\n\t\t\t} else if ( isTab && selectedBlockClientId ) {\n\t\t\t\tlet nextTabbable;\n\n\t\t\t\tif ( navigateDown ) {\n\t\t\t\t\tnextTabbable = blockElement;\n\t\t\t\t\tdo {\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t} while (\n\t\t\t\t\t\tnextTabbable &&\n\t\t\t\t\t\tblockElement.contains( nextTabbable )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! nextTabbable ) {\n\t\t\t\t\t\tnextTabbable =\n\t\t\t\t\t\t\tblockElement.ownerDocument.defaultView.frameElement;\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tnextTabbable = focus.tabbable.findPrevious( blockElement );\n\t\t\t\t}\n\n\t\t\t\tif ( nextTabbable ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnextTabbable.focus();\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tconst classNames = classnames(\n\t\t'block-editor-block-list__block-selection-button',\n\t\t{\n\t\t\t'is-block-moving-mode': !! blockMovingMode,\n\t\t}\n\t);\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\treturn (\n\t\t<div className={ classNames }>\n\t\t\t<Flex\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName=\"block-editor-block-list__block-selection-button__content\"\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockIcon icon={ blockInformation?.icon } showColors />\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockDraggable clientIds={ [ clientId ] }>\n\t\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\t\tclassName=\"block-selection-button_drag-handle\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockDraggable>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tonClick={ () => setNavigationMode( false ) }\n\t\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\t\tclassName=\"block-selection-button_select-button\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tmaximumLength={ 35 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default BlockSelectionButton;\n"]}
@@ -9,7 +9,7 @@ import classnames from 'classnames';
9
9
  * WordPress dependencies
10
10
  */
11
11
 
12
- import { useState, useRef, useEffect } from '@wordpress/element';
12
+ import { useRef, useEffect } from '@wordpress/element';
13
13
  import { isUnmodifiedDefaultBlock } from '@wordpress/blocks';
14
14
  import { useDispatch, useSelect } from '@wordpress/data';
15
15
  import { useShortcut } from '@wordpress/keyboard-shortcuts';
@@ -20,7 +20,6 @@ import { useViewportMatch } from '@wordpress/compose';
20
20
 
21
21
  import BlockSelectionButton from './block-selection-button';
22
22
  import BlockContextualToolbar from './block-contextual-toolbar';
23
- import Inserter from '../inserter';
24
23
  import { store as blockEditorStore } from '../../store';
25
24
  import BlockPopover from '../block-popover';
26
25
 
@@ -75,7 +74,6 @@ function SelectedBlockPopover(_ref) {
75
74
  }, [clientId]);
76
75
  const isLargeViewport = useViewportMatch('medium');
77
76
  const isToolbarForced = useRef(false);
78
- const [isInserterShown, setIsInserterShown] = useState(false);
79
77
  const {
80
78
  stopTyping
81
79
  } = useDispatch(blockEditorStore);
@@ -100,14 +98,6 @@ function SelectedBlockPopover(_ref) {
100
98
  return null;
101
99
  }
102
100
 
103
- function onFocus() {
104
- setIsInserterShown(true);
105
- }
106
-
107
- function onBlur() {
108
- setIsInserterShown(false);
109
- }
110
-
111
101
  return createElement(BlockPopover, {
112
102
  clientId: capturingClientId || clientId,
113
103
  bottomClientId: lastClientId,
@@ -116,24 +106,7 @@ function SelectedBlockPopover(_ref) {
116
106
  }),
117
107
  __unstablePopoverSlot: __unstablePopoverSlot,
118
108
  __unstableContentRef: __unstableContentRef
119
- }, shouldShowContextualToolbar && createElement("div", {
120
- onFocus: onFocus,
121
- onBlur: onBlur // While ideally it would be enough to capture the
122
- // bubbling focus event from the Inserter, due to the
123
- // characteristics of click focusing of `button`s in
124
- // Firefox and Safari, it is not reliable.
125
- //
126
- // See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus
127
- ,
128
- tabIndex: -1,
129
- className: classnames('block-editor-block-list__block-popover-inserter', {
130
- 'is-visible': isInserterShown
131
- })
132
- }, createElement(Inserter, {
133
- clientId: clientId,
134
- rootClientId: rootClientId,
135
- __experimentalIsQuick: true
136
- })), shouldShowContextualToolbar && createElement(BlockContextualToolbar // If the toolbar is being shown because of being forced
109
+ }, shouldShowContextualToolbar && createElement(BlockContextualToolbar // If the toolbar is being shown because of being forced
137
110
  // it should focus the toolbar right after the mount.
138
111
  , {
139
112
  focusOnMount: isToolbarForced.current,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/selected-block-popover.js"],"names":["find","classnames","useState","useRef","useEffect","isUnmodifiedDefaultBlock","useDispatch","useSelect","useShortcut","useViewportMatch","BlockSelectionButton","BlockContextualToolbar","Inserter","store","blockEditorStore","BlockPopover","selector","select","isNavigationMode","isMultiSelecting","hasMultiSelection","isTyping","getSettings","getLastMultiSelectedBlockClientId","hasFixedToolbar","lastClientId","SelectedBlockPopover","clientId","rootClientId","isEmptyDefaultBlock","capturingClientId","__unstablePopoverSlot","__unstableContentRef","isInsertionPointVisible","isBlockInsertionPointVisible","getBlockInsertionPoint","getBlockOrder","insertionPoint","order","index","isLargeViewport","isToolbarForced","isInserterShown","setIsInserterShown","stopTyping","showEmptyBlockSideInserter","shouldShowBreadcrumb","shouldShowContextualToolbar","canFocusHiddenToolbar","current","isDisabled","initialToolbarItemIndexRef","onFocus","onBlur","wrapperSelector","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getBlockRootClientId","getBlock","getBlockParents","__experimentalGetBlockListSettingsForBlocks","name","attributes","blockParentsClientIds","parentBlockListSettings","parentClientId","__experimentalCaptureToolbars","WrappedBlockPopover","selected"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,QAArB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,QAAT,EAAmBC,MAAnB,EAA2BC,SAA3B,QAA4C,oBAA5C;AACA,SAASC,wBAAT,QAAyC,mBAAzC;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,WAAT,QAA4B,+BAA5B;AACA,SAASC,gBAAT,QAAiC,oBAAjC;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,0BAAjC;AACA,OAAOC,sBAAP,MAAmC,4BAAnC;AACA,OAAOC,QAAP,MAAqB,aAArB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,OAAOC,YAAP,MAAyB,kBAAzB;;AAEA,SAASC,QAAT,CAAmBC,MAAnB,EAA4B;AAC3B,QAAM;AACLC,IAAAA,gBADK;AAELC,IAAAA,gBAFK;AAGLC,IAAAA,iBAHK;AAILC,IAAAA,QAJK;AAKLC,IAAAA,WALK;AAMLC,IAAAA;AANK,MAOFN,MAAM,CAAEH,gBAAF,CAPV;AAQA,SAAO;AACNI,IAAAA,gBAAgB,EAAEA,gBAAgB,EAD5B;AAENC,IAAAA,gBAAgB,EAAEA,gBAAgB,EAF5B;AAGNE,IAAAA,QAAQ,EAAEA,QAAQ,EAHZ;AAING,IAAAA,eAAe,EAAEF,WAAW,GAAGE,eAJzB;AAKNC,IAAAA,YAAY,EAAEL,iBAAiB,KAC5BG,iCAAiC,EADL,GAE5B;AAPG,GAAP;AASA;;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;AACLd,IAAAA,gBADK;AAELC,IAAAA,gBAFK;AAGLE,IAAAA,QAHK;AAILG,IAAAA,eAJK;AAKLC,IAAAA;AALK,MAMFlB,SAAS,CAAES,QAAF,EAAY,EAAZ,CANb;AAOA,QAAMiB,uBAAuB,GAAG1B,SAAS,CACtCU,MAAF,IAAc;AACb,UAAM;AACLiB,MAAAA,4BADK;AAELC,MAAAA,sBAFK;AAGLC,MAAAA;AAHK,QAIFnB,MAAM,CAAEH,gBAAF,CAJV;;AAMA,QAAK,CAAEoB,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,GAAG/B,gBAAgB,CAAE,QAAF,CAAxC;AACA,QAAMgC,eAAe,GAAGtC,MAAM,CAAE,KAAF,CAA9B;AACA,QAAM,CAAEuC,eAAF,EAAmBC,kBAAnB,IAA0CzC,QAAQ,CAAE,KAAF,CAAxD;AACA,QAAM;AAAE0C,IAAAA;AAAF,MAAiBtC,WAAW,CAAEQ,gBAAF,CAAlC;AAEA,QAAM+B,0BAA0B,GAC/B,CAAExB,QAAF,IAAc,CAAEH,gBAAhB,IAAoCW,mBADrC;AAEA,QAAMiB,oBAAoB,GAAG5B,gBAA7B;AACA,QAAM6B,2BAA2B,GAChC,CAAE7B,gBAAF,IACA,CAAEM,eADF,IAEAgB,eAFA,IAGA,CAAErB,gBAHF,IAIA,CAAE0B,0BAJF,IAKA,CAAExB,QANH;AAOA,QAAM2B,qBAAqB,GAC1B,CAAE9B,gBAAF,IACA,CAAE6B,2BADF,IAEA,CAAEvB,eAFF,IAGA,CAAEK,mBAJH;AAMArB,EAAAA,WAAW,CACV,iCADU,EAEV,MAAM;AACLiC,IAAAA,eAAe,CAACQ,OAAhB,GAA0B,IAA1B;AACAL,IAAAA,UAAU,CAAE,IAAF,CAAV;AACA,GALS,EAMV;AACCM,IAAAA,UAAU,EAAE,CAAEF;AADf,GANU,CAAX;AAWA5C,EAAAA,SAAS,CAAE,MAAM;AAChBqC,IAAAA,eAAe,CAACQ,OAAhB,GAA0B,KAA1B;AACA,GAFQ,CAAT,CA1DG,CA8DH;AACA;;AACA,QAAME,0BAA0B,GAAGhD,MAAM,EAAzC;;AAEA,MAAK,CAAE2C,oBAAF,IAA0B,CAAEC,2BAAjC,EAA+D;AAC9D,WAAO,IAAP;AACA;;AAED,WAASK,OAAT,GAAmB;AAClBT,IAAAA,kBAAkB,CAAE,IAAF,CAAlB;AACA;;AAED,WAASU,MAAT,GAAkB;AACjBV,IAAAA,kBAAkB,CAAE,KAAF,CAAlB;AACA;;AAED,SACC,cAAC,YAAD;AACC,IAAA,QAAQ,EAAGb,iBAAiB,IAAIH,QADjC;AAEC,IAAA,cAAc,EAAGF,YAFlB;AAGC,IAAA,SAAS,EAAGxB,UAAU,CAAE,wCAAF,EAA4C;AACjE,oCAA8BgC;AADmC,KAA5C,CAHvB;AAMC,IAAA,qBAAqB,EAAGF,qBANzB;AAOC,IAAA,oBAAoB,EAAGC;AAPxB,KASGe,2BAA2B,IAC5B;AACC,IAAA,OAAO,EAAGK,OADX;AAEC,IAAA,MAAM,EAAGC,MAFV,CAGC;AACA;AACA;AACA;AACA;AACA;AARD;AASC,IAAA,QAAQ,EAAG,CAAC,CATb;AAUC,IAAA,SAAS,EAAGpD,UAAU,CACrB,iDADqB,EAErB;AACC,oBAAcyC;AADf,KAFqB;AAVvB,KAiBC,cAAC,QAAD;AACC,IAAA,QAAQ,EAAGf,QADZ;AAEC,IAAA,YAAY,EAAGC,YAFhB;AAGC,IAAA,qBAAqB;AAHtB,IAjBD,CAVF,EAkCGmB,2BAA2B,IAC5B,cAAC,sBAAD,CACC;AACA;AAFD;AAGC,IAAA,YAAY,EAAGN,eAAe,CAACQ,OAHhC;AAIC,IAAA,0BAA0B,EACzBE,0BAA0B,CAACF,OAL7B;AAOC,IAAA,2BAA2B,EAAKV,KAAF,IAAa;AAC1CY,MAAAA,0BAA0B,CAACF,OAA3B,GAAqCV,KAArC;AACA,KATF,CAUC;AACA;AAXD;AAYC,IAAA,GAAG,EAAGZ;AAZP,IAnCF,EAkDGmB,oBAAoB,IACrB,cAAC,oBAAD;AACC,IAAA,QAAQ,EAAGnB,QADZ;AAEC,IAAA,YAAY,EAAGC;AAFhB,IAnDF,CADD;AA2DA;;AAED,SAAS0B,eAAT,CAA0BrC,MAA1B,EAAmC;AAClC,QAAM;AACLsC,IAAAA,wBADK;AAELC,IAAAA,kCAFK;AAGLC,IAAAA,oBAHK;AAILC,IAAAA,QAJK;AAKLC,IAAAA,eALK;AAMLC,IAAAA;AANK,MAOF3C,MAAM,CAAEH,gBAAF,CAPV;AASA,QAAMa,QAAQ,GACb4B,wBAAwB,MAAMC,kCAAkC,EADjE;;AAGA,MAAK,CAAE7B,QAAP,EAAkB;AACjB;AACA;;AAED,QAAM;AAAEkC,IAAAA,IAAF;AAAQC,IAAAA,UAAU,GAAG;AAArB,MAA4BJ,QAAQ,CAAE/B,QAAF,CAAR,IAAwB,EAA1D;AACA,QAAMoC,qBAAqB,GAAGJ,eAAe,CAAEhC,QAAF,CAA7C,CAlBkC,CAoBlC;;AACA,QAAMqC,uBAAuB,GAAGJ,2CAA2C,CAC1EG,qBAD0E,CAA3E,CArBkC,CAyBlC;;;AACA,QAAMjC,iBAAiB,GAAG9B,IAAI,CAC7B+D,qBAD6B,EAE3BE,cAAF;AAAA;;AAAA,oCACCD,uBAAuB,CAAEC,cAAF,CADxB,0DACC,sBACGC,6BAFJ;AAAA,GAF6B,CAA9B;AAOA,SAAO;AACNvC,IAAAA,QADM;AAENC,IAAAA,YAAY,EAAE6B,oBAAoB,CAAE9B,QAAF,CAF5B;AAGNkC,IAAAA,IAHM;AAINhC,IAAAA,mBAAmB,EAClBgC,IAAI,IAAIxD,wBAAwB,CAAE;AAAEwD,MAAAA,IAAF;AAAQC,MAAAA;AAAR,KAAF,CAL3B;AAMNhC,IAAAA;AANM,GAAP;AAQA;;AAED,eAAe,SAASqC,mBAAT,QAGX;AAAA,MAHyC;AAC5CpC,IAAAA,qBAD4C;AAE5CC,IAAAA;AAF4C,GAGzC;AACH,QAAMoC,QAAQ,GAAG7D,SAAS,CAAE+C,eAAF,EAAmB,EAAnB,CAA1B;;AAEA,MAAK,CAAEc,QAAP,EAAkB;AACjB,WAAO,IAAP;AACA;;AAED,QAAM;AACLzC,IAAAA,QADK;AAELC,IAAAA,YAFK;AAGLiC,IAAAA,IAHK;AAILhC,IAAAA,mBAJK;AAKLC,IAAAA;AALK,MAMFsC,QANJ;;AAQA,MAAK,CAAEP,IAAP,EAAc;AACb,WAAO,IAAP;AACA;;AAED,SACC,cAAC,oBAAD;AACC,IAAA,QAAQ,EAAGlC,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 { find } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useRef, useEffect } from '@wordpress/element';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockSelectionButton from './block-selection-button';\nimport BlockContextualToolbar from './block-contextual-toolbar';\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopover from '../block-popover';\n\nfunction selector( select ) {\n\tconst {\n\t\tisNavigationMode,\n\t\tisMultiSelecting,\n\t\thasMultiSelection,\n\t\tisTyping,\n\t\tgetSettings,\n\t\tgetLastMultiSelectedBlockClientId,\n\t} = select( blockEditorStore );\n\treturn {\n\t\tisNavigationMode: isNavigationMode(),\n\t\tisMultiSelecting: isMultiSelecting(),\n\t\tisTyping: isTyping(),\n\t\thasFixedToolbar: getSettings().hasFixedToolbar,\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 {\n\t\tisNavigationMode,\n\t\tisMultiSelecting,\n\t\tisTyping,\n\t\thasFixedToolbar,\n\t\tlastClientId,\n\t} = useSelect( selector, [] );\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 isLargeViewport = useViewportMatch( 'medium' );\n\tconst isToolbarForced = useRef( false );\n\tconst [ isInserterShown, setIsInserterShown ] = useState( false );\n\tconst { stopTyping } = useDispatch( blockEditorStore );\n\n\tconst showEmptyBlockSideInserter =\n\t\t! isTyping && ! isNavigationMode && isEmptyDefaultBlock;\n\tconst shouldShowBreadcrumb = isNavigationMode;\n\tconst shouldShowContextualToolbar =\n\t\t! isNavigationMode &&\n\t\t! hasFixedToolbar &&\n\t\tisLargeViewport &&\n\t\t! isMultiSelecting &&\n\t\t! showEmptyBlockSideInserter &&\n\t\t! isTyping;\n\tconst canFocusHiddenToolbar =\n\t\t! isNavigationMode &&\n\t\t! shouldShowContextualToolbar &&\n\t\t! hasFixedToolbar &&\n\t\t! isEmptyDefaultBlock;\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\tif ( ! shouldShowBreadcrumb && ! shouldShowContextualToolbar ) {\n\t\treturn null;\n\t}\n\n\tfunction onFocus() {\n\t\tsetIsInserterShown( true );\n\t}\n\n\tfunction onBlur() {\n\t\tsetIsInserterShown( false );\n\t}\n\n\treturn (\n\t\t<BlockPopover\n\t\t\tclientId={ capturingClientId || clientId }\n\t\t\tbottomClientId={ lastClientId }\n\t\t\tclassName={ classnames( 'block-editor-block-list__block-popover', {\n\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t} ) }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t>\n\t\t\t{ shouldShowContextualToolbar && (\n\t\t\t\t<div\n\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\tonBlur={ onBlur }\n\t\t\t\t\t// While ideally it would be enough to capture the\n\t\t\t\t\t// bubbling focus event from the Inserter, due to the\n\t\t\t\t\t// characteristics of click focusing of `button`s in\n\t\t\t\t\t// Firefox and Safari, it is not reliable.\n\t\t\t\t\t//\n\t\t\t\t\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'block-editor-block-list__block-popover-inserter',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-visible': isInserterShown,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<Inserter\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ shouldShowContextualToolbar && (\n\t\t\t\t<BlockContextualToolbar\n\t\t\t\t\t// If the toolbar is being shown because of being forced\n\t\t\t\t\t// it should focus the toolbar right after the mount.\n\t\t\t\t\tfocusOnMount={ isToolbarForced.current }\n\t\t\t\t\t__experimentalInitialIndex={\n\t\t\t\t\t\tinitialToolbarItemIndexRef.current\n\t\t\t\t\t}\n\t\t\t\t\t__experimentalOnIndexChange={ ( index ) => {\n\t\t\t\t\t\tinitialToolbarItemIndexRef.current = index;\n\t\t\t\t\t} }\n\t\t\t\t\t// Resets the index whenever the active block changes so\n\t\t\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ shouldShowBreadcrumb && (\n\t\t\t\t<BlockSelectionButton\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</BlockPopover>\n\t);\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 = find(\n\t\tblockParentsClientIds,\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":["find","classnames","useRef","useEffect","isUnmodifiedDefaultBlock","useDispatch","useSelect","useShortcut","useViewportMatch","BlockSelectionButton","BlockContextualToolbar","store","blockEditorStore","BlockPopover","selector","select","isNavigationMode","isMultiSelecting","hasMultiSelection","isTyping","getSettings","getLastMultiSelectedBlockClientId","hasFixedToolbar","lastClientId","SelectedBlockPopover","clientId","rootClientId","isEmptyDefaultBlock","capturingClientId","__unstablePopoverSlot","__unstableContentRef","isInsertionPointVisible","isBlockInsertionPointVisible","getBlockInsertionPoint","getBlockOrder","insertionPoint","order","index","isLargeViewport","isToolbarForced","stopTyping","showEmptyBlockSideInserter","shouldShowBreadcrumb","shouldShowContextualToolbar","canFocusHiddenToolbar","current","isDisabled","initialToolbarItemIndexRef","wrapperSelector","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getBlockRootClientId","getBlock","getBlockParents","__experimentalGetBlockListSettingsForBlocks","name","attributes","blockParentsClientIds","parentBlockListSettings","parentClientId","__experimentalCaptureToolbars","WrappedBlockPopover","selected"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find } from 'lodash';\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';\nimport { useViewportMatch } from '@wordpress/compose';\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';\n\nfunction selector( select ) {\n\tconst {\n\t\tisNavigationMode,\n\t\tisMultiSelecting,\n\t\thasMultiSelection,\n\t\tisTyping,\n\t\tgetSettings,\n\t\tgetLastMultiSelectedBlockClientId,\n\t} = select( blockEditorStore );\n\treturn {\n\t\tisNavigationMode: isNavigationMode(),\n\t\tisMultiSelecting: isMultiSelecting(),\n\t\tisTyping: isTyping(),\n\t\thasFixedToolbar: getSettings().hasFixedToolbar,\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 {\n\t\tisNavigationMode,\n\t\tisMultiSelecting,\n\t\tisTyping,\n\t\thasFixedToolbar,\n\t\tlastClientId,\n\t} = useSelect( selector, [] );\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 isLargeViewport = useViewportMatch( 'medium' );\n\tconst isToolbarForced = useRef( false );\n\tconst { stopTyping } = useDispatch( blockEditorStore );\n\n\tconst showEmptyBlockSideInserter =\n\t\t! isTyping && ! isNavigationMode && isEmptyDefaultBlock;\n\tconst shouldShowBreadcrumb = isNavigationMode;\n\tconst shouldShowContextualToolbar =\n\t\t! isNavigationMode &&\n\t\t! hasFixedToolbar &&\n\t\tisLargeViewport &&\n\t\t! isMultiSelecting &&\n\t\t! showEmptyBlockSideInserter &&\n\t\t! isTyping;\n\tconst canFocusHiddenToolbar =\n\t\t! isNavigationMode &&\n\t\t! shouldShowContextualToolbar &&\n\t\t! hasFixedToolbar &&\n\t\t! isEmptyDefaultBlock;\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\tif ( ! shouldShowBreadcrumb && ! shouldShowContextualToolbar ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockPopover\n\t\t\tclientId={ capturingClientId || clientId }\n\t\t\tbottomClientId={ lastClientId }\n\t\t\tclassName={ classnames( 'block-editor-block-list__block-popover', {\n\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t} ) }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t>\n\t\t\t{ shouldShowContextualToolbar && (\n\t\t\t\t<BlockContextualToolbar\n\t\t\t\t\t// If the toolbar is being shown because of being forced\n\t\t\t\t\t// it should focus the toolbar right after the mount.\n\t\t\t\t\tfocusOnMount={ isToolbarForced.current }\n\t\t\t\t\t__experimentalInitialIndex={\n\t\t\t\t\t\tinitialToolbarItemIndexRef.current\n\t\t\t\t\t}\n\t\t\t\t\t__experimentalOnIndexChange={ ( index ) => {\n\t\t\t\t\t\tinitialToolbarItemIndexRef.current = index;\n\t\t\t\t\t} }\n\t\t\t\t\t// Resets the index whenever the active block changes so\n\t\t\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ shouldShowBreadcrumb && (\n\t\t\t\t<BlockSelectionButton\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</BlockPopover>\n\t);\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 = find(\n\t\tblockParentsClientIds,\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"]}
@@ -13,6 +13,7 @@ import { chevronDown } from '@wordpress/icons';
13
13
  * Internal dependencies
14
14
  */
15
15
 
16
+ import BlockIcon from '../block-icon';
16
17
  import { store as blockEditorStore } from '../../store';
17
18
 
18
19
  function VariationsButtons(_ref) {
@@ -28,7 +29,10 @@ function VariationsButtons(_ref) {
28
29
  as: "legend"
29
30
  }, __('Transform to variation')), variations.map(variation => createElement(Button, {
30
31
  key: variation.name,
31
- icon: variation.icon,
32
+ icon: createElement(BlockIcon, {
33
+ icon: variation.icon,
34
+ showColors: true
35
+ }),
32
36
  isPressed: selectedValue === variation.name,
33
37
  label: selectedValue === variation.name ? variation.title : sprintf(
34
38
  /* translators: %s: Name of the block variation */
@@ -108,9 +112,16 @@ function __experimentalBlockVariationTransforms(_ref4) {
108
112
 
109
113
  const hasUniqueIcons = useMemo(() => {
110
114
  const variationIcons = new Set();
115
+
116
+ if (!variations) {
117
+ return false;
118
+ }
119
+
111
120
  variations.forEach(variation => {
112
121
  if (variation.icon) {
113
- variationIcons.add(variation.icon);
122
+ var _variation$icon;
123
+
124
+ variationIcons.add(((_variation$icon = variation.icon) === null || _variation$icon === void 0 ? void 0 : _variation$icon.src) || variation.icon);
114
125
  }
115
126
  });
116
127
  return variationIcons.size === variations.length;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-variation-transforms/index.js"],"names":["store","blocksStore","__","sprintf","Button","DropdownMenu","MenuGroup","MenuItemsChoice","VisuallyHidden","useSelect","useDispatch","useMemo","chevronDown","blockEditorStore","VariationsButtons","className","onSelectVariation","selectedValue","variations","map","variation","name","icon","title","VariationsDropdown","selectOptions","description","value","label","info","position","iconPosition","__experimentalBlockVariationTransforms","blockClientId","updateBlockAttributes","activeBlockVariation","select","getActiveBlockVariation","getBlockVariations","getBlockName","getBlockAttributes","hasUniqueIcons","variationIcons","Set","forEach","add","size","length","variationName","find","attributes","baseClass","Component"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItemsChoice,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { chevronDown } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nfunction VariationsButtons( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<fieldset className={ className }>\n\t\t\t<VisuallyHidden as=\"legend\">\n\t\t\t\t{ __( 'Transform to variation' ) }\n\t\t\t</VisuallyHidden>\n\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t<Button\n\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\ticon={ variation.icon }\n\t\t\t\t\tisPressed={ selectedValue === variation.name }\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block variation */\n\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t\tonClick={ () => onSelectVariation( variation.name ) }\n\t\t\t\t\taria-label={ variation.title }\n\t\t\t\t\tshowTooltip\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</fieldset>\n\t);\n}\n\nfunction VariationsDropdown( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\tconst selectOptions = variations.map(\n\t\t( { name, title, description } ) => ( {\n\t\t\tvalue: name,\n\t\t\tlabel: title,\n\t\t\tinfo: description,\n\t\t} )\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName={ className }\n\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\ttext={ __( 'Transform to variation' ) }\n\t\t\tpopoverProps={ {\n\t\t\t\tposition: 'bottom center',\n\t\t\t\tclassName: `${ className }__popover`,\n\t\t\t} }\n\t\t\ticon={ chevronDown }\n\t\t\ttoggleProps={ { iconPosition: 'right' } }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<div className={ `${ className }__container` }>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tchoices={ selectOptions }\n\t\t\t\t\t\t\tvalue={ selectedValue }\n\t\t\t\t\t\t\tonSelect={ onSelectVariation }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction __experimentalBlockVariationTransforms( { blockClientId } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { activeBlockVariation, variations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } = select(\n\t\t\t\tblocksStore\n\t\t\t);\n\t\t\tconst { getBlockName, getBlockAttributes } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst name = blockClientId && getBlockName( blockClientId );\n\t\t\treturn {\n\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\tname,\n\t\t\t\t\tgetBlockAttributes( blockClientId )\n\t\t\t\t),\n\t\t\t\tvariations: name && getBlockVariations( name, 'transform' ),\n\t\t\t};\n\t\t},\n\t\t[ blockClientId ]\n\t);\n\n\tconst selectedValue = activeBlockVariation?.name;\n\n\t// Check if each variation has a unique icon.\n\tconst hasUniqueIcons = useMemo( () => {\n\t\tconst variationIcons = new Set();\n\t\tvariations.forEach( ( variation ) => {\n\t\t\tif ( variation.icon ) {\n\t\t\t\tvariationIcons.add( variation.icon );\n\t\t\t}\n\t\t} );\n\t\treturn variationIcons.size === variations.length;\n\t}, [ variations ] );\n\n\tconst onSelectVariation = ( variationName ) => {\n\t\tupdateBlockAttributes( blockClientId, {\n\t\t\t...variations.find( ( { name } ) => name === variationName )\n\t\t\t\t.attributes,\n\t\t} );\n\t};\n\n\tconst baseClass = 'block-editor-block-variation-transforms';\n\n\t// Skip rendering if there are no variations\n\tif ( ! variations?.length ) return null;\n\n\tconst Component = hasUniqueIcons ? VariationsButtons : VariationsDropdown;\n\n\treturn (\n\t\t<Component\n\t\t\tclassName={ baseClass }\n\t\t\tonSelectVariation={ onSelectVariation }\n\t\t\tselectedValue={ selectedValue }\n\t\t\tvariations={ variations }\n\t\t/>\n\t);\n}\n\nexport default __experimentalBlockVariationTransforms;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-variation-transforms/index.js"],"names":["store","blocksStore","__","sprintf","Button","DropdownMenu","MenuGroup","MenuItemsChoice","VisuallyHidden","useSelect","useDispatch","useMemo","chevronDown","BlockIcon","blockEditorStore","VariationsButtons","className","onSelectVariation","selectedValue","variations","map","variation","name","icon","title","VariationsDropdown","selectOptions","description","value","label","info","position","iconPosition","__experimentalBlockVariationTransforms","blockClientId","updateBlockAttributes","activeBlockVariation","select","getActiveBlockVariation","getBlockVariations","getBlockName","getBlockAttributes","hasUniqueIcons","variationIcons","Set","forEach","add","src","size","length","variationName","find","attributes","baseClass","Component"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItemsChoice,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { chevronDown } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\n\nfunction VariationsButtons( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<fieldset className={ className }>\n\t\t\t<VisuallyHidden as=\"legend\">\n\t\t\t\t{ __( 'Transform to variation' ) }\n\t\t\t</VisuallyHidden>\n\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t<Button\n\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\ticon={ <BlockIcon icon={ variation.icon } showColors /> }\n\t\t\t\t\tisPressed={ selectedValue === variation.name }\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block variation */\n\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t\tonClick={ () => onSelectVariation( variation.name ) }\n\t\t\t\t\taria-label={ variation.title }\n\t\t\t\t\tshowTooltip\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</fieldset>\n\t);\n}\n\nfunction VariationsDropdown( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\tconst selectOptions = variations.map(\n\t\t( { name, title, description } ) => ( {\n\t\t\tvalue: name,\n\t\t\tlabel: title,\n\t\t\tinfo: description,\n\t\t} )\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName={ className }\n\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\ttext={ __( 'Transform to variation' ) }\n\t\t\tpopoverProps={ {\n\t\t\t\tposition: 'bottom center',\n\t\t\t\tclassName: `${ className }__popover`,\n\t\t\t} }\n\t\t\ticon={ chevronDown }\n\t\t\ttoggleProps={ { iconPosition: 'right' } }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<div className={ `${ className }__container` }>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tchoices={ selectOptions }\n\t\t\t\t\t\t\tvalue={ selectedValue }\n\t\t\t\t\t\t\tonSelect={ onSelectVariation }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction __experimentalBlockVariationTransforms( { blockClientId } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { activeBlockVariation, variations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } = select(\n\t\t\t\tblocksStore\n\t\t\t);\n\t\t\tconst { getBlockName, getBlockAttributes } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst name = blockClientId && getBlockName( blockClientId );\n\t\t\treturn {\n\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\tname,\n\t\t\t\t\tgetBlockAttributes( blockClientId )\n\t\t\t\t),\n\t\t\t\tvariations: name && getBlockVariations( name, 'transform' ),\n\t\t\t};\n\t\t},\n\t\t[ blockClientId ]\n\t);\n\n\tconst selectedValue = activeBlockVariation?.name;\n\n\t// Check if each variation has a unique icon.\n\tconst hasUniqueIcons = useMemo( () => {\n\t\tconst variationIcons = new Set();\n\t\tif ( ! variations ) {\n\t\t\treturn false;\n\t\t}\n\t\tvariations.forEach( ( variation ) => {\n\t\t\tif ( variation.icon ) {\n\t\t\t\tvariationIcons.add( variation.icon?.src || variation.icon );\n\t\t\t}\n\t\t} );\n\t\treturn variationIcons.size === variations.length;\n\t}, [ variations ] );\n\n\tconst onSelectVariation = ( variationName ) => {\n\t\tupdateBlockAttributes( blockClientId, {\n\t\t\t...variations.find( ( { name } ) => name === variationName )\n\t\t\t\t.attributes,\n\t\t} );\n\t};\n\n\tconst baseClass = 'block-editor-block-variation-transforms';\n\n\t// Skip rendering if there are no variations\n\tif ( ! variations?.length ) return null;\n\n\tconst Component = hasUniqueIcons ? VariationsButtons : VariationsDropdown;\n\n\treturn (\n\t\t<Component\n\t\t\tclassName={ baseClass }\n\t\t\tonSelectVariation={ onSelectVariation }\n\t\t\tselectedValue={ selectedValue }\n\t\t\tvariations={ variations }\n\t\t/>\n\t);\n}\n\nexport default __experimentalBlockVariationTransforms;\n"]}
@@ -4,7 +4,7 @@ import { createElement } from "@wordpress/element";
4
4
  /**
5
5
  * WordPress dependencies
6
6
  */
7
- import { __experimentalUnitControl as UnitControl } from '@wordpress/components';
7
+ import { __experimentalUnitControl as UnitControl, Tooltip } from '@wordpress/components';
8
8
  import { __ } from '@wordpress/i18n';
9
9
  const CORNERS = {
10
10
  topLeft: __('Top left'),
@@ -36,17 +36,24 @@ export default function BoxInputControls(_ref) {
36
36
  bottomLeft: valuesProp,
37
37
  bottomRight: valuesProp
38
38
  }; // Controls are wrapped in tooltips as visible labels aren't desired here.
39
+ // Tooltip rendering also requires the UnitControl to be wrapped. See:
40
+ // https://github.com/WordPress/gutenberg/pull/24966#issuecomment-685875026
39
41
 
40
42
  return createElement("div", {
41
43
  className: "components-border-radius-control__input-controls-wrapper"
42
44
  }, Object.entries(CORNERS).map(_ref2 => {
43
45
  let [key, label] = _ref2;
44
- return createElement(UnitControl, _extends({}, props, {
45
- key: key,
46
+ return createElement(Tooltip, {
47
+ text: label,
48
+ position: "top",
49
+ key: key
50
+ }, createElement("div", {
51
+ className: "components-border-radius-control__tooltip-wrapper"
52
+ }, createElement(UnitControl, _extends({}, props, {
46
53
  "aria-label": label,
47
54
  value: values[key],
48
55
  onChange: createHandleOnChange(key)
49
- }));
56
+ }))));
50
57
  }));
51
58
  }
52
59
  //# sourceMappingURL=input-controls.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/border-radius-control/input-controls.js"],"names":["__experimentalUnitControl","UnitControl","__","CORNERS","topLeft","topRight","bottomLeft","bottomRight","BoxInputControls","onChange","values","valuesProp","props","createHandleOnChange","corner","next","undefined","Object","entries","map","key","label"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,yBAAyB,IAAIC,WAAtC,QAAyD,uBAAzD;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA,MAAMC,OAAO,GAAG;AACfC,EAAAA,OAAO,EAAEF,EAAE,CAAE,UAAF,CADI;AAEfG,EAAAA,QAAQ,EAAEH,EAAE,CAAE,WAAF,CAFG;AAGfI,EAAAA,UAAU,EAAEJ,EAAE,CAAE,aAAF,CAHC;AAIfK,EAAAA,WAAW,EAAEL,EAAE,CAAE,cAAF;AAJA,CAAhB;AAOA,eAAe,SAASM,gBAAT,OAIX;AAAA,MAJsC;AACzCC,IAAAA,QADyC;AAEzCC,IAAAA,MAAM,EAAEC,UAFiC;AAGzC,OAAGC;AAHsC,GAItC;;AACH,QAAMC,oBAAoB,GAAKC,MAAF,IAAgBC,IAAF,IAAY;AACtD,QAAK,CAAEN,QAAP,EAAkB;AACjB;AACA;;AAEDA,IAAAA,QAAQ,CAAE,EACT,GAAGC,MADM;AAET,OAAEI,MAAF,GAAYC,IAAI,GAAGA,IAAH,GAAUC;AAFjB,KAAF,CAAR;AAIA,GATD,CADG,CAYH;;;AACA,QAAMN,MAAM,GACX,OAAOC,UAAP,KAAsB,QAAtB,GACGA,UADH,GAEG;AACAP,IAAAA,OAAO,EAAEO,UADT;AAEAN,IAAAA,QAAQ,EAAEM,UAFV;AAGAL,IAAAA,UAAU,EAAEK,UAHZ;AAIAJ,IAAAA,WAAW,EAAEI;AAJb,GAHJ,CAbG,CAuBH;;AACA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGM,MAAM,CAACC,OAAP,CAAgBf,OAAhB,EAA0BgB,GAA1B,CAA+B;AAAA,QAAE,CAAEC,GAAF,EAAOC,KAAP,CAAF;AAAA,WAChC,cAAC,WAAD,eACMT,KADN;AAEC,MAAA,GAAG,EAAGQ,GAFP;AAGC,oBAAaC,KAHd;AAIC,MAAA,KAAK,EAAGX,MAAM,CAAEU,GAAF,CAJf;AAKC,MAAA,QAAQ,EAAGP,oBAAoB,CAAEO,GAAF;AALhC,OADgC;AAAA,GAA/B,CADH,CADD;AAaA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalUnitControl as UnitControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nconst CORNERS = {\n\ttopLeft: __( 'Top left' ),\n\ttopRight: __( 'Top right' ),\n\tbottomLeft: __( 'Bottom left' ),\n\tbottomRight: __( 'Bottom right' ),\n};\n\nexport default function BoxInputControls( {\n\tonChange,\n\tvalues: valuesProp,\n\t...props\n} ) {\n\tconst createHandleOnChange = ( corner ) => ( next ) => {\n\t\tif ( ! onChange ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonChange( {\n\t\t\t...values,\n\t\t\t[ corner ]: next ? next : undefined,\n\t\t} );\n\t};\n\n\t// For shorthand style & backwards compatibility, handle flat string value.\n\tconst values =\n\t\ttypeof valuesProp !== 'string'\n\t\t\t? valuesProp\n\t\t\t: {\n\t\t\t\t\ttopLeft: valuesProp,\n\t\t\t\t\ttopRight: valuesProp,\n\t\t\t\t\tbottomLeft: valuesProp,\n\t\t\t\t\tbottomRight: valuesProp,\n\t\t\t };\n\n\t// Controls are wrapped in tooltips as visible labels aren't desired here.\n\treturn (\n\t\t<div className=\"components-border-radius-control__input-controls-wrapper\">\n\t\t\t{ Object.entries( CORNERS ).map( ( [ key, label ] ) => (\n\t\t\t\t<UnitControl\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tkey={ key }\n\t\t\t\t\taria-label={ label }\n\t\t\t\t\tvalue={ values[ key ] }\n\t\t\t\t\tonChange={ createHandleOnChange( key ) }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/border-radius-control/input-controls.js"],"names":["__experimentalUnitControl","UnitControl","Tooltip","__","CORNERS","topLeft","topRight","bottomLeft","bottomRight","BoxInputControls","onChange","values","valuesProp","props","createHandleOnChange","corner","next","undefined","Object","entries","map","key","label"],"mappings":";;;AAAA;AACA;AACA;AACA,SACCA,yBAAyB,IAAIC,WAD9B,EAECC,OAFD,QAGO,uBAHP;AAIA,SAASC,EAAT,QAAmB,iBAAnB;AAEA,MAAMC,OAAO,GAAG;AACfC,EAAAA,OAAO,EAAEF,EAAE,CAAE,UAAF,CADI;AAEfG,EAAAA,QAAQ,EAAEH,EAAE,CAAE,WAAF,CAFG;AAGfI,EAAAA,UAAU,EAAEJ,EAAE,CAAE,aAAF,CAHC;AAIfK,EAAAA,WAAW,EAAEL,EAAE,CAAE,cAAF;AAJA,CAAhB;AAOA,eAAe,SAASM,gBAAT,OAIX;AAAA,MAJsC;AACzCC,IAAAA,QADyC;AAEzCC,IAAAA,MAAM,EAAEC,UAFiC;AAGzC,OAAGC;AAHsC,GAItC;;AACH,QAAMC,oBAAoB,GAAKC,MAAF,IAAgBC,IAAF,IAAY;AACtD,QAAK,CAAEN,QAAP,EAAkB;AACjB;AACA;;AAEDA,IAAAA,QAAQ,CAAE,EACT,GAAGC,MADM;AAET,OAAEI,MAAF,GAAYC,IAAI,GAAGA,IAAH,GAAUC;AAFjB,KAAF,CAAR;AAIA,GATD,CADG,CAYH;;;AACA,QAAMN,MAAM,GACX,OAAOC,UAAP,KAAsB,QAAtB,GACGA,UADH,GAEG;AACAP,IAAAA,OAAO,EAAEO,UADT;AAEAN,IAAAA,QAAQ,EAAEM,UAFV;AAGAL,IAAAA,UAAU,EAAEK,UAHZ;AAIAJ,IAAAA,WAAW,EAAEI;AAJb,GAHJ,CAbG,CAuBH;AACA;AACA;;AACA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGM,MAAM,CAACC,OAAP,CAAgBf,OAAhB,EAA0BgB,GAA1B,CAA+B;AAAA,QAAE,CAAEC,GAAF,EAAOC,KAAP,CAAF;AAAA,WAChC,cAAC,OAAD;AAAS,MAAA,IAAI,EAAGA,KAAhB;AAAwB,MAAA,QAAQ,EAAC,KAAjC;AAAuC,MAAA,GAAG,EAAGD;AAA7C,OACC;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,cAAC,WAAD,eACMR,KADN;AAEC,oBAAaS,KAFd;AAGC,MAAA,KAAK,EAAGX,MAAM,CAAEU,GAAF,CAHf;AAIC,MAAA,QAAQ,EAAGP,oBAAoB,CAAEO,GAAF;AAJhC,OADD,CADD,CADgC;AAAA,GAA/B,CADH,CADD;AAgBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalUnitControl as UnitControl,\n\tTooltip,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nconst CORNERS = {\n\ttopLeft: __( 'Top left' ),\n\ttopRight: __( 'Top right' ),\n\tbottomLeft: __( 'Bottom left' ),\n\tbottomRight: __( 'Bottom right' ),\n};\n\nexport default function BoxInputControls( {\n\tonChange,\n\tvalues: valuesProp,\n\t...props\n} ) {\n\tconst createHandleOnChange = ( corner ) => ( next ) => {\n\t\tif ( ! onChange ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonChange( {\n\t\t\t...values,\n\t\t\t[ corner ]: next ? next : undefined,\n\t\t} );\n\t};\n\n\t// For shorthand style & backwards compatibility, handle flat string value.\n\tconst values =\n\t\ttypeof valuesProp !== 'string'\n\t\t\t? valuesProp\n\t\t\t: {\n\t\t\t\t\ttopLeft: valuesProp,\n\t\t\t\t\ttopRight: valuesProp,\n\t\t\t\t\tbottomLeft: valuesProp,\n\t\t\t\t\tbottomRight: valuesProp,\n\t\t\t };\n\n\t// Controls are wrapped in tooltips as visible labels aren't desired here.\n\t// Tooltip rendering also requires the UnitControl to be wrapped. See:\n\t// https://github.com/WordPress/gutenberg/pull/24966#issuecomment-685875026\n\treturn (\n\t\t<div className=\"components-border-radius-control__input-controls-wrapper\">\n\t\t\t{ Object.entries( CORNERS ).map( ( [ key, label ] ) => (\n\t\t\t\t<Tooltip text={ label } position=\"top\" key={ key }>\n\t\t\t\t\t<div className=\"components-border-radius-control__tooltip-wrapper\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t\t\tvalue={ values[ key ] }\n\t\t\t\t\t\t\tonChange={ createHandleOnChange( key ) }\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</div>\n\t);\n}\n"]}
@@ -6,6 +6,7 @@ import { createElement } from "@wordpress/element";
6
6
  import { ToolbarButton, Dropdown, ToolbarGroup, SVG, Path } from '@wordpress/components';
7
7
  import { __ } from '@wordpress/i18n';
8
8
  import { DOWN } from '@wordpress/keycodes';
9
+ import deprecated from '@wordpress/deprecated';
9
10
 
10
11
  const ColorSelectorSVGIcon = () => createElement(SVG, {
11
12
  xmlns: "https://www.w3.org/2000/svg",
@@ -80,6 +81,11 @@ const BlockColorsStyleSelector = _ref4 => {
80
81
  children,
81
82
  ...other
82
83
  } = _ref4;
84
+ deprecated(`wp.blockEditor.BlockColorsStyleSelector`, {
85
+ alternative: 'block supports API',
86
+ since: '6.1',
87
+ version: '6.3'
88
+ });
83
89
  return createElement(Dropdown, {
84
90
  position: "bottom right",
85
91
  className: "block-library-colors-selector",
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/color-style-selector/index.js"],"names":["ToolbarButton","Dropdown","ToolbarGroup","SVG","Path","__","DOWN","ColorSelectorSVGIcon","ColorSelectorIcon","style","className","renderToggleComponent","TextColor","BackgroundColor","onToggle","isOpen","openOnArrowDown","event","keyCode","preventDefault","BlockColorsStyleSelector","children","other"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,aADD,EAECC,QAFD,EAGCC,YAHD,EAICC,GAJD,EAKCC,IALD,QAMO,uBANP;AAOA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,IAAT,QAAqB,qBAArB;;AAEA,MAAMC,oBAAoB,GAAG,MAC5B,cAAC,GAAD;AAAK,EAAA,KAAK,EAAC,6BAAX;AAAyC,EAAA,OAAO,EAAC;AAAjD,GACC,cAAC,IAAD;AAAM,EAAA,CAAC,EAAC;AAAR,EADD,CADD;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,iBAAiB,GAAG,QAA4B;AAAA,MAA1B;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT,GAA0B;AACrD,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AACC,IAAA,SAAS,EAAI,GAAGA,SAAW,iDAD5B;AAEC,IAAA,KAAK,EAAGD;AAFT,KAIC,cAAC,oBAAD,OAJD,CADD,CADD;AAUA,CAXD;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,qBAAqB,GAAG;AAAA,MAAE;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,GAAF;AAAA,SAAsC,SAG7D;AAAA,QAH+D;AACrEC,MAAAA,QADqE;AAErEC,MAAAA;AAFqE,KAG/D;;AACN,UAAMC,eAAe,GAAKC,KAAF,IAAa;AACpC,UAAK,CAAEF,MAAF,IAAYE,KAAK,CAACC,OAAN,KAAkBZ,IAAnC,EAA0C;AACzCW,QAAAA,KAAK,CAACE,cAAN;AACAL,QAAAA,QAAQ;AACR;AACD,KALD;;AAOA,WACC,cAAC,YAAD,QACC,cAAC,aAAD;AACC,MAAA,SAAS,EAAC,mEADX;AAEC,MAAA,KAAK,EAAGT,EAAE,CAAE,sBAAF,CAFX;AAGC,MAAA,OAAO,EAAGS,QAHX;AAIC,MAAA,SAAS,EAAGE,eAJb;AAKC,MAAA,IAAI,EACH,cAAC,eAAD,QACC,cAAC,SAAD,QACC,cAAC,iBAAD,OADD,CADD;AANF,MADD,CADD;AAiBA,GA5B6B;AAAA,CAA9B;;AA8BA,MAAMI,wBAAwB,GAAG;AAAA,MAAE;AAAEC,IAAAA,QAAF;AAAY,OAAGC;AAAf,GAAF;AAAA,SAChC,cAAC,QAAD;AACC,IAAA,QAAQ,EAAC,cADV;AAEC,IAAA,SAAS,EAAC,+BAFX;AAGC,IAAA,gBAAgB,EAAC,wCAHlB;AAIC,IAAA,YAAY,EAAGX,qBAAqB,CAAEW,KAAF,CAJrC;AAKC,IAAA,aAAa,EAAG,MAAMD;AALvB,IADgC;AAAA,CAAjC;;AAUA,eAAeD,wBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarButton,\n\tDropdown,\n\tToolbarGroup,\n\tSVG,\n\tPath,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\n\nconst ColorSelectorSVGIcon = () => (\n\t<SVG xmlns=\"https://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n\t\t<Path d=\"M7.434 5l3.18 9.16H8.538l-.692-2.184H4.628l-.705 2.184H2L5.18 5h2.254zm-1.13 1.904h-.115l-1.148 3.593H7.44L6.304 6.904zM14.348 7.006c1.853 0 2.9.876 2.9 2.374v4.78h-1.79v-.914h-.114c-.362.64-1.123 1.022-2.031 1.022-1.346 0-2.292-.826-2.292-2.108 0-1.27.972-2.006 2.71-2.107l1.696-.102V9.38c0-.584-.42-.914-1.18-.914-.667 0-1.112.228-1.264.647h-1.701c.12-1.295 1.307-2.107 3.066-2.107zm1.079 4.1l-1.416.09c-.793.056-1.18.342-1.18.844 0 .52.45.837 1.091.837.857 0 1.505-.545 1.505-1.256v-.515z\" />\n\t</SVG>\n);\n\n/**\n * Color Selector Icon component.\n *\n * @param {Object} props Component properties.\n * @param {Object} props.style Style object.\n * @param {string} props.className Class name for component.\n *\n * @return {*} React Icon component.\n */\nconst ColorSelectorIcon = ( { style, className } ) => {\n\treturn (\n\t\t<div className=\"block-library-colors-selector__icon-container\">\n\t\t\t<div\n\t\t\t\tclassName={ `${ className } block-library-colors-selector__state-selection` }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t<ColorSelectorSVGIcon />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n/**\n * Renders the Colors Selector Toolbar with the icon button.\n *\n * @param {Object} props Component properties.\n * @param {Object} props.TextColor Text color component that wraps icon.\n * @param {Object} props.BackgroundColor Background color component that wraps icon.\n *\n * @return {*} React toggle button component.\n */\nconst renderToggleComponent = ( { TextColor, BackgroundColor } ) => ( {\n\tonToggle,\n\tisOpen,\n} ) => {\n\tconst openOnArrowDown = ( event ) => {\n\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\tevent.preventDefault();\n\t\t\tonToggle();\n\t\t}\n\t};\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton\n\t\t\t\tclassName=\"components-toolbar__control block-library-colors-selector__toggle\"\n\t\t\t\tlabel={ __( 'Open Colors Selector' ) }\n\t\t\t\tonClick={ onToggle }\n\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\ticon={\n\t\t\t\t\t<BackgroundColor>\n\t\t\t\t\t\t<TextColor>\n\t\t\t\t\t\t\t<ColorSelectorIcon />\n\t\t\t\t\t\t</TextColor>\n\t\t\t\t\t</BackgroundColor>\n\t\t\t\t}\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n};\n\nconst BlockColorsStyleSelector = ( { children, ...other } ) => (\n\t<Dropdown\n\t\tposition=\"bottom right\"\n\t\tclassName=\"block-library-colors-selector\"\n\t\tcontentClassName=\"block-library-colors-selector__popover\"\n\t\trenderToggle={ renderToggleComponent( other ) }\n\t\trenderContent={ () => children }\n\t/>\n);\n\nexport default BlockColorsStyleSelector;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/color-style-selector/index.js"],"names":["ToolbarButton","Dropdown","ToolbarGroup","SVG","Path","__","DOWN","deprecated","ColorSelectorSVGIcon","ColorSelectorIcon","style","className","renderToggleComponent","TextColor","BackgroundColor","onToggle","isOpen","openOnArrowDown","event","keyCode","preventDefault","BlockColorsStyleSelector","children","other","alternative","since","version"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,aADD,EAECC,QAFD,EAGCC,YAHD,EAICC,GAJD,EAKCC,IALD,QAMO,uBANP;AAOA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,IAAT,QAAqB,qBAArB;AACA,OAAOC,UAAP,MAAuB,uBAAvB;;AAEA,MAAMC,oBAAoB,GAAG,MAC5B,cAAC,GAAD;AAAK,EAAA,KAAK,EAAC,6BAAX;AAAyC,EAAA,OAAO,EAAC;AAAjD,GACC,cAAC,IAAD;AAAM,EAAA,CAAC,EAAC;AAAR,EADD,CADD;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,iBAAiB,GAAG,QAA4B;AAAA,MAA1B;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT,GAA0B;AACrD,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AACC,IAAA,SAAS,EAAI,GAAGA,SAAW,iDAD5B;AAEC,IAAA,KAAK,EAAGD;AAFT,KAIC,cAAC,oBAAD,OAJD,CADD,CADD;AAUA,CAXD;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,qBAAqB,GAAG;AAAA,MAAE;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,GAAF;AAAA,SAAsC,SAG7D;AAAA,QAH+D;AACrEC,MAAAA,QADqE;AAErEC,MAAAA;AAFqE,KAG/D;;AACN,UAAMC,eAAe,GAAKC,KAAF,IAAa;AACpC,UAAK,CAAEF,MAAF,IAAYE,KAAK,CAACC,OAAN,KAAkBb,IAAnC,EAA0C;AACzCY,QAAAA,KAAK,CAACE,cAAN;AACAL,QAAAA,QAAQ;AACR;AACD,KALD;;AAOA,WACC,cAAC,YAAD,QACC,cAAC,aAAD;AACC,MAAA,SAAS,EAAC,mEADX;AAEC,MAAA,KAAK,EAAGV,EAAE,CAAE,sBAAF,CAFX;AAGC,MAAA,OAAO,EAAGU,QAHX;AAIC,MAAA,SAAS,EAAGE,eAJb;AAKC,MAAA,IAAI,EACH,cAAC,eAAD,QACC,cAAC,SAAD,QACC,cAAC,iBAAD,OADD,CADD;AANF,MADD,CADD;AAiBA,GA5B6B;AAAA,CAA9B;;AA8BA,MAAMI,wBAAwB,GAAG,SAA8B;AAAA,MAA5B;AAAEC,IAAAA,QAAF;AAAY,OAAGC;AAAf,GAA4B;AAC9DhB,EAAAA,UAAU,CAAG,yCAAH,EAA6C;AACtDiB,IAAAA,WAAW,EAAE,oBADyC;AAEtDC,IAAAA,KAAK,EAAE,KAF+C;AAGtDC,IAAAA,OAAO,EAAE;AAH6C,GAA7C,CAAV;AAMA,SACC,cAAC,QAAD;AACC,IAAA,QAAQ,EAAC,cADV;AAEC,IAAA,SAAS,EAAC,+BAFX;AAGC,IAAA,gBAAgB,EAAC,wCAHlB;AAIC,IAAA,YAAY,EAAGd,qBAAqB,CAAEW,KAAF,CAJrC;AAKC,IAAA,aAAa,EAAG,MAAMD;AALvB,IADD;AASA,CAhBD;;AAkBA,eAAeD,wBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarButton,\n\tDropdown,\n\tToolbarGroup,\n\tSVG,\n\tPath,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport deprecated from '@wordpress/deprecated';\n\nconst ColorSelectorSVGIcon = () => (\n\t<SVG xmlns=\"https://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n\t\t<Path d=\"M7.434 5l3.18 9.16H8.538l-.692-2.184H4.628l-.705 2.184H2L5.18 5h2.254zm-1.13 1.904h-.115l-1.148 3.593H7.44L6.304 6.904zM14.348 7.006c1.853 0 2.9.876 2.9 2.374v4.78h-1.79v-.914h-.114c-.362.64-1.123 1.022-2.031 1.022-1.346 0-2.292-.826-2.292-2.108 0-1.27.972-2.006 2.71-2.107l1.696-.102V9.38c0-.584-.42-.914-1.18-.914-.667 0-1.112.228-1.264.647h-1.701c.12-1.295 1.307-2.107 3.066-2.107zm1.079 4.1l-1.416.09c-.793.056-1.18.342-1.18.844 0 .52.45.837 1.091.837.857 0 1.505-.545 1.505-1.256v-.515z\" />\n\t</SVG>\n);\n\n/**\n * Color Selector Icon component.\n *\n * @param {Object} props Component properties.\n * @param {Object} props.style Style object.\n * @param {string} props.className Class name for component.\n *\n * @return {*} React Icon component.\n */\nconst ColorSelectorIcon = ( { style, className } ) => {\n\treturn (\n\t\t<div className=\"block-library-colors-selector__icon-container\">\n\t\t\t<div\n\t\t\t\tclassName={ `${ className } block-library-colors-selector__state-selection` }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t<ColorSelectorSVGIcon />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n/**\n * Renders the Colors Selector Toolbar with the icon button.\n *\n * @param {Object} props Component properties.\n * @param {Object} props.TextColor Text color component that wraps icon.\n * @param {Object} props.BackgroundColor Background color component that wraps icon.\n *\n * @return {*} React toggle button component.\n */\nconst renderToggleComponent = ( { TextColor, BackgroundColor } ) => ( {\n\tonToggle,\n\tisOpen,\n} ) => {\n\tconst openOnArrowDown = ( event ) => {\n\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\tevent.preventDefault();\n\t\t\tonToggle();\n\t\t}\n\t};\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton\n\t\t\t\tclassName=\"components-toolbar__control block-library-colors-selector__toggle\"\n\t\t\t\tlabel={ __( 'Open Colors Selector' ) }\n\t\t\t\tonClick={ onToggle }\n\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\ticon={\n\t\t\t\t\t<BackgroundColor>\n\t\t\t\t\t\t<TextColor>\n\t\t\t\t\t\t\t<ColorSelectorIcon />\n\t\t\t\t\t\t</TextColor>\n\t\t\t\t\t</BackgroundColor>\n\t\t\t\t}\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n};\n\nconst BlockColorsStyleSelector = ( { children, ...other } ) => {\n\tdeprecated( `wp.blockEditor.BlockColorsStyleSelector`, {\n\t\talternative: 'block supports API',\n\t\tsince: '6.1',\n\t\tversion: '6.3',\n\t} );\n\n\treturn (\n\t\t<Dropdown\n\t\t\tposition=\"bottom right\"\n\t\t\tclassName=\"block-library-colors-selector\"\n\t\t\tcontentClassName=\"block-library-colors-selector__popover\"\n\t\t\trenderToggle={ renderToggleComponent( other ) }\n\t\t\trenderContent={ () => children }\n\t\t/>\n\t);\n};\n\nexport default BlockColorsStyleSelector;\n"]}