@wordpress/block-editor 11.5.0 → 11.7.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 (345) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +4 -0
  3. package/build/components/block-list/block-html.js +1 -3
  4. package/build/components/block-list/block-html.js.map +1 -1
  5. package/build/components/block-list/block-invalid-warning.js +63 -80
  6. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  7. package/build/components/block-preview/auto.js +6 -23
  8. package/build/components/block-preview/auto.js.map +1 -1
  9. package/build/components/block-settings-menu-controls/index.js +1 -1
  10. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  11. package/build/components/block-switcher/block-transformations-menu.native.js +1 -0
  12. package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  13. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +6 -3
  14. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  15. package/build/components/editor-styles/index.js +20 -2
  16. package/build/components/editor-styles/index.js.map +1 -1
  17. package/build/components/global-styles/border-panel.js +306 -0
  18. package/build/components/global-styles/border-panel.js.map +1 -0
  19. package/build/components/global-styles/color-panel.js +583 -0
  20. package/build/components/global-styles/color-panel.js.map +1 -0
  21. package/build/components/global-styles/dimensions-panel.js +8 -30
  22. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  23. package/build/components/global-styles/get-block-css-selector.js +129 -0
  24. package/build/components/global-styles/get-block-css-selector.js.map +1 -0
  25. package/build/components/global-styles/hooks.js +109 -3
  26. package/build/components/global-styles/hooks.js.map +1 -1
  27. package/build/components/global-styles/index.js +36 -0
  28. package/build/components/global-styles/index.js.map +1 -1
  29. package/build/components/global-styles/typography-panel.js +66 -45
  30. package/build/components/global-styles/typography-panel.js.map +1 -1
  31. package/build/components/global-styles/use-global-styles-output.js +180 -99
  32. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  33. package/build/components/global-styles/utils.js +2 -1
  34. package/build/components/global-styles/utils.js.map +1 -1
  35. package/build/components/image-size-control/index.js +8 -5
  36. package/build/components/image-size-control/index.js.map +1 -1
  37. package/build/components/inserter/index.js +29 -17
  38. package/build/components/inserter/index.js.map +1 -1
  39. package/build/components/inserter/menu.js +1 -1
  40. package/build/components/inserter/menu.js.map +1 -1
  41. package/build/components/inserter/quick-inserter.js +4 -2
  42. package/build/components/inserter/quick-inserter.js.map +1 -1
  43. package/build/components/inserter/search-results.js +10 -3
  44. package/build/components/inserter/search-results.js.map +1 -1
  45. package/build/components/inserter/tabs.js +1 -1
  46. package/build/components/inserter/tabs.js.map +1 -1
  47. package/build/components/inspector-controls-tabs/position-controls-panel.js +43 -7
  48. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  49. package/build/components/line-height-control/index.js +15 -1
  50. package/build/components/line-height-control/index.js.map +1 -1
  51. package/build/components/link-control/index.js +1 -1
  52. package/build/components/link-control/index.js.map +1 -1
  53. package/build/components/link-control/search-item.js +5 -2
  54. package/build/components/link-control/search-item.js.map +1 -1
  55. package/build/components/list-view/appender.js +105 -0
  56. package/build/components/list-view/appender.js.map +1 -0
  57. package/build/components/list-view/block.js +5 -5
  58. package/build/components/list-view/block.js.map +1 -1
  59. package/build/components/list-view/branch.js +25 -5
  60. package/build/components/list-view/branch.js.map +1 -1
  61. package/build/components/list-view/index.js +37 -13
  62. package/build/components/list-view/index.js.map +1 -1
  63. package/build/components/list-view/use-block-selection.js +1 -2
  64. package/build/components/list-view/use-block-selection.js.map +1 -1
  65. package/build/components/media-replace-flow/index.js +13 -4
  66. package/build/components/media-replace-flow/index.js.map +1 -1
  67. package/build/components/off-canvas-editor/appender.js +28 -3
  68. package/build/components/off-canvas-editor/appender.js.map +1 -1
  69. package/build/components/off-canvas-editor/branch.js +5 -3
  70. package/build/components/off-canvas-editor/branch.js.map +1 -1
  71. package/build/components/off-canvas-editor/index.js +9 -7
  72. package/build/components/off-canvas-editor/index.js.map +1 -1
  73. package/build/components/off-canvas-editor/link-ui.js +0 -1
  74. package/build/components/off-canvas-editor/link-ui.js.map +1 -1
  75. package/build/components/provider/use-block-sync.js +17 -3
  76. package/build/components/provider/use-block-sync.js.map +1 -1
  77. package/build/components/rich-text/format-edit.js +2 -30
  78. package/build/components/rich-text/format-edit.js.map +1 -1
  79. package/build/components/rich-text/format-toolbar-container.js +0 -3
  80. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  81. package/build/components/writing-flow/use-input.js +4 -8
  82. package/build/components/writing-flow/use-input.js.map +1 -1
  83. package/build/hooks/border.js +90 -240
  84. package/build/hooks/border.js.map +1 -1
  85. package/build/hooks/color.js +92 -229
  86. package/build/hooks/color.js.map +1 -1
  87. package/build/hooks/content-lock-ui.js +4 -2
  88. package/build/hooks/content-lock-ui.js.map +1 -1
  89. package/build/hooks/{color-panel.js → contrast-checker.js} +11 -49
  90. package/build/hooks/contrast-checker.js.map +1 -0
  91. package/build/hooks/custom-class-name.js +4 -4
  92. package/build/hooks/custom-class-name.js.map +1 -1
  93. package/build/hooks/custom-class-name.native.js +3 -4
  94. package/build/hooks/custom-class-name.native.js.map +1 -1
  95. package/build/hooks/dimensions.js +0 -1
  96. package/build/hooks/dimensions.js.map +1 -1
  97. package/build/hooks/duotone.js +3 -1
  98. package/build/hooks/duotone.js.map +1 -1
  99. package/build/hooks/layout.js +19 -22
  100. package/build/hooks/layout.js.map +1 -1
  101. package/build/hooks/position.js +2 -2
  102. package/build/hooks/position.js.map +1 -1
  103. package/build/hooks/style.js +23 -26
  104. package/build/hooks/style.js.map +1 -1
  105. package/build/hooks/supports.js +7 -1
  106. package/build/hooks/supports.js.map +1 -1
  107. package/build/hooks/typography.js +2 -2
  108. package/build/hooks/typography.js.map +1 -1
  109. package/build/hooks/utils.js +50 -75
  110. package/build/hooks/utils.js.map +1 -1
  111. package/build/layouts/constrained.js +6 -2
  112. package/build/layouts/constrained.js.map +1 -1
  113. package/build/layouts/grid.js +165 -0
  114. package/build/layouts/grid.js.map +1 -0
  115. package/build/layouts/index.js +3 -1
  116. package/build/layouts/index.js.map +1 -1
  117. package/build/private-apis.js +7 -1
  118. package/build/private-apis.js.map +1 -1
  119. package/build/store/actions.js +10 -8
  120. package/build/store/actions.js.map +1 -1
  121. package/build/store/selectors.js +19 -3
  122. package/build/store/selectors.js.map +1 -1
  123. package/build/utils/object.js +76 -0
  124. package/build/utils/object.js.map +1 -0
  125. package/build/utils/parse-css-unit-to-px.js +15 -9
  126. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  127. package/build-module/components/block-list/block-html.js +1 -3
  128. package/build-module/components/block-list/block-html.js.map +1 -1
  129. package/build-module/components/block-list/block-invalid-warning.js +66 -78
  130. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  131. package/build-module/components/block-preview/auto.js +6 -22
  132. package/build-module/components/block-preview/auto.js.map +1 -1
  133. package/build-module/components/block-settings-menu-controls/index.js +1 -1
  134. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  135. package/build-module/components/block-switcher/block-transformations-menu.native.js +1 -0
  136. package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  137. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +6 -3
  138. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  139. package/build-module/components/editor-styles/index.js +19 -2
  140. package/build-module/components/editor-styles/index.js.map +1 -1
  141. package/build-module/components/global-styles/border-panel.js +291 -0
  142. package/build-module/components/global-styles/border-panel.js.map +1 -0
  143. package/build-module/components/global-styles/color-panel.js +554 -0
  144. package/build-module/components/global-styles/color-panel.js.map +1 -0
  145. package/build-module/components/global-styles/dimensions-panel.js +7 -30
  146. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  147. package/build-module/components/global-styles/get-block-css-selector.js +120 -0
  148. package/build-module/components/global-styles/get-block-css-selector.js.map +1 -0
  149. package/build-module/components/global-styles/hooks.js +104 -3
  150. package/build-module/components/global-styles/hooks.js.map +1 -1
  151. package/build-module/components/global-styles/index.js +3 -0
  152. package/build-module/components/global-styles/index.js.map +1 -1
  153. package/build-module/components/global-styles/typography-panel.js +65 -46
  154. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  155. package/build-module/components/global-styles/use-global-styles-output.js +181 -100
  156. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  157. package/build-module/components/global-styles/utils.js +2 -1
  158. package/build-module/components/global-styles/utils.js.map +1 -1
  159. package/build-module/components/image-size-control/index.js +8 -5
  160. package/build-module/components/image-size-control/index.js.map +1 -1
  161. package/build-module/components/inserter/index.js +28 -16
  162. package/build-module/components/inserter/index.js.map +1 -1
  163. package/build-module/components/inserter/menu.js +1 -1
  164. package/build-module/components/inserter/menu.js.map +1 -1
  165. package/build-module/components/inserter/quick-inserter.js +4 -2
  166. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  167. package/build-module/components/inserter/search-results.js +10 -3
  168. package/build-module/components/inserter/search-results.js.map +1 -1
  169. package/build-module/components/inserter/tabs.js +1 -1
  170. package/build-module/components/inserter/tabs.js.map +1 -1
  171. package/build-module/components/inspector-controls-tabs/position-controls-panel.js +42 -7
  172. package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  173. package/build-module/components/line-height-control/index.js +15 -1
  174. package/build-module/components/line-height-control/index.js.map +1 -1
  175. package/build-module/components/link-control/index.js +1 -1
  176. package/build-module/components/link-control/index.js.map +1 -1
  177. package/build-module/components/link-control/search-item.js +4 -2
  178. package/build-module/components/link-control/search-item.js.map +1 -1
  179. package/build-module/components/list-view/appender.js +88 -0
  180. package/build-module/components/list-view/appender.js.map +1 -0
  181. package/build-module/components/list-view/block.js +5 -4
  182. package/build-module/components/list-view/block.js.map +1 -1
  183. package/build-module/components/list-view/branch.js +22 -5
  184. package/build-module/components/list-view/branch.js.map +1 -1
  185. package/build-module/components/list-view/index.js +32 -12
  186. package/build-module/components/list-view/index.js.map +1 -1
  187. package/build-module/components/list-view/use-block-selection.js +1 -2
  188. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  189. package/build-module/components/media-replace-flow/index.js +12 -4
  190. package/build-module/components/media-replace-flow/index.js.map +1 -1
  191. package/build-module/components/off-canvas-editor/appender.js +28 -4
  192. package/build-module/components/off-canvas-editor/appender.js.map +1 -1
  193. package/build-module/components/off-canvas-editor/branch.js +5 -3
  194. package/build-module/components/off-canvas-editor/branch.js.map +1 -1
  195. package/build-module/components/off-canvas-editor/index.js +9 -7
  196. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  197. package/build-module/components/off-canvas-editor/link-ui.js +0 -1
  198. package/build-module/components/off-canvas-editor/link-ui.js.map +1 -1
  199. package/build-module/components/provider/use-block-sync.js +17 -3
  200. package/build-module/components/provider/use-block-sync.js.map +1 -1
  201. package/build-module/components/rich-text/format-edit.js +3 -31
  202. package/build-module/components/rich-text/format-edit.js.map +1 -1
  203. package/build-module/components/rich-text/format-toolbar-container.js +0 -3
  204. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  205. package/build-module/components/writing-flow/use-input.js +4 -8
  206. package/build-module/components/writing-flow/use-input.js.map +1 -1
  207. package/build-module/hooks/border.js +92 -240
  208. package/build-module/hooks/border.js.map +1 -1
  209. package/build-module/hooks/color.js +90 -232
  210. package/build-module/hooks/color.js.map +1 -1
  211. package/build-module/hooks/content-lock-ui.js +4 -2
  212. package/build-module/hooks/content-lock-ui.js.map +1 -1
  213. package/build-module/hooks/{color-panel.js → contrast-checker.js} +10 -44
  214. package/build-module/hooks/contrast-checker.js.map +1 -0
  215. package/build-module/hooks/custom-class-name.js +4 -4
  216. package/build-module/hooks/custom-class-name.js.map +1 -1
  217. package/build-module/hooks/custom-class-name.native.js +3 -4
  218. package/build-module/hooks/custom-class-name.native.js.map +1 -1
  219. package/build-module/hooks/dimensions.js +0 -1
  220. package/build-module/hooks/dimensions.js.map +1 -1
  221. package/build-module/hooks/duotone.js +4 -2
  222. package/build-module/hooks/duotone.js.map +1 -1
  223. package/build-module/hooks/layout.js +19 -22
  224. package/build-module/hooks/layout.js.map +1 -1
  225. package/build-module/hooks/position.js +3 -3
  226. package/build-module/hooks/position.js.map +1 -1
  227. package/build-module/hooks/style.js +23 -26
  228. package/build-module/hooks/style.js.map +1 -1
  229. package/build-module/hooks/supports.js +7 -1
  230. package/build-module/hooks/supports.js.map +1 -1
  231. package/build-module/hooks/typography.js +2 -2
  232. package/build-module/hooks/typography.js.map +1 -1
  233. package/build-module/hooks/utils.js +48 -72
  234. package/build-module/hooks/utils.js.map +1 -1
  235. package/build-module/layouts/constrained.js +6 -2
  236. package/build-module/layouts/constrained.js.map +1 -1
  237. package/build-module/layouts/grid.js +151 -0
  238. package/build-module/layouts/grid.js.map +1 -0
  239. package/build-module/layouts/index.js +2 -1
  240. package/build-module/layouts/index.js.map +1 -1
  241. package/build-module/private-apis.js +5 -1
  242. package/build-module/private-apis.js.map +1 -1
  243. package/build-module/store/actions.js +10 -8
  244. package/build-module/store/actions.js.map +1 -1
  245. package/build-module/store/selectors.js +17 -3
  246. package/build-module/store/selectors.js.map +1 -1
  247. package/build-module/utils/object.js +69 -0
  248. package/build-module/utils/object.js.map +1 -0
  249. package/build-module/utils/parse-css-unit-to-px.js +15 -9
  250. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  251. package/build-style/style-rtl.css +32 -12
  252. package/build-style/style.css +32 -12
  253. package/package.json +31 -31
  254. package/src/components/block-draggable/content.scss +1 -1
  255. package/src/components/block-inspector/style.scss +3 -0
  256. package/src/components/block-list/block-html.js +1 -1
  257. package/src/components/block-list/block-invalid-warning.js +72 -64
  258. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +20 -2
  259. package/src/components/block-preview/auto.js +2 -17
  260. package/src/components/block-preview/test/index.js +0 -2
  261. package/src/components/block-settings-menu-controls/index.js +2 -1
  262. package/src/components/block-styles/style.scss +2 -2
  263. package/src/components/block-switcher/block-transformations-menu.native.js +1 -0
  264. package/src/components/color-palette/test/__snapshots__/control.js.snap +16 -14
  265. package/src/components/colors-gradients/style.scss +8 -8
  266. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +48 -38
  267. package/src/components/editor-styles/index.js +29 -1
  268. package/src/components/global-styles/border-panel.js +285 -0
  269. package/src/components/global-styles/color-panel.js +706 -0
  270. package/src/components/global-styles/dimensions-panel.js +13 -42
  271. package/src/components/global-styles/get-block-css-selector.js +129 -0
  272. package/src/components/global-styles/hooks.js +154 -1
  273. package/src/components/global-styles/index.js +3 -0
  274. package/src/components/global-styles/test/use-global-styles-output.js +31 -2
  275. package/src/components/global-styles/typography-panel.js +67 -45
  276. package/src/components/global-styles/use-global-styles-output.js +176 -93
  277. package/src/components/global-styles/utils.js +3 -0
  278. package/src/components/image-size-control/index.js +4 -3
  279. package/src/components/image-size-control/test/index.js +2 -2
  280. package/src/components/inner-blocks/README.md +1 -1
  281. package/src/components/inserter/index.js +30 -11
  282. package/src/components/inserter/menu.js +0 -1
  283. package/src/components/inserter/quick-inserter.js +2 -0
  284. package/src/components/inserter/search-results.js +7 -1
  285. package/src/components/inserter/style.scss +3 -0
  286. package/src/components/inserter/tabs.js +1 -9
  287. package/src/components/inspector-controls-tabs/position-controls-panel.js +40 -9
  288. package/src/components/line-height-control/index.js +10 -1
  289. package/src/components/link-control/index.js +1 -1
  290. package/src/components/link-control/search-item.js +3 -1
  291. package/src/components/link-control/style.scss +0 -4
  292. package/src/components/link-control/test/index.js +0 -2
  293. package/src/components/list-view/appender.js +101 -0
  294. package/src/components/list-view/block.js +5 -4
  295. package/src/components/list-view/branch.js +30 -1
  296. package/src/components/list-view/index.js +43 -10
  297. package/src/components/list-view/style.scss +19 -0
  298. package/src/components/list-view/use-block-selection.js +0 -2
  299. package/src/components/media-replace-flow/index.js +36 -24
  300. package/src/components/media-replace-flow/style.scss +5 -2
  301. package/src/components/off-canvas-editor/appender.js +31 -5
  302. package/src/components/off-canvas-editor/branch.js +3 -1
  303. package/src/components/off-canvas-editor/index.js +7 -7
  304. package/src/components/off-canvas-editor/link-ui.js +0 -1
  305. package/src/components/provider/use-block-sync.js +21 -4
  306. package/src/components/rich-text/format-edit.js +2 -32
  307. package/src/components/rich-text/format-toolbar-container.js +1 -7
  308. package/src/components/url-popover/test/index.js +0 -2
  309. package/src/components/writing-flow/use-input.js +4 -5
  310. package/src/hooks/border.js +93 -225
  311. package/src/hooks/color.js +120 -296
  312. package/src/hooks/content-lock-ui.js +6 -2
  313. package/src/hooks/{color-panel.js → contrast-checker.js} +10 -46
  314. package/src/hooks/custom-class-name.js +4 -4
  315. package/src/hooks/custom-class-name.native.js +3 -4
  316. package/src/hooks/dimensions.js +0 -1
  317. package/src/hooks/duotone.js +8 -5
  318. package/src/hooks/layout.js +19 -16
  319. package/src/hooks/position.js +3 -3
  320. package/src/hooks/style.js +29 -28
  321. package/src/hooks/supports.js +6 -0
  322. package/src/hooks/test/style.js +2 -1
  323. package/src/hooks/test/use-typography-props.js +2 -0
  324. package/src/hooks/test/utils.js +0 -104
  325. package/src/hooks/typography.js +2 -1
  326. package/src/hooks/utils.js +63 -70
  327. package/src/layouts/constrained.js +23 -17
  328. package/src/layouts/grid.js +172 -0
  329. package/src/layouts/index.js +2 -1
  330. package/src/layouts/test/grid.js +21 -0
  331. package/src/private-apis.js +4 -0
  332. package/src/store/actions.js +10 -8
  333. package/src/store/selectors.js +20 -3
  334. package/src/utils/object.js +69 -0
  335. package/src/utils/parse-css-unit-to-px.js +14 -9
  336. package/src/utils/test/object.js +107 -0
  337. package/src/utils/test/parse-css-unit-to-px.js +1 -2
  338. package/tsconfig.tsbuildinfo +1 -1
  339. package/build/hooks/border-radius.js +0 -100
  340. package/build/hooks/border-radius.js.map +0 -1
  341. package/build/hooks/color-panel.js.map +0 -1
  342. package/build-module/hooks/border-radius.js +0 -84
  343. package/build-module/hooks/border-radius.js.map +0 -1
  344. package/build-module/hooks/color-panel.js.map +0 -1
  345. package/src/hooks/border-radius.js +0 -70
