@wordpress/block-editor 8.0.13 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE.md +1 -1
  3. package/README.md +12 -1
  4. package/build/components/block-caption/index.native.js +14 -3
  5. package/build/components/block-caption/index.native.js.map +1 -1
  6. package/build/components/block-edit/index.js +9 -0
  7. package/build/components/block-edit/index.js.map +1 -1
  8. package/build/components/block-inspector/index.js +8 -20
  9. package/build/components/block-inspector/index.js.map +1 -1
  10. package/build/components/block-list-appender/index.js +3 -11
  11. package/build/components/block-list-appender/index.js.map +1 -1
  12. package/build/components/block-media-update-progress/index.native.js +2 -1
  13. package/build/components/block-media-update-progress/index.native.js.map +1 -1
  14. package/build/components/block-preview/auto.js +30 -6
  15. package/build/components/block-preview/auto.js.map +1 -1
  16. package/build/components/block-settings/container.native.js +2 -1
  17. package/build/components/block-settings/container.native.js.map +1 -1
  18. package/build/components/block-styles/index.js +110 -134
  19. package/build/components/block-styles/index.js.map +1 -1
  20. package/build/components/block-styles/menu-items.js +63 -0
  21. package/build/components/block-styles/menu-items.js.map +1 -0
  22. package/build/components/block-styles/preview-panel.js +45 -0
  23. package/build/components/block-styles/preview-panel.js.map +1 -0
  24. package/build/components/block-styles/preview.native.js +2 -2
  25. package/build/components/block-styles/preview.native.js.map +1 -1
  26. package/build/components/block-styles/use-styles-for-block.js +119 -0
  27. package/build/components/block-styles/use-styles-for-block.js.map +1 -0
  28. package/build/components/block-styles/utils.js +39 -0
  29. package/build/components/block-styles/utils.js.map +1 -1
  30. package/build/components/block-switcher/block-styles-menu.js +3 -23
  31. package/build/components/block-switcher/block-styles-menu.js.map +1 -1
  32. package/build/components/block-tools/back-compat.js +2 -1
  33. package/build/components/block-tools/back-compat.js.map +1 -1
  34. package/build/components/block-tools/block-selection-button.js +5 -1
  35. package/build/components/block-tools/block-selection-button.js.map +1 -1
  36. package/build/components/block-tools/insertion-point.js +11 -1
  37. package/build/components/block-tools/insertion-point.js.map +1 -1
  38. package/build/components/block-types-list/index.native.js +2 -2
  39. package/build/components/block-types-list/index.native.js.map +1 -1
  40. package/build/components/button-block-appender/index.js +2 -1
  41. package/build/components/button-block-appender/index.js.map +1 -1
  42. package/build/components/colors-gradients/dropdown.js +88 -0
  43. package/build/components/colors-gradients/dropdown.js.map +1 -0
  44. package/build/components/colors-gradients/panel-color-gradient-settings.js +6 -5
  45. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  46. package/build/components/colors-gradients/panel-color-gradient-settings.native.js +6 -3
  47. package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  48. package/build/components/contrast-checker/index.js +34 -9
  49. package/build/components/contrast-checker/index.js.map +1 -1
  50. package/build/components/contrast-checker/index.native.js +108 -0
  51. package/build/components/contrast-checker/index.native.js.map +1 -0
  52. package/build/components/default-block-appender/index.js +16 -19
  53. package/build/components/default-block-appender/index.js.map +1 -1
  54. package/build/components/default-style-picker/index.js +18 -3
  55. package/build/components/default-style-picker/index.js.map +1 -1
  56. package/build/components/font-appearance-control/index.js +11 -11
  57. package/build/components/font-appearance-control/index.js.map +1 -1
  58. package/build/components/iframe/index.js +6 -9
  59. package/build/components/iframe/index.js.map +1 -1
  60. package/build/components/index.js +18 -9
  61. package/build/components/index.js.map +1 -1
  62. package/build/components/index.native.js +9 -0
  63. package/build/components/index.native.js.map +1 -1
  64. package/build/components/inner-blocks/default-block-appender.js +2 -4
  65. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  66. package/build/components/inner-blocks/use-nested-settings-update.js +16 -14
  67. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  68. package/build/components/inserter/index.js +61 -3
  69. package/build/components/inserter/index.js.map +1 -1
  70. package/build/components/inserter/index.native.js +1 -1
  71. package/build/components/inserter/index.native.js.map +1 -1
  72. package/build/components/inserter/library.js +5 -3
  73. package/build/components/inserter/library.js.map +1 -1
  74. package/build/components/inserter/menu.js +11 -3
  75. package/build/components/inserter/menu.js.map +1 -1
  76. package/build/components/inserter/tabs.native.js +7 -4
  77. package/build/components/inserter/tabs.native.js.map +1 -1
  78. package/build/components/inspector-controls/block-support-slot-container.js +2 -1
  79. package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
  80. package/build/components/inspector-controls/block-support-tools-panel.js +11 -43
  81. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  82. package/build/components/inspector-controls/fill.native.js +3 -5
  83. package/build/components/inspector-controls/fill.native.js.map +1 -1
  84. package/build/components/inspector-controls/groups.js +2 -0
  85. package/build/components/inspector-controls/groups.js.map +1 -1
  86. package/build/components/inspector-controls/slot.js +1 -3
  87. package/build/components/inspector-controls/slot.js.map +1 -1
  88. package/build/components/letter-spacing-control/index.js +6 -6
  89. package/build/components/letter-spacing-control/index.js.map +1 -1
  90. package/build/components/link-control/link-preview.js +1 -1
  91. package/build/components/link-control/link-preview.js.map +1 -1
  92. package/build/components/link-control/search-item.js +11 -1
  93. package/build/components/link-control/search-item.js.map +1 -1
  94. package/build/components/link-control/search-results.js +2 -1
  95. package/build/components/link-control/search-results.js.map +1 -1
  96. package/build/components/link-control/use-search-handler.js +18 -5
  97. package/build/components/link-control/use-search-handler.js.map +1 -1
  98. package/build/components/list-view/block-select-button.js +23 -3
  99. package/build/components/list-view/block-select-button.js.map +1 -1
  100. package/build/components/list-view/block.js +8 -0
  101. package/build/components/list-view/block.js.map +1 -1
  102. package/build/components/media-placeholder/index.js +2 -0
  103. package/build/components/media-placeholder/index.js.map +1 -1
  104. package/build/components/media-replace-flow/index.js +32 -6
  105. package/build/components/media-replace-flow/index.js.map +1 -1
  106. package/build/components/media-upload-progress/index.native.js +2 -1
  107. package/build/components/media-upload-progress/index.native.js.map +1 -1
  108. package/build/components/panel-color-settings/index.js +7 -3
  109. package/build/components/panel-color-settings/index.js.map +1 -1
  110. package/build/components/provider/block-refs-provider.js +4 -1
  111. package/build/components/provider/block-refs-provider.js.map +1 -1
  112. package/build/components/rich-text/file-paste-handler.js +1 -1
  113. package/build/components/rich-text/file-paste-handler.js.map +1 -1
  114. package/build/components/rich-text/prevent-event-discovery.js +33 -0
  115. package/build/components/rich-text/prevent-event-discovery.js.map +1 -0
  116. package/build/components/rich-text/use-input-rules.js +3 -1
  117. package/build/components/rich-text/use-input-rules.js.map +1 -1
  118. package/build/components/selection-scroll-into-view/index.js +2 -1
  119. package/build/components/selection-scroll-into-view/index.js.map +1 -1
  120. package/build/components/use-display-block-controls/index.native.js +45 -0
  121. package/build/components/use-display-block-controls/index.native.js.map +1 -0
  122. package/build/components/use-on-block-drop/index.js +7 -3
  123. package/build/components/use-on-block-drop/index.js.map +1 -1
  124. package/build/components/writing-flow/use-multi-selection.js +3 -1
  125. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  126. package/build/hooks/border-color.js +74 -10
  127. package/build/hooks/border-color.js.map +1 -1
  128. package/build/hooks/border-radius.js +47 -0
  129. package/build/hooks/border-radius.js.map +1 -1
  130. package/build/hooks/border-style.js +41 -0
  131. package/build/hooks/border-style.js.map +1 -1
  132. package/build/hooks/border-width.js +70 -31
  133. package/build/hooks/border-width.js.map +1 -1
  134. package/build/hooks/border.js +81 -11
  135. package/build/hooks/border.js.map +1 -1
  136. package/build/hooks/color-panel.js +4 -1
  137. package/build/hooks/color-panel.js.map +1 -1
  138. package/build/hooks/color-panel.native.js +77 -0
  139. package/build/hooks/color-panel.native.js.map +1 -0
  140. package/build/hooks/color.js +6 -5
  141. package/build/hooks/color.js.map +1 -1
  142. package/build/hooks/index.native.js +2 -0
  143. package/build/hooks/index.native.js.map +1 -1
  144. package/build/hooks/layout.native.js +20 -0
  145. package/build/hooks/layout.native.js.map +1 -0
  146. package/build/hooks/letter-spacing.js +1 -1
  147. package/build/hooks/letter-spacing.js.map +1 -1
  148. package/build/hooks/typography.js +1 -1
  149. package/build/hooks/typography.js.map +1 -1
  150. package/build/store/actions.js +1 -2
  151. package/build/store/actions.js.map +1 -1
  152. package/build/store/defaults.js +5 -1
  153. package/build/store/defaults.js.map +1 -1
  154. package/build/store/defaults.native.js +2 -6
  155. package/build/store/defaults.native.js.map +1 -1
  156. package/build/store/selectors.js +10 -5
  157. package/build/store/selectors.js.map +1 -1
  158. package/build/utils/get-paste-event-data.js +1 -1
  159. package/build/utils/get-paste-event-data.js.map +1 -1
  160. package/build/utils/parse-css-unit-to-px.js +1 -1
  161. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  162. package/build-module/components/block-caption/index.native.js +13 -3
  163. package/build-module/components/block-caption/index.native.js.map +1 -1
  164. package/build-module/components/block-edit/index.js +9 -0
  165. package/build-module/components/block-edit/index.js.map +1 -1
  166. package/build-module/components/block-inspector/index.js +8 -20
  167. package/build-module/components/block-inspector/index.js.map +1 -1
  168. package/build-module/components/block-list-appender/index.js +3 -10
  169. package/build-module/components/block-list-appender/index.js.map +1 -1
  170. package/build-module/components/block-media-update-progress/index.native.js +2 -1
  171. package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
  172. package/build-module/components/block-preview/auto.js +31 -6
  173. package/build-module/components/block-preview/auto.js.map +1 -1
  174. package/build-module/components/block-settings/container.native.js +2 -1
  175. package/build-module/components/block-settings/container.native.js.map +1 -1
  176. package/build-module/components/block-styles/index.js +112 -133
  177. package/build-module/components/block-styles/index.js.map +1 -1
  178. package/build-module/components/block-styles/menu-items.js +50 -0
  179. package/build-module/components/block-styles/menu-items.js.map +1 -0
  180. package/build-module/components/block-styles/preview-panel.js +35 -0
  181. package/build-module/components/block-styles/preview-panel.js.map +1 -0
  182. package/build-module/components/block-styles/preview.native.js +2 -2
  183. package/build-module/components/block-styles/preview.native.js.map +1 -1
  184. package/build-module/components/block-styles/use-styles-for-block.js +107 -0
  185. package/build-module/components/block-styles/use-styles-for-block.js.map +1 -0
  186. package/build-module/components/block-styles/utils.js +34 -0
  187. package/build-module/components/block-styles/utils.js.map +1 -1
  188. package/build-module/components/block-switcher/block-styles-menu.js +3 -21
  189. package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
  190. package/build-module/components/block-tools/back-compat.js +2 -1
  191. package/build-module/components/block-tools/back-compat.js.map +1 -1
  192. package/build-module/components/block-tools/block-selection-button.js +5 -1
  193. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  194. package/build-module/components/block-tools/insertion-point.js +11 -1
  195. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  196. package/build-module/components/block-types-list/index.native.js +2 -2
  197. package/build-module/components/block-types-list/index.native.js.map +1 -1
  198. package/build-module/components/button-block-appender/index.js +2 -1
  199. package/build-module/components/button-block-appender/index.js.map +1 -1
  200. package/build-module/components/colors-gradients/dropdown.js +75 -0
  201. package/build-module/components/colors-gradients/dropdown.js.map +1 -0
  202. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +8 -7
  203. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  204. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js +7 -4
  205. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  206. package/build-module/components/contrast-checker/index.js +34 -9
  207. package/build-module/components/contrast-checker/index.js.map +1 -1
  208. package/build-module/components/contrast-checker/index.native.js +90 -0
  209. package/build-module/components/contrast-checker/index.native.js.map +1 -0
  210. package/build-module/components/default-block-appender/index.js +15 -18
  211. package/build-module/components/default-block-appender/index.js.map +1 -1
  212. package/build-module/components/default-style-picker/index.js +17 -3
  213. package/build-module/components/default-style-picker/index.js.map +1 -1
  214. package/build-module/components/font-appearance-control/index.js +12 -12
  215. package/build-module/components/font-appearance-control/index.js.map +1 -1
  216. package/build-module/components/iframe/index.js +6 -9
  217. package/build-module/components/iframe/index.js.map +1 -1
  218. package/build-module/components/index.js +2 -1
  219. package/build-module/components/index.js.map +1 -1
  220. package/build-module/components/index.native.js +1 -0
  221. package/build-module/components/index.native.js.map +1 -1
  222. package/build-module/components/inner-blocks/default-block-appender.js +2 -4
  223. package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
  224. package/build-module/components/inner-blocks/use-nested-settings-update.js +16 -14
  225. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  226. package/build-module/components/inserter/index.js +61 -3
  227. package/build-module/components/inserter/index.js.map +1 -1
  228. package/build-module/components/inserter/index.native.js +2 -2
  229. package/build-module/components/inserter/index.native.js.map +1 -1
  230. package/build-module/components/inserter/library.js +5 -3
  231. package/build-module/components/inserter/library.js.map +1 -1
  232. package/build-module/components/inserter/menu.js +11 -4
  233. package/build-module/components/inserter/menu.js.map +1 -1
  234. package/build-module/components/inserter/tabs.native.js +7 -4
  235. package/build-module/components/inserter/tabs.native.js.map +1 -1
  236. package/build-module/components/inspector-controls/block-support-slot-container.js +2 -1
  237. package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
  238. package/build-module/components/inspector-controls/block-support-tools-panel.js +12 -43
  239. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  240. package/build-module/components/inspector-controls/fill.native.js +3 -5
  241. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  242. package/build-module/components/inspector-controls/groups.js +2 -0
  243. package/build-module/components/inspector-controls/groups.js.map +1 -1
  244. package/build-module/components/inspector-controls/slot.js +1 -3
  245. package/build-module/components/inspector-controls/slot.js.map +1 -1
  246. package/build-module/components/letter-spacing-control/index.js +6 -6
  247. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  248. package/build-module/components/link-control/link-preview.js +1 -1
  249. package/build-module/components/link-control/link-preview.js.map +1 -1
  250. package/build-module/components/link-control/search-item.js +11 -1
  251. package/build-module/components/link-control/search-item.js.map +1 -1
  252. package/build-module/components/link-control/search-results.js +2 -1
  253. package/build-module/components/link-control/search-results.js.map +1 -1
  254. package/build-module/components/link-control/use-search-handler.js +18 -5
  255. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  256. package/build-module/components/list-view/block-select-button.js +22 -3
  257. package/build-module/components/list-view/block-select-button.js.map +1 -1
  258. package/build-module/components/list-view/block.js +6 -0
  259. package/build-module/components/list-view/block.js.map +1 -1
  260. package/build-module/components/media-placeholder/index.js +2 -0
  261. package/build-module/components/media-placeholder/index.js.map +1 -1
  262. package/build-module/components/media-replace-flow/index.js +32 -6
  263. package/build-module/components/media-replace-flow/index.js.map +1 -1
  264. package/build-module/components/media-upload-progress/index.native.js +2 -1
  265. package/build-module/components/media-upload-progress/index.native.js.map +1 -1
  266. package/build-module/components/panel-color-settings/index.js +7 -3
  267. package/build-module/components/panel-color-settings/index.js.map +1 -1
  268. package/build-module/components/provider/block-refs-provider.js +4 -1
  269. package/build-module/components/provider/block-refs-provider.js.map +1 -1
  270. package/build-module/components/rich-text/file-paste-handler.js +1 -1
  271. package/build-module/components/rich-text/file-paste-handler.js.map +1 -1
  272. package/build-module/components/rich-text/prevent-event-discovery.js +25 -0
  273. package/build-module/components/rich-text/prevent-event-discovery.js.map +1 -0
  274. package/build-module/components/rich-text/use-input-rules.js +2 -1
  275. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  276. package/build-module/components/selection-scroll-into-view/index.js +2 -1
  277. package/build-module/components/selection-scroll-into-view/index.js.map +1 -1
  278. package/build-module/components/use-display-block-controls/index.native.js +34 -0
  279. package/build-module/components/use-display-block-controls/index.native.js.map +1 -0
  280. package/build-module/components/use-on-block-drop/index.js +7 -3
  281. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  282. package/build-module/components/writing-flow/use-multi-selection.js +3 -4
  283. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  284. package/build-module/hooks/border-color.js +72 -12
  285. package/build-module/hooks/border-color.js.map +1 -1
  286. package/build-module/hooks/border-radius.js +42 -0
  287. package/build-module/hooks/border-radius.js.map +1 -1
  288. package/build-module/hooks/border-style.js +36 -0
  289. package/build-module/hooks/border-style.js.map +1 -1
  290. package/build-module/hooks/border-width.js +66 -32
  291. package/build-module/hooks/border-width.js.map +1 -1
  292. package/build-module/hooks/border.js +80 -12
  293. package/build-module/hooks/border.js.map +1 -1
  294. package/build-module/hooks/color-panel.js +4 -1
  295. package/build-module/hooks/color-panel.js.map +1 -1
  296. package/build-module/hooks/color-panel.native.js +62 -0
  297. package/build-module/hooks/color-panel.native.js.map +1 -0
  298. package/build-module/hooks/color.js +6 -5
  299. package/build-module/hooks/color.js.map +1 -1
  300. package/build-module/hooks/index.native.js +1 -0
  301. package/build-module/hooks/index.native.js.map +1 -1
  302. package/build-module/hooks/layout.native.js +16 -0
  303. package/build-module/hooks/layout.native.js.map +1 -0
  304. package/build-module/hooks/letter-spacing.js +1 -1
  305. package/build-module/hooks/letter-spacing.js.map +1 -1
  306. package/build-module/hooks/typography.js +1 -1
  307. package/build-module/hooks/typography.js.map +1 -1
  308. package/build-module/store/actions.js +1 -2
  309. package/build-module/store/actions.js.map +1 -1
  310. package/build-module/store/defaults.js +5 -1
  311. package/build-module/store/defaults.js.map +1 -1
  312. package/build-module/store/defaults.native.js +2 -5
  313. package/build-module/store/defaults.native.js.map +1 -1
  314. package/build-module/store/selectors.js +10 -5
  315. package/build-module/store/selectors.js.map +1 -1
  316. package/build-module/utils/get-paste-event-data.js +1 -1
  317. package/build-module/utils/get-paste-event-data.js.map +1 -1
  318. package/build-module/utils/parse-css-unit-to-px.js +1 -1
  319. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  320. package/build-style/style-rtl.css +226 -181
  321. package/build-style/style.css +226 -181
  322. package/package.json +31 -27
  323. package/src/components/block-caption/index.native.js +22 -4
  324. package/src/components/block-card/README.md +1 -1
  325. package/src/components/block-edit/index.js +8 -0
  326. package/src/components/block-edit/test/edit.native.js +10 -9
  327. package/src/components/block-inspector/index.js +9 -16
  328. package/src/components/block-list-appender/index.js +5 -21
  329. package/src/components/block-media-update-progress/index.native.js +1 -1
  330. package/src/components/block-media-update-progress/test/index.native.js +136 -93
  331. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +108 -47
  332. package/src/components/block-mover/test/index.native.js +5 -5
  333. package/src/components/block-preview/README.md +14 -26
  334. package/src/components/block-preview/auto.js +33 -3
  335. package/src/components/block-preview/test/index.js +2 -0
  336. package/src/components/block-settings/container.native.js +1 -0
  337. package/src/components/block-styles/index.js +125 -145
  338. package/src/components/block-styles/menu-items.js +49 -0
  339. package/src/components/block-styles/preview-panel.js +36 -0
  340. package/src/components/block-styles/preview.native.js +5 -2
  341. package/src/components/block-styles/style.scss +59 -51
  342. package/src/components/block-styles/test/{index.js → utils.js} +60 -1
  343. package/src/components/block-styles/use-styles-for-block.js +99 -0
  344. package/src/components/block-styles/utils.js +39 -0
  345. package/src/components/block-switcher/block-styles-menu.js +3 -38
  346. package/src/components/block-tools/back-compat.js +1 -0
  347. package/src/components/block-tools/block-selection-button.js +7 -1
  348. package/src/components/block-tools/insertion-point.js +10 -1
  349. package/src/components/block-types-list/index.native.js +5 -2
  350. package/src/components/border-radius-control/style.scss +1 -1
  351. package/src/components/border-style-control/style.scss +0 -1
  352. package/src/components/button-block-appender/index.js +1 -0
  353. package/src/components/color-palette/test/__snapshots__/control.js.snap +9 -4
  354. package/src/components/colors-gradients/dropdown.js +96 -0
  355. package/src/components/colors-gradients/panel-color-gradient-settings.js +23 -19
  356. package/src/components/colors-gradients/panel-color-gradient-settings.native.js +13 -2
  357. package/src/components/colors-gradients/style.scss +59 -5
  358. package/src/components/contrast-checker/README.md +3 -1
  359. package/src/components/contrast-checker/index.js +48 -20
  360. package/src/components/contrast-checker/index.native.js +113 -0
  361. package/src/components/contrast-checker/style.native.scss +26 -0
  362. package/src/components/contrast-checker/test/index.js +65 -0
  363. package/src/components/default-block-appender/index.js +17 -24
  364. package/src/components/default-block-appender/style.scss +4 -0
  365. package/src/components/default-block-appender/test/__snapshots__/index.js.snap +12 -24
  366. package/src/components/default-block-appender/test/index.js +4 -14
  367. package/src/components/default-style-picker/index.js +18 -6
  368. package/src/components/font-appearance-control/index.js +12 -12
  369. package/src/components/iframe/index.js +10 -10
  370. package/src/components/index.js +2 -1
  371. package/src/components/index.native.js +1 -0
  372. package/src/components/inner-blocks/README.md +2 -0
  373. package/src/components/inner-blocks/default-block-appender.js +2 -7
  374. package/src/components/inner-blocks/use-nested-settings-update.js +16 -14
  375. package/src/components/inserter/index.js +77 -5
  376. package/src/components/inserter/index.native.js +2 -2
  377. package/src/components/inserter/library.js +17 -12
  378. package/src/components/inserter/menu.js +31 -13
  379. package/src/components/inserter/tabs.native.js +5 -4
  380. package/src/components/inserter/test/block-types-tab.native.js +9 -10
  381. package/src/components/inserter/test/index.native.js +3 -7
  382. package/src/components/inserter/test/reusable-blocks-tab.native.js +8 -10
  383. package/src/components/inspector-controls/block-support-slot-container.js +3 -1
  384. package/src/components/inspector-controls/block-support-tools-panel.js +39 -58
  385. package/src/components/inspector-controls/fill.native.js +4 -3
  386. package/src/components/inspector-controls/groups.js +2 -0
  387. package/src/components/inspector-controls/slot.js +2 -7
  388. package/src/components/letter-spacing-control/index.js +6 -6
  389. package/src/components/link-control/README.md +1 -1
  390. package/src/components/link-control/link-preview.js +1 -1
  391. package/src/components/link-control/search-item.js +11 -2
  392. package/src/components/link-control/search-results.js +1 -0
  393. package/src/components/link-control/style.scss +2 -1
  394. package/src/components/link-control/test/index.js +4 -0
  395. package/src/components/link-control/use-search-handler.js +25 -4
  396. package/src/components/list-view/block-select-button.js +20 -1
  397. package/src/components/list-view/block.js +10 -0
  398. package/src/components/media-placeholder/index.js +2 -0
  399. package/src/components/media-replace-flow/index.js +35 -5
  400. package/src/components/media-upload/test/index.native.js +28 -47
  401. package/src/components/media-upload-progress/index.native.js +1 -0
  402. package/src/components/media-upload-progress/test/index.native.js +60 -47
  403. package/src/components/panel-color-settings/index.js +8 -4
  404. package/src/components/provider/block-refs-provider.js +4 -1
  405. package/src/components/rich-text/file-paste-handler.js +3 -1
  406. package/src/components/rich-text/prevent-event-discovery.js +23 -0
  407. package/src/components/rich-text/use-input-rules.js +2 -1
  408. package/src/components/selection-scroll-into-view/index.js +1 -0
  409. package/src/components/url-input/README.md +5 -0
  410. package/src/components/use-display-block-controls/index.native.js +38 -0
  411. package/src/components/use-on-block-drop/index.js +7 -3
  412. package/src/components/writing-flow/test/use-multi-selection.js +36 -0
  413. package/src/components/writing-flow/use-multi-selection.js +12 -9
  414. package/src/hooks/border-color.js +69 -9
  415. package/src/hooks/border-radius.js +32 -0
  416. package/src/hooks/border-style.js +26 -0
  417. package/src/hooks/border-width.js +56 -32
  418. package/src/hooks/border.js +115 -20
  419. package/src/hooks/border.scss +3 -17
  420. package/src/hooks/color-panel.js +3 -0
  421. package/src/hooks/color-panel.native.js +63 -0
  422. package/src/hooks/color.js +8 -7
  423. package/src/hooks/dimensions.scss +5 -0
  424. package/src/hooks/index.native.js +1 -0
  425. package/src/hooks/layout.native.js +23 -0
  426. package/src/hooks/letter-spacing.js +1 -1
  427. package/src/hooks/typography.js +1 -1
  428. package/src/store/actions.js +1 -2
  429. package/src/store/defaults.js +2 -0
  430. package/src/store/defaults.native.js +2 -6
  431. package/src/store/selectors.js +10 -5
  432. package/src/style.scss +4 -3
  433. package/src/utils/get-paste-event-data.js +1 -1
  434. package/src/utils/parse-css-unit-to-px.js +1 -1
  435. package/src/utils/test/parse-css-unit-to-px.js +3 -0
  436. package/tsconfig.tsbuildinfo +1 -1
  437. package/build/components/use-canvas-click-redirect/index.js +0 -66
  438. package/build/components/use-canvas-click-redirect/index.js.map +0 -1
  439. package/build-module/components/use-canvas-click-redirect/index.js +0 -54
  440. package/build-module/components/use-canvas-click-redirect/index.js.map +0 -1
  441. package/src/components/use-canvas-click-redirect/index.js +0 -57
