@wordpress/block-editor 11.7.0 → 12.0.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 (357) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +56 -57
  3. package/build/components/block-info-slot-fill/index.js +47 -0
  4. package/build/components/block-info-slot-fill/index.js.map +1 -0
  5. package/build/components/block-inspector/index.js +4 -2
  6. package/build/components/block-inspector/index.js.map +1 -1
  7. package/build/components/block-list/index.native.js +11 -21
  8. package/build/components/block-list/index.native.js.map +1 -1
  9. package/build/components/block-list/use-in-between-inserter.js +3 -1
  10. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  11. package/build/components/block-popover/inbetween.js +2 -9
  12. package/build/components/block-popover/inbetween.js.map +1 -1
  13. package/build/components/block-settings-menu/block-settings-dropdown.js +1 -10
  14. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  15. package/build/components/block-toolbar/index.js +2 -1
  16. package/build/components/block-toolbar/index.js.map +1 -1
  17. package/build/components/block-tools/block-contextual-toolbar.js +83 -9
  18. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  19. package/build/components/block-tools/selected-block-popover.js +11 -28
  20. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  21. package/build/components/caption/index.native.js +0 -1
  22. package/build/components/caption/index.native.js.map +1 -1
  23. package/build/components/date-format-picker/index.js +1 -1
  24. package/build/components/date-format-picker/index.js.map +1 -1
  25. package/build/components/editor-styles/index.js +4 -3
  26. package/build/components/editor-styles/index.js.map +1 -1
  27. package/build/components/font-sizes/fluid-utils.js +21 -14
  28. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  29. package/build/components/global-styles/border-panel.js +15 -59
  30. package/build/components/global-styles/border-panel.js.map +1 -1
  31. package/build/components/global-styles/color-panel.js +12 -12
  32. package/build/components/global-styles/color-panel.js.map +1 -1
  33. package/build/components/global-styles/color-panel.native.js +174 -0
  34. package/build/components/global-styles/color-panel.native.js.map +1 -0
  35. package/build/components/global-styles/dimensions-panel.js +21 -20
  36. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  37. package/build/components/global-styles/effects-panel.js +244 -0
  38. package/build/components/global-styles/effects-panel.js.map +1 -0
  39. package/build/components/global-styles/filters-panel.js +215 -0
  40. package/build/components/global-styles/filters-panel.js.map +1 -0
  41. package/build/components/global-styles/get-block-css-selector.js +1 -12
  42. package/build/components/global-styles/get-block-css-selector.js.map +1 -1
  43. package/build/components/global-styles/hooks.js +7 -0
  44. package/build/components/global-styles/hooks.js.map +1 -1
  45. package/build/components/global-styles/index.js +28 -0
  46. package/build/components/global-styles/index.js.map +1 -1
  47. package/build/components/global-styles/typography-panel.js +9 -9
  48. package/build/components/global-styles/typography-panel.js.map +1 -1
  49. package/build/components/global-styles/use-global-styles-output.js +100 -82
  50. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  51. package/build/components/iframe/index.js +1 -1
  52. package/build/components/iframe/index.js.map +1 -1
  53. package/build/components/image-size-control/use-dimension-handler.js +5 -3
  54. package/build/components/image-size-control/use-dimension-handler.js.map +1 -1
  55. package/build/components/index.js +23 -0
  56. package/build/components/index.js.map +1 -1
  57. package/build/components/inserter/block-patterns-tab.js +4 -2
  58. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  59. package/build/components/inserter/block-types-tab.js +12 -7
  60. package/build/components/inserter/block-types-tab.js.map +1 -1
  61. package/build/components/inserter/index.js +2 -1
  62. package/build/components/inserter/index.js.map +1 -1
  63. package/build/components/inspector-controls/groups.js +2 -0
  64. package/build/components/inspector-controls/groups.js.map +1 -1
  65. package/build/components/inspector-controls-tabs/styles-tab.js +2 -0
  66. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  67. package/build/components/inspector-controls-tabs/utils.js +5 -3
  68. package/build/components/inspector-controls-tabs/utils.js.map +1 -1
  69. package/build/components/list-view/block-select-button.js +7 -2
  70. package/build/components/list-view/block-select-button.js.map +1 -1
  71. package/build/components/list-view/block.js +13 -21
  72. package/build/components/list-view/block.js.map +1 -1
  73. package/build/components/list-view/drop-indicator.js +37 -10
  74. package/build/components/list-view/drop-indicator.js.map +1 -1
  75. package/build/components/list-view/index.js +31 -7
  76. package/build/components/list-view/index.js.map +1 -1
  77. package/build/components/list-view/leaf.js +2 -1
  78. package/build/components/list-view/leaf.js.map +1 -1
  79. package/build/components/list-view/use-block-selection.js +1 -1
  80. package/build/components/list-view/use-block-selection.js.map +1 -1
  81. package/build/components/list-view/use-list-view-client-ids.js +7 -3
  82. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  83. package/build/components/list-view/use-list-view-drop-zone.js +8 -2
  84. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  85. package/build/components/media-replace-flow/index.js +5 -5
  86. package/build/components/media-replace-flow/index.js.map +1 -1
  87. package/build/components/navigable-toolbar/index.js +12 -4
  88. package/build/components/navigable-toolbar/index.js.map +1 -1
  89. package/build/components/off-canvas-editor/appender.js +2 -7
  90. package/build/components/off-canvas-editor/appender.js.map +1 -1
  91. package/build/components/off-canvas-editor/block-contents.js +6 -1
  92. package/build/components/off-canvas-editor/block-contents.js.map +1 -1
  93. package/build/components/off-canvas-editor/index.js +17 -14
  94. package/build/components/off-canvas-editor/index.js.map +1 -1
  95. package/build/components/resizable-box-popover/index.js +38 -0
  96. package/build/components/resizable-box-popover/index.js.map +1 -0
  97. package/build/components/rich-text/index.js +0 -1
  98. package/build/components/rich-text/index.js.map +1 -1
  99. package/build/components/rich-text/index.native.js +7 -11
  100. package/build/components/rich-text/index.native.js.map +1 -1
  101. package/build/components/spacing-sizes-control/spacing-input-control.js +8 -0
  102. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  103. package/build/hooks/anchor.js +1 -1
  104. package/build/hooks/anchor.js.map +1 -1
  105. package/build/hooks/border.js +1 -1
  106. package/build/hooks/border.js.map +1 -1
  107. package/build/hooks/duotone.js +121 -70
  108. package/build/hooks/duotone.js.map +1 -1
  109. package/build/hooks/margin.js +27 -17
  110. package/build/hooks/margin.js.map +1 -1
  111. package/build/hooks/padding.js +19 -9
  112. package/build/hooks/padding.js.map +1 -1
  113. package/build/hooks/utils.js +22 -7
  114. package/build/hooks/utils.js.map +1 -1
  115. package/build/layouts/utils.js +3 -2
  116. package/build/layouts/utils.js.map +1 -1
  117. package/build/private-apis.js +13 -1
  118. package/build/private-apis.js.map +1 -1
  119. package/build/store/actions.js +8 -1
  120. package/build/store/actions.js.map +1 -1
  121. package/build/utils/object.js +6 -6
  122. package/build/utils/object.js.map +1 -1
  123. package/build/utils/transform-styles/index.js +2 -2
  124. package/build/utils/transform-styles/index.js.map +1 -1
  125. package/build/utils/use-should-contextual-toolbar-show.js +68 -0
  126. package/build/utils/use-should-contextual-toolbar-show.js.map +1 -0
  127. package/build-module/components/block-info-slot-fill/index.js +34 -0
  128. package/build-module/components/block-info-slot-fill/index.js.map +1 -0
  129. package/build-module/components/block-inspector/index.js +3 -2
  130. package/build-module/components/block-inspector/index.js.map +1 -1
  131. package/build-module/components/block-list/index.native.js +11 -19
  132. package/build-module/components/block-list/index.native.js.map +1 -1
  133. package/build-module/components/block-list/use-in-between-inserter.js +2 -1
  134. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  135. package/build-module/components/block-popover/inbetween.js +2 -9
  136. package/build-module/components/block-popover/inbetween.js.map +1 -1
  137. package/build-module/components/block-settings-menu/block-settings-dropdown.js +1 -9
  138. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  139. package/build-module/components/block-toolbar/index.js +2 -1
  140. package/build-module/components/block-toolbar/index.js.map +1 -1
  141. package/build-module/components/block-tools/block-contextual-toolbar.js +79 -9
  142. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  143. package/build-module/components/block-tools/selected-block-popover.js +10 -27
  144. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  145. package/build-module/components/caption/index.native.js +0 -1
  146. package/build-module/components/caption/index.native.js.map +1 -1
  147. package/build-module/components/date-format-picker/index.js +1 -1
  148. package/build-module/components/date-format-picker/index.js.map +1 -1
  149. package/build-module/components/editor-styles/index.js +4 -3
  150. package/build-module/components/editor-styles/index.js.map +1 -1
  151. package/build-module/components/font-sizes/fluid-utils.js +21 -14
  152. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  153. package/build-module/components/global-styles/border-panel.js +15 -59
  154. package/build-module/components/global-styles/border-panel.js.map +1 -1
  155. package/build-module/components/global-styles/color-panel.js +13 -13
  156. package/build-module/components/global-styles/color-panel.js.map +1 -1
  157. package/build-module/components/global-styles/color-panel.native.js +150 -0
  158. package/build-module/components/global-styles/color-panel.native.js.map +1 -0
  159. package/build-module/components/global-styles/dimensions-panel.js +22 -21
  160. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  161. package/build-module/components/global-styles/effects-panel.js +228 -0
  162. package/build-module/components/global-styles/effects-panel.js.map +1 -0
  163. package/build-module/components/global-styles/filters-panel.js +201 -0
  164. package/build-module/components/global-styles/filters-panel.js.map +1 -0
  165. package/build-module/components/global-styles/get-block-css-selector.js +1 -12
  166. package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
  167. package/build-module/components/global-styles/hooks.js +7 -0
  168. package/build-module/components/global-styles/hooks.js.map +1 -1
  169. package/build-module/components/global-styles/index.js +2 -0
  170. package/build-module/components/global-styles/index.js.map +1 -1
  171. package/build-module/components/global-styles/typography-panel.js +10 -10
  172. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  173. package/build-module/components/global-styles/use-global-styles-output.js +101 -83
  174. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  175. package/build-module/components/iframe/index.js +1 -1
  176. package/build-module/components/iframe/index.js.map +1 -1
  177. package/build-module/components/image-size-control/use-dimension-handler.js +5 -3
  178. package/build-module/components/image-size-control/use-dimension-handler.js.map +1 -1
  179. package/build-module/components/index.js +1 -0
  180. package/build-module/components/index.js.map +1 -1
  181. package/build-module/components/inserter/block-patterns-tab.js +5 -2
  182. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  183. package/build-module/components/inserter/block-types-tab.js +12 -6
  184. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  185. package/build-module/components/inserter/index.js +2 -1
  186. package/build-module/components/inserter/index.js.map +1 -1
  187. package/build-module/components/inspector-controls/groups.js +2 -0
  188. package/build-module/components/inspector-controls/groups.js.map +1 -1
  189. package/build-module/components/inspector-controls-tabs/styles-tab.js +2 -0
  190. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  191. package/build-module/components/inspector-controls-tabs/utils.js +4 -3
  192. package/build-module/components/inspector-controls-tabs/utils.js.map +1 -1
  193. package/build-module/components/list-view/block-select-button.js +7 -2
  194. package/build-module/components/list-view/block-select-button.js.map +1 -1
  195. package/build-module/components/list-view/block.js +15 -22
  196. package/build-module/components/list-view/block.js.map +1 -1
  197. package/build-module/components/list-view/drop-indicator.js +36 -10
  198. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  199. package/build-module/components/list-view/index.js +31 -8
  200. package/build-module/components/list-view/index.js.map +1 -1
  201. package/build-module/components/list-view/leaf.js +2 -1
  202. package/build-module/components/list-view/leaf.js.map +1 -1
  203. package/build-module/components/list-view/use-block-selection.js +1 -1
  204. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  205. package/build-module/components/list-view/use-list-view-client-ids.js +7 -3
  206. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  207. package/build-module/components/list-view/use-list-view-drop-zone.js +8 -4
  208. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  209. package/build-module/components/media-replace-flow/index.js +5 -5
  210. package/build-module/components/media-replace-flow/index.js.map +1 -1
  211. package/build-module/components/navigable-toolbar/index.js +12 -4
  212. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  213. package/build-module/components/off-canvas-editor/appender.js +1 -5
  214. package/build-module/components/off-canvas-editor/appender.js.map +1 -1
  215. package/build-module/components/off-canvas-editor/block-contents.js +5 -1
  216. package/build-module/components/off-canvas-editor/block-contents.js.map +1 -1
  217. package/build-module/components/off-canvas-editor/index.js +17 -14
  218. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  219. package/build-module/components/resizable-box-popover/index.js +26 -0
  220. package/build-module/components/resizable-box-popover/index.js.map +1 -0
  221. package/build-module/components/rich-text/index.js +0 -1
  222. package/build-module/components/rich-text/index.js.map +1 -1
  223. package/build-module/components/rich-text/index.native.js +7 -10
  224. package/build-module/components/rich-text/index.native.js.map +1 -1
  225. package/build-module/components/spacing-sizes-control/spacing-input-control.js +7 -0
  226. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  227. package/build-module/hooks/anchor.js +1 -1
  228. package/build-module/hooks/anchor.js.map +1 -1
  229. package/build-module/hooks/border.js +1 -1
  230. package/build-module/hooks/border.js.map +1 -1
  231. package/build-module/hooks/duotone.js +118 -71
  232. package/build-module/hooks/duotone.js.map +1 -1
  233. package/build-module/hooks/margin.js +29 -18
  234. package/build-module/hooks/margin.js.map +1 -1
  235. package/build-module/hooks/padding.js +21 -10
  236. package/build-module/hooks/padding.js.map +1 -1
  237. package/build-module/hooks/utils.js +24 -9
  238. package/build-module/hooks/utils.js.map +1 -1
  239. package/build-module/layouts/utils.js +3 -2
  240. package/build-module/layouts/utils.js.map +1 -1
  241. package/build-module/private-apis.js +9 -1
  242. package/build-module/private-apis.js.map +1 -1
  243. package/build-module/store/actions.js +8 -1
  244. package/build-module/store/actions.js.map +1 -1
  245. package/build-module/utils/object.js +5 -5
  246. package/build-module/utils/object.js.map +1 -1
  247. package/build-module/utils/transform-styles/index.js +2 -2
  248. package/build-module/utils/transform-styles/index.js.map +1 -1
  249. package/build-module/utils/use-should-contextual-toolbar-show.js +56 -0
  250. package/build-module/utils/use-should-contextual-toolbar-show.js.map +1 -0
  251. package/build-style/content-rtl.css +9 -6
  252. package/build-style/content.css +9 -6
  253. package/build-style/style-rtl.css +272 -54
  254. package/build-style/style.css +272 -54
  255. package/package.json +32 -32
  256. package/src/components/block-info-slot-fill/index.js +24 -0
  257. package/src/components/block-inspector/index.js +3 -0
  258. package/src/components/block-inspector/style.scss +6 -4
  259. package/src/components/block-list/content.scss +16 -15
  260. package/src/components/block-list/index.native.js +19 -38
  261. package/src/components/block-list/use-in-between-inserter.js +4 -1
  262. package/src/components/block-mobile-toolbar/test/block-actions-menu.native.js +9 -9
  263. package/src/components/block-mover/style.scss +10 -4
  264. package/src/components/block-mover/test/index.native.js +4 -4
  265. package/src/components/block-popover/inbetween.js +2 -13
  266. package/src/components/block-settings-menu/block-settings-dropdown.js +2 -12
  267. package/src/components/block-toolbar/index.js +4 -3
  268. package/src/components/block-toolbar/style.scss +56 -33
  269. package/src/components/block-tools/block-contextual-toolbar.js +94 -11
  270. package/src/components/block-tools/selected-block-popover.js +11 -44
  271. package/src/components/block-tools/style.scss +157 -3
  272. package/src/components/caption/index.native.js +0 -1
  273. package/src/components/date-format-picker/index.js +1 -1
  274. package/src/components/editor-styles/index.js +9 -5
  275. package/src/components/font-sizes/fluid-utils.js +31 -14
  276. package/src/components/font-sizes/test/fluid-utils.js +5 -16
  277. package/src/components/global-styles/README.md +129 -16
  278. package/src/components/global-styles/border-panel.js +13 -61
  279. package/src/components/global-styles/color-panel.js +13 -13
  280. package/src/components/global-styles/color-panel.native.js +207 -0
  281. package/src/components/global-styles/dimensions-panel.js +47 -20
  282. package/src/components/global-styles/effects-panel.js +228 -0
  283. package/src/components/global-styles/filters-panel.js +230 -0
  284. package/src/components/global-styles/get-block-css-selector.js +0 -11
  285. package/src/components/global-styles/hooks.js +10 -0
  286. package/src/components/global-styles/index.js +2 -0
  287. package/src/components/global-styles/style.scss +43 -0
  288. package/src/components/global-styles/test/typography-utils.js +63 -22
  289. package/src/components/global-styles/test/use-global-styles-output.js +130 -8
  290. package/src/components/global-styles/typography-panel.js +37 -11
  291. package/src/components/global-styles/use-global-styles-output.js +88 -72
  292. package/src/components/iframe/index.js +1 -1
  293. package/src/components/image-size-control/use-dimension-handler.js +4 -3
  294. package/src/components/index.js +5 -1
  295. package/src/components/inserter/block-patterns-tab.js +3 -1
  296. package/src/components/inserter/block-types-tab.js +9 -6
  297. package/src/components/inserter/index.js +1 -1
  298. package/src/components/inspector-controls/groups.js +2 -0
  299. package/src/components/inspector-controls-tabs/styles-tab.js +1 -0
  300. package/src/components/inspector-controls-tabs/utils.js +4 -3
  301. package/src/components/list-view/README.md +2 -0
  302. package/src/components/list-view/block-select-button.js +6 -1
  303. package/src/components/list-view/block.js +24 -31
  304. package/src/components/list-view/drop-indicator.js +67 -22
  305. package/src/components/list-view/index.js +26 -3
  306. package/src/components/list-view/leaf.js +1 -0
  307. package/src/components/list-view/style.scss +18 -4
  308. package/src/components/list-view/test/use-list-view-drop-zone.js +188 -0
  309. package/src/components/list-view/use-block-selection.js +1 -1
  310. package/src/components/list-view/use-list-view-client-ids.js +5 -3
  311. package/src/components/list-view/use-list-view-drop-zone.js +9 -3
  312. package/src/components/media-replace-flow/README.md +3 -2
  313. package/src/components/media-replace-flow/index.js +4 -5
  314. package/src/components/navigable-toolbar/index.js +12 -3
  315. package/src/components/off-canvas-editor/appender.js +1 -4
  316. package/src/components/off-canvas-editor/block-contents.js +4 -0
  317. package/src/components/off-canvas-editor/index.js +15 -11
  318. package/src/components/resizable-box-popover/index.js +27 -0
  319. package/src/components/rich-text/index.js +0 -1
  320. package/src/components/rich-text/index.native.js +2 -5
  321. package/src/components/spacing-sizes-control/spacing-input-control.js +10 -0
  322. package/src/components/spacing-sizes-control/style.scss +7 -7
  323. package/src/components/url-popover/test/__snapshots__/index.js.snap +3 -3
  324. package/src/hooks/anchor.js +1 -1
  325. package/src/hooks/border.js +1 -1
  326. package/src/hooks/duotone.js +162 -99
  327. package/src/hooks/margin.js +31 -26
  328. package/src/hooks/padding.js +24 -18
  329. package/src/hooks/test/anchor.js +113 -0
  330. package/src/hooks/test/color.js +0 -9
  331. package/src/hooks/test/use-typography-props.js +2 -2
  332. package/src/hooks/test/utils.js +20 -101
  333. package/src/hooks/utils.js +23 -6
  334. package/src/layouts/utils.js +2 -2
  335. package/src/private-apis.js +8 -0
  336. package/src/store/actions.js +8 -1
  337. package/src/style.scss +1 -0
  338. package/src/utils/object.js +5 -5
  339. package/src/utils/test/object.js +53 -15
  340. package/src/utils/transform-styles/index.js +2 -2
  341. package/src/utils/use-should-contextual-toolbar-show.js +75 -0
  342. package/tsconfig.json +1 -0
  343. package/build/components/rich-text/use-native-props.js +0 -11
  344. package/build/components/rich-text/use-native-props.js.map +0 -1
  345. package/build/components/rich-text/use-native-props.native.js +0 -24
  346. package/build/components/rich-text/use-native-props.native.js.map +0 -1
  347. package/build/hooks/color-panel.native.js +0 -77
  348. package/build/hooks/color-panel.native.js.map +0 -1
  349. package/build-module/components/rich-text/use-native-props.js +0 -4
  350. package/build-module/components/rich-text/use-native-props.js.map +0 -1
  351. package/build-module/components/rich-text/use-native-props.native.js +0 -15
  352. package/build-module/components/rich-text/use-native-props.native.js.map +0 -1
  353. package/build-module/hooks/color-panel.native.js +0 -62
  354. package/build-module/hooks/color-panel.native.js.map +0 -1
  355. package/src/components/rich-text/use-native-props.js +0 -3
  356. package/src/components/rich-text/use-native-props.native.js +0 -17
  357. package/src/hooks/color-panel.native.js +0 -63