@@ -0,0 +1,583 @@
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 = ColorPanel;
9
+ exports.useHasBackgroundPanel = useHasBackgroundPanel;
10
+ exports.useHasButtonPanel = useHasButtonPanel;
11
+ exports.useHasCaptionPanel = useHasCaptionPanel;
12
+ exports.useHasColorPanel = useHasColorPanel;
13
+ exports.useHasHeadingPanel = useHasHeadingPanel;
14
+ exports.useHasLinkPanel = useHasLinkPanel;
15
+ exports.useHasTextPanel = useHasTextPanel;
16
+
17
+ var _element = require("@wordpress/element");
18
+
19
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
20
+
21
+ var _classnames = _interopRequireDefault(require("classnames"));
22
+
23
+ var _components = require("@wordpress/components");
24
+
25
+ var _i18n = require("@wordpress/i18n");
26
+
27
+ var _control = _interopRequireDefault(require("../colors-gradients/control"));
28
+
29
+ var _hooks = require("./hooks");
30
+
31
+ var _utils = require("./utils");
32
+
33
+ var _object = require("../../utils/object");
34
+
35
+ /**
36
+ * External dependencies
37
+ */
38
+
39
+ /**
40
+ * WordPress dependencies
41
+ */
42
+
43
+ /**
44
+ * Internal dependencies
45
+ */
46
+ function useHasColorPanel(settings) {
47
+ const hasTextPanel = useHasTextPanel(settings);
48
+ const hasBackgroundPanel = useHasBackgroundPanel(settings);
49
+ const hasLinkPanel = useHasLinkPanel(settings);
50
+ const hasHeadingPanel = useHasHeadingPanel(settings);
51
+ const hasButtonPanel = useHasHeadingPanel(settings);
52
+ const hasCaptionPanel = useHasCaptionPanel(settings);
53
+ return hasTextPanel || hasBackgroundPanel || hasLinkPanel || hasHeadingPanel || hasButtonPanel || hasCaptionPanel;
54
+ }
55
+
56
+ function useHasTextPanel(settings) {
57
+ var _settings$color, _settings$color2;
58
+
59
+ const colors = (0, _hooks.useColorsPerOrigin)(settings);
60
+ return (settings === null || settings === void 0 ? void 0 : (_settings$color = settings.color) === null || _settings$color === void 0 ? void 0 : _settings$color.text) && ((colors === null || colors === void 0 ? void 0 : colors.length) > 0 || (settings === null || settings === void 0 ? void 0 : (_settings$color2 = settings.color) === null || _settings$color2 === void 0 ? void 0 : _settings$color2.custom));
61
+ }
62
+
63
+ function useHasLinkPanel(settings) {
64
+ var _settings$color3, _settings$color4;
65
+
66
+ const colors = (0, _hooks.useColorsPerOrigin)(settings);
67
+ return (settings === null || settings === void 0 ? void 0 : (_settings$color3 = settings.color) === null || _settings$color3 === void 0 ? void 0 : _settings$color3.link) && ((colors === null || colors === void 0 ? void 0 : colors.length) > 0 || (settings === null || settings === void 0 ? void 0 : (_settings$color4 = settings.color) === null || _settings$color4 === void 0 ? void 0 : _settings$color4.custom));
68
+ }
69
+
70
+ function useHasCaptionPanel(settings) {
71
+ var _settings$color5, _settings$color6;
72
+
73
+ const colors = (0, _hooks.useColorsPerOrigin)(settings);
74
+ return (settings === null || settings === void 0 ? void 0 : (_settings$color5 = settings.color) === null || _settings$color5 === void 0 ? void 0 : _settings$color5.caption) && ((colors === null || colors === void 0 ? void 0 : colors.length) > 0 || (settings === null || settings === void 0 ? void 0 : (_settings$color6 = settings.color) === null || _settings$color6 === void 0 ? void 0 : _settings$color6.custom));
75
+ }
76
+
77
+ function useHasHeadingPanel(settings) {
78
+ var _settings$color7, _settings$color8, _settings$color9;
79
+
80
+ const colors = (0, _hooks.useColorsPerOrigin)(settings);
81
+ const gradients = (0, _hooks.useGradientsPerOrigin)(settings);
82
+ return (settings === null || settings === void 0 ? void 0 : (_settings$color7 = settings.color) === null || _settings$color7 === void 0 ? void 0 : _settings$color7.heading) && ((colors === null || colors === void 0 ? void 0 : colors.length) > 0 || (settings === null || settings === void 0 ? void 0 : (_settings$color8 = settings.color) === null || _settings$color8 === void 0 ? void 0 : _settings$color8.custom) || (gradients === null || gradients === void 0 ? void 0 : gradients.length) > 0 || (settings === null || settings === void 0 ? void 0 : (_settings$color9 = settings.color) === null || _settings$color9 === void 0 ? void 0 : _settings$color9.customGradient));
83
+ }
84
+
85
+ function useHasButtonPanel(settings) {
86
+ var _settings$color10, _settings$color11, _settings$color12;
87
+
88
+ const colors = (0, _hooks.useColorsPerOrigin)(settings);
89
+ const gradients = (0, _hooks.useGradientsPerOrigin)(settings);
90
+ return (settings === null || settings === void 0 ? void 0 : (_settings$color10 = settings.color) === null || _settings$color10 === void 0 ? void 0 : _settings$color10.button) && ((colors === null || colors === void 0 ? void 0 : colors.length) > 0 || (settings === null || settings === void 0 ? void 0 : (_settings$color11 = settings.color) === null || _settings$color11 === void 0 ? void 0 : _settings$color11.custom) || (gradients === null || gradients === void 0 ? void 0 : gradients.length) > 0 || (settings === null || settings === void 0 ? void 0 : (_settings$color12 = settings.color) === null || _settings$color12 === void 0 ? void 0 : _settings$color12.customGradient));
91
+ }
92
+
93
+ function useHasBackgroundPanel(settings) {
94
+ var _settings$color13, _settings$color14, _settings$color15;
95
+
96
+ const colors = (0, _hooks.useColorsPerOrigin)(settings);
97
+ const gradients = (0, _hooks.useGradientsPerOrigin)(settings);
98
+ return (settings === null || settings === void 0 ? void 0 : (_settings$color13 = settings.color) === null || _settings$color13 === void 0 ? void 0 : _settings$color13.background) && ((colors === null || colors === void 0 ? void 0 : colors.length) > 0 || (settings === null || settings === void 0 ? void 0 : (_settings$color14 = settings.color) === null || _settings$color14 === void 0 ? void 0 : _settings$color14.custom) || (gradients === null || gradients === void 0 ? void 0 : gradients.length) > 0 || (settings === null || settings === void 0 ? void 0 : (_settings$color15 = settings.color) === null || _settings$color15 === void 0 ? void 0 : _settings$color15.customGradient));
99
+ }
100
+
101
+ function ColorToolsPanel(_ref) {
102
+ let {
103
+ resetAllFilter,
104
+ onChange,
105
+ value,
106
+ panelId,
107
+ children
108
+ } = _ref;
109
+
110
+ const resetAll = () => {
111
+ const updatedValue = resetAllFilter(value);
112
+ onChange(updatedValue);
113
+ };
114
+
115
+ return (0, _element.createElement)(_components.__experimentalToolsPanel, {
116
+ label: (0, _i18n.__)('Color'),
117
+ resetAll: resetAll,
118
+ panelId: panelId,
119
+ hasInnerWrapper: true,
120
+ className: "color-block-support-panel",
121
+ __experimentalFirstVisibleItemClass: "first",
122
+ __experimentalLastVisibleItemClass: "last"
123
+ }, (0, _element.createElement)("div", {
124
+ className: "color-block-support-panel__inner-wrapper"
125
+ }, children));
126
+ }
127
+
128
+ const DEFAULT_CONTROLS = {
129
+ text: true,
130
+ background: true,
131
+ link: true,
132
+ heading: true,
133
+ button: true,
134
+ caption: true
135
+ };
136
+ const popoverProps = {
137
+ placement: 'left-start',
138
+ offset: 36,
139
+ shift: true
140
+ };
141
+
142
+ const LabeledColorIndicators = _ref2 => {
143
+ let {
144
+ indicators,
145
+ label
146
+ } = _ref2;
147
+ return (0, _element.createElement)(_components.__experimentalHStack, {
148
+ justify: "flex-start"
149
+ }, (0, _element.createElement)(_components.__experimentalZStack, {
150
+ isLayered: false,
151
+ offset: -8
152
+ }, indicators.map((indicator, index) => (0, _element.createElement)(_components.Flex, {
153
+ key: index,
154
+ expanded: false
155
+ }, (0, _element.createElement)(_components.ColorIndicator, {
156
+ colorValue: indicator
157
+ })))), (0, _element.createElement)(_components.FlexItem, {
158
+ className: "block-editor-panel-color-gradient-settings__color-name",
159
+ title: label
160
+ }, label));
161
+ };
162
+
163
+ function ColorPanelTab(_ref3) {
164
+ let {
165
+ isGradient,
166
+ inheritedValue,
167
+ userValue,
168
+ setValue,
169
+ colorGradientControlSettings
170
+ } = _ref3;
171
+ return (0, _element.createElement)(_control.default, (0, _extends2.default)({}, colorGradientControlSettings, {
172
+ showTitle: false,
173
+ enableAlpha: true,
174
+ __experimentalIsRenderedInSidebar: true,
175
+ colorValue: isGradient ? undefined : inheritedValue,
176
+ gradientValue: isGradient ? inheritedValue : undefined,
177
+ onColorChange: isGradient ? undefined : setValue,
178
+ onGradientChange: isGradient ? setValue : undefined,
179
+ clearable: inheritedValue === userValue,
180
+ headingLevel: 3
181
+ }));
182
+ }
183
+
184
+ function ColorPanelDropdown(_ref4) {
185
+ let {
186
+ label,
187
+ hasValue,
188
+ resetValue,
189
+ isShownByDefault,
190
+ indicators,
191
+ tabs,
192
+ colorGradientControlSettings,
193
+ panelId
194
+ } = _ref4;
195
+ const tabConfigs = tabs.map(_ref5 => {
196
+ let {
197
+ key,
198
+ label: tabLabel
199
+ } = _ref5;
200
+ return {
201
+ name: key,
202
+ title: tabLabel
203
+ };
204
+ });
205
+ return (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
206
+ className: "block-editor-tools-panel-color-gradient-settings__item",
207
+ hasValue: hasValue,
208
+ label: label,
209
+ onDeselect: resetValue,
210
+ isShownByDefault: isShownByDefault,
211
+ panelId: panelId
212
+ }, (0, _element.createElement)(_components.Dropdown, {
213
+ popoverProps: popoverProps,
214
+ className: "block-editor-tools-panel-color-gradient-settings__dropdown",
215
+ renderToggle: _ref6 => {
216
+ let {
217
+ onToggle,
218
+ isOpen
219
+ } = _ref6;
220
+ const toggleProps = {
221
+ onClick: onToggle,
222
+ className: (0, _classnames.default)('block-editor-panel-color-gradient-settings__dropdown', {
223
+ 'is-open': isOpen
224
+ }),
225
+ 'aria-expanded': isOpen
226
+ };
227
+ return (0, _element.createElement)(_components.Button, toggleProps, (0, _element.createElement)(LabeledColorIndicators, {
228
+ indicators: indicators,
229
+ label: label
230
+ }));
231
+ },
232
+ renderContent: () => (0, _element.createElement)(_components.__experimentalDropdownContentWrapper, {
233
+ paddingSize: "none"
234
+ }, (0, _element.createElement)("div", {
235
+ className: "block-editor-panel-color-gradient-settings__dropdown-content"
236
+ }, tabs.length === 1 && (0, _element.createElement)(ColorPanelTab, (0, _extends2.default)({}, tabs[0], {
237
+ colorGradientControlSettings: colorGradientControlSettings
238
+ })), tabs.length > 1 && (0, _element.createElement)(_components.TabPanel, {
239
+ tabs: tabConfigs
240
+ }, tab => {
241
+ const selectedTab = tabs.find(t => t.key === tab.name);
242
+
243
+ if (!selectedTab) {
244
+ return null;
245
+ }
246
+
247
+ return (0, _element.createElement)(ColorPanelTab, (0, _extends2.default)({}, selectedTab, {
248
+ colorGradientControlSettings: colorGradientControlSettings
249
+ }));
250
+ })))
251
+ }));
252
+ }
253
+
254
+ function ColorPanel(_ref7) {
255
+ var _settings$color16, _settings$color17, _inheritedValue$color, _value$color, _inheritedValue$color2, _value$color2, _inheritedValue$color3, _value$color3, _inheritedValue$eleme, _inheritedValue$eleme2, _inheritedValue$eleme3, _value$elements, _value$elements$link, _value$elements$link$, _inheritedValue$eleme4, _inheritedValue$eleme5, _inheritedValue$eleme6, _inheritedValue$eleme7, _value$elements2, _value$elements2$link, _value$elements2$link2, _value$elements2$link3;
256
+
257
+ let {
258
+ as: Wrapper = ColorToolsPanel,
259
+ value,
260
+ onChange,
261
+ inheritedValue = value,
262
+ settings,
263
+ panelId,
264
+ defaultControls = DEFAULT_CONTROLS,
265
+ children
266
+ } = _ref7;
267
+ const colors = (0, _hooks.useColorsPerOrigin)(settings);
268
+ const gradients = (0, _hooks.useGradientsPerOrigin)(settings);
269
+ const areCustomSolidsEnabled = settings === null || settings === void 0 ? void 0 : (_settings$color16 = settings.color) === null || _settings$color16 === void 0 ? void 0 : _settings$color16.custom;
270
+ const areCustomGradientsEnabled = settings === null || settings === void 0 ? void 0 : (_settings$color17 = settings.color) === null || _settings$color17 === void 0 ? void 0 : _settings$color17.customGradient;
271
+ const hasSolidColors = colors.length > 0 || areCustomSolidsEnabled;
272
+ const hasGradientColors = gradients.length > 0 || areCustomGradientsEnabled;
273
+
274
+ const decodeValue = rawValue => (0, _utils.getValueFromVariable)({
275
+ settings
276
+ }, '', rawValue);
277
+
278
+ const encodeColorValue = colorValue => {
279
+ const allColors = colors.flatMap(_ref8 => {
280
+ let {
281
+ colors: originColors
282
+ } = _ref8;
283
+ return originColors;
284
+ });
285
+ const colorObject = allColors.find(_ref9 => {
286
+ let {
287
+ color
288
+ } = _ref9;
289
+ return color === colorValue;
290
+ });
291
+ return colorObject ? 'var:preset|color|' + colorObject.slug : colorValue;
292
+ };
293
+
294
+ const encodeGradientValue = gradientValue => {
295
+ const allGradients = gradients.flatMap(_ref10 => {
296
+ let {
297
+ gradients: originGradients
298
+ } = _ref10;
299
+ return originGradients;
300
+ });
301
+ const gradientObject = allGradients.find(_ref11 => {
302
+ let {
303
+ gradient
304
+ } = _ref11;
305
+ return gradient === gradientValue;
306
+ });
307
+ return gradientObject ? 'var:preset|gradient|' + gradientObject.slug : gradientValue;
308
+ }; // Text Color
309
+
310
+
311
+ const showTextPanel = useHasTextPanel(settings);
312
+ const textColor = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$color = inheritedValue.color) === null || _inheritedValue$color === void 0 ? void 0 : _inheritedValue$color.text);
313
+ const userTextColor = decodeValue(value === null || value === void 0 ? void 0 : (_value$color = value.color) === null || _value$color === void 0 ? void 0 : _value$color.text);
314
+
315
+ const hasTextColor = () => !!userTextColor;
316
+
317
+ const setTextColor = newColor => {
318
+ onChange((0, _object.immutableSet)(value, ['color', 'text'], encodeColorValue(newColor)));
319
+ };
320
+
321
+ const resetTextColor = () => setTextColor(undefined); // BackgroundColor
322
+
323
+
324
+ const showBackgroundPanel = useHasBackgroundPanel(settings);
325
+ const backgroundColor = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$color2 = inheritedValue.color) === null || _inheritedValue$color2 === void 0 ? void 0 : _inheritedValue$color2.background);
326
+ const userBackgroundColor = decodeValue(value === null || value === void 0 ? void 0 : (_value$color2 = value.color) === null || _value$color2 === void 0 ? void 0 : _value$color2.background);
327
+ const gradient = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$color3 = inheritedValue.color) === null || _inheritedValue$color3 === void 0 ? void 0 : _inheritedValue$color3.gradient);
328
+ const userGradient = decodeValue(value === null || value === void 0 ? void 0 : (_value$color3 = value.color) === null || _value$color3 === void 0 ? void 0 : _value$color3.gradient);
329
+
330
+ const hasBackground = () => !!userBackgroundColor || !!userGradient;
331
+
332
+ const setBackgroundColor = newColor => {
333
+ const newValue = (0, _object.immutableSet)(value, ['color', 'background'], encodeColorValue(newColor));
334
+ newValue.color.gradient = undefined;
335
+ onChange(newValue);
336
+ };
337
+
338
+ const setGradient = newGradient => {
339
+ const newValue = (0, _object.immutableSet)(value, ['color', 'gradient'], encodeGradientValue(newGradient));
340
+ newValue.color.background = undefined;
341
+ onChange(newValue);
342
+ };
343
+
344
+ const resetBackground = () => {
345
+ const newValue = (0, _object.immutableSet)(value, ['color', 'background'], undefined);
346
+ newValue.color.gradient = undefined;
347
+ onChange(newValue);
348
+ }; // Links
349
+
350
+
351
+ const showLinkPanel = useHasLinkPanel(settings);
352
+ const linkColor = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$eleme = inheritedValue.elements) === null || _inheritedValue$eleme === void 0 ? void 0 : (_inheritedValue$eleme2 = _inheritedValue$eleme.link) === null || _inheritedValue$eleme2 === void 0 ? void 0 : (_inheritedValue$eleme3 = _inheritedValue$eleme2.color) === null || _inheritedValue$eleme3 === void 0 ? void 0 : _inheritedValue$eleme3.text);
353
+ const userLinkColor = decodeValue(value === null || value === void 0 ? void 0 : (_value$elements = value.elements) === null || _value$elements === void 0 ? void 0 : (_value$elements$link = _value$elements.link) === null || _value$elements$link === void 0 ? void 0 : (_value$elements$link$ = _value$elements$link.color) === null || _value$elements$link$ === void 0 ? void 0 : _value$elements$link$.text);
354
+
355
+ const setLinkColor = newColor => {
356
+ onChange((0, _object.immutableSet)(value, ['elements', 'link', 'color', 'text'], encodeColorValue(newColor)));
357
+ };
358
+
359
+ const hoverLinkColor = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$eleme4 = inheritedValue.elements) === null || _inheritedValue$eleme4 === void 0 ? void 0 : (_inheritedValue$eleme5 = _inheritedValue$eleme4.link) === null || _inheritedValue$eleme5 === void 0 ? void 0 : (_inheritedValue$eleme6 = _inheritedValue$eleme5[':hover']) === null || _inheritedValue$eleme6 === void 0 ? void 0 : (_inheritedValue$eleme7 = _inheritedValue$eleme6.color) === null || _inheritedValue$eleme7 === void 0 ? void 0 : _inheritedValue$eleme7.text);
360
+ const userHoverLinkColor = decodeValue(value === null || value === void 0 ? void 0 : (_value$elements2 = value.elements) === null || _value$elements2 === void 0 ? void 0 : (_value$elements2$link = _value$elements2.link) === null || _value$elements2$link === void 0 ? void 0 : (_value$elements2$link2 = _value$elements2$link[':hover']) === null || _value$elements2$link2 === void 0 ? void 0 : (_value$elements2$link3 = _value$elements2$link2.color) === null || _value$elements2$link3 === void 0 ? void 0 : _value$elements2$link3.text);
361
+
362
+ const setHoverLinkColor = newColor => {
363
+ onChange((0, _object.immutableSet)(value, ['elements', 'link', ':hover', 'color', 'text'], encodeColorValue(newColor)));
364
+ };
365
+
366
+ const hasLink = () => !!userLinkColor || !!userHoverLinkColor;
367
+
368
+ const resetLink = () => {
369
+ let newValue = (0, _object.immutableSet)(value, ['elements', 'link', ':hover', 'color', 'text'], undefined);
370
+ newValue = (0, _object.immutableSet)(newValue, ['elements', 'link', 'color', 'text'], undefined);
371
+ onChange(newValue);
372
+ }; // Elements
373
+
374
+
375
+ const elements = [{
376
+ name: 'caption',
377
+ label: (0, _i18n.__)('Captions'),
378
+ showPanel: useHasCaptionPanel(settings)
379
+ }, {
380
+ name: 'button',
381
+ label: (0, _i18n.__)('Button'),
382
+ showPanel: useHasButtonPanel(settings)
383
+ }, {
384
+ name: 'heading',
385
+ label: (0, _i18n.__)('Heading'),
386
+ showPanel: useHasHeadingPanel(settings)
387
+ }, {
388
+ name: 'h1',
389
+ label: (0, _i18n.__)('H1'),
390
+ showPanel: useHasHeadingPanel(settings)
391
+ }, {
392
+ name: 'h2',
393
+ label: (0, _i18n.__)('H2'),
394
+ showPanel: useHasHeadingPanel(settings)
395
+ }, {
396
+ name: 'h3',
397
+ label: (0, _i18n.__)('H3'),
398
+ showPanel: useHasHeadingPanel(settings)
399
+ }, {
400
+ name: 'h4',
401
+ label: (0, _i18n.__)('H4'),
402
+ showPanel: useHasHeadingPanel(settings)
403
+ }, {
404
+ name: 'h5',
405
+ label: (0, _i18n.__)('H5'),
406
+ showPanel: useHasHeadingPanel(settings)
407
+ }, {
408
+ name: 'h6',
409
+ label: (0, _i18n.__)('H6'),
410
+ showPanel: useHasHeadingPanel(settings)
411
+ }];
412
+ const resetAllFilter = (0, _element.useCallback)(previousValue => {
413
+ var _previousValue$elemen;
414
+
415
+ return { ...previousValue,
416
+ color: undefined,
417
+ elements: { ...(previousValue === null || previousValue === void 0 ? void 0 : previousValue.elements),
418
+ link: { ...(previousValue === null || previousValue === void 0 ? void 0 : (_previousValue$elemen = previousValue.elements) === null || _previousValue$elemen === void 0 ? void 0 : _previousValue$elemen.link),
419
+ color: undefined,
420
+ ':hover': {
421
+ color: undefined
422
+ }
423
+ },
424
+ ...elements.reduce((acc, element) => {
425
+ var _previousValue$elemen2;
426
+
427
+ return { ...acc,
428
+ [element.name]: { ...(previousValue === null || previousValue === void 0 ? void 0 : (_previousValue$elemen2 = previousValue.elements) === null || _previousValue$elemen2 === void 0 ? void 0 : _previousValue$elemen2[element.name]),
429
+ color: undefined
430
+ }
431
+ };
432
+ }, {})
433
+ }
434
+ };
435
+ }, []);
436
+ const items = [showTextPanel && {
437
+ key: 'text',
438
+ label: (0, _i18n.__)('Text'),
439
+ hasValue: hasTextColor,
440
+ resetValue: resetTextColor,
441
+ isShownByDefault: defaultControls.text,
442
+ indicators: [textColor],
443
+ tabs: [{
444
+ key: 'text',
445
+ label: (0, _i18n.__)('Text'),
446
+ inheritedValue: textColor,
447
+ setValue: setTextColor,
448
+ userValue: userTextColor
449
+ }]
450
+ }, showBackgroundPanel && {
451
+ key: 'background',
452
+ label: (0, _i18n.__)('Background'),
453
+ hasValue: hasBackground,
454
+ resetValue: resetBackground,
455
+ isShownByDefault: defaultControls.background,
456
+ indicators: [gradient !== null && gradient !== void 0 ? gradient : backgroundColor],
457
+ tabs: [{
458
+ key: 'background',
459
+ label: (0, _i18n.__)('Solid'),
460
+ inheritedValue: backgroundColor,
461
+ setValue: setBackgroundColor,
462
+ userValue: userBackgroundColor
463
+ }, {
464
+ key: 'gradient',
465
+ label: (0, _i18n.__)('Gradient'),
466
+ inheritedValue: gradient,
467
+ setValue: setGradient,
468
+ userValue: userGradient,
469
+ isGradient: true
470
+ }]
471
+ }, showLinkPanel && {
472
+ key: 'link',
473
+ label: (0, _i18n.__)('Link'),
474
+ hasValue: hasLink,
475
+ resetValue: resetLink,
476
+ isShownByDefault: defaultControls.link,
477
+ indicators: [linkColor, hoverLinkColor],
478
+ tabs: [{
479
+ key: 'link',
480
+ label: (0, _i18n.__)('Default'),
481
+ inheritedValue: linkColor,
482
+ setValue: setLinkColor,
483
+ userValue: userLinkColor
484
+ }, {
485
+ key: 'hover',
486
+ label: (0, _i18n.__)('Hover'),
487
+ inheritedValue: hoverLinkColor,
488
+ setValue: setHoverLinkColor,
489
+ userValue: userHoverLinkColor
490
+ }]
491
+ }].filter(Boolean);
492
+ elements.forEach(_ref12 => {
493
+ var _inheritedValue$eleme8, _inheritedValue$eleme9, _inheritedValue$eleme10, _inheritedValue$eleme11, _inheritedValue$eleme12, _inheritedValue$eleme13, _inheritedValue$eleme14, _inheritedValue$eleme15, _inheritedValue$eleme16, _value$elements3, _value$elements3$name, _value$elements3$name2, _value$elements4, _value$elements4$name, _value$elements4$name2, _value$elements5, _value$elements5$name, _value$elements5$name2;
494
+
495
+ let {
496
+ name,
497
+ label,
498
+ showPanel
499
+ } = _ref12;
500
+ if (!showPanel) return;
501
+ const elementBackgroundColor = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$eleme8 = inheritedValue.elements) === null || _inheritedValue$eleme8 === void 0 ? void 0 : (_inheritedValue$eleme9 = _inheritedValue$eleme8[name]) === null || _inheritedValue$eleme9 === void 0 ? void 0 : (_inheritedValue$eleme10 = _inheritedValue$eleme9.color) === null || _inheritedValue$eleme10 === void 0 ? void 0 : _inheritedValue$eleme10.background);
502
+ const elementGradient = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$eleme11 = inheritedValue.elements) === null || _inheritedValue$eleme11 === void 0 ? void 0 : (_inheritedValue$eleme12 = _inheritedValue$eleme11[name]) === null || _inheritedValue$eleme12 === void 0 ? void 0 : (_inheritedValue$eleme13 = _inheritedValue$eleme12.color) === null || _inheritedValue$eleme13 === void 0 ? void 0 : _inheritedValue$eleme13.gradient);
503
+ const elementTextColor = decodeValue(inheritedValue === null || inheritedValue === void 0 ? void 0 : (_inheritedValue$eleme14 = inheritedValue.elements) === null || _inheritedValue$eleme14 === void 0 ? void 0 : (_inheritedValue$eleme15 = _inheritedValue$eleme14[name]) === null || _inheritedValue$eleme15 === void 0 ? void 0 : (_inheritedValue$eleme16 = _inheritedValue$eleme15.color) === null || _inheritedValue$eleme16 === void 0 ? void 0 : _inheritedValue$eleme16.text);
504
+ const elementBackgroundUserColor = decodeValue(value === null || value === void 0 ? void 0 : (_value$elements3 = value.elements) === null || _value$elements3 === void 0 ? void 0 : (_value$elements3$name = _value$elements3[name]) === null || _value$elements3$name === void 0 ? void 0 : (_value$elements3$name2 = _value$elements3$name.color) === null || _value$elements3$name2 === void 0 ? void 0 : _value$elements3$name2.background);
505
+ const elementGradientUserColor = decodeValue(value === null || value === void 0 ? void 0 : (_value$elements4 = value.elements) === null || _value$elements4 === void 0 ? void 0 : (_value$elements4$name = _value$elements4[name]) === null || _value$elements4$name === void 0 ? void 0 : (_value$elements4$name2 = _value$elements4$name.color) === null || _value$elements4$name2 === void 0 ? void 0 : _value$elements4$name2.gradient);
506
+ const elementTextUserColor = decodeValue(value === null || value === void 0 ? void 0 : (_value$elements5 = value.elements) === null || _value$elements5 === void 0 ? void 0 : (_value$elements5$name = _value$elements5[name]) === null || _value$elements5$name === void 0 ? void 0 : (_value$elements5$name2 = _value$elements5$name.color) === null || _value$elements5$name2 === void 0 ? void 0 : _value$elements5$name2.text);
507
+
508
+ const hasElement = () => !!(elementTextUserColor || elementBackgroundUserColor || elementGradientUserColor);
509
+
510
+ const resetElement = () => {
511
+ const newValue = (0, _object.immutableSet)(value, ['elements', name, 'color', 'background'], undefined);
512
+ newValue.elements[name].color.gradient = undefined;
513
+ newValue.elements[name].color.text = undefined;
514
+ onChange(newValue);
515
+ };
516
+
517
+ const setElementTextColor = newTextColor => {
518
+ onChange((0, _object.immutableSet)(value, ['elements', name, 'color', 'text'], encodeColorValue(newTextColor)));
519
+ };
520
+
521
+ const setElementBackgroundColor = newBackgroundColor => {
522
+ const newValue = (0, _object.immutableSet)(value, ['elements', name, 'color', 'background'], encodeColorValue(newBackgroundColor));
523
+ newValue.elements[name].color.gradient = undefined;
524
+ onChange(newValue);
525
+ };
526
+
527
+ const setElementGradient = newGradient => {
528
+ const newValue = (0, _object.immutableSet)(value, ['elements', name, 'color', 'gradient'], encodeGradientValue(newGradient));
529
+ newValue.elements[name].color.background = undefined;
530
+ onChange(newValue);
531
+ };
532
+
533
+ const supportsTextColor = true; // Background color is not supported for `caption`
534
+ // as there isn't yet a way to set padding for the element.
535
+
536
+ const supportsBackground = name !== 'caption';
537
+ items.push({
538
+ key: name,
539
+ label,
540
+ hasValue: hasElement,
541
+ resetValue: resetElement,
542
+ isShownByDefault: defaultControls[name],
543
+ indicators: supportsTextColor && supportsBackground ? [elementTextColor, elementGradient !== null && elementGradient !== void 0 ? elementGradient : elementBackgroundColor] : [supportsTextColor ? elementTextColor : elementGradient !== null && elementGradient !== void 0 ? elementGradient : elementBackgroundColor],
544
+ tabs: [hasSolidColors && supportsTextColor && {
545
+ key: 'text',
546
+ label: (0, _i18n.__)('Text'),
547
+ inheritedValue: elementTextColor,
548
+ setValue: setElementTextColor,
549
+ userValue: elementTextUserColor
550
+ }, hasSolidColors && supportsBackground && {
551
+ key: 'background',
552
+ label: (0, _i18n.__)('Background'),
553
+ inheritedValue: elementBackgroundColor,
554
+ setValue: setElementBackgroundColor,
555
+ userValue: elementBackgroundUserColor
556
+ }, hasGradientColors && supportsBackground && {
557
+ key: 'gradient',
558
+ label: (0, _i18n.__)('Gradient'),
559
+ inheritedValue: elementGradient,
560
+ setValue: setElementGradient,
561
+ userValue: elementGradientUserColor,
562
+ isGradient: true
563
+ }].filter(Boolean)
564
+ });
565
+ });
566
+ return (0, _element.createElement)(Wrapper, {
567
+ resetAllFilter: resetAllFilter,
568
+ value: value,
569
+ onChange: onChange,
570
+ panelId: panelId
571
+ }, items.map(item => (0, _element.createElement)(ColorPanelDropdown, (0, _extends2.default)({
572
+ key: item.key
573
+ }, item, {
574
+ colorGradientControlSettings: {
575
+ colors,
576
+ disableCustomColors: !areCustomSolidsEnabled,
577
+ gradients,
578
+ disableCustomGradients: !areCustomGradientsEnabled
579
+ },
580
+ panelId: panelId
581
+ }))), children);
582
+ }
583
+ //# sourceMappingURL=color-panel.js.map