@wordpress/components 23.6.0 → 23.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/CHANGELOG.md +32 -4
  2. package/build/angle-picker-control/angle-circle.js +1 -4
  3. package/build/angle-picker-control/angle-circle.js.map +1 -1
  4. package/build/angle-picker-control/index.js +10 -22
  5. package/build/angle-picker-control/index.js.map +1 -1
  6. package/build/angle-picker-control/styles/angle-picker-control-styles.js +24 -15
  7. package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  8. package/build/animate/index.js +27 -19
  9. package/build/animate/index.js.map +1 -1
  10. package/build/animate/types.js.map +1 -0
  11. package/build/box-control/axial-input-controls.js.map +1 -1
  12. package/build/color-picker/color-input.js +0 -4
  13. package/build/color-picker/color-input.js.map +1 -1
  14. package/build/color-picker/component.js +5 -4
  15. package/build/color-picker/component.js.map +1 -1
  16. package/build/color-picker/hex-input.js.map +1 -1
  17. package/build/color-picker/hsl-input.js.map +1 -1
  18. package/build/color-picker/input-with-slider.js.map +1 -1
  19. package/build/color-picker/legacy-adapter.js.map +1 -1
  20. package/build/color-picker/picker.js.map +1 -1
  21. package/build/color-picker/rgb-input.js.map +1 -1
  22. package/build/color-picker/use-deprecated-props.js.map +1 -1
  23. package/build/custom-gradient-picker/constants.js +1 -1
  24. package/build/custom-gradient-picker/constants.js.map +1 -1
  25. package/build/custom-gradient-picker/gradient-bar/constants.js.map +1 -1
  26. package/build/custom-gradient-picker/gradient-bar/control-points.js +9 -5
  27. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  28. package/build/custom-gradient-picker/gradient-bar/index.js +14 -9
  29. package/build/custom-gradient-picker/gradient-bar/index.js.map +1 -1
  30. package/build/custom-gradient-picker/gradient-bar/utils.js +34 -54
  31. package/build/custom-gradient-picker/gradient-bar/utils.js.map +1 -1
  32. package/build/custom-gradient-picker/index.js +45 -16
  33. package/build/custom-gradient-picker/index.js.map +1 -1
  34. package/build/custom-gradient-picker/serializer.js +14 -4
  35. package/build/custom-gradient-picker/serializer.js.map +1 -1
  36. package/build/custom-gradient-picker/styles/custom-gradient-picker-styles.js +6 -6
  37. package/build/custom-gradient-picker/styles/custom-gradient-picker-styles.js.map +1 -1
  38. package/build/custom-gradient-picker/types.js +6 -0
  39. package/build/custom-gradient-picker/types.js.map +1 -0
  40. package/build/custom-gradient-picker/utils.js +17 -12
  41. package/build/custom-gradient-picker/utils.js.map +1 -1
  42. package/build/{color-list-picker → duotone-picker/color-list-picker}/index.js +5 -5
  43. package/build/duotone-picker/color-list-picker/index.js.map +1 -0
  44. package/build/duotone-picker/color-list-picker/types.js +6 -0
  45. package/build/duotone-picker/color-list-picker/types.js.map +1 -0
  46. package/build/duotone-picker/custom-duotone-bar.js.map +1 -1
  47. package/build/duotone-picker/duotone-picker.js +39 -2
  48. package/build/duotone-picker/duotone-picker.js.map +1 -1
  49. package/build/duotone-picker/duotone-swatch.js.map +1 -1
  50. package/build/duotone-picker/index.js.map +1 -1
  51. package/build/duotone-picker/types.js +6 -0
  52. package/build/duotone-picker/types.js.map +1 -0
  53. package/build/duotone-picker/utils.js +13 -11
  54. package/build/duotone-picker/utils.js.map +1 -1
  55. package/build/form-token-field/index.js +9 -3
  56. package/build/form-token-field/index.js.map +1 -1
  57. package/build/gradient-picker/index.js +61 -9
  58. package/build/gradient-picker/index.js.map +1 -1
  59. package/build/gradient-picker/types.js +6 -0
  60. package/build/gradient-picker/types.js.map +1 -0
  61. package/build/palette-edit/index.js +1 -2
  62. package/build/palette-edit/index.js.map +1 -1
  63. package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
  64. package/build/sandbox/index.native.js +80 -67
  65. package/build/sandbox/index.native.js.map +1 -1
  66. package/build/tab-panel/index.js +1 -1
  67. package/build/tab-panel/index.js.map +1 -1
  68. package/build/tools-panel/tools-panel/hook.js +45 -6
  69. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  70. package/build/utils/input/input-control.js +1 -1
  71. package/build/utils/input/input-control.js.map +1 -1
  72. package/build-module/angle-picker-control/angle-circle.js +1 -4
  73. package/build-module/angle-picker-control/angle-circle.js.map +1 -1
  74. package/build-module/angle-picker-control/index.js +12 -21
  75. package/build-module/angle-picker-control/index.js.map +1 -1
  76. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +20 -13
  77. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  78. package/build-module/animate/index.js +25 -17
  79. package/build-module/animate/index.js.map +1 -1
  80. package/build-module/box-control/axial-input-controls.js.map +1 -1
  81. package/build-module/color-picker/color-input.js +0 -4
  82. package/build-module/color-picker/color-input.js.map +1 -1
  83. package/build-module/color-picker/component.js +3 -3
  84. package/build-module/color-picker/component.js.map +1 -1
  85. package/build-module/color-picker/hex-input.js.map +1 -1
  86. package/build-module/color-picker/hsl-input.js.map +1 -1
  87. package/build-module/color-picker/input-with-slider.js.map +1 -1
  88. package/build-module/color-picker/legacy-adapter.js.map +1 -1
  89. package/build-module/color-picker/picker.js +4 -0
  90. package/build-module/color-picker/picker.js.map +1 -1
  91. package/build-module/color-picker/rgb-input.js.map +1 -1
  92. package/build-module/color-picker/use-deprecated-props.js.map +1 -1
  93. package/build-module/custom-gradient-picker/constants.js +1 -1
  94. package/build-module/custom-gradient-picker/constants.js.map +1 -1
  95. package/build-module/custom-gradient-picker/gradient-bar/constants.js.map +1 -1
  96. package/build-module/custom-gradient-picker/gradient-bar/control-points.js +9 -4
  97. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  98. package/build-module/custom-gradient-picker/gradient-bar/index.js +14 -8
  99. package/build-module/custom-gradient-picker/gradient-bar/index.js.map +1 -1
  100. package/build-module/custom-gradient-picker/gradient-bar/utils.js +34 -54
  101. package/build-module/custom-gradient-picker/gradient-bar/utils.js.map +1 -1
  102. package/build-module/custom-gradient-picker/index.js +44 -17
  103. package/build-module/custom-gradient-picker/index.js.map +1 -1
  104. package/build-module/custom-gradient-picker/serializer.js +14 -4
  105. package/build-module/custom-gradient-picker/serializer.js.map +1 -1
  106. package/build-module/custom-gradient-picker/styles/custom-gradient-picker-styles.js +6 -6
  107. package/build-module/custom-gradient-picker/styles/custom-gradient-picker-styles.js.map +1 -1
  108. package/build-module/custom-gradient-picker/types.js +2 -0
  109. package/build-module/custom-gradient-picker/utils.js +17 -12
  110. package/build-module/custom-gradient-picker/utils.js.map +1 -1
  111. package/build-module/{color-list-picker → duotone-picker/color-list-picker}/index.js +5 -5
  112. package/build-module/duotone-picker/color-list-picker/index.js.map +1 -0
  113. package/build-module/duotone-picker/color-list-picker/types.js +2 -0
  114. package/build-module/duotone-picker/color-list-picker/types.js.map +1 -0
  115. package/build-module/duotone-picker/custom-duotone-bar.js.map +1 -1
  116. package/build-module/duotone-picker/duotone-picker.js +38 -2
  117. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  118. package/build-module/duotone-picker/duotone-swatch.js.map +1 -1
  119. package/build-module/duotone-picker/index.js.map +1 -1
  120. package/build-module/duotone-picker/types.js +2 -0
  121. package/build-module/duotone-picker/types.js.map +1 -0
  122. package/build-module/duotone-picker/utils.js +17 -11
  123. package/build-module/duotone-picker/utils.js.map +1 -1
  124. package/build-module/form-token-field/index.js +9 -4
  125. package/build-module/form-token-field/index.js.map +1 -1
  126. package/build-module/gradient-picker/index.js +61 -10
  127. package/build-module/gradient-picker/index.js.map +1 -1
  128. package/build-module/gradient-picker/types.js +2 -0
  129. package/build-module/gradient-picker/types.js.map +1 -0
  130. package/build-module/palette-edit/index.js +1 -2
  131. package/build-module/palette-edit/index.js.map +1 -1
  132. package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
  133. package/build-module/sandbox/index.native.js +70 -58
  134. package/build-module/sandbox/index.native.js.map +1 -1
  135. package/build-module/tab-panel/index.js +2 -2
  136. package/build-module/tab-panel/index.js.map +1 -1
  137. package/build-module/tools-panel/tools-panel/hook.js +45 -6
  138. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  139. package/build-module/utils/input/input-control.js +1 -1
  140. package/build-module/utils/input/input-control.js.map +1 -1
  141. package/build-style/style-rtl.css +40 -28
  142. package/build-style/style.css +42 -28
  143. package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -1
  144. package/build-types/angle-picker-control/index.d.ts.map +1 -1
  145. package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts +5 -0
  146. package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts.map +1 -1
  147. package/build-types/animate/index.d.ts +27 -22
  148. package/build-types/animate/index.d.ts.map +1 -1
  149. package/build-types/animate/stories/index.d.ts +18 -0
  150. package/build-types/animate/stories/index.d.ts.map +1 -0
  151. package/build-types/animate/types.d.ts +30 -0
  152. package/build-types/animate/types.d.ts.map +1 -0
  153. package/build-types/color-picker/color-input.d.ts +1 -11
  154. package/build-types/color-picker/color-input.d.ts.map +1 -1
  155. package/build-types/color-picker/component.d.ts +8 -9
  156. package/build-types/color-picker/component.d.ts.map +1 -1
  157. package/build-types/color-picker/hex-input.d.ts +1 -10
  158. package/build-types/color-picker/hex-input.d.ts.map +1 -1
  159. package/build-types/color-picker/hsl-input.d.ts +1 -10
  160. package/build-types/color-picker/hsl-input.d.ts.map +1 -1
  161. package/build-types/color-picker/input-with-slider.d.ts +1 -9
  162. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  163. package/build-types/color-picker/legacy-adapter.d.ts +1 -3
  164. package/build-types/color-picker/legacy-adapter.d.ts.map +1 -1
  165. package/build-types/color-picker/picker.d.ts +4 -7
  166. package/build-types/color-picker/picker.d.ts.map +1 -1
  167. package/build-types/color-picker/rgb-input.d.ts +1 -10
  168. package/build-types/color-picker/rgb-input.d.ts.map +1 -1
  169. package/build-types/color-picker/stories/index.d.ts +19 -0
  170. package/build-types/color-picker/stories/index.d.ts.map +1 -0
  171. package/build-types/color-picker/test/index.d.ts +2 -0
  172. package/build-types/color-picker/test/index.d.ts.map +1 -0
  173. package/build-types/color-picker/types.d.ts +105 -1
  174. package/build-types/color-picker/types.d.ts.map +1 -1
  175. package/build-types/color-picker/use-deprecated-props.d.ts +1 -44
  176. package/build-types/color-picker/use-deprecated-props.d.ts.map +1 -1
  177. package/build-types/custom-gradient-picker/constants.d.ts +8 -8
  178. package/build-types/custom-gradient-picker/constants.d.ts.map +1 -1
  179. package/build-types/custom-gradient-picker/gradient-bar/constants.d.ts +7 -7
  180. package/build-types/custom-gradient-picker/gradient-bar/constants.d.ts.map +1 -1
  181. package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts +5 -22
  182. package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts.map +1 -1
  183. package/build-types/custom-gradient-picker/gradient-bar/index.d.ts +3 -9
  184. package/build-types/custom-gradient-picker/gradient-bar/index.d.ts.map +1 -1
  185. package/build-types/custom-gradient-picker/gradient-bar/test/utils.d.ts +2 -0
  186. package/build-types/custom-gradient-picker/gradient-bar/test/utils.d.ts.map +1 -0
  187. package/build-types/custom-gradient-picker/gradient-bar/utils.d.ts +44 -92
  188. package/build-types/custom-gradient-picker/gradient-bar/utils.d.ts.map +1 -1
  189. package/build-types/custom-gradient-picker/index.d.ts +27 -6
  190. package/build-types/custom-gradient-picker/index.d.ts.map +1 -1
  191. package/build-types/custom-gradient-picker/serializer.d.ts +13 -16
  192. package/build-types/custom-gradient-picker/serializer.d.ts.map +1 -1
  193. package/build-types/custom-gradient-picker/stories/index.d.ts +12 -0
  194. package/build-types/custom-gradient-picker/stories/index.d.ts.map +1 -0
  195. package/build-types/custom-gradient-picker/styles/custom-gradient-picker-styles.d.ts +3 -2
  196. package/build-types/custom-gradient-picker/styles/custom-gradient-picker-styles.d.ts.map +1 -1
  197. package/build-types/custom-gradient-picker/test/serializer.d.ts +2 -0
  198. package/build-types/custom-gradient-picker/test/serializer.d.ts.map +1 -0
  199. package/build-types/custom-gradient-picker/types.d.ts +120 -0
  200. package/build-types/custom-gradient-picker/types.d.ts.map +1 -0
  201. package/build-types/custom-gradient-picker/utils.d.ts +12 -4
  202. package/build-types/custom-gradient-picker/utils.d.ts.map +1 -1
  203. package/build-types/duotone-picker/color-list-picker/index.d.ts.map +1 -0
  204. package/build-types/{color-list-picker → duotone-picker/color-list-picker}/types.d.ts +2 -2
  205. package/build-types/duotone-picker/color-list-picker/types.d.ts.map +1 -0
  206. package/build-types/duotone-picker/custom-duotone-bar.d.ts +6 -0
  207. package/build-types/duotone-picker/custom-duotone-bar.d.ts.map +1 -0
  208. package/build-types/duotone-picker/duotone-picker.d.ts +38 -0
  209. package/build-types/duotone-picker/duotone-picker.d.ts.map +1 -0
  210. package/build-types/duotone-picker/duotone-swatch.d.ts +5 -0
  211. package/build-types/duotone-picker/duotone-swatch.d.ts.map +1 -0
  212. package/build-types/duotone-picker/index.d.ts +3 -0
  213. package/build-types/duotone-picker/index.d.ts.map +1 -0
  214. package/build-types/duotone-picker/stories/duotone-picker.d.ts +12 -0
  215. package/build-types/duotone-picker/stories/duotone-picker.d.ts.map +1 -0
  216. package/build-types/duotone-picker/stories/duotone-swatch.d.ts +14 -0
  217. package/build-types/duotone-picker/stories/duotone-swatch.d.ts.map +1 -0
  218. package/build-types/duotone-picker/types.d.ts +60 -0
  219. package/build-types/duotone-picker/types.d.ts.map +1 -0
  220. package/build-types/duotone-picker/utils.d.ts +52 -0
  221. package/build-types/duotone-picker/utils.d.ts.map +1 -0
  222. package/build-types/form-token-field/index.d.ts.map +1 -1
  223. package/build-types/form-token-field/types.d.ts +6 -0
  224. package/build-types/form-token-field/types.d.ts.map +1 -1
  225. package/build-types/gradient-picker/index.d.ts +49 -11
  226. package/build-types/gradient-picker/index.d.ts.map +1 -1
  227. package/build-types/gradient-picker/stories/index.d.ts +14 -0
  228. package/build-types/gradient-picker/stories/index.d.ts.map +1 -0
  229. package/build-types/gradient-picker/types.d.ts +87 -0
  230. package/build-types/gradient-picker/types.d.ts.map +1 -0
  231. package/build-types/palette-edit/index.d.ts.map +1 -1
  232. package/build-types/resizable-box/resize-tooltip/utils.d.ts +1 -1
  233. package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
  234. package/build-types/tab-panel/index.d.ts.map +1 -1
  235. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  236. package/build-types/tools-panel/types.d.ts +1 -0
  237. package/build-types/tools-panel/types.d.ts.map +1 -1
  238. package/build-types/utils/input/input-control.d.ts.map +1 -1
  239. package/package.json +19 -19
  240. package/src/angle-picker-control/angle-circle.tsx +0 -1
  241. package/src/angle-picker-control/index.tsx +14 -27
  242. package/src/angle-picker-control/styles/angle-picker-control-styles.tsx +16 -9
  243. package/src/animate/index.tsx +75 -0
  244. package/src/animate/stories/index.tsx +102 -0
  245. package/src/animate/types.ts +32 -0
  246. package/src/border-box-control/stories/index.tsx +1 -1
  247. package/src/box-control/axial-input-controls.tsx +1 -1
  248. package/src/circular-option-picker/style.scss +10 -0
  249. package/src/color-indicator/style.scss +1 -0
  250. package/src/color-picker/README.md +2 -2
  251. package/src/color-picker/color-input.tsx +1 -12
  252. package/src/color-picker/component.tsx +9 -18
  253. package/src/color-picker/hex-input.tsx +2 -7
  254. package/src/color-picker/hsl-input.tsx +2 -7
  255. package/src/color-picker/input-with-slider.tsx +1 -9
  256. package/src/color-picker/legacy-adapter.tsx +1 -2
  257. package/src/color-picker/picker.tsx +5 -6
  258. package/src/color-picker/rgb-input.tsx +2 -7
  259. package/src/color-picker/stories/index.tsx +51 -0
  260. package/src/color-picker/test/{index.js → index.tsx} +36 -18
  261. package/src/color-picker/types.ts +128 -1
  262. package/src/color-picker/use-deprecated-props.ts +2 -53
  263. package/src/combobox-control/stories/index.tsx +1 -1
  264. package/src/custom-gradient-picker/{constants.js → constants.ts} +2 -2
  265. package/src/custom-gradient-picker/gradient-bar/{control-points.js → control-points.tsx} +171 -134
  266. package/src/custom-gradient-picker/gradient-bar/{index.js → index.tsx} +32 -10
  267. package/src/custom-gradient-picker/gradient-bar/test/{utils.js → utils.ts} +58 -31
  268. package/src/custom-gradient-picker/gradient-bar/utils.ts +193 -0
  269. package/src/custom-gradient-picker/{index.js → index.tsx} +63 -22
  270. package/src/custom-gradient-picker/serializer.ts +82 -0
  271. package/src/custom-gradient-picker/stories/index.tsx +45 -0
  272. package/src/custom-gradient-picker/style.scss +25 -4
  273. package/src/custom-gradient-picker/test/{serializer.js → serializer.ts} +39 -33
  274. package/src/custom-gradient-picker/types.ts +137 -0
  275. package/src/custom-gradient-picker/{utils.js → utils.ts} +37 -22
  276. package/src/custom-select-control/test/index.js +6 -4
  277. package/src/{color-list-picker → duotone-picker/color-list-picker}/index.tsx +7 -6
  278. package/src/{color-list-picker → duotone-picker/color-list-picker}/types.ts +2 -2
  279. package/src/duotone-picker/{custom-duotone-bar.js → custom-duotone-bar.tsx} +7 -1
  280. package/src/duotone-picker/{duotone-picker.js → duotone-picker.tsx} +39 -2
  281. package/src/duotone-picker/{duotone-swatch.js → duotone-swatch.tsx} +2 -1
  282. package/src/duotone-picker/stories/{duotone-picker.js → duotone-picker.tsx} +15 -8
  283. package/src/duotone-picker/stories/{duotone-swatch.js → duotone-swatch.tsx} +9 -3
  284. package/src/duotone-picker/types.ts +61 -0
  285. package/src/duotone-picker/{utils.js → utils.ts} +29 -14
  286. package/src/flex/flex-item/README.md +1 -1
  287. package/src/form-token-field/README.md +1 -0
  288. package/src/form-token-field/index.tsx +10 -3
  289. package/src/form-token-field/style.scss +0 -7
  290. package/src/form-token-field/test/index.tsx +1 -0
  291. package/src/form-token-field/types.ts +6 -0
  292. package/src/gradient-picker/README.md +16 -23
  293. package/src/gradient-picker/{index.js → index.tsx} +70 -16
  294. package/src/gradient-picker/stories/{index.js → index.tsx} +19 -8
  295. package/src/gradient-picker/types.ts +89 -0
  296. package/src/item-group/test/index.js +5 -3
  297. package/src/palette-edit/index.tsx +4 -5
  298. package/src/resizable-box/resize-tooltip/utils.ts +1 -1
  299. package/src/sandbox/index.native.js +71 -78
  300. package/src/slot-fill/test/slot.js +8 -6
  301. package/src/style.scss +1 -1
  302. package/src/tab-panel/index.tsx +7 -2
  303. package/src/tools-panel/test/index.tsx +86 -0
  304. package/src/tools-panel/tools-panel/hook.ts +44 -4
  305. package/src/tools-panel/types.ts +1 -0
  306. package/src/tooltip/test/index.js +251 -301
  307. package/src/utils/input/input-control.js +1 -0
  308. package/tsconfig.json +1 -2
  309. package/tsconfig.tsbuildinfo +1 -1
  310. package/build/color-list-picker/index.js.map +0 -1
  311. package/build-module/color-list-picker/index.js.map +0 -1
  312. package/build-types/color-list-picker/index.d.ts.map +0 -1
  313. package/build-types/color-list-picker/types.d.ts.map +0 -1
  314. package/src/animate/index.js +0 -60
  315. package/src/animate/stories/index.js +0 -53
  316. package/src/color-picker/stories/index.js +0 -41
  317. package/src/custom-gradient-picker/gradient-bar/utils.js +0 -189
  318. package/src/custom-gradient-picker/serializer.js +0 -48
  319. package/src/custom-gradient-picker/stories/index.js +0 -33
  320. /package/build/{color-list-picker → animate}/types.js +0 -0
  321. /package/build-module/{color-list-picker → animate}/types.js +0 -0
  322. /package/build-module/{color-list-picker → animate}/types.js.map +0 -0
  323. /package/{build/color-list-picker → build-module/custom-gradient-picker}/types.js.map +0 -0
  324. /package/build-types/{color-list-picker → duotone-picker/color-list-picker}/index.d.ts +0 -0
  325. /package/src/custom-gradient-picker/gradient-bar/{constants.js → constants.ts} +0 -0
  326. /package/src/custom-gradient-picker/styles/{custom-gradient-picker-styles.js → custom-gradient-picker-styles.tsx} +0 -0
  327. /package/src/{color-list-picker → duotone-picker/color-list-picker}/style.scss +0 -0
  328. /package/src/duotone-picker/{index.js → index.ts} +0 -0
