@wordpress/block-editor 12.15.0 → 12.16.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 (500) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +9 -4
  3. package/build/components/block-canvas/index.js +22 -6
  4. package/build/components/block-canvas/index.js.map +1 -1
  5. package/build/components/block-card/index.js +1 -1
  6. package/build/components/block-card/index.js.map +1 -1
  7. package/build/components/block-controls/hook.js +3 -23
  8. package/build/components/block-controls/hook.js.map +1 -1
  9. package/build/components/block-edit/context.js +5 -1
  10. package/build/components/block-edit/context.js.map +1 -1
  11. package/build/components/block-edit/index.js +18 -9
  12. package/build/components/block-edit/index.js.map +1 -1
  13. package/build/components/block-info-slot-fill/index.js +3 -4
  14. package/build/components/block-info-slot-fill/index.js.map +1 -1
  15. package/build/components/block-list/block.js +28 -9
  16. package/build/components/block-list/block.js.map +1 -1
  17. package/build/components/block-list/block.native.js +14 -5
  18. package/build/components/block-list/block.native.js.map +1 -1
  19. package/build/components/block-list/use-block-props/index.js +61 -18
  20. package/build/components/block-list/use-block-props/index.js.map +1 -1
  21. package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  22. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  23. package/build/components/block-list/use-block-props/use-is-hovered.js +4 -14
  24. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  25. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  26. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  27. package/build/components/block-patterns-list/index.js +1 -1
  28. package/build/components/block-patterns-list/index.js.map +1 -1
  29. package/build/components/block-removal-warning-modal/index.js +2 -9
  30. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  31. package/build/components/block-rename/modal.js +3 -0
  32. package/build/components/block-rename/modal.js.map +1 -1
  33. package/build/components/block-settings/container.native.js +6 -4
  34. package/build/components/block-settings/container.native.js.map +1 -1
  35. package/build/components/block-styles/index.js +1 -1
  36. package/build/components/block-styles/index.js.map +1 -1
  37. package/build/components/block-styles/index.native.js +3 -2
  38. package/build/components/block-styles/index.native.js.map +1 -1
  39. package/build/components/block-toolbar/index.js +89 -27
  40. package/build/components/block-toolbar/index.js.map +1 -1
  41. package/build/components/block-tools/block-toolbar-breadcrumb.js +49 -0
  42. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  43. package/build/components/block-tools/block-toolbar-popover.js +86 -0
  44. package/build/components/block-tools/block-toolbar-popover.js.map +1 -0
  45. package/build/components/block-tools/index.js +27 -24
  46. package/build/components/block-tools/index.js.map +1 -1
  47. package/build/components/block-types-list/index.native.js +4 -3
  48. package/build/components/block-types-list/index.native.js.map +1 -1
  49. package/build/components/block-variation-picker/index.native.js +2 -1
  50. package/build/components/block-variation-picker/index.native.js.map +1 -1
  51. package/build/components/colors-gradients/control.js +28 -17
  52. package/build/components/colors-gradients/control.js.map +1 -1
  53. package/build/components/duotone-control/index.js +1 -4
  54. package/build/components/duotone-control/index.js.map +1 -1
  55. package/build/components/global-styles/color-panel.js +22 -20
  56. package/build/components/global-styles/color-panel.js.map +1 -1
  57. package/build/components/global-styles/filters-panel.js +9 -3
  58. package/build/components/global-styles/filters-panel.js.map +1 -1
  59. package/build/components/global-styles/typography-panel.js +20 -31
  60. package/build/components/global-styles/typography-panel.js.map +1 -1
  61. package/build/components/image-link-destinations/index.native.js +118 -0
  62. package/build/components/image-link-destinations/index.native.js.map +1 -0
  63. package/build/components/index.native.js +8 -0
  64. package/build/components/index.native.js.map +1 -1
  65. package/build/components/inserter/media-tab/media-panel.js +2 -2
  66. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  67. package/build/components/inserter/menu.js +14 -7
  68. package/build/components/inserter/menu.js.map +1 -1
  69. package/build/components/inserter/preview-panel.js +2 -2
  70. package/build/components/inserter/preview-panel.js.map +1 -1
  71. package/build/components/inserter-button/index.native.js +98 -0
  72. package/build/components/inserter-button/index.native.js.map +1 -0
  73. package/build/components/inserter-button/sparkles.js +23 -0
  74. package/build/components/inserter-button/sparkles.js.map +1 -0
  75. package/build/components/inserter-draggable-blocks/index.js +8 -4
  76. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  77. package/build/components/inspector-controls/fill.js +3 -3
  78. package/build/components/inspector-controls/fill.js.map +1 -1
  79. package/build/components/inspector-controls/fill.native.js +3 -3
  80. package/build/components/inspector-controls/fill.native.js.map +1 -1
  81. package/build/components/navigable-toolbar/index.js +2 -2
  82. package/build/components/navigable-toolbar/index.js.map +1 -1
  83. package/build/components/preview-options/index.js +6 -62
  84. package/build/components/preview-options/index.js.map +1 -1
  85. package/build/components/rich-text/content.js +26 -23
  86. package/build/components/rich-text/content.js.map +1 -1
  87. package/build/components/rich-text/get-rich-text-values.js +2 -1
  88. package/build/components/rich-text/get-rich-text-values.js.map +1 -1
  89. package/build/components/rich-text/index.js +2 -30
  90. package/build/components/rich-text/index.js.map +1 -1
  91. package/build/components/rich-text/index.native.js +9 -16
  92. package/build/components/rich-text/index.native.js.map +1 -1
  93. package/build/components/rich-text/native/get-format-colors.native.js +22 -24
  94. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  95. package/build/components/rich-text/native/index.native.js +7 -34
  96. package/build/components/rich-text/native/index.native.js.map +1 -1
  97. package/build/components/rich-text/use-input-rules.js +5 -1
  98. package/build/components/rich-text/use-input-rules.js.map +1 -1
  99. package/build/components/rich-text/with-deprecations.js +50 -0
  100. package/build/components/rich-text/with-deprecations.js.map +1 -0
  101. package/build/components/use-block-drop-zone/index.js +70 -8
  102. package/build/components/use-block-drop-zone/index.js.map +1 -1
  103. package/build/components/use-on-block-drop/index.js +1 -1
  104. package/build/components/use-on-block-drop/index.js.map +1 -1
  105. package/build/components/use-resize-canvas/index.js +4 -1
  106. package/build/components/use-resize-canvas/index.js.map +1 -1
  107. package/build/components/use-settings/index.js +14 -0
  108. package/build/components/use-settings/index.js.map +1 -1
  109. package/build/hooks/align.js +20 -68
  110. package/build/hooks/align.js.map +1 -1
  111. package/build/hooks/align.native.js +11 -1
  112. package/build/hooks/align.native.js.map +1 -1
  113. package/build/hooks/anchor.js +13 -29
  114. package/build/hooks/anchor.js.map +1 -1
  115. package/build/hooks/background.js +28 -31
  116. package/build/hooks/background.js.map +1 -1
  117. package/build/hooks/block-hooks.js +24 -32
  118. package/build/hooks/block-hooks.js.map +1 -1
  119. package/build/hooks/block-renaming.js +18 -22
  120. package/build/hooks/block-renaming.js.map +1 -1
  121. package/build/hooks/border.js +58 -80
  122. package/build/hooks/border.js.map +1 -1
  123. package/build/hooks/color.js +76 -89
  124. package/build/hooks/color.js.map +1 -1
  125. package/build/hooks/content-lock-ui.js +29 -29
  126. package/build/hooks/content-lock-ui.js.map +1 -1
  127. package/build/hooks/custom-class-name.js +12 -29
  128. package/build/hooks/custom-class-name.js.map +1 -1
  129. package/build/hooks/custom-fields.js +24 -38
  130. package/build/hooks/custom-fields.js.map +1 -1
  131. package/build/hooks/dimensions.js +21 -17
  132. package/build/hooks/dimensions.js.map +1 -1
  133. package/build/hooks/duotone.js +31 -61
  134. package/build/hooks/duotone.js.map +1 -1
  135. package/build/hooks/font-family.js +16 -25
  136. package/build/hooks/font-family.js.map +1 -1
  137. package/build/hooks/font-size.js +51 -119
  138. package/build/hooks/font-size.js.map +1 -1
  139. package/build/hooks/index.js +25 -14
  140. package/build/hooks/index.js.map +1 -1
  141. package/build/hooks/index.native.js +10 -3
  142. package/build/hooks/index.native.js.map +1 -1
  143. package/build/hooks/layout-child.js +68 -0
  144. package/build/hooks/layout-child.js.map +1 -0
  145. package/build/hooks/layout.js +16 -101
  146. package/build/hooks/layout.js.map +1 -1
  147. package/build/hooks/padding.js +2 -2
  148. package/build/hooks/padding.js.map +1 -1
  149. package/build/hooks/position.js +40 -62
  150. package/build/hooks/position.js.map +1 -1
  151. package/build/hooks/style.js +51 -88
  152. package/build/hooks/style.js.map +1 -1
  153. package/build/hooks/typography.js +34 -14
  154. package/build/hooks/typography.js.map +1 -1
  155. package/build/hooks/utils.js +154 -7
  156. package/build/hooks/utils.js.map +1 -1
  157. package/build/private-apis.js +0 -2
  158. package/build/private-apis.js.map +1 -1
  159. package/build/store/private-actions.js +8 -0
  160. package/build/store/private-actions.js.map +1 -1
  161. package/build/store/private-selectors.js +34 -0
  162. package/build/store/private-selectors.js.map +1 -1
  163. package/build/store/reducer.js +8 -0
  164. package/build/store/reducer.js.map +1 -1
  165. package/build/store/selectors.js +10 -60
  166. package/build/store/selectors.js.map +1 -1
  167. package/build/store/utils.js +66 -0
  168. package/build/store/utils.js.map +1 -0
  169. package/build/utils/object.js +21 -61
  170. package/build/utils/object.js.map +1 -1
  171. package/build/utils/selection.js +9 -1
  172. package/build/utils/selection.js.map +1 -1
  173. package/build-module/components/block-canvas/index.js +23 -7
  174. package/build-module/components/block-canvas/index.js.map +1 -1
  175. package/build-module/components/block-card/index.js +1 -1
  176. package/build-module/components/block-card/index.js.map +1 -1
  177. package/build-module/components/block-controls/hook.js +4 -24
  178. package/build-module/components/block-controls/hook.js.map +1 -1
  179. package/build-module/components/block-edit/context.js +2 -0
  180. package/build-module/components/block-edit/context.js.map +1 -1
  181. package/build-module/components/block-edit/index.js +19 -10
  182. package/build-module/components/block-edit/index.js.map +1 -1
  183. package/build-module/components/block-info-slot-fill/index.js +3 -3
  184. package/build-module/components/block-info-slot-fill/index.js.map +1 -1
  185. package/build-module/components/block-list/block.js +29 -10
  186. package/build-module/components/block-list/block.js.map +1 -1
  187. package/build-module/components/block-list/block.native.js +14 -5
  188. package/build-module/components/block-list/block.native.js.map +1 -1
  189. package/build-module/components/block-list/use-block-props/index.js +62 -19
  190. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  191. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  192. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  193. package/build-module/components/block-list/use-block-props/use-is-hovered.js +4 -14
  194. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  195. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  196. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  197. package/build-module/components/block-patterns-list/index.js +1 -1
  198. package/build-module/components/block-patterns-list/index.js.map +1 -1
  199. package/build-module/components/block-removal-warning-modal/index.js +3 -10
  200. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  201. package/build-module/components/block-rename/modal.js +3 -0
  202. package/build-module/components/block-rename/modal.js.map +1 -1
  203. package/build-module/components/block-settings/container.native.js +4 -2
  204. package/build-module/components/block-settings/container.native.js.map +1 -1
  205. package/build-module/components/block-styles/index.js +1 -1
  206. package/build-module/components/block-styles/index.js.map +1 -1
  207. package/build-module/components/block-styles/index.native.js +3 -2
  208. package/build-module/components/block-styles/index.native.js.map +1 -1
  209. package/build-module/components/block-toolbar/index.js +88 -25
  210. package/build-module/components/block-toolbar/index.js.map +1 -1
  211. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +41 -0
  212. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  213. package/build-module/components/block-tools/block-toolbar-popover.js +76 -0
  214. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -0
  215. package/build-module/components/block-tools/index.js +27 -24
  216. package/build-module/components/block-tools/index.js.map +1 -1
  217. package/build-module/components/block-types-list/index.native.js +2 -1
  218. package/build-module/components/block-types-list/index.native.js.map +1 -1
  219. package/build-module/components/block-variation-picker/index.native.js +2 -1
  220. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  221. package/build-module/components/colors-gradients/control.js +29 -18
  222. package/build-module/components/colors-gradients/control.js.map +1 -1
  223. package/build-module/components/duotone-control/index.js +1 -4
  224. package/build-module/components/duotone-control/index.js.map +1 -1
  225. package/build-module/components/global-styles/color-panel.js +23 -21
  226. package/build-module/components/global-styles/color-panel.js.map +1 -1
  227. package/build-module/components/global-styles/filters-panel.js +10 -4
  228. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  229. package/build-module/components/global-styles/typography-panel.js +20 -31
  230. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  231. package/build-module/components/image-link-destinations/index.native.js +109 -0
  232. package/build-module/components/image-link-destinations/index.native.js.map +1 -0
  233. package/build-module/components/index.native.js +1 -0
  234. package/build-module/components/index.native.js.map +1 -1
  235. package/build-module/components/inserter/media-tab/media-panel.js +1 -1
  236. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  237. package/build-module/components/inserter/menu.js +14 -7
  238. package/build-module/components/inserter/menu.js.map +1 -1
  239. package/build-module/components/inserter/preview-panel.js +2 -2
  240. package/build-module/components/inserter/preview-panel.js.map +1 -1
  241. package/build-module/components/inserter-button/index.native.js +89 -0
  242. package/build-module/components/inserter-button/index.native.js.map +1 -0
  243. package/build-module/components/inserter-button/sparkles.js +15 -0
  244. package/build-module/components/inserter-button/sparkles.js.map +1 -0
  245. package/build-module/components/inserter-draggable-blocks/index.js +9 -5
  246. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  247. package/build-module/components/inspector-controls/fill.js +3 -3
  248. package/build-module/components/inspector-controls/fill.js.map +1 -1
  249. package/build-module/components/inspector-controls/fill.native.js +3 -3
  250. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  251. package/build-module/components/navigable-toolbar/index.js +2 -2
  252. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  253. package/build-module/components/preview-options/index.js +6 -62
  254. package/build-module/components/preview-options/index.js.map +1 -1
  255. package/build-module/components/rich-text/content.js +25 -21
  256. package/build-module/components/rich-text/content.js.map +1 -1
  257. package/build-module/components/rich-text/get-rich-text-values.js +2 -1
  258. package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
  259. package/build-module/components/rich-text/index.js +4 -32
  260. package/build-module/components/rich-text/index.js.map +1 -1
  261. package/build-module/components/rich-text/index.native.js +10 -18
  262. package/build-module/components/rich-text/index.native.js.map +1 -1
  263. package/build-module/components/rich-text/native/get-format-colors.native.js +22 -24
  264. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  265. package/build-module/components/rich-text/native/index.native.js +7 -34
  266. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  267. package/build-module/components/rich-text/use-input-rules.js +5 -1
  268. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  269. package/build-module/components/rich-text/with-deprecations.js +42 -0
  270. package/build-module/components/rich-text/with-deprecations.js.map +1 -0
  271. package/build-module/components/use-block-drop-zone/index.js +69 -8
  272. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  273. package/build-module/components/use-on-block-drop/index.js +1 -1
  274. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  275. package/build-module/components/use-resize-canvas/index.js +4 -1
  276. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  277. package/build-module/components/use-settings/index.js +13 -1
  278. package/build-module/components/use-settings/index.js.map +1 -1
  279. package/build-module/hooks/align.js +19 -66
  280. package/build-module/hooks/align.js.map +1 -1
  281. package/build-module/hooks/align.native.js +1 -0
  282. package/build-module/hooks/align.native.js.map +1 -1
  283. package/build-module/hooks/anchor.js +11 -26
  284. package/build-module/hooks/anchor.js.map +1 -1
  285. package/build-module/hooks/background.js +26 -28
  286. package/build-module/hooks/background.js.map +1 -1
  287. package/build-module/hooks/block-hooks.js +22 -30
  288. package/build-module/hooks/block-hooks.js.map +1 -1
  289. package/build-module/hooks/block-renaming.js +17 -21
  290. package/build-module/hooks/block-renaming.js.map +1 -1
  291. package/build-module/hooks/border.js +57 -78
  292. package/build-module/hooks/border.js.map +1 -1
  293. package/build-module/hooks/color.js +74 -86
  294. package/build-module/hooks/color.js.map +1 -1
  295. package/build-module/hooks/content-lock-ui.js +27 -27
  296. package/build-module/hooks/content-lock-ui.js.map +1 -1
  297. package/build-module/hooks/custom-class-name.js +11 -27
  298. package/build-module/hooks/custom-class-name.js.map +1 -1
  299. package/build-module/hooks/custom-fields.js +20 -39
  300. package/build-module/hooks/custom-fields.js.map +1 -1
  301. package/build-module/hooks/dimensions.js +21 -16
  302. package/build-module/hooks/dimensions.js.map +1 -1
  303. package/build-module/hooks/duotone.js +30 -61
  304. package/build-module/hooks/duotone.js.map +1 -1
  305. package/build-module/hooks/font-family.js +14 -23
  306. package/build-module/hooks/font-family.js.map +1 -1
  307. package/build-module/hooks/font-size.js +49 -119
  308. package/build-module/hooks/font-size.js.map +1 -1
  309. package/build-module/hooks/index.js +18 -14
  310. package/build-module/hooks/index.js.map +1 -1
  311. package/build-module/hooks/index.native.js +5 -3
  312. package/build-module/hooks/index.native.js.map +1 -1
  313. package/build-module/hooks/layout-child.js +60 -0
  314. package/build-module/hooks/layout-child.js.map +1 -0
  315. package/build-module/hooks/layout.js +13 -98
  316. package/build-module/hooks/layout.js.map +1 -1
  317. package/build-module/hooks/padding.js +2 -2
  318. package/build-module/hooks/padding.js.map +1 -1
  319. package/build-module/hooks/position.js +38 -59
  320. package/build-module/hooks/position.js.map +1 -1
  321. package/build-module/hooks/style.js +51 -84
  322. package/build-module/hooks/style.js.map +1 -1
  323. package/build-module/hooks/typography.js +33 -12
  324. package/build-module/hooks/typography.js.map +1 -1
  325. package/build-module/hooks/utils.js +149 -6
  326. package/build-module/hooks/utils.js.map +1 -1
  327. package/build-module/private-apis.js +0 -2
  328. package/build-module/private-apis.js.map +1 -1
  329. package/build-module/store/private-actions.js +7 -0
  330. package/build-module/store/private-actions.js.map +1 -1
  331. package/build-module/store/private-selectors.js +33 -1
  332. package/build-module/store/private-selectors.js.map +1 -1
  333. package/build-module/store/reducer.js +8 -0
  334. package/build-module/store/reducer.js.map +1 -1
  335. package/build-module/store/selectors.js +3 -53
  336. package/build-module/store/selectors.js.map +1 -1
  337. package/build-module/store/utils.js +56 -0
  338. package/build-module/store/utils.js.map +1 -0
  339. package/build-module/utils/object.js +21 -60
  340. package/build-module/utils/object.js.map +1 -1
  341. package/build-module/utils/selection.js +9 -1
  342. package/build-module/utils/selection.js.map +1 -1
  343. package/build-style/style-rtl.css +113 -293
  344. package/build-style/style.css +113 -293
  345. package/package.json +31 -31
  346. package/src/components/block-canvas/index.js +31 -17
  347. package/src/components/block-caption/README.md +2 -2
  348. package/src/components/block-card/index.js +5 -3
  349. package/src/components/block-card/style.scss +7 -3
  350. package/src/components/block-controls/hook.js +8 -30
  351. package/src/components/block-controls/test/index.js +3 -3
  352. package/src/components/block-edit/context.js +3 -0
  353. package/src/components/block-edit/index.js +36 -10
  354. package/src/components/block-info-slot-fill/index.js +6 -3
  355. package/src/components/block-inspector/style.scss +0 -4
  356. package/src/components/block-list/block.js +39 -5
  357. package/src/components/block-list/block.native.js +18 -4
  358. package/src/components/block-list/use-block-props/index.js +74 -21
  359. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -34
  360. package/src/components/block-list/use-block-props/use-is-hovered.js +2 -13
  361. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +1 -5
  362. package/src/components/block-patterns-list/index.js +1 -1
  363. package/src/components/block-removal-warning-modal/index.js +7 -14
  364. package/src/components/block-rename/modal.js +7 -1
  365. package/src/components/block-settings/container.native.js +3 -5
  366. package/src/components/block-styles/index.js +1 -1
  367. package/src/components/block-styles/index.native.js +4 -2
  368. package/src/components/block-styles/style.scss +0 -11
  369. package/src/components/block-switcher/test/__snapshots__/index.js.snap +3 -1
  370. package/src/components/block-toolbar/index.js +180 -95
  371. package/src/components/block-toolbar/style.scss +50 -66
  372. package/src/components/block-tools/block-toolbar-breadcrumb.js +46 -0
  373. package/src/components/block-tools/block-toolbar-popover.js +90 -0
  374. package/src/components/block-tools/index.js +42 -29
  375. package/src/components/block-tools/style.scss +60 -172
  376. package/src/components/block-types-list/index.native.js +2 -1
  377. package/src/components/block-variation-picker/index.native.js +1 -1
  378. package/src/components/colors-gradients/control.js +49 -30
  379. package/src/components/colors-gradients/style.scss +0 -7
  380. package/src/components/duotone-control/index.js +2 -5
  381. package/src/components/duotone-control/style.scss +1 -6
  382. package/src/components/global-styles/color-panel.js +34 -25
  383. package/src/components/global-styles/filters-panel.js +8 -4
  384. package/src/components/global-styles/typography-panel.js +23 -43
  385. package/src/components/image-link-destinations/index.native.js +152 -0
  386. package/src/components/image-link-destinations/style.native.scss +16 -0
  387. package/src/components/index.native.js +1 -0
  388. package/src/components/inner-blocks/README.md +13 -2
  389. package/src/components/inserter/media-tab/media-panel.js +1 -1
  390. package/src/components/inserter/menu.js +16 -8
  391. package/src/components/inserter/preview-panel.js +2 -2
  392. package/src/components/inserter/style.scss +15 -17
  393. package/src/components/inserter-button/README.md +62 -0
  394. package/src/components/inserter-button/index.native.js +116 -0
  395. package/src/components/inserter-button/sparkles.js +15 -0
  396. package/src/components/inserter-button/style.native.scss +72 -0
  397. package/src/components/inserter-draggable-blocks/index.js +18 -5
  398. package/src/components/inspector-controls/fill.js +6 -3
  399. package/src/components/inspector-controls/fill.native.js +6 -3
  400. package/src/components/link-control/style.scss +1 -1
  401. package/src/components/link-control/test/index.js +1 -1
  402. package/src/components/navigable-toolbar/README.md +2 -0
  403. package/src/components/navigable-toolbar/index.js +2 -2
  404. package/src/components/preview-options/index.js +6 -86
  405. package/src/components/rich-text/content.js +27 -20
  406. package/src/components/rich-text/get-rich-text-values.js +6 -1
  407. package/src/components/rich-text/index.js +5 -46
  408. package/src/components/rich-text/index.native.js +8 -25
  409. package/src/components/rich-text/native/get-format-colors.native.js +33 -40
  410. package/src/components/rich-text/native/index.native.js +7 -48
  411. package/src/components/rich-text/use-input-rules.js +6 -1
  412. package/src/components/rich-text/with-deprecations.js +51 -0
  413. package/src/components/use-block-drop-zone/index.js +114 -14
  414. package/src/components/use-on-block-drop/index.js +2 -1
  415. package/src/components/use-resize-canvas/README.md +3 -3
  416. package/src/components/use-resize-canvas/index.js +4 -1
  417. package/src/components/use-settings/index.js +15 -1
  418. package/src/hooks/align.js +15 -76
  419. package/src/hooks/align.native.js +1 -0
  420. package/src/hooks/anchor.js +13 -33
  421. package/src/hooks/background.js +28 -23
  422. package/src/hooks/block-hooks.js +22 -51
  423. package/src/hooks/block-renaming.js +23 -37
  424. package/src/hooks/border.js +67 -118
  425. package/src/hooks/color.js +100 -132
  426. package/src/hooks/content-lock-ui.js +110 -122
  427. package/src/hooks/custom-class-name.js +8 -40
  428. package/src/hooks/custom-fields.js +20 -47
  429. package/src/hooks/dimensions.js +20 -16
  430. package/src/hooks/duotone.js +70 -127
  431. package/src/hooks/font-family.js +10 -29
  432. package/src/hooks/font-size.js +66 -162
  433. package/src/hooks/index.js +42 -14
  434. package/src/hooks/index.native.js +6 -3
  435. package/src/hooks/layout-child.js +53 -0
  436. package/src/hooks/layout.js +13 -102
  437. package/src/hooks/padding.js +2 -2
  438. package/src/hooks/position.js +50 -90
  439. package/src/hooks/style.js +117 -187
  440. package/src/hooks/test/align.js +1 -178
  441. package/src/hooks/typography.js +20 -16
  442. package/src/hooks/utils.js +187 -6
  443. package/src/private-apis.js +0 -2
  444. package/src/store/private-actions.js +8 -0
  445. package/src/store/private-selectors.js +45 -0
  446. package/src/store/reducer.js +8 -0
  447. package/src/store/selectors.js +5 -69
  448. package/src/store/utils.js +74 -0
  449. package/src/style.scss +0 -2
  450. package/src/utils/object.js +18 -69
  451. package/src/utils/selection.js +9 -2
  452. package/build/components/block-list/use-block-props/use-block-class-names.js +0 -67
  453. package/build/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  454. package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -46
  455. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  456. package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -37
  457. package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  458. package/build/components/block-tools/back-compat.js +0 -45
  459. package/build/components/block-tools/back-compat.js.map +0 -1
  460. package/build/components/block-tools/block-contextual-toolbar.js +0 -91
  461. package/build/components/block-tools/block-contextual-toolbar.js.map +0 -1
  462. package/build/components/block-tools/selected-block-tools.js +0 -113
  463. package/build/components/block-tools/selected-block-tools.js.map +0 -1
  464. package/build/components/inserter/hooks/use-debounced-input.js +0 -22
  465. package/build/components/inserter/hooks/use-debounced-input.js.map +0 -1
  466. package/build/components/use-display-block-controls/index.js +0 -39
  467. package/build/components/use-display-block-controls/index.js.map +0 -1
  468. package/build/components/use-display-block-controls/index.native.js +0 -39
  469. package/build/components/use-display-block-controls/index.native.js.map +0 -1
  470. package/build-module/components/block-list/use-block-props/use-block-class-names.js +0 -60
  471. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  472. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +0 -40
  473. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  474. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +0 -31
  475. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  476. package/build-module/components/block-tools/back-compat.js +0 -35
  477. package/build-module/components/block-tools/back-compat.js.map +0 -1
  478. package/build-module/components/block-tools/block-contextual-toolbar.js +0 -83
  479. package/build-module/components/block-tools/block-contextual-toolbar.js.map +0 -1
  480. package/build-module/components/block-tools/selected-block-tools.js +0 -105
  481. package/build-module/components/block-tools/selected-block-tools.js.map +0 -1
  482. package/build-module/components/inserter/hooks/use-debounced-input.js +0 -15
  483. package/build-module/components/inserter/hooks/use-debounced-input.js.map +0 -1
  484. package/build-module/components/use-display-block-controls/index.js +0 -32
  485. package/build-module/components/use-display-block-controls/index.js.map +0 -1
  486. package/build-module/components/use-display-block-controls/index.native.js +0 -32
  487. package/build-module/components/use-display-block-controls/index.native.js.map +0 -1
  488. package/src/components/block-list/use-block-props/use-block-class-names.js +0 -66
  489. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +0 -44
  490. package/src/components/block-list/use-block-props/use-block-default-class-name.js +0 -35
  491. package/src/components/block-parent-selector/style.scss +0 -11
  492. package/src/components/block-tools/back-compat.js +0 -35
  493. package/src/components/block-tools/block-contextual-toolbar.js +0 -100
  494. package/src/components/block-tools/selected-block-tools.js +0 -127
  495. package/src/components/inserter/hooks/use-debounced-input.js +0 -18
  496. package/src/components/preview-options/README.md +0 -94
  497. package/src/components/preview-options/style.scss +0 -64
  498. package/src/components/use-display-block-controls/index.js +0 -36
  499. package/src/components/use-display-block-controls/index.native.js +0 -37
  500. package/src/hooks/test/color.js +0 -112
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","useDispatch","useViewportMatch","Popover","__unstableUseShortcutEventMatch","useShortcutEventMatch","useRef","isUnmodifiedDefaultBlock","EmptyBlockInserter","InsertionPointOpenRef","default","InsertionPoint","SelectedBlockTools","store","blockEditorStore","BlockContextualToolbar","usePopoverScroll","ZoomOutModeInserters","selector","select","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getBlock","getSettings","__unstableGetEditorMode","isTyping","clientId","name","attributes","hasFixedToolbar","hasSelectedBlock","isZoomOutMode","showEmptyBlockSideInserter","BlockTools","children","__unstableContentRef","props","isLargeViewport","isMatch","getSelectedBlockClientIds","getBlockRootClientId","duplicateBlocks","removeBlocks","insertAfterBlock","insertBeforeBlock","clearSelectedBlock","selectBlock","moveBlocksUp","moveBlocksDown","onKeyDown","event","defaultPrevented","clientIds","length","preventDefault","rootClientId","target","closest","ownerDocument","defaultView","getSelection","removeAllRanges","current","focus","blockToolbarRef","blockToolbarAfterRef","isTopToolbar","createElement","Provider","value","isFixed","Slot","ref"],"sources":["@wordpress/block-editor/src/components/block-tools/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { Popover } from '@wordpress/components';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { useRef } from '@wordpress/element';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport EmptyBlockInserter from './empty-block-inserter';\nimport {\n\tInsertionPointOpenRef,\n\tdefault as InsertionPoint,\n} from './insertion-point';\nimport SelectedBlockTools from './selected-block-tools';\nimport { store as blockEditorStore } from '../../store';\nimport BlockContextualToolbar from './block-contextual-toolbar';\nimport usePopoverScroll from '../block-popover/use-popover-scroll';\nimport ZoomOutModeInserters from './zoom-out-mode-inserters';\n\nfunction selector( select ) {\n\tconst {\n\t\tgetSelectedBlockClientId,\n\t\tgetFirstMultiSelectedBlockClientId,\n\t\tgetBlock,\n\t\tgetSettings,\n\t\t__unstableGetEditorMode,\n\t\tisTyping,\n\t} = select( blockEditorStore );\n\n\tconst clientId =\n\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\tconst { name = '', attributes = {} } = getBlock( clientId ) || {};\n\n\treturn {\n\t\tclientId,\n\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\thasSelectedBlock: clientId && name,\n\t\tisTyping: isTyping(),\n\t\tisZoomOutMode: __unstableGetEditorMode() === 'zoom-out',\n\t\tshowEmptyBlockSideInserter:\n\t\t\tclientId &&\n\t\t\t! isTyping() &&\n\t\t\t__unstableGetEditorMode() === 'edit' &&\n\t\t\tisUnmodifiedDefaultBlock( { name, attributes } ),\n\t};\n}\n\n/**\n * Renders block tools (the block toolbar, select/navigation mode toolbar, the\n * insertion point and a slot for the inline rich text toolbar). Must be wrapped\n * around the block content and editor styles wrapper or iframe.\n *\n * @param {Object} $0 Props.\n * @param {Object} $0.children The block content and style container.\n * @param {Object} $0.__unstableContentRef Ref holding the content scroll container.\n */\nexport default function BlockTools( {\n\tchildren,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\tclientId,\n\t\thasFixedToolbar,\n\t\thasSelectedBlock,\n\t\tisTyping,\n\t\tisZoomOutMode,\n\t\tshowEmptyBlockSideInserter,\n\t} = useSelect( selector, [] );\n\tconst isMatch = useShortcutEventMatch();\n\tconst { getSelectedBlockClientIds, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst {\n\t\tduplicateBlocks,\n\t\tremoveBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tclearSelectedBlock,\n\t\tselectBlock,\n\t\tmoveBlocksUp,\n\t\tmoveBlocksDown,\n\t} = useDispatch( blockEditorStore );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.defaultPrevented ) return;\n\n\t\tif ( isMatch( 'core/block-editor/move-up', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tmoveBlocksUp( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/move-down', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tmoveBlocksDown( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tduplicateBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/remove', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tremoveBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-after', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertAfterBlock( clientIds[ clientIds.length - 1 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-before', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertBeforeBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/unselect', event ) ) {\n\t\t\tif ( event.target.closest( '[role=toolbar]' ) ) {\n\t\t\t\t// This shouldn't be necessary, but we have a combination of a few things all combining to create a situation where:\n\t\t\t\t// - Because the block toolbar uses createPortal to populate the block toolbar fills, we can't rely on the React event bubbling to hit the onKeyDown listener for the block toolbar\n\t\t\t\t// - Since we can't use the React tree, we use the DOM tree which _should_ handle the event bubbling correctly from a `createPortal` element.\n\t\t\t\t// - This bubbles via the React tree, which hits this `unselect` escape keypress before the block toolbar DOM event listener has access to it.\n\t\t\t\t// An alternative would be to remove the addEventListener on the navigableToolbar and use this event to handle it directly right here. That feels hacky too though.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// If there is more than one block selected, select the first\n\t\t\t\t// block so that focus is directed back to the beginning of the selection.\n\t\t\t\t// In effect, to the user this feels like deselecting the multi-selection.\n\t\t\t\tif ( clientIds.length > 1 ) {\n\t\t\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\t\t} else {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t\tevent.target.ownerDocument.defaultView\n\t\t\t\t\t.getSelection()\n\t\t\t\t\t.removeAllRanges();\n\t\t\t\t__unstableContentRef?.current.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tconst blockToolbarRef = usePopoverScroll( __unstableContentRef );\n\tconst blockToolbarAfterRef = usePopoverScroll( __unstableContentRef );\n\n\t// Conditions for fixed toolbar\n\t// 1. Not zoom out mode\n\t// 2. It's a large viewport. If it's a smaller viewport, let the floating toolbar handle it as it already has styles attached to make it render that way.\n\t// 3. Fixed toolbar is enabled\n\tconst isTopToolbar = ! isZoomOutMode && hasFixedToolbar && isLargeViewport;\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div { ...props } onKeyDown={ onKeyDown }>\n\t\t\t<InsertionPointOpenRef.Provider value={ useRef( false ) }>\n\t\t\t\t{ ! isTyping && (\n\t\t\t\t\t<InsertionPoint\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ /* If there is no slot available, such as in the standalone block editor, render within the editor */ }\n\n\t\t\t\t{ ! isLargeViewport && ( // Small viewports always get a fixed toolbar\n\t\t\t\t\t<BlockContextualToolbar isFixed />\n\t\t\t\t) }\n\n\t\t\t\t{ showEmptyBlockSideInserter && (\n\t\t\t\t\t<EmptyBlockInserter\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ /* Even if the toolbar is fixed, the block popover is still\n\t\t\t\t\tneeded for navigation and zoom-out mode. */ }\n\t\t\t\t{ ! showEmptyBlockSideInserter && hasSelectedBlock && (\n\t\t\t\t\t<SelectedBlockTools\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ /* Used for the inline rich text toolbar. */ }\n\t\t\t\t{ ! isTopToolbar && (\n\t\t\t\t\t<Popover.Slot\n\t\t\t\t\t\tname=\"block-toolbar\"\n\t\t\t\t\t\tref={ blockToolbarRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t\t{ /* Used for inline rich text popovers. */ }\n\t\t\t\t<Popover.Slot\n\t\t\t\t\tname=\"__unstable-block-tools-after\"\n\t\t\t\t\tref={ blockToolbarAfterRef }\n\t\t\t\t/>\n\t\t\t\t{ isZoomOutMode && (\n\t\t\t\t\t<ZoomOutModeInserters\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InsertionPointOpenRef.Provider>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["useSelect","useDispatch","Popover","__unstableUseShortcutEventMatch","useShortcutEventMatch","useRef","isUnmodifiedDefaultBlock","EmptyBlockInserter","InsertionPointOpenRef","default","InsertionPoint","BlockToolbarPopover","BlockToolbarBreadcrumb","store","blockEditorStore","usePopoverScroll","ZoomOutModeInserters","selector","select","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getBlock","getSettings","hasMultiSelection","__unstableGetEditorMode","isTyping","clientId","name","attributes","editorMode","hasSelectedBlock","isEmptyDefaultBlock","_showEmptyBlockSideInserter","maybeShowBreadcrumb","hasFixedToolbar","isZoomOutMode","showEmptyBlockSideInserter","showBreadcrumb","showBlockToolbar","BlockTools","children","__unstableContentRef","props","isMatch","getSelectedBlockClientIds","getBlockRootClientId","duplicateBlocks","removeBlocks","insertAfterBlock","insertBeforeBlock","clearSelectedBlock","selectBlock","moveBlocksUp","moveBlocksDown","onKeyDown","event","defaultPrevented","clientIds","length","preventDefault","rootClientId","target","closest","ownerDocument","defaultView","getSelection","removeAllRanges","current","focus","blockToolbarRef","blockToolbarAfterRef","createElement","Provider","value","Slot","ref"],"sources":["@wordpress/block-editor/src/components/block-tools/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Popover } from '@wordpress/components';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { useRef } from '@wordpress/element';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport EmptyBlockInserter from './empty-block-inserter';\nimport {\n\tInsertionPointOpenRef,\n\tdefault as InsertionPoint,\n} from './insertion-point';\nimport BlockToolbarPopover from './block-toolbar-popover';\nimport BlockToolbarBreadcrumb from './block-toolbar-breadcrumb';\nimport { store as blockEditorStore } from '../../store';\nimport usePopoverScroll from '../block-popover/use-popover-scroll';\nimport ZoomOutModeInserters from './zoom-out-mode-inserters';\n\nfunction selector( select ) {\n\tconst {\n\t\tgetSelectedBlockClientId,\n\t\tgetFirstMultiSelectedBlockClientId,\n\t\tgetBlock,\n\t\tgetSettings,\n\t\thasMultiSelection,\n\t\t__unstableGetEditorMode,\n\t\tisTyping,\n\t} = select( blockEditorStore );\n\n\tconst clientId =\n\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\tconst { name = '', attributes = {} } = getBlock( clientId ) || {};\n\tconst editorMode = __unstableGetEditorMode();\n\tconst hasSelectedBlock = clientId && name;\n\tconst isEmptyDefaultBlock = isUnmodifiedDefaultBlock( {\n\t\tname,\n\t\tattributes,\n\t} );\n\tconst _showEmptyBlockSideInserter =\n\t\tclientId &&\n\t\t! isTyping() &&\n\t\teditorMode === 'edit' &&\n\t\tisUnmodifiedDefaultBlock( { name, attributes } );\n\tconst maybeShowBreadcrumb =\n\t\thasSelectedBlock &&\n\t\t! hasMultiSelection() &&\n\t\t( editorMode === 'navigation' || editorMode === 'zoom-out' );\n\n\treturn {\n\t\tclientId,\n\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\tisTyping: isTyping(),\n\t\tisZoomOutMode: editorMode === 'zoom-out',\n\t\tshowEmptyBlockSideInserter: _showEmptyBlockSideInserter,\n\t\tshowBreadcrumb: ! _showEmptyBlockSideInserter && maybeShowBreadcrumb,\n\t\tshowBlockToolbar:\n\t\t\t! getSettings().hasFixedToolbar &&\n\t\t\t! _showEmptyBlockSideInserter &&\n\t\t\thasSelectedBlock &&\n\t\t\t! isEmptyDefaultBlock &&\n\t\t\t! maybeShowBreadcrumb,\n\t};\n}\n\n/**\n * Renders block tools (the block toolbar, select/navigation mode toolbar, the\n * insertion point and a slot for the inline rich text toolbar). Must be wrapped\n * around the block content and editor styles wrapper or iframe.\n *\n * @param {Object} $0 Props.\n * @param {Object} $0.children The block content and style container.\n * @param {Object} $0.__unstableContentRef Ref holding the content scroll container.\n */\nexport default function BlockTools( {\n\tchildren,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst {\n\t\tclientId,\n\t\thasFixedToolbar,\n\t\tisTyping,\n\t\tisZoomOutMode,\n\t\tshowEmptyBlockSideInserter,\n\t\tshowBreadcrumb,\n\t\tshowBlockToolbar,\n\t} = useSelect( selector, [] );\n\tconst isMatch = useShortcutEventMatch();\n\tconst { getSelectedBlockClientIds, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst {\n\t\tduplicateBlocks,\n\t\tremoveBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tclearSelectedBlock,\n\t\tselectBlock,\n\t\tmoveBlocksUp,\n\t\tmoveBlocksDown,\n\t} = useDispatch( blockEditorStore );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.defaultPrevented ) return;\n\n\t\tif ( isMatch( 'core/block-editor/move-up', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tmoveBlocksUp( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/move-down', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tmoveBlocksDown( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tduplicateBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/remove', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tremoveBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-after', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertAfterBlock( clientIds[ clientIds.length - 1 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-before', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertBeforeBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/unselect', event ) ) {\n\t\t\tif ( event.target.closest( '[role=toolbar]' ) ) {\n\t\t\t\t// This shouldn't be necessary, but we have a combination of a few things all combining to create a situation where:\n\t\t\t\t// - Because the block toolbar uses createPortal to populate the block toolbar fills, we can't rely on the React event bubbling to hit the onKeyDown listener for the block toolbar\n\t\t\t\t// - Since we can't use the React tree, we use the DOM tree which _should_ handle the event bubbling correctly from a `createPortal` element.\n\t\t\t\t// - This bubbles via the React tree, which hits this `unselect` escape keypress before the block toolbar DOM event listener has access to it.\n\t\t\t\t// An alternative would be to remove the addEventListener on the navigableToolbar and use this event to handle it directly right here. That feels hacky too though.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// If there is more than one block selected, select the first\n\t\t\t\t// block so that focus is directed back to the beginning of the selection.\n\t\t\t\t// In effect, to the user this feels like deselecting the multi-selection.\n\t\t\t\tif ( clientIds.length > 1 ) {\n\t\t\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\t\t} else {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t\tevent.target.ownerDocument.defaultView\n\t\t\t\t\t.getSelection()\n\t\t\t\t\t.removeAllRanges();\n\t\t\t\t__unstableContentRef?.current.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tconst blockToolbarRef = usePopoverScroll( __unstableContentRef );\n\tconst blockToolbarAfterRef = usePopoverScroll( __unstableContentRef );\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div { ...props } onKeyDown={ onKeyDown }>\n\t\t\t<InsertionPointOpenRef.Provider value={ useRef( false ) }>\n\t\t\t\t{ ! isTyping && (\n\t\t\t\t\t<InsertionPoint\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showEmptyBlockSideInserter && (\n\t\t\t\t\t<EmptyBlockInserter\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showBlockToolbar && (\n\t\t\t\t\t<BlockToolbarPopover\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisTyping={ isTyping }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showBreadcrumb && (\n\t\t\t\t\t<BlockToolbarBreadcrumb\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ /* Used for the inline rich text toolbar. Until this toolbar is combined into BlockToolbar, someone implementing their own BlockToolbar will also need to use this to see the image caption toolbar. */ }\n\t\t\t\t{ ! isZoomOutMode && ! hasFixedToolbar && (\n\t\t\t\t\t<Popover.Slot\n\t\t\t\t\t\tname=\"block-toolbar\"\n\t\t\t\t\t\tref={ blockToolbarRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t\t{ /* Used for inline rich text popovers. */ }\n\t\t\t\t<Popover.Slot\n\t\t\t\t\tname=\"__unstable-block-tools-after\"\n\t\t\t\t\tref={ blockToolbarAfterRef }\n\t\t\t\t/>\n\t\t\t\t{ isZoomOutMode && (\n\t\t\t\t\t<ZoomOutModeInserters\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InsertionPointOpenRef.Provider>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
@@ -8,13 +8,14 @@ import { Dimensions, FlatList, SectionList, StyleSheet, Text, TouchableWithoutFe
8
8
  * WordPress dependencies
9
9
  */
10
10
  import { useState, useEffect } from '@wordpress/element';
11
- import { BottomSheet, Gradient, InserterButton } from '@wordpress/components';
11
+ import { BottomSheet, Gradient } from '@wordpress/components';
12
12
  import { usePreferredColorScheme, usePreferredColorSchemeStyle } from '@wordpress/compose';
13
13
 
14
14
  /**
15
15
  * Internal dependencies
16
16
  */
17
17
  import styles from './style.scss';
18
+ import InserterButton from '../inserter-button';
18
19
  const MIN_COL_NUM = 3;
19
20
  export default function BlockTypesList({
20
21
  name,
@@ -1 +1 @@
1
- {"version":3,"names":["Dimensions","FlatList","SectionList","StyleSheet","Text","TouchableWithoutFeedback","View","useState","useEffect","BottomSheet","Gradient","InserterButton","usePreferredColorScheme","usePreferredColorSchemeStyle","styles","MIN_COL_NUM","BlockTypesList","name","sections","onSelect","label","listProps","initialNumToRender","numberOfColumns","setNumberOfColumns","itemWidth","setItemWidth","maxWidth","setMaxWidth","dimensionsChangeSubscription","addEventListener","onLayout","remove","calculateItemWidth","paddingLeft","itemPaddingLeft","paddingRight","itemPaddingRight","Styles","modalItem","width","modalIconWrapper","columnStyle","sumLeftRightPadding","bottomSheetWidth","getWidth","containerTotalWidth","itemTotalWidth","columnsFitToWidth","Math","floor","numColumns","max","updatedItemWidth","contentContainerStyle","flatten","renderSection","item","createElement","accessible","data","list","key","ItemSeparatorComponent","style","scrollEnabled","renderItem","renderListItem","colorScheme","sectionHeaderGradientValue","sectionHeaderTitleStyles","renderSectionHeader","section","metadata","icon","title","gradientValue","testID","accessibilityLabel","keyboardShouldPersistTaps","paddingBottom","safeAreaBottomInset"],"sources":["@wordpress/block-editor/src/components/block-types-list/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tDimensions,\n\tFlatList,\n\tSectionList,\n\tStyleSheet,\n\tText,\n\tTouchableWithoutFeedback,\n\tView,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { BottomSheet, Gradient, InserterButton } from '@wordpress/components';\nimport {\n\tusePreferredColorScheme,\n\tusePreferredColorSchemeStyle,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst MIN_COL_NUM = 3;\n\nexport default function BlockTypesList( {\n\tname,\n\tsections,\n\tonSelect,\n\tlabel,\n\tlistProps,\n\tinitialNumToRender = 3,\n} ) {\n\tconst [ numberOfColumns, setNumberOfColumns ] = useState( MIN_COL_NUM );\n\tconst [ itemWidth, setItemWidth ] = useState();\n\tconst [ maxWidth, setMaxWidth ] = useState();\n\n\tuseEffect( () => {\n\t\tconst dimensionsChangeSubscription = Dimensions.addEventListener(\n\t\t\t'change',\n\t\t\tonLayout\n\t\t);\n\t\tonLayout();\n\t\treturn () => {\n\t\t\tdimensionsChangeSubscription.remove();\n\t\t};\n\t}, [] );\n\n\tfunction calculateItemWidth() {\n\t\tconst { paddingLeft: itemPaddingLeft, paddingRight: itemPaddingRight } =\n\t\t\tInserterButton.Styles.modalItem;\n\t\tconst { width } = InserterButton.Styles.modalIconWrapper;\n\t\treturn width + itemPaddingLeft + itemPaddingRight;\n\t}\n\n\tfunction onLayout() {\n\t\tconst columnStyle = styles[ 'block-types-list__column' ];\n\t\tconst sumLeftRightPadding =\n\t\t\tcolumnStyle.paddingLeft + columnStyle.paddingRight;\n\n\t\tconst bottomSheetWidth = BottomSheet.getWidth();\n\t\tconst containerTotalWidth = bottomSheetWidth - sumLeftRightPadding;\n\t\tconst itemTotalWidth = calculateItemWidth();\n\n\t\tconst columnsFitToWidth = Math.floor(\n\t\t\tcontainerTotalWidth / itemTotalWidth\n\t\t);\n\n\t\tconst numColumns = Math.max( MIN_COL_NUM, columnsFitToWidth );\n\n\t\tsetNumberOfColumns( numColumns );\n\t\tsetMaxWidth( containerTotalWidth / numColumns );\n\n\t\tif ( columnsFitToWidth < MIN_COL_NUM ) {\n\t\t\tconst updatedItemWidth =\n\t\t\t\t( bottomSheetWidth - 2 * sumLeftRightPadding ) / MIN_COL_NUM;\n\t\t\tsetItemWidth( updatedItemWidth );\n\t\t}\n\t}\n\n\tconst contentContainerStyle = StyleSheet.flatten(\n\t\tlistProps.contentContainerStyle\n\t);\n\n\tconst renderSection = ( { item } ) => {\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback accessible={ false }>\n\t\t\t\t<FlatList\n\t\t\t\t\tdata={ item.list }\n\t\t\t\t\tkey={ `InserterUI-${ name }-${ numberOfColumns }` } // Re-render when numberOfColumns changes.\n\t\t\t\t\tnumColumns={ numberOfColumns }\n\t\t\t\t\tItemSeparatorComponent={ () => (\n\t\t\t\t\t\t<TouchableWithoutFeedback accessible={ false }>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\tstyles[ 'block-types-list__row-separator' ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t\t) }\n\t\t\t\t\tscrollEnabled={ false }\n\t\t\t\t\trenderItem={ renderListItem }\n\t\t\t\t/>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t};\n\n\tconst renderListItem = ( { item } ) => {\n\t\treturn (\n\t\t\t<InserterButton\n\t\t\t\titem={ item }\n\t\t\t\titemWidth={ itemWidth }\n\t\t\t\tmaxWidth={ maxWidth }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst colorScheme = usePreferredColorScheme();\n\tconst sectionHeaderGradientValue =\n\t\tcolorScheme === 'light'\n\t\t\t? 'linear-gradient(#fff 70%, rgba(255, 255, 255, 0))'\n\t\t\t: 'linear-gradient(#2e2e2e 70%, rgba(46, 46, 46, 0))';\n\tconst sectionHeaderTitleStyles = usePreferredColorSchemeStyle(\n\t\tstyles[ 'block-types-list__section-header-title' ],\n\t\tstyles[ 'block-types-list__section-header-title--dark' ]\n\t);\n\n\tconst renderSectionHeader = ( { section: { metadata } } ) => {\n\t\tif ( ! metadata?.icon || ! metadata?.title ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback accessible={ false }>\n\t\t\t\t<Gradient\n\t\t\t\t\tgradientValue={ sectionHeaderGradientValue }\n\t\t\t\t\tstyle={ styles[ 'block-types-list__section-header' ] }\n\t\t\t\t>\n\t\t\t\t\t{ metadata?.icon }\n\t\t\t\t\t<Text style={ sectionHeaderTitleStyles }>\n\t\t\t\t\t\t{ metadata?.title }\n\t\t\t\t\t</Text>\n\t\t\t\t</Gradient>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t};\n\n\treturn (\n\t\t<SectionList\n\t\t\tonLayout={ onLayout }\n\t\t\ttestID={ `InserterUI-${ name }` }\n\t\t\taccessibilityLabel={ label }\n\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\tsections={ sections }\n\t\t\tinitialNumToRender={ initialNumToRender }\n\t\t\trenderItem={ renderSection }\n\t\t\trenderSectionHeader={ renderSectionHeader }\n\t\t\t{ ...listProps }\n\t\t\tcontentContainerStyle={ {\n\t\t\t\t...contentContainerStyle,\n\t\t\t\tpaddingBottom: Math.max(\n\t\t\t\t\tlistProps.safeAreaBottomInset,\n\t\t\t\t\tcontentContainerStyle.paddingBottom\n\t\t\t\t),\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Dimensions","FlatList","SectionList","StyleSheet","Text","TouchableWithoutFeedback","View","useState","useEffect","BottomSheet","Gradient","usePreferredColorScheme","usePreferredColorSchemeStyle","styles","InserterButton","MIN_COL_NUM","BlockTypesList","name","sections","onSelect","label","listProps","initialNumToRender","numberOfColumns","setNumberOfColumns","itemWidth","setItemWidth","maxWidth","setMaxWidth","dimensionsChangeSubscription","addEventListener","onLayout","remove","calculateItemWidth","paddingLeft","itemPaddingLeft","paddingRight","itemPaddingRight","Styles","modalItem","width","modalIconWrapper","columnStyle","sumLeftRightPadding","bottomSheetWidth","getWidth","containerTotalWidth","itemTotalWidth","columnsFitToWidth","Math","floor","numColumns","max","updatedItemWidth","contentContainerStyle","flatten","renderSection","item","createElement","accessible","data","list","key","ItemSeparatorComponent","style","scrollEnabled","renderItem","renderListItem","colorScheme","sectionHeaderGradientValue","sectionHeaderTitleStyles","renderSectionHeader","section","metadata","icon","title","gradientValue","testID","accessibilityLabel","keyboardShouldPersistTaps","paddingBottom","safeAreaBottomInset"],"sources":["@wordpress/block-editor/src/components/block-types-list/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tDimensions,\n\tFlatList,\n\tSectionList,\n\tStyleSheet,\n\tText,\n\tTouchableWithoutFeedback,\n\tView,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { BottomSheet, Gradient } from '@wordpress/components';\nimport {\n\tusePreferredColorScheme,\n\tusePreferredColorSchemeStyle,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport InserterButton from '../inserter-button';\n\nconst MIN_COL_NUM = 3;\n\nexport default function BlockTypesList( {\n\tname,\n\tsections,\n\tonSelect,\n\tlabel,\n\tlistProps,\n\tinitialNumToRender = 3,\n} ) {\n\tconst [ numberOfColumns, setNumberOfColumns ] = useState( MIN_COL_NUM );\n\tconst [ itemWidth, setItemWidth ] = useState();\n\tconst [ maxWidth, setMaxWidth ] = useState();\n\n\tuseEffect( () => {\n\t\tconst dimensionsChangeSubscription = Dimensions.addEventListener(\n\t\t\t'change',\n\t\t\tonLayout\n\t\t);\n\t\tonLayout();\n\t\treturn () => {\n\t\t\tdimensionsChangeSubscription.remove();\n\t\t};\n\t}, [] );\n\n\tfunction calculateItemWidth() {\n\t\tconst { paddingLeft: itemPaddingLeft, paddingRight: itemPaddingRight } =\n\t\t\tInserterButton.Styles.modalItem;\n\t\tconst { width } = InserterButton.Styles.modalIconWrapper;\n\t\treturn width + itemPaddingLeft + itemPaddingRight;\n\t}\n\n\tfunction onLayout() {\n\t\tconst columnStyle = styles[ 'block-types-list__column' ];\n\t\tconst sumLeftRightPadding =\n\t\t\tcolumnStyle.paddingLeft + columnStyle.paddingRight;\n\n\t\tconst bottomSheetWidth = BottomSheet.getWidth();\n\t\tconst containerTotalWidth = bottomSheetWidth - sumLeftRightPadding;\n\t\tconst itemTotalWidth = calculateItemWidth();\n\n\t\tconst columnsFitToWidth = Math.floor(\n\t\t\tcontainerTotalWidth / itemTotalWidth\n\t\t);\n\n\t\tconst numColumns = Math.max( MIN_COL_NUM, columnsFitToWidth );\n\n\t\tsetNumberOfColumns( numColumns );\n\t\tsetMaxWidth( containerTotalWidth / numColumns );\n\n\t\tif ( columnsFitToWidth < MIN_COL_NUM ) {\n\t\t\tconst updatedItemWidth =\n\t\t\t\t( bottomSheetWidth - 2 * sumLeftRightPadding ) / MIN_COL_NUM;\n\t\t\tsetItemWidth( updatedItemWidth );\n\t\t}\n\t}\n\n\tconst contentContainerStyle = StyleSheet.flatten(\n\t\tlistProps.contentContainerStyle\n\t);\n\n\tconst renderSection = ( { item } ) => {\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback accessible={ false }>\n\t\t\t\t<FlatList\n\t\t\t\t\tdata={ item.list }\n\t\t\t\t\tkey={ `InserterUI-${ name }-${ numberOfColumns }` } // Re-render when numberOfColumns changes.\n\t\t\t\t\tnumColumns={ numberOfColumns }\n\t\t\t\t\tItemSeparatorComponent={ () => (\n\t\t\t\t\t\t<TouchableWithoutFeedback accessible={ false }>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\tstyles[ 'block-types-list__row-separator' ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t\t) }\n\t\t\t\t\tscrollEnabled={ false }\n\t\t\t\t\trenderItem={ renderListItem }\n\t\t\t\t/>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t};\n\n\tconst renderListItem = ( { item } ) => {\n\t\treturn (\n\t\t\t<InserterButton\n\t\t\t\titem={ item }\n\t\t\t\titemWidth={ itemWidth }\n\t\t\t\tmaxWidth={ maxWidth }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst colorScheme = usePreferredColorScheme();\n\tconst sectionHeaderGradientValue =\n\t\tcolorScheme === 'light'\n\t\t\t? 'linear-gradient(#fff 70%, rgba(255, 255, 255, 0))'\n\t\t\t: 'linear-gradient(#2e2e2e 70%, rgba(46, 46, 46, 0))';\n\tconst sectionHeaderTitleStyles = usePreferredColorSchemeStyle(\n\t\tstyles[ 'block-types-list__section-header-title' ],\n\t\tstyles[ 'block-types-list__section-header-title--dark' ]\n\t);\n\n\tconst renderSectionHeader = ( { section: { metadata } } ) => {\n\t\tif ( ! metadata?.icon || ! metadata?.title ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback accessible={ false }>\n\t\t\t\t<Gradient\n\t\t\t\t\tgradientValue={ sectionHeaderGradientValue }\n\t\t\t\t\tstyle={ styles[ 'block-types-list__section-header' ] }\n\t\t\t\t>\n\t\t\t\t\t{ metadata?.icon }\n\t\t\t\t\t<Text style={ sectionHeaderTitleStyles }>\n\t\t\t\t\t\t{ metadata?.title }\n\t\t\t\t\t</Text>\n\t\t\t\t</Gradient>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t};\n\n\treturn (\n\t\t<SectionList\n\t\t\tonLayout={ onLayout }\n\t\t\ttestID={ `InserterUI-${ name }` }\n\t\t\taccessibilityLabel={ label }\n\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\tsections={ sections }\n\t\t\tinitialNumToRender={ initialNumToRender }\n\t\t\trenderItem={ renderSection }\n\t\t\trenderSectionHeader={ renderSectionHeader }\n\t\t\t{ ...listProps }\n\t\t\tcontentContainerStyle={ {\n\t\t\t\t...contentContainerStyle,\n\t\t\t\tpaddingBottom: Math.max(\n\t\t\t\t\tlistProps.safeAreaBottomInset,\n\t\t\t\t\tcontentContainerStyle.paddingBottom\n\t\t\t\t),\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
@@ -11,7 +11,7 @@ import { useDispatch } from '@wordpress/data';
11
11
  import { usePreferredColorSchemeStyle } from '@wordpress/compose';
12
12
  import { createBlocksFromInnerBlocksTemplate } from '@wordpress/blocks';
13
13
  import { __ } from '@wordpress/i18n';
14
- import { PanelBody, BottomSheet, FooterMessageControl, InserterButton } from '@wordpress/components';
14
+ import { PanelBody, BottomSheet, FooterMessageControl } from '@wordpress/components';
15
15
  import { Icon, close } from '@wordpress/icons';
16
16
 
17
17
  /**
@@ -19,6 +19,7 @@ import { Icon, close } from '@wordpress/icons';
19
19
  */
20
20
  import styles from './style.scss';
21
21
  import { store as blockEditorStore } from '../../store';
22
+ import InserterButton from '../inserter-button';
22
23
  const hitSlop = {
23
24
  top: 22,
24
25
  bottom: 22,
@@ -1 +1 @@
1
- {"version":3,"names":["ScrollView","View","Text","TouchableWithoutFeedback","Platform","useDispatch","usePreferredColorSchemeStyle","createBlocksFromInnerBlocksTemplate","__","PanelBody","BottomSheet","FooterMessageControl","InserterButton","Icon","close","styles","store","blockEditorStore","hitSlop","top","bottom","left","right","BlockVariationPicker","isVisible","onClose","clientId","variations","replaceInnerBlocks","isIOS","OS","cancelButtonStyle","cancelButton","cancelButtonDark","leftButton","createElement","onPress","style","maxFontSizeMultiplier","icon","size","closeIcon","onVariationSelect","variation","innerBlocks","title","contentStyle","testID","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","containerStyle","map","v","item","key","name","onSelect","label"],"sources":["@wordpress/block-editor/src/components/block-variation-picker/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tScrollView,\n\tView,\n\tText,\n\tTouchableWithoutFeedback,\n\tPlatform,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { createBlocksFromInnerBlocksTemplate } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tBottomSheet,\n\tFooterMessageControl,\n\tInserterButton,\n} from '@wordpress/components';\nimport { Icon, close } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport { store as blockEditorStore } from '../../store';\n\nconst hitSlop = { top: 22, bottom: 22, left: 22, right: 22 };\n\nfunction BlockVariationPicker( { isVisible, onClose, clientId, variations } ) {\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst isIOS = Platform.OS === 'ios';\n\n\tconst cancelButtonStyle = usePreferredColorSchemeStyle(\n\t\tstyles.cancelButton,\n\t\tstyles.cancelButtonDark\n\t);\n\n\tconst leftButton = (\n\t\t<TouchableWithoutFeedback onPress={ onClose } hitSlop={ hitSlop }>\n\t\t\t<View>\n\t\t\t\t{ isIOS ? (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tstyle={ cancelButtonStyle }\n\t\t\t\t\t\tmaxFontSizeMultiplier={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Text>\n\t\t\t\t) : (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\tstyle={ styles.closeIcon }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t</TouchableWithoutFeedback>\n\t);\n\n\tconst onVariationSelect = ( variation ) => {\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\tcreateBlocksFromInnerBlocksTemplate( variation.innerBlocks )\n\t\t);\n\t\tonClose();\n\t};\n\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible={ isVisible }\n\t\t\tonClose={ onClose }\n\t\t\ttitle={ __( 'Select a layout' ) }\n\t\t\tcontentStyle={ styles.contentStyle }\n\t\t\tleftButton={ leftButton }\n\t\t\ttestID=\"block-variation-modal\"\n\t\t>\n\t\t\t<ScrollView\n\t\t\t\thorizontal\n\t\t\t\tshowsHorizontalScrollIndicator={ false }\n\t\t\t\tcontentContainerStyle={ styles.contentContainerStyle }\n\t\t\t\tstyle={ styles.containerStyle }\n\t\t\t>\n\t\t\t\t{ variations.map( ( v ) => (\n\t\t\t\t\t<InserterButton\n\t\t\t\t\t\titem={ v }\n\t\t\t\t\t\tkey={ v.name }\n\t\t\t\t\t\tonSelect={ () => onVariationSelect( v ) }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ScrollView>\n\t\t\t<PanelBody>\n\t\t\t\t<FooterMessageControl\n\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t'Note: Column layout may vary between themes and screen sizes'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</BottomSheet>\n\t);\n}\n\nexport default BlockVariationPicker;\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,UAAU,EACVC,IAAI,EACJC,IAAI,EACJC,wBAAwB,EACxBC,QAAQ,QACF,cAAc;;AAErB;AACA;AACA;AACA,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,4BAA4B,QAAQ,oBAAoB;AACjE,SAASC,mCAAmC,QAAQ,mBAAmB;AACvE,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SACCC,SAAS,EACTC,WAAW,EACXC,oBAAoB,EACpBC,cAAc,QACR,uBAAuB;AAC9B,SAASC,IAAI,EAAEC,KAAK,QAAQ,kBAAkB;;AAE9C;AACA;AACA;AACA,OAAOC,MAAM,MAAM,cAAc;AACjC,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAEvD,MAAMC,OAAO,GAAG;EAAEC,GAAG,EAAE,EAAE;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAE5D,SAASC,oBAAoBA,CAAE;EAAEC,SAAS;EAAEC,OAAO;EAAEC,QAAQ;EAAEC;AAAW,CAAC,EAAG;EAC7E,MAAM;IAAEC;EAAmB,CAAC,GAAGvB,WAAW,CAAEY,gBAAiB,CAAC;EAC9D,MAAMY,KAAK,GAAGzB,QAAQ,CAAC0B,EAAE,KAAK,KAAK;EAEnC,MAAMC,iBAAiB,GAAGzB,4BAA4B,CACrDS,MAAM,CAACiB,YAAY,EACnBjB,MAAM,CAACkB,gBACR,CAAC;EAED,MAAMC,UAAU,GACfC,aAAA,CAAChC,wBAAwB;IAACiC,OAAO,EAAGX,OAAS;IAACP,OAAO,EAAGA;EAAS,GAChEiB,aAAA,CAAClC,IAAI,QACF4B,KAAK,GACNM,aAAA,CAACjC,IAAI;IACJmC,KAAK,EAAGN,iBAAmB;IAC3BO,qBAAqB,EAAG;EAAG,GAEzB9B,EAAE,CAAE,QAAS,CACV,CAAC,GAEP2B,aAAA,CAACtB,IAAI;IACJ0B,IAAI,EAAGzB,KAAO;IACd0B,IAAI,EAAG,EAAI;IACXH,KAAK,EAAGtB,MAAM,CAAC0B;EAAW,CAC1B,CAEG,CACmB,CAC1B;EAED,MAAMC,iBAAiB,GAAKC,SAAS,IAAM;IAC1Cf,kBAAkB,CACjBF,QAAQ,EACRnB,mCAAmC,CAAEoC,SAAS,CAACC,WAAY,CAC5D,CAAC;IACDnB,OAAO,CAAC,CAAC;EACV,CAAC;EAED,OACCU,aAAA,CAACzB,WAAW;IACXc,SAAS,EAAGA,SAAW;IACvBC,OAAO,EAAGA,OAAS;IACnBoB,KAAK,EAAGrC,EAAE,CAAE,iBAAkB,CAAG;IACjCsC,YAAY,EAAG/B,MAAM,CAAC+B,YAAc;IACpCZ,UAAU,EAAGA,UAAY;IACzBa,MAAM,EAAC;EAAuB,GAE9BZ,aAAA,CAACnC,UAAU;IACVgD,UAAU;IACVC,8BAA8B,EAAG,KAAO;IACxCC,qBAAqB,EAAGnC,MAAM,CAACmC,qBAAuB;IACtDb,KAAK,EAAGtB,MAAM,CAACoC;EAAgB,GAE7BxB,UAAU,CAACyB,GAAG,CAAIC,CAAC,IACpBlB,aAAA,CAACvB,cAAc;IACd0C,IAAI,EAAGD,CAAG;IACVE,GAAG,EAAGF,CAAC,CAACG,IAAM;IACdC,QAAQ,EAAGA,CAAA,KAAMf,iBAAiB,CAAEW,CAAE;EAAG,CACzC,CACA,CACS,CAAC,EACblB,aAAA,CAAC1B,SAAS,QACT0B,aAAA,CAACxB,oBAAoB;IACpB+C,KAAK,EAAGlD,EAAE,CACT,8DACD;EAAG,CACH,CACS,CACC,CAAC;AAEhB;AAEA,eAAee,oBAAoB"}
1
+ {"version":3,"names":["ScrollView","View","Text","TouchableWithoutFeedback","Platform","useDispatch","usePreferredColorSchemeStyle","createBlocksFromInnerBlocksTemplate","__","PanelBody","BottomSheet","FooterMessageControl","Icon","close","styles","store","blockEditorStore","InserterButton","hitSlop","top","bottom","left","right","BlockVariationPicker","isVisible","onClose","clientId","variations","replaceInnerBlocks","isIOS","OS","cancelButtonStyle","cancelButton","cancelButtonDark","leftButton","createElement","onPress","style","maxFontSizeMultiplier","icon","size","closeIcon","onVariationSelect","variation","innerBlocks","title","contentStyle","testID","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","containerStyle","map","v","item","key","name","onSelect","label"],"sources":["@wordpress/block-editor/src/components/block-variation-picker/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tScrollView,\n\tView,\n\tText,\n\tTouchableWithoutFeedback,\n\tPlatform,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { createBlocksFromInnerBlocksTemplate } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tBottomSheet,\n\tFooterMessageControl,\n} from '@wordpress/components';\nimport { Icon, close } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport { store as blockEditorStore } from '../../store';\nimport InserterButton from '../inserter-button';\n\nconst hitSlop = { top: 22, bottom: 22, left: 22, right: 22 };\n\nfunction BlockVariationPicker( { isVisible, onClose, clientId, variations } ) {\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst isIOS = Platform.OS === 'ios';\n\n\tconst cancelButtonStyle = usePreferredColorSchemeStyle(\n\t\tstyles.cancelButton,\n\t\tstyles.cancelButtonDark\n\t);\n\n\tconst leftButton = (\n\t\t<TouchableWithoutFeedback onPress={ onClose } hitSlop={ hitSlop }>\n\t\t\t<View>\n\t\t\t\t{ isIOS ? (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tstyle={ cancelButtonStyle }\n\t\t\t\t\t\tmaxFontSizeMultiplier={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Text>\n\t\t\t\t) : (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\tstyle={ styles.closeIcon }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t</TouchableWithoutFeedback>\n\t);\n\n\tconst onVariationSelect = ( variation ) => {\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\tcreateBlocksFromInnerBlocksTemplate( variation.innerBlocks )\n\t\t);\n\t\tonClose();\n\t};\n\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible={ isVisible }\n\t\t\tonClose={ onClose }\n\t\t\ttitle={ __( 'Select a layout' ) }\n\t\t\tcontentStyle={ styles.contentStyle }\n\t\t\tleftButton={ leftButton }\n\t\t\ttestID=\"block-variation-modal\"\n\t\t>\n\t\t\t<ScrollView\n\t\t\t\thorizontal\n\t\t\t\tshowsHorizontalScrollIndicator={ false }\n\t\t\t\tcontentContainerStyle={ styles.contentContainerStyle }\n\t\t\t\tstyle={ styles.containerStyle }\n\t\t\t>\n\t\t\t\t{ variations.map( ( v ) => (\n\t\t\t\t\t<InserterButton\n\t\t\t\t\t\titem={ v }\n\t\t\t\t\t\tkey={ v.name }\n\t\t\t\t\t\tonSelect={ () => onVariationSelect( v ) }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ScrollView>\n\t\t\t<PanelBody>\n\t\t\t\t<FooterMessageControl\n\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t'Note: Column layout may vary between themes and screen sizes'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</BottomSheet>\n\t);\n}\n\nexport default BlockVariationPicker;\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,UAAU,EACVC,IAAI,EACJC,IAAI,EACJC,wBAAwB,EACxBC,QAAQ,QACF,cAAc;;AAErB;AACA;AACA;AACA,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,4BAA4B,QAAQ,oBAAoB;AACjE,SAASC,mCAAmC,QAAQ,mBAAmB;AACvE,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SACCC,SAAS,EACTC,WAAW,EACXC,oBAAoB,QACd,uBAAuB;AAC9B,SAASC,IAAI,EAAEC,KAAK,QAAQ,kBAAkB;;AAE9C;AACA;AACA;AACA,OAAOC,MAAM,MAAM,cAAc;AACjC,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,OAAOC,cAAc,MAAM,oBAAoB;AAE/C,MAAMC,OAAO,GAAG;EAAEC,GAAG,EAAE,EAAE;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAE5D,SAASC,oBAAoBA,CAAE;EAAEC,SAAS;EAAEC,OAAO;EAAEC,QAAQ;EAAEC;AAAW,CAAC,EAAG;EAC7E,MAAM;IAAEC;EAAmB,CAAC,GAAGvB,WAAW,CAAEW,gBAAiB,CAAC;EAC9D,MAAMa,KAAK,GAAGzB,QAAQ,CAAC0B,EAAE,KAAK,KAAK;EAEnC,MAAMC,iBAAiB,GAAGzB,4BAA4B,CACrDQ,MAAM,CAACkB,YAAY,EACnBlB,MAAM,CAACmB,gBACR,CAAC;EAED,MAAMC,UAAU,GACfC,aAAA,CAAChC,wBAAwB;IAACiC,OAAO,EAAGX,OAAS;IAACP,OAAO,EAAGA;EAAS,GAChEiB,aAAA,CAAClC,IAAI,QACF4B,KAAK,GACNM,aAAA,CAACjC,IAAI;IACJmC,KAAK,EAAGN,iBAAmB;IAC3BO,qBAAqB,EAAG;EAAG,GAEzB9B,EAAE,CAAE,QAAS,CACV,CAAC,GAEP2B,aAAA,CAACvB,IAAI;IACJ2B,IAAI,EAAG1B,KAAO;IACd2B,IAAI,EAAG,EAAI;IACXH,KAAK,EAAGvB,MAAM,CAAC2B;EAAW,CAC1B,CAEG,CACmB,CAC1B;EAED,MAAMC,iBAAiB,GAAKC,SAAS,IAAM;IAC1Cf,kBAAkB,CACjBF,QAAQ,EACRnB,mCAAmC,CAAEoC,SAAS,CAACC,WAAY,CAC5D,CAAC;IACDnB,OAAO,CAAC,CAAC;EACV,CAAC;EAED,OACCU,aAAA,CAACzB,WAAW;IACXc,SAAS,EAAGA,SAAW;IACvBC,OAAO,EAAGA,OAAS;IACnBoB,KAAK,EAAGrC,EAAE,CAAE,iBAAkB,CAAG;IACjCsC,YAAY,EAAGhC,MAAM,CAACgC,YAAc;IACpCZ,UAAU,EAAGA,UAAY;IACzBa,MAAM,EAAC;EAAuB,GAE9BZ,aAAA,CAACnC,UAAU;IACVgD,UAAU;IACVC,8BAA8B,EAAG,KAAO;IACxCC,qBAAqB,EAAGpC,MAAM,CAACoC,qBAAuB;IACtDb,KAAK,EAAGvB,MAAM,CAACqC;EAAgB,GAE7BxB,UAAU,CAACyB,GAAG,CAAIC,CAAC,IACpBlB,aAAA,CAAClB,cAAc;IACdqC,IAAI,EAAGD,CAAG;IACVE,GAAG,EAAGF,CAAC,CAACG,IAAM;IACdC,QAAQ,EAAGA,CAAA,KAAMf,iBAAiB,CAAEW,CAAE;EAAG,CACzC,CACA,CACS,CAAC,EACblB,aAAA,CAAC1B,SAAS,QACT0B,aAAA,CAACxB,oBAAoB;IACpB+C,KAAK,EAAGlD,EAAE,CACT,8DACD;EAAG,CACH,CACS,CACC,CAAC;AAEhB;AAEA,eAAee,oBAAoB"}
@@ -8,24 +8,18 @@ import classnames from 'classnames';
8
8
  * WordPress dependencies
9
9
  */
10
10
  import { __ } from '@wordpress/i18n';
11
- import { BaseControl, __experimentalVStack as VStack, TabPanel, ColorPalette, GradientPicker } from '@wordpress/components';
11
+ import { BaseControl, __experimentalVStack as VStack, ColorPalette, GradientPicker, privateApis as componentsPrivateApis } from '@wordpress/components';
12
12
 
13
13
  /**
14
14
  * Internal dependencies
15
15
  */
16
16
  import { useSettings } from '../use-settings';
17
+ import { unlock } from '../../lock-unlock';
17
18
  const colorsAndGradientKeys = ['colors', 'disableCustomColors', 'gradients', 'disableCustomGradients'];
18
- const TAB_COLOR = {
19
- name: 'color',
20
- title: __('Solid'),
21
- value: 'color'
19
+ const TAB_IDS = {
20
+ color: 'color',
21
+ gradient: 'gradient'
22
22
  };
23
- const TAB_GRADIENT = {
24
- name: 'gradient',
25
- title: __('Gradient'),
26
- value: 'gradient'
27
- };
28
- const TABS_SETTINGS = [TAB_COLOR, TAB_GRADIENT];
29
23
  function ColorGradientControlInner({
30
24
  colors,
31
25
  gradients,
@@ -49,7 +43,7 @@ function ColorGradientControlInner({
49
43
  return null;
50
44
  }
51
45
  const tabPanels = {
52
- [TAB_COLOR.value]: createElement(ColorPalette, {
46
+ [TAB_IDS.color]: createElement(ColorPalette, {
53
47
  value: colorValue,
54
48
  onChange: canChooseAGradient ? newColor => {
55
49
  onColorChange(newColor);
@@ -62,7 +56,7 @@ function ColorGradientControlInner({
62
56
  enableAlpha: enableAlpha,
63
57
  headingLevel: headingLevel
64
58
  }),
65
- [TAB_GRADIENT.value]: createElement(GradientPicker, {
59
+ [TAB_IDS.gradient]: createElement(GradientPicker, {
66
60
  __nextHasNoMargin: true,
67
61
  value: gradientValue,
68
62
  onChange: canChooseAColor ? newGradient => {
@@ -79,6 +73,13 @@ function ColorGradientControlInner({
79
73
  const renderPanelType = type => createElement("div", {
80
74
  className: "block-editor-color-gradient-control__panel"
81
75
  }, tabPanels[type]);
76
+
77
+ // Unlocking `Tabs` too early causes the `unlock` method to receive an empty
78
+ // object, due to circular dependencies.
79
+ // See https://github.com/WordPress/gutenberg/issues/52692
80
+ const {
81
+ Tabs
82
+ } = unlock(componentsPrivateApis);
82
83
  return createElement(BaseControl, {
83
84
  __nextHasNoMarginBottom: true,
84
85
  className: classnames('block-editor-color-gradient-control', className)
@@ -88,11 +89,21 @@ function ColorGradientControlInner({
88
89
  spacing: 1
89
90
  }, showTitle && createElement("legend", null, createElement("div", {
90
91
  className: "block-editor-color-gradient-control__color-indicator"
91
- }, createElement(BaseControl.VisualLabel, null, label))), canChooseAColor && canChooseAGradient && createElement(TabPanel, {
92
- className: "block-editor-color-gradient-control__tabs",
93
- tabs: TABS_SETTINGS,
94
- initialTabName: gradientValue ? TAB_GRADIENT.value : !!canChooseAColor && TAB_COLOR.value
95
- }, tab => renderPanelType(tab.value)), !canChooseAGradient && renderPanelType(TAB_COLOR.value), !canChooseAColor && renderPanelType(TAB_GRADIENT.value))));
92
+ }, createElement(BaseControl.VisualLabel, null, label))), canChooseAColor && canChooseAGradient && createElement("div", null, createElement(Tabs, {
93
+ initialTabId: gradientValue ? TAB_IDS.gradient : !!canChooseAColor && TAB_IDS.color
94
+ }, createElement(Tabs.TabList, null, createElement(Tabs.Tab, {
95
+ tabId: TAB_IDS.color
96
+ }, __('Solid')), createElement(Tabs.Tab, {
97
+ tabId: TAB_IDS.gradient
98
+ }, __('Gradient'))), createElement(Tabs.TabPanel, {
99
+ tabId: TAB_IDS.color,
100
+ className: 'block-editor-color-gradient-control__panel',
101
+ focusable: false
102
+ }, tabPanels.color), createElement(Tabs.TabPanel, {
103
+ tabId: TAB_IDS.gradient,
104
+ className: 'block-editor-color-gradient-control__panel',
105
+ focusable: false
106
+ }, tabPanels.gradient))), !canChooseAGradient && renderPanelType(TAB_IDS.color), !canChooseAColor && renderPanelType(TAB_IDS.gradient))));
96
107
  }
97
108
  function ColorGradientControlSelect(props) {
98
109
  const [colors, gradients, customColors, customGradients] = useSettings('color.palette', 'color.gradients', 'color.custom', 'color.customGradient');
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","__","BaseControl","__experimentalVStack","VStack","TabPanel","ColorPalette","GradientPicker","useSettings","colorsAndGradientKeys","TAB_COLOR","name","title","value","TAB_GRADIENT","TABS_SETTINGS","ColorGradientControlInner","colors","gradients","disableCustomColors","disableCustomGradients","__experimentalIsRenderedInSidebar","className","label","onColorChange","onGradientChange","colorValue","gradientValue","clearable","showTitle","enableAlpha","headingLevel","canChooseAColor","length","canChooseAGradient","tabPanels","createElement","onChange","newColor","__nextHasNoMargin","newGradient","renderPanelType","type","__nextHasNoMarginBottom","spacing","VisualLabel","tabs","initialTabName","tab","ColorGradientControlSelect","props","customColors","customGradients","ColorGradientControl","every","key","hasOwnProperty"],"sources":["@wordpress/block-editor/src/components/colors-gradients/control.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBaseControl,\n\t__experimentalVStack as VStack,\n\tTabPanel,\n\tColorPalette,\n\tGradientPicker,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../use-settings';\n\nconst colorsAndGradientKeys = [\n\t'colors',\n\t'disableCustomColors',\n\t'gradients',\n\t'disableCustomGradients',\n];\n\nconst TAB_COLOR = {\n\tname: 'color',\n\ttitle: __( 'Solid' ),\n\tvalue: 'color',\n};\nconst TAB_GRADIENT = {\n\tname: 'gradient',\n\ttitle: __( 'Gradient' ),\n\tvalue: 'gradient',\n};\n\nconst TABS_SETTINGS = [ TAB_COLOR, TAB_GRADIENT ];\n\nfunction ColorGradientControlInner( {\n\tcolors,\n\tgradients,\n\tdisableCustomColors,\n\tdisableCustomGradients,\n\t__experimentalIsRenderedInSidebar,\n\tclassName,\n\tlabel,\n\tonColorChange,\n\tonGradientChange,\n\tcolorValue,\n\tgradientValue,\n\tclearable,\n\tshowTitle = true,\n\tenableAlpha,\n\theadingLevel,\n} ) {\n\tconst canChooseAColor =\n\t\tonColorChange &&\n\t\t( ( colors && colors.length > 0 ) || ! disableCustomColors );\n\tconst canChooseAGradient =\n\t\tonGradientChange &&\n\t\t( ( gradients && gradients.length > 0 ) || ! disableCustomGradients );\n\n\tif ( ! canChooseAColor && ! canChooseAGradient ) {\n\t\treturn null;\n\t}\n\n\tconst tabPanels = {\n\t\t[ TAB_COLOR.value ]: (\n\t\t\t<ColorPalette\n\t\t\t\tvalue={ colorValue }\n\t\t\t\tonChange={\n\t\t\t\t\tcanChooseAGradient\n\t\t\t\t\t\t? ( newColor ) => {\n\t\t\t\t\t\t\t\tonColorChange( newColor );\n\t\t\t\t\t\t\t\tonGradientChange();\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: onColorChange\n\t\t\t\t}\n\t\t\t\t{ ...{ colors, disableCustomColors } }\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tclearable={ clearable }\n\t\t\t\tenableAlpha={ enableAlpha }\n\t\t\t\theadingLevel={ headingLevel }\n\t\t\t/>\n\t\t),\n\t\t[ TAB_GRADIENT.value ]: (\n\t\t\t<GradientPicker\n\t\t\t\t__nextHasNoMargin\n\t\t\t\tvalue={ gradientValue }\n\t\t\t\tonChange={\n\t\t\t\t\tcanChooseAColor\n\t\t\t\t\t\t? ( newGradient ) => {\n\t\t\t\t\t\t\t\tonGradientChange( newGradient );\n\t\t\t\t\t\t\t\tonColorChange();\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: onGradientChange\n\t\t\t\t}\n\t\t\t\t{ ...{ gradients, disableCustomGradients } }\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tclearable={ clearable }\n\t\t\t\theadingLevel={ headingLevel }\n\t\t\t/>\n\t\t),\n\t};\n\n\tconst renderPanelType = ( type ) => (\n\t\t<div className=\"block-editor-color-gradient-control__panel\">\n\t\t\t{ tabPanels[ type ] }\n\t\t</div>\n\t);\n\n\treturn (\n\t\t<BaseControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-color-gradient-control',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t>\n\t\t\t<fieldset className=\"block-editor-color-gradient-control__fieldset\">\n\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t{ showTitle && (\n\t\t\t\t\t\t<legend>\n\t\t\t\t\t\t\t<div className=\"block-editor-color-gradient-control__color-indicator\">\n\t\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</legend>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canChooseAColor && canChooseAGradient && (\n\t\t\t\t\t\t<TabPanel\n\t\t\t\t\t\t\tclassName=\"block-editor-color-gradient-control__tabs\"\n\t\t\t\t\t\t\ttabs={ TABS_SETTINGS }\n\t\t\t\t\t\t\tinitialTabName={\n\t\t\t\t\t\t\t\tgradientValue\n\t\t\t\t\t\t\t\t\t? TAB_GRADIENT.value\n\t\t\t\t\t\t\t\t\t: !! canChooseAColor && TAB_COLOR.value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ ( tab ) => renderPanelType( tab.value ) }\n\t\t\t\t\t\t</TabPanel>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canChooseAGradient &&\n\t\t\t\t\t\trenderPanelType( TAB_COLOR.value ) }\n\t\t\t\t\t{ ! canChooseAColor &&\n\t\t\t\t\t\trenderPanelType( TAB_GRADIENT.value ) }\n\t\t\t\t</VStack>\n\t\t\t</fieldset>\n\t\t</BaseControl>\n\t);\n}\n\nfunction ColorGradientControlSelect( props ) {\n\tconst [ colors, gradients, customColors, customGradients ] = useSettings(\n\t\t'color.palette',\n\t\t'color.gradients',\n\t\t'color.custom',\n\t\t'color.customGradient'\n\t);\n\n\treturn (\n\t\t<ColorGradientControlInner\n\t\t\tcolors={ colors }\n\t\t\tgradients={ gradients }\n\t\t\tdisableCustomColors={ ! customColors }\n\t\t\tdisableCustomGradients={ ! customGradients }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nfunction ColorGradientControl( props ) {\n\tif (\n\t\tcolorsAndGradientKeys.every( ( key ) => props.hasOwnProperty( key ) )\n\t) {\n\t\treturn <ColorGradientControlInner { ...props } />;\n\t}\n\treturn <ColorGradientControlSelect { ...props } />;\n}\n\nexport default ColorGradientControl;\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","__","BaseControl","__experimentalVStack","VStack","ColorPalette","GradientPicker","privateApis","componentsPrivateApis","useSettings","unlock","colorsAndGradientKeys","TAB_IDS","color","gradient","ColorGradientControlInner","colors","gradients","disableCustomColors","disableCustomGradients","__experimentalIsRenderedInSidebar","className","label","onColorChange","onGradientChange","colorValue","gradientValue","clearable","showTitle","enableAlpha","headingLevel","canChooseAColor","length","canChooseAGradient","tabPanels","createElement","value","onChange","newColor","__nextHasNoMargin","newGradient","renderPanelType","type","Tabs","__nextHasNoMarginBottom","spacing","VisualLabel","initialTabId","TabList","Tab","tabId","TabPanel","focusable","ColorGradientControlSelect","props","customColors","customGradients","ColorGradientControl","every","key","hasOwnProperty"],"sources":["@wordpress/block-editor/src/components/colors-gradients/control.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBaseControl,\n\t__experimentalVStack as VStack,\n\tColorPalette,\n\tGradientPicker,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../use-settings';\nimport { unlock } from '../../lock-unlock';\n\nconst colorsAndGradientKeys = [\n\t'colors',\n\t'disableCustomColors',\n\t'gradients',\n\t'disableCustomGradients',\n];\n\nconst TAB_IDS = { color: 'color', gradient: 'gradient' };\n\nfunction ColorGradientControlInner( {\n\tcolors,\n\tgradients,\n\tdisableCustomColors,\n\tdisableCustomGradients,\n\t__experimentalIsRenderedInSidebar,\n\tclassName,\n\tlabel,\n\tonColorChange,\n\tonGradientChange,\n\tcolorValue,\n\tgradientValue,\n\tclearable,\n\tshowTitle = true,\n\tenableAlpha,\n\theadingLevel,\n} ) {\n\tconst canChooseAColor =\n\t\tonColorChange &&\n\t\t( ( colors && colors.length > 0 ) || ! disableCustomColors );\n\tconst canChooseAGradient =\n\t\tonGradientChange &&\n\t\t( ( gradients && gradients.length > 0 ) || ! disableCustomGradients );\n\n\tif ( ! canChooseAColor && ! canChooseAGradient ) {\n\t\treturn null;\n\t}\n\n\tconst tabPanels = {\n\t\t[ TAB_IDS.color ]: (\n\t\t\t<ColorPalette\n\t\t\t\tvalue={ colorValue }\n\t\t\t\tonChange={\n\t\t\t\t\tcanChooseAGradient\n\t\t\t\t\t\t? ( newColor ) => {\n\t\t\t\t\t\t\t\tonColorChange( newColor );\n\t\t\t\t\t\t\t\tonGradientChange();\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: onColorChange\n\t\t\t\t}\n\t\t\t\t{ ...{ colors, disableCustomColors } }\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tclearable={ clearable }\n\t\t\t\tenableAlpha={ enableAlpha }\n\t\t\t\theadingLevel={ headingLevel }\n\t\t\t/>\n\t\t),\n\t\t[ TAB_IDS.gradient ]: (\n\t\t\t<GradientPicker\n\t\t\t\t__nextHasNoMargin\n\t\t\t\tvalue={ gradientValue }\n\t\t\t\tonChange={\n\t\t\t\t\tcanChooseAColor\n\t\t\t\t\t\t? ( newGradient ) => {\n\t\t\t\t\t\t\t\tonGradientChange( newGradient );\n\t\t\t\t\t\t\t\tonColorChange();\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: onGradientChange\n\t\t\t\t}\n\t\t\t\t{ ...{ gradients, disableCustomGradients } }\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tclearable={ clearable }\n\t\t\t\theadingLevel={ headingLevel }\n\t\t\t/>\n\t\t),\n\t};\n\n\tconst renderPanelType = ( type ) => (\n\t\t<div className=\"block-editor-color-gradient-control__panel\">\n\t\t\t{ tabPanels[ type ] }\n\t\t</div>\n\t);\n\n\t// Unlocking `Tabs` too early causes the `unlock` method to receive an empty\n\t// object, due to circular dependencies.\n\t// See https://github.com/WordPress/gutenberg/issues/52692\n\tconst { Tabs } = unlock( componentsPrivateApis );\n\n\treturn (\n\t\t<BaseControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-color-gradient-control',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t>\n\t\t\t<fieldset className=\"block-editor-color-gradient-control__fieldset\">\n\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t{ showTitle && (\n\t\t\t\t\t\t<legend>\n\t\t\t\t\t\t\t<div className=\"block-editor-color-gradient-control__color-indicator\">\n\t\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</legend>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canChooseAColor && canChooseAGradient && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<Tabs\n\t\t\t\t\t\t\t\tinitialTabId={\n\t\t\t\t\t\t\t\t\tgradientValue\n\t\t\t\t\t\t\t\t\t\t? TAB_IDS.gradient\n\t\t\t\t\t\t\t\t\t\t: !! canChooseAColor && TAB_IDS.color\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t\t\t\t<Tabs.Tab tabId={ TAB_IDS.color }>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Solid' ) }\n\t\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t\t\t<Tabs.Tab tabId={ TAB_IDS.gradient }>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Gradient' ) }\n\t\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\ttabId={ TAB_IDS.color }\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t'block-editor-color-gradient-control__panel'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ tabPanels.color }\n\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\ttabId={ TAB_IDS.gradient }\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t'block-editor-color-gradient-control__panel'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ tabPanels.gradient }\n\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t</Tabs>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! canChooseAGradient && renderPanelType( TAB_IDS.color ) }\n\t\t\t\t\t{ ! canChooseAColor && renderPanelType( TAB_IDS.gradient ) }\n\t\t\t\t</VStack>\n\t\t\t</fieldset>\n\t\t</BaseControl>\n\t);\n}\n\nfunction ColorGradientControlSelect( props ) {\n\tconst [ colors, gradients, customColors, customGradients ] = useSettings(\n\t\t'color.palette',\n\t\t'color.gradients',\n\t\t'color.custom',\n\t\t'color.customGradient'\n\t);\n\n\treturn (\n\t\t<ColorGradientControlInner\n\t\t\tcolors={ colors }\n\t\t\tgradients={ gradients }\n\t\t\tdisableCustomColors={ ! customColors }\n\t\t\tdisableCustomGradients={ ! customGradients }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nfunction ColorGradientControl( props ) {\n\tif (\n\t\tcolorsAndGradientKeys.every( ( key ) => props.hasOwnProperty( key ) )\n\t) {\n\t\treturn <ColorGradientControlInner { ...props } />;\n\t}\n\treturn <ColorGradientControlSelect { ...props } />;\n}\n\nexport default ColorGradientControl;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SACCC,WAAW,EACXC,oBAAoB,IAAIC,MAAM,EAC9BC,YAAY,EACZC,cAAc,EACdC,WAAW,IAAIC,qBAAqB,QAC9B,uBAAuB;;AAE9B;AACA;AACA;AACA,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAMC,qBAAqB,GAAG,CAC7B,QAAQ,EACR,qBAAqB,EACrB,WAAW,EACX,wBAAwB,CACxB;AAED,MAAMC,OAAO,GAAG;EAAEC,KAAK,EAAE,OAAO;EAAEC,QAAQ,EAAE;AAAW,CAAC;AAExD,SAASC,yBAAyBA,CAAE;EACnCC,MAAM;EACNC,SAAS;EACTC,mBAAmB;EACnBC,sBAAsB;EACtBC,iCAAiC;EACjCC,SAAS;EACTC,KAAK;EACLC,aAAa;EACbC,gBAAgB;EAChBC,UAAU;EACVC,aAAa;EACbC,SAAS;EACTC,SAAS,GAAG,IAAI;EAChBC,WAAW;EACXC;AACD,CAAC,EAAG;EACH,MAAMC,eAAe,GACpBR,aAAa,KACTP,MAAM,IAAIA,MAAM,CAACgB,MAAM,GAAG,CAAC,IAAM,CAAEd,mBAAmB,CAAE;EAC7D,MAAMe,kBAAkB,GACvBT,gBAAgB,KACZP,SAAS,IAAIA,SAAS,CAACe,MAAM,GAAG,CAAC,IAAM,CAAEb,sBAAsB,CAAE;EAEtE,IAAK,CAAEY,eAAe,IAAI,CAAEE,kBAAkB,EAAG;IAChD,OAAO,IAAI;EACZ;EAEA,MAAMC,SAAS,GAAG;IACjB,CAAEtB,OAAO,CAACC,KAAK,GACdsB,aAAA,CAAC9B,YAAY;MACZ+B,KAAK,EAAGX,UAAY;MACpBY,QAAQ,EACPJ,kBAAkB,GACbK,QAAQ,IAAM;QAChBf,aAAa,CAAEe,QAAS,CAAC;QACzBd,gBAAgB,CAAC,CAAC;MAClB,CAAC,GACDD,aACH;MACMP,MAAM;MAAEE,mBAAmB;MAClCE,iCAAiC,EAChCA,iCACA;MACDO,SAAS,EAAGA,SAAW;MACvBE,WAAW,EAAGA,WAAa;MAC3BC,YAAY,EAAGA;IAAc,CAC7B,CACD;IACD,CAAElB,OAAO,CAACE,QAAQ,GACjBqB,aAAA,CAAC7B,cAAc;MACdiC,iBAAiB;MACjBH,KAAK,EAAGV,aAAe;MACvBW,QAAQ,EACPN,eAAe,GACVS,WAAW,IAAM;QACnBhB,gBAAgB,CAAEgB,WAAY,CAAC;QAC/BjB,aAAa,CAAC,CAAC;MACf,CAAC,GACDC,gBACH;MACMP,SAAS;MAAEE,sBAAsB;MACxCC,iCAAiC,EAChCA,iCACA;MACDO,SAAS,EAAGA,SAAW;MACvBG,YAAY,EAAGA;IAAc,CAC7B;EAEH,CAAC;EAED,MAAMW,eAAe,GAAKC,IAAI,IAC7BP,aAAA;IAAKd,SAAS,EAAC;EAA4C,GACxDa,SAAS,CAAEQ,IAAI,CACb,CACL;;EAED;EACA;EACA;EACA,MAAM;IAAEC;EAAK,CAAC,GAAGjC,MAAM,CAAEF,qBAAsB,CAAC;EAEhD,OACC2B,aAAA,CAACjC,WAAW;IACX0C,uBAAuB;IACvBvB,SAAS,EAAGrB,UAAU,CACrB,qCAAqC,EACrCqB,SACD;EAAG,GAEHc,aAAA;IAAUd,SAAS,EAAC;EAA+C,GAClEc,aAAA,CAAC/B,MAAM;IAACyC,OAAO,EAAG;EAAG,GAClBjB,SAAS,IACVO,aAAA,iBACCA,aAAA;IAAKd,SAAS,EAAC;EAAsD,GACpEc,aAAA,CAACjC,WAAW,CAAC4C,WAAW,QACrBxB,KACsB,CACrB,CACE,CACR,EACCS,eAAe,IAAIE,kBAAkB,IACtCE,aAAA,cACCA,aAAA,CAACQ,IAAI;IACJI,YAAY,EACXrB,aAAa,GACVd,OAAO,CAACE,QAAQ,GAChB,CAAC,CAAEiB,eAAe,IAAInB,OAAO,CAACC;EACjC,GAEDsB,aAAA,CAACQ,IAAI,CAACK,OAAO,QACZb,aAAA,CAACQ,IAAI,CAACM,GAAG;IAACC,KAAK,EAAGtC,OAAO,CAACC;EAAO,GAC9BZ,EAAE,CAAE,OAAQ,CACL,CAAC,EACXkC,aAAA,CAACQ,IAAI,CAACM,GAAG;IAACC,KAAK,EAAGtC,OAAO,CAACE;EAAU,GACjCb,EAAE,CAAE,UAAW,CACR,CACG,CAAC,EACfkC,aAAA,CAACQ,IAAI,CAACQ,QAAQ;IACbD,KAAK,EAAGtC,OAAO,CAACC,KAAO;IACvBQ,SAAS,EACR,4CACA;IACD+B,SAAS,EAAG;EAAO,GAEjBlB,SAAS,CAACrB,KACE,CAAC,EAChBsB,aAAA,CAACQ,IAAI,CAACQ,QAAQ;IACbD,KAAK,EAAGtC,OAAO,CAACE,QAAU;IAC1BO,SAAS,EACR,4CACA;IACD+B,SAAS,EAAG;EAAO,GAEjBlB,SAAS,CAACpB,QACE,CACV,CACF,CACL,EAEC,CAAEmB,kBAAkB,IAAIQ,eAAe,CAAE7B,OAAO,CAACC,KAAM,CAAC,EACxD,CAAEkB,eAAe,IAAIU,eAAe,CAAE7B,OAAO,CAACE,QAAS,CAClD,CACC,CACE,CAAC;AAEhB;AAEA,SAASuC,0BAA0BA,CAAEC,KAAK,EAAG;EAC5C,MAAM,CAAEtC,MAAM,EAAEC,SAAS,EAAEsC,YAAY,EAAEC,eAAe,CAAE,GAAG/C,WAAW,CACvE,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,sBACD,CAAC;EAED,OACC0B,aAAA,CAACpB,yBAAyB;IACzBC,MAAM,EAAGA,MAAQ;IACjBC,SAAS,EAAGA,SAAW;IACvBC,mBAAmB,EAAG,CAAEqC,YAAc;IACtCpC,sBAAsB,EAAG,CAAEqC,eAAiB;IAAA,GACvCF;EAAK,CACV,CAAC;AAEJ;AAEA,SAASG,oBAAoBA,CAAEH,KAAK,EAAG;EACtC,IACC3C,qBAAqB,CAAC+C,KAAK,CAAIC,GAAG,IAAML,KAAK,CAACM,cAAc,CAAED,GAAI,CAAE,CAAC,EACpE;IACD,OAAOxB,aAAA,CAACpB,yBAAyB;MAAA,GAAMuC;IAAK,CAAI,CAAC;EAClD;EACA,OAAOnB,aAAA,CAACkB,0BAA0B;IAAA,GAAMC;EAAK,CAAI,CAAC;AACnD;AAEA,eAAeG,oBAAoB"}
@@ -60,10 +60,7 @@ function DuotoneControl({
60
60
  },
61
61
  renderContent: () => createElement(MenuGroup, {
62
62
  label: __('Duotone')
63
- }, createElement("div", {
64
- id: descriptionId,
65
- className: "block-editor-duotone-control__description"
66
- }, __('Create a two-tone color effect without losing your original image.')), createElement(DuotonePicker, {
63
+ }, createElement("p", null, __('Create a two-tone color effect without losing your original image.')), createElement(DuotonePicker, {
67
64
  "aria-label": actionLabel,
68
65
  "aria-describedby": descriptionId,
69
66
  colorPalette: colorPalette,
@@ -1 +1 @@
1
- {"version":3,"names":["ColorIndicator","Dropdown","DuotonePicker","DuotoneSwatch","MenuGroup","ToolbarButton","__","DOWN","Icon","filter","useInstanceId","DuotoneControl","id","idProp","colorPalette","duotonePalette","disableCustomColors","disableCustomDuotone","value","onChange","toolbarIcon","createElement","className","values","icon","actionLabel","descriptionId","popoverProps","headerTitle","renderToggle","isOpen","onToggle","openOnArrowDown","event","keyCode","preventDefault","showTooltip","onClick","onKeyDown","label","renderContent"],"sources":["@wordpress/block-editor/src/components/duotone-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tColorIndicator,\n\tDropdown,\n\tDuotonePicker,\n\tDuotoneSwatch,\n\tMenuGroup,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport { Icon, filter } from '@wordpress/icons';\nimport { useInstanceId } from '@wordpress/compose';\n\nfunction DuotoneControl( {\n\tid: idProp,\n\tcolorPalette,\n\tduotonePalette,\n\tdisableCustomColors,\n\tdisableCustomDuotone,\n\tvalue,\n\tonChange,\n} ) {\n\tlet toolbarIcon;\n\tif ( value === 'unset' ) {\n\t\ttoolbarIcon = (\n\t\t\t<ColorIndicator className=\"block-editor-duotone-control__unset-indicator\" />\n\t\t);\n\t} else if ( value ) {\n\t\ttoolbarIcon = <DuotoneSwatch values={ value } />;\n\t} else {\n\t\ttoolbarIcon = <Icon icon={ filter } />;\n\t}\n\n\tconst actionLabel = __( 'Apply duotone filter' );\n\tconst id = useInstanceId( DuotoneControl, 'duotone-control', idProp );\n\tconst descriptionId = `${ id }__description`;\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ {\n\t\t\t\tclassName: 'block-editor-duotone-control__popover',\n\t\t\t\theaderTitle: __( 'Duotone' ),\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tonToggle();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\treturn (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\tlabel={ actionLabel }\n\t\t\t\t\t\ticon={ toolbarIcon }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<MenuGroup label={ __( 'Duotone' ) }>\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\tclassName=\"block-editor-duotone-control__description\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\taria-label={ actionLabel }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\tdisableCustomColors={ disableCustomColors }\n\t\t\t\t\t\tdisableCustomDuotone={ disableCustomDuotone }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default DuotoneControl;\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,cAAc,EACdC,QAAQ,EACRC,aAAa,EACbC,aAAa,EACbC,SAAS,EACTC,aAAa,QACP,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,IAAI,QAAQ,qBAAqB;AAC1C,SAASC,IAAI,EAAEC,MAAM,QAAQ,kBAAkB;AAC/C,SAASC,aAAa,QAAQ,oBAAoB;AAElD,SAASC,cAAcA,CAAE;EACxBC,EAAE,EAAEC,MAAM;EACVC,YAAY;EACZC,cAAc;EACdC,mBAAmB;EACnBC,oBAAoB;EACpBC,KAAK;EACLC;AACD,CAAC,EAAG;EACH,IAAIC,WAAW;EACf,IAAKF,KAAK,KAAK,OAAO,EAAG;IACxBE,WAAW,GACVC,aAAA,CAACrB,cAAc;MAACsB,SAAS,EAAC;IAA+C,CAAE,CAC3E;EACF,CAAC,MAAM,IAAKJ,KAAK,EAAG;IACnBE,WAAW,GAAGC,aAAA,CAAClB,aAAa;MAACoB,MAAM,EAAGL;IAAO,CAAE,CAAC;EACjD,CAAC,MAAM;IACNE,WAAW,GAAGC,aAAA,CAACb,IAAI;MAACgB,IAAI,EAAGf;IAAQ,CAAE,CAAC;EACvC;EAEA,MAAMgB,WAAW,GAAGnB,EAAE,CAAE,sBAAuB,CAAC;EAChD,MAAMM,EAAE,GAAGF,aAAa,CAAEC,cAAc,EAAE,iBAAiB,EAAEE,MAAO,CAAC;EACrE,MAAMa,aAAa,GAAI,GAAGd,EAAI,eAAc;EAE5C,OACCS,aAAA,CAACpB,QAAQ;IACR0B,YAAY,EAAG;MACdL,SAAS,EAAE,uCAAuC;MAClDM,WAAW,EAAEtB,EAAE,CAAE,SAAU;IAC5B,CAAG;IACHuB,YAAY,EAAGA,CAAE;MAAEC,MAAM;MAAEC;IAAS,CAAC,KAAM;MAC1C,MAAMC,eAAe,GAAKC,KAAK,IAAM;QACpC,IAAK,CAAEH,MAAM,IAAIG,KAAK,CAACC,OAAO,KAAK3B,IAAI,EAAG;UACzC0B,KAAK,CAACE,cAAc,CAAC,CAAC;UACtBJ,QAAQ,CAAC,CAAC;QACX;MACD,CAAC;MACD,OACCV,aAAA,CAAChB,aAAa;QACb+B,WAAW;QACXC,OAAO,EAAGN,QAAU;QACpB,iBAAc,MAAM;QACpB,iBAAgBD,MAAQ;QACxBQ,SAAS,EAAGN,eAAiB;QAC7BO,KAAK,EAAGd,WAAa;QACrBD,IAAI,EAAGJ;MAAa,CACpB,CAAC;IAEJ,CAAG;IACHoB,aAAa,EAAGA,CAAA,KACfnB,aAAA,CAACjB,SAAS;MAACmC,KAAK,EAAGjC,EAAE,CAAE,SAAU;IAAG,GACnCe,aAAA;MACCT,EAAE,EAAGc,aAAe;MACpBJ,SAAS,EAAC;IAA2C,GAEnDhB,EAAE,CACH,oEACD,CACI,CAAC,EACNe,aAAA,CAACnB,aAAa;MACb,cAAauB,WAAa;MAC1B,oBAAmBC,aAAe;MAClCZ,YAAY,EAAGA,YAAc;MAC7BC,cAAc,EAAGA,cAAgB;MACjCC,mBAAmB,EAAGA,mBAAqB;MAC3CC,oBAAoB,EAAGA,oBAAsB;MAC7CC,KAAK,EAAGA,KAAO;MACfC,QAAQ,EAAGA;IAAU,CACrB,CACS;EACT,CACH,CAAC;AAEJ;AAEA,eAAeR,cAAc"}
1
+ {"version":3,"names":["ColorIndicator","Dropdown","DuotonePicker","DuotoneSwatch","MenuGroup","ToolbarButton","__","DOWN","Icon","filter","useInstanceId","DuotoneControl","id","idProp","colorPalette","duotonePalette","disableCustomColors","disableCustomDuotone","value","onChange","toolbarIcon","createElement","className","values","icon","actionLabel","descriptionId","popoverProps","headerTitle","renderToggle","isOpen","onToggle","openOnArrowDown","event","keyCode","preventDefault","showTooltip","onClick","onKeyDown","label","renderContent"],"sources":["@wordpress/block-editor/src/components/duotone-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tColorIndicator,\n\tDropdown,\n\tDuotonePicker,\n\tDuotoneSwatch,\n\tMenuGroup,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport { Icon, filter } from '@wordpress/icons';\nimport { useInstanceId } from '@wordpress/compose';\n\nfunction DuotoneControl( {\n\tid: idProp,\n\tcolorPalette,\n\tduotonePalette,\n\tdisableCustomColors,\n\tdisableCustomDuotone,\n\tvalue,\n\tonChange,\n} ) {\n\tlet toolbarIcon;\n\tif ( value === 'unset' ) {\n\t\ttoolbarIcon = (\n\t\t\t<ColorIndicator className=\"block-editor-duotone-control__unset-indicator\" />\n\t\t);\n\t} else if ( value ) {\n\t\ttoolbarIcon = <DuotoneSwatch values={ value } />;\n\t} else {\n\t\ttoolbarIcon = <Icon icon={ filter } />;\n\t}\n\n\tconst actionLabel = __( 'Apply duotone filter' );\n\tconst id = useInstanceId( DuotoneControl, 'duotone-control', idProp );\n\tconst descriptionId = `${ id }__description`;\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ {\n\t\t\t\tclassName: 'block-editor-duotone-control__popover',\n\t\t\t\theaderTitle: __( 'Duotone' ),\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tonToggle();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\treturn (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\tlabel={ actionLabel }\n\t\t\t\t\t\ticon={ toolbarIcon }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<MenuGroup label={ __( 'Duotone' ) }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\taria-label={ actionLabel }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\tdisableCustomColors={ disableCustomColors }\n\t\t\t\t\t\tdisableCustomDuotone={ disableCustomDuotone }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default DuotoneControl;\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,cAAc,EACdC,QAAQ,EACRC,aAAa,EACbC,aAAa,EACbC,SAAS,EACTC,aAAa,QACP,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,IAAI,QAAQ,qBAAqB;AAC1C,SAASC,IAAI,EAAEC,MAAM,QAAQ,kBAAkB;AAC/C,SAASC,aAAa,QAAQ,oBAAoB;AAElD,SAASC,cAAcA,CAAE;EACxBC,EAAE,EAAEC,MAAM;EACVC,YAAY;EACZC,cAAc;EACdC,mBAAmB;EACnBC,oBAAoB;EACpBC,KAAK;EACLC;AACD,CAAC,EAAG;EACH,IAAIC,WAAW;EACf,IAAKF,KAAK,KAAK,OAAO,EAAG;IACxBE,WAAW,GACVC,aAAA,CAACrB,cAAc;MAACsB,SAAS,EAAC;IAA+C,CAAE,CAC3E;EACF,CAAC,MAAM,IAAKJ,KAAK,EAAG;IACnBE,WAAW,GAAGC,aAAA,CAAClB,aAAa;MAACoB,MAAM,EAAGL;IAAO,CAAE,CAAC;EACjD,CAAC,MAAM;IACNE,WAAW,GAAGC,aAAA,CAACb,IAAI;MAACgB,IAAI,EAAGf;IAAQ,CAAE,CAAC;EACvC;EAEA,MAAMgB,WAAW,GAAGnB,EAAE,CAAE,sBAAuB,CAAC;EAChD,MAAMM,EAAE,GAAGF,aAAa,CAAEC,cAAc,EAAE,iBAAiB,EAAEE,MAAO,CAAC;EACrE,MAAMa,aAAa,GAAI,GAAGd,EAAI,eAAc;EAE5C,OACCS,aAAA,CAACpB,QAAQ;IACR0B,YAAY,EAAG;MACdL,SAAS,EAAE,uCAAuC;MAClDM,WAAW,EAAEtB,EAAE,CAAE,SAAU;IAC5B,CAAG;IACHuB,YAAY,EAAGA,CAAE;MAAEC,MAAM;MAAEC;IAAS,CAAC,KAAM;MAC1C,MAAMC,eAAe,GAAKC,KAAK,IAAM;QACpC,IAAK,CAAEH,MAAM,IAAIG,KAAK,CAACC,OAAO,KAAK3B,IAAI,EAAG;UACzC0B,KAAK,CAACE,cAAc,CAAC,CAAC;UACtBJ,QAAQ,CAAC,CAAC;QACX;MACD,CAAC;MACD,OACCV,aAAA,CAAChB,aAAa;QACb+B,WAAW;QACXC,OAAO,EAAGN,QAAU;QACpB,iBAAc,MAAM;QACpB,iBAAgBD,MAAQ;QACxBQ,SAAS,EAAGN,eAAiB;QAC7BO,KAAK,EAAGd,WAAa;QACrBD,IAAI,EAAGJ;MAAa,CACpB,CAAC;IAEJ,CAAG;IACHoB,aAAa,EAAGA,CAAA,KACfnB,aAAA,CAACjB,SAAS;MAACmC,KAAK,EAAGjC,EAAE,CAAE,SAAU;IAAG,GACnCe,aAAA,YACGf,EAAE,CACH,oEACD,CACE,CAAC,EACJe,aAAA,CAACnB,aAAa;MACb,cAAauB,WAAa;MAC1B,oBAAmBC,aAAe;MAClCZ,YAAY,EAAGA,YAAc;MAC7BC,cAAc,EAAGA,cAAgB;MACjCC,mBAAmB,EAAGA,mBAAqB;MAC3CC,oBAAoB,EAAGA,oBAAsB;MAC7CC,KAAK,EAAGA,KAAO;MACfC,QAAQ,EAAGA;IAAU,CACrB,CACS;EACT,CACH,CAAC;AAEJ;AAEA,eAAeR,cAAc"}
@@ -7,7 +7,7 @@ import classnames from 'classnames';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
- import { __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalHStack as HStack, __experimentalZStack as ZStack, __experimentalDropdownContentWrapper as DropdownContentWrapper, TabPanel, ColorIndicator, Flex, FlexItem, Dropdown, Button } from '@wordpress/components';
10
+ import { __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalHStack as HStack, __experimentalZStack as ZStack, __experimentalDropdownContentWrapper as DropdownContentWrapper, ColorIndicator, Flex, FlexItem, Dropdown, Button, privateApis as componentsPrivateApis } from '@wordpress/components';
11
11
  import { useCallback } from '@wordpress/element';
12
12
  import { __, sprintf } from '@wordpress/i18n';
13
13
 
@@ -18,6 +18,7 @@ import ColorGradientControl from '../colors-gradients/control';
18
18
  import { useColorsPerOrigin, useGradientsPerOrigin } from './hooks';
19
19
  import { getValueFromVariable } from './utils';
20
20
  import { setImmutably } from '../../utils/object';
21
+ import { unlock } from '../../lock-unlock';
21
22
  export function useHasColorPanel(settings) {
22
23
  const hasTextPanel = useHasTextPanel(settings);
23
24
  const hasBackgroundPanel = useHasBackgroundPanel(settings);
@@ -137,15 +138,13 @@ function ColorPanelDropdown({
137
138
  colorGradientControlSettings,
138
139
  panelId
139
140
  }) {
140
- const tabConfigs = tabs.map(({
141
- key,
142
- label: tabLabel
143
- }) => {
144
- return {
145
- name: key,
146
- title: tabLabel
147
- };
148
- });
141
+ const currentTab = tabs.find(tab => tab.userValue !== undefined);
142
+ // Unlocking `Tabs` too early causes the `unlock` method to receive an empty
143
+ // object, due to circular dependencies.
144
+ // See https://github.com/WordPress/gutenberg/issues/52692
145
+ const {
146
+ Tabs
147
+ } = unlock(componentsPrivateApis);
149
148
  return createElement(ToolsPanelItem, {
150
149
  className: "block-editor-tools-panel-color-gradient-settings__item",
151
150
  hasValue: hasValue,
@@ -183,18 +182,21 @@ function ColorPanelDropdown({
183
182
  }, tabs.length === 1 && createElement(ColorPanelTab, {
184
183
  ...tabs[0],
185
184
  colorGradientControlSettings: colorGradientControlSettings
186
- }), tabs.length > 1 && createElement(TabPanel, {
187
- tabs: tabConfigs
188
- }, tab => {
189
- const selectedTab = tabs.find(t => t.key === tab.name);
190
- if (!selectedTab) {
191
- return null;
192
- }
193
- return createElement(ColorPanelTab, {
194
- ...selectedTab,
185
+ }), tabs.length > 1 && createElement(Tabs, {
186
+ initialTabId: currentTab?.key
187
+ }, createElement(Tabs.TabList, null, tabs.map(tab => createElement(Tabs.Tab, {
188
+ key: tab.key,
189
+ tabId: tab.key
190
+ }, tab.label))), tabs.map(tab => {
191
+ return createElement(Tabs.TabPanel, {
192
+ key: tab.key,
193
+ tabId: tab.key,
194
+ focusable: false
195
+ }, createElement(ColorPanelTab, {
196
+ ...tab,
195
197
  colorGradientControlSettings: colorGradientControlSettings
196
- });
197
- })))
198
+ }));
199
+ }))))
198
200
  }));
199
201
  }
200
202
  export default function ColorPanel({