@wordpress/block-editor 15.10.1-next.v.0 → 15.11.1-next.v.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 (318) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-controls/index.cjs +1 -1
  3. package/build/components/block-controls/index.cjs.map +2 -2
  4. package/build/components/block-edit/context.cjs +5 -0
  5. package/build/components/block-edit/context.cjs.map +2 -2
  6. package/build/components/block-edit/index.cjs +3 -0
  7. package/build/components/block-edit/index.cjs.map +2 -2
  8. package/build/components/block-inspector/index.cjs +7 -27
  9. package/build/components/block-inspector/index.cjs.map +3 -3
  10. package/build/components/block-list/block.cjs +3 -0
  11. package/build/components/block-list/block.cjs.map +2 -2
  12. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.cjs +37 -13
  13. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.cjs.map +2 -2
  14. package/build/components/block-settings-menu-controls/index.cjs +1 -1
  15. package/build/components/block-settings-menu-controls/index.cjs.map +2 -2
  16. package/build/components/block-toolbar/index.cjs +1 -1
  17. package/build/components/block-toolbar/index.cjs.map +2 -2
  18. package/build/components/block-tools/index.cjs +2 -26
  19. package/build/components/block-tools/index.cjs.map +2 -2
  20. package/build/components/block-visibility/index.cjs +7 -9
  21. package/build/components/block-visibility/index.cjs.map +3 -3
  22. package/build/components/block-visibility/modal.cjs +13 -11
  23. package/build/components/block-visibility/modal.cjs.map +2 -2
  24. package/build/components/block-visibility/use-block-visibility.cjs +1 -1
  25. package/build/components/block-visibility/use-block-visibility.cjs.map +2 -2
  26. package/build/components/block-visibility/utils.cjs +5 -1
  27. package/build/components/block-visibility/utils.cjs.map +2 -2
  28. package/build/components/block-visibility/viewport-menu-item.cjs +11 -4
  29. package/build/components/block-visibility/viewport-menu-item.cjs.map +2 -2
  30. package/build/components/block-visibility/viewport-toolbar.cjs +4 -6
  31. package/build/components/block-visibility/viewport-toolbar.cjs.map +2 -2
  32. package/build/components/block-visibility/viewport-visibility-info.cjs +121 -0
  33. package/build/components/block-visibility/viewport-visibility-info.cjs.map +7 -0
  34. package/build/components/button-block-appender/index.cjs +23 -19
  35. package/build/components/button-block-appender/index.cjs.map +2 -2
  36. package/build/components/color-palette/with-color-context.cjs +1 -1
  37. package/build/components/color-palette/with-color-context.cjs.map +2 -2
  38. package/build/components/color-style-selector/index.cjs +1 -1
  39. package/build/components/color-style-selector/index.cjs.map +2 -2
  40. package/build/components/colors/with-colors.cjs +5 -3
  41. package/build/components/colors/with-colors.cjs.map +2 -2
  42. package/build/components/colors-gradients/dropdown.cjs +1 -1
  43. package/build/components/colors-gradients/dropdown.cjs.map +2 -2
  44. package/build/components/editable-text/index.cjs +5 -1
  45. package/build/components/editable-text/index.cjs.map +2 -2
  46. package/build/components/font-sizes/font-size-picker.cjs +2 -1
  47. package/build/components/font-sizes/font-size-picker.cjs.map +2 -2
  48. package/build/components/font-sizes/with-font-sizes.cjs +5 -3
  49. package/build/components/font-sizes/with-font-sizes.cjs.map +2 -2
  50. package/build/components/global-styles/advanced-panel.cjs +26 -13
  51. package/build/components/global-styles/advanced-panel.cjs.map +2 -2
  52. package/build/components/global-styles/filters-panel.cjs +1 -1
  53. package/build/components/global-styles/filters-panel.cjs.map +2 -2
  54. package/build/components/global-styles/shadow-panel-components.cjs +1 -1
  55. package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
  56. package/build/components/gradients/with-gradient.cjs +1 -1
  57. package/build/components/gradients/with-gradient.cjs.map +2 -2
  58. package/build/components/inspector-controls/fill.cjs +14 -25
  59. package/build/components/inspector-controls/fill.cjs.map +2 -2
  60. package/build/components/inspector-controls/index.cjs +1 -1
  61. package/build/components/inspector-controls/index.cjs.map +2 -2
  62. package/build/components/inspector-controls-tabs/index.cjs +1 -1
  63. package/build/components/inspector-controls-tabs/index.cjs.map +2 -2
  64. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs +7 -7
  65. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs.map +2 -2
  66. package/build/components/list-view/block-select-button.cjs +8 -16
  67. package/build/components/list-view/block-select-button.cjs.map +2 -2
  68. package/build/components/list-view/block.cjs +29 -34
  69. package/build/components/list-view/block.cjs.map +3 -3
  70. package/build/components/list-view/utils.cjs +3 -1
  71. package/build/components/list-view/utils.cjs.map +2 -2
  72. package/build/components/provider/index.cjs +7 -8
  73. package/build/components/provider/index.cjs.map +2 -2
  74. package/build/components/provider/with-registry-provider.cjs +1 -1
  75. package/build/components/provider/with-registry-provider.cjs.map +2 -2
  76. package/build/components/use-block-commands/index.cjs +2 -34
  77. package/build/components/use-block-commands/index.cjs.map +2 -2
  78. package/build/hooks/block-fields/index.cjs +52 -86
  79. package/build/hooks/block-fields/index.cjs.map +3 -3
  80. package/build/hooks/block-fields/link/index.cjs +2 -11
  81. package/build/hooks/block-fields/link/index.cjs.map +2 -2
  82. package/build/hooks/block-fields/media/index.cjs +9 -14
  83. package/build/hooks/block-fields/media/index.cjs.map +2 -2
  84. package/build/hooks/cross-origin-isolation.cjs +1 -1
  85. package/build/hooks/cross-origin-isolation.cjs.map +2 -2
  86. package/build/hooks/custom-css.cjs +141 -0
  87. package/build/hooks/custom-css.cjs.map +7 -0
  88. package/build/hooks/fit-text.cjs +14 -7
  89. package/build/hooks/fit-text.cjs.map +2 -2
  90. package/build/hooks/grid-visualizer.cjs +1 -1
  91. package/build/hooks/grid-visualizer.cjs.map +2 -2
  92. package/build/hooks/index.cjs +6 -1
  93. package/build/hooks/index.cjs.map +3 -3
  94. package/build/hooks/layout.cjs +10 -4
  95. package/build/hooks/layout.cjs.map +2 -2
  96. package/build/hooks/list-view.cjs +32 -11
  97. package/build/hooks/list-view.cjs.map +3 -3
  98. package/build/hooks/utils.cjs +5 -4
  99. package/build/hooks/utils.cjs.map +2 -2
  100. package/build/layouts/grid.cjs +12 -1
  101. package/build/layouts/grid.cjs.map +2 -2
  102. package/build/store/defaults.cjs +3 -0
  103. package/build/store/defaults.cjs.map +2 -2
  104. package/build/store/private-selectors.cjs +45 -37
  105. package/build/store/private-selectors.cjs.map +2 -2
  106. package/build/store/selectors.cjs +7 -1
  107. package/build/store/selectors.cjs.map +2 -2
  108. package/build/utils/fit-text-utils.cjs +5 -1
  109. package/build/utils/fit-text-utils.cjs.map +2 -2
  110. package/build-module/components/block-controls/index.mjs +1 -1
  111. package/build-module/components/block-controls/index.mjs.map +2 -2
  112. package/build-module/components/block-edit/context.mjs +4 -0
  113. package/build-module/components/block-edit/context.mjs.map +2 -2
  114. package/build-module/components/block-edit/index.mjs +4 -0
  115. package/build-module/components/block-edit/index.mjs.map +2 -2
  116. package/build-module/components/block-inspector/index.mjs +7 -27
  117. package/build-module/components/block-inspector/index.mjs.map +2 -2
  118. package/build-module/components/block-list/block.mjs +3 -0
  119. package/build-module/components/block-list/block.mjs.map +2 -2
  120. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.mjs +37 -13
  121. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.mjs.map +2 -2
  122. package/build-module/components/block-settings-menu-controls/index.mjs +2 -2
  123. package/build-module/components/block-settings-menu-controls/index.mjs.map +2 -2
  124. package/build-module/components/block-toolbar/index.mjs +2 -2
  125. package/build-module/components/block-toolbar/index.mjs.map +2 -2
  126. package/build-module/components/block-tools/index.mjs +2 -26
  127. package/build-module/components/block-tools/index.mjs.map +2 -2
  128. package/build-module/components/block-visibility/index.mjs +6 -9
  129. package/build-module/components/block-visibility/index.mjs.map +2 -2
  130. package/build-module/components/block-visibility/modal.mjs +13 -11
  131. package/build-module/components/block-visibility/modal.mjs.map +2 -2
  132. package/build-module/components/block-visibility/use-block-visibility.mjs +1 -1
  133. package/build-module/components/block-visibility/use-block-visibility.mjs.map +2 -2
  134. package/build-module/components/block-visibility/utils.mjs +5 -1
  135. package/build-module/components/block-visibility/utils.mjs.map +2 -2
  136. package/build-module/components/block-visibility/viewport-menu-item.mjs +11 -4
  137. package/build-module/components/block-visibility/viewport-menu-item.mjs.map +2 -2
  138. package/build-module/components/block-visibility/viewport-toolbar.mjs +4 -6
  139. package/build-module/components/block-visibility/viewport-toolbar.mjs.map +2 -2
  140. package/build-module/components/block-visibility/viewport-visibility-info.mjs +95 -0
  141. package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +7 -0
  142. package/build-module/components/button-block-appender/index.mjs +23 -19
  143. package/build-module/components/button-block-appender/index.mjs.map +2 -2
  144. package/build-module/components/color-palette/with-color-context.mjs +1 -1
  145. package/build-module/components/color-palette/with-color-context.mjs.map +2 -2
  146. package/build-module/components/color-style-selector/index.mjs +1 -1
  147. package/build-module/components/color-style-selector/index.mjs.map +2 -2
  148. package/build-module/components/colors/with-colors.mjs +5 -3
  149. package/build-module/components/colors/with-colors.mjs.map +2 -2
  150. package/build-module/components/colors-gradients/dropdown.mjs +1 -1
  151. package/build-module/components/colors-gradients/dropdown.mjs.map +2 -2
  152. package/build-module/components/editable-text/index.mjs +5 -1
  153. package/build-module/components/editable-text/index.mjs.map +2 -2
  154. package/build-module/components/font-sizes/font-size-picker.mjs +2 -1
  155. package/build-module/components/font-sizes/font-size-picker.mjs.map +2 -2
  156. package/build-module/components/font-sizes/with-font-sizes.mjs +5 -3
  157. package/build-module/components/font-sizes/with-font-sizes.mjs.map +2 -2
  158. package/build-module/components/global-styles/advanced-panel.mjs +22 -13
  159. package/build-module/components/global-styles/advanced-panel.mjs.map +2 -2
  160. package/build-module/components/global-styles/filters-panel.mjs +1 -1
  161. package/build-module/components/global-styles/filters-panel.mjs.map +2 -2
  162. package/build-module/components/global-styles/shadow-panel-components.mjs +1 -1
  163. package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
  164. package/build-module/components/gradients/with-gradient.mjs +1 -1
  165. package/build-module/components/gradients/with-gradient.mjs.map +2 -2
  166. package/build-module/components/inspector-controls/fill.mjs +16 -22
  167. package/build-module/components/inspector-controls/fill.mjs.map +2 -2
  168. package/build-module/components/inspector-controls/index.mjs +1 -1
  169. package/build-module/components/inspector-controls/index.mjs.map +2 -2
  170. package/build-module/components/inspector-controls-tabs/index.mjs +1 -1
  171. package/build-module/components/inspector-controls-tabs/index.mjs.map +2 -2
  172. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs +7 -7
  173. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs.map +2 -2
  174. package/build-module/components/list-view/block-select-button.mjs +8 -16
  175. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  176. package/build-module/components/list-view/block.mjs +31 -36
  177. package/build-module/components/list-view/block.mjs.map +2 -2
  178. package/build-module/components/list-view/utils.mjs +3 -1
  179. package/build-module/components/list-view/utils.mjs.map +2 -2
  180. package/build-module/components/provider/index.mjs +7 -8
  181. package/build-module/components/provider/index.mjs.map +2 -2
  182. package/build-module/components/provider/with-registry-provider.mjs +1 -1
  183. package/build-module/components/provider/with-registry-provider.mjs.map +2 -2
  184. package/build-module/components/use-block-commands/index.mjs +3 -37
  185. package/build-module/components/use-block-commands/index.mjs.map +2 -2
  186. package/build-module/hooks/block-fields/index.mjs +45 -87
  187. package/build-module/hooks/block-fields/index.mjs.map +2 -2
  188. package/build-module/hooks/block-fields/link/index.mjs +2 -11
  189. package/build-module/hooks/block-fields/link/index.mjs.map +2 -2
  190. package/build-module/hooks/block-fields/media/index.mjs +9 -14
  191. package/build-module/hooks/block-fields/media/index.mjs.map +2 -2
  192. package/build-module/hooks/cross-origin-isolation.mjs +1 -1
  193. package/build-module/hooks/cross-origin-isolation.mjs.map +2 -2
  194. package/build-module/hooks/custom-css.mjs +112 -0
  195. package/build-module/hooks/custom-css.mjs.map +7 -0
  196. package/build-module/hooks/fit-text.mjs +14 -7
  197. package/build-module/hooks/fit-text.mjs.map +2 -2
  198. package/build-module/hooks/grid-visualizer.mjs +1 -1
  199. package/build-module/hooks/grid-visualizer.mjs.map +2 -2
  200. package/build-module/hooks/index.mjs +6 -1
  201. package/build-module/hooks/index.mjs.map +2 -2
  202. package/build-module/hooks/layout.mjs +10 -4
  203. package/build-module/hooks/layout.mjs.map +2 -2
  204. package/build-module/hooks/list-view.mjs +33 -12
  205. package/build-module/hooks/list-view.mjs.map +2 -2
  206. package/build-module/hooks/utils.mjs +7 -5
  207. package/build-module/hooks/utils.mjs.map +2 -2
  208. package/build-module/layouts/grid.mjs +12 -1
  209. package/build-module/layouts/grid.mjs.map +2 -2
  210. package/build-module/store/defaults.mjs +3 -0
  211. package/build-module/store/defaults.mjs.map +2 -2
  212. package/build-module/store/private-selectors.mjs +42 -40
  213. package/build-module/store/private-selectors.mjs.map +2 -2
  214. package/build-module/store/selectors.mjs +7 -1
  215. package/build-module/store/selectors.mjs.map +2 -2
  216. package/build-module/utils/fit-text-utils.mjs +5 -1
  217. package/build-module/utils/fit-text-utils.mjs.map +2 -2
  218. package/build-style/style-rtl.css +3 -0
  219. package/build-style/style.css +3 -0
  220. package/package.json +39 -39
  221. package/src/components/block-controls/index.js +1 -1
  222. package/src/components/block-controls/test/index.js +1 -0
  223. package/src/components/block-edit/context.js +3 -0
  224. package/src/components/block-edit/index.js +6 -0
  225. package/src/components/block-edit/test/edit.js +10 -0
  226. package/src/components/block-inspector/index.js +16 -38
  227. package/src/components/block-list/block.js +3 -0
  228. package/src/components/block-list/block.native.js +5 -0
  229. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +49 -29
  230. package/src/components/block-patterns-list/stories/index.story.jsx +1 -1
  231. package/src/components/block-preview/test/index.js +11 -7
  232. package/src/components/block-settings-menu-controls/index.js +2 -2
  233. package/src/components/block-switcher/test/index.js +2 -0
  234. package/src/components/block-switcher/test/use-transformed.patterns.js +2 -0
  235. package/src/components/block-switcher/test/utils.js +2 -0
  236. package/src/components/block-toolbar/index.js +2 -2
  237. package/src/components/block-tools/index.js +2 -29
  238. package/src/components/block-visibility/index.js +3 -19
  239. package/src/components/block-visibility/modal.js +16 -14
  240. package/src/components/block-visibility/test/use-block-visibility.js +27 -25
  241. package/src/components/block-visibility/test/utils.js +24 -8
  242. package/src/components/block-visibility/use-block-visibility.js +1 -4
  243. package/src/components/block-visibility/utils.js +9 -1
  244. package/src/components/block-visibility/viewport-menu-item.js +11 -5
  245. package/src/components/block-visibility/viewport-toolbar.js +5 -6
  246. package/src/components/block-visibility/viewport-visibility-info.js +131 -0
  247. package/src/components/button-block-appender/index.js +2 -2
  248. package/src/components/color-palette/with-color-context.js +1 -1
  249. package/src/components/color-style-selector/index.js +2 -3
  250. package/src/components/colors/with-colors.js +23 -20
  251. package/src/components/colors-gradients/dropdown.js +2 -3
  252. package/src/components/editable-text/index.js +5 -1
  253. package/src/components/font-sizes/font-size-picker.js +1 -0
  254. package/src/components/font-sizes/with-font-sizes.js +13 -10
  255. package/src/components/global-styles/advanced-panel.js +35 -16
  256. package/src/components/global-styles/filters-panel.js +2 -3
  257. package/src/components/global-styles/shadow-panel-components.js +1 -1
  258. package/src/components/global-styles/style.scss +9 -5
  259. package/src/components/gradients/with-gradient.js +7 -4
  260. package/src/components/inner-blocks/test/index.js +2 -0
  261. package/src/components/inspector-controls/fill.js +30 -20
  262. package/src/components/inspector-controls/index.js +1 -1
  263. package/src/components/inspector-controls-tabs/index.js +5 -1
  264. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +13 -11
  265. package/src/components/link-control/test/index.js +6 -1
  266. package/src/components/list-view/block-select-button.js +16 -25
  267. package/src/components/list-view/block.js +38 -43
  268. package/src/components/list-view/utils.js +4 -2
  269. package/src/components/media-replace-flow/test/index.js +13 -11
  270. package/src/components/provider/index.js +11 -10
  271. package/src/components/provider/test/use-block-sync.js +1 -0
  272. package/src/components/provider/with-registry-provider.js +1 -1
  273. package/src/components/use-block-commands/index.js +0 -41
  274. package/src/hooks/block-fields/index.js +66 -111
  275. package/src/hooks/block-fields/link/index.js +2 -14
  276. package/src/hooks/block-fields/media/index.js +9 -21
  277. package/src/hooks/cross-origin-isolation.js +19 -18
  278. package/src/hooks/custom-css.js +176 -0
  279. package/src/hooks/fit-text.js +20 -5
  280. package/src/hooks/grid-visualizer.js +15 -14
  281. package/src/hooks/index.js +6 -1
  282. package/src/hooks/layout.js +55 -43
  283. package/src/hooks/list-view.js +46 -12
  284. package/src/hooks/test/align.js +1 -0
  285. package/src/hooks/test/allowed-blocks.js +8 -0
  286. package/src/hooks/test/auto-inspector-controls.js +4 -0
  287. package/src/hooks/test/font-size.js +1 -0
  288. package/src/hooks/test/metadata.js +4 -0
  289. package/src/hooks/test/text-align.js +1 -0
  290. package/src/hooks/utils.js +124 -116
  291. package/src/layouts/grid.js +19 -3
  292. package/src/layouts/test/grid.js +1 -1
  293. package/src/store/defaults.js +4 -0
  294. package/src/store/private-selectors.js +94 -63
  295. package/src/store/selectors.js +14 -6
  296. package/src/store/test/actions.js +7 -0
  297. package/src/store/test/private-selectors.js +116 -119
  298. package/src/store/test/reducer.js +4 -0
  299. package/src/store/test/registry-selectors.js +2 -0
  300. package/src/store/test/selectors.js +19 -0
  301. package/src/utils/fit-text-utils.js +12 -2
  302. package/build/components/block-visibility/block-visibility-info.cjs +0 -63
  303. package/build/components/block-visibility/block-visibility-info.cjs.map +0 -7
  304. package/build/components/block-visibility/menu-item.cjs +0 -109
  305. package/build/components/block-visibility/menu-item.cjs.map +0 -7
  306. package/build/components/block-visibility/toolbar.cjs +0 -92
  307. package/build/components/block-visibility/toolbar.cjs.map +0 -7
  308. package/build-module/components/block-visibility/block-visibility-info.mjs +0 -47
  309. package/build-module/components/block-visibility/block-visibility-info.mjs.map +0 -7
  310. package/build-module/components/block-visibility/menu-item.mjs +0 -88
  311. package/build-module/components/block-visibility/menu-item.mjs.map +0 -7
  312. package/build-module/components/block-visibility/toolbar.mjs +0 -71
  313. package/build-module/components/block-visibility/toolbar.mjs.map +0 -7
  314. package/src/components/block-visibility/block-visibility-info.js +0 -62
  315. package/src/components/block-visibility/menu-item.js +0 -96
  316. package/src/components/block-visibility/toolbar.js +0 -88
  317. /package/src/components/block-icon/stories/{index.story.js → index.story.ts} +0 -0
  318. /package/src/components/contrast-checker/stories/{index.story.js → index.story.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/color-style-selector/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarButton,\n\tDropdown,\n\tToolbarGroup,\n\tSVG,\n\tPath,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport deprecated from '@wordpress/deprecated';\n\nconst ColorSelectorSVGIcon = () => (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n\t\t<Path d=\"M7.434 5l3.18 9.16H8.538l-.692-2.184H4.628l-.705 2.184H2L5.18 5h2.254zm-1.13 1.904h-.115l-1.148 3.593H7.44L6.304 6.904zM14.348 7.006c1.853 0 2.9.876 2.9 2.374v4.78h-1.79v-.914h-.114c-.362.64-1.123 1.022-2.031 1.022-1.346 0-2.292-.826-2.292-2.108 0-1.27.972-2.006 2.71-2.107l1.696-.102V9.38c0-.584-.42-.914-1.18-.914-.667 0-1.112.228-1.264.647h-1.701c.12-1.295 1.307-2.107 3.066-2.107zm1.079 4.1l-1.416.09c-.793.056-1.18.342-1.18.844 0 .52.45.837 1.091.837.857 0 1.505-.545 1.505-1.256v-.515z\" />\n\t</SVG>\n);\n\n/**\n * Color Selector Icon component.\n *\n * @param {Object} props Component properties.\n * @param {Object} props.style Style object.\n * @param {string} props.className Class name for component.\n *\n * @return {*} React Icon component.\n */\nconst ColorSelectorIcon = ( { style, className } ) => {\n\treturn (\n\t\t<div className=\"block-library-colors-selector__icon-container\">\n\t\t\t<div\n\t\t\t\tclassName={ `${ className } block-library-colors-selector__state-selection` }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t<ColorSelectorSVGIcon />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n/**\n * Renders the Colors Selector Toolbar with the icon button.\n *\n * @param {Object} props Component properties.\n * @param {Object} props.TextColor Text color component that wraps icon.\n * @param {Object} props.BackgroundColor Background color component that wraps icon.\n *\n * @return {*} React toggle button component.\n */\nconst renderToggleComponent =\n\t( { TextColor, BackgroundColor } ) =>\n\t( { onToggle, isOpen } ) => {\n\t\tconst openOnArrowDown = ( event ) => {\n\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonToggle();\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tclassName=\"components-toolbar__control block-library-colors-selector__toggle\"\n\t\t\t\t\tlabel={ __( 'Open Colors Selector' ) }\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<BackgroundColor>\n\t\t\t\t\t\t\t<TextColor>\n\t\t\t\t\t\t\t\t<ColorSelectorIcon />\n\t\t\t\t\t\t\t</TextColor>\n\t\t\t\t\t\t</BackgroundColor>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t};\n\nconst BlockColorsStyleSelector = ( { children, ...other } ) => {\n\tdeprecated( `wp.blockEditor.BlockColorsStyleSelector`, {\n\t\talternative: 'block supports API',\n\t\tsince: '6.1',\n\t\tversion: '6.3',\n\t} );\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ { placement: 'bottom-start' } }\n\t\t\tclassName=\"block-library-colors-selector\"\n\t\t\tcontentClassName=\"block-library-colors-selector__popover\"\n\t\t\trenderToggle={ renderToggleComponent( other ) }\n\t\t\trenderContent={ () => children }\n\t\t/>\n\t);\n};\n\nexport default BlockColorsStyleSelector;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAMO;AACP,kBAAmB;AACnB,sBAAqB;AACrB,wBAAuB;AAIrB;AAFF,IAAM,uBAAuB,MAC5B,4CAAC,yBAAI,OAAM,8BAA6B,SAAQ,aAC/C,sDAAC,0BAAK,GAAE,+eAA8e,GACvf;AAYD,IAAM,oBAAoB,CAAE,EAAE,OAAO,UAAU,MAAO;AACrD,SACC,4CAAC,SAAI,WAAU,iDACd;AAAA,IAAC;AAAA;AAAA,MACA,WAAY,GAAI,SAAU;AAAA,MAC1B;AAAA,MAEA,sDAAC,wBAAqB;AAAA;AAAA,EACvB,GACD;AAEF;AAWA,IAAM,wBACL,CAAE,EAAE,WAAW,gBAAgB,MAC/B,CAAE,EAAE,UAAU,OAAO,MAAO;AAC3B,QAAM,kBAAkB,CAAE,UAAW;AACpC,QAAK,CAAE,UAAU,MAAM,YAAY,sBAAO;AACzC,YAAM,eAAe;AACrB,eAAS;AAAA,IACV;AAAA,EACD;AAEA,SACC,4CAAC,kCACA;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,WAAQ,gBAAI,sBAAuB;AAAA,MACnC,SAAU;AAAA,MACV,WAAY;AAAA,MACZ,MACC,4CAAC,mBACA,sDAAC,aACA,sDAAC,qBAAkB,GACpB,GACD;AAAA;AAAA,EAEF,GACD;AAEF;AAED,IAAM,2BAA2B,CAAE,EAAE,UAAU,GAAG,MAAM,MAAO;AAC9D,wBAAAA,SAAY,2CAA2C;AAAA,IACtD,aAAa;AAAA,IACb,OAAO;AAAA,IACP,SAAS;AAAA,EACV,CAAE;AAEF,SACC;AAAA,IAAC;AAAA;AAAA,MACA,cAAe,EAAE,WAAW,eAAe;AAAA,MAC3C,WAAU;AAAA,MACV,kBAAiB;AAAA,MACjB,cAAe,sBAAuB,KAAM;AAAA,MAC5C,eAAgB,MAAM;AAAA;AAAA,EACvB;AAEF;AAEA,IAAO,+BAAQ;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarButton,\n\tDropdown,\n\tToolbarGroup,\n\tSVG,\n\tPath,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport deprecated from '@wordpress/deprecated';\n\nconst ColorSelectorSVGIcon = () => (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n\t\t<Path d=\"M7.434 5l3.18 9.16H8.538l-.692-2.184H4.628l-.705 2.184H2L5.18 5h2.254zm-1.13 1.904h-.115l-1.148 3.593H7.44L6.304 6.904zM14.348 7.006c1.853 0 2.9.876 2.9 2.374v4.78h-1.79v-.914h-.114c-.362.64-1.123 1.022-2.031 1.022-1.346 0-2.292-.826-2.292-2.108 0-1.27.972-2.006 2.71-2.107l1.696-.102V9.38c0-.584-.42-.914-1.18-.914-.667 0-1.112.228-1.264.647h-1.701c.12-1.295 1.307-2.107 3.066-2.107zm1.079 4.1l-1.416.09c-.793.056-1.18.342-1.18.844 0 .52.45.837 1.091.837.857 0 1.505-.545 1.505-1.256v-.515z\" />\n\t</SVG>\n);\n\n/**\n * Color Selector Icon component.\n *\n * @param {Object} props Component properties.\n * @param {Object} props.style Style object.\n * @param {string} props.className Class name for component.\n *\n * @return {*} React Icon component.\n */\nconst ColorSelectorIcon = ( { style, className } ) => {\n\treturn (\n\t\t<div className=\"block-library-colors-selector__icon-container\">\n\t\t\t<div\n\t\t\t\tclassName={ `${ className } block-library-colors-selector__state-selection` }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t<ColorSelectorSVGIcon />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n/**\n * Renders the Colors Selector Toolbar with the icon button.\n *\n * @param {Object} props Component properties.\n * @param {Object} props.TextColor Text color component that wraps icon.\n * @param {Object} props.BackgroundColor Background color component that wraps icon.\n *\n * @return {*} React toggle button component.\n */\nconst renderToggleComponent = ( { TextColor, BackgroundColor } ) =>\n\tfunction ToggleComponent( { onToggle, isOpen } ) {\n\t\tconst openOnArrowDown = ( event ) => {\n\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonToggle();\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tclassName=\"components-toolbar__control block-library-colors-selector__toggle\"\n\t\t\t\t\tlabel={ __( 'Open Colors Selector' ) }\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<BackgroundColor>\n\t\t\t\t\t\t\t<TextColor>\n\t\t\t\t\t\t\t\t<ColorSelectorIcon />\n\t\t\t\t\t\t\t</TextColor>\n\t\t\t\t\t\t</BackgroundColor>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t};\n\nconst BlockColorsStyleSelector = ( { children, ...other } ) => {\n\tdeprecated( `wp.blockEditor.BlockColorsStyleSelector`, {\n\t\talternative: 'block supports API',\n\t\tsince: '6.1',\n\t\tversion: '6.3',\n\t} );\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ { placement: 'bottom-start' } }\n\t\t\tclassName=\"block-library-colors-selector\"\n\t\t\tcontentClassName=\"block-library-colors-selector__popover\"\n\t\t\trenderToggle={ renderToggleComponent( other ) }\n\t\t\trenderContent={ () => children }\n\t\t/>\n\t);\n};\n\nexport default BlockColorsStyleSelector;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAMO;AACP,kBAAmB;AACnB,sBAAqB;AACrB,wBAAuB;AAIrB;AAFF,IAAM,uBAAuB,MAC5B,4CAAC,yBAAI,OAAM,8BAA6B,SAAQ,aAC/C,sDAAC,0BAAK,GAAE,+eAA8e,GACvf;AAYD,IAAM,oBAAoB,CAAE,EAAE,OAAO,UAAU,MAAO;AACrD,SACC,4CAAC,SAAI,WAAU,iDACd;AAAA,IAAC;AAAA;AAAA,MACA,WAAY,GAAI,SAAU;AAAA,MAC1B;AAAA,MAEA,sDAAC,wBAAqB;AAAA;AAAA,EACvB,GACD;AAEF;AAWA,IAAM,wBAAwB,CAAE,EAAE,WAAW,gBAAgB,MAC5D,SAAS,gBAAiB,EAAE,UAAU,OAAO,GAAI;AAChD,QAAM,kBAAkB,CAAE,UAAW;AACpC,QAAK,CAAE,UAAU,MAAM,YAAY,sBAAO;AACzC,YAAM,eAAe;AACrB,eAAS;AAAA,IACV;AAAA,EACD;AAEA,SACC,4CAAC,kCACA;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,WAAQ,gBAAI,sBAAuB;AAAA,MACnC,SAAU;AAAA,MACV,WAAY;AAAA,MACZ,MACC,4CAAC,mBACA,sDAAC,aACA,sDAAC,qBAAkB,GACpB,GACD;AAAA;AAAA,EAEF,GACD;AAEF;AAED,IAAM,2BAA2B,CAAE,EAAE,UAAU,GAAG,MAAM,MAAO;AAC9D,wBAAAA,SAAY,2CAA2C;AAAA,IACtD,aAAa;AAAA,IACb,OAAO;AAAA,IACP,SAAS;AAAA,EACV,CAAE;AAEF,SACC;AAAA,IAAC;AAAA;AAAA,MACA,cAAe,EAAE,WAAW,eAAe;AAAA,MAC3C,WAAU;AAAA,MACV,kBAAiB;AAAA,MACjB,cAAe,sBAAuB,KAAM;AAAA,MAC5C,eAAgB,MAAM;AAAA;AAAA,EACvB;AAEF;AAEA,IAAO,+BAAQ;",
6
6
  "names": ["deprecated"]
7
7
  }
@@ -34,11 +34,13 @@ var import_jsx_runtime = require("react/jsx-runtime");
34
34
  var { kebabCase } = (0, import_lock_unlock.unlock)(import_components.privateApis);
35
35
  var upperFirst = ([firstLetter, ...rest]) => firstLetter.toUpperCase() + rest.join("");
36
36
  var withCustomColorPalette = (colorsArray) => (0, import_compose.createHigherOrderComponent)(
37
- (WrappedComponent) => (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WrappedComponent, { ...props, colors: colorsArray }),
37
+ (WrappedComponent) => function WithCustomColorPalette(props) {
38
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WrappedComponent, { ...props, colors: colorsArray });
39
+ },
38
40
  "withCustomColorPalette"
39
41
  );