@@ -19,7 +19,7 @@ var _components = require("@wordpress/components");
19
19
 
20
20
  var _i18n = require("@wordpress/i18n");
21
21
 
22
- var _control = _interopRequireDefault(require("./control"));
22
+ var _dropdown = _interopRequireDefault(require("./dropdown"));
23
23
 
24
24
  var _colors = require("../colors");
25
25
 
@@ -116,9 +116,8 @@ const PanelColorGradientSettingsInner = _ref3 => {
116
116
  return (0, _element.createElement)(_components.PanelBody, (0, _extends2.default)({
117
117
  className: (0, _classnames.default)('block-editor-panel-color-gradient-settings', className),
118
118
  title: showTitle ? titleElement : undefined
119
- }, props), settings.map((setting, index) => (0, _element.createElement)(_control.default, (0, _extends2.default)({
120
- showTitle: showTitle,
121
- key: index,
119
+ }, props), (0, _element.createElement)(_dropdown.default, {
120
+ settings: settings,
122
121
  colors,
123
122
  gradients,
124
123
  disableCustomColors,
@@ -126,7 +125,9 @@ const PanelColorGradientSettingsInner = _ref3 => {
126
125
  __experimentalHasMultipleOrigins,
127
126
  __experimentalIsRenderedInSidebar,
128
127
  enableAlpha
129
- }, setting))), children);
128
+ }), !!children && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.__experimentalSpacer, {
129
+ marginY: 4
130
+ }), " ", children));
130
131
  };
131
132
 