@@ -2,10 +2,9 @@
2
2
  * Internal dependencies
3
3
  */
4
4
  import ColorPicker from './component';
5
+ import type { LegacyAdapterProps } from './types';
5
6
  import { useDeprecatedProps } from './use-deprecated-props';
6
7
 
7
- type LegacyAdapterProps = Parameters< typeof useDeprecatedProps >[ 0 ];
8
-
9
8
  export const LegacyAdapter = ( props: LegacyAdapterProps ) => {
10
9
  return <ColorPicker { ...useDeprecatedProps( props ) } />;
11
10
  };
@@ -2,17 +2,16 @@
2
2
  * External dependencies
3
3
  */
4
4
  import { RgbStringColorPicker, RgbaStringColorPicker } from 'react-colorful';
5
- import { colord, Colord } from 'colord';
5
+ import { colord } from 'colord';
6
6
 
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
10
  import { useMemo } from '@wordpress/element';
11
- interface PickerProps {
12
- color: Colord;
13
- enableAlpha: boolean;
14
- onChange: ( nextColor: Colord ) => void;
15
- }
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import type { PickerProps } from './types';
16
15
 
17
16
  export const Picker = ( { color, enableAlpha, onChange }: PickerProps ) => {
18
17
  const Component = enableAlpha
@@ -1,18 +1,13 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { colord, Colord } from 'colord';
4
+ import { colord } from 'colord';
5
5
 
6
6
  /**
7
7
  * Internal dependencies
8
8
  */
9
9
  import { InputWithSlider } from './input-with-slider';
10
-
11
- interface RgbInputProps {
12
- color: Colord;
13
- onChange: ( nextColor: Colord ) => void;
14
- enableAlpha: boolean;
15
- }
10
+ import type { RgbInputProps } from './types';
16
11
 
17
12
  export const RgbInput = ( { color, onChange, enableAlpha }: RgbInputProps ) => {
18
13
  const { r, g, b, a } = color.toRgb();
@@ -0,0 +1,51 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { ComponentMeta, ComponentStory } from '@storybook/react';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { useState } from '@wordpress/element';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import { ColorPicker } from '../component';
15
+
16
+ const meta: ComponentMeta< typeof ColorPicker > = {
17
+ component: ColorPicker,
18
+ title: 'Components/ColorPicker',
19
+ argTypes: {
20
+ as: { control: { type: null } },
21
+ color: { control: { type: null } },
22
+ },
23
+ parameters: {
24
+ actions: { argTypesRegex: '^on.*' },
25
+ controls: {
26
+ expanded: true,
27
+ },
28
+ docs: { source: { state: 'open' } },
29
+ },
30
+ };
31
+ export default meta;
32
+
33
+ const Template: ComponentStory< typeof ColorPicker > = ( {
34
+ onChange,
35
+ ...props
36
+ } ) => {
37
+ const [ color, setColor ] = useState< string | undefined >();
38
+
39
+ return (
40
+ <ColorPicker
41
+ { ...props }
42
+ color={ color }
43
+ onChange={ ( ...changeArgs ) => {
44
+ onChange?.( ...changeArgs );
45
+ setColor( ...changeArgs );
46
+ } }
47
+ />
48
+ );
49
+ };
50
+
51
+ export const Default = Template.bind( {} );
@@ -9,34 +9,37 @@ import { render, fireEvent, waitFor } from '@testing-library/react';
9
9
  import { ColorPicker } from '..';
10
10
 
11
11
  /**
12
- * Ordinarily we'd try to select the compnoent by role but the silder role appears
12
+ * Ordinarily we'd try to select the component by role but the slider role appears
13
13
  * on several elements and we'd end up encoding assumptions about order when
14
- * trying to select the appropriate element. We might as well just use the classname
14
+ * trying to select the appropriate element. We might as well just use the class name
15
15
  * on the container which will be more durable if, for example, the order changes.
16
- *
17
- * @param {HTMLElement} container
18
- * @return {HTMLElement} The saturation element
19
16
  */
20
- function getSaturation( container ) {
17
+ function getSaturation( container: HTMLElement ) {
21
18
  return container.querySelector(
22
19
  '.react-colorful__saturation .react-colorful__interactive'
23
20
  );
24
21
  }
25
22
 
23
+ type PageXPageY = { pageX: number; pageY: number };
24
+
26
25
  // Fix to pass `pageX` and `pageY`
27
26
  // See https://github.com/testing-library/react-testing-library/issues/268
28
- class FakeMouseEvent extends window.MouseEvent {
29
- constructor( type, values = {} ) {
27
+ class FakeMouseEvent extends MouseEvent {
28
+ constructor( type: MouseEvent[ 'type' ], values?: PageXPageY ) {
30
29
  super( type, { buttons: 1, bubbles: true, ...values } );
31
30
 
32
31
  Object.assign( this, {
33
- pageX: values.pageX || 0,
34
- pageY: values.pageY || 0,
32
+ pageX: values?.pageX ?? 0,
33
+ pageY: values?.pageY ?? 0,
35
34
  } );
36
35
  }
37
36
  }
38
37
 
39
- function moveReactColorfulSlider( sliderElement, from, to ) {
38
+ function moveReactColorfulSlider(
39
+ sliderElement: Element,
40
+ from: PageXPageY,
41
+ to: PageXPageY
42
+ ) {
40
43
  fireEvent( sliderElement, new FakeMouseEvent( 'mousedown', from ) );
41
44
  fireEvent( sliderElement, new FakeMouseEvent( 'mousemove', to ) );
42
45
  }
@@ -81,6 +84,13 @@ describe( 'ColorPicker', () => {
81
84
  );
82
85
 
83
86
  const saturation = getSaturation( container );
87
+
88
+ if ( saturation === null ) {
89
+ throw new Error( 'The saturation slider could not be found' );
90
+ }
91
+
92
+ expect( saturation ).toBeInTheDocument();
93
+
84
94
  moveReactColorfulSlider(
85
95
  saturation,
86
96
  { pageX: 0, pageY: 0 },
@@ -106,6 +116,13 @@ describe( 'ColorPicker', () => {
106
116
  );
107
117
 
108
118
  const saturation = getSaturation( container );
119
+
120
+ if ( saturation === null ) {
121
+ throw new Error( 'The saturation slider could not be found' );
122
+ }
123
+
124
+ expect( saturation ).toBeInTheDocument();
125
+
109
126
  moveReactColorfulSlider(
110
127
  saturation,
111
128
  { pageX: 0, pageY: 0 },
@@ -121,13 +138,7 @@ describe( 'ColorPicker', () => {
121
138
 
122
139
  it( 'should fire onChange with the HSL value', async () => {
123
140
  const onChange = jest.fn();
124
- const color = {
125
- h: 125,
126
- s: 0.2,
127
- l: 0.5,
128
- // Add alpha to prove it's ignored.
129
- a: 0.5,
130
- };
141
+ const color = 'hsla(125, 20%, 50%, 0.5)';
131
142
 
132
143
  const { container } = render(
133
144
  <ColorPicker
@@ -138,6 +149,13 @@ describe( 'ColorPicker', () => {
138
149
  );
139
150
 
140
151
  const saturation = getSaturation( container );
152
+
153
+ if ( saturation === null ) {
154
+ throw new Error( 'The saturation slider could not be found' );
155
+ }
156
+
157
+ expect( saturation ).toBeInTheDocument();
158
+
141
159
  moveReactColorfulSlider(
142
160
  saturation,
143
161
  { pageX: 0, pageY: 0 },
@@ -1,10 +1,137 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import type { Colord } from 'colord';
4
+ import type {
5
+ Colord,
6
+ HslColor,
7
+ HsvaColor,
8
+ HsvColor,
9
+ RgbaColor,
10
+ RgbColor,
11
+ } from 'colord';
12
+ import type { HslaColor } from 'react-colorful';
13
+ /**
14
+ * Internal dependencies
15
+ */
16
+ import type { WordPressComponentProps } from '../ui/context';
17
+ import type { useDeprecatedProps } from './use-deprecated-props';
5
18
 
6
19
  export type ColorType = 'rgb' | 'hsl' | 'hex';
7
20
  export type ColorCopyButtonProps = {
8
21
  color: Colord;
9
22
  colorType: ColorType;
10
23
  };
24
+
25
+ export type LegacyAdapterProps = Parameters< typeof useDeprecatedProps >[ 0 ];
26
+
27
+ export type ColorPickerProps = WordPressComponentProps<
28
+ {
29
+ /**
30
+ * When `true` the color picker will display the alpha channel both in
31
+ * the bottom inputs as well as in the color picker itself.
32
+ *
33
+ * @default false
34
+ */
35
+ enableAlpha?: boolean;
36
+ /**
37
+ * The current color value to display in the picker.
38
+ * Must be a hex or hex8 string.
39
+ */
40
+ color?: string;
41
+ /**
42
+ * Fired when the color changes. Always passes a hex or hex8 color string.
43
+ */
44
+ onChange?: ( color: string ) => void;
45
+ /**
46
+ * An optional default value to use for the color picker.
47
+ */
48
+ defaultValue?: string;
49
+ /**
50
+ * The format to copy when clicking the displayed color format.
51
+ */
52
+ copyFormat?: ColorType;
53
+ },
54
+ 'div',
55
+ false
56
+ >;
57
+
58
+ export interface PickerProps {
59
+ color: Colord;
60
+ enableAlpha: boolean;
61
+ onChange: ( nextColor: Colord ) => void;
62
+ }
63
+
64
+ export interface ColorInputProps {
65
+ colorType: 'hsl' | 'hex' | 'rgb';
66
+ color: Colord;
67
+ onChange: ( nextColor: Colord ) => void;
68
+ enableAlpha: boolean;
69
+ }
70
+
71
+ export interface InputWithSliderProps {
72
+ min: number;
73
+ max: number;
74
+ value: number;
75
+ label: string;
76
+ abbreviation: string;
77
+ onChange: ( value: number ) => void;
78
+ }
79
+
80
+ export interface HexInputProps {
81
+ color: Colord;
82
+ onChange: ( nextColor: Colord ) => void;
83
+ enableAlpha: boolean;
84
+ }
85
+
86
+ export interface HslInputProps {
87
+ color: Colord;
88
+ onChange: ( nextColor: Colord ) => void;
89
+ enableAlpha: boolean;
90
+ }
91
+
92
+ export interface RgbInputProps {
93
+ color: Colord;
94
+ onChange: ( nextColor: Colord ) => void;
95
+ enableAlpha: boolean;
96
+ }
97
+
98
+ /**
99
+ * @deprecated
100
+ */
101
+ export type LegacyColor =
102
+ | string
103
+ | {
104
+ hex: string;
105
+ hsl: HslColor | HslaColor;
106
+ hsv: HsvColor | HsvaColor;
107
+ rgb: RgbColor | RgbaColor;
108
+ /**
109
+ * @deprecated
110
+ */
111
+ oldHue: number;
112
+ /**
113
+ * @deprecated
114
+ */
115
+ source: 'hex';
116
+ };
117
+
118
+ /**
119
+ * @deprecated
120
+ */
121
+ export interface LegacyProps {
122
+ color?: LegacyColor;
123
+ /**
124
+ * @deprecated
125
+ */
126
+ onChangeComplete: ( colors: LegacyColor ) => void;
127
+ /**
128
+ * @deprecated
129
+ */
130
+ oldHue: string;
131
+ className: string;
132
+ /**
133
+ * @deprecated
134
+ */
135
+ disableAlpha: boolean;
136
+ onChange?: never;
137
+ }
@@ -1,16 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import {
5
- colord,
6
- HslColor,
7
- HslaColor,
8
- HsvColor,
9
- HsvaColor,
10
- RgbColor,
11
- RgbaColor,
12
- } from 'colord';
13
- import type { ComponentProps } from 'react';
4
+ import { colord } from 'colord';
14
5
  import memoize from 'memize';
15
6
 
16
7
  /**
@@ -21,49 +12,7 @@ import { useCallback } from '@wordpress/element';
21
12
  /**
22
13
  * Internal dependencies
23
14
  */
24
- import type ColorPicker from './component';
25
-
26
- type ColorPickerProps = ComponentProps< typeof ColorPicker >;
27
-
28
- /**
29
- * @deprecated
30
- */
31
- type LegacyColor =
32
- | string
33
- | {
34
- hex: string;
35
- hsl: HslColor | HslaColor;
36
- hsv: HsvColor | HsvaColor;
37
- rgb: RgbColor | RgbaColor;
38
- /**
39
- * @deprecated
40
- */
41
- oldHue: number;
42
- /**
43
- * @deprecated
44
- */
45
- source: 'hex';
46
- };
47
-
48
- /**
49
- * @deprecated
50
- */
51
- export interface LegacyProps {
52
- color?: LegacyColor;
53
- /**
54
- * @deprecated
55
- */
56
- onChangeComplete: ( colors: LegacyColor ) => void;
57
- /**
58
- * @deprecated
59
- */
60
- oldHue: string;
61
- className: string;
62
- /**
63
- * @deprecated
64
- */
65
- disableAlpha: boolean;
66
- }
15
+ import type { ColorPickerProps, LegacyColor, LegacyProps } from './types';
67
16
 
68
17
  function isLegacyProps( props: any ): props is LegacyProps {
69
18
  return (
@@ -36,7 +36,7 @@ const meta: ComponentMeta< typeof ComboboxControl > = {
36
36
  };
37
37
  export default meta;
38
38
 
39
- const mapCountryOption = ( country: typeof countries[ number ] ) => ( {
39
+ const mapCountryOption = ( country: ( typeof countries )[ number ] ) => ( {
40
40
  value: country.code,
41
41
  label: country.name,
42
42
  } );
@@ -10,8 +10,8 @@ export const DEFAULT_LINEAR_GRADIENT_ANGLE = 180;
10
10
 
11
11
  export const HORIZONTAL_GRADIENT_ORIENTATION = {
12
12
  type: 'angular',
13
- value: 90,
14
- };
13
+ value: '90',
14
+ } as const;
15
15
 
16
16
  export const GRADIENT_OPTIONS = [
17
17
  { value: 'linear-gradient', label: __( 'Linear' ) },