40
42
  var withEditorColorPalette = () => (0, import_compose.createHigherOrderComponent)(
41
- (WrappedComponent) => (props) => {
43
+ (WrappedComponent) => function WithEditorColorPalette(props) {
42
44
  const [userPalette, themePalette, defaultPalette] = (0, import_use_settings.useSettings)(
43
45
  "color.palette.custom",
44
46
  "color.palette.theme",
@@ -66,7 +68,7 @@ function createColorHOC(colorTypes, withColorPalette) {
66
68
  return (0, import_compose.compose)([
67
69
  withColorPalette,
68
70
  (WrappedComponent) => {
69
- return class extends import_element.Component {
71
+ return class WithColors extends import_element.Component {
70
72
  constructor(props) {
71
73
  super(props);
72
74
  this.setters = this.createSetters();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/colors/with-colors.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMemo, Component } from '@wordpress/element';\nimport { compose, createHigherOrderComponent } from '@wordpress/compose';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tgetColorObjectByAttributeValues,\n\tgetMostReadableColor,\n} from './utils';\nimport { useSettings } from '../use-settings';\nimport { unlock } from '../../lock-unlock';\n\nconst { kebabCase } = unlock( componentsPrivateApis );\n\n/**\n * Capitalizes the first letter in a string.\n *\n * @param {string} str The string whose first letter the function will capitalize.\n *\n * @return {string} Capitalized string.\n */\nconst upperFirst = ( [ firstLetter, ...rest ] ) =>\n\tfirstLetter.toUpperCase() + rest.join( '' );\n\n/**\n * Higher order component factory for injecting the `colorsArray` argument as\n * the colors prop in the `withCustomColors` HOC.\n *\n * @param {Array} colorsArray An array of color objects.\n *\n * @return {Function} The higher order component.\n */\nconst withCustomColorPalette = ( colorsArray ) =>\n\tcreateHigherOrderComponent(\n\t\t( WrappedComponent ) => ( props ) => (\n\t\t\t<WrappedComponent { ...props } colors={ colorsArray } />\n\t\t),\n\t\t'withCustomColorPalette'\n\t);\n\n/**\n * Higher order component factory for injecting the editor colors as the\n * `colors` prop in the `withColors` HOC.\n *\n * @return {Function} The higher order component.\n */\nconst withEditorColorPalette = () =>\n\tcreateHigherOrderComponent(\n\t\t( WrappedComponent ) => ( props ) => {\n\t\t\tconst [ userPalette, themePalette, defaultPalette ] = useSettings(\n\t\t\t\t'color.palette.custom',\n\t\t\t\t'color.palette.theme',\n\t\t\t\t'color.palette.default'\n\t\t\t);\n\t\t\tconst allColors = useMemo(\n\t\t\t\t() => [\n\t\t\t\t\t...( userPalette || [] ),\n\t\t\t\t\t...( themePalette || [] ),\n\t\t\t\t\t...( defaultPalette || [] ),\n\t\t\t\t],\n\t\t\t\t[ userPalette, themePalette, defaultPalette ]\n\t\t\t);\n\t\t\treturn <WrappedComponent { ...props } colors={ allColors } />;\n\t\t},\n\t\t'withEditorColorPalette'\n\t);\n\n/**\n * Helper function used with `createHigherOrderComponent` to create\n * higher order components for managing color logic.\n *\n * @param {Array} colorTypes An array of color types (e.g. 'backgroundColor, borderColor).\n * @param {Function} withColorPalette A HOC for injecting the 'colors' prop into the WrappedComponent.\n *\n * @return {Component} The component that can be used as a HOC.\n */\nfunction createColorHOC( colorTypes, withColorPalette ) {\n\tconst colorMap = colorTypes.reduce( ( colorObject, colorType ) => {\n\t\treturn {\n\t\t\t...colorObject,\n\t\t\t...( typeof colorType === 'string'\n\t\t\t\t? { [ colorType ]: kebabCase( colorType ) }\n\t\t\t\t: colorType ),\n\t\t};\n\t}, {} );\n\n\treturn compose( [\n\t\twithColorPalette,\n\t\t( WrappedComponent ) => {\n\t\t\treturn class extends Component {\n\t\t\t\tconstructor( props ) {\n\t\t\t\t\tsuper( props );\n\n\t\t\t\t\tthis.setters = this.createSetters();\n\t\t\t\t\tthis.colorUtils = {\n\t\t\t\t\t\tgetMostReadableColor:\n\t\t\t\t\t\t\tthis.getMostReadableColor.bind( this ),\n\t\t\t\t\t};\n\n\t\t\t\t\tthis.state = {};\n\t\t\t\t}\n\n\t\t\t\tgetMostReadableColor( colorValue ) {\n\t\t\t\t\tconst { colors } = this.props;\n\t\t\t\t\treturn getMostReadableColor( colors, colorValue );\n\t\t\t\t}\n\n\t\t\t\tcreateSetters() {\n\t\t\t\t\treturn Object.keys( colorMap ).reduce(\n\t\t\t\t\t\t( settersAccumulator, colorAttributeName ) => {\n\t\t\t\t\t\t\tconst upperFirstColorAttributeName =\n\t\t\t\t\t\t\t\tupperFirst( colorAttributeName );\n\t\t\t\t\t\t\tconst customColorAttributeName = `custom${ upperFirstColorAttributeName }`;\n\t\t\t\t\t\t\tsettersAccumulator[\n\t\t\t\t\t\t\t\t`set${ upperFirstColorAttributeName }`\n\t\t\t\t\t\t\t] = this.createSetColor(\n\t\t\t\t\t\t\t\tcolorAttributeName,\n\t\t\t\t\t\t\t\tcustomColorAttributeName\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn settersAccumulator;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{}\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tcreateSetColor( colorAttributeName, customColorAttributeName ) {\n\t\t\t\t\treturn ( colorValue ) => {\n\t\t\t\t\t\tconst colorObject = getColorObjectByColorValue(\n\t\t\t\t\t\t\tthis.props.colors,\n\t\t\t\t\t\t\tcolorValue\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.props.setAttributes( {\n\t\t\t\t\t\t\t[ colorAttributeName ]:\n\t\t\t\t\t\t\t\tcolorObject && colorObject.slug\n\t\t\t\t\t\t\t\t\t? colorObject.slug\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t[ customColorAttributeName ]:\n\t\t\t\t\t\t\t\tcolorObject && colorObject.slug\n\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t: colorValue,\n\t\t\t\t\t\t} );\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tstatic getDerivedStateFromProps(\n\t\t\t\t\t{ attributes, colors },\n\t\t\t\t\tpreviousState\n\t\t\t\t) {\n\t\t\t\t\treturn Object.entries( colorMap ).reduce(\n\t\t\t\t\t\t( newState, [ colorAttributeName, colorContext ] ) => {\n\t\t\t\t\t\t\tconst colorObject = getColorObjectByAttributeValues(\n\t\t\t\t\t\t\t\tcolors,\n\t\t\t\t\t\t\t\tattributes[ colorAttributeName ],\n\t\t\t\t\t\t\t\tattributes[\n\t\t\t\t\t\t\t\t\t`custom${ upperFirst(\n\t\t\t\t\t\t\t\t\t\tcolorAttributeName\n\t\t\t\t\t\t\t\t\t) }`\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst previousColorObject =\n\t\t\t\t\t\t\t\tpreviousState[ colorAttributeName ];\n\t\t\t\t\t\t\tconst previousColor = previousColorObject?.color;\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t * The \"and previousColorObject\" condition checks that a previous color object was already computed.\n\t\t\t\t\t\t\t * At the start previousColorObject and colorValue are both equal to undefined\n\t\t\t\t\t\t\t * bus as previousColorObject does not exist we should compute the object.\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tpreviousColor === colorObject.color &&\n\t\t\t\t\t\t\t\tpreviousColorObject\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tnewState[ colorAttributeName ] =\n\t\t\t\t\t\t\t\t\tpreviousColorObject;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnewState[ colorAttributeName ] = {\n\t\t\t\t\t\t\t\t\t...colorObject,\n\t\t\t\t\t\t\t\t\tclass: getColorClassName(\n\t\t\t\t\t\t\t\t\t\tcolorContext,\n\t\t\t\t\t\t\t\t\t\tcolorObject.slug\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn newState;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{}\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\trender() {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t...this.props,\n\t\t\t\t\t\t\t\tcolors: undefined,\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t...this.setters,\n\t\t\t\t\t\t\t\tcolorUtils: this.colorUtils,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t] );\n}\n\n/**\n * A higher-order component factory for creating a 'withCustomColors' HOC, which handles color logic\n * for class generation color value, retrieval and color attribute setting.\n *\n * Use this higher-order component to work with a custom set of colors.\n *\n * @example\n *\n * ```jsx\n * const CUSTOM_COLORS = [ { name: 'Red', slug: 'red', color: '#ff0000' }, { name: 'Blue', slug: 'blue', color: '#0000ff' } ];\n * const withCustomColors = createCustomColorsHOC( CUSTOM_COLORS );\n * // ...\n * export default compose(\n * withCustomColors( 'backgroundColor', 'borderColor' ),\n * MyColorfulComponent,\n * );\n * ```\n *\n * @param {Array} colorsArray The array of color objects (name, slug, color, etc... ).\n *\n * @return {Function} Higher-order component.\n */\nexport function createCustomColorsHOC( colorsArray ) {\n\treturn ( ...colorTypes ) => {\n\t\tconst withColorPalette = withCustomColorPalette( colorsArray );\n\t\treturn createHigherOrderComponent(\n\t\t\tcreateColorHOC( colorTypes, withColorPalette ),\n\t\t\t'withCustomColors'\n\t\t);\n\t};\n}\n\n/**\n * A higher-order component, which handles color logic for class generation color value, retrieval and color attribute setting.\n *\n * For use with the default editor/theme color palette.\n *\n * @example\n *\n * ```jsx\n * export default compose(\n * withColors( 'backgroundColor', { textColor: 'color' } ),\n * MyColorfulComponent,\n * );\n * ```\n *\n * @param {...(Object|string)} colorTypes The arguments can be strings or objects. If the argument is an object,\n * it should contain the color attribute name as key and the color context as value.\n * If the argument is a string the value should be the color attribute name,\n * the color context is computed by applying a kebab case transform to the value.\n * Color context represents the context/place where the color is going to be used.\n * The class name of the color is generated using 'has' followed by the color name\n * and ending with the color context all in kebab case e.g: has-green-background-color.\n *\n * @return {Function} Higher-order component.\n */\nexport default function withColors( ...colorTypes ) {\n\tconst withColorPalette = withEditorColorPalette();\n\treturn createHigherOrderComponent(\n\t\tcreateColorHOC( colorTypes, withColorPalette ),\n\t\t'withColors'\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMemo, Component } from '@wordpress/element';\nimport { compose, createHigherOrderComponent } from '@wordpress/compose';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tgetColorObjectByAttributeValues,\n\tgetMostReadableColor,\n} from './utils';\nimport { useSettings } from '../use-settings';\nimport { unlock } from '../../lock-unlock';\n\nconst { kebabCase } = unlock( componentsPrivateApis );\n\n/**\n * Capitalizes the first letter in a string.\n *\n * @param {string} str The string whose first letter the function will capitalize.\n *\n * @return {string} Capitalized string.\n */\nconst upperFirst = ( [ firstLetter, ...rest ] ) =>\n\tfirstLetter.toUpperCase() + rest.join( '' );\n\n/**\n * Higher order component factory for injecting the `colorsArray` argument as\n * the colors prop in the `withCustomColors` HOC.\n *\n * @param {Array} colorsArray An array of color objects.\n *\n * @return {Function} The higher order component.\n */\nconst withCustomColorPalette = ( colorsArray ) =>\n\tcreateHigherOrderComponent(\n\t\t( WrappedComponent ) =>\n\t\t\tfunction WithCustomColorPalette( props ) {\n\t\t\t\treturn <WrappedComponent { ...props } colors={ colorsArray } />;\n\t\t\t},\n\t\t'withCustomColorPalette'\n\t);\n\n/**\n * Higher order component factory for injecting the editor colors as the\n * `colors` prop in the `withColors` HOC.\n *\n * @return {Function} The higher order component.\n */\nconst withEditorColorPalette = () =>\n\tcreateHigherOrderComponent(\n\t\t( WrappedComponent ) =>\n\t\t\tfunction WithEditorColorPalette( props ) {\n\t\t\t\tconst [ userPalette, themePalette, defaultPalette ] =\n\t\t\t\t\tuseSettings(\n\t\t\t\t\t\t'color.palette.custom',\n\t\t\t\t\t\t'color.palette.theme',\n\t\t\t\t\t\t'color.palette.default'\n\t\t\t\t\t);\n\t\t\t\tconst allColors = useMemo(\n\t\t\t\t\t() => [\n\t\t\t\t\t\t...( userPalette || [] ),\n\t\t\t\t\t\t...( themePalette || [] ),\n\t\t\t\t\t\t...( defaultPalette || [] ),\n\t\t\t\t\t],\n\t\t\t\t\t[ userPalette, themePalette, defaultPalette ]\n\t\t\t\t);\n\t\t\t\treturn <WrappedComponent { ...props } colors={ allColors } />;\n\t\t\t},\n\t\t'withEditorColorPalette'\n\t);\n\n/**\n * Helper function used with `createHigherOrderComponent` to create\n * higher order components for managing color logic.\n *\n * @param {Array} colorTypes An array of color types (e.g. 'backgroundColor, borderColor).\n * @param {Function} withColorPalette A HOC for injecting the 'colors' prop into the WrappedComponent.\n *\n * @return {Component} The component that can be used as a HOC.\n */\nfunction createColorHOC( colorTypes, withColorPalette ) {\n\tconst colorMap = colorTypes.reduce( ( colorObject, colorType ) => {\n\t\treturn {\n\t\t\t...colorObject,\n\t\t\t...( typeof colorType === 'string'\n\t\t\t\t? { [ colorType ]: kebabCase( colorType ) }\n\t\t\t\t: colorType ),\n\t\t};\n\t}, {} );\n\n\treturn compose( [\n\t\twithColorPalette,\n\t\t( WrappedComponent ) => {\n\t\t\treturn class WithColors extends Component {\n\t\t\t\tconstructor( props ) {\n\t\t\t\t\tsuper( props );\n\n\t\t\t\t\tthis.setters = this.createSetters();\n\t\t\t\t\tthis.colorUtils = {\n\t\t\t\t\t\tgetMostReadableColor:\n\t\t\t\t\t\t\tthis.getMostReadableColor.bind( this ),\n\t\t\t\t\t};\n\n\t\t\t\t\tthis.state = {};\n\t\t\t\t}\n\n\t\t\t\tgetMostReadableColor( colorValue ) {\n\t\t\t\t\tconst { colors } = this.props;\n\t\t\t\t\treturn getMostReadableColor( colors, colorValue );\n\t\t\t\t}\n\n\t\t\t\tcreateSetters() {\n\t\t\t\t\treturn Object.keys( colorMap ).reduce(\n\t\t\t\t\t\t( settersAccumulator, colorAttributeName ) => {\n\t\t\t\t\t\t\tconst upperFirstColorAttributeName =\n\t\t\t\t\t\t\t\tupperFirst( colorAttributeName );\n\t\t\t\t\t\t\tconst customColorAttributeName = `custom${ upperFirstColorAttributeName }`;\n\t\t\t\t\t\t\tsettersAccumulator[\n\t\t\t\t\t\t\t\t`set${ upperFirstColorAttributeName }`\n\t\t\t\t\t\t\t] = this.createSetColor(\n\t\t\t\t\t\t\t\tcolorAttributeName,\n\t\t\t\t\t\t\t\tcustomColorAttributeName\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn settersAccumulator;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{}\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tcreateSetColor( colorAttributeName, customColorAttributeName ) {\n\t\t\t\t\treturn ( colorValue ) => {\n\t\t\t\t\t\tconst colorObject = getColorObjectByColorValue(\n\t\t\t\t\t\t\tthis.props.colors,\n\t\t\t\t\t\t\tcolorValue\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.props.setAttributes( {\n\t\t\t\t\t\t\t[ colorAttributeName ]:\n\t\t\t\t\t\t\t\tcolorObject && colorObject.slug\n\t\t\t\t\t\t\t\t\t? colorObject.slug\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t[ customColorAttributeName ]:\n\t\t\t\t\t\t\t\tcolorObject && colorObject.slug\n\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t: colorValue,\n\t\t\t\t\t\t} );\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tstatic getDerivedStateFromProps(\n\t\t\t\t\t{ attributes, colors },\n\t\t\t\t\tpreviousState\n\t\t\t\t) {\n\t\t\t\t\treturn Object.entries( colorMap ).reduce(\n\t\t\t\t\t\t( newState, [ colorAttributeName, colorContext ] ) => {\n\t\t\t\t\t\t\tconst colorObject = getColorObjectByAttributeValues(\n\t\t\t\t\t\t\t\tcolors,\n\t\t\t\t\t\t\t\tattributes[ colorAttributeName ],\n\t\t\t\t\t\t\t\tattributes[\n\t\t\t\t\t\t\t\t\t`custom${ upperFirst(\n\t\t\t\t\t\t\t\t\t\tcolorAttributeName\n\t\t\t\t\t\t\t\t\t) }`\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst previousColorObject =\n\t\t\t\t\t\t\t\tpreviousState[ colorAttributeName ];\n\t\t\t\t\t\t\tconst previousColor = previousColorObject?.color;\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t * The \"and previousColorObject\" condition checks that a previous color object was already computed.\n\t\t\t\t\t\t\t * At the start previousColorObject and colorValue are both equal to undefined\n\t\t\t\t\t\t\t * bus as previousColorObject does not exist we should compute the object.\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tpreviousColor === colorObject.color &&\n\t\t\t\t\t\t\t\tpreviousColorObject\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tnewState[ colorAttributeName ] =\n\t\t\t\t\t\t\t\t\tpreviousColorObject;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnewState[ colorAttributeName ] = {\n\t\t\t\t\t\t\t\t\t...colorObject,\n\t\t\t\t\t\t\t\t\tclass: getColorClassName(\n\t\t\t\t\t\t\t\t\t\tcolorContext,\n\t\t\t\t\t\t\t\t\t\tcolorObject.slug\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn newState;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{}\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\trender() {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t...this.props,\n\t\t\t\t\t\t\t\tcolors: undefined,\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t...this.setters,\n\t\t\t\t\t\t\t\tcolorUtils: this.colorUtils,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t] );\n}\n\n/**\n * A higher-order component factory for creating a 'withCustomColors' HOC, which handles color logic\n * for class generation color value, retrieval and color attribute setting.\n *\n * Use this higher-order component to work with a custom set of colors.\n *\n * @example\n *\n * ```jsx\n * const CUSTOM_COLORS = [ { name: 'Red', slug: 'red', color: '#ff0000' }, { name: 'Blue', slug: 'blue', color: '#0000ff' } ];\n * const withCustomColors = createCustomColorsHOC( CUSTOM_COLORS );\n * // ...\n * export default compose(\n * withCustomColors( 'backgroundColor', 'borderColor' ),\n * MyColorfulComponent,\n * );\n * ```\n *\n * @param {Array} colorsArray The array of color objects (name, slug, color, etc... ).\n *\n * @return {Function} Higher-order component.\n */\nexport function createCustomColorsHOC( colorsArray ) {\n\treturn ( ...colorTypes ) => {\n\t\tconst withColorPalette = withCustomColorPalette( colorsArray );\n\t\treturn createHigherOrderComponent(\n\t\t\tcreateColorHOC( colorTypes, withColorPalette ),\n\t\t\t'withCustomColors'\n\t\t);\n\t};\n}\n\n/**\n * A higher-order component, which handles color logic for class generation color value, retrieval and color attribute setting.\n *\n * For use with the default editor/theme color palette.\n *\n * @example\n *\n * ```jsx\n * export default compose(\n * withColors( 'backgroundColor', { textColor: 'color' } ),\n * MyColorfulComponent,\n * );\n * ```\n *\n * @param {...(Object|string)} colorTypes The arguments can be strings or objects. If the argument is an object,\n * it should contain the color attribute name as key and the color context as value.\n * If the argument is a string the value should be the color attribute name,\n * the color context is computed by applying a kebab case transform to the value.\n * Color context represents the context/place where the color is going to be used.\n * The class name of the color is generated using 'has' followed by the color name\n * and ending with the color context all in kebab case e.g: has-green-background-color.\n *\n * @return {Function} Higher-order component.\n */\nexport default function withColors( ...colorTypes ) {\n\tconst withColorPalette = withEditorColorPalette();\n\treturn createHigherOrderComponent(\n\t\tcreateColorHOC( colorTypes, withColorPalette ),\n\t\t'withColors'\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["componentsPrivateApis"]
7
7
  }
@@ -82,7 +82,7 @@ var LabeledColorIndicator = ({ colorValue, label }) => /* @__PURE__ */ (0, impor
82
82
  }
83
83
  )
84
84
  ] });
85
- var renderToggle = (settings) => ({ onToggle, isOpen }) => {
85
+ var renderToggle = (settings) => function Toggle({ onToggle, isOpen }) {
86
86
  const {
87
87
  clearable,
88
88
  colorValue,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/colors-gradients/dropdown.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tColorIndicator,\n\tDropdown,\n\tFlexItem,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\t__experimentalHStack as HStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { reset as resetIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ColorGradientControl from './control';\n\n// When the `ColorGradientSettingsDropdown` controls are being rendered to a\n// `ToolsPanel` they must be wrapped in a `ToolsPanelItem`.\nconst WithToolsPanelItem = ( { setting, children, panelId, ...props } ) => {\n\tconst clearValue = () => {\n\t\tif ( setting.colorValue ) {\n\t\t\tsetting.onColorChange();\n\t\t} else if ( setting.gradientValue ) {\n\t\t\tsetting.onGradientChange();\n\t\t}\n\t};\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ () => {\n\t\t\t\treturn !! setting.colorValue || !! setting.gradientValue;\n\t\t\t} }\n\t\t\tlabel={ setting.label }\n\t\t\tonDeselect={ clearValue }\n\t\t\tisShownByDefault={\n\t\t\t\tsetting.isShownByDefault !== undefined\n\t\t\t\t\t? setting.isShownByDefault\n\t\t\t\t\t: true\n\t\t\t}\n\t\t\t{ ...props }\n\t\t\tclassName=\"block-editor-tools-panel-color-gradient-settings__item\"\n\t\t\tpanelId={ panelId }\n\t\t\t// Pass resetAllFilter if supplied due to rendering via SlotFill\n\t\t\t// into parent ToolsPanel.\n\t\t\tresetAllFilter={ setting.resetAllFilter }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanelItem>\n\t);\n};\n\nconst LabeledColorIndicator = ( { colorValue, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ColorIndicator\n\t\t\tclassName=\"block-editor-panel-color-gradient-settings__color-indicator\"\n\t\t\tcolorValue={ colorValue }\n\t\t/>\n\t\t<FlexItem\n\t\t\tclassName=\"block-editor-panel-color-gradient-settings__color-name\"\n\t\t\ttitle={ label }\n\t\t>\n\t\t\t{ label }\n\t\t</FlexItem>\n\t</HStack>\n);\n\n// Renders a color dropdown's toggle as an `Item` if it is within an `ItemGroup`\n// or as a `Button` if it isn't e.g. the controls are being rendered in\n// a `ToolsPanel`.\nconst renderToggle =\n\t( settings ) =>\n\t( { onToggle, isOpen } ) => {\n\t\tconst {\n\t\t\tclearable,\n\t\t\tcolorValue,\n\t\t\tgradientValue,\n\t\t\tonColorChange,\n\t\t\tonGradientChange,\n\t\t\tlabel,\n\t\t} = settings;\n\t\tconst colorButtonRef = useRef( undefined );\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-panel-color-gradient-settings__dropdown',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\t'aria-expanded': isOpen,\n\t\t\tref: colorButtonRef,\n\t\t};\n\n\t\tconst clearValue = () => {\n\t\t\tif ( colorValue ) {\n\t\t\t\tonColorChange();\n\t\t\t} else if ( gradientValue ) {\n\t\t\t\tonGradientChange();\n\t\t\t}\n\t\t};\n\n\t\tconst value = colorValue ?? gradientValue;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button __next40pxDefaultSize { ...toggleProps }>\n\t\t\t\t\t<LabeledColorIndicator\n\t\t\t\t\t\tcolorValue={ value }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t/>\n\t\t\t\t</Button>\n\t\t\t\t{ clearable && value && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Reset' ) }\n\t\t\t\t\t\tclassName=\"block-editor-panel-color-gradient-settings__reset\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tclearValue();\n\t\t\t\t\t\t\tif ( isOpen ) {\n\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Return focus to parent button\n\t\t\t\t\t\t\tcolorButtonRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\n// Renders a collection of color controls as dropdowns. Depending upon the\n// context in which these dropdowns are being rendered, they may be wrapped\n// in an `ItemGroup` with each dropdown's toggle as an `Item`, or alternatively,\n// the may be individually wrapped in a `ToolsPanelItem` with the toggle as\n// a regular `Button`.\n//\n// For more context see: https://github.com/WordPress/gutenberg/pull/40084\nexport default function ColorGradientSettingsDropdown( {\n\tcolors,\n\tdisableCustomColors,\n\tdisableCustomGradients,\n\tenableAlpha,\n\tgradients,\n\tsettings,\n\t__experimentalIsRenderedInSidebar,\n\t...props\n} ) {\n\tlet popoverProps;\n\tif ( __experimentalIsRenderedInSidebar ) {\n\t\tpopoverProps = {\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t};\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ settings.map( ( setting, index ) => {\n\t\t\t\tconst controlProps = {\n\t\t\t\t\tclearable: false,\n\t\t\t\t\tcolorValue: setting.colorValue,\n\t\t\t\t\tcolors,\n\t\t\t\t\tdisableCustomColors,\n\t\t\t\t\tdisableCustomGradients,\n\t\t\t\t\tenableAlpha,\n\t\t\t\t\tgradientValue: setting.gradientValue,\n\t\t\t\t\tgradients,\n\t\t\t\t\tlabel: setting.label,\n\t\t\t\t\tonColorChange: setting.onColorChange,\n\t\t\t\t\tonGradientChange: setting.onGradientChange,\n\t\t\t\t\tshowTitle: false,\n\t\t\t\t\t__experimentalIsRenderedInSidebar,\n\t\t\t\t\t...setting,\n\t\t\t\t};\n\t\t\t\tconst toggleSettings = {\n\t\t\t\t\tclearable: setting.clearable,\n\t\t\t\t\tlabel: setting.label,\n\t\t\t\t\tcolorValue: setting.colorValue,\n\t\t\t\t\tgradientValue: setting.gradientValue,\n\t\t\t\t\tonColorChange: setting.onColorChange,\n\t\t\t\t\tonGradientChange: setting.onGradientChange,\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\tsetting && (\n\t\t\t\t\t\t// If not in an `ItemGroup` wrap the dropdown in a\n\t\t\t\t\t\t// `ToolsPanelItem`\n\t\t\t\t\t\t<WithToolsPanelItem\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tsetting={ setting }\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\t\tclassName=\"block-editor-tools-panel-color-gradient-settings__dropdown\"\n\t\t\t\t\t\t\t\trenderToggle={ renderToggle( toggleSettings ) }\n\t\t\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t\t\t<DropdownContentWrapper paddingSize=\"none\">\n\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-panel-color-gradient-settings__dropdown-content\">\n\t\t\t\t\t\t\t\t\t\t\t<ColorGradientControl\n\t\t\t\t\t\t\t\t\t\t\t\t{ ...controlProps }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</WithToolsPanelItem>\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tColorIndicator,\n\tDropdown,\n\tFlexItem,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\t__experimentalHStack as HStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { reset as resetIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ColorGradientControl from './control';\n\n// When the `ColorGradientSettingsDropdown` controls are being rendered to a\n// `ToolsPanel` they must be wrapped in a `ToolsPanelItem`.\nconst WithToolsPanelItem = ( { setting, children, panelId, ...props } ) => {\n\tconst clearValue = () => {\n\t\tif ( setting.colorValue ) {\n\t\t\tsetting.onColorChange();\n\t\t} else if ( setting.gradientValue ) {\n\t\t\tsetting.onGradientChange();\n\t\t}\n\t};\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ () => {\n\t\t\t\treturn !! setting.colorValue || !! setting.gradientValue;\n\t\t\t} }\n\t\t\tlabel={ setting.label }\n\t\t\tonDeselect={ clearValue }\n\t\t\tisShownByDefault={\n\t\t\t\tsetting.isShownByDefault !== undefined\n\t\t\t\t\t? setting.isShownByDefault\n\t\t\t\t\t: true\n\t\t\t}\n\t\t\t{ ...props }\n\t\t\tclassName=\"block-editor-tools-panel-color-gradient-settings__item\"\n\t\t\tpanelId={ panelId }\n\t\t\t// Pass resetAllFilter if supplied due to rendering via SlotFill\n\t\t\t// into parent ToolsPanel.\n\t\t\tresetAllFilter={ setting.resetAllFilter }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanelItem>\n\t);\n};\n\nconst LabeledColorIndicator = ( { colorValue, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ColorIndicator\n\t\t\tclassName=\"block-editor-panel-color-gradient-settings__color-indicator\"\n\t\t\tcolorValue={ colorValue }\n\t\t/>\n\t\t<FlexItem\n\t\t\tclassName=\"block-editor-panel-color-gradient-settings__color-name\"\n\t\t\ttitle={ label }\n\t\t>\n\t\t\t{ label }\n\t\t</FlexItem>\n\t</HStack>\n);\n\n// Renders a color dropdown's toggle as an `Item` if it is within an `ItemGroup`\n// or as a `Button` if it isn't e.g. the controls are being rendered in\n// a `ToolsPanel`.\nconst renderToggle = ( settings ) =>\n\tfunction Toggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tclearable,\n\t\t\tcolorValue,\n\t\t\tgradientValue,\n\t\t\tonColorChange,\n\t\t\tonGradientChange,\n\t\t\tlabel,\n\t\t} = settings;\n\t\tconst colorButtonRef = useRef( undefined );\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-panel-color-gradient-settings__dropdown',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\t'aria-expanded': isOpen,\n\t\t\tref: colorButtonRef,\n\t\t};\n\n\t\tconst clearValue = () => {\n\t\t\tif ( colorValue ) {\n\t\t\t\tonColorChange();\n\t\t\t} else if ( gradientValue ) {\n\t\t\t\tonGradientChange();\n\t\t\t}\n\t\t};\n\n\t\tconst value = colorValue ?? gradientValue;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button __next40pxDefaultSize { ...toggleProps }>\n\t\t\t\t\t<LabeledColorIndicator\n\t\t\t\t\t\tcolorValue={ value }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t/>\n\t\t\t\t</Button>\n\t\t\t\t{ clearable && value && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Reset' ) }\n\t\t\t\t\t\tclassName=\"block-editor-panel-color-gradient-settings__reset\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tclearValue();\n\t\t\t\t\t\t\tif ( isOpen ) {\n\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Return focus to parent button\n\t\t\t\t\t\t\tcolorButtonRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\n// Renders a collection of color controls as dropdowns. Depending upon the\n// context in which these dropdowns are being rendered, they may be wrapped\n// in an `ItemGroup` with each dropdown's toggle as an `Item`, or alternatively,\n// the may be individually wrapped in a `ToolsPanelItem` with the toggle as\n// a regular `Button`.\n//\n// For more context see: https://github.com/WordPress/gutenberg/pull/40084\nexport default function ColorGradientSettingsDropdown( {\n\tcolors,\n\tdisableCustomColors,\n\tdisableCustomGradients,\n\tenableAlpha,\n\tgradients,\n\tsettings,\n\t__experimentalIsRenderedInSidebar,\n\t...props\n} ) {\n\tlet popoverProps;\n\tif ( __experimentalIsRenderedInSidebar ) {\n\t\tpopoverProps = {\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t};\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ settings.map( ( setting, index ) => {\n\t\t\t\tconst controlProps = {\n\t\t\t\t\tclearable: false,\n\t\t\t\t\tcolorValue: setting.colorValue,\n\t\t\t\t\tcolors,\n\t\t\t\t\tdisableCustomColors,\n\t\t\t\t\tdisableCustomGradients,\n\t\t\t\t\tenableAlpha,\n\t\t\t\t\tgradientValue: setting.gradientValue,\n\t\t\t\t\tgradients,\n\t\t\t\t\tlabel: setting.label,\n\t\t\t\t\tonColorChange: setting.onColorChange,\n\t\t\t\t\tonGradientChange: setting.onGradientChange,\n\t\t\t\t\tshowTitle: false,\n\t\t\t\t\t__experimentalIsRenderedInSidebar,\n\t\t\t\t\t...setting,\n\t\t\t\t};\n\t\t\t\tconst toggleSettings = {\n\t\t\t\t\tclearable: setting.clearable,\n\t\t\t\t\tlabel: setting.label,\n\t\t\t\t\tcolorValue: setting.colorValue,\n\t\t\t\t\tgradientValue: setting.gradientValue,\n\t\t\t\t\tonColorChange: setting.onColorChange,\n\t\t\t\t\tonGradientChange: setting.onGradientChange,\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\tsetting && (\n\t\t\t\t\t\t// If not in an `ItemGroup` wrap the dropdown in a\n\t\t\t\t\t\t// `ToolsPanelItem`\n\t\t\t\t\t\t<WithToolsPanelItem\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tsetting={ setting }\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\t\tclassName=\"block-editor-tools-panel-color-gradient-settings__dropdown\"\n\t\t\t\t\t\t\t\trenderToggle={ renderToggle( toggleSettings ) }\n\t\t\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t\t\t<DropdownContentWrapper paddingSize=\"none\">\n\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-panel-color-gradient-settings__dropdown-content\">\n\t\t\t\t\t\t\t\t\t\t\t<ColorGradientControl\n\t\t\t\t\t\t\t\t\t\t\t\t{ ...controlProps }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</WithToolsPanelItem>\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["ToolsPanelItem", "HStack", "clsx", "resetIcon", "DropdownContentWrapper", "ColorGradientControl"]
7
7
  }
@@ -39,7 +39,11 @@ var import_jsx_runtime = require("react/jsx-runtime");
39
39
  var EditableText = (0, import_element.forwardRef)((props, ref) => {
40
40
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_rich_text.default, { ref, ...props, __unstableDisableFormats: true });
41
41
  });
42
- EditableText.Content = ({ value = "", tagName: Tag = "div", ...props }) => {
42
+ EditableText.Content = function Content({
43
+ value = "",
44
+ tagName: Tag = "div",
45
+ ...props
46
+ }) {
43
47
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Tag, { ...props, children: value });
44
48
  };
45
49
  var editable_text_default = EditableText;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/editable-text/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport RichText from '../rich-text';\n\nconst EditableText = forwardRef( ( props, ref ) => {\n\treturn <RichText ref={ ref } { ...props } __unstableDisableFormats />;\n} );\n\nEditableText.Content = ( { value = '', tagName: Tag = 'div', ...props } ) => {\n\treturn <Tag { ...props }>{ value }</Tag>;\n};\n\n/**\n * Renders an editable text input in which text formatting is not allowed.\n */\nexport default EditableText;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAA2B;AAK3B,uBAAqB;AAGb;AADR,IAAM,mBAAe,2BAAY,CAAE,OAAO,QAAS;AAClD,SAAO,4CAAC,iBAAAA,SAAA,EAAS,KAAc,GAAG,OAAQ,0BAAwB,MAAC;AACpE,CAAE;AAEF,aAAa,UAAU,CAAE,EAAE,QAAQ,IAAI,SAAS,MAAM,OAAO,GAAG,MAAM,MAAO;AAC5E,SAAO,4CAAC,OAAM,GAAG,OAAU,iBAAO;AACnC;AAKA,IAAO,wBAAQ;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport RichText from '../rich-text';\n\nconst EditableText = forwardRef( ( props, ref ) => {\n\treturn <RichText ref={ ref } { ...props } __unstableDisableFormats />;\n} );\n\nEditableText.Content = function Content( {\n\tvalue = '',\n\ttagName: Tag = 'div',\n\t...props\n} ) {\n\treturn <Tag { ...props }>{ value }</Tag>;\n};\n\n/**\n * Renders an editable text input in which text formatting is not allowed.\n */\nexport default EditableText;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAA2B;AAK3B,uBAAqB;AAGb;AADR,IAAM,mBAAe,2BAAY,CAAE,OAAO,QAAS;AAClD,SAAO,4CAAC,iBAAAA,SAAA,EAAS,KAAc,GAAG,OAAQ,0BAAwB,MAAC;AACpE,CAAE;AAEF,aAAa,UAAU,SAAS,QAAS;AAAA,EACxC,QAAQ;AAAA,EACR,SAAS,MAAM;AAAA,EACf,GAAG;AACJ,GAAI;AACH,SAAO,4CAAC,OAAM,GAAG,OAAU,iBAAO;AACnC;AAKA,IAAO,wBAAQ;",
6
6
  "names": ["RichText"]
7
7
  }
@@ -36,7 +36,8 @@ function FontSizePicker(props) {
36
36
  {
37
37
  ...props,
38
38
  fontSizes,
39
- disableCustomFontSizes: !customFontSize
39
+ disableCustomFontSizes: !customFontSize,
40
+ __next40pxDefaultSize: true
40
41
  }
41
42
  );
42
43
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/font-sizes/font-size-picker.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { FontSizePicker as BaseFontSizePicker } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../use-settings';\n\nfunction FontSizePicker( props ) {\n\tconst [ fontSizes, customFontSize ] = useSettings(\n\t\t'typography.fontSizes',\n\t\t'typography.customFontSize'\n\t);\n\n\treturn (\n\t\t<BaseFontSizePicker\n\t\t\t{ ...props }\n\t\t\tfontSizes={ fontSizes }\n\t\t\tdisableCustomFontSizes={ ! customFontSize }\n\t\t/>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/font-sizes/README.md\n */\nexport default FontSizePicker;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAAqD;AAKrD,0BAA4B;AAS1B;AAPF,SAAS,eAAgB,OAAQ;AAChC,QAAM,CAAE,WAAW,cAAe,QAAI;AAAA,IACrC;AAAA,IACA;AAAA,EACD;AAEA,SACC;AAAA,IAAC,kBAAAA;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACL;AAAA,MACA,wBAAyB,CAAE;AAAA;AAAA,EAC5B;AAEF;AAKA,IAAO,2BAAQ;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { FontSizePicker as BaseFontSizePicker } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../use-settings';\n\nfunction FontSizePicker( props ) {\n\tconst [ fontSizes, customFontSize ] = useSettings(\n\t\t'typography.fontSizes',\n\t\t'typography.customFontSize'\n\t);\n\n\treturn (\n\t\t<BaseFontSizePicker\n\t\t\t{ ...props }\n\t\t\tfontSizes={ fontSizes }\n\t\t\tdisableCustomFontSizes={ ! customFontSize }\n\t\t\t__next40pxDefaultSize\n\t\t/>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/font-sizes/README.md\n */\nexport default FontSizePicker;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAAqD;AAKrD,0BAA4B;AAS1B;AAPF,SAAS,eAAgB,OAAQ;AAChC,QAAM,CAAE,WAAW,cAAe,QAAI;AAAA,IACrC;AAAA,IACA;AAAA,EACD;AAEA,SACC;AAAA,IAAC,kBAAAA;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACL;AAAA,MACA,wBAAyB,CAAE;AAAA,MAC3B,uBAAqB;AAAA;AAAA,EACtB;AAEF;AAKA,IAAO,2BAAQ;",
6
6
  "names": ["BaseFontSizePicker"]
7
7
  }
@@ -41,8 +41,10 @@ var with_font_sizes_default = (...fontSizeNames) => {
41
41
  return (0, import_compose.createHigherOrderComponent)(
42
42
  (0, import_compose.compose)([
43
43
  (0, import_compose.createHigherOrderComponent)(
44
- (WrappedComponent) => (props) => {
45
- const [fontSizes] = (0, import_use_settings.useSettings)("typography.fontSizes");
44
+ (WrappedComponent) => function WithFontSizesInner(props) {
45
+ const [fontSizes] = (0, import_use_settings.useSettings)(
46
+ "typography.fontSizes"
47
+ );
46
48
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
47
49
  WrappedComponent,
48
50
  {
@@ -54,7 +56,7 @@ var with_font_sizes_default = (...fontSizeNames) => {
54
56
  "withFontSizes"
55
57
  ),
56
58
  (WrappedComponent) => {
57
- return class extends import_element.Component {
59
+ return class WithFontSizes extends import_element.Component {
58
60
  constructor(props) {
59
61
  super(props);
60
62
  this.setters = this.createSetters();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/font-sizes/with-font-sizes.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, compose } from '@wordpress/compose';\nimport { Component } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getFontSize, getFontSizeClass } from './utils';\nimport { useSettings } from '../use-settings';\n\nconst DEFAULT_FONT_SIZES = [];\n\n/**\n * Capitalizes the first letter in a string.\n *\n * @param {string} str The string whose first letter the function will capitalize.\n *\n * @return {string} Capitalized string.\n */\nconst upperFirst = ( [ firstLetter, ...rest ] ) =>\n\tfirstLetter.toUpperCase() + rest.join( '' );\n\n/**\n * Higher-order component, which handles font size logic for class generation,\n * font size value retrieval, and font size change handling.\n *\n * @param {...(Object|string)} fontSizeNames The arguments should all be strings.\n * Each string contains the font size\n * attribute name e.g: 'fontSize'.\n *\n * @return {Function} Higher-order component.\n */\nexport default ( ...fontSizeNames ) => {\n\t/*\n\t * Computes an object whose key is the font size attribute name as passed in the array,\n\t * and the value is the custom font size attribute name.\n\t * Custom font size is automatically compted by appending custom followed by the font size attribute name in with the first letter capitalized.\n\t */\n\tconst fontSizeAttributeNames = fontSizeNames.reduce(\n\t\t( fontSizeAttributeNamesAccumulator, fontSizeAttributeName ) => {\n\t\t\tfontSizeAttributeNamesAccumulator[\n\t\t\t\tfontSizeAttributeName\n\t\t\t] = `custom${ upperFirst( fontSizeAttributeName ) }`;\n\t\t\treturn fontSizeAttributeNamesAccumulator;\n\t\t},\n\t\t{}\n\t);\n\n\treturn createHigherOrderComponent(\n\t\tcompose( [\n\t\t\tcreateHigherOrderComponent(\n\t\t\t\t( WrappedComponent ) => ( props ) => {\n\t\t\t\t\tconst [ fontSizes ] = useSettings( 'typography.fontSizes' );\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\tfontSizes={ fontSizes || DEFAULT_FONT_SIZES }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\t'withFontSizes'\n\t\t\t),\n\t\t\t( WrappedComponent ) => {\n\t\t\t\treturn class extends Component {\n\t\t\t\t\tconstructor( props ) {\n\t\t\t\t\t\tsuper( props );\n\n\t\t\t\t\t\tthis.setters = this.createSetters();\n\n\t\t\t\t\t\tthis.state = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSetters() {\n\t\t\t\t\t\treturn Object.entries( fontSizeAttributeNames ).reduce(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tsettersAccumulator,\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tconst upperFirstFontSizeAttributeName =\n\t\t\t\t\t\t\t\t\tupperFirst( fontSizeAttributeName );\n\t\t\t\t\t\t\t\tsettersAccumulator[\n\t\t\t\t\t\t\t\t\t`set${ upperFirstFontSizeAttributeName }`\n\t\t\t\t\t\t\t\t] = this.createSetFontSize(\n\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn settersAccumulator;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSetFontSize(\n\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn ( fontSizeValue ) => {\n\t\t\t\t\t\t\tconst fontSizeObject = this.props.fontSizes?.find(\n\t\t\t\t\t\t\t\t( { size } ) => size === Number( fontSizeValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tthis.props.setAttributes( {\n\t\t\t\t\t\t\t\t[ fontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t[ customFontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t: fontSizeValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tstatic getDerivedStateFromProps(\n\t\t\t\t\t\t{ attributes, fontSizes },\n\t\t\t\t\t\tpreviousState\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst didAttributesChange = (\n\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\tif ( previousState[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t// If new font size is name compare with the previous slug.\n\t\t\t\t\t\t\t\tif ( attributes[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ] !==\n\t\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t\t.slug\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// If font size is not named, update when the font size value changes.\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t.size !==\n\t\t\t\t\t\t\t\t\tattributes[ customFontSizeAttributeName ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// In this case we need to build the font size object.\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! Object.values( fontSizeAttributeNames ).some(\n\t\t\t\t\t\t\t\tdidAttributesChange\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst newState = Object.entries(\n\t\t\t\t\t\t\tfontSizeAttributeNames\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.filter( ( [ key, value ] ) =>\n\t\t\t\t\t\t\t\tdidAttributesChange( value, key )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.reduce(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\tnewStateAccumulator,\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\tconst fontSizeAttributeValue =\n\t\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ];\n\t\t\t\t\t\t\t\t\tconst fontSizeObject = getFontSize(\n\t\t\t\t\t\t\t\t\t\tfontSizes,\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeValue,\n\t\t\t\t\t\t\t\t\t\tattributes[\n\t\t\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tnewStateAccumulator[\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t\t\t\t] = {\n\t\t\t\t\t\t\t\t\t\t...fontSizeObject,\n\t\t\t\t\t\t\t\t\t\tclass: getFontSizeClass(\n\t\t\t\t\t\t\t\t\t\t\tfontSizeAttributeValue\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn newStateAccumulator;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...previousState,\n\t\t\t\t\t\t\t...newState,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\trender() {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\t...this.props,\n\t\t\t\t\t\t\t\t\tfontSizes: undefined,\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t...this.setters,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\t\t] ),\n\t\t'withFontSizes'\n\t);\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, compose } from '@wordpress/compose';\nimport { Component } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getFontSize, getFontSizeClass } from './utils';\nimport { useSettings } from '../use-settings';\n\nconst DEFAULT_FONT_SIZES = [];\n\n/**\n * Capitalizes the first letter in a string.\n *\n * @param {string} str The string whose first letter the function will capitalize.\n *\n * @return {string} Capitalized string.\n */\nconst upperFirst = ( [ firstLetter, ...rest ] ) =>\n\tfirstLetter.toUpperCase() + rest.join( '' );\n\n/**\n * Higher-order component, which handles font size logic for class generation,\n * font size value retrieval, and font size change handling.\n *\n * @param {...(Object|string)} fontSizeNames The arguments should all be strings.\n * Each string contains the font size\n * attribute name e.g: 'fontSize'.\n *\n * @return {Function} Higher-order component.\n */\nexport default ( ...fontSizeNames ) => {\n\t/*\n\t * Computes an object whose key is the font size attribute name as passed in the array,\n\t * and the value is the custom font size attribute name.\n\t * Custom font size is automatically compted by appending custom followed by the font size attribute name in with the first letter capitalized.\n\t */\n\tconst fontSizeAttributeNames = fontSizeNames.reduce(\n\t\t( fontSizeAttributeNamesAccumulator, fontSizeAttributeName ) => {\n\t\t\tfontSizeAttributeNamesAccumulator[\n\t\t\t\tfontSizeAttributeName\n\t\t\t] = `custom${ upperFirst( fontSizeAttributeName ) }`;\n\t\t\treturn fontSizeAttributeNamesAccumulator;\n\t\t},\n\t\t{}\n\t);\n\n\treturn createHigherOrderComponent(\n\t\tcompose( [\n\t\t\tcreateHigherOrderComponent(\n\t\t\t\t( WrappedComponent ) =>\n\t\t\t\t\tfunction WithFontSizesInner( props ) {\n\t\t\t\t\t\tconst [ fontSizes ] = useSettings(\n\t\t\t\t\t\t\t'typography.fontSizes'\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\tfontSizes={ fontSizes || DEFAULT_FONT_SIZES }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t'withFontSizes'\n\t\t\t),\n\t\t\t( WrappedComponent ) => {\n\t\t\t\treturn class WithFontSizes extends Component {\n\t\t\t\t\tconstructor( props ) {\n\t\t\t\t\t\tsuper( props );\n\n\t\t\t\t\t\tthis.setters = this.createSetters();\n\n\t\t\t\t\t\tthis.state = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSetters() {\n\t\t\t\t\t\treturn Object.entries( fontSizeAttributeNames ).reduce(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tsettersAccumulator,\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tconst upperFirstFontSizeAttributeName =\n\t\t\t\t\t\t\t\t\tupperFirst( fontSizeAttributeName );\n\t\t\t\t\t\t\t\tsettersAccumulator[\n\t\t\t\t\t\t\t\t\t`set${ upperFirstFontSizeAttributeName }`\n\t\t\t\t\t\t\t\t] = this.createSetFontSize(\n\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn settersAccumulator;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSetFontSize(\n\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn ( fontSizeValue ) => {\n\t\t\t\t\t\t\tconst fontSizeObject = this.props.fontSizes?.find(\n\t\t\t\t\t\t\t\t( { size } ) => size === Number( fontSizeValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tthis.props.setAttributes( {\n\t\t\t\t\t\t\t\t[ fontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t[ customFontSizeAttributeName ]:\n\t\t\t\t\t\t\t\t\tfontSizeObject && fontSizeObject.slug\n\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t: fontSizeValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tstatic getDerivedStateFromProps(\n\t\t\t\t\t\t{ attributes, fontSizes },\n\t\t\t\t\t\tpreviousState\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst didAttributesChange = (\n\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\tif ( previousState[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t// If new font size is name compare with the previous slug.\n\t\t\t\t\t\t\t\tif ( attributes[ fontSizeAttributeName ] ) {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ] !==\n\t\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t\t.slug\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// If font size is not named, update when the font size value changes.\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tpreviousState[ fontSizeAttributeName ]\n\t\t\t\t\t\t\t\t\t\t.size !==\n\t\t\t\t\t\t\t\t\tattributes[ customFontSizeAttributeName ]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// In this case we need to build the font size object.\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! Object.values( fontSizeAttributeNames ).some(\n\t\t\t\t\t\t\t\tdidAttributesChange\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst newState = Object.entries(\n\t\t\t\t\t\t\tfontSizeAttributeNames\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.filter( ( [ key, value ] ) =>\n\t\t\t\t\t\t\t\tdidAttributesChange( value, key )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.reduce(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\tnewStateAccumulator,\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeName,\n\t\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName,\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\tconst fontSizeAttributeValue =\n\t\t\t\t\t\t\t\t\t\tattributes[ fontSizeAttributeName ];\n\t\t\t\t\t\t\t\t\tconst fontSizeObject = getFontSize(\n\t\t\t\t\t\t\t\t\t\tfontSizes,\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeValue,\n\t\t\t\t\t\t\t\t\t\tattributes[\n\t\t\t\t\t\t\t\t\t\t\tcustomFontSizeAttributeName\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tnewStateAccumulator[\n\t\t\t\t\t\t\t\t\t\tfontSizeAttributeName\n\t\t\t\t\t\t\t\t\t] = {\n\t\t\t\t\t\t\t\t\t\t...fontSizeObject,\n\t\t\t\t\t\t\t\t\t\tclass: getFontSizeClass(\n\t\t\t\t\t\t\t\t\t\t\tfontSizeAttributeValue\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn newStateAccumulator;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...previousState,\n\t\t\t\t\t\t\t...newState,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\trender() {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<WrappedComponent\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\t...this.props,\n\t\t\t\t\t\t\t\t\tfontSizes: undefined,\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t...this.setters,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\t\t] ),\n\t\t'withFontSizes'\n\t);\n};\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -30,7 +30,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // packages/block-editor/src/components/global-styles/advanced-panel.js
31
31
  var advanced_panel_exports = {};
32
32
  __export(advanced_panel_exports, {
33
- default: () => AdvancedPanel
33
+ default: () => AdvancedPanel,
34
+ validateCSS: () => validateCSS
34
35
  });
35
36
  module.exports = __toCommonJS(advanced_panel_exports);
36
37
  var import_components = require("@wordpress/components");
@@ -38,10 +39,17 @@ var import_element = require("@wordpress/element");
38
39
  var import_i18n = require("@wordpress/i18n");
39
40
  var import_transform_styles = __toESM(require("../../utils/transform-styles/index.cjs"));
40
41
  var import_jsx_runtime = require("react/jsx-runtime");
42
+ function validateCSS(css) {
43
+ if (typeof css === "string" && /<\/?\w/.test(css)) {
44
+ return false;
45
+ }
46
+ return true;
47
+ }
41
48
  function AdvancedPanel({
42
49
  value,
43
50
  onChange,
44
- inheritedValue = value
51
+ inheritedValue = value,
52
+ help
45
53
  }) {
46
54
  const [cssError, setCSSError] = (0, import_element.useState)(null);
47
55
  const customCSS = inheritedValue?.css;
@@ -50,23 +58,23 @@ function AdvancedPanel({
50
58
  ...value,
51
59
  css: newValue
52
60
  });
53
- if (cssError) {
54
- const [transformed] = (0, import_transform_styles.default)(
55
- [{ css: newValue }],
56
- ".for-validation-only"
61
+ if (!validateCSS(newValue)) {
62
+ setCSSError(
63
+ (0, import_i18n.__)("The custom CSS is invalid. Do not use <> markup.")
57
64
  );
58
- if (transformed) {
59
- setCSSError(null);
60
- }
65
+ return;
66
+ }
67
+ if (cssError) {
68
+ setCSSError(null);
61
69
  }
62
70
  }
63
71
  function handleOnBlur(event) {
64
- if (!event?.target?.value) {
65
- setCSSError(null);
72
+ const cssValue = event?.target?.value;
73
+ if (!cssValue || !validateCSS(cssValue)) {
66
74
  return;
67
75
  }
68
76
  const [transformed] = (0, import_transform_styles.default)(
69
- [{ css: event.target.value }],
77
+ [{ css: cssValue }],
70
78
  ".for-validation-only"
71
79
  );
72
80
  setCSSError(
@@ -83,9 +91,14 @@ function AdvancedPanel({
83
91
  onChange: (newValue) => handleOnChange(newValue),
84
92
  onBlur: handleOnBlur,
85
93
  className: "block-editor-global-styles-advanced-panel__custom-css-input",
86
- spellCheck: false
94
+ spellCheck: false,
95
+ help
87
96
  }
88
97
  )
89
98
  ] });
90
99
  }
100
+ // Annotate the CommonJS export names for ESM import in node:
101
+ 0 && (module.exports = {
102
+ validateCSS
103
+ });
91
104
  //# sourceMappingURL=advanced-panel.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/global-styles/advanced-panel.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tTextareaControl,\n\tNotice,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { default as transformStyles } from '../../utils/transform-styles';\n\nexport default function AdvancedPanel( {\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n} ) {\n\t// Custom CSS\n\tconst [ cssError, setCSSError ] = useState( null );\n\tconst customCSS = inheritedValue?.css;\n\tfunction handleOnChange( newValue ) {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\tcss: newValue,\n\t\t} );\n\t\tif ( cssError ) {\n\t\t\t// Check if the new value is valid CSS, and pass a wrapping selector\n\t\t\t// to ensure that `transformStyles` validates the CSS. Note that the\n\t\t\t// wrapping selector here is not used in the actual output of any styles.\n\t\t\tconst [ transformed ] = transformStyles(\n\t\t\t\t[ { css: newValue } ],\n\t\t\t\t'.for-validation-only'\n\t\t\t);\n\t\t\tif ( transformed ) {\n\t\t\t\tsetCSSError( null );\n\t\t\t}\n\t\t}\n\t}\n\tfunction handleOnBlur( event ) {\n\t\tif ( ! event?.target?.value ) {\n\t\t\tsetCSSError( null );\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if the new value is valid CSS, and pass a wrapping selector\n\t\t// to ensure that `transformStyles` validates the CSS. Note that the\n\t\t// wrapping selector here is not used in the actual output of any styles.\n\t\tconst [ transformed ] = transformStyles(\n\t\t\t[ { css: event.target.value } ],\n\t\t\t'.for-validation-only'\n\t\t);\n\n\t\tsetCSSError(\n\t\t\ttransformed === null\n\t\t\t\t? __( 'There is an error with your CSS structure.' )\n\t\t\t\t: null\n\t\t);\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t{ cssError && (\n\t\t\t\t<Notice status=\"error\" onRemove={ () => setCSSError( null ) }>\n\t\t\t\t\t{ cssError }\n\t\t\t\t</Notice>\n\t\t\t) }\n\t\t\t<TextareaControl\n\t\t\t\tlabel={ __( 'Additional CSS' ) }\n\t\t\t\tvalue={ customCSS }\n\t\t\t\tonChange={ ( newValue ) => handleOnChange( newValue ) }\n\t\t\t\tonBlur={ handleOnBlur }\n\t\t\t\tclassName=\"block-editor-global-styles-advanced-panel__custom-css-input\"\n\t\t\t\tspellCheck={ false }\n\t\t\t/>\n\t\t</VStack>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAIO;AACP,qBAAyB;AACzB,kBAAmB;AAKnB,8BAA2C;AAkDzC;AAhDa,SAAR,cAAgC;AAAA,EACtC;AAAA,EACA;AAAA,EACA,iBAAiB;AAClB,GAAI;AAEH,QAAM,CAAE,UAAU,WAAY,QAAI,yBAAU,IAAK;AACjD,QAAM,YAAY,gBAAgB;AAClC,WAAS,eAAgB,UAAW;AACnC,aAAU;AAAA,MACT,GAAG;AAAA,MACH,KAAK;AAAA,IACN,CAAE;AACF,QAAK,UAAW;AAIf,YAAM,CAAE,WAAY,QAAI,wBAAAA;AAAA,QACvB,CAAE,EAAE,KAAK,SAAS,CAAE;AAAA,QACpB;AAAA,MACD;AACA,UAAK,aAAc;AAClB,oBAAa,IAAK;AAAA,MACnB;AAAA,IACD;AAAA,EACD;AACA,WAAS,aAAc,OAAQ;AAC9B,QAAK,CAAE,OAAO,QAAQ,OAAQ;AAC7B,kBAAa,IAAK;AAClB;AAAA,IACD;AAKA,UAAM,CAAE,WAAY,QAAI,wBAAAA;AAAA,MACvB,CAAE,EAAE,KAAK,MAAM,OAAO,MAAM,CAAE;AAAA,MAC9B;AAAA,IACD;AAEA;AAAA,MACC,gBAAgB,WACb,gBAAI,4CAA6C,IACjD;AAAA,IACJ;AAAA,EACD;AAEA,SACC,6CAAC,kBAAAC,sBAAA,EAAO,SAAU,GACf;AAAA,gBACD,4CAAC,4BAAO,QAAO,SAAQ,UAAW,MAAM,YAAa,IAAK,GACvD,oBACH;AAAA,IAED;AAAA,MAAC;AAAA;AAAA,QACA,WAAQ,gBAAI,gBAAiB;AAAA,QAC7B,OAAQ;AAAA,QACR,UAAW,CAAE,aAAc,eAAgB,QAAS;AAAA,QACpD,QAAS;AAAA,QACT,WAAU;AAAA,QACV,YAAa;AAAA;AAAA,IACd;AAAA,KACD;AAEF;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tTextareaControl,\n\tNotice,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { default as transformStyles } from '../../utils/transform-styles';\n\n/**\n * Validates that a CSS string doesn't contain HTML markup.\n * Uses the same validation as the PHP/global styles REST API.\n *\n * @param {string} css The CSS string to validate.\n * @return {boolean} True if the CSS is valid, false otherwise.\n */\nexport function validateCSS( css ) {\n\t// Check for HTML markup.\n\tif ( typeof css === 'string' && /<\\/?\\w/.test( css ) ) {\n\t\treturn false;\n\t}\n\treturn true;\n}\n\nexport default function AdvancedPanel( {\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\thelp,\n} ) {\n\t// Custom CSS\n\tconst [ cssError, setCSSError ] = useState( null );\n\tconst customCSS = inheritedValue?.css;\n\tfunction handleOnChange( newValue ) {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\tcss: newValue,\n\t\t} );\n\n\t\t// Validate immediately on change for quick feedback.\n\t\tif ( ! validateCSS( newValue ) ) {\n\t\t\tsetCSSError(\n\t\t\t\t__( 'The custom CSS is invalid. Do not use <> markup.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\t// Clear HTML markup error if CSS is now valid.\n\t\tif ( cssError ) {\n\t\t\tsetCSSError( null );\n\t\t}\n\t}\n\tfunction handleOnBlur( event ) {\n\t\tconst cssValue = event?.target?.value;\n\n\t\tif ( ! cssValue || ! validateCSS( cssValue ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if the value is valid CSS structure on blur (more expensive check).\n\t\t// Pass a wrapping selector to ensure that `transformStyles` validates the CSS.\n\t\t// Note that the wrapping selector here is not used in the actual output of any styles.\n\t\tconst [ transformed ] = transformStyles(\n\t\t\t[ { css: cssValue } ],\n\t\t\t'.for-validation-only'\n\t\t);\n\n\t\tsetCSSError(\n\t\t\ttransformed === null\n\t\t\t\t? __( 'There is an error with your CSS structure.' )\n\t\t\t\t: null\n\t\t);\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t{ cssError && (\n\t\t\t\t<Notice status=\"error\" onRemove={ () => setCSSError( null ) }>\n\t\t\t\t\t{ cssError }\n\t\t\t\t</Notice>\n\t\t\t) }\n\t\t\t<TextareaControl\n\t\t\t\tlabel={ __( 'Additional CSS' ) }\n\t\t\t\tvalue={ customCSS }\n\t\t\t\tonChange={ ( newValue ) => handleOnChange( newValue ) }\n\t\t\t\tonBlur={ handleOnBlur }\n\t\t\t\tclassName=\"block-editor-global-styles-advanced-panel__custom-css-input\"\n\t\t\t\tspellCheck={ false }\n\t\t\t\thelp={ help }\n\t\t\t/>\n\t\t</VStack>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAIO;AACP,qBAAyB;AACzB,kBAAmB;AAKnB,8BAA2C;AAoEzC;AA3DK,SAAS,YAAa,KAAM;AAElC,MAAK,OAAO,QAAQ,YAAY,SAAS,KAAM,GAAI,GAAI;AACtD,WAAO;AAAA,EACR;AACA,SAAO;AACR;AAEe,SAAR,cAAgC;AAAA,EACtC;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AACD,GAAI;AAEH,QAAM,CAAE,UAAU,WAAY,QAAI,yBAAU,IAAK;AACjD,QAAM,YAAY,gBAAgB;AAClC,WAAS,eAAgB,UAAW;AACnC,aAAU;AAAA,MACT,GAAG;AAAA,MACH,KAAK;AAAA,IACN,CAAE;AAGF,QAAK,CAAE,YAAa,QAAS,GAAI;AAChC;AAAA,YACC,gBAAI,kDAAmD;AAAA,MACxD;AACA;AAAA,IACD;AAGA,QAAK,UAAW;AACf,kBAAa,IAAK;AAAA,IACnB;AAAA,EACD;AACA,WAAS,aAAc,OAAQ;AAC9B,UAAM,WAAW,OAAO,QAAQ;AAEhC,QAAK,CAAE,YAAY,CAAE,YAAa,QAAS,GAAI;AAC9C;AAAA,IACD;AAKA,UAAM,CAAE,WAAY,QAAI,wBAAAA;AAAA,MACvB,CAAE,EAAE,KAAK,SAAS,CAAE;AAAA,MACpB;AAAA,IACD;AAEA;AAAA,MACC,gBAAgB,WACb,gBAAI,4CAA6C,IACjD;AAAA,IACJ;AAAA,EACD;AAEA,SACC,6CAAC,kBAAAC,sBAAA,EAAO,SAAU,GACf;AAAA,gBACD,4CAAC,4BAAO,QAAO,SAAQ,UAAW,MAAM,YAAa,IAAK,GACvD,oBACH;AAAA,IAED;AAAA,MAAC;AAAA;AAAA,QACA,WAAQ,gBAAI,gBAAiB;AAAA,QAC7B,OAAQ;AAAA,QACR,UAAW,CAAE,aAAc,eAAgB,QAAS;AAAA,QACpD,QAAS;AAAA,QACT,WAAU;AAAA,QACV,YAAa;AAAA,QACb;AAAA;AAAA,IACD;AAAA,KACD;AAEF;",
6
6
  "names": ["transformStyles", "VStack"]
7
7
  }
@@ -101,7 +101,7 @@ var LabeledColorIndicator = ({ indicator, label }) => /* @__PURE__ */ (0, import
101
101
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalZStack, { isLayered: false, offset: -8, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Flex, { expanded: false, children: indicator === "unset" || !indicator ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.ColorIndicator, { className: "block-editor-duotone-control__unset-indicator" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.DuotoneSwatch, { values: indicator }) }) }),
102
102
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.FlexItem, { title: label, children: label })
103
103
  ] });
104
- var renderToggle = (duotone, resetDuotone) => ({ onToggle, isOpen }) => {
104
+ var renderToggle = (duotone, resetDuotone) => function Toggle({ onToggle, isOpen }) {
105
105
  const duotoneButtonRef = (0, import_element.useRef)(void 0);
106
106
  const toggleProps = {
107
107
  onClick: onToggle,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/global-styles/filters-panel.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalHStack as HStack,\n\t__experimentalZStack as ZStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tMenuGroup,\n\tColorIndicator,\n\tDuotonePicker,\n\tDuotoneSwatch,\n\tDropdown,\n\tFlex,\n\tFlexItem,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useCallback, useMemo, useRef } from '@wordpress/element';\nimport { reset as resetIcon } from '@wordpress/icons';\nimport { getValueFromVariable } from '@wordpress/global-styles-engine';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst EMPTY_ARRAY = [];\nfunction useMultiOriginColorPresets(\n\tsettings,\n\t{ presetSetting, defaultSetting }\n) {\n\tconst disableDefault = ! settings?.color?.[ defaultSetting ];\n\tconst userPresets =\n\t\tsettings?.color?.[ presetSetting ]?.custom || EMPTY_ARRAY;\n\tconst themePresets =\n\t\tsettings?.color?.[ presetSetting ]?.theme || EMPTY_ARRAY;\n\tconst defaultPresets =\n\t\tsettings?.color?.[ presetSetting ]?.default || EMPTY_ARRAY;\n\treturn useMemo(\n\t\t() => [\n\t\t\t...userPresets,\n\t\t\t...themePresets,\n\t\t\t...( disableDefault ? EMPTY_ARRAY : defaultPresets ),\n\t\t],\n\t\t[ disableDefault, userPresets, themePresets, defaultPresets ]\n\t);\n}\n\nexport function useHasFiltersPanel( settings ) {\n\treturn useHasDuotoneControl( settings );\n}\n\nfunction useHasDuotoneControl( settings ) {\n\treturn (\n\t\tsettings.color.customDuotone ||\n\t\tsettings.color.defaultDuotone ||\n\t\tsettings.color.duotone.length > 0\n\t);\n}\n\nfunction FiltersToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ _x( 'Filters', 'Name for applying graphical effects' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tduotone: true,\n};\n\nconst popoverProps = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-duotone-control__popover',\n\theaderTitle: __( 'Duotone' ),\n};\n\nconst LabeledColorIndicator = ( { indicator, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t<Flex expanded={ false }>\n\t\t\t\t{ indicator === 'unset' || ! indicator ? (\n\t\t\t\t\t<ColorIndicator className=\"block-editor-duotone-control__unset-indicator\" />\n\t\t\t\t) : (\n\t\t\t\t\t<DuotoneSwatch values={ indicator } />\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</ZStack>\n\t\t<FlexItem title={ label }>{ label }</FlexItem>\n\t</HStack>\n);\n\nconst renderToggle =\n\t( duotone, resetDuotone ) =>\n\t( { onToggle, isOpen } ) => {\n\t\tconst duotoneButtonRef = useRef( undefined );\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles-filters-panel__dropdown-toggle',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\t'aria-expanded': isOpen,\n\t\t\tref: duotoneButtonRef,\n\t\t};\n\n\t\tconst removeButtonProps = {\n\t\t\tonClick: () => {\n\t\t\t\tif ( isOpen ) {\n\t\t\t\t\tonToggle();\n\t\t\t\t}\n\t\t\t\tresetDuotone();\n\t\t\t\t// Return focus to parent button.\n\t\t\t\tduotoneButtonRef.current?.focus();\n\t\t\t},\n\t\t\tclassName: 'block-editor-panel-duotone-settings__reset',\n\t\t\tlabel: __( 'Reset' ),\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button __next40pxDefaultSize { ...toggleProps }>\n\t\t\t\t\t<LabeledColorIndicator\n\t\t\t\t\t\tindicator={ duotone }\n\t\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\t/>\n\t\t\t\t</Button>\n\t\t\t\t{ duotone && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\t\t{ ...removeButtonProps }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\nexport default function FiltersPanel( {\n\tas: Wrapper = FiltersToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Duotone\n\tconst hasDuotoneEnabled = useHasDuotoneControl( settings );\n\tconst duotonePalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'duotone',\n\t\tdefaultSetting: 'defaultDuotone',\n\t} );\n\tconst colorPalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'palette',\n\t\tdefaultSetting: 'defaultPalette',\n\t} );\n\tconst duotone = decodeValue( inheritedValue?.filter?.duotone );\n\tconst setDuotone = ( newValue ) => {\n\t\tconst duotonePreset = duotonePalette.find( ( { colors } ) => {\n\t\t\treturn colors === newValue;\n\t\t} );\n\t\tconst duotoneValue = duotonePreset\n\t\t\t? `var:preset|duotone|${ duotonePreset.slug }`\n\t\t\t: newValue;\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'filter', 'duotone' ], duotoneValue )\n\t\t);\n\t};\n\tconst hasDuotone = () => !! value?.filter?.duotone;\n\tconst resetDuotone = () => setDuotone( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tfilter: {\n\t\t\t\t...previousValue.filter,\n\t\t\t\tduotone: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasDuotoneEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\thasValue={ hasDuotone }\n\t\t\t\t\tonDeselect={ resetDuotone }\n\t\t\t\t\tisShownByDefault={ defaultControls.duotone }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-filters-panel__dropdown\"\n\t\t\t\t\t\trenderToggle={ renderToggle( duotone, resetDuotone ) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<DropdownContentWrapper paddingSize=\"small\">\n\t\t\t\t\t\t\t\t<MenuGroup label={ __( 'Duotone' ) }>\n\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\t\t\t\t\t// TODO: Re-enable both when custom colors are supported for block-level styles.\n\t\t\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t\t\t\tdisableCustomDuotone\n\t\t\t\t\t\t\t\t\t\tvalue={ duotone }\n\t\t\t\t\t\t\t\t\t\tonChange={ setDuotone }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalHStack as HStack,\n\t__experimentalZStack as ZStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tMenuGroup,\n\tColorIndicator,\n\tDuotonePicker,\n\tDuotoneSwatch,\n\tDropdown,\n\tFlex,\n\tFlexItem,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useCallback, useMemo, useRef } from '@wordpress/element';\nimport { reset as resetIcon } from '@wordpress/icons';\nimport { getValueFromVariable } from '@wordpress/global-styles-engine';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst EMPTY_ARRAY = [];\nfunction useMultiOriginColorPresets(\n\tsettings,\n\t{ presetSetting, defaultSetting }\n) {\n\tconst disableDefault = ! settings?.color?.[ defaultSetting ];\n\tconst userPresets =\n\t\tsettings?.color?.[ presetSetting ]?.custom || EMPTY_ARRAY;\n\tconst themePresets =\n\t\tsettings?.color?.[ presetSetting ]?.theme || EMPTY_ARRAY;\n\tconst defaultPresets =\n\t\tsettings?.color?.[ presetSetting ]?.default || EMPTY_ARRAY;\n\treturn useMemo(\n\t\t() => [\n\t\t\t...userPresets,\n\t\t\t...themePresets,\n\t\t\t...( disableDefault ? EMPTY_ARRAY : defaultPresets ),\n\t\t],\n\t\t[ disableDefault, userPresets, themePresets, defaultPresets ]\n\t);\n}\n\nexport function useHasFiltersPanel( settings ) {\n\treturn useHasDuotoneControl( settings );\n}\n\nfunction useHasDuotoneControl( settings ) {\n\treturn (\n\t\tsettings.color.customDuotone ||\n\t\tsettings.color.defaultDuotone ||\n\t\tsettings.color.duotone.length > 0\n\t);\n}\n\nfunction FiltersToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ _x( 'Filters', 'Name for applying graphical effects' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tduotone: true,\n};\n\nconst popoverProps = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-duotone-control__popover',\n\theaderTitle: __( 'Duotone' ),\n};\n\nconst LabeledColorIndicator = ( { indicator, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t<Flex expanded={ false }>\n\t\t\t\t{ indicator === 'unset' || ! indicator ? (\n\t\t\t\t\t<ColorIndicator className=\"block-editor-duotone-control__unset-indicator\" />\n\t\t\t\t) : (\n\t\t\t\t\t<DuotoneSwatch values={ indicator } />\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</ZStack>\n\t\t<FlexItem title={ label }>{ label }</FlexItem>\n\t</HStack>\n);\n\nconst renderToggle = ( duotone, resetDuotone ) =>\n\tfunction Toggle( { onToggle, isOpen } ) {\n\t\tconst duotoneButtonRef = useRef( undefined );\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles-filters-panel__dropdown-toggle',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\t'aria-expanded': isOpen,\n\t\t\tref: duotoneButtonRef,\n\t\t};\n\n\t\tconst removeButtonProps = {\n\t\t\tonClick: () => {\n\t\t\t\tif ( isOpen ) {\n\t\t\t\t\tonToggle();\n\t\t\t\t}\n\t\t\t\tresetDuotone();\n\t\t\t\t// Return focus to parent button.\n\t\t\t\tduotoneButtonRef.current?.focus();\n\t\t\t},\n\t\t\tclassName: 'block-editor-panel-duotone-settings__reset',\n\t\t\tlabel: __( 'Reset' ),\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button __next40pxDefaultSize { ...toggleProps }>\n\t\t\t\t\t<LabeledColorIndicator\n\t\t\t\t\t\tindicator={ duotone }\n\t\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\t/>\n\t\t\t\t</Button>\n\t\t\t\t{ duotone && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\t\t{ ...removeButtonProps }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\nexport default function FiltersPanel( {\n\tas: Wrapper = FiltersToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Duotone\n\tconst hasDuotoneEnabled = useHasDuotoneControl( settings );\n\tconst duotonePalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'duotone',\n\t\tdefaultSetting: 'defaultDuotone',\n\t} );\n\tconst colorPalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'palette',\n\t\tdefaultSetting: 'defaultPalette',\n\t} );\n\tconst duotone = decodeValue( inheritedValue?.filter?.duotone );\n\tconst setDuotone = ( newValue ) => {\n\t\tconst duotonePreset = duotonePalette.find( ( { colors } ) => {\n\t\t\treturn colors === newValue;\n\t\t} );\n\t\tconst duotoneValue = duotonePreset\n\t\t\t? `var:preset|duotone|${ duotonePreset.slug }`\n\t\t\t: newValue;\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'filter', 'duotone' ], duotoneValue )\n\t\t);\n\t};\n\tconst hasDuotone = () => !! value?.filter?.duotone;\n\tconst resetDuotone = () => setDuotone( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tfilter: {\n\t\t\t\t...previousValue.filter,\n\t\t\t\tduotone: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasDuotoneEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\thasValue={ hasDuotone }\n\t\t\t\t\tonDeselect={ resetDuotone }\n\t\t\t\t\tisShownByDefault={ defaultControls.duotone }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-filters-panel__dropdown\"\n\t\t\t\t\t\trenderToggle={ renderToggle( duotone, resetDuotone ) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<DropdownContentWrapper paddingSize=\"small\">\n\t\t\t\t\t\t\t\t<MenuGroup label={ __( 'Duotone' ) }>\n\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\t\t\t\t\t// TODO: Re-enable both when custom colors are supported for block-level styles.\n\t\t\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t\t\t\tdisableCustomDuotone\n\t\t\t\t\t\t\t\t\t\tvalue={ duotone }\n\t\t\t\t\t\t\t\t\t\tonChange={ setDuotone }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["ToolsPanel", "HStack", "ZStack", "clsx", "resetIcon", "ToolsPanelItem", "DropdownContentWrapper"]
7
7
  }
@@ -142,7 +142,7 @@ function ShadowPopover({ shadow, onShadowChange, settings }) {
142
142
  );
143
143
  }
144
144
  function renderShadowToggle(shadow, onShadowChange) {
145
- return ({ onToggle, isOpen }) => {
145
+ return function ShadowToggle({ onToggle, isOpen }) {
146
146
  const shadowButtonRef = (0, import_element.useRef)(void 0);
147
147
  const toggleProps = {
148
148
  onClick: onToggle,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/global-styles/shadow-panel-components.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n\tFlexItem,\n\tDropdown,\n\tComposite,\n\tTooltip,\n} from '@wordpress/components';\nimport { useMemo, useRef } from '@wordpress/element';\nimport { shadow as shadowIcon, Icon, check, reset } from '@wordpress/icons';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array}\n */\nconst EMPTY_ARRAY = [];\n\nexport function ShadowPopoverContainer( { shadow, onShadowChange, settings } ) {\n\tconst shadows = useShadowPresets( settings );\n\n\treturn (\n\t\t<div className=\"block-editor-global-styles__shadow-popover-container\">\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<Heading level={ 5 }>{ __( 'Drop shadow' ) }</Heading>\n\t\t\t\t<ShadowPresets\n\t\t\t\t\tpresets={ shadows }\n\t\t\t\t\tactiveShadow={ shadow }\n\t\t\t\t\tonSelect={ onShadowChange }\n\t\t\t\t/>\n\t\t\t\t<div className=\"block-editor-global-styles__clear-shadow\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => onShadowChange( undefined ) }\n\t\t\t\t\t\tdisabled={ ! shadow }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Clear' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport function ShadowPresets( { presets, activeShadow, onSelect } ) {\n\treturn ! presets ? null : (\n\t\t<Composite\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-global-styles__shadow__list\"\n\t\t\taria-label={ __( 'Drop shadows' ) }\n\t\t>\n\t\t\t{ presets.map( ( { name, slug, shadow } ) => (\n\t\t\t\t<ShadowIndicator\n\t\t\t\t\tkey={ slug }\n\t\t\t\t\tlabel={ name }\n\t\t\t\t\tisActive={ shadow === activeShadow }\n\t\t\t\t\ttype={ slug === 'unset' ? 'unset' : 'preset' }\n\t\t\t\t\tonSelect={ () =>\n\t\t\t\t\t\tonSelect( shadow === activeShadow ? undefined : shadow )\n\t\t\t\t\t}\n\t\t\t\t\tshadow={ shadow }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nexport function ShadowIndicator( { type, label, isActive, onSelect, shadow } ) {\n\treturn (\n\t\t<Tooltip text={ label }>\n\t\t\t<Composite.Item\n\t\t\t\trole=\"option\"\n\t\t\t\taria-label={ label }\n\t\t\t\taria-selected={ isActive }\n\t\t\t\tclassName={ clsx( 'block-editor-global-styles__shadow__item', {\n\t\t\t\t\t'is-active': isActive,\n\t\t\t\t} ) }\n\t\t\t\trender={\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-global-styles__shadow-indicator',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tunset: type === 'unset',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonClick={ onSelect }\n\t\t\t\t\t\tstyle={ { boxShadow: shadow } }\n\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isActive && <Icon icon={ check } /> }\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t/>\n\t\t</Tooltip>\n\t);\n}\n\nexport function ShadowPopover( { shadow, onShadowChange, settings } ) {\n\tconst popoverProps = {\n\t\tplacement: 'left-start',\n\t\toffset: 36,\n\t\tshift: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tclassName=\"block-editor-global-styles__shadow-dropdown\"\n\t\t\trenderToggle={ renderShadowToggle( shadow, onShadowChange ) }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper paddingSize=\"medium\">\n\t\t\t\t\t<ShadowPopoverContainer\n\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\tonShadowChange={ onShadowChange }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction renderShadowToggle( shadow, onShadowChange ) {\n\treturn ( { onToggle, isOpen } ) => {\n\t\tconst shadowButtonRef = useRef( undefined );\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles__shadow-dropdown-toggle',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\t'aria-expanded': isOpen,\n\t\t\tref: shadowButtonRef,\n\t\t};\n\n\t\tconst removeButtonProps = {\n\t\t\tonClick: () => {\n\t\t\t\tif ( isOpen ) {\n\t\t\t\t\tonToggle();\n\t\t\t\t}\n\t\t\t\tonShadowChange( undefined );\n\t\t\t\t// Return focus to parent button.\n\t\t\t\tshadowButtonRef.current?.focus();\n\t\t\t},\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles__shadow-editor__remove-button',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\tlabel: __( 'Remove' ),\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button __next40pxDefaultSize { ...toggleProps }>\n\t\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles__toggle-icon\"\n\t\t\t\t\t\t\ticon={ shadowIcon }\n\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<FlexItem>{ __( 'Drop shadow' ) }</FlexItem>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Button>\n\t\t\t\t{ !! shadow && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\ticon={ reset }\n\t\t\t\t\t\t{ ...removeButtonProps }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n}\n\nexport function useShadowPresets( settings ) {\n\treturn useMemo( () => {\n\t\tif ( ! settings?.shadow ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\n\t\tconst defaultPresetsEnabled = settings?.shadow?.defaultPresets;\n\t\tconst {\n\t\t\tdefault: defaultShadows,\n\t\t\ttheme: themeShadows,\n\t\t\tcustom: customShadows,\n\t\t} = settings?.shadow?.presets ?? {};\n\t\tconst unsetShadow = {\n\t\t\tname: __( 'Unset' ),\n\t\t\tslug: 'unset',\n\t\t\tshadow: 'none',\n\t\t};\n\n\t\tconst shadowPresets = [\n\t\t\t...( ( defaultPresetsEnabled && defaultShadows ) || EMPTY_ARRAY ),\n\t\t\t...( themeShadows || EMPTY_ARRAY ),\n\t\t\t...( customShadows || EMPTY_ARRAY ),\n\t\t];\n\t\tif ( shadowPresets.length ) {\n\t\t\tshadowPresets.unshift( unsetShadow );\n\t\t}\n\n\t\treturn shadowPresets;\n\t}, [ settings ] );\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n\tFlexItem,\n\tDropdown,\n\tComposite,\n\tTooltip,\n} from '@wordpress/components';\nimport { useMemo, useRef } from '@wordpress/element';\nimport { shadow as shadowIcon, Icon, check, reset } from '@wordpress/icons';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array}\n */\nconst EMPTY_ARRAY = [];\n\nexport function ShadowPopoverContainer( { shadow, onShadowChange, settings } ) {\n\tconst shadows = useShadowPresets( settings );\n\n\treturn (\n\t\t<div className=\"block-editor-global-styles__shadow-popover-container\">\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<Heading level={ 5 }>{ __( 'Drop shadow' ) }</Heading>\n\t\t\t\t<ShadowPresets\n\t\t\t\t\tpresets={ shadows }\n\t\t\t\t\tactiveShadow={ shadow }\n\t\t\t\t\tonSelect={ onShadowChange }\n\t\t\t\t/>\n\t\t\t\t<div className=\"block-editor-global-styles__clear-shadow\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => onShadowChange( undefined ) }\n\t\t\t\t\t\tdisabled={ ! shadow }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Clear' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport function ShadowPresets( { presets, activeShadow, onSelect } ) {\n\treturn ! presets ? null : (\n\t\t<Composite\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-global-styles__shadow__list\"\n\t\t\taria-label={ __( 'Drop shadows' ) }\n\t\t>\n\t\t\t{ presets.map( ( { name, slug, shadow } ) => (\n\t\t\t\t<ShadowIndicator\n\t\t\t\t\tkey={ slug }\n\t\t\t\t\tlabel={ name }\n\t\t\t\t\tisActive={ shadow === activeShadow }\n\t\t\t\t\ttype={ slug === 'unset' ? 'unset' : 'preset' }\n\t\t\t\t\tonSelect={ () =>\n\t\t\t\t\t\tonSelect( shadow === activeShadow ? undefined : shadow )\n\t\t\t\t\t}\n\t\t\t\t\tshadow={ shadow }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nexport function ShadowIndicator( { type, label, isActive, onSelect, shadow } ) {\n\treturn (\n\t\t<Tooltip text={ label }>\n\t\t\t<Composite.Item\n\t\t\t\trole=\"option\"\n\t\t\t\taria-label={ label }\n\t\t\t\taria-selected={ isActive }\n\t\t\t\tclassName={ clsx( 'block-editor-global-styles__shadow__item', {\n\t\t\t\t\t'is-active': isActive,\n\t\t\t\t} ) }\n\t\t\t\trender={\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-global-styles__shadow-indicator',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tunset: type === 'unset',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonClick={ onSelect }\n\t\t\t\t\t\tstyle={ { boxShadow: shadow } }\n\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isActive && <Icon icon={ check } /> }\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t/>\n\t\t</Tooltip>\n\t);\n}\n\nexport function ShadowPopover( { shadow, onShadowChange, settings } ) {\n\tconst popoverProps = {\n\t\tplacement: 'left-start',\n\t\toffset: 36,\n\t\tshift: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tclassName=\"block-editor-global-styles__shadow-dropdown\"\n\t\t\trenderToggle={ renderShadowToggle( shadow, onShadowChange ) }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper paddingSize=\"medium\">\n\t\t\t\t\t<ShadowPopoverContainer\n\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\tonShadowChange={ onShadowChange }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction renderShadowToggle( shadow, onShadowChange ) {\n\treturn function ShadowToggle( { onToggle, isOpen } ) {\n\t\tconst shadowButtonRef = useRef( undefined );\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles__shadow-dropdown-toggle',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\t'aria-expanded': isOpen,\n\t\t\tref: shadowButtonRef,\n\t\t};\n\n\t\tconst removeButtonProps = {\n\t\t\tonClick: () => {\n\t\t\t\tif ( isOpen ) {\n\t\t\t\t\tonToggle();\n\t\t\t\t}\n\t\t\t\tonShadowChange( undefined );\n\t\t\t\t// Return focus to parent button.\n\t\t\t\tshadowButtonRef.current?.focus();\n\t\t\t},\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles__shadow-editor__remove-button',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\tlabel: __( 'Remove' ),\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button __next40pxDefaultSize { ...toggleProps }>\n\t\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles__toggle-icon\"\n\t\t\t\t\t\t\ticon={ shadowIcon }\n\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<FlexItem>{ __( 'Drop shadow' ) }</FlexItem>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Button>\n\t\t\t\t{ !! shadow && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\ticon={ reset }\n\t\t\t\t\t\t{ ...removeButtonProps }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n}\n\nexport function useShadowPresets( settings ) {\n\treturn useMemo( () => {\n\t\tif ( ! settings?.shadow ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\n\t\tconst defaultPresetsEnabled = settings?.shadow?.defaultPresets;\n\t\tconst {\n\t\t\tdefault: defaultShadows,\n\t\t\ttheme: themeShadows,\n\t\t\tcustom: customShadows,\n\t\t} = settings?.shadow?.presets ?? {};\n\t\tconst unsetShadow = {\n\t\t\tname: __( 'Unset' ),\n\t\t\tslug: 'unset',\n\t\t\tshadow: 'none',\n\t\t};\n\n\t\tconst shadowPresets = [\n\t\t\t...( ( defaultPresetsEnabled && defaultShadows ) || EMPTY_ARRAY ),\n\t\t\t...( themeShadows || EMPTY_ARRAY ),\n\t\t\t...( customShadows || EMPTY_ARRAY ),\n\t\t];\n\t\tif ( shadowPresets.length ) {\n\t\t\tshadowPresets.unshift( unsetShadow );\n\t\t}\n\n\t\treturn shadowPresets;\n\t}, [ settings ] );\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["VStack", "Heading", "clsx", "DropdownContentWrapper", "HStack", "shadowIcon"]
7
7
  }
@@ -25,7 +25,7 @@ __export(with_gradient_exports, {
25
25
  module.exports = __toCommonJS(with_gradient_exports);
26
26
  var import_use_gradient = require("./use-gradient.cjs");
27
27
  var import_jsx_runtime = require("react/jsx-runtime");
28
- var withGradient = (WrappedComponent) => (props) => {
28
+ var withGradient = (WrappedComponent) => function WithGradient(props) {
29
29
  const { gradientValue } = (0, import_use_gradient.__experimentalUseGradient)();
30
30
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WrappedComponent, { ...props, gradientValue });
31
31
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/gradients/with-gradient.js"],
4
- "sourcesContent": ["/**\n * Internal dependencies\n */\nimport { __experimentalUseGradient } from './use-gradient';\n\nexport const withGradient = ( WrappedComponent ) => ( props ) => {\n\tconst { gradientValue } = __experimentalUseGradient();\n\treturn <WrappedComponent { ...props } gradientValue={ gradientValue } />;\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAA0C;AAIlC;AAFD,IAAM,eAAe,CAAE,qBAAsB,CAAE,UAAW;AAChE,QAAM,EAAE,cAAc,QAAI,+CAA0B;AACpD,SAAO,4CAAC,oBAAmB,GAAG,OAAQ,eAAgC;AACvE;",
4
+ "sourcesContent": ["/**\n * Internal dependencies\n */\nimport { __experimentalUseGradient } from './use-gradient';\n\nexport const withGradient = ( WrappedComponent ) =>\n\tfunction WithGradient( props ) {\n\t\tconst { gradientValue } = __experimentalUseGradient();\n\t\treturn (\n\t\t\t<WrappedComponent { ...props } gradientValue={ gradientValue } />\n\t\t);\n\t};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAA0C;AAMvC;AAJI,IAAM,eAAe,CAAE,qBAC7B,SAAS,aAAc,OAAQ;AAC9B,QAAM,EAAE,cAAc,QAAI,+CAA0B;AACpD,SACC,4CAAC,oBAAmB,GAAG,OAAQ,eAAgC;AAEjE;",
6
6
  "names": []
7
7
  }