132
133
  exports.PanelColorGradientSettingsInner = PanelColorGradientSettingsInner;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/panel-color-gradient-settings.js"],"names":["colorIndicatorAriaLabel","gradientIndicatorAriaLabel","colorsAndGradientKeys","Indicators","colors","gradients","settings","map","index","colorValue","gradientValue","label","availableColors","availableGradients","ariaLabel","colorObject","toLowerCase","name","gradientObject","PanelColorGradientSettingsInner","className","disableCustomColors","disableCustomGradients","children","title","showTitle","__experimentalHasMultipleOrigins","__experimentalIsRenderedInSidebar","enableAlpha","props","setting","undefined","titleElement","PanelColorGradientSettingsSingleSelect","colorGradientSettings","PanelColorGradientSettingsMultipleSelect","PanelColorGradientSettings","key","hasOwnProperty"],"mappings":";;;;;;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AApBA;AACA;AACA;;AAIA;AACA;AACA;;AAIA;AACA;AACA;AAQA;AACA,MAAMA,uBAAuB,GAAG,cAAI,gBAAJ,CAAhC,C,CAEA;;AACA,MAAMC,0BAA0B,GAAG,cAAI,mBAAJ,CAAnC;AAEA,MAAMC,qBAAqB,GAAG,CAC7B,QAD6B,EAE7B,qBAF6B,EAG7B,WAH6B,EAI7B,wBAJ6B,CAA9B;;AAOA,MAAMC,UAAU,GAAG,QAAuC;AAAA,MAArC;AAAEC,IAAAA,MAAF;AAAUC,IAAAA,SAAV;AAAqBC,IAAAA;AAArB,GAAqC;AACzD,SAAOA,QAAQ,CAACC,GAAT,CACN,QAQCC,KARD,KASK;AAAA,QARJ;AACCC,MAAAA,UADD;AAECC,MAAAA,aAFD;AAGCC,MAAAA,KAHD;AAICP,MAAAA,MAAM,EAAEQ,eAJT;AAKCP,MAAAA,SAAS,EAAEQ;AALZ,KAQI;;AACJ,QAAK,CAAEJ,UAAF,IAAgB,CAAEC,aAAvB,EAAuC;AACtC,aAAO,IAAP;AACA;;AACD,QAAII,SAAJ;;AACA,QAAKL,UAAL,EAAkB;AACjB,YAAMM,WAAW,GAAG,wCACnBH,eAAe,IAAIR,MADA,EAEnBK,UAFmB,CAApB;AAIAK,MAAAA,SAAS,GAAG,mBACXd,uBADW,EAEXW,KAAK,CAACK,WAAN,EAFW,EAGTD,WAAW,IAAIA,WAAW,CAACE,IAA7B,IAAuCR,UAH5B,CAAZ;AAKA,KAVD,MAUO;AACN,YAAMS,cAAc,GAAG,+DACtBL,kBAAkB,IAAIR,SADA,EAEtBI,UAFsB,CAAvB;AAIAK,MAAAA,SAAS,GAAG,mBACXb,0BADW,EAEXU,KAAK,CAACK,WAAN,EAFW,EAGTE,cAAc,IAAIA,cAAc,CAACD,IAAnC,IAA6CP,aAHlC,CAAZ;AAKA;;AAED,WACC,4BAAC,0BAAD;AACC,MAAA,GAAG,EAAGF,KADP;AAEC,MAAA,UAAU,EAAGC,UAAU,IAAIC,aAF5B;AAGC,oBAAaI;AAHd,MADD;AAOA,GA5CK,CAAP;AA8CA,CA/CD;;AAiDO,MAAMK,+BAA+B,GAAG,SAcxC;AAAA,MAd0C;AAChDC,IAAAA,SADgD;AAEhDhB,IAAAA,MAFgD;AAGhDC,IAAAA,SAHgD;AAIhDgB,IAAAA,mBAJgD;AAKhDC,IAAAA,sBALgD;AAMhDC,IAAAA,QANgD;AAOhDjB,IAAAA,QAPgD;AAQhDkB,IAAAA,KARgD;AAShDC,IAAAA,SAAS,GAAG,IAToC;AAUhDC,IAAAA,gCAVgD;AAWhDC,IAAAA,iCAXgD;AAYhDC,IAAAA,WAZgD;AAahD,OAAGC;AAb6C,GAc1C;;AACN,MACC,qBAASzB,MAAT,KACA,qBAASC,SAAT,CADA,IAEAgB,mBAFA,IAGAC,sBAHA,IAIA,mBACChB,QADD,EAEGwB,OAAF,IACC,qBAASA,OAAO,CAAC1B,MAAjB,KACA,qBAAS0B,OAAO,CAACzB,SAAjB,CADA,KAEEyB,OAAO,CAACT,mBAAR,KAAgCU,SAAhC,IACDD,OAAO,CAACT,mBAHT,MAIES,OAAO,CAACR,sBAAR,KAAmCS,SAAnC,IACDD,OAAO,CAACR,sBALT,CAHF,CALD,EAeE;AACD,WAAO,IAAP;AACA;;AAED,QAAMU,YAAY,GACjB;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGR,KADH,EAEC,4BAAC,UAAD;AACC,IAAA,MAAM,EAAGpB,MADV;AAEC,IAAA,SAAS,EAAGC,SAFb;AAGC,IAAA,QAAQ,EAAGC;AAHZ,IAFD,CADD;AAWA,SACC,4BAAC,qBAAD;AACC,IAAA,SAAS,EAAG,yBACX,4CADW,EAEXc,SAFW,CADb;AAKC,IAAA,KAAK,EAAGK,SAAS,GAAGO,YAAH,GAAkBD;AALpC,KAMMF,KANN,GAQGvB,QAAQ,CAACC,GAAT,CAAc,CAAEuB,OAAF,EAAWtB,KAAX,KACf,4BAAC,gBAAD;AACC,IAAA,SAAS,EAAGiB,SADb;AAEC,IAAA,GAAG,EAAGjB,KAFP;AAIEJ,IAAAA,MAJF;AAKEC,IAAAA,SALF;AAMEgB,IAAAA,mBANF;AAOEC,IAAAA,sBAPF;AAQEI,IAAAA,gCARF;AASEC,IAAAA,iCATF;AAUEC,IAAAA;AAVF,KAWKE,OAXL,EADC,CARH,EAwBGP,QAxBH,CADD;AA4BA,CAzEM;;;;AA2EP,MAAMU,sCAAsC,GAAKJ,KAAF,IAAa;AAC3D,QAAMK,qBAAqB,GAAG,8CAA9B;AACAA,EAAAA,qBAAqB,CAAC9B,MAAtB,GAA+B,yBAAY,eAAZ,CAA/B;AACA8B,EAAAA,qBAAqB,CAAC7B,SAAtB,GAAkC,yBAAY,iBAAZ,CAAlC;AACA,SACC,4BAAC,+BAAD,6BACW6B,qBADX,EACqCL,KADrC,EADD;AAKA,CATD;;AAWA,MAAMM,wCAAwC,GAAKN,KAAF,IAAa;AAC7D,QAAMK,qBAAqB,GAAG,mDAA9B;AACA,SACC,4BAAC,+BAAD,6BACWA,qBADX,EACqCL,KADrC,EADD;AAKA,CAPD;;AASA,MAAMO,0BAA0B,GAAKP,KAAF,IAAa;AAC/C,MACC,mBAAO3B,qBAAP,EAAgCmC,GAAF,IAAWR,KAAK,CAACS,cAAN,CAAsBD,GAAtB,CAAzC,CADD,EAEE;AACD,WAAO,4BAAC,+BAAD,EAAsCR,KAAtC,CAAP;AACA;;AACD,MAAKA,KAAK,CAACH,gCAAX,EAA8C;AAC7C,WAAO,4BAAC,wCAAD,EAA+CG,KAA/C,CAAP;AACA;;AACD,SAAO,4BAAC,sCAAD,EAA6CA,KAA7C,CAAP;AACA,CAVD;;eAYeO,0B","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { every, isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { PanelBody, ColorIndicator } from '@wordpress/components';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ColorGradientControl from './control';\nimport { getColorObjectByColorValue } from '../colors';\nimport { __experimentalGetGradientObjectByGradientValue } from '../gradients';\nimport useSetting from '../use-setting';\nimport useCommonSingleMultipleSelects from './use-common-single-multiple-selects';\nimport useMultipleOriginColorsAndGradients from './use-multiple-origin-colors-and-gradients';\n\n// translators: first %s: The type of color or gradient (e.g. background, overlay...), second %s: the color name or value (e.g. red or #ff0000)\nconst colorIndicatorAriaLabel = __( '(%s: color %s)' );\n\n// translators: first %s: The type of color or gradient (e.g. background, overlay...), second %s: the color name or value (e.g. red or #ff0000)\nconst gradientIndicatorAriaLabel = __( '(%s: gradient %s)' );\n\nconst colorsAndGradientKeys = [\n\t'colors',\n\t'disableCustomColors',\n\t'gradients',\n\t'disableCustomGradients',\n];\n\nconst Indicators = ( { colors, gradients, settings } ) => {\n\treturn settings.map(\n\t\t(\n\t\t\t{\n\t\t\t\tcolorValue,\n\t\t\t\tgradientValue,\n\t\t\t\tlabel,\n\t\t\t\tcolors: availableColors,\n\t\t\t\tgradients: availableGradients,\n\t\t\t},\n\t\t\tindex\n\t\t) => {\n\t\t\tif ( ! colorValue && ! gradientValue ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tlet ariaLabel;\n\t\t\tif ( colorValue ) {\n\t\t\t\tconst colorObject = getColorObjectByColorValue(\n\t\t\t\t\tavailableColors || colors,\n\t\t\t\t\tcolorValue\n\t\t\t\t);\n\t\t\t\tariaLabel = sprintf(\n\t\t\t\t\tcolorIndicatorAriaLabel,\n\t\t\t\t\tlabel.toLowerCase(),\n\t\t\t\t\t( colorObject && colorObject.name ) || colorValue\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst gradientObject = __experimentalGetGradientObjectByGradientValue(\n\t\t\t\t\tavailableGradients || gradients,\n\t\t\t\t\tcolorValue\n\t\t\t\t);\n\t\t\t\tariaLabel = sprintf(\n\t\t\t\t\tgradientIndicatorAriaLabel,\n\t\t\t\t\tlabel.toLowerCase(),\n\t\t\t\t\t( gradientObject && gradientObject.name ) || gradientValue\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<ColorIndicator\n\t\t\t\t\tkey={ index }\n\t\t\t\t\tcolorValue={ colorValue || gradientValue }\n\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t);\n};\n\nexport const PanelColorGradientSettingsInner = ( {\n\tclassName,\n\tcolors,\n\tgradients,\n\tdisableCustomColors,\n\tdisableCustomGradients,\n\tchildren,\n\tsettings,\n\ttitle,\n\tshowTitle = true,\n\t__experimentalHasMultipleOrigins,\n\t__experimentalIsRenderedInSidebar,\n\tenableAlpha,\n\t...props\n} ) => {\n\tif (\n\t\tisEmpty( colors ) &&\n\t\tisEmpty( gradients ) &&\n\t\tdisableCustomColors &&\n\t\tdisableCustomGradients &&\n\t\tevery(\n\t\t\tsettings,\n\t\t\t( setting ) =>\n\t\t\t\tisEmpty( setting.colors ) &&\n\t\t\t\tisEmpty( setting.gradients ) &&\n\t\t\t\t( setting.disableCustomColors === undefined ||\n\t\t\t\t\tsetting.disableCustomColors ) &&\n\t\t\t\t( setting.disableCustomGradients === undefined ||\n\t\t\t\t\tsetting.disableCustomGradients )\n\t\t)\n\t) {\n\t\treturn null;\n\t}\n\n\tconst titleElement = (\n\t\t<span className=\"block-editor-panel-color-gradient-settings__panel-title\">\n\t\t\t{ title }\n\t\t\t<Indicators\n\t\t\t\tcolors={ colors }\n\t\t\t\tgradients={ gradients }\n\t\t\t\tsettings={ settings }\n\t\t\t/>\n\t\t</span>\n\t);\n\n\treturn (\n\t\t<PanelBody\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-panel-color-gradient-settings',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\ttitle={ showTitle ? titleElement : undefined }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ settings.map( ( setting, index ) => (\n\t\t\t\t<ColorGradientControl\n\t\t\t\t\tshowTitle={ showTitle }\n\t\t\t\t\tkey={ index }\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tcolors,\n\t\t\t\t\t\tgradients,\n\t\t\t\t\t\tdisableCustomColors,\n\t\t\t\t\t\tdisableCustomGradients,\n\t\t\t\t\t\t__experimentalHasMultipleOrigins,\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar,\n\t\t\t\t\t\tenableAlpha,\n\t\t\t\t\t\t...setting,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t\t{ children }\n\t\t</PanelBody>\n\t);\n};\n\nconst PanelColorGradientSettingsSingleSelect = ( props ) => {\n\tconst colorGradientSettings = useCommonSingleMultipleSelects();\n\tcolorGradientSettings.colors = useSetting( 'color.palette' );\n\tcolorGradientSettings.gradients = useSetting( 'color.gradients' );\n\treturn (\n\t\t<PanelColorGradientSettingsInner\n\t\t\t{ ...{ ...colorGradientSettings, ...props } }\n\t\t/>\n\t);\n};\n\nconst PanelColorGradientSettingsMultipleSelect = ( props ) => {\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\treturn (\n\t\t<PanelColorGradientSettingsInner\n\t\t\t{ ...{ ...colorGradientSettings, ...props } }\n\t\t/>\n\t);\n};\n\nconst PanelColorGradientSettings = ( props ) => {\n\tif (\n\t\tevery( colorsAndGradientKeys, ( key ) => props.hasOwnProperty( key ) )\n\t) {\n\t\treturn <PanelColorGradientSettingsInner { ...props } />;\n\t}\n\tif ( props.__experimentalHasMultipleOrigins ) {\n\t\treturn <PanelColorGradientSettingsMultipleSelect { ...props } />;\n\t}\n\treturn <PanelColorGradientSettingsSingleSelect { ...props } />;\n};\n\nexport default PanelColorGradientSettings;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/panel-color-gradient-settings.js"],"names":["colorIndicatorAriaLabel","gradientIndicatorAriaLabel","colorsAndGradientKeys","Indicators","colors","gradients","settings","map","index","colorValue","gradientValue","label","availableColors","availableGradients","ariaLabel","colorObject","toLowerCase","name","gradientObject","PanelColorGradientSettingsInner","className","disableCustomColors","disableCustomGradients","children","title","showTitle","__experimentalHasMultipleOrigins","__experimentalIsRenderedInSidebar","enableAlpha","props","setting","undefined","titleElement","PanelColorGradientSettingsSingleSelect","colorGradientSettings","PanelColorGradientSettingsMultipleSelect","PanelColorGradientSettings","key","hasOwnProperty"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { every, isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalSpacer as Spacer,\n\tColorIndicator,\n\tPanelBody,\n} from '@wordpress/components';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ColorGradientSettingsDropdown from './dropdown';\nimport { getColorObjectByColorValue } from '../colors';\nimport { __experimentalGetGradientObjectByGradientValue } from '../gradients';\nimport useSetting from '../use-setting';\nimport useCommonSingleMultipleSelects from './use-common-single-multiple-selects';\nimport useMultipleOriginColorsAndGradients from './use-multiple-origin-colors-and-gradients';\n\n// translators: first %s: The type of color or gradient (e.g. background, overlay...), second %s: the color name or value (e.g. red or #ff0000)\nconst colorIndicatorAriaLabel = __( '(%s: color %s)' );\n\n// translators: first %s: The type of color or gradient (e.g. background, overlay...), second %s: the color name or value (e.g. red or #ff0000)\nconst gradientIndicatorAriaLabel = __( '(%s: gradient %s)' );\n\nconst colorsAndGradientKeys = [\n\t'colors',\n\t'disableCustomColors',\n\t'gradients',\n\t'disableCustomGradients',\n];\n\nconst Indicators = ( { colors, gradients, settings } ) => {\n\treturn settings.map(\n\t\t(\n\t\t\t{\n\t\t\t\tcolorValue,\n\t\t\t\tgradientValue,\n\t\t\t\tlabel,\n\t\t\t\tcolors: availableColors,\n\t\t\t\tgradients: availableGradients,\n\t\t\t},\n\t\t\tindex\n\t\t) => {\n\t\t\tif ( ! colorValue && ! gradientValue ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tlet ariaLabel;\n\t\t\tif ( colorValue ) {\n\t\t\t\tconst colorObject = getColorObjectByColorValue(\n\t\t\t\t\tavailableColors || colors,\n\t\t\t\t\tcolorValue\n\t\t\t\t);\n\t\t\t\tariaLabel = sprintf(\n\t\t\t\t\tcolorIndicatorAriaLabel,\n\t\t\t\t\tlabel.toLowerCase(),\n\t\t\t\t\t( colorObject && colorObject.name ) || colorValue\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst gradientObject = __experimentalGetGradientObjectByGradientValue(\n\t\t\t\t\tavailableGradients || gradients,\n\t\t\t\t\tcolorValue\n\t\t\t\t);\n\t\t\t\tariaLabel = sprintf(\n\t\t\t\t\tgradientIndicatorAriaLabel,\n\t\t\t\t\tlabel.toLowerCase(),\n\t\t\t\t\t( gradientObject && gradientObject.name ) || gradientValue\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<ColorIndicator\n\t\t\t\t\tkey={ index }\n\t\t\t\t\tcolorValue={ colorValue || gradientValue }\n\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t);\n};\n\nexport const PanelColorGradientSettingsInner = ( {\n\tclassName,\n\tcolors,\n\tgradients,\n\tdisableCustomColors,\n\tdisableCustomGradients,\n\tchildren,\n\tsettings,\n\ttitle,\n\tshowTitle = true,\n\t__experimentalHasMultipleOrigins,\n\t__experimentalIsRenderedInSidebar,\n\tenableAlpha,\n\t...props\n} ) => {\n\tif (\n\t\tisEmpty( colors ) &&\n\t\tisEmpty( gradients ) &&\n\t\tdisableCustomColors &&\n\t\tdisableCustomGradients &&\n\t\tevery(\n\t\t\tsettings,\n\t\t\t( setting ) =>\n\t\t\t\tisEmpty( setting.colors ) &&\n\t\t\t\tisEmpty( setting.gradients ) &&\n\t\t\t\t( setting.disableCustomColors === undefined ||\n\t\t\t\t\tsetting.disableCustomColors ) &&\n\t\t\t\t( setting.disableCustomGradients === undefined ||\n\t\t\t\t\tsetting.disableCustomGradients )\n\t\t)\n\t) {\n\t\treturn null;\n\t}\n\n\tconst titleElement = (\n\t\t<span className=\"block-editor-panel-color-gradient-settings__panel-title\">\n\t\t\t{ title }\n\t\t\t<Indicators\n\t\t\t\tcolors={ colors }\n\t\t\t\tgradients={ gradients }\n\t\t\t\tsettings={ settings }\n\t\t\t/>\n\t\t</span>\n\t);\n\n\treturn (\n\t\t<PanelBody\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-panel-color-gradient-settings',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\ttitle={ showTitle ? titleElement : undefined }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\tsettings={ settings }\n\t\t\t\t{ ...{\n\t\t\t\t\tcolors,\n\t\t\t\t\tgradients,\n\t\t\t\t\tdisableCustomColors,\n\t\t\t\t\tdisableCustomGradients,\n\t\t\t\t\t__experimentalHasMultipleOrigins,\n\t\t\t\t\t__experimentalIsRenderedInSidebar,\n\t\t\t\t\tenableAlpha,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ !! children && (\n\t\t\t\t<>\n\t\t\t\t\t<Spacer marginY={ 4 } /> { children }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</PanelBody>\n\t);\n};\n\nconst PanelColorGradientSettingsSingleSelect = ( props ) => {\n\tconst colorGradientSettings = useCommonSingleMultipleSelects();\n\tcolorGradientSettings.colors = useSetting( 'color.palette' );\n\tcolorGradientSettings.gradients = useSetting( 'color.gradients' );\n\treturn (\n\t\t<PanelColorGradientSettingsInner\n\t\t\t{ ...{ ...colorGradientSettings, ...props } }\n\t\t/>\n\t);\n};\n\nconst PanelColorGradientSettingsMultipleSelect = ( props ) => {\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\treturn (\n\t\t<PanelColorGradientSettingsInner\n\t\t\t{ ...{ ...colorGradientSettings, ...props } }\n\t\t/>\n\t);\n};\n\nconst PanelColorGradientSettings = ( props ) => {\n\tif (\n\t\tevery( colorsAndGradientKeys, ( key ) => props.hasOwnProperty( key ) )\n\t) {\n\t\treturn <PanelColorGradientSettingsInner { ...props } />;\n\t}\n\tif ( props.__experimentalHasMultipleOrigins ) {\n\t\treturn <PanelColorGradientSettingsMultipleSelect { ...props } />;\n\t}\n\treturn <PanelColorGradientSettingsSingleSelect { ...props } />;\n};\n\nexport default PanelColorGradientSettings;\n"]}
@@ -27,13 +27,15 @@ var _blockSettings = require("../block-settings");
27
27
  function PanelColorGradientSettings(_ref) {
28
28
  let {
29
29
  settings,
30
- title
30
+ title,
31
+ children
31
32
  } = _ref;
32
33
  const navigation = (0, _native.useNavigation)();
33
34
  const mappedSettings = (0, _element.useMemo)(() => {
34
35
  return settings.map(_ref2 => {
35
36
  let {
36
37
  onColorChange,
38
+ onColorCleared,
37
39
  colorValue,
38
40
  onGradientChange,
39
41
  gradientValue,
@@ -46,6 +48,7 @@ function PanelColorGradientSettings(_ref) {
46
48
  colorValue: gradientValue || colorValue,
47
49
  gradientValue,
48
50
  onGradientChange,
51
+ onColorCleared,
49
52
  label
50
53
  });
51
54
  },
@@ -55,8 +58,8 @@ function PanelColorGradientSettings(_ref) {
55
58
  });
56
59
  });
57
60
  }, [settings]);