@@ -1,42 +1,42 @@
1
1
  /**
2
2
  * Internal dependencies
3
3
  */
4
- import { immutableSet } from '../object';
4
+ import { setImmutably } from '../object';
5
5
 
6
- describe( 'immutableSet', () => {
6
+ describe( 'setImmutably', () => {
7
7
  describe( 'handling falsy values properly', () => {
8
8
  it( 'should create a new object if `undefined` is passed', () => {
9
- const result = immutableSet( undefined, 'test', 1 );
9
+ const result = setImmutably( undefined, 'test', 1 );
10
10
 
11
11
  expect( result ).toEqual( { test: 1 } );
12
12
  } );
13
13
 
14
14
  it( 'should create a new object if `null` is passed', () => {
15
- const result = immutableSet( null, 'test', 1 );
15
+ const result = setImmutably( null, 'test', 1 );
16
16
 
17
17
  expect( result ).toEqual( { test: 1 } );
18
18
  } );
19
19
 
20
20
  it( 'should create a new object if `false` is passed', () => {
21
- const result = immutableSet( false, 'test', 1 );
21
+ const result = setImmutably( false, 'test', 1 );
22
22
 
23
23
  expect( result ).toEqual( { test: 1 } );
24
24
  } );
25
25
 
26
26
  it( 'should create a new object if `0` is passed', () => {
27
- const result = immutableSet( 0, 'test', 1 );
27
+ const result = setImmutably( 0, 'test', 1 );
28
28
 
29
29
  expect( result ).toEqual( { test: 1 } );
30
30
  } );
31
31
 
32
32
  it( 'should create a new object if an empty string is passed', () => {
33
- const result = immutableSet( '', 'test', 1 );
33
+ const result = setImmutably( '', 'test', 1 );
34
34
 
35
35
  expect( result ).toEqual( { test: 1 } );
36
36
  } );
37
37
 
38
38
  it( 'should create a new object if a NaN is passed', () => {
39
- const result = immutableSet( NaN, 'test', 1 );
39
+ const result = setImmutably( NaN, 'test', 1 );
40
40
 
41
41
  expect( result ).toEqual( { test: 1 } );
42
42
  } );
@@ -44,26 +44,26 @@ describe( 'immutableSet', () => {
44
44
 
45
45
  describe( 'manages data assignment properly', () => {
46
46
  it( 'assigns value properly when it does not exist', () => {
47
- const result = immutableSet( {}, 'test', 1 );
47
+ const result = setImmutably( {}, 'test', 1 );
48
48
 
49
49
  expect( result ).toEqual( { test: 1 } );
50
50
  } );
51
51
 
52
52
  it( 'overrides existing values', () => {
53
- const result = immutableSet( { test: 1 }, 'test', 2 );
53
+ const result = setImmutably( { test: 1 }, 'test', 2 );
54
54
 
55
55
  expect( result ).toEqual( { test: 2 } );
56
56
  } );
57
57
 
58
58
  describe( 'with array notation access', () => {
59
59
  it( 'assigns values at deeper levels', () => {
60
- const result = immutableSet( {}, [ 'foo', 'bar', 'baz' ], 5 );
60
+ const result = setImmutably( {}, [ 'foo', 'bar', 'baz' ], 5 );
61
61
 
62
62
  expect( result ).toEqual( { foo: { bar: { baz: 5 } } } );
63
63
  } );
64
64
 
65
65
  it( 'overrides existing values at deeper levels', () => {
66
- const result = immutableSet(
66
+ const result = setImmutably(
67
67
  { foo: { bar: { baz: 1 } } },
68
68
  [ 'foo', 'bar', 'baz' ],
69
69
  5
@@ -73,7 +73,7 @@ describe( 'immutableSet', () => {
73
73
  } );
74
74
 
75
75
  it( 'keeps other properties intact', () => {
76
- const result = immutableSet(
76
+ const result = setImmutably(
77
77
  { foo: { bar: { baz: 1 } } },
78
78
  [ 'foo', 'bar', 'test' ],
79
79
  5
@@ -84,19 +84,57 @@ describe( 'immutableSet', () => {
84
84
  } );
85
85
  } );
86
86
  } );
87
+
88
+ describe( 'for nested falsey values', () => {
89
+ it( 'overwrites undefined values', () => {
90
+ const result = setImmutably( { test: undefined }, 'test', 1 );
91
+
92
+ expect( result ).toEqual( { test: 1 } );
93
+ } );
94
+
95
+ it( 'overwrites null values', () => {
96
+ const result = setImmutably( { test: null }, 'test', 1 );
97
+
98
+ expect( result ).toEqual( { test: 1 } );
99
+ } );
100
+
101
+ it( 'overwrites false values', () => {
102
+ const result = setImmutably( { test: false }, 'test', 1 );
103
+
104
+ expect( result ).toEqual( { test: 1 } );
105
+ } );
106
+
107
+ it( 'overwrites `0` values', () => {
108
+ const result = setImmutably( { test: 0 }, 'test', 1 );
109
+
110
+ expect( result ).toEqual( { test: 1 } );
111
+ } );
112
+
113
+ it( 'overwrites empty string values', () => {
114
+ const result = setImmutably( { test: '' }, 'test', 1 );
115
+
116
+ expect( result ).toEqual( { test: 1 } );
117
+ } );
118
+
119
+ it( 'overwrites NaN values', () => {
120
+ const result = setImmutably( { test: NaN }, 'test', 1 );
121
+
122
+ expect( result ).toEqual( { test: 1 } );
123
+ } );
124
+ } );
87
125
  } );
88
126
 
89
127
  describe( 'does not mutate the original object', () => {
90
128
  it( 'clones the object at the first level', () => {
91
129
  const input = {};
92
- const result = immutableSet( input, 'test', 1 );
130
+ const result = setImmutably( input, 'test', 1 );
93
131
 
94
132
  expect( result ).not.toBe( input );
95
133
  } );
96
134
 
97
135
  it( 'clones the object at deeper levels', () => {
98
136
  const input = { foo: { bar: { baz: 1 } } };
99
- const result = immutableSet( input, [ 'foo', 'bar', 'baz' ], 2 );
137
+ const result = setImmutably( input, [ 'foo', 'bar', 'baz' ], 2 );
100
138
 
101
139
  expect( result ).not.toBe( input );
102
140
  expect( result.foo ).not.toBe( input.foo );
@@ -13,8 +13,8 @@ import wrap from './transforms/wrap';
13
13
  /**
14
14
  * Applies a series of CSS rule transforms to wrap selectors inside a given class and/or rewrite URLs depending on the parameters passed.
15
15
  *
16
- * @param {Array} styles CSS rules.
17
- * @param {string} wrapperClassName Wrapper Class Name.
16
+ * @param {Object|Array} styles CSS rules.
17
+ * @param {string} wrapperClassName Wrapper Class Name.
18
18
  * @return {Array} converted rules.
19
19
  */
20
20
  const transformStyles = ( styles, wrapperClassName = '' ) => {
@@ -0,0 +1,75 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useSelect } from '@wordpress/data';
5
+ import { isUnmodifiedDefaultBlock } from '@wordpress/blocks';
6
+ import { useViewportMatch } from '@wordpress/compose';
7
+
8
+ /**
9
+ * Internal dependencies
10
+ */
11
+ import { store as blockEditorStore } from '../store';
12
+ import { unlock } from '../lock-unlock';
13
+
14
+ /**
15
+ * Returns true if the contextual block toolbar should show, or false if it should be hidden.
16
+ *
17
+ * @param {string} clientId The client ID of the block.
18
+ *
19
+ * @return {boolean} Whether the block toolbar is hidden.
20
+ */
21
+ export function useShouldContextualToolbarShow( clientId ) {
22
+ const isLargeViewport = useViewportMatch( 'medium' );
23
+
24
+ const { shouldShowContextualToolbar, canFocusHiddenToolbar } = useSelect(
25
+ ( select ) => {
26
+ const {
27
+ __unstableGetEditorMode,
28
+ isMultiSelecting,
29
+ isTyping,
30
+ isBlockInterfaceHidden,
31
+ getBlock,
32
+ getSettings,
33
+ isNavigationMode,
34
+ } = unlock( select( blockEditorStore ) );
35
+
36
+ const isEditMode = __unstableGetEditorMode() === 'edit';
37
+ const hasFixedToolbar = getSettings().hasFixedToolbar;
38
+ const isDistractionFree = getSettings().isDistractionFree;
39
+ const hasClientId = !! clientId;
40
+ const isEmptyDefaultBlock = isUnmodifiedDefaultBlock(
41
+ getBlock( clientId ) || {}
42
+ );
43
+
44
+ const _shouldShowContextualToolbar =
45
+ isEditMode &&
46
+ ! hasFixedToolbar &&
47
+ ( ! isDistractionFree || isNavigationMode() ) &&
48
+ isLargeViewport &&
49
+ ! isMultiSelecting() &&
50
+ ! isTyping() &&
51
+ hasClientId &&
52
+ ! isEmptyDefaultBlock &&
53
+ ! isBlockInterfaceHidden();
54
+
55
+ const _canFocusHiddenToolbar =
56
+ isEditMode &&
57
+ hasClientId &&
58
+ ! _shouldShowContextualToolbar &&
59
+ ! hasFixedToolbar &&
60
+ ! isDistractionFree &&
61
+ ! isEmptyDefaultBlock;
62
+
63
+ return {
64
+ shouldShowContextualToolbar: _shouldShowContextualToolbar,
65
+ canFocusHiddenToolbar: _canFocusHiddenToolbar,
66
+ };
67
+ },
68
+ [ clientId, isLargeViewport ]
69
+ );
70
+
71
+ return {
72
+ shouldShowContextualToolbar,
73
+ canFocusHiddenToolbar,
74
+ };
75
+ }
package/tsconfig.json CHANGED
@@ -23,6 +23,7 @@
23
23
  { "path": "../icons" },
24
24
  { "path": "../is-shallow-equal" },
25
25
  { "path": "../keycodes" },
26
+ { "path": "../notices" },
26
27
  { "path": "../style-engine" },
27
28
  { "path": "../token-list" },
28
29
  { "path": "../url" },
@@ -1,11 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useNativeProps = useNativeProps;
7
-
8
- function useNativeProps() {
9
- return {};
10
- }
11
- //# sourceMappingURL=use-native-props.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/use-native-props.js"],"names":["useNativeProps"],"mappings":";;;;;;;AAAO,SAASA,cAAT,GAA0B;AAChC,SAAO,EAAP;AACA","sourcesContent":["export function useNativeProps() {\n\treturn {};\n}\n"]}
@@ -1,24 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useNativeProps = useNativeProps;
7
-
8
- var _element = require("@wordpress/element");
9
-
10
- var _blockList = require("../block-list");
11
-
12
- /**
13
- * WordPress dependencies
14
- */
15
-
16
- /**
17
- * Internal dependencies
18
- */
19
- function useNativeProps() {
20
- return {
21
- onCaretVerticalPositionChange: (0, _element.useContext)(_blockList.OnCaretVerticalPositionChange)
22
- };
23
- }
24
- //# sourceMappingURL=use-native-props.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/use-native-props.native.js"],"names":["useNativeProps","onCaretVerticalPositionChange","OnCaretVerticalPositionChange"],"mappings":";;;;;;;AAGA;;AAKA;;AARA;AACA;AACA;;AAGA;AACA;AACA;AAGO,SAASA,cAAT,GAA0B;AAChC,SAAO;AACNC,IAAAA,6BAA6B,EAAE,yBAC9BC,wCAD8B;AADzB,GAAP;AAKA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { OnCaretVerticalPositionChange } from '../block-list';\n\nexport function useNativeProps() {\n\treturn {\n\t\tonCaretVerticalPositionChange: useContext(\n\t\t\tOnCaretVerticalPositionChange\n\t\t),\n\t};\n}\n"]}
@@ -1,77 +0,0 @@
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 _data = require("@wordpress/data");
13
-
14
- var _i18n = require("@wordpress/i18n");
15
-
16
- var _components = require("@wordpress/components");
17
-
18
- var _blockEditor = require("@wordpress/block-editor");
19
-
20
- var _panelColorGradientSettings = _interopRequireDefault(require("../components/colors-gradients/panel-color-gradient-settings"));
21
-
22
- var _contrastChecker = _interopRequireDefault(require("../components/contrast-checker"));
23
-
24
- var _inspectorControls = _interopRequireDefault(require("../components/inspector-controls"));
25
-
26
- /**
27
- * WordPress dependencies
28
- */
29
-
30
- /**
31
- * Internal dependencies
32
- */
33
- const ColorPanel = _ref => {
34
- let {
35
- settings
36
- } = _ref;
37
- const globalStyles = (0, _components.useGlobalStyles)();
38
- const [detectedBackgroundColor, setDetectedBackgroundColor] = (0, _element.useState)();
39
- const [detectedTextColor, setDetectedTextColor] = (0, _element.useState)();
40
- const {
41
- baseGlobalStyles
42
- } = (0, _data.useSelect)(select => {
43
- var _getSettings, _getSettings$__experi;
44
-
45
- const {
46
- getSettings
47
- } = select(_blockEditor.store);
48
- return {
49
- baseGlobalStyles: (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : (_getSettings$__experi = _getSettings.__experimentalGlobalStylesBaseStyles) === null || _getSettings$__experi === void 0 ? void 0 : _getSettings$__experi.color
50
- };
51
- });
52
- (0, _element.useEffect)(() => {
53
- // The following logic is used to determine current text/background colors:
54
- // 1. The globalStyles object is queried to determine whether a color has been
55
- // set via a block's settings.
56
- // 2. If a block-based theme is in use and no globalStyles exist, the theme's
57
- // default/base colors are used.
58
- // 3. If no globalStyles exist and a theme isn't block-based, there is no way
59
- // to determine the default text/background color and the checker won't run.
60
- const textColor = (globalStyles === null || globalStyles === void 0 ? void 0 : globalStyles.color) || (baseGlobalStyles === null || baseGlobalStyles === void 0 ? void 0 : baseGlobalStyles.text);
61
- const backgroundColor = (globalStyles === null || globalStyles === void 0 ? void 0 : globalStyles.backgroundColor) || (baseGlobalStyles === null || baseGlobalStyles === void 0 ? void 0 : baseGlobalStyles.background);
62
- setDetectedTextColor(textColor);
63
- setDetectedBackgroundColor(backgroundColor);
64
- }, [globalStyles, baseGlobalStyles]);
65
- return (0, _element.createElement)(_inspectorControls.default, null, (0, _element.createElement)(_panelColorGradientSettings.default, {
66
- title: (0, _i18n.__)('Color'),
67
- initialOpen: false,
68
- settings: settings
69
- }, (0, _element.createElement)(_contrastChecker.default, {
70
- backgroundColor: detectedBackgroundColor,
71
- textColor: detectedTextColor
72
- })));
73
- };
74
-
75
- var _default = ColorPanel;
76
- exports.default = _default;
77
- //# sourceMappingURL=color-panel.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/color-panel.native.js"],"names":["ColorPanel","settings","globalStyles","detectedBackgroundColor","setDetectedBackgroundColor","detectedTextColor","setDetectedTextColor","baseGlobalStyles","select","getSettings","blockEditorStore","__experimentalGlobalStylesBaseStyles","color","textColor","text","backgroundColor","background"],"mappings":";;;;;;;;;AAIA;;AADA;;AAEA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AAdA;AACA;AACA;;AAOA;AACA;AACA;AAKA,MAAMA,UAAU,GAAG,QAAoB;AAAA,MAAlB;AAAEC,IAAAA;AAAF,GAAkB;AACtC,QAAMC,YAAY,GAAG,kCAArB;AAEA,QAAM,CAAEC,uBAAF,EAA2BC,0BAA3B,IAA0D,wBAAhE;AACA,QAAM,CAAEC,iBAAF,EAAqBC,oBAArB,IAA8C,wBAApD;AAEA,QAAM;AAAEC,IAAAA;AAAF,MAAuB,qBAAaC,MAAF,IAAc;AAAA;;AACrD,UAAM;AAAEC,MAAAA;AAAF,QAAkBD,MAAM,CAAEE,kBAAF,CAA9B;AACA,WAAO;AACNH,MAAAA,gBAAgB,kBACfE,WAAW,EADI,0EACf,aAAeE,oCADA,0DACf,sBAAqDC;AAFhD,KAAP;AAIA,GAN4B,CAA7B;AAQA,0BAAW,MAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAMC,SAAS,GAAG,CAAAX,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAEU,KAAd,MAAuBL,gBAAvB,aAAuBA,gBAAvB,uBAAuBA,gBAAgB,CAAEO,IAAzC,CAAlB;AACA,UAAMC,eAAe,GACpB,CAAAb,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAEa,eAAd,MAAiCR,gBAAjC,aAAiCA,gBAAjC,uBAAiCA,gBAAgB,CAAES,UAAnD,CADD;AAGAV,IAAAA,oBAAoB,CAAEO,SAAF,CAApB;AACAT,IAAAA,0BAA0B,CAAEW,eAAF,CAA1B;AACA,GAdD,EAcG,CAAEb,YAAF,EAAgBK,gBAAhB,CAdH;AAgBA,SACC,4BAAC,0BAAD,QACC,4BAAC,mCAAD;AACC,IAAA,KAAK,EAAG,cAAI,OAAJ,CADT;AAEC,IAAA,WAAW,EAAG,KAFf;AAGC,IAAA,QAAQ,EAAGN;AAHZ,KAKC,4BAAC,wBAAD;AACC,IAAA,eAAe,EAAGE,uBADnB;AAEC,IAAA,SAAS,EAAGE;AAFb,IALD,CADD,CADD;AAcA,CA5CD;;eA8CeL,U","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useGlobalStyles } from '@wordpress/components';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport PanelColorGradientSettings from '../components/colors-gradients/panel-color-gradient-settings';\nimport ContrastChecker from '../components/contrast-checker';\nimport InspectorControls from '../components/inspector-controls';\n\nconst ColorPanel = ( { settings } ) => {\n\tconst globalStyles = useGlobalStyles();\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedTextColor, setDetectedTextColor ] = useState();\n\n\tconst { baseGlobalStyles } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tbaseGlobalStyles:\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles?.color,\n\t\t};\n\t} );\n\n\tuseEffect( () => {\n\t\t// The following logic is used to determine current text/background colors:\n\t\t// 1. The globalStyles object is queried to determine whether a color has been\n\t\t// set via a block's settings.\n\t\t// 2. If a block-based theme is in use and no globalStyles exist, the theme's\n\t\t// default/base colors are used.\n\t\t// 3. If no globalStyles exist and a theme isn't block-based, there is no way\n\t\t// to determine the default text/background color and the checker won't run.\n\t\tconst textColor = globalStyles?.color || baseGlobalStyles?.text;\n\t\tconst backgroundColor =\n\t\t\tglobalStyles?.backgroundColor || baseGlobalStyles?.background;\n\n\t\tsetDetectedTextColor( textColor );\n\t\tsetDetectedBackgroundColor( backgroundColor );\n\t}, [ globalStyles, baseGlobalStyles ] );\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelColorGradientSettings\n\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\tinitialOpen={ false }\n\t\t\t\tsettings={ settings }\n\t\t\t>\n\t\t\t\t<ContrastChecker\n\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\ttextColor={ detectedTextColor }\n\t\t\t\t/>\n\t\t\t</PanelColorGradientSettings>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default ColorPanel;\n"]}
@@ -1,4 +0,0 @@
1
- export function useNativeProps() {
2
- return {};
3
- }
4
- //# sourceMappingURL=use-native-props.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/use-native-props.js"],"names":["useNativeProps"],"mappings":"AAAA,OAAO,SAASA,cAAT,GAA0B;AAChC,SAAO,EAAP;AACA","sourcesContent":["export function useNativeProps() {\n\treturn {};\n}\n"]}
@@ -1,15 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useContext } from '@wordpress/element';
5
- /**
6
- * Internal dependencies
7
- */
8
-
9
- import { OnCaretVerticalPositionChange } from '../block-list';
10
- export function useNativeProps() {
11
- return {
12
- onCaretVerticalPositionChange: useContext(OnCaretVerticalPositionChange)
13
- };
14
- }
15
- //# sourceMappingURL=use-native-props.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/use-native-props.native.js"],"names":["useContext","OnCaretVerticalPositionChange","useNativeProps","onCaretVerticalPositionChange"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAT,QAA2B,oBAA3B;AAEA;AACA;AACA;;AACA,SAASC,6BAAT,QAA8C,eAA9C;AAEA,OAAO,SAASC,cAAT,GAA0B;AAChC,SAAO;AACNC,IAAAA,6BAA6B,EAAEH,UAAU,CACxCC,6BADwC;AADnC,GAAP;AAKA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { OnCaretVerticalPositionChange } from '../block-list';\n\nexport function useNativeProps() {\n\treturn {\n\t\tonCaretVerticalPositionChange: useContext(\n\t\t\tOnCaretVerticalPositionChange\n\t\t),\n\t};\n}\n"]}
@@ -1,62 +0,0 @@
1
- import { createElement } from "@wordpress/element";
2
-
3
- /**
4
- * WordPress dependencies
5
- */
6
- import { useSelect } from '@wordpress/data';
7
- import { useEffect, useState } from '@wordpress/element';
8
- import { __ } from '@wordpress/i18n';
9
- import { useGlobalStyles } from '@wordpress/components';
10
- import { store as blockEditorStore } from '@wordpress/block-editor';
11
- /**
12
- * Internal dependencies
13
- */
14
-
15
- import PanelColorGradientSettings from '../components/colors-gradients/panel-color-gradient-settings';
16
- import ContrastChecker from '../components/contrast-checker';
17
- import InspectorControls from '../components/inspector-controls';
18
-
19
- const ColorPanel = _ref => {
20
- let {
21
- settings
22
- } = _ref;
23
- const globalStyles = useGlobalStyles();
24
- const [detectedBackgroundColor, setDetectedBackgroundColor] = useState();
25
- const [detectedTextColor, setDetectedTextColor] = useState();
26
- const {
27
- baseGlobalStyles
28
- } = useSelect(select => {
29
- var _getSettings, _getSettings$__experi;
30
-
31
- const {
32
- getSettings
33
- } = select(blockEditorStore);
34
- return {
35
- baseGlobalStyles: (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : (_getSettings$__experi = _getSettings.__experimentalGlobalStylesBaseStyles) === null || _getSettings$__experi === void 0 ? void 0 : _getSettings$__experi.color
36
- };
37
- });
38
- useEffect(() => {
39
- // The following logic is used to determine current text/background colors:
40
- // 1. The globalStyles object is queried to determine whether a color has been
41
- // set via a block's settings.
42
- // 2. If a block-based theme is in use and no globalStyles exist, the theme's
43
- // default/base colors are used.
44
- // 3. If no globalStyles exist and a theme isn't block-based, there is no way
45
- // to determine the default text/background color and the checker won't run.
46
- const textColor = (globalStyles === null || globalStyles === void 0 ? void 0 : globalStyles.color) || (baseGlobalStyles === null || baseGlobalStyles === void 0 ? void 0 : baseGlobalStyles.text);
47
- const backgroundColor = (globalStyles === null || globalStyles === void 0 ? void 0 : globalStyles.backgroundColor) || (baseGlobalStyles === null || baseGlobalStyles === void 0 ? void 0 : baseGlobalStyles.background);
48
- setDetectedTextColor(textColor);
49
- setDetectedBackgroundColor(backgroundColor);
50
- }, [globalStyles, baseGlobalStyles]);
51
- return createElement(InspectorControls, null, createElement(PanelColorGradientSettings, {
52
- title: __('Color'),
53
- initialOpen: false,
54
- settings: settings
55
- }, createElement(ContrastChecker, {
56
- backgroundColor: detectedBackgroundColor,
57
- textColor: detectedTextColor
58
- })));
59
- };
60
-
61
- export default ColorPanel;
62
- //# sourceMappingURL=color-panel.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/color-panel.native.js"],"names":["useSelect","useEffect","useState","__","useGlobalStyles","store","blockEditorStore","PanelColorGradientSettings","ContrastChecker","InspectorControls","ColorPanel","settings","globalStyles","detectedBackgroundColor","setDetectedBackgroundColor","detectedTextColor","setDetectedTextColor","baseGlobalStyles","select","getSettings","__experimentalGlobalStylesBaseStyles","color","textColor","text","backgroundColor","background"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SAASC,SAAT,EAAoBC,QAApB,QAAoC,oBAApC;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,eAAT,QAAgC,uBAAhC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,yBAA1C;AAEA;AACA;AACA;;AACA,OAAOC,0BAAP,MAAuC,8DAAvC;AACA,OAAOC,eAAP,MAA4B,gCAA5B;AACA,OAAOC,iBAAP,MAA8B,kCAA9B;;AAEA,MAAMC,UAAU,GAAG,QAAoB;AAAA,MAAlB;AAAEC,IAAAA;AAAF,GAAkB;AACtC,QAAMC,YAAY,GAAGR,eAAe,EAApC;AAEA,QAAM,CAAES,uBAAF,EAA2BC,0BAA3B,IAA0DZ,QAAQ,EAAxE;AACA,QAAM,CAAEa,iBAAF,EAAqBC,oBAArB,IAA8Cd,QAAQ,EAA5D;AAEA,QAAM;AAAEe,IAAAA;AAAF,MAAuBjB,SAAS,CAAIkB,MAAF,IAAc;AAAA;;AACrD,UAAM;AAAEC,MAAAA;AAAF,QAAkBD,MAAM,CAAEZ,gBAAF,CAA9B;AACA,WAAO;AACNW,MAAAA,gBAAgB,kBACfE,WAAW,EADI,0EACf,aAAeC,oCADA,0DACf,sBAAqDC;AAFhD,KAAP;AAIA,GANqC,CAAtC;AAQApB,EAAAA,SAAS,CAAE,MAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAMqB,SAAS,GAAG,CAAAV,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAES,KAAd,MAAuBJ,gBAAvB,aAAuBA,gBAAvB,uBAAuBA,gBAAgB,CAAEM,IAAzC,CAAlB;AACA,UAAMC,eAAe,GACpB,CAAAZ,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAEY,eAAd,MAAiCP,gBAAjC,aAAiCA,gBAAjC,uBAAiCA,gBAAgB,CAAEQ,UAAnD,CADD;AAGAT,IAAAA,oBAAoB,CAAEM,SAAF,CAApB;AACAR,IAAAA,0BAA0B,CAAEU,eAAF,CAA1B;AACA,GAdQ,EAcN,CAAEZ,YAAF,EAAgBK,gBAAhB,CAdM,CAAT;AAgBA,SACC,cAAC,iBAAD,QACC,cAAC,0BAAD;AACC,IAAA,KAAK,EAAGd,EAAE,CAAE,OAAF,CADX;AAEC,IAAA,WAAW,EAAG,KAFf;AAGC,IAAA,QAAQ,EAAGQ;AAHZ,KAKC,cAAC,eAAD;AACC,IAAA,eAAe,EAAGE,uBADnB;AAEC,IAAA,SAAS,EAAGE;AAFb,IALD,CADD,CADD;AAcA,CA5CD;;AA8CA,eAAeL,UAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useGlobalStyles } from '@wordpress/components';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport PanelColorGradientSettings from '../components/colors-gradients/panel-color-gradient-settings';\nimport ContrastChecker from '../components/contrast-checker';\nimport InspectorControls from '../components/inspector-controls';\n\nconst ColorPanel = ( { settings } ) => {\n\tconst globalStyles = useGlobalStyles();\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedTextColor, setDetectedTextColor ] = useState();\n\n\tconst { baseGlobalStyles } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tbaseGlobalStyles:\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles?.color,\n\t\t};\n\t} );\n\n\tuseEffect( () => {\n\t\t// The following logic is used to determine current text/background colors:\n\t\t// 1. The globalStyles object is queried to determine whether a color has been\n\t\t// set via a block's settings.\n\t\t// 2. If a block-based theme is in use and no globalStyles exist, the theme's\n\t\t// default/base colors are used.\n\t\t// 3. If no globalStyles exist and a theme isn't block-based, there is no way\n\t\t// to determine the default text/background color and the checker won't run.\n\t\tconst textColor = globalStyles?.color || baseGlobalStyles?.text;\n\t\tconst backgroundColor =\n\t\t\tglobalStyles?.backgroundColor || baseGlobalStyles?.background;\n\n\t\tsetDetectedTextColor( textColor );\n\t\tsetDetectedBackgroundColor( backgroundColor );\n\t}, [ globalStyles, baseGlobalStyles ] );\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelColorGradientSettings\n\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\tinitialOpen={ false }\n\t\t\t\tsettings={ settings }\n\t\t\t>\n\t\t\t\t<ContrastChecker\n\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\ttextColor={ detectedTextColor }\n\t\t\t\t/>\n\t\t\t</PanelColorGradientSettings>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default ColorPanel;\n"]}
@@ -1,3 +0,0 @@
1
- export function useNativeProps() {
2
- return {};
3
- }
@@ -1,17 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useContext } from '@wordpress/element';
5
-
6
- /**
7
- * Internal dependencies
8
- */
9
- import { OnCaretVerticalPositionChange } from '../block-list';
10
-
11
- export function useNativeProps() {
12
- return {
13
- onCaretVerticalPositionChange: useContext(
14
- OnCaretVerticalPositionChange
15
- ),
16
- };
17
- }
@@ -1,63 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect } from '@wordpress/data';
5
- import { useEffect, useState } from '@wordpress/element';
6
- import { __ } from '@wordpress/i18n';
7
- import { useGlobalStyles } from '@wordpress/components';
8
- import { store as blockEditorStore } from '@wordpress/block-editor';
9
-
10
- /**
11
- * Internal dependencies
12
- */
13
- import PanelColorGradientSettings from '../components/colors-gradients/panel-color-gradient-settings';
14
- import ContrastChecker from '../components/contrast-checker';
15
- import InspectorControls from '../components/inspector-controls';
16
-
17
- const ColorPanel = ( { settings } ) => {
18
- const globalStyles = useGlobalStyles();
19
-
20
- const [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();
21
- const [ detectedTextColor, setDetectedTextColor ] = useState();
22
-
23
- const { baseGlobalStyles } = useSelect( ( select ) => {
24
- const { getSettings } = select( blockEditorStore );
25
- return {
26
- baseGlobalStyles:
27
- getSettings()?.__experimentalGlobalStylesBaseStyles?.color,
28
- };
29
- } );
30
-
31
- useEffect( () => {
32
- // The following logic is used to determine current text/background colors:
33
- // 1. The globalStyles object is queried to determine whether a color has been
34
- // set via a block's settings.
35
- // 2. If a block-based theme is in use and no globalStyles exist, the theme's
36
- // default/base colors are used.
37
- // 3. If no globalStyles exist and a theme isn't block-based, there is no way
38
- // to determine the default text/background color and the checker won't run.
39
- const textColor = globalStyles?.color || baseGlobalStyles?.text;
40
- const backgroundColor =
41
- globalStyles?.backgroundColor || baseGlobalStyles?.background;
42
-
43
- setDetectedTextColor( textColor );
44
- setDetectedBackgroundColor( backgroundColor );
45
- }, [ globalStyles, baseGlobalStyles ] );
46
-
47
- return (
48
- <InspectorControls>
49
- <PanelColorGradientSettings
50
- title={ __( 'Color' ) }
51
- initialOpen={ false }
52
- settings={ settings }
53
- >
54
- <ContrastChecker
55
- backgroundColor={ detectedBackgroundColor }
56
- textColor={ detectedTextColor }
57
- />
58
- </PanelColorGradientSettings>
59
- </InspectorControls>
60
- );
61
- };
62
-
63
- export default ColorPanel;