58
- return (0, _element.createElement)(_components.PanelBody, {
61
+ return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.PanelBody, {
59
62
  title: title
60
- }, mappedSettings);
63
+ }, mappedSettings), (0, _element.createElement)(_components.PanelBody, null, children));
61
64
  }
62
65
  //# sourceMappingURL=panel-color-gradient-settings.native.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/panel-color-gradient-settings.native.js"],"names":["PanelColorGradientSettings","settings","title","navigation","mappedSettings","map","onColorChange","colorValue","onGradientChange","gradientValue","label","navigate","blockSettingsScreens","color"],"mappings":";;;;;;;AASA;;AANA;;AAKA;;AAMA;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAGe,SAASA,0BAAT,OAA2D;AAAA,MAAtB;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAsB;AACzE,QAAMC,UAAU,GAAG,4BAAnB;AAEA,QAAMC,cAAc,GAAG,sBAAS,MAAM;AACrC,WAAOH,QAAQ,CAACI,GAAT,CACN;AAAA,UAAE;AACDC,QAAAA,aADC;AAEDC,QAAAA,UAFC;AAGDC,QAAAA,gBAHC;AAIDC,QAAAA,aAJC;AAKDC,QAAAA;AALC,OAAF;AAAA,aAOC,4BAAC,wBAAD;AACC,QAAA,OAAO,EAAG,MAAM;AACfP,UAAAA,UAAU,CAACQ,QAAX,CAAqBC,oCAAqBC,KAA1C,EAAiD;AAChDP,YAAAA,aADgD;AAEhDC,YAAAA,UAAU,EAAEE,aAAa,IAAIF,UAFmB;AAGhDE,YAAAA,aAHgD;AAIhDD,YAAAA,gBAJgD;AAKhDE,YAAAA;AALgD,WAAjD;AAOA,SATF;AAUC,QAAA,GAAG,EAAI,iBAAiBA,KAAO,EAVhC;AAWC,QAAA,KAAK,EAAGA,KAXT;AAYC,QAAA,KAAK,EAAGD,aAAa,IAAIF;AAZ1B,QAPD;AAAA,KADM,CAAP;AAwBA,GAzBsB,EAyBpB,CAAEN,QAAF,CAzBoB,CAAvB;AA2BA,SAAO,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAGC;AAAnB,KAA6BE,cAA7B,CAAP;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { useNavigation } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { ColorControl, PanelBody } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { blockSettingsScreens } from '../block-settings';\n\nexport default function PanelColorGradientSettings( { settings, title } ) {\n\tconst navigation = useNavigation();\n\n\tconst mappedSettings = useMemo( () => {\n\t\treturn settings.map(\n\t\t\t( {\n\t\t\t\tonColorChange,\n\t\t\t\tcolorValue,\n\t\t\t\tonGradientChange,\n\t\t\t\tgradientValue,\n\t\t\t\tlabel,\n\t\t\t} ) => (\n\t\t\t\t<ColorControl\n\t\t\t\t\tonPress={ () => {\n\t\t\t\t\t\tnavigation.navigate( blockSettingsScreens.color, {\n\t\t\t\t\t\t\tonColorChange,\n\t\t\t\t\t\t\tcolorValue: gradientValue || colorValue,\n\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\tonGradientChange,\n\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tkey={ `color-setting-${ label }` }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tcolor={ gradientValue || colorValue }\n\t\t\t\t/>\n\t\t\t)\n\t\t);\n\t}, [ settings ] );\n\n\treturn <PanelBody title={ title }>{ mappedSettings }</PanelBody>;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/panel-color-gradient-settings.native.js"],"names":["PanelColorGradientSettings","settings","title","children","navigation","mappedSettings","map","onColorChange","onColorCleared","colorValue","onGradientChange","gradientValue","label","navigate","blockSettingsScreens","color"],"mappings":";;;;;;;AASA;;AANA;;AAKA;;AAMA;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAGe,SAASA,0BAAT,OAIX;AAAA,MAJgD;AACnDC,IAAAA,QADmD;AAEnDC,IAAAA,KAFmD;AAGnDC,IAAAA;AAHmD,GAIhD;AACH,QAAMC,UAAU,GAAG,4BAAnB;AAEA,QAAMC,cAAc,GAAG,sBAAS,MAAM;AACrC,WAAOJ,QAAQ,CAACK,GAAT,CACN;AAAA,UAAE;AACDC,QAAAA,aADC;AAEDC,QAAAA,cAFC;AAGDC,QAAAA,UAHC;AAIDC,QAAAA,gBAJC;AAKDC,QAAAA,aALC;AAMDC,QAAAA;AANC,OAAF;AAAA,aAQC,4BAAC,wBAAD;AACC,QAAA,OAAO,EAAG,MAAM;AACfR,UAAAA,UAAU,CAACS,QAAX,CAAqBC,oCAAqBC,KAA1C,EAAiD;AAChDR,YAAAA,aADgD;AAEhDE,YAAAA,UAAU,EAAEE,aAAa,IAAIF,UAFmB;AAGhDE,YAAAA,aAHgD;AAIhDD,YAAAA,gBAJgD;AAKhDF,YAAAA,cALgD;AAMhDI,YAAAA;AANgD,WAAjD;AAQA,SAVF;AAWC,QAAA,GAAG,EAAI,iBAAiBA,KAAO,EAXhC;AAYC,QAAA,KAAK,EAAGA,KAZT;AAaC,QAAA,KAAK,EAAGD,aAAa,IAAIF;AAb1B,QARD;AAAA,KADM,CAAP;AA0BA,GA3BsB,EA2BpB,CAAER,QAAF,CA3BoB,CAAvB;AA6BA,SACC,qDACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAGC;AAAnB,KAA6BG,cAA7B,CADD,EAEC,4BAAC,qBAAD,QAAaF,QAAb,CAFD,CADD;AAMA","sourcesContent":["/**\n * External dependencies\n */\nimport { useNavigation } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { ColorControl, PanelBody } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { blockSettingsScreens } from '../block-settings';\n\nexport default function PanelColorGradientSettings( {\n\tsettings,\n\ttitle,\n\tchildren,\n} ) {\n\tconst navigation = useNavigation();\n\n\tconst mappedSettings = useMemo( () => {\n\t\treturn settings.map(\n\t\t\t( {\n\t\t\t\tonColorChange,\n\t\t\t\tonColorCleared,\n\t\t\t\tcolorValue,\n\t\t\t\tonGradientChange,\n\t\t\t\tgradientValue,\n\t\t\t\tlabel,\n\t\t\t} ) => (\n\t\t\t\t<ColorControl\n\t\t\t\t\tonPress={ () => {\n\t\t\t\t\t\tnavigation.navigate( blockSettingsScreens.color, {\n\t\t\t\t\t\t\tonColorChange,\n\t\t\t\t\t\t\tcolorValue: gradientValue || colorValue,\n\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\tonGradientChange,\n\t\t\t\t\t\t\tonColorCleared,\n\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tkey={ `color-setting-${ label }` }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tcolor={ gradientValue || colorValue }\n\t\t\t\t/>\n\t\t\t)\n\t\t);\n\t}, [ settings ] );\n\n\treturn (\n\t\t<>\n\t\t\t<PanelBody title={ title }>{ mappedSettings }</PanelBody>\n\t\t\t<PanelBody>{ children }</PanelBody>\n\t\t</>\n\t);\n}\n"]}
@@ -35,15 +35,24 @@ function ContrastCheckerMessage(_ref) {
35
35
  colordBackgroundColor,
36
36
  colordTextColor,
37
37
  backgroundColor,
38
- textColor
38
+ textColor,
39
+ shouldShowTransparencyWarning
39
40
  } = _ref;
40
- const msg = colordBackgroundColor.brightness() < colordTextColor.brightness() ? (0, _i18n.__)('This color combination may be hard for people to read. Try using a darker background color and/or a brighter text color.') : (0, _i18n.__)('This color combination may be hard for people to read. Try using a brighter background color and/or a darker text color.'); // Note: The `Notice` component can speak messages via its `spokenMessage`
41
+ let msg = '';
42
+
43
+ if (shouldShowTransparencyWarning) {
44
+ msg = (0, _i18n.__)('Transparent text may be hard for people to read.');
45
+ } else {
46
+ msg = colordBackgroundColor.brightness() < colordTextColor.brightness() ? (0, _i18n.__)('This color combination may be hard for people to read. Try using a darker background color and/or a brighter text color.') : (0, _i18n.__)('This color combination may be hard for people to read. Try using a brighter background color and/or a darker text color.');
47
+ } // Note: The `Notice` component can speak messages via its `spokenMessage`
41
48
  // prop, but the contrast checker requires granular control over when the
42
49
  // announcements are made. Notably, the message will be re-announced if a
43
50
  // new color combination is selected and the contrast is still insufficient.
44
51
 
52
+
45
53
  (0, _element.useEffect)(() => {
46
- (0, _a11y2.speak)((0, _i18n.__)('This color combination may be hard for people to read.'));
54
+ const speakMsg = shouldShowTransparencyWarning ? (0, _i18n.__)('Transparent text may be hard for people to read.') : (0, _i18n.__)('This color combination may be hard for people to read.');
55
+ (0, _a11y2.speak)(speakMsg);
47
56
  }, [backgroundColor, textColor]);
48
57
  return (0, _element.createElement)("div", {
49
58
  className: "block-editor-contrast-checker"
@@ -62,7 +71,8 @@ function ContrastChecker(_ref2) {
62
71
  fontSize,
63
72
  // font size value in pixels
64
73
  isLargeText,
65
- textColor
74
+ textColor,
75
+ enableAlphaChecker = false
66
76
  } = _ref2;
67
77
 
68
78
  if (!(backgroundColor || fallbackBackgroundColor) || !(textColor || fallbackTextColor)) {
@@ -71,20 +81,35 @@ function ContrastChecker(_ref2) {
71
81
 
72
82
  const colordBackgroundColor = (0, _colord.colord)(backgroundColor || fallbackBackgroundColor);
73
83
  const colordTextColor = (0, _colord.colord)(textColor || fallbackTextColor);
74
- const hasTransparency = colordBackgroundColor.alpha() !== 1 || colordTextColor.alpha() !== 1;
75
-
76
- if (hasTransparency || colordTextColor.isReadable(colordBackgroundColor, {
84
+ const textColorHasTransparency = colordTextColor.alpha() < 1;
85
+ const backgroundColorHasTransparency = colordBackgroundColor.alpha() < 1;
86
+ const hasTransparency = textColorHasTransparency || backgroundColorHasTransparency;
87
+ const isReadable = colordTextColor.isReadable(colordBackgroundColor, {
77
88
  level: 'AA',
78
89
  size: isLargeText || isLargeText !== false && fontSize >= 24 ? 'large' : 'small'
79
- })) {
90
+ }); // Don't show the message if the text is readable AND there's no transparency.
91
+ // This is the default.
92
+
93
+ if (isReadable && !hasTransparency) {
80
94
  return null;
81
95
  }
82
96
 
97
+ if (hasTransparency) {
98
+ if ( // If there's transparency, don't show the message if the alpha checker is disabled.
99
+ !enableAlphaChecker || // If the alpha checker is enabled, we only show the warning if the text has transparency.
100
+ isReadable && !textColorHasTransparency) {
101
+ return null;
102
+ }
103
+ }
104
+
83
105
  return (0, _element.createElement)(ContrastCheckerMessage, {
84
106
  backgroundColor: backgroundColor,
85
107
  textColor: textColor,
86
108
  colordBackgroundColor: colordBackgroundColor,
87
- colordTextColor: colordTextColor
109
+ colordTextColor: colordTextColor // Flag to warn about transparency only if the text is otherwise readable according to colord
110
+ // to ensure the readability warnings take precedence.
111
+ ,
112
+ shouldShowTransparencyWarning: isReadable && textColorHasTransparency
88
113
  });
89
114
  }
90
115
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/contrast-checker/index.js"],"names":["namesPlugin","a11yPlugin","ContrastCheckerMessage","colordBackgroundColor","colordTextColor","backgroundColor","textColor","msg","brightness","ContrastChecker","fallbackBackgroundColor","fallbackTextColor","fontSize","isLargeText","hasTransparency","alpha","isReadable","level","size"],"mappings":";;;;;;;;;AAaA;;AAVA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AAZA;AACA;AACA;;AAKA;AACA;AACA;AAMA,oBAAQ,CAAEA,cAAF,EAAeC,aAAf,CAAR;;AAEA,SAASC,sBAAT,OAKI;AAAA,MAL6B;AAChCC,IAAAA,qBADgC;AAEhCC,IAAAA,eAFgC;AAGhCC,IAAAA,eAHgC;AAIhCC,IAAAA;AAJgC,GAK7B;AACH,QAAMC,GAAG,GACRJ,qBAAqB,CAACK,UAAtB,KAAqCJ,eAAe,CAACI,UAAhB,EAArC,GACG,cACA,0HADA,CADH,GAIG,cACA,0HADA,CALJ,CADG,CAUH;AACA;AACA;AACA;;AACA,0BAAW,MAAM;AAChB,sBAAO,cAAI,wDAAJ,CAAP;AACA,GAFD,EAEG,CAAEH,eAAF,EAAmBC,SAAnB,CAFH;AAIA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,kBAAD;AACC,IAAA,aAAa,EAAG,IADjB;AAEC,IAAA,MAAM,EAAC,SAFR;AAGC,IAAA,aAAa,EAAG;AAHjB,KAKGC,GALH,CADD,CADD;AAWA;;AAED,SAASE,eAAT,QAOI;AAAA,MAPsB;AACzBJ,IAAAA,eADyB;AAEzBK,IAAAA,uBAFyB;AAGzBC,IAAAA,iBAHyB;AAIzBC,IAAAA,QAJyB;AAIf;AACVC,IAAAA,WALyB;AAMzBP,IAAAA;AANyB,GAOtB;;AACH,MACC,EAAID,eAAe,IAAIK,uBAAvB,KACA,EAAIJ,SAAS,IAAIK,iBAAjB,CAFD,EAGE;AACD,WAAO,IAAP;AACA;;AACD,QAAMR,qBAAqB,GAAG,oBAC7BE,eAAe,IAAIK,uBADU,CAA9B;AAGA,QAAMN,eAAe,GAAG,oBAAQE,SAAS,IAAIK,iBAArB,CAAxB;AACA,QAAMG,eAAe,GACpBX,qBAAqB,CAACY,KAAtB,OAAkC,CAAlC,IAAuCX,eAAe,CAACW,KAAhB,OAA4B,CADpE;;AAGA,MACCD,eAAe,IACfV,eAAe,CAACY,UAAhB,CAA4Bb,qBAA5B,EAAmD;AAClDc,IAAAA,KAAK,EAAE,IAD2C;AAElDC,IAAAA,IAAI,EACHL,WAAW,IAAMA,WAAW,KAAK,KAAhB,IAAyBD,QAAQ,IAAI,EAAtD,GACG,OADH,GAEG;AAL8C,GAAnD,CAFD,EASE;AACD,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,sBAAD;AACC,IAAA,eAAe,EAAGP,eADnB;AAEC,IAAA,SAAS,EAAGC,SAFb;AAGC,IAAA,qBAAqB,EAAGH,qBAHzB;AAIC,IAAA,eAAe,EAAGC;AAJnB,IADD;AAQA;;eAEcK,e","sourcesContent":["/**\n * External dependencies\n */\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\nimport a11yPlugin from 'colord/plugins/a11y';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __ } from '@wordpress/i18n';\nimport { Notice } from '@wordpress/components';\nimport { useEffect } from '@wordpress/element';\n\nextend( [ namesPlugin, a11yPlugin ] );\n\nfunction ContrastCheckerMessage( {\n\tcolordBackgroundColor,\n\tcolordTextColor,\n\tbackgroundColor,\n\ttextColor,\n} ) {\n\tconst msg =\n\t\tcolordBackgroundColor.brightness() < colordTextColor.brightness()\n\t\t\t? __(\n\t\t\t\t\t'This color combination may be hard for people to read. Try using a darker background color and/or a brighter text color.'\n\t\t\t )\n\t\t\t: __(\n\t\t\t\t\t'This color combination may be hard for people to read. Try using a brighter background color and/or a darker text color.'\n\t\t\t );\n\n\t// Note: The `Notice` component can speak messages via its `spokenMessage`\n\t// prop, but the contrast checker requires granular control over when the\n\t// announcements are made. Notably, the message will be re-announced if a\n\t// new color combination is selected and the contrast is still insufficient.\n\tuseEffect( () => {\n\t\tspeak( __( 'This color combination may be hard for people to read.' ) );\n\t}, [ backgroundColor, textColor ] );\n\n\treturn (\n\t\t<div className=\"block-editor-contrast-checker\">\n\t\t\t<Notice\n\t\t\t\tspokenMessage={ null }\n\t\t\t\tstatus=\"warning\"\n\t\t\t\tisDismissible={ false }\n\t\t\t>\n\t\t\t\t{ msg }\n\t\t\t</Notice>\n\t\t</div>\n\t);\n}\n\nfunction ContrastChecker( {\n\tbackgroundColor,\n\tfallbackBackgroundColor,\n\tfallbackTextColor,\n\tfontSize, // font size value in pixels\n\tisLargeText,\n\ttextColor,\n} ) {\n\tif (\n\t\t! ( backgroundColor || fallbackBackgroundColor ) ||\n\t\t! ( textColor || fallbackTextColor )\n\t) {\n\t\treturn null;\n\t}\n\tconst colordBackgroundColor = colord(\n\t\tbackgroundColor || fallbackBackgroundColor\n\t);\n\tconst colordTextColor = colord( textColor || fallbackTextColor );\n\tconst hasTransparency =\n\t\tcolordBackgroundColor.alpha() !== 1 || colordTextColor.alpha() !== 1;\n\n\tif (\n\t\thasTransparency ||\n\t\tcolordTextColor.isReadable( colordBackgroundColor, {\n\t\t\tlevel: 'AA',\n\t\t\tsize:\n\t\t\t\tisLargeText || ( isLargeText !== false && fontSize >= 24 )\n\t\t\t\t\t? 'large'\n\t\t\t\t\t: 'small',\n\t\t} )\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ContrastCheckerMessage\n\t\t\tbackgroundColor={ backgroundColor }\n\t\t\ttextColor={ textColor }\n\t\t\tcolordBackgroundColor={ colordBackgroundColor }\n\t\t\tcolordTextColor={ colordTextColor }\n\t\t/>\n\t);\n}\n\nexport default ContrastChecker;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/contrast-checker/index.js"],"names":["namesPlugin","a11yPlugin","ContrastCheckerMessage","colordBackgroundColor","colordTextColor","backgroundColor","textColor","shouldShowTransparencyWarning","msg","brightness","speakMsg","ContrastChecker","fallbackBackgroundColor","fallbackTextColor","fontSize","isLargeText","enableAlphaChecker","textColorHasTransparency","alpha","backgroundColorHasTransparency","hasTransparency","isReadable","level","size"],"mappings":";;;;;;;;;AAaA;;AAVA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AAZA;AACA;AACA;;AAKA;AACA;AACA;AAMA,oBAAQ,CAAEA,cAAF,EAAeC,aAAf,CAAR;;AAEA,SAASC,sBAAT,OAMI;AAAA,MAN6B;AAChCC,IAAAA,qBADgC;AAEhCC,IAAAA,eAFgC;AAGhCC,IAAAA,eAHgC;AAIhCC,IAAAA,SAJgC;AAKhCC,IAAAA;AALgC,GAM7B;AACH,MAAIC,GAAG,GAAG,EAAV;;AACA,MAAKD,6BAAL,EAAqC;AACpCC,IAAAA,GAAG,GAAG,cAAI,kDAAJ,CAAN;AACA,GAFD,MAEO;AACNA,IAAAA,GAAG,GACFL,qBAAqB,CAACM,UAAtB,KAAqCL,eAAe,CAACK,UAAhB,EAArC,GACG,cACA,0HADA,CADH,GAIG,cACA,0HADA,CALJ;AAQA,GAbE,CAeH;AACA;AACA;AACA;;;AACA,0BAAW,MAAM;AAChB,UAAMC,QAAQ,GAAGH,6BAA6B,GAC3C,cAAI,kDAAJ,CAD2C,GAE3C,cAAI,wDAAJ,CAFH;AAGA,sBAAOG,QAAP;AACA,GALD,EAKG,CAAEL,eAAF,EAAmBC,SAAnB,CALH;AAOA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,kBAAD;AACC,IAAA,aAAa,EAAG,IADjB;AAEC,IAAA,MAAM,EAAC,SAFR;AAGC,IAAA,aAAa,EAAG;AAHjB,KAKGE,GALH,CADD,CADD;AAWA;;AAED,SAASG,eAAT,QAQI;AAAA,MARsB;AACzBN,IAAAA,eADyB;AAEzBO,IAAAA,uBAFyB;AAGzBC,IAAAA,iBAHyB;AAIzBC,IAAAA,QAJyB;AAIf;AACVC,IAAAA,WALyB;AAMzBT,IAAAA,SANyB;AAOzBU,IAAAA,kBAAkB,GAAG;AAPI,GAQtB;;AACH,MACC,EAAIX,eAAe,IAAIO,uBAAvB,KACA,EAAIN,SAAS,IAAIO,iBAAjB,CAFD,EAGE;AACD,WAAO,IAAP;AACA;;AACD,QAAMV,qBAAqB,GAAG,oBAC7BE,eAAe,IAAIO,uBADU,CAA9B;AAGA,QAAMR,eAAe,GAAG,oBAAQE,SAAS,IAAIO,iBAArB,CAAxB;AACA,QAAMI,wBAAwB,GAAGb,eAAe,CAACc,KAAhB,KAA0B,CAA3D;AACA,QAAMC,8BAA8B,GAAGhB,qBAAqB,CAACe,KAAtB,KAAgC,CAAvE;AACA,QAAME,eAAe,GACpBH,wBAAwB,IAAIE,8BAD7B;AAEA,QAAME,UAAU,GAAGjB,eAAe,CAACiB,UAAhB,CAA4BlB,qBAA5B,EAAmD;AACrEmB,IAAAA,KAAK,EAAE,IAD8D;AAErEC,IAAAA,IAAI,EACHR,WAAW,IAAMA,WAAW,KAAK,KAAhB,IAAyBD,QAAQ,IAAI,EAAtD,GACG,OADH,GAEG;AALiE,GAAnD,CAAnB,CAfG,CAuBH;AACA;;AACA,MAAKO,UAAU,IAAI,CAAED,eAArB,EAAuC;AACtC,WAAO,IAAP;AACA;;AAED,MAAKA,eAAL,EAAuB;AACtB,SACC;AACA,KAAEJ,kBAAF,IACA;AACEK,IAAAA,UAAU,IAAI,CAAEJ,wBAJnB,EAKE;AACD,aAAO,IAAP;AACA;AACD;;AAED,SACC,4BAAC,sBAAD;AACC,IAAA,eAAe,EAAGZ,eADnB;AAEC,IAAA,SAAS,EAAGC,SAFb;AAGC,IAAA,qBAAqB,EAAGH,qBAHzB;AAIC,IAAA,eAAe,EAAGC,eAJnB,CAKC;AACA;AAND;AAOC,IAAA,6BAA6B,EAC5BiB,UAAU,IAAIJ;AARhB,IADD;AAaA;;eAEcN,e","sourcesContent":["/**\n * External dependencies\n */\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\nimport a11yPlugin from 'colord/plugins/a11y';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __ } from '@wordpress/i18n';\nimport { Notice } from '@wordpress/components';\nimport { useEffect } from '@wordpress/element';\n\nextend( [ namesPlugin, a11yPlugin ] );\n\nfunction ContrastCheckerMessage( {\n\tcolordBackgroundColor,\n\tcolordTextColor,\n\tbackgroundColor,\n\ttextColor,\n\tshouldShowTransparencyWarning,\n} ) {\n\tlet msg = '';\n\tif ( shouldShowTransparencyWarning ) {\n\t\tmsg = __( 'Transparent text may be hard for people to read.' );\n\t} else {\n\t\tmsg =\n\t\t\tcolordBackgroundColor.brightness() < colordTextColor.brightness()\n\t\t\t\t? __(\n\t\t\t\t\t\t'This color combination may be hard for people to read. Try using a darker background color and/or a brighter text color.'\n\t\t\t\t )\n\t\t\t\t: __(\n\t\t\t\t\t\t'This color combination may be hard for people to read. Try using a brighter background color and/or a darker text color.'\n\t\t\t\t );\n\t}\n\n\t// Note: The `Notice` component can speak messages via its `spokenMessage`\n\t// prop, but the contrast checker requires granular control over when the\n\t// announcements are made. Notably, the message will be re-announced if a\n\t// new color combination is selected and the contrast is still insufficient.\n\tuseEffect( () => {\n\t\tconst speakMsg = shouldShowTransparencyWarning\n\t\t\t? __( 'Transparent text may be hard for people to read.' )\n\t\t\t: __( 'This color combination may be hard for people to read.' );\n\t\tspeak( speakMsg );\n\t}, [ backgroundColor, textColor ] );\n\n\treturn (\n\t\t<div className=\"block-editor-contrast-checker\">\n\t\t\t<Notice\n\t\t\t\tspokenMessage={ null }\n\t\t\t\tstatus=\"warning\"\n\t\t\t\tisDismissible={ false }\n\t\t\t>\n\t\t\t\t{ msg }\n\t\t\t</Notice>\n\t\t</div>\n\t);\n}\n\nfunction ContrastChecker( {\n\tbackgroundColor,\n\tfallbackBackgroundColor,\n\tfallbackTextColor,\n\tfontSize, // font size value in pixels\n\tisLargeText,\n\ttextColor,\n\tenableAlphaChecker = false,\n} ) {\n\tif (\n\t\t! ( backgroundColor || fallbackBackgroundColor ) ||\n\t\t! ( textColor || fallbackTextColor )\n\t) {\n\t\treturn null;\n\t}\n\tconst colordBackgroundColor = colord(\n\t\tbackgroundColor || fallbackBackgroundColor\n\t);\n\tconst colordTextColor = colord( textColor || fallbackTextColor );\n\tconst textColorHasTransparency = colordTextColor.alpha() < 1;\n\tconst backgroundColorHasTransparency = colordBackgroundColor.alpha() < 1;\n\tconst hasTransparency =\n\t\ttextColorHasTransparency || backgroundColorHasTransparency;\n\tconst isReadable = colordTextColor.isReadable( colordBackgroundColor, {\n\t\tlevel: 'AA',\n\t\tsize:\n\t\t\tisLargeText || ( isLargeText !== false && fontSize >= 24 )\n\t\t\t\t? 'large'\n\t\t\t\t: 'small',\n\t} );\n\n\t// Don't show the message if the text is readable AND there's no transparency.\n\t// This is the default.\n\tif ( isReadable && ! hasTransparency ) {\n\t\treturn null;\n\t}\n\n\tif ( hasTransparency ) {\n\t\tif (\n\t\t\t// If there's transparency, don't show the message if the alpha checker is disabled.\n\t\t\t! enableAlphaChecker ||\n\t\t\t// If the alpha checker is enabled, we only show the warning if the text has transparency.\n\t\t\t( isReadable && ! textColorHasTransparency )\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\treturn (\n\t\t<ContrastCheckerMessage\n\t\t\tbackgroundColor={ backgroundColor }\n\t\t\ttextColor={ textColor }\n\t\t\tcolordBackgroundColor={ colordBackgroundColor }\n\t\t\tcolordTextColor={ colordTextColor }\n\t\t\t// Flag to warn about transparency only if the text is otherwise readable according to colord\n\t\t\t// to ensure the readability warnings take precedence.\n\t\t\tshouldShowTransparencyWarning={\n\t\t\t\tisReadable && textColorHasTransparency\n\t\t\t}\n\t\t/>\n\t);\n}\n\nexport default ContrastChecker;\n"]}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _element = require("@wordpress/element");
11
+
12
+ var _reactNative = require("react-native");
13
+
14
+ var _colord = require("colord");
15
+
16
+ var _names = _interopRequireDefault(require("colord/plugins/names"));
17
+
18
+ var _a11y = _interopRequireDefault(require("colord/plugins/a11y"));
19
+
20
+ var _a11y2 = require("@wordpress/a11y");
21
+
22
+ var _i18n = require("@wordpress/i18n");
23
+
24
+ var _compose = require("@wordpress/compose");
25
+
26
+ var _icons = require("@wordpress/icons");
27
+
28
+ var _style = _interopRequireDefault(require("./style.scss"));
29
+
30
+ /**
31
+ * External dependencies
32
+ */
33
+
34
+ /**
35
+ * WordPress dependencies
36
+ */
37
+
38
+ /**
39
+ * Internal dependencies
40
+ */
41
+ (0, _colord.extend)([_names.default, _a11y.default]);
42
+
43
+ function ContrastCheckerMessage(_ref) {
44
+ let {
45
+ colordBackgroundColor,
46
+ colordTextColor,
47
+ backgroundColor,
48
+ textColor,
49
+ msgStyle
50
+ } = _ref;
51
+ const msg = colordBackgroundColor.brightness() < colordTextColor.brightness() ? (0, _i18n.__)('This color combination may be hard for people to read. Try using a darker background color and/or a brighter text color.') : (0, _i18n.__)('This color combination may be hard for people to read. Try using a brighter background color and/or a darker text color.'); // Note: The `Notice` component can speak messages via its `spokenMessage`
52
+ // prop, but the contrast checker requires granular control over when the
53
+ // announcements are made. Notably, the message will be re-announced if a
54
+ // new color combination is selected and the contrast is still insufficient.
55
+
56
+ (0, _element.useEffect)(() => {
57
+ (0, _a11y2.speak)((0, _i18n.__)('This color combination may be hard for people to read.'));
58
+ }, [backgroundColor, textColor]);
59
+ const iconStyle = (0, _compose.usePreferredColorSchemeStyle)(_style.default['block-editor-contrast-checker__icon'], _style.default['block-editor-contrast-checker__icon-dark']);
60
+ return (0, _element.createElement)(_reactNative.View, {
61
+ style: _style.default['block-editor-contrast-checker']
62
+ }, (0, _element.createElement)(_icons.Icon, {
63
+ style: iconStyle,
64
+ icon: _icons.warning
65
+ }), (0, _element.createElement)(_reactNative.Text, {
66
+ style: msgStyle
67
+ }, msg));
68
+ }
69
+
70
+ function ContrastChecker(_ref2) {
71
+ let {
72
+ backgroundColor,
73
+ fallbackBackgroundColor,
74
+ fallbackTextColor,
75
+ fontSize,
76
+ // font size value in pixels
77
+ isLargeText,
78
+ textColor
79
+ } = _ref2;
80
+ const msgStyle = (0, _compose.usePreferredColorSchemeStyle)(_style.default['block-editor-contrast-checker__notice'], _style.default['block-editor-contrast-checker__notice-dark']);
81
+
82
+ if (!(backgroundColor || fallbackBackgroundColor) || !(textColor || fallbackTextColor)) {
83
+ return null;
84
+ }
85
+
86
+ const colordBackgroundColor = (0, _colord.colord)(backgroundColor || fallbackBackgroundColor);
87
+ const colordTextColor = (0, _colord.colord)(textColor || fallbackTextColor);
88
+ const hasTransparency = colordBackgroundColor.alpha() !== 1 || colordTextColor.alpha() !== 1;
89
+
90
+ if (hasTransparency || colordTextColor.isReadable(colordBackgroundColor, {
91
+ level: 'AA',
92
+ size: isLargeText || isLargeText !== false && fontSize >= 24 ? 'large' : 'small'
93
+ })) {
94
+ return null;
95
+ }
96
+
97
+ return (0, _element.createElement)(ContrastCheckerMessage, {
98
+ backgroundColor: backgroundColor,
99
+ textColor: textColor,
100
+ colordBackgroundColor: colordBackgroundColor,
101
+ colordTextColor: colordTextColor,
102
+ msgStyle: msgStyle
103
+ });
104
+ }
105
+
106
+ var _default = ContrastChecker;
107
+ exports.default = _default;
108
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/contrast-checker/index.native.js"],"names":["namesPlugin","a11yPlugin","ContrastCheckerMessage","colordBackgroundColor","colordTextColor","backgroundColor","textColor","msgStyle","msg","brightness","iconStyle","styles","warning","ContrastChecker","fallbackBackgroundColor","fallbackTextColor","fontSize","isLargeText","hasTransparency","alpha","isReadable","level","size"],"mappings":";;;;;;;;;AAaA;;AAVA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAEA;;AACA;;AAIA;;AAnBA;AACA;AACA;;AAMA;AACA;AACA;;AAMA;AACA;AACA;AAGA,oBAAQ,CAAEA,cAAF,EAAeC,aAAf,CAAR;;AAEA,SAASC,sBAAT,OAMI;AAAA,MAN6B;AAChCC,IAAAA,qBADgC;AAEhCC,IAAAA,eAFgC;AAGhCC,IAAAA,eAHgC;AAIhCC,IAAAA,SAJgC;AAKhCC,IAAAA;AALgC,GAM7B;AACH,QAAMC,GAAG,GACRL,qBAAqB,CAACM,UAAtB,KAAqCL,eAAe,CAACK,UAAhB,EAArC,GACG,cACA,0HADA,CADH,GAIG,cACA,0HADA,CALJ,CADG,CAUH;AACA;AACA;AACA;;AACA,0BAAW,MAAM;AAChB,sBAAO,cAAI,wDAAJ,CAAP;AACA,GAFD,EAEG,CAAEJ,eAAF,EAAmBC,SAAnB,CAFH;AAIA,QAAMI,SAAS,GAAG,2CACjBC,eAAQ,qCAAR,CADiB,EAEjBA,eAAQ,0CAAR,CAFiB,CAAlB;AAKA,SACC,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGA,eAAQ,+BAAR;AAAd,KACC,4BAAC,WAAD;AAAM,IAAA,KAAK,EAAGD,SAAd;AAA0B,IAAA,IAAI,EAAGE;AAAjC,IADD,EAEC,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGL;AAAd,KAA2BC,GAA3B,CAFD,CADD;AAMA;;AAED,SAASK,eAAT,QAOI;AAAA,MAPsB;AACzBR,IAAAA,eADyB;AAEzBS,IAAAA,uBAFyB;AAGzBC,IAAAA,iBAHyB;AAIzBC,IAAAA,QAJyB;AAIf;AACVC,IAAAA,WALyB;AAMzBX,IAAAA;AANyB,GAOtB;AACH,QAAMC,QAAQ,GAAG,2CAChBI,eAAQ,uCAAR,CADgB,EAEhBA,eAAQ,4CAAR,CAFgB,CAAjB;;AAKA,MACC,EAAIN,eAAe,IAAIS,uBAAvB,KACA,EAAIR,SAAS,IAAIS,iBAAjB,CAFD,EAGE;AACD,WAAO,IAAP;AACA;;AAED,QAAMZ,qBAAqB,GAAG,oBAC7BE,eAAe,IAAIS,uBADU,CAA9B;AAGA,QAAMV,eAAe,GAAG,oBAAQE,SAAS,IAAIS,iBAArB,CAAxB;AAEA,QAAMG,eAAe,GACpBf,qBAAqB,CAACgB,KAAtB,OAAkC,CAAlC,IAAuCf,eAAe,CAACe,KAAhB,OAA4B,CADpE;;AAGA,MACCD,eAAe,IACfd,eAAe,CAACgB,UAAhB,CAA4BjB,qBAA5B,EAAmD;AAClDkB,IAAAA,KAAK,EAAE,IAD2C;AAElDC,IAAAA,IAAI,EACHL,WAAW,IAAMA,WAAW,KAAK,KAAhB,IAAyBD,QAAQ,IAAI,EAAtD,GACG,OADH,GAEG;AAL8C,GAAnD,CAFD,EASE;AACD,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,sBAAD;AACC,IAAA,eAAe,EAAGX,eADnB;AAEC,IAAA,SAAS,EAAGC,SAFb;AAGC,IAAA,qBAAqB,EAAGH,qBAHzB;AAIC,IAAA,eAAe,EAAGC,eAJnB;AAKC,IAAA,QAAQ,EAAGG;AALZ,IADD;AASA;;eAEcM,e","sourcesContent":["/**\n * External dependencies\n */\nimport { Text, View } from 'react-native';\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\nimport a11yPlugin from 'colord/plugins/a11y';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __ } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { Icon, warning } from '@wordpress/icons';\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nextend( [ namesPlugin, a11yPlugin ] );\n\nfunction ContrastCheckerMessage( {\n\tcolordBackgroundColor,\n\tcolordTextColor,\n\tbackgroundColor,\n\ttextColor,\n\tmsgStyle,\n} ) {\n\tconst msg =\n\t\tcolordBackgroundColor.brightness() < colordTextColor.brightness()\n\t\t\t? __(\n\t\t\t\t\t'This color combination may be hard for people to read. Try using a darker background color and/or a brighter text color.'\n\t\t\t )\n\t\t\t: __(\n\t\t\t\t\t'This color combination may be hard for people to read. Try using a brighter background color and/or a darker text color.'\n\t\t\t );\n\n\t// Note: The `Notice` component can speak messages via its `spokenMessage`\n\t// prop, but the contrast checker requires granular control over when the\n\t// announcements are made. Notably, the message will be re-announced if a\n\t// new color combination is selected and the contrast is still insufficient.\n\tuseEffect( () => {\n\t\tspeak( __( 'This color combination may be hard for people to read.' ) );\n\t}, [ backgroundColor, textColor ] );\n\n\tconst iconStyle = usePreferredColorSchemeStyle(\n\t\tstyles[ 'block-editor-contrast-checker__icon' ],\n\t\tstyles[ 'block-editor-contrast-checker__icon-dark' ]\n\t);\n\n\treturn (\n\t\t<View style={ styles[ 'block-editor-contrast-checker' ] }>\n\t\t\t<Icon style={ iconStyle } icon={ warning } />\n\t\t\t<Text style={ msgStyle }>{ msg }</Text>\n\t\t</View>\n\t);\n}\n\nfunction ContrastChecker( {\n\tbackgroundColor,\n\tfallbackBackgroundColor,\n\tfallbackTextColor,\n\tfontSize, // font size value in pixels\n\tisLargeText,\n\ttextColor,\n} ) {\n\tconst msgStyle = usePreferredColorSchemeStyle(\n\t\tstyles[ 'block-editor-contrast-checker__notice' ],\n\t\tstyles[ 'block-editor-contrast-checker__notice-dark' ]\n\t);\n\n\tif (\n\t\t! ( backgroundColor || fallbackBackgroundColor ) ||\n\t\t! ( textColor || fallbackTextColor )\n\t) {\n\t\treturn null;\n\t}\n\n\tconst colordBackgroundColor = colord(\n\t\tbackgroundColor || fallbackBackgroundColor\n\t);\n\tconst colordTextColor = colord( textColor || fallbackTextColor );\n\n\tconst hasTransparency =\n\t\tcolordBackgroundColor.alpha() !== 1 || colordTextColor.alpha() !== 1;\n\n\tif (\n\t\thasTransparency ||\n\t\tcolordTextColor.isReadable( colordBackgroundColor, {\n\t\t\tlevel: 'AA',\n\t\t\tsize:\n\t\t\t\tisLargeText || ( isLargeText !== false && fontSize >= 24 )\n\t\t\t\t\t? 'large'\n\t\t\t\t\t: 'small',\n\t\t} )\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ContrastCheckerMessage\n\t\t\tbackgroundColor={ backgroundColor }\n\t\t\ttextColor={ textColor }\n\t\t\tcolordBackgroundColor={ colordBackgroundColor }\n\t\t\tcolordTextColor={ colordTextColor }\n\t\t\tmsgStyle={ msgStyle }\n\t\t/>\n\t);\n}\n\nexport default ContrastChecker;\n"]}
@@ -16,12 +16,12 @@ var _i18n = require("@wordpress/i18n");
16
16
 
17
17
  var _compose = require("@wordpress/compose");
18
18
 
19
- var _blocks = require("@wordpress/blocks");
20
-
21
19
  var _htmlEntities = require("@wordpress/html-entities");
22
20
 
23
21
  var _data = require("@wordpress/data");
24
22
 
23
+ var _keycodes = require("@wordpress/keycodes");
24
+
25
25
  var _inserter = _interopRequireDefault(require("../inserter"));
26
26
 
27
27
  var _store = require("../../store");
@@ -48,14 +48,13 @@ exports.ZWNBSP = ZWNBSP;
48
48
  function DefaultBlockAppender(_ref) {
49
49
  let {
50
50
  isLocked,
51
- isVisible,
52
51
  onAppend,
53
52
  showPrompt,
54
53
  placeholder,
55
54
  rootClientId
56
55
  } = _ref;
57
56
 
58
- if (isLocked || !isVisible) {
57
+ if (isLocked) {
59
58
  return null;
60
59
  }
61
60
 
@@ -66,21 +65,24 @@ function DefaultBlockAppender(_ref) {
66
65
  'has-visible-prompt': showPrompt
67
66
  })
68
67
  }, (0, _element.createElement)("p", {
69
- tabIndex: "0" // Only necessary for `useCanvasClickRedirect` to consider it
70
- // as a target. Ideally it should consider any tabbable target,
71
- // but the inserter is rendered in place while it should be
72
- // rendered in a popover, just like it does for an empty
73
- // paragraph block.
74
- ,
75
- contentEditable: true,
76
- suppressContentEditableWarning: true // We want this element to be styled as a paragraph by themes.
68
+ tabIndex: "0" // We want this element to be styled as a paragraph by themes.
77
69
  // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
78
70
  ,
79
71
  role: "button",
80
- "aria-label": (0, _i18n.__)('Add block') // A wrapping container for this one already has the wp-block className.
72
+ "aria-label": (0, _i18n.__)('Add default block') // A wrapping container for this one already has the wp-block className.
81
73
  ,
82
74
  className: "block-editor-default-block-appender__content",
83
- onFocus: onAppend
75
+ onKeyDown: event => {
76
+ if (_keycodes.ENTER === event.keyCode || _keycodes.SPACE === event.keyCode) {
77
+ onAppend();
78
+ }
79
+ },
80
+ onClick: () => onAppend(),
81
+ onFocus: () => {
82
+ if (showPrompt) {
83
+ onAppend();
84
+ }
85
+ }
84
86
  }, showPrompt ? value : ZWNBSP), (0, _element.createElement)(_inserter.default, {
85
87
  rootClientId: rootClientId,
86
88
  position: "bottom right",
@@ -92,19 +94,14 @@ function DefaultBlockAppender(_ref) {
92
94
  var _default = (0, _compose.compose)((0, _data.withSelect)((select, ownProps) => {
93
95
  const {
94
96
  getBlockCount,
95
- getBlockName,
96
- isBlockValid,
97
97
  getSettings,
98
98
  getTemplateLock
99
99
  } = select(_store.store);
100
100
  const isEmpty = !getBlockCount(ownProps.rootClientId);
101
- const isLastBlockDefault = getBlockName(ownProps.lastBlockClientId) === (0, _blocks.getDefaultBlockName)();
102
- const isLastBlockValid = isBlockValid(ownProps.lastBlockClientId);
103
101
  const {
104
102
  bodyPlaceholder
105
103
  } = getSettings();
106
104
  return {
107
- isVisible: isEmpty || !isLastBlockDefault || !isLastBlockValid,
108
105
  showPrompt: isEmpty,
109
106
  isLocked: !!getTemplateLock(ownProps.rootClientId),
110
107
  placeholder: bodyPlaceholder
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/default-block-appender/index.js"],"names":["ZWNBSP","DefaultBlockAppender","isLocked","isVisible","onAppend","showPrompt","placeholder","rootClientId","value","select","ownProps","getBlockCount","getBlockName","isBlockValid","getSettings","getTemplateLock","blockEditorStore","isEmpty","isLastBlockDefault","lastBlockClientId","isLastBlockValid","bodyPlaceholder","dispatch","insertDefaultBlock","startTyping","undefined"],"mappings":";;;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAlBA;AACA;AACA;;AAGA;AACA;AACA;;AAOA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACO,MAAMA,MAAM,GAAG,QAAf;;;AAEA,SAASC,oBAAT,OAOH;AAAA,MAPkC;AACrCC,IAAAA,QADqC;AAErCC,IAAAA,SAFqC;AAGrCC,IAAAA,QAHqC;AAIrCC,IAAAA,UAJqC;AAKrCC,IAAAA,WALqC;AAMrCC,IAAAA;AANqC,GAOlC;;AACH,MAAKL,QAAQ,IAAI,CAAEC,SAAnB,EAA+B;AAC9B,WAAO,IAAP;AACA;;AAED,QAAMK,KAAK,GACV,kCAAgBF,WAAhB,KAAiC,cAAI,0BAAJ,CADlC;AAGA,SACC;AACC,2BAAsBC,YAAY,IAAI,EADvC;AAEC,IAAA,SAAS,EAAG,yBAAY,qCAAZ,EAAmD;AAC9D,4BAAsBF;AADwC,KAAnD;AAFb,KAMC;AACC,IAAA,QAAQ,EAAC,GADV,CAEC;AACA;AACA;AACA;AACA;AAND;AAOC,IAAA,eAAe,MAPhB;AAQC,IAAA,8BAA8B,MAR/B,CASC;AACA;AAVD;AAWC,IAAA,IAAI,EAAC,QAXN;AAYC,kBAAa,cAAI,WAAJ,CAZd,CAaC;AAbD;AAcC,IAAA,SAAS,EAAC,8CAdX;AAeC,IAAA,OAAO,EAAGD;AAfX,KAiBGC,UAAU,GAAGG,KAAH,GAAWR,MAjBxB,CAND,EAyBC,4BAAC,iBAAD;AACC,IAAA,YAAY,EAAGO,YADhB;AAEC,IAAA,QAAQ,EAAC,cAFV;AAGC,IAAA,UAAU,MAHX;AAIC,IAAA,qBAAqB;AAJtB,IAzBD,CADD;AAkCA;;eAEc,sBACd,sBAAY,CAAEE,MAAF,EAAUC,QAAV,KAAwB;AACnC,QAAM;AACLC,IAAAA,aADK;AAELC,IAAAA,YAFK;AAGLC,IAAAA,YAHK;AAILC,IAAAA,WAJK;AAKLC,IAAAA;AALK,MAMFN,MAAM,CAAEO,YAAF,CANV;AAQA,QAAMC,OAAO,GAAG,CAAEN,aAAa,CAAED,QAAQ,CAACH,YAAX,CAA/B;AACA,QAAMW,kBAAkB,GACvBN,YAAY,CAAEF,QAAQ,CAACS,iBAAX,CAAZ,KACA,kCAFD;AAGA,QAAMC,gBAAgB,GAAGP,YAAY,CAAEH,QAAQ,CAACS,iBAAX,CAArC;AACA,QAAM;AAAEE,IAAAA;AAAF,MAAsBP,WAAW,EAAvC;AAEA,SAAO;AACNX,IAAAA,SAAS,EAAEc,OAAO,IAAI,CAAEC,kBAAb,IAAmC,CAAEE,gBAD1C;AAENf,IAAAA,UAAU,EAAEY,OAFN;AAGNf,IAAAA,QAAQ,EAAE,CAAC,CAAEa,eAAe,CAAEL,QAAQ,CAACH,YAAX,CAHtB;AAIND,IAAAA,WAAW,EAAEe;AAJP,GAAP;AAMA,CAtBD,CADc,EAwBd,wBAAc,CAAEC,QAAF,EAAYZ,QAAZ,KAA0B;AACvC,QAAM;AAAEa,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,MAAsCF,QAAQ,CACnDN,YADmD,CAApD;AAIA,SAAO;AACNZ,IAAAA,QAAQ,GAAG;AACV,YAAM;AAAEG,QAAAA;AAAF,UAAmBG,QAAzB;AAEAa,MAAAA,kBAAkB,CAAEE,SAAF,EAAalB,YAAb,CAAlB;AACAiB,MAAAA,WAAW;AACX;;AANK,GAAP;AAQA,CAbD,CAxBc,EAsCZvB,oBAtCY,C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { getDefaultBlockName } from '@wordpress/blocks';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { withSelect, withDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Zero width non-breaking space, used as padding for the paragraph when it is\n * empty.\n */\nexport const ZWNBSP = '\\ufeff';\n\nexport function DefaultBlockAppender( {\n\tisLocked,\n\tisVisible,\n\tonAppend,\n\tshowPrompt,\n\tplaceholder,\n\trootClientId,\n} ) {\n\tif ( isLocked || ! isVisible ) {\n\t\treturn null;\n\t}\n\n\tconst value =\n\t\tdecodeEntities( placeholder ) || __( 'Type / to choose a block' );\n\n\treturn (\n\t\t<div\n\t\t\tdata-root-client-id={ rootClientId || '' }\n\t\t\tclassName={ classnames( 'block-editor-default-block-appender', {\n\t\t\t\t'has-visible-prompt': showPrompt,\n\t\t\t} ) }\n\t\t>\n\t\t\t<p\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\t// Only necessary for `useCanvasClickRedirect` to consider it\n\t\t\t\t// as a target. Ideally it should consider any tabbable target,\n\t\t\t\t// but the inserter is rendered in place while it should be\n\t\t\t\t// rendered in a popover, just like it does for an empty\n\t\t\t\t// paragraph block.\n\t\t\t\tcontentEditable\n\t\t\t\tsuppressContentEditableWarning\n\t\t\t\t// We want this element to be styled as a paragraph by themes.\n\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\t\trole=\"button\"\n\t\t\t\taria-label={ __( 'Add block' ) }\n\t\t\t\t// A wrapping container for this one already has the wp-block className.\n\t\t\t\tclassName=\"block-editor-default-block-appender__content\"\n\t\t\t\tonFocus={ onAppend }\n\t\t\t>\n\t\t\t\t{ showPrompt ? value : ZWNBSP }\n\t\t\t</p>\n\t\t\t<Inserter\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tposition=\"bottom right\"\n\t\t\t\tisAppender\n\t\t\t\t__experimentalIsQuick\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default compose(\n\twithSelect( ( select, ownProps ) => {\n\t\tconst {\n\t\t\tgetBlockCount,\n\t\t\tgetBlockName,\n\t\t\tisBlockValid,\n\t\t\tgetSettings,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst isEmpty = ! getBlockCount( ownProps.rootClientId );\n\t\tconst isLastBlockDefault =\n\t\t\tgetBlockName( ownProps.lastBlockClientId ) ===\n\t\t\tgetDefaultBlockName();\n\t\tconst isLastBlockValid = isBlockValid( ownProps.lastBlockClientId );\n\t\tconst { bodyPlaceholder } = getSettings();\n\n\t\treturn {\n\t\t\tisVisible: isEmpty || ! isLastBlockDefault || ! isLastBlockValid,\n\t\t\tshowPrompt: isEmpty,\n\t\t\tisLocked: !! getTemplateLock( ownProps.rootClientId ),\n\t\t\tplaceholder: bodyPlaceholder,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps ) => {\n\t\tconst { insertDefaultBlock, startTyping } = dispatch(\n\t\t\tblockEditorStore\n\t\t);\n\n\t\treturn {\n\t\t\tonAppend() {\n\t\t\t\tconst { rootClientId } = ownProps;\n\n\t\t\t\tinsertDefaultBlock( undefined, rootClientId );\n\t\t\t\tstartTyping();\n\t\t\t},\n\t\t};\n\t} )\n)( DefaultBlockAppender );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/default-block-appender/index.js"],"names":["ZWNBSP","DefaultBlockAppender","isLocked","onAppend","showPrompt","placeholder","rootClientId","value","event","ENTER","keyCode","SPACE","select","ownProps","getBlockCount","getSettings","getTemplateLock","blockEditorStore","isEmpty","bodyPlaceholder","dispatch","insertDefaultBlock","startTyping","undefined"],"mappings":";;;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAlBA;AACA;AACA;;AAGA;AACA;AACA;;AAOA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACO,MAAMA,MAAM,GAAG,QAAf;;;AAEA,SAASC,oBAAT,OAMH;AAAA,MANkC;AACrCC,IAAAA,QADqC;AAErCC,IAAAA,QAFqC;AAGrCC,IAAAA,UAHqC;AAIrCC,IAAAA,WAJqC;AAKrCC,IAAAA;AALqC,GAMlC;;AACH,MAAKJ,QAAL,EAAgB;AACf,WAAO,IAAP;AACA;;AAED,QAAMK,KAAK,GACV,kCAAgBF,WAAhB,KAAiC,cAAI,0BAAJ,CADlC;AAGA,SACC;AACC,2BAAsBC,YAAY,IAAI,EADvC;AAEC,IAAA,SAAS,EAAG,yBAAY,qCAAZ,EAAmD;AAC9D,4BAAsBF;AADwC,KAAnD;AAFb,KAMC;AACC,IAAA,QAAQ,EAAC,GADV,CAEC;AACA;AAHD;AAIC,IAAA,IAAI,EAAC,QAJN;AAKC,kBAAa,cAAI,mBAAJ,CALd,CAMC;AAND;AAOC,IAAA,SAAS,EAAC,8CAPX;AAQC,IAAA,SAAS,EAAKI,KAAF,IAAa;AACxB,UAAKC,oBAAUD,KAAK,CAACE,OAAhB,IAA2BC,oBAAUH,KAAK,CAACE,OAAhD,EAA0D;AACzDP,QAAAA,QAAQ;AACR;AACD,KAZF;AAaC,IAAA,OAAO,EAAG,MAAMA,QAAQ,EAbzB;AAcC,IAAA,OAAO,EAAG,MAAM;AACf,UAAKC,UAAL,EAAkB;AACjBD,QAAAA,QAAQ;AACR;AACD;AAlBF,KAoBGC,UAAU,GAAGG,KAAH,GAAWP,MApBxB,CAND,EA4BC,4BAAC,iBAAD;AACC,IAAA,YAAY,EAAGM,YADhB;AAEC,IAAA,QAAQ,EAAC,cAFV;AAGC,IAAA,UAAU,MAHX;AAIC,IAAA,qBAAqB;AAJtB,IA5BD,CADD;AAqCA;;eAEc,sBACd,sBAAY,CAAEM,MAAF,EAAUC,QAAV,KAAwB;AACnC,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA,WAAjB;AAA8BC,IAAAA;AAA9B,MAAkDJ,MAAM,CAC7DK,YAD6D,CAA9D;AAIA,QAAMC,OAAO,GAAG,CAAEJ,aAAa,CAAED,QAAQ,CAACP,YAAX,CAA/B;AACA,QAAM;AAAEa,IAAAA;AAAF,MAAsBJ,WAAW,EAAvC;AAEA,SAAO;AACNX,IAAAA,UAAU,EAAEc,OADN;AAENhB,IAAAA,QAAQ,EAAE,CAAC,CAAEc,eAAe,CAAEH,QAAQ,CAACP,YAAX,CAFtB;AAGND,IAAAA,WAAW,EAAEc;AAHP,GAAP;AAKA,CAbD,CADc,EAed,wBAAc,CAAEC,QAAF,EAAYP,QAAZ,KAA0B;AACvC,QAAM;AAAEQ,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,MAAsCF,QAAQ,CACnDH,YADmD,CAApD;AAIA,SAAO;AACNd,IAAAA,QAAQ,GAAG;AACV,YAAM;AAAEG,QAAAA;AAAF,UAAmBO,QAAzB;AAEAQ,MAAAA,kBAAkB,CAAEE,SAAF,EAAajB,YAAb,CAAlB;AACAgB,MAAAA,WAAW;AACX;;AANK,GAAP;AAQA,CAbD,CAfc,EA6BZrB,oBA7BY,C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Zero width non-breaking space, used as padding for the paragraph when it is\n * empty.\n */\nexport const ZWNBSP = '\\ufeff';\n\nexport function DefaultBlockAppender( {\n\tisLocked,\n\tonAppend,\n\tshowPrompt,\n\tplaceholder,\n\trootClientId,\n} ) {\n\tif ( isLocked ) {\n\t\treturn null;\n\t}\n\n\tconst value =\n\t\tdecodeEntities( placeholder ) || __( 'Type / to choose a block' );\n\n\treturn (\n\t\t<div\n\t\t\tdata-root-client-id={ rootClientId || '' }\n\t\t\tclassName={ classnames( 'block-editor-default-block-appender', {\n\t\t\t\t'has-visible-prompt': showPrompt,\n\t\t\t} ) }\n\t\t>\n\t\t\t<p\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\t// We want this element to be styled as a paragraph by themes.\n\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\t\trole=\"button\"\n\t\t\t\taria-label={ __( 'Add default block' ) }\n\t\t\t\t// A wrapping container for this one already has the wp-block className.\n\t\t\t\tclassName=\"block-editor-default-block-appender__content\"\n\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\tif ( ENTER === event.keyCode || SPACE === event.keyCode ) {\n\t\t\t\t\t\tonAppend();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tonClick={ () => onAppend() }\n\t\t\t\tonFocus={ () => {\n\t\t\t\t\tif ( showPrompt ) {\n\t\t\t\t\t\tonAppend();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ showPrompt ? value : ZWNBSP }\n\t\t\t</p>\n\t\t\t<Inserter\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tposition=\"bottom right\"\n\t\t\t\tisAppender\n\t\t\t\t__experimentalIsQuick\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default compose(\n\twithSelect( ( select, ownProps ) => {\n\t\tconst { getBlockCount, getSettings, getTemplateLock } = select(\n\t\t\tblockEditorStore\n\t\t);\n\n\t\tconst isEmpty = ! getBlockCount( ownProps.rootClientId );\n\t\tconst { bodyPlaceholder } = getSettings();\n\n\t\treturn {\n\t\t\tshowPrompt: isEmpty,\n\t\t\tisLocked: !! getTemplateLock( ownProps.rootClientId ),\n\t\t\tplaceholder: bodyPlaceholder,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps ) => {\n\t\tconst { insertDefaultBlock, startTyping } = dispatch(\n\t\t\tblockEditorStore\n\t\t);\n\n\t\treturn {\n\t\t\tonAppend() {\n\t\t\t\tconst { rootClientId } = ownProps;\n\n\t\t\t\tinsertDefaultBlock( undefined, rootClientId );\n\t\t\t\tstartTyping();\n\t\t\t},\n\t\t};\n\t} )\n)( DefaultBlockAppender );\n"]}
@@ -17,6 +17,8 @@ var _data = require("@wordpress/data");
17
17
 
18
18
  var _store = require("../../store");
19
19
 
20
+ var _utils = require("../block-styles/utils");
21
+
20
22
  /**
21
23
  * WordPress dependencies
22
24
  */
@@ -56,14 +58,27 @@ function DefaultStylePicker(_ref) {
56
58
  value: name
57
59
  };
58
60
  })], [styles]);
61
+ const defaultStyleName = (0, _element.useMemo)(() => {
62
+ var _getDefaultStyle;
63
+
64
+ return (_getDefaultStyle = (0, _utils.getDefaultStyle)(styles)) === null || _getDefaultStyle === void 0 ? void 0 : _getDefaultStyle.name;
65
+ }, [styles]);
59
66
  const selectOnChange = (0, _element.useCallback)(blockStyle => {
60
67
  onUpdatePreferredStyleVariations(blockName, blockStyle);
61
- }, [blockName, onUpdatePreferredStyleVariations]);
62
- return onUpdatePreferredStyleVariations && (0, _element.createElement)(_components.SelectControl, {
68
+ }, [blockName, onUpdatePreferredStyleVariations]); // Until the functionality is migrated to global styles,
69
+ // only show the default style picker if a non-default style has already been selected.
70
+
71
+ if (!preferredStyle || preferredStyle === defaultStyleName) {
72
+ return null;
73
+ }
74
+
75
+ return onUpdatePreferredStyleVariations && (0, _element.createElement)("div", {
76
+ className: "default-style-picker__default-switcher"
77
+ }, (0, _element.createElement)(_components.SelectControl, {
63
78
  options: selectOptions,
64
79
  value: preferredStyle || '',
65
80
  label: (0, _i18n.__)('Default Style'),
66
81
  onChange: selectOnChange
67
- });
82
+ }));
68
83
  }
69
84
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/default-style-picker/index.js"],"names":["DefaultStylePicker","blockName","preferredStyle","onUpdatePreferredStyleVariations","styles","select","settings","blockEditorStore","getSettings","preferredStyleVariations","__experimentalPreferredStyleVariations","value","onChange","blocksStore","getBlockStyles","selectOptions","label","map","name","selectOnChange","blockStyle"],"mappings":";;;;;;;AAIA;;AADA;;AAEA;;AACA;;AACA;;AAKA;;AAZA;AACA;AACA;;AAOA;AACA;AACA;AAGe,SAASA,kBAAT,OAA6C;AAAA,MAAhB;AAAEC,IAAAA;AAAF,GAAgB;AAC3D,QAAM;AACLC,IAAAA,cADK;AAELC,IAAAA,gCAFK;AAGLC,IAAAA;AAHK,MAIF,qBACDC,MAAF,IAAc;AAAA;;AACb,UAAMC,QAAQ,GAAGD,MAAM,CAAEE,YAAF,CAAN,CAA2BC,WAA3B,EAAjB;AACA,UAAMC,wBAAwB,GAC7BH,QAAQ,CAACI,sCADV;AAEA,WAAO;AACNR,MAAAA,cAAc,EAAEO,wBAAF,aAAEA,wBAAF,gDAAEA,wBAAwB,CAAEE,KAA5B,0DAAE,sBAAmCV,SAAnC,CADV;AAENE,MAAAA,gCAAgC,4BAC/BM,wBAD+B,aAC/BA,wBAD+B,uBAC/BA,wBAAwB,CAAEG,QADK,2EACO,IAHjC;AAINR,MAAAA,MAAM,EAAEC,MAAM,CAAEQ,aAAF,CAAN,CAAsBC,cAAtB,CAAsCb,SAAtC;AAJF,KAAP;AAMA,GAXE,EAYH,CAAEA,SAAF,CAZG,CAJJ;AAkBA,QAAMc,aAAa,GAAG,sBACrB,MAAM,CACL;AAAEC,IAAAA,KAAK,EAAE,cAAI,SAAJ,CAAT;AAA0BL,IAAAA,KAAK,EAAE;AAAjC,GADK,EAEL,GAAGP,MAAM,CAACa,GAAP,CAAY;AAAA,QAAE;AAAED,MAAAA,KAAF;AAASE,MAAAA;AAAT,KAAF;AAAA,WAAyB;AAAEF,MAAAA,KAAF;AAASL,MAAAA,KAAK,EAAEO;AAAhB,KAAzB;AAAA,GAAZ,CAFE,CADe,EAKrB,CAAEd,MAAF,CALqB,CAAtB;AAOA,QAAMe,cAAc,GAAG,0BACpBC,UAAF,IAAkB;AACjBjB,IAAAA,gCAAgC,CAAEF,SAAF,EAAamB,UAAb,CAAhC;AACA,GAHqB,EAItB,CAAEnB,SAAF,EAAaE,gCAAb,CAJsB,CAAvB;AAOA,SACCA,gCAAgC,IAC/B,4BAAC,yBAAD;AACC,IAAA,OAAO,EAAGY,aADX;AAEC,IAAA,KAAK,EAAGb,cAAc,IAAI,EAF3B;AAGC,IAAA,KAAK,EAAG,cAAI,eAAJ,CAHT;AAIC,IAAA,QAAQ,EAAGiB;AAJZ,IAFF;AAUA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { SelectControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport default function DefaultStylePicker( { blockName } ) {\n\tconst {\n\t\tpreferredStyle,\n\t\tonUpdatePreferredStyleVariations,\n\t\tstyles,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\tconst preferredStyleVariations =\n\t\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\t\treturn {\n\t\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ blockName ],\n\t\t\t\tonUpdatePreferredStyleVariations:\n\t\t\t\t\tpreferredStyleVariations?.onChange ?? null,\n\t\t\t\tstyles: select( blocksStore ).getBlockStyles( blockName ),\n\t\t\t};\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst selectOptions = useMemo(\n\t\t() => [\n\t\t\t{ label: __( 'Not set' ), value: '' },\n\t\t\t...styles.map( ( { label, name } ) => ( { label, value: name } ) ),\n\t\t],\n\t\t[ styles ]\n\t);\n\tconst selectOnChange = useCallback(\n\t\t( blockStyle ) => {\n\t\t\tonUpdatePreferredStyleVariations( blockName, blockStyle );\n\t\t},\n\t\t[ blockName, onUpdatePreferredStyleVariations ]\n\t);\n\n\treturn (\n\t\tonUpdatePreferredStyleVariations && (\n\t\t\t<SelectControl\n\t\t\t\toptions={ selectOptions }\n\t\t\t\tvalue={ preferredStyle || '' }\n\t\t\t\tlabel={ __( 'Default Style' ) }\n\t\t\t\tonChange={ selectOnChange }\n\t\t\t/>\n\t\t)\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/default-style-picker/index.js"],"names":["DefaultStylePicker","blockName","preferredStyle","onUpdatePreferredStyleVariations","styles","select","settings","blockEditorStore","getSettings","preferredStyleVariations","__experimentalPreferredStyleVariations","value","onChange","blocksStore","getBlockStyles","selectOptions","label","map","name","defaultStyleName","selectOnChange","blockStyle"],"mappings":";;;;;;;AAIA;;AADA;;AAEA;;AACA;;AACA;;AAKA;;AACA;;AAbA;AACA;AACA;;AAOA;AACA;AACA;AAIe,SAASA,kBAAT,OAA6C;AAAA,MAAhB;AAAEC,IAAAA;AAAF,GAAgB;AAC3D,QAAM;AACLC,IAAAA,cADK;AAELC,IAAAA,gCAFK;AAGLC,IAAAA;AAHK,MAIF,qBACDC,MAAF,IAAc;AAAA;;AACb,UAAMC,QAAQ,GAAGD,MAAM,CAAEE,YAAF,CAAN,CAA2BC,WAA3B,EAAjB;AACA,UAAMC,wBAAwB,GAC7BH,QAAQ,CAACI,sCADV;AAEA,WAAO;AACNR,MAAAA,cAAc,EAAEO,wBAAF,aAAEA,wBAAF,gDAAEA,wBAAwB,CAAEE,KAA5B,0DAAE,sBAAmCV,SAAnC,CADV;AAENE,MAAAA,gCAAgC,4BAC/BM,wBAD+B,aAC/BA,wBAD+B,uBAC/BA,wBAAwB,CAAEG,QADK,2EACO,IAHjC;AAINR,MAAAA,MAAM,EAAEC,MAAM,CAAEQ,aAAF,CAAN,CAAsBC,cAAtB,CAAsCb,SAAtC;AAJF,KAAP;AAMA,GAXE,EAYH,CAAEA,SAAF,CAZG,CAJJ;AAkBA,QAAMc,aAAa,GAAG,sBACrB,MAAM,CACL;AAAEC,IAAAA,KAAK,EAAE,cAAI,SAAJ,CAAT;AAA0BL,IAAAA,KAAK,EAAE;AAAjC,GADK,EAEL,GAAGP,MAAM,CAACa,GAAP,CAAY;AAAA,QAAE;AAAED,MAAAA,KAAF;AAASE,MAAAA;AAAT,KAAF;AAAA,WAAyB;AAAEF,MAAAA,KAAF;AAASL,MAAAA,KAAK,EAAEO;AAAhB,KAAzB;AAAA,GAAZ,CAFE,CADe,EAKrB,CAAEd,MAAF,CALqB,CAAtB;AAOA,QAAMe,gBAAgB,GAAG,sBAAS;AAAA;;AAAA,+BAAM,4BAAiBf,MAAjB,CAAN,qDAAM,iBAA2Bc,IAAjC;AAAA,GAAT,EAAgD,CACxEd,MADwE,CAAhD,CAAzB;AAGA,QAAMgB,cAAc,GAAG,0BACpBC,UAAF,IAAkB;AACjBlB,IAAAA,gCAAgC,CAAEF,SAAF,EAAaoB,UAAb,CAAhC;AACA,GAHqB,EAItB,CAAEpB,SAAF,EAAaE,gCAAb,CAJsB,CAAvB,CA7B2D,CAoC3D;AACA;;AACA,MAAK,CAAED,cAAF,IAAoBA,cAAc,KAAKiB,gBAA5C,EAA+D;AAC9D,WAAO,IAAP;AACA;;AAED,SACChB,gCAAgC,IAC/B;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,yBAAD;AACC,IAAA,OAAO,EAAGY,aADX;AAEC,IAAA,KAAK,EAAGb,cAAc,IAAI,EAF3B;AAGC,IAAA,KAAK,EAAG,cAAI,eAAJ,CAHT;AAIC,IAAA,QAAQ,EAAGkB;AAJZ,IADD,CAFF;AAYA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { SelectControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { getDefaultStyle } from '../block-styles/utils';\n\nexport default function DefaultStylePicker( { blockName } ) {\n\tconst {\n\t\tpreferredStyle,\n\t\tonUpdatePreferredStyleVariations,\n\t\tstyles,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\tconst preferredStyleVariations =\n\t\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\t\treturn {\n\t\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ blockName ],\n\t\t\t\tonUpdatePreferredStyleVariations:\n\t\t\t\t\tpreferredStyleVariations?.onChange ?? null,\n\t\t\t\tstyles: select( blocksStore ).getBlockStyles( blockName ),\n\t\t\t};\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst selectOptions = useMemo(\n\t\t() => [\n\t\t\t{ label: __( 'Not set' ), value: '' },\n\t\t\t...styles.map( ( { label, name } ) => ( { label, value: name } ) ),\n\t\t],\n\t\t[ styles ]\n\t);\n\tconst defaultStyleName = useMemo( () => getDefaultStyle( styles )?.name, [\n\t\tstyles,\n\t] );\n\tconst selectOnChange = useCallback(\n\t\t( blockStyle ) => {\n\t\t\tonUpdatePreferredStyleVariations( blockName, blockStyle );\n\t\t},\n\t\t[ blockName, onUpdatePreferredStyleVariations ]\n\t);\n\n\t// Until the functionality is migrated to global styles,\n\t// only show the default style picker if a non-default style has already been selected.\n\tif ( ! preferredStyle || preferredStyle === defaultStyleName ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\tonUpdatePreferredStyleVariations && (\n\t\t\t<div className=\"default-style-picker__default-switcher\">\n\t\t\t\t<SelectControl\n\t\t\t\t\toptions={ selectOptions }\n\t\t\t\t\tvalue={ preferredStyle || '' }\n\t\t\t\t\tlabel={ __( 'Default Style' ) }\n\t\t\t\t\tonChange={ selectOnChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t)\n\t);\n}\n"]}
@@ -16,38 +16,38 @@ var _i18n = require("@wordpress/i18n");
16
16
  * WordPress dependencies
17
17
  */
18
18
  const FONT_STYLES = [{
19
- name: (0, _i18n.__)('Regular'),
19
+ name: (0, _i18n._x)('Regular', 'font style'),
20
20
  value: 'normal'
21
21
  }, {
22
- name: (0, _i18n.__)('Italic'),
22
+ name: (0, _i18n._x)('Italic', 'font style'),
23
23
  value: 'italic'
24
24
  }];
25
25
  const FONT_WEIGHTS = [{
26
- name: (0, _i18n.__)('Thin'),
26
+ name: (0, _i18n._x)('Thin', 'font weight'),
27
27
  value: '100'
28
28
  }, {
29
- name: (0, _i18n.__)('Extra Light'),
29
+ name: (0, _i18n._x)('Extra Light', 'font weight'),
30
30
  value: '200'
31
31
  }, {
32
- name: (0, _i18n.__)('Light'),
32
+ name: (0, _i18n._x)('Light', 'font weight'),
33
33
  value: '300'
34
34
  }, {
35
- name: (0, _i18n.__)('Regular'),
35
+ name: (0, _i18n._x)('Regular', 'font weight'),
36
36
  value: '400'
37
37
  }, {
38
- name: (0, _i18n.__)('Medium'),
38
+ name: (0, _i18n._x)('Medium', 'font weight'),
39
39
  value: '500'
40
40
  }, {
41
- name: (0, _i18n.__)('Semi Bold'),
41
+ name: (0, _i18n._x)('Semi Bold', 'font weight'),
42
42
  value: '600'
43
43
  }, {
44
- name: (0, _i18n.__)('Bold'),
44
+ name: (0, _i18n._x)('Bold', 'font weight'),
45
45
  value: '700'
46
46
  }, {
47
- name: (0, _i18n.__)('Extra Bold'),
47
+ name: (0, _i18n._x)('Extra Bold', 'font weight'),
48
48
  value: '800'
49
49
  }, {
50
- name: (0, _i18n.__)('Black'),
50
+ name: (0, _i18n._x)('Black', 'font weight'),
51
51
  value: '900'
52
52
  }];
53
53
  /**