@wordpress/components 22.0.0 → 23.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (796) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/build/alignment-matrix-control/cell.js.map +1 -1
  3. package/build/alignment-matrix-control/icon.js +4 -2
  4. package/build/alignment-matrix-control/icon.js.map +1 -1
  5. package/build/alignment-matrix-control/index.js +25 -1
  6. package/build/alignment-matrix-control/index.js.map +1 -1
  7. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +13 -13
  8. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +1 -1
  9. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +16 -16
  10. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  11. package/build/alignment-matrix-control/types.js +6 -0
  12. package/build/alignment-matrix-control/types.js.map +1 -0
  13. package/build/alignment-matrix-control/utils.js +9 -8
  14. package/build/alignment-matrix-control/utils.js.map +1 -1
  15. package/build/angle-picker-control/index.js +3 -1
  16. package/build/angle-picker-control/index.js.map +1 -1
  17. package/build/angle-picker-control/styles/angle-picker-control-styles.js +9 -9
  18. package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  19. package/build/autocomplete/index.js +45 -12
  20. package/build/autocomplete/index.js.map +1 -1
  21. package/build/base-control/hooks.js +52 -0
  22. package/build/base-control/hooks.js.map +1 -0
  23. package/build/base-control/index.js +24 -7
  24. package/build/base-control/index.js.map +1 -1
  25. package/build/base-field/hook.js +0 -14
  26. package/build/base-field/hook.js.map +1 -1
  27. package/build/base-field/index.js.map +1 -1
  28. package/build/base-field/styles.js +5 -5
  29. package/build/base-field/styles.js.map +1 -1
  30. package/build/base-field/types.js +6 -0
  31. package/build/base-field/types.js.map +1 -0
  32. package/build/border-box-control/border-box-control/component.js +1 -1
  33. package/build/border-box-control/border-box-control/component.js.map +1 -1
  34. package/build/border-box-control/border-box-control/hook.js +13 -1
  35. package/build/border-box-control/border-box-control/hook.js.map +1 -1
  36. package/build/border-box-control/border-box-control-split-controls/hook.js +11 -1
  37. package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
  38. package/build/border-control/border-control/component.js +3 -2
  39. package/build/border-control/border-control/component.js.map +1 -1
  40. package/build/border-control/border-control/hook.js +11 -1
  41. package/build/border-control/border-control/hook.js.map +1 -1
  42. package/build/border-control/border-control-dropdown/component.js +1 -1
  43. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  44. package/build/border-control/border-control-dropdown/hook.js +10 -2
  45. package/build/border-control/border-control-dropdown/hook.js.map +1 -1
  46. package/build/border-control/styles.js +16 -16
  47. package/build/border-control/styles.js.map +1 -1
  48. package/build/box-control/linked-button.js +3 -4
  49. package/build/box-control/linked-button.js.map +1 -1
  50. package/build/color-palette/index.js +3 -8
  51. package/build/color-palette/index.js.map +1 -1
  52. package/build/color-picker/input-with-slider.js +18 -3
  53. package/build/color-picker/input-with-slider.js.map +1 -1
  54. package/build/color-picker/styles.js +8 -8
  55. package/build/color-picker/styles.js.map +1 -1
  56. package/build/custom-select-control/index.js +19 -4
  57. package/build/custom-select-control/index.js.map +1 -1
  58. package/build/dashicon/index.js +18 -6
  59. package/build/dashicon/index.js.map +1 -1
  60. package/build/date-time/date-time/index.js +4 -4
  61. package/build/date-time/date-time/index.js.map +1 -1
  62. package/build/draggable/index.js +58 -38
  63. package/build/draggable/index.js.map +1 -1
  64. package/build/draggable/types.js +6 -0
  65. package/build/draggable/types.js.map +1 -0
  66. package/build/duotone-picker/duotone-picker.js +2 -2
  67. package/build/duotone-picker/duotone-picker.js.map +1 -1
  68. package/build/flex/flex/hook.js +2 -3
  69. package/build/flex/flex/hook.js.map +1 -1
  70. package/build/focal-point-picker/focal-point.js +2 -12
  71. package/build/focal-point-picker/focal-point.js.map +1 -1
  72. package/build/focal-point-picker/styles/focal-point-style.js +11 -51
  73. package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
  74. package/build/font-size-picker/constants.js +41 -0
  75. package/build/font-size-picker/constants.js.map +1 -0
  76. package/build/font-size-picker/font-size-picker-select.js +97 -0
  77. package/build/font-size-picker/font-size-picker-select.js.map +1 -0
  78. package/build/font-size-picker/font-size-picker-toggle-group.js +50 -0
  79. package/build/font-size-picker/font-size-picker-toggle-group.js.map +1 -0
  80. package/build/font-size-picker/index.js +39 -76
  81. package/build/font-size-picker/index.js.map +1 -1
  82. package/build/font-size-picker/utils.js +17 -89
  83. package/build/font-size-picker/utils.js.map +1 -1
  84. package/build/form-token-field/index.js +9 -6
  85. package/build/form-token-field/index.js.map +1 -1
  86. package/build/gradient-picker/index.js +3 -9
  87. package/build/gradient-picker/index.js.map +1 -1
  88. package/build/higher-order/navigate-regions/index.js +3 -0
  89. package/build/higher-order/navigate-regions/index.js.map +1 -1
  90. package/build/higher-order/with-fallback-styles/index.js +2 -2
  91. package/build/higher-order/with-fallback-styles/index.js.map +1 -1
  92. package/build/icon/index.js +3 -2
  93. package/build/icon/index.js.map +1 -1
  94. package/build/index.js +21 -1
  95. package/build/index.js.map +1 -1
  96. package/build/input-control/index.js +17 -5
  97. package/build/input-control/index.js.map +1 -1
  98. package/build/input-control/input-base.js +2 -0
  99. package/build/input-control/input-base.js.map +1 -1
  100. package/build/menu-group/index.js +17 -3
  101. package/build/menu-group/index.js.map +1 -1
  102. package/build/menu-group/types.js +6 -0
  103. package/build/menu-group/types.js.map +1 -0
  104. package/build/mobile/bottom-sheet/cell.native.js +1 -1
  105. package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
  106. package/build/mobile/bottom-sheet/switch-cell.native.js +1 -3
  107. package/build/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
  108. package/build/mobile/global-styles-context/index.native.js +8 -8
  109. package/build/mobile/global-styles-context/index.native.js.map +1 -1
  110. package/build/mobile/keyboard-aware-flat-list/index.ios.js +4 -2
  111. package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  112. package/build/modal/index.js +8 -0
  113. package/build/modal/index.js.map +1 -1
  114. package/build/navigator/navigator-provider/component.js +12 -8
  115. package/build/navigator/navigator-provider/component.js.map +1 -1
  116. package/build/navigator/navigator-screen/component.js +9 -5
  117. package/build/navigator/navigator-screen/component.js.map +1 -1
  118. package/build/number-control/styles/number-control-styles.js +8 -8
  119. package/build/number-control/styles/number-control-styles.js.map +1 -1
  120. package/build/palette-edit/index.js +75 -34
  121. package/build/palette-edit/index.js.map +1 -1
  122. package/build/popover/index.js +18 -6
  123. package/build/popover/index.js.map +1 -1
  124. package/build/query-controls/index.js +1 -0
  125. package/build/query-controls/index.js.map +1 -1
  126. package/build/range-control/styles/range-control-styles.js +47 -57
  127. package/build/range-control/styles/range-control-styles.js.map +1 -1
  128. package/build/snackbar/index.js +35 -24
  129. package/build/snackbar/index.js.map +1 -1
  130. package/build/snackbar/list.js +14 -19
  131. package/build/snackbar/list.js.map +1 -1
  132. package/build/snackbar/types.js +6 -0
  133. package/build/snackbar/types.js.map +1 -0
  134. package/build/spinner/styles.js +4 -4
  135. package/build/spinner/styles.js.map +1 -1
  136. package/build/tab-panel/index.js +12 -8
  137. package/build/tab-panel/index.js.map +1 -1
  138. package/build/theme/color-algorithms.js +118 -0
  139. package/build/theme/color-algorithms.js.map +1 -0
  140. package/build/theme/index.js +21 -18
  141. package/build/theme/index.js.map +1 -1
  142. package/build/theme/styles.js +10 -7
  143. package/build/theme/styles.js.map +1 -1
  144. package/build/toggle-control/index.js +5 -2
  145. package/build/toggle-control/index.js.map +1 -1
  146. package/build/toggle-group-control/toggle-group-control/component.js +1 -0
  147. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  148. package/build/toggle-group-control/toggle-group-control/styles.js +11 -6
  149. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  150. package/build/tools-panel/styles.js +14 -14
  151. package/build/tools-panel/styles.js.map +1 -1
  152. package/build/tools-panel/tools-panel-item/hook.js +9 -5
  153. package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
  154. package/build/ui/context/context-system-provider.js +3 -1
  155. package/build/ui/context/context-system-provider.js.map +1 -1
  156. package/build/unit-control/index.js +5 -2
  157. package/build/unit-control/index.js.map +1 -1
  158. package/build/utils/colors-values.js +4 -3
  159. package/build/utils/colors-values.js.map +1 -1
  160. package/build/utils/config-values.js +0 -2
  161. package/build/utils/config-values.js.map +1 -1
  162. package/build/utils/hooks/use-controlled-value.js.map +1 -1
  163. package/build/utils/input/base.js +2 -2
  164. package/build/utils/input/base.js.map +1 -1
  165. package/build/view/index.js.map +1 -1
  166. package/build-module/alignment-matrix-control/cell.js.map +1 -1
  167. package/build-module/alignment-matrix-control/icon.js +4 -2
  168. package/build-module/alignment-matrix-control/icon.js.map +1 -1
  169. package/build-module/alignment-matrix-control/index.js +23 -1
  170. package/build-module/alignment-matrix-control/index.js.map +1 -1
  171. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +13 -13
  172. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +1 -1
  173. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +16 -16
  174. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  175. package/build-module/alignment-matrix-control/types.js +2 -0
  176. package/build-module/alignment-matrix-control/types.js.map +1 -0
  177. package/build-module/alignment-matrix-control/utils.js +13 -8
  178. package/build-module/alignment-matrix-control/utils.js.map +1 -1
  179. package/build-module/angle-picker-control/index.js +2 -1
  180. package/build-module/angle-picker-control/index.js.map +1 -1
  181. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +9 -9
  182. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  183. package/build-module/autocomplete/index.js +45 -12
  184. package/build-module/autocomplete/index.js.map +1 -1
  185. package/build-module/base-control/hooks.js +41 -0
  186. package/build-module/base-control/hooks.js.map +1 -0
  187. package/build-module/base-control/index.js +18 -8
  188. package/build-module/base-control/index.js.map +1 -1
  189. package/build-module/base-field/hook.js +0 -14
  190. package/build-module/base-field/hook.js.map +1 -1
  191. package/build-module/base-field/index.js.map +1 -1
  192. package/build-module/base-field/styles.js +5 -5
  193. package/build-module/base-field/styles.js.map +1 -1
  194. package/build-module/base-field/types.js +2 -0
  195. package/build-module/base-field/types.js.map +1 -0
  196. package/build-module/border-box-control/border-box-control/component.js +1 -1
  197. package/build-module/border-box-control/border-box-control/component.js.map +1 -1
  198. package/build-module/border-box-control/border-box-control/hook.js +13 -1
  199. package/build-module/border-box-control/border-box-control/hook.js.map +1 -1
  200. package/build-module/border-box-control/border-box-control-split-controls/hook.js +11 -1
  201. package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
  202. package/build-module/border-control/border-control/component.js +3 -2
  203. package/build-module/border-control/border-control/component.js.map +1 -1
  204. package/build-module/border-control/border-control/hook.js +11 -1
  205. package/build-module/border-control/border-control/hook.js.map +1 -1
  206. package/build-module/border-control/border-control-dropdown/component.js +1 -1
  207. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  208. package/build-module/border-control/border-control-dropdown/hook.js +10 -2
  209. package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
  210. package/build-module/border-control/styles.js +17 -17
  211. package/build-module/border-control/styles.js.map +1 -1
  212. package/build-module/box-control/linked-button.js +3 -4
  213. package/build-module/box-control/linked-button.js.map +1 -1
  214. package/build-module/color-palette/index.js +3 -8
  215. package/build-module/color-palette/index.js.map +1 -1
  216. package/build-module/color-picker/input-with-slider.js +18 -3
  217. package/build-module/color-picker/input-with-slider.js.map +1 -1
  218. package/build-module/color-picker/styles.js +8 -8
  219. package/build-module/color-picker/styles.js.map +1 -1
  220. package/build-module/custom-select-control/index.js +19 -4
  221. package/build-module/custom-select-control/index.js.map +1 -1
  222. package/build-module/dashicon/index.js +18 -6
  223. package/build-module/dashicon/index.js.map +1 -1
  224. package/build-module/date-time/date-time/index.js +4 -4
  225. package/build-module/date-time/date-time/index.js.map +1 -1
  226. package/build-module/draggable/index.js +59 -38
  227. package/build-module/draggable/index.js.map +1 -1
  228. package/build-module/draggable/types.js +2 -0
  229. package/build-module/draggable/types.js.map +1 -0
  230. package/build-module/duotone-picker/duotone-picker.js +2 -2
  231. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  232. package/build-module/flex/flex/hook.js +2 -3
  233. package/build-module/flex/flex/hook.js.map +1 -1
  234. package/build-module/focal-point-picker/focal-point.js +3 -13
  235. package/build-module/focal-point-picker/focal-point.js.map +1 -1
  236. package/build-module/focal-point-picker/styles/focal-point-style.js +6 -52
  237. package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
  238. package/build-module/font-size-picker/constants.js +31 -0
  239. package/build-module/font-size-picker/constants.js.map +1 -0
  240. package/build-module/font-size-picker/font-size-picker-select.js +83 -0
  241. package/build-module/font-size-picker/font-size-picker-select.js.map +1 -0
  242. package/build-module/font-size-picker/font-size-picker-toggle-group.js +40 -0
  243. package/build-module/font-size-picker/font-size-picker-toggle-group.js.map +1 -0
  244. package/build-module/font-size-picker/index.js +38 -76
  245. package/build-module/font-size-picker/index.js.map +1 -1
  246. package/build-module/font-size-picker/utils.js +15 -86
  247. package/build-module/font-size-picker/utils.js.map +1 -1
  248. package/build-module/form-token-field/index.js +9 -6
  249. package/build-module/form-token-field/index.js.map +1 -1
  250. package/build-module/gradient-picker/index.js +3 -8
  251. package/build-module/gradient-picker/index.js.map +1 -1
  252. package/build-module/higher-order/navigate-regions/index.js +3 -0
  253. package/build-module/higher-order/navigate-regions/index.js.map +1 -1
  254. package/build-module/higher-order/with-fallback-styles/index.js +2 -2
  255. package/build-module/higher-order/with-fallback-styles/index.js.map +1 -1
  256. package/build-module/icon/index.js +3 -2
  257. package/build-module/icon/index.js.map +1 -1
  258. package/build-module/index.js +3 -2
  259. package/build-module/index.js.map +1 -1
  260. package/build-module/input-control/index.js +16 -5
  261. package/build-module/input-control/index.js.map +1 -1
  262. package/build-module/input-control/input-base.js +2 -0
  263. package/build-module/input-control/input-base.js.map +1 -1
  264. package/build-module/menu-group/index.js +20 -2
  265. package/build-module/menu-group/index.js.map +1 -1
  266. package/build-module/menu-group/types.js +2 -0
  267. package/build-module/menu-group/types.js.map +1 -0
  268. package/build-module/mobile/bottom-sheet/cell.native.js +1 -1
  269. package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
  270. package/build-module/mobile/bottom-sheet/switch-cell.native.js +1 -2
  271. package/build-module/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
  272. package/build-module/mobile/global-styles-context/index.native.js +8 -7
  273. package/build-module/mobile/global-styles-context/index.native.js.map +1 -1
  274. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +2 -2
  275. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  276. package/build-module/modal/index.js +8 -0
  277. package/build-module/modal/index.js.map +1 -1
  278. package/build-module/navigator/navigator-provider/component.js +12 -8
  279. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  280. package/build-module/navigator/navigator-screen/component.js +9 -5
  281. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  282. package/build-module/number-control/styles/number-control-styles.js +8 -10
  283. package/build-module/number-control/styles/number-control-styles.js.map +1 -1
  284. package/build-module/palette-edit/index.js +76 -35
  285. package/build-module/palette-edit/index.js.map +1 -1
  286. package/build-module/popover/index.js +18 -6
  287. package/build-module/popover/index.js.map +1 -1
  288. package/build-module/query-controls/index.js +1 -0
  289. package/build-module/query-controls/index.js.map +1 -1
  290. package/build-module/range-control/styles/range-control-styles.js +47 -57
  291. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  292. package/build-module/snackbar/index.js +33 -23
  293. package/build-module/snackbar/index.js.map +1 -1
  294. package/build-module/snackbar/list.js +14 -22
  295. package/build-module/snackbar/list.js.map +1 -1
  296. package/build-module/snackbar/types.js +2 -0
  297. package/build-module/snackbar/types.js.map +1 -0
  298. package/build-module/spinner/styles.js +4 -4
  299. package/build-module/spinner/styles.js.map +1 -1
  300. package/build-module/tab-panel/index.js +13 -9
  301. package/build-module/tab-panel/index.js.map +1 -1
  302. package/build-module/theme/color-algorithms.js +105 -0
  303. package/build-module/theme/color-algorithms.js.map +1 -0
  304. package/build-module/theme/index.js +21 -17
  305. package/build-module/theme/index.js.map +1 -1
  306. package/build-module/theme/styles.js +8 -6
  307. package/build-module/theme/styles.js.map +1 -1
  308. package/build-module/toggle-control/index.js +4 -2
  309. package/build-module/toggle-control/index.js.map +1 -1
  310. package/build-module/toggle-group-control/toggle-group-control/component.js +1 -0
  311. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  312. package/build-module/toggle-group-control/toggle-group-control/styles.js +12 -6
  313. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  314. package/build-module/tools-panel/styles.js +14 -14
  315. package/build-module/tools-panel/styles.js.map +1 -1
  316. package/build-module/tools-panel/tools-panel-item/hook.js +9 -5
  317. package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
  318. package/build-module/ui/context/context-system-provider.js +3 -2
  319. package/build-module/ui/context/context-system-provider.js.map +1 -1
  320. package/build-module/unit-control/index.js +5 -2
  321. package/build-module/unit-control/index.js.map +1 -1
  322. package/build-module/utils/colors-values.js +4 -3
  323. package/build-module/utils/colors-values.js.map +1 -1
  324. package/build-module/utils/config-values.js +0 -2
  325. package/build-module/utils/config-values.js.map +1 -1
  326. package/build-module/utils/hooks/use-controlled-value.js.map +1 -1
  327. package/build-module/utils/input/base.js +2 -2
  328. package/build-module/utils/input/base.js.map +1 -1
  329. package/build-module/view/index.js.map +1 -1
  330. package/build-style/style-rtl.css +145 -100
  331. package/build-style/style.css +145 -100
  332. package/build-types/alignment-matrix-control/cell.d.ts +5 -0
  333. package/build-types/alignment-matrix-control/cell.d.ts.map +1 -0
  334. package/build-types/alignment-matrix-control/icon.d.ts +6 -0
  335. package/build-types/alignment-matrix-control/icon.d.ts.map +1 -0
  336. package/build-types/alignment-matrix-control/index.d.ts +30 -0
  337. package/build-types/alignment-matrix-control/index.d.ts.map +1 -0
  338. package/build-types/alignment-matrix-control/stories/index.d.ts +14 -0
  339. package/build-types/alignment-matrix-control/stories/index.d.ts.map +1 -0
  340. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts +19 -0
  341. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts.map +1 -0
  342. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts +23 -0
  343. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts.map +1 -0
  344. package/build-types/alignment-matrix-control/test/index.d.ts +2 -0
  345. package/build-types/alignment-matrix-control/test/index.d.ts.map +1 -0
  346. package/build-types/alignment-matrix-control/types.d.ts +39 -0
  347. package/build-types/alignment-matrix-control/types.d.ts.map +1 -0
  348. package/build-types/alignment-matrix-control/utils.d.ts +33 -0
  349. package/build-types/alignment-matrix-control/utils.d.ts.map +1 -0
  350. package/build-types/base-control/hooks.d.ts +23 -0
  351. package/build-types/base-control/hooks.d.ts.map +1 -0
  352. package/build-types/base-control/index.d.ts +17 -7
  353. package/build-types/base-control/index.d.ts.map +1 -1
  354. package/build-types/base-control/stories/index.d.ts.map +1 -1
  355. package/build-types/base-control/test/index.d.ts +2 -0
  356. package/build-types/base-control/test/index.d.ts.map +1 -0
  357. package/build-types/base-control/types.d.ts +8 -2
  358. package/build-types/base-control/types.d.ts.map +1 -1
  359. package/build-types/base-field/hook.d.ts +7 -31
  360. package/build-types/base-field/hook.d.ts.map +1 -1
  361. package/build-types/base-field/index.d.ts +1 -1
  362. package/build-types/base-field/index.d.ts.map +1 -1
  363. package/build-types/base-field/styles.d.ts +5 -5
  364. package/build-types/base-field/styles.d.ts.map +1 -1
  365. package/build-types/base-field/test/index.d.ts +2 -0
  366. package/build-types/base-field/test/index.d.ts.map +1 -0
  367. package/build-types/base-field/types.d.ts +29 -0
  368. package/build-types/base-field/types.d.ts.map +1 -0
  369. package/build-types/border-box-control/border-box-control/component.d.ts +4 -4
  370. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  371. package/build-types/border-box-control/border-box-control/hook.d.ts +8 -8
  372. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  373. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts +4 -2
  374. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -1
  375. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +2 -2
  376. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +3 -3
  377. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +7 -7
  378. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
  379. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts +3 -2
  380. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts.map +1 -1
  381. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +2 -2
  382. package/build-types/border-box-control/stories/index.d.ts +3 -3
  383. package/build-types/border-box-control/types.d.ts +5 -38
  384. package/build-types/border-box-control/types.d.ts.map +1 -1
  385. package/build-types/border-control/border-control/component.d.ts +4 -2
  386. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  387. package/build-types/border-control/border-control/hook.d.ts +7 -7
  388. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  389. package/build-types/border-control/border-control-dropdown/component.d.ts +3 -3
  390. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  391. package/build-types/border-control/border-control-dropdown/hook.d.ts +7 -7
  392. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  393. package/build-types/border-control/border-control-style-picker/hook.d.ts +2 -2
  394. package/build-types/border-control/stories/index.d.ts +24 -12
  395. package/build-types/border-control/stories/index.d.ts.map +1 -1
  396. package/build-types/border-control/styles.d.ts.map +1 -1
  397. package/build-types/border-control/types.d.ts +10 -51
  398. package/build-types/border-control/types.d.ts.map +1 -1
  399. package/build-types/card/card/hook.d.ts +2 -2
  400. package/build-types/card/card-body/hook.d.ts +2 -2
  401. package/build-types/card/card-divider/hook.d.ts +2 -2
  402. package/build-types/card/card-footer/hook.d.ts +2 -2
  403. package/build-types/card/card-header/hook.d.ts +2 -2
  404. package/build-types/card/card-media/hook.d.ts +2 -2
  405. package/build-types/color-palette/index.d.ts +16 -2
  406. package/build-types/color-palette/index.d.ts.map +1 -1
  407. package/build-types/color-palette/stories/index.d.ts +30 -2
  408. package/build-types/color-palette/stories/index.d.ts.map +1 -1
  409. package/build-types/color-palette/styles.d.ts +1 -1
  410. package/build-types/color-palette/types.d.ts +14 -10
  411. package/build-types/color-palette/types.d.ts.map +1 -1
  412. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  413. package/build-types/color-picker/styles.d.ts +5 -5
  414. package/build-types/color-picker/styles.d.ts.map +1 -1
  415. package/build-types/custom-select-control/index.d.ts.map +1 -1
  416. package/build-types/dashicon/index.d.ts +7 -16
  417. package/build-types/dashicon/index.d.ts.map +1 -1
  418. package/build-types/dashicon/types.d.ts +14 -0
  419. package/build-types/dashicon/types.d.ts.map +1 -1
  420. package/build-types/date-time/date/styles.d.ts +3 -3
  421. package/build-types/date-time/date-time/styles.d.ts +3 -3
  422. package/build-types/date-time/time/styles.d.ts +8 -8
  423. package/build-types/date-time/types.d.ts +0 -16
  424. package/build-types/date-time/types.d.ts.map +1 -1
  425. package/build-types/draggable/index.d.ts +42 -66
  426. package/build-types/draggable/index.d.ts.map +1 -1
  427. package/build-types/draggable/stories/index.d.ts +12 -0
  428. package/build-types/draggable/stories/index.d.ts.map +1 -0
  429. package/build-types/draggable/types.d.ts +58 -0
  430. package/build-types/draggable/types.d.ts.map +1 -0
  431. package/build-types/elevation/hook.d.ts +2 -2
  432. package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
  433. package/build-types/flex/flex/hook.d.ts +2 -2
  434. package/build-types/flex/flex/hook.d.ts.map +1 -1
  435. package/build-types/flex/flex-block/hook.d.ts +2 -2
  436. package/build-types/flex/flex-item/hook.d.ts +2 -2
  437. package/build-types/focal-point-picker/focal-point.d.ts.map +1 -1
  438. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -5
  439. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts.map +1 -1
  440. package/build-types/focal-point-picker/styles/focal-point-style.d.ts +1 -12
  441. package/build-types/focal-point-picker/styles/focal-point-style.d.ts.map +1 -1
  442. package/build-types/font-size-picker/constants.d.ts +15 -0
  443. package/build-types/font-size-picker/constants.d.ts.map +1 -0
  444. package/build-types/font-size-picker/font-size-picker-select.d.ts +5 -0
  445. package/build-types/font-size-picker/font-size-picker-select.d.ts.map +1 -0
  446. package/build-types/font-size-picker/font-size-picker-toggle-group.d.ts +5 -0
  447. package/build-types/font-size-picker/font-size-picker-toggle-group.d.ts.map +1 -0
  448. package/build-types/font-size-picker/index.d.ts.map +1 -1
  449. package/build-types/font-size-picker/types.d.ts +13 -13
  450. package/build-types/font-size-picker/types.d.ts.map +1 -1
  451. package/build-types/font-size-picker/utils.d.ts +6 -18
  452. package/build-types/font-size-picker/utils.d.ts.map +1 -1
  453. package/build-types/form-token-field/index.d.ts.map +1 -1
  454. package/build-types/grid/hook.d.ts +2 -2
  455. package/build-types/h-stack/component.d.ts +1 -1
  456. package/build-types/h-stack/hook.d.ts +2 -2
  457. package/build-types/heading/hook.d.ts +2 -2
  458. package/build-types/icon/index.d.ts +1 -1
  459. package/build-types/icon/index.d.ts.map +1 -1
  460. package/build-types/input-control/index.d.ts +1 -1
  461. package/build-types/input-control/index.d.ts.map +1 -1
  462. package/build-types/input-control/input-base.d.ts.map +1 -1
  463. package/build-types/input-control/stories/index.d.ts +1 -0
  464. package/build-types/input-control/stories/index.d.ts.map +1 -1
  465. package/build-types/input-control/types.d.ts +2 -1
  466. package/build-types/input-control/types.d.ts.map +1 -1
  467. package/build-types/item-group/item/hook.d.ts +2 -2
  468. package/build-types/item-group/item-group/hook.d.ts +2 -2
  469. package/build-types/menu-group/index.d.ts +21 -1
  470. package/build-types/menu-group/index.d.ts.map +1 -1
  471. package/build-types/menu-group/test/index.d.ts +2 -0
  472. package/build-types/menu-group/test/index.d.ts.map +1 -0
  473. package/build-types/menu-group/types.d.ts +23 -0
  474. package/build-types/menu-group/types.d.ts.map +1 -0
  475. package/build-types/modal/index.d.ts.map +1 -1
  476. package/build-types/modal/stories/index.d.ts.map +1 -1
  477. package/build-types/navigator/navigator-back-button/hook.d.ts +3 -3
  478. package/build-types/navigator/navigator-button/hook.d.ts +3 -3
  479. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  480. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  481. package/build-types/number-control/index.d.ts +2 -2
  482. package/build-types/number-control/index.d.ts.map +1 -1
  483. package/build-types/number-control/stories/index.d.ts +25 -0
  484. package/build-types/number-control/stories/index.d.ts.map +1 -0
  485. package/build-types/number-control/styles/number-control-styles.d.ts +6 -6
  486. package/build-types/number-control/styles/number-control-styles.d.ts.map +1 -1
  487. package/build-types/number-control/test/index.d.ts +2 -0
  488. package/build-types/number-control/test/index.d.ts.map +1 -0
  489. package/build-types/popover/index.d.ts +1 -1
  490. package/build-types/popover/index.d.ts.map +1 -1
  491. package/build-types/popover/stories/e2e/index.d.ts +1 -1
  492. package/build-types/range-control/index.d.ts +1 -1
  493. package/build-types/range-control/styles/range-control-styles.d.ts +2 -2
  494. package/build-types/resizable-box/resize-tooltip/index.d.ts +15 -19
  495. package/build-types/resizable-box/resize-tooltip/index.d.ts.map +1 -1
  496. package/build-types/resizable-box/resize-tooltip/label.d.ts +4 -3
  497. package/build-types/resizable-box/resize-tooltip/label.d.ts.map +1 -1
  498. package/build-types/scrollable/hook.d.ts +2 -2
  499. package/build-types/search-control/index.d.ts +1 -1
  500. package/build-types/search-control/stories/index.d.ts +2 -2
  501. package/build-types/snackbar/index.d.ts +19 -0
  502. package/build-types/snackbar/index.d.ts.map +1 -0
  503. package/build-types/snackbar/list.d.ts +18 -0
  504. package/build-types/snackbar/list.d.ts.map +1 -0
  505. package/build-types/snackbar/stories/index.d.ts +16 -0
  506. package/build-types/snackbar/stories/index.d.ts.map +1 -0
  507. package/build-types/snackbar/stories/list.d.ts +12 -0
  508. package/build-types/snackbar/stories/list.d.ts.map +1 -0
  509. package/build-types/snackbar/types.d.ts +111 -0
  510. package/build-types/snackbar/types.d.ts.map +1 -0
  511. package/build-types/spacer/hook.d.ts +2 -2
  512. package/build-types/spinner/index.d.ts +1 -1
  513. package/build-types/surface/hook.d.ts +2 -2
  514. package/build-types/tab-panel/index.d.ts +1 -1
  515. package/build-types/tab-panel/index.d.ts.map +1 -1
  516. package/build-types/tab-panel/types.d.ts +19 -1
  517. package/build-types/tab-panel/types.d.ts.map +1 -1
  518. package/build-types/text/hook.d.ts +2 -2
  519. package/build-types/text-control/index.d.ts +2 -2
  520. package/build-types/text-control/stories/index.d.ts.map +1 -1
  521. package/build-types/text-control/types.d.ts +1 -5
  522. package/build-types/text-control/types.d.ts.map +1 -1
  523. package/build-types/theme/color-algorithms.d.ts +20 -0
  524. package/build-types/theme/color-algorithms.d.ts.map +1 -0
  525. package/build-types/theme/index.d.ts +1 -1
  526. package/build-types/theme/index.d.ts.map +1 -1
  527. package/build-types/theme/stories/index.d.ts +4 -0
  528. package/build-types/theme/stories/index.d.ts.map +1 -1
  529. package/build-types/theme/styles.d.ts +3 -2
  530. package/build-types/theme/styles.d.ts.map +1 -1
  531. package/build-types/theme/test/color-algorithms.d.ts +2 -0
  532. package/build-types/theme/test/color-algorithms.d.ts.map +1 -0
  533. package/build-types/theme/types.d.ts +41 -3
  534. package/build-types/theme/types.d.ts.map +1 -1
  535. package/build-types/toggle-control/index.d.ts.map +1 -1
  536. package/build-types/toggle-group-control/stories/index.d.ts.map +1 -1
  537. package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +2 -2
  538. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +2 -2
  539. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +1 -2
  540. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  541. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +1 -1
  542. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
  543. package/build-types/toggle-group-control/types.d.ts +2 -1
  544. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  545. package/build-types/tools-panel/tools-panel/hook.d.ts +2 -2
  546. package/build-types/tools-panel/tools-panel-header/hook.d.ts +2 -2
  547. package/build-types/tools-panel/tools-panel-item/hook.d.ts +2 -2
  548. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  549. package/build-types/truncate/hook.d.ts +2 -2
  550. package/build-types/ui/context/context-system-provider.d.ts.map +1 -1
  551. package/build-types/ui/control-group/hook.d.ts +2 -2
  552. package/build-types/ui/control-label/hook.d.ts +2 -2
  553. package/build-types/ui/form-group/form-group.d.ts +2 -2
  554. package/build-types/ui/form-group/use-form-group.d.ts +5 -5
  555. package/build-types/unit-control/index.d.ts +2 -1
  556. package/build-types/unit-control/index.d.ts.map +1 -1
  557. package/build-types/unit-control/styles/unit-control-styles.d.ts +2 -2
  558. package/build-types/unit-control/types.d.ts +4 -0
  559. package/build-types/unit-control/types.d.ts.map +1 -1
  560. package/build-types/utils/colors-values.d.ts +1 -0
  561. package/build-types/utils/colors-values.d.ts.map +1 -1
  562. package/build-types/utils/config-values.d.ts +0 -2
  563. package/build-types/utils/hooks/use-controlled-value.d.ts +2 -1
  564. package/build-types/utils/hooks/use-controlled-value.d.ts.map +1 -1
  565. package/build-types/v-stack/component.d.ts +2 -2
  566. package/build-types/v-stack/hook.d.ts +2 -2
  567. package/build-types/v-stack/stories/index.d.ts +2 -2
  568. package/build-types/view/index.d.ts +1 -1
  569. package/build-types/view/index.d.ts.map +1 -1
  570. package/package.json +21 -20
  571. package/src/alignment-matrix-control/README.md +7 -7
  572. package/src/alignment-matrix-control/{cell.js → cell.tsx} +7 -1
  573. package/src/alignment-matrix-control/{icon.js → icon.tsx} +6 -3
  574. package/src/alignment-matrix-control/{index.js → index.tsx} +31 -4
  575. package/src/alignment-matrix-control/stories/{index.js → index.tsx} +17 -9
  576. package/src/alignment-matrix-control/styles/{alignment-matrix-control-icon-styles.js → alignment-matrix-control-icon-styles.ts} +11 -3
  577. package/src/alignment-matrix-control/styles/{alignment-matrix-control-styles.js → alignment-matrix-control-styles.ts} +13 -3
  578. package/src/alignment-matrix-control/test/{index.js → index.tsx} +5 -5
  579. package/src/alignment-matrix-control/types.ts +54 -0
  580. package/src/alignment-matrix-control/{utils.js → utils.tsx} +24 -14
  581. package/src/angle-picker-control/index.js +2 -1
  582. package/src/angle-picker-control/styles/angle-picker-control-styles.js +4 -0
  583. package/src/autocomplete/index.js +55 -15
  584. package/src/autocomplete/style.scss +1 -1
  585. package/src/base-control/README.md +21 -12
  586. package/src/base-control/hooks.ts +45 -0
  587. package/src/base-control/index.tsx +18 -7
  588. package/src/base-control/stories/index.tsx +8 -10
  589. package/src/base-control/test/index.tsx +52 -0
  590. package/src/base-control/types.ts +8 -2
  591. package/src/base-field/README.md +21 -22
  592. package/src/base-field/{hook.js → hook.ts} +5 -15
  593. package/src/base-field/{index.js → index.ts} +0 -0
  594. package/src/base-field/{styles.js → styles.ts} +2 -2
  595. package/src/base-field/test/__snapshots__/{index.js.snap → index.tsx.snap} +13 -11
  596. package/src/base-field/test/index.tsx +84 -0
  597. package/src/base-field/types.ts +29 -0
  598. package/src/border-box-control/border-box-control/README.md +6 -17
  599. package/src/border-box-control/border-box-control/component.tsx +1 -1
  600. package/src/border-box-control/border-box-control/hook.ts +18 -4
  601. package/src/border-box-control/border-box-control-split-controls/hook.ts +10 -0
  602. package/src/border-box-control/test/index.js +3 -1
  603. package/src/border-box-control/types.ts +32 -58
  604. package/src/border-control/border-control/README.md +4 -17
  605. package/src/border-control/border-control/component.tsx +3 -2
  606. package/src/border-control/border-control/hook.ts +10 -0
  607. package/src/border-control/border-control-dropdown/component.tsx +7 -6
  608. package/src/border-control/border-control-dropdown/hook.ts +9 -1
  609. package/src/border-control/styles.ts +1 -10
  610. package/src/border-control/types.ts +43 -80
  611. package/src/box-control/linked-button.js +8 -11
  612. package/src/box-control/test/index.js +206 -135
  613. package/src/button/stories/index.js +30 -0
  614. package/src/button/style.scss +17 -14
  615. package/src/button/test/index.js +32 -15
  616. package/src/card/test/__snapshots__/index.tsx.snap +64 -368
  617. package/src/card/test/index.tsx +34 -22
  618. package/src/checkbox-control/style.scss +3 -3
  619. package/src/circular-option-picker/style.scss +1 -0
  620. package/src/color-palette/README.md +12 -16
  621. package/src/color-palette/index.tsx +5 -7
  622. package/src/color-palette/stories/index.tsx +1 -5
  623. package/src/color-palette/style.scss +1 -1
  624. package/src/color-palette/test/__snapshots__/index.tsx.snap +4 -4
  625. package/src/color-palette/test/index.tsx +84 -36
  626. package/src/color-palette/types.ts +14 -10
  627. package/src/color-picker/README.md +1 -0
  628. package/src/color-picker/input-with-slider.tsx +14 -2
  629. package/src/color-picker/styles.ts +0 -4
  630. package/src/confirm-dialog/README.md +3 -2
  631. package/src/custom-select-control/README.md +14 -0
  632. package/src/custom-select-control/index.js +21 -2
  633. package/src/custom-select-control/stories/index.js +1 -0
  634. package/src/custom-select-control/style.scss +6 -1
  635. package/src/custom-select-control/test/index.js +39 -0
  636. package/src/dashicon/index.tsx +51 -0
  637. package/src/dashicon/types.ts +17 -0
  638. package/src/date-time/date/test/index.tsx +2 -2
  639. package/src/date-time/date-time/index.tsx +2 -2
  640. package/src/date-time/types.ts +0 -19
  641. package/src/dimension-control/test/__snapshots__/index.test.js.snap +4 -8
  642. package/src/disabled/test/index.tsx +21 -11
  643. package/src/divider/test/index.tsx +4 -4
  644. package/src/draggable/README.md +13 -18
  645. package/src/draggable/{index.js → index.tsx} +71 -47
  646. package/src/draggable/stories/index.tsx +83 -0
  647. package/src/draggable/types.ts +58 -0
  648. package/src/drop-zone/style.scss +1 -1
  649. package/src/dropdown/test/index.js +39 -49
  650. package/src/dropdown-menu/test/index.js +18 -12
  651. package/src/duotone-picker/duotone-picker.js +2 -2
  652. package/src/flex/flex/hook.ts +0 -3
  653. package/src/flex/test/index.tsx +29 -3
  654. package/src/focal-point-picker/focal-point.tsx +2 -24
  655. package/src/focal-point-picker/styles/focal-point-style.ts +8 -32
  656. package/src/focal-point-picker/test/media.js +26 -21
  657. package/src/font-size-picker/constants.ts +37 -0
  658. package/src/font-size-picker/font-size-picker-select.tsx +98 -0
  659. package/src/font-size-picker/font-size-picker-toggle-group.tsx +41 -0
  660. package/src/font-size-picker/index.tsx +55 -118
  661. package/src/font-size-picker/test/index.tsx +253 -44
  662. package/src/font-size-picker/test/utils.ts +58 -98
  663. package/src/font-size-picker/types.ts +25 -16
  664. package/src/font-size-picker/utils.ts +16 -102
  665. package/src/form-toggle/style.scss +3 -3
  666. package/src/form-token-field/index.tsx +13 -5
  667. package/src/form-token-field/style.scss +3 -3
  668. package/src/form-token-field/test/index.tsx +6 -6
  669. package/src/gradient-picker/index.js +5 -8
  670. package/src/grid/test/grid.tsx +31 -31
  671. package/src/higher-order/navigate-regions/index.js +4 -0
  672. package/src/higher-order/navigate-regions/style.scss +52 -20
  673. package/src/higher-order/with-fallback-styles/index.js +4 -2
  674. package/src/higher-order/with-filters/test/index.js +94 -101
  675. package/src/higher-order/with-focus-return/test/index.js +1 -4
  676. package/src/higher-order/with-notices/test/index.js +1 -1
  677. package/src/icon/index.tsx +3 -2
  678. package/src/icon/test/index.js +10 -0
  679. package/src/index.js +3 -2
  680. package/src/input-control/index.tsx +42 -28
  681. package/src/input-control/input-base.tsx +8 -1
  682. package/src/input-control/stories/index.tsx +6 -0
  683. package/src/input-control/test/index.js +18 -0
  684. package/src/input-control/types.ts +2 -0
  685. package/src/item-group/stories/index.js +1 -1
  686. package/src/menu-group/{index.js → index.tsx} +22 -3
  687. package/src/menu-group/test/{index.js → index.tsx} +0 -0
  688. package/src/menu-group/types.ts +23 -0
  689. package/src/menu-item/style.scss +1 -1
  690. package/src/mobile/bottom-sheet/cell.native.js +1 -1
  691. package/src/mobile/bottom-sheet/switch-cell.native.js +2 -2
  692. package/src/mobile/bottom-sheet/test/range-cell.native.js +4 -4
  693. package/src/mobile/global-styles-context/index.native.js +9 -11
  694. package/src/mobile/html-text-input/test/index.native.js +2 -2
  695. package/src/mobile/keyboard-aware-flat-list/index.ios.js +2 -2
  696. package/src/mobile/link-settings/test/edit.native.js +70 -126
  697. package/src/mobile/link-settings/test/link-settings-navigation.native.js +5 -5
  698. package/src/modal/index.tsx +11 -0
  699. package/src/modal/stories/index.tsx +3 -0
  700. package/src/modal/test/index.tsx +15 -0
  701. package/src/navigation/stories/index.js +6 -6
  702. package/src/navigation/stories/{controlled-state.js → utils/controlled-state.js} +3 -3
  703. package/src/navigation/stories/{default.js → utils/default.js} +3 -3
  704. package/src/navigation/stories/{group.js → utils/group.js} +4 -4
  705. package/src/navigation/stories/{hide-if-empty.js → utils/hide-if-empty.js} +3 -3
  706. package/src/navigation/stories/{more-examples.js → utils/more-examples.js} +4 -4
  707. package/src/navigation/stories/{search.js → utils/search.js} +5 -5
  708. package/src/navigator/navigator-provider/component.tsx +13 -10
  709. package/src/navigator/navigator-screen/component.tsx +8 -3
  710. package/src/notice/README.md +2 -1
  711. package/src/notice/style.scss +1 -1
  712. package/src/notice/test/list.js +8 -5
  713. package/src/number-control/stories/{index.js → index.tsx} +24 -7
  714. package/src/number-control/styles/{number-control-styles.js → number-control-styles.ts} +5 -3
  715. package/src/number-control/test/index.tsx +600 -0
  716. package/src/palette-edit/index.js +91 -39
  717. package/src/palette-edit/test/index.js +25 -1
  718. package/src/panel/style.scss +1 -1
  719. package/src/popover/index.tsx +28 -9
  720. package/src/popover/style.scss +12 -11
  721. package/src/popover/test/index.tsx +25 -15
  722. package/src/query-controls/index.js +1 -0
  723. package/src/range-control/styles/range-control-styles.ts +2 -2
  724. package/src/range-control/test/index.tsx +57 -60
  725. package/src/resizable-box/style.scss +3 -2
  726. package/src/sandbox/test/index.js +13 -11
  727. package/src/scrollable/test/index.tsx +7 -3
  728. package/src/search-control/style.scss +5 -1
  729. package/src/snackbar/README.md +63 -8
  730. package/src/snackbar/{index.js → index.tsx} +46 -28
  731. package/src/snackbar/{list.js → list.tsx} +20 -21
  732. package/src/snackbar/stories/index.tsx +96 -0
  733. package/src/snackbar/stories/list.tsx +98 -0
  734. package/src/snackbar/style.scss +2 -2
  735. package/src/snackbar/types.ts +116 -0
  736. package/src/spacer/test/index.tsx +33 -3
  737. package/src/spinner/styles.ts +1 -1
  738. package/src/surface/test/index.tsx +12 -12
  739. package/src/tab-panel/README.md +9 -0
  740. package/src/tab-panel/index.tsx +23 -9
  741. package/src/tab-panel/style.scss +46 -35
  742. package/src/tab-panel/test/index.tsx +111 -0
  743. package/src/tab-panel/types.ts +20 -1
  744. package/src/text/test/__snapshots__/index.tsx.snap +1 -0
  745. package/src/text/test/index.tsx +100 -48
  746. package/src/text-control/stories/index.tsx +0 -1
  747. package/src/text-control/types.ts +1 -6
  748. package/src/theme/README.md +32 -2
  749. package/src/theme/color-algorithms.ts +138 -0
  750. package/src/theme/index.tsx +23 -16
  751. package/src/theme/stories/index.tsx +67 -0
  752. package/src/theme/styles.ts +22 -17
  753. package/src/theme/test/color-algorithms.ts +100 -0
  754. package/src/theme/test/index.tsx +68 -35
  755. package/src/theme/types.ts +43 -3
  756. package/src/toggle-control/index.tsx +4 -2
  757. package/src/toggle-group-control/stories/index.tsx +2 -0
  758. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +6 -8
  759. package/src/toggle-group-control/test/index.tsx +40 -17
  760. package/src/toggle-group-control/toggle-group-control/README.md +8 -1
  761. package/src/toggle-group-control/toggle-group-control/component.tsx +1 -1
  762. package/src/toggle-group-control/toggle-group-control/styles.ts +22 -16
  763. package/src/toggle-group-control/types.ts +2 -1
  764. package/src/toolbar-group/test/index.js +8 -6
  765. package/src/tools-panel/stories/index.js +1 -1
  766. package/src/tools-panel/stories/{tools-panel-with-item-group-slot.js → utils/tools-panel-with-item-group-slot.js} +14 -11
  767. package/src/tools-panel/styles.ts +1 -1
  768. package/src/tools-panel/test/index.js +20 -14
  769. package/src/tools-panel/tools-panel-item/hook.ts +6 -1
  770. package/src/tooltip/README.md +7 -0
  771. package/src/tooltip/style.scss +2 -2
  772. package/src/tooltip/test/index.js +109 -18
  773. package/src/tree-grid/test/index.js +12 -12
  774. package/src/truncate/test/index.tsx +9 -9
  775. package/src/ui/context/context-system-provider.js +3 -2
  776. package/src/ui/context/test/context-system-provider.js +5 -4
  777. package/src/ui/control-label/test/index.js +3 -5
  778. package/src/ui/form-group/test/index.js +16 -17
  779. package/src/unit-control/README.md +9 -1
  780. package/src/unit-control/index.tsx +3 -0
  781. package/src/unit-control/test/index.tsx +1 -0
  782. package/src/unit-control/types.ts +4 -0
  783. package/src/utils/colors-values.js +5 -3
  784. package/src/utils/config-values.js +0 -2
  785. package/src/utils/hooks/stories/use-cx.js +1 -1
  786. package/src/utils/hooks/use-controlled-value.ts +2 -2
  787. package/src/utils/input/base.js +2 -2
  788. package/src/utils/theme-variables.scss +20 -0
  789. package/src/view/{index.js → index.ts} +0 -0
  790. package/tsconfig.json +2 -4
  791. package/tsconfig.tsbuildinfo +1 -1
  792. package/src/base-field/test/index.js +0 -67
  793. package/src/dashicon/index.js +0 -26
  794. package/src/draggable/stories/index.js +0 -72
  795. package/src/number-control/test/index.js +0 -478
  796. package/src/snackbar/stories/index.js +0 -89
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { render } from '@testing-library/react';
4
+ import { render, screen } from '@testing-library/react';
5
5
 
6
6
  /**
7
7
  * Internal dependencies
@@ -18,7 +18,7 @@ import {
18
18
  describe( 'Card', () => {
19
19
  describe( 'Card component', () => {
20
20
  it( 'should render correctly', () => {
21
- const wrapper = render(
21
+ const { container } = render(
22
22
  <Card>
23
23
  <CardHeader>Card Header</CardHeader>
24
24
  <CardBody>Card Body 1</CardBody>
@@ -34,31 +34,43 @@ describe( 'Card', () => {
34
34
  <CardFooter>Card Footer</CardFooter>
35
35
  </Card>
36
36
  );
37
- expect( wrapper ).toMatchSnapshot();
37
+ expect( container ).toMatchSnapshot();
38
38
  } );
39
39
 
40
40
  it( 'should remove borders when the isBorderless prop is true', () => {
41
- const { rerender, container } = render(
42
- <Card>Code is Poetry</Card>
41
+ const { rerender } = render(
42
+ <Card data-testid="card-wrapper">Code is Poetry</Card>
43
43
  );
44
- expect( container.firstChild ).not.toHaveStyle(
44
+
45
+ expect( screen.getByTestId( 'card-wrapper' ) ).not.toHaveStyle(
45
46
  'box-shadow: none'
46
47
  );
47
48
 
48
- rerender( <Card isBorderless={ true }>Code is Poetry</Card> );
49
- expect( container.firstChild ).toHaveStyle( 'box-shadow: none' );
49
+ rerender(
50
+ <Card data-testid="card-wrapper" isBorderless>
51
+ Code is Poetry
52
+ </Card>
53
+ );
54
+
55
+ expect( screen.getByTestId( 'card-wrapper' ) ).toHaveStyle(
56
+ 'box-shadow: none'
57
+ );
50
58
  } );
51
59
 
52
60
  it( 'should add rounded border when the isRounded prop is true', () => {
53
- const { container: containerRounded } = render(
54
- <Card isRounded={ true }>Code is Poetry</Card>
61
+ render(
62
+ <Card data-testid="card-rounded" isRounded>
63
+ Code is Poetry
64
+ </Card>
55
65
  );
56
- const { container: containerSquared } = render(
57
- <Card isRounded={ false }>Code is Poetry</Card>
66
+ render(
67
+ <Card data-testid="card-squared" isRounded={ false }>
68
+ Code is Poetry
69
+ </Card>
58
70
  );
59
71
  expect(
60
- containerRounded.firstElementChild
61
- ).toMatchStyleDiffSnapshot( containerSquared.firstElementChild );
72
+ screen.getByTestId( 'card-rounded' )
73
+ ).toMatchStyleDiffSnapshot( screen.getByTestId( 'card-squared' ) );
62
74
  } );
63
75
 
64
76
  it( 'should show a box shadow when the elevation prop is greater than 0', () => {
@@ -94,7 +106,7 @@ describe( 'Card', () => {
94
106
  it( 'should warn when the isElevated prop is passed', () => {
95
107
  // `isElevated` is automatically converted to `elevation="2"`
96
108
  const { container } = render(
97
- <Card isElevated={ true }>Code is Poetry</Card>
109
+ <Card isElevated>Code is Poetry</Card>
98
110
  );
99
111
  expect( container ).toMatchSnapshot();
100
112
 
@@ -103,7 +115,7 @@ describe( 'Card', () => {
103
115
 
104
116
  it( 'should pass the isBorderless and isSize props from its context to its sub-components', () => {
105
117
  const { container: withoutBorderLarge } = render(
106
- <Card isBorderless={ true } size="large">
118
+ <Card isBorderless size="large">
107
119
  <CardHeader>Header</CardHeader>
108
120
  <CardBody>Body</CardBody>
109
121
  <CardFooter>Footer</CardFooter>
@@ -121,14 +133,14 @@ describe( 'Card', () => {
121
133
 
122
134
  it( 'should get the isBorderless and isSize props (passed from its context) overriddenwhen the same props is specified directly on the component', () => {
123
135
  const { container: withoutBorder } = render(
124
- <Card isBorderless={ true } size="large">
136
+ <Card isBorderless size="large">
125
137
  <CardHeader>Header</CardHeader>
126
138
  <CardBody>Body</CardBody>
127
139
  <CardFooter>Footer</CardFooter>
128
140
  </Card>
129
141
  );
130
142
  const { container: withBorder } = render(
131
- <Card isBorderless={ true } size="large">
143
+ <Card isBorderless size="large">
132
144
  <CardHeader isBorderless={ false } size="small">
133
145
  Header
134
146
  </CardHeader>
@@ -165,7 +177,7 @@ describe( 'Card', () => {
165
177
  it( 'should render with a darker background color when isShady is true', () => {
166
178
  const { container } = render( <CardHeader>Header</CardHeader> );
167
179
  const { container: containerShady } = render(
168
- <CardHeader isShady={ true }>Header</CardHeader>
180
+ <CardHeader isShady>Header</CardHeader>
169
181
  );
170
182
  expect( container ).toMatchDiffSnapshot( containerShady );
171
183
  } );
@@ -175,7 +187,7 @@ describe( 'Card', () => {
175
187
  it( 'should render with a darker background color when isShady is true', () => {
176
188
  const { container } = render( <CardFooter>Footer</CardFooter> );
177
189
  const { container: containerShady } = render(
178
- <CardFooter isShady={ true }>Footer</CardFooter>
190
+ <CardFooter isShady>Footer</CardFooter>
179
191
  );
180
192
  expect( container ).toMatchDiffSnapshot( containerShady );
181
193
  } );
@@ -193,14 +205,14 @@ describe( 'Card', () => {
193
205
  it( 'should render with a darker background color when isShady is true', () => {
194
206
  const { container } = render( <CardBody>Body</CardBody> );
195
207
  const { container: containerShady } = render(
196
- <CardBody isShady={ true }>Body</CardBody>
208
+ <CardBody isShady>Body</CardBody>
197
209
  );
198
210
  expect( container ).toMatchDiffSnapshot( containerShady );
199
211
  } );
200
212
 
201
213
  it( 'should allow scrolling content with the scrollable prop is true', () => {
202
214
  const { container: containerScrollable } = render(
203
- <CardBody isScrollable={ true }>Body</CardBody>
215
+ <CardBody isScrollable>Body</CardBody>
204
216
  );
205
217
  const { container } = render( <CardBody>Body</CardBody> );
206
218
  expect( container ).toMatchDiffSnapshot( containerScrollable );
@@ -27,7 +27,7 @@ $checkbox-input-size-sm: 24px; // Width & height for small viewports.
27
27
  @include reduce-motion("transition");
28
28
 
29
29
  &:focus {
30
- box-shadow: 0 0 0 ($border-width * 2) $white, 0 0 0 ($border-width * 2 + $border-width-focus) var(--wp-admin-theme-color);
30
+ box-shadow: 0 0 0 ($border-width * 2) $white, 0 0 0 ($border-width * 2 + $border-width-focus) $components-color-accent;
31
31
 
32
32
  // Only visible in Windows High Contrast mode.
33
33
  outline: 2px solid transparent;
@@ -35,8 +35,8 @@ $checkbox-input-size-sm: 24px; // Width & height for small viewports.
35
35
 
36
36
  &:checked,
37
37
  &:indeterminate {
38
- background: var(--wp-admin-theme-color);
39
- border-color: var(--wp-admin-theme-color);
38
+ background: $components-color-accent;
39
+ border-color: $components-color-accent;
40
40
 
41
41
  // Hide default checkbox styles in IE.
42
42
  &::-ms-check {
@@ -26,6 +26,7 @@ $color-palette-circle-spacing: 12px;
26
26
  vertical-align: top;
27
27
  transform: scale(1);
28
28
  transition: 100ms transform ease;
29
+ will-change: transform;
29
30
  @include reduce-motion("transition");
30
31
 
31
32
  &:hover {
@@ -36,6 +36,13 @@ for the `ColorPalette`'s color swatches, by rendering your `ColorPalette` with a
36
36
 
37
37
  The component accepts the following props.
38
38
 
39
+ ### `clearable`: `boolean`
40
+
41
+ Whether the palette should have a clearing button.
42
+
43
+ - Required: No
44
+ - Default: `true`
45
+
39
46
  ### `colors`: `( PaletteObject | ColorObject )[]`
40
47
 
41
48
  Array with the colors to be shown. When displaying multiple color palettes to choose from, the format of the array changes from an array of colors objects, to an array of color palettes.
@@ -45,21 +52,23 @@ Array with the colors to be shown. When displaying multiple color palettes to ch
45
52
 
46
53
  ### `disableCustomColors`: `boolean`
47
54
 
48
- Whether to allow the user to pick a custom color on top of the predefined choices (defined via the `colors` prop).
55
+ Whether to allow the user to pick a custom color on top of the predefined
56
+ choices (defined via the `colors` prop).
49
57
 
50
58
  - Required: No
51
59
  - Default: `false`
52
60
 
53
61
  ### `enableAlpha`: `boolean`
54
62
 
55
- Whether the color picker should display the alpha channel both in the bottom inputs as well as in the color picker itself.
63
+ This controls whether the alpha channel will be offered when selecting custom
64
+ colors.
56
65
 
57
66
  - Required: No
58
67
  - Default: `false`
59
68
 
60
69
  ### `value`: `string`
61
70
 
62
- currently active value
71
+ Currently active value.
63
72
 
64
73
  - Required: No
65
74
 
@@ -68,16 +77,3 @@ currently active value
68
77
  Callback called when a color is selected.
69
78
 
70
79
  - Required: Yes
71
-
72
- ### `className`: `string`
73
-
74
- classes to be applied to the container.
75
-
76
- - Required: No
77
-
78
- ### `clearable`: `boolean`
79
-
80
- Whether the palette should have a clearing button.
81
-
82
- - Required: No
83
- - Default: `true`
@@ -70,7 +70,7 @@ function SinglePalette( {
70
70
  }
71
71
  style={ { backgroundColor: color, color } }
72
72
  onClick={
73
- isSelected ? clearColor : () => onChange( color )
73
+ isSelected ? clearColor : () => onChange( color, index )
74
74
  }
75
75
  aria-label={
76
76
  name
@@ -84,10 +84,6 @@ function SinglePalette( {
84
84
  } );
85
85
  }, [ colors, value, onChange, clearColor ] );
86
86
 
87
- if ( colors.length === 0 ) {
88
- return null;
89
- }
90
-
91
87
  return (
92
88
  <CircularOptionPicker
93
89
  className={ className }
@@ -118,7 +114,9 @@ function MultiplePalettes( {
118
114
  <SinglePalette
119
115
  clearColor={ clearColor }
120
116
  colors={ colorPalette }
121
- onChange={ onChange }
117
+ onChange={ ( newColor ) =>
118
+ onChange( newColor, index )
119
+ }
122
120
  value={ value }
123
121
  actions={
124
122
  colors.length === index + 1 ? actions : null
@@ -223,7 +221,7 @@ function UnforwardedColorPalette(
223
221
  clearable = true,
224
222
  colors = [],
225
223
  disableCustomColors = false,
226
- enableAlpha,
224
+ enableAlpha = false,
227
225
  onChange,
228
226
  value,
229
227
  __experimentalHasMultipleOrigins = false,
@@ -15,7 +15,6 @@ import { useState } from '@wordpress/element';
15
15
  import ColorPalette from '..';
16
16
  import Popover from '../../popover';
17
17
  import { Provider as SlotFillProvider } from '../../slot-fill';
18
- import type { ColorObject, PaletteObject } from '../types';
19
18
 
20
19
  const meta: ComponentMeta< typeof ColorPalette > = {
21
20
  title: 'Components/ColorPalette',
@@ -43,10 +42,7 @@ const Template: ComponentStory< typeof ColorPalette > = ( {
43
42
  onChange,
44
43
  ...args
45
44
  } ) => {
46
- const firstColor =
47
- ( args.colors as ColorObject[] )[ 0 ].color ||
48
- ( args.colors as PaletteObject[] )[ 0 ].colors[ 0 ].color;
49
- const [ color, setColor ] = useState< string | undefined >( firstColor );
45
+ const [ color, setColor ] = useState< string | undefined >();
50
46
 
51
47
  return (
52
48
  <SlotFillProvider>
@@ -25,7 +25,7 @@
25
25
  outline: 1px solid transparent;
26
26
 
27
27
  &:focus {
28
- box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
28
+ box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) $components-color-accent;
29
29
  // Show a outline in Windows high contrast mode.
30
30
  outline-width: 2px;
31
31
  }
@@ -63,10 +63,10 @@ exports[`ColorPalette should allow disabling custom color picker 1`] = `
63
63
  class="components-circular-option-picker__option-wrapper"
64
64
  >
65
65
  <button
66
- aria-label="Color: white"
66
+ aria-label="Color: green"
67
67
  aria-pressed="false"
68
68
  class="components-button components-circular-option-picker__option"
69
- style="background-color: rgb(255, 255, 255); color: rgb(255, 255, 255);"
69
+ style="background-color: rgb(0, 255, 0); color: rgb(0, 255, 0);"
70
70
  type="button"
71
71
  />
72
72
  </div>
@@ -235,10 +235,10 @@ exports[`ColorPalette should render a dynamic toolbar of colors 1`] = `
235
235
  class="components-circular-option-picker__option-wrapper"
236
236
  >
237
237
  <button
238
- aria-label="Color: white"
238
+ aria-label="Color: green"
239
239
  aria-pressed="false"
240
240
  class="components-button components-circular-option-picker__option"
241
- style="background-color: rgb(255, 255, 255); color: rgb(255, 255, 255);"
241
+ style="background-color: rgb(0, 255, 0); color: rgb(0, 255, 0);"
242
242
  type="button"
243
243
  />
244
244
  </div>
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { render, screen, within } from '@testing-library/react';
4
+ import { render, screen, within, waitFor } from '@testing-library/react';
5
5
  import userEvent from '@testing-library/user-event';
6
6
 
7
7
  /**
@@ -9,24 +9,25 @@ import userEvent from '@testing-library/user-event';
9
9
  */
10
10
  import ColorPalette from '..';
11
11
 
12
+ const EXAMPLE_COLORS = [
13
+ { name: 'red', color: '#f00' },
14
+ { name: 'green', color: '#0f0' },
15
+ { name: 'blue', color: '#00f' },
16
+ ];
17
+ const INITIAL_COLOR = EXAMPLE_COLORS[ 0 ].color;
18
+
19
+ function getWrappingPopoverElement( element: HTMLElement ) {
20
+ return element.closest( '.components-popover' );
21
+ }
22
+
12
23
  describe( 'ColorPalette', () => {
13
- const colors = [
14
- { name: 'red', color: '#f00' },
15
- { name: 'white', color: '#fff' },
16
- { name: 'blue', color: '#00f' },
17
- ];
18
- const currentColor = '#f00';
19
- const onChange = jest.fn();
20
-
21
- beforeEach( () => {
22
- onChange.mockClear();
23
- } );
24
+ it( 'should render a dynamic toolbar of colors', () => {
25
+ const onChange = jest.fn();
24
26
 
25
- test( 'should render a dynamic toolbar of colors', () => {
26
27
  const { container } = render(
27
28
  <ColorPalette
28
- colors={ colors }
29
- value={ currentColor }
29
+ colors={ EXAMPLE_COLORS }
30
+ value={ INITIAL_COLOR }
30
31
  onChange={ onChange }
31
32
  />
32
33
  );
@@ -34,11 +35,13 @@ describe( 'ColorPalette', () => {
34
35
  expect( container ).toMatchSnapshot();
35
36
  } );
36
37
 
37
- test( 'should render three color button options', () => {
38
+ it( 'should render three color button options', () => {
39
+ const onChange = jest.fn();
40
+
38
41
  render(
39
42
  <ColorPalette
40
- colors={ colors }
41
- value={ currentColor }
43
+ colors={ EXAMPLE_COLORS }
44
+ value={ INITIAL_COLOR }
42
45
  onChange={ onChange }
43
46
  />
44
47
  );
@@ -48,15 +51,16 @@ describe( 'ColorPalette', () => {
48
51
  ).toHaveLength( 3 );
49
52
  } );
50
53
 
51
- test( 'should call onClick on an active button with undefined', async () => {
54
+ it( 'should call onClick on an active button with undefined', async () => {
52
55
  const user = userEvent.setup( {
53
56
  advanceTimers: jest.advanceTimersByTime,
54
57
  } );
58
+ const onChange = jest.fn();
55
59
 
56
60
  render(
57
61
  <ColorPalette
58
- colors={ colors }
59
- value={ currentColor }
62
+ colors={ EXAMPLE_COLORS }
63
+ value={ INITIAL_COLOR }
60
64
  onChange={ onChange }
61
65
  />
62
66
  );
@@ -69,19 +73,22 @@ describe( 'ColorPalette', () => {
69
73
  expect( onChange ).toHaveBeenCalledWith( undefined );
70
74
  } );
71
75
 
72
- test( 'should call onClick on an inactive button', async () => {
76
+ it( 'should call onClick on an inactive button', async () => {
73
77
  const user = userEvent.setup( {
74
78
  advanceTimers: jest.advanceTimersByTime,
75
79
  } );
80
+ const onChange = jest.fn();
76
81
 
77
82
  render(
78
83
  <ColorPalette
79
- colors={ colors }
80
- value={ currentColor }
84
+ colors={ EXAMPLE_COLORS }
85
+ value={ INITIAL_COLOR }
81
86
  onChange={ onChange }
82
87
  />
83
88
  );
84
89
 
90
+ // Click the first unpressed button
91
+ // (i.e. a button representing a color that is not the current color)
85
92
  await user.click(
86
93
  screen.getAllByRole( 'button', {
87
94
  name: /^Color:/,
@@ -89,19 +96,21 @@ describe( 'ColorPalette', () => {
89
96
  } )[ 0 ]
90
97
  );
91
98
 
99
+ // Expect the green color to have been selected
92
100
  expect( onChange ).toHaveBeenCalledTimes( 1 );
93
- expect( onChange ).toHaveBeenCalledWith( '#fff' );
101
+ expect( onChange ).toHaveBeenCalledWith( EXAMPLE_COLORS[ 1 ].color, 1 );
94
102
  } );
95
103
 
96
- test( 'should call onClick with undefined, when the clearButton onClick is triggered', async () => {
104
+ it( 'should call onClick with undefined, when the clearButton onClick is triggered', async () => {
97
105
  const user = userEvent.setup( {
98
106
  advanceTimers: jest.advanceTimersByTime,
99
107
  } );
108
+ const onChange = jest.fn();
100
109
 
101
110
  render(
102
111
  <ColorPalette
103
- colors={ colors }
104
- value={ currentColor }
112
+ colors={ EXAMPLE_COLORS }
113
+ value={ INITIAL_COLOR }
105
114
  onChange={ onChange }
106
115
  />
107
116
  );
@@ -112,12 +121,14 @@ describe( 'ColorPalette', () => {
112
121
  expect( onChange ).toHaveBeenCalledWith( undefined );
113
122
  } );
114
123
 
115
- test( 'should allow disabling custom color picker', () => {
124
+ it( 'should allow disabling custom color picker', () => {
125
+ const onChange = jest.fn();
126
+
116
127
  const { container } = render(
117
128
  <ColorPalette
118
- colors={ colors }
129
+ colors={ EXAMPLE_COLORS }
119
130
  disableCustomColors
120
- value={ currentColor }
131
+ value={ INITIAL_COLOR }
121
132
  onChange={ onChange }
122
133
  />
123
134
  );
@@ -125,15 +136,16 @@ describe( 'ColorPalette', () => {
125
136
  expect( container ).toMatchSnapshot();
126
137
  } );
127
138
 
128
- test( 'should render dropdown and its content', async () => {
139
+ it( 'should render dropdown and its content', async () => {
129
140
  const user = userEvent.setup( {
130
141
  advanceTimers: jest.advanceTimersByTime,
131
142
  } );
143
+ const onChange = jest.fn();
132
144
 
133
145
  render(
134
146
  <ColorPalette
135
- colors={ colors }
136
- value={ currentColor }
147
+ colors={ EXAMPLE_COLORS }
148
+ value={ INITIAL_COLOR }
137
149
  onChange={ onChange }
138
150
  />
139
151
  );
@@ -153,12 +165,48 @@ describe( 'ColorPalette', () => {
153
165
  expect( dropdownButton ).toBeVisible();
154
166
 
155
167
  expect(
156
- within( dropdownButton ).getByText( colors[ 0 ].name )
168
+ within( dropdownButton ).getByText( EXAMPLE_COLORS[ 0 ].name )
157
169
  ).toBeVisible();
170
+
158
171
  expect(
159
172
  within( dropdownButton ).getByText(
160
- colors[ 0 ].color.replace( '#', '' )
173
+ EXAMPLE_COLORS[ 0 ].color.replace( '#', '' )
161
174
  )
162
175
  ).toBeVisible();
176
+
177
+ // Check that the popover with custom color input has appeared.
178
+ const dropdownColorInput = screen.getByLabelText( 'Hex color' );
179
+
180
+ await waitFor( () =>
181
+ expect(
182
+ getWrappingPopoverElement( dropdownColorInput )
183
+ ).toBePositionedPopover()
184
+ );
185
+ } );
186
+
187
+ it( 'should show the clear button by default', () => {
188
+ const onChange = jest.fn();
189
+
190
+ render(
191
+ <ColorPalette
192
+ colors={ EXAMPLE_COLORS }
193
+ value={ INITIAL_COLOR }
194
+ onChange={ onChange }
195
+ />
196
+ );
197
+
198
+ expect(
199
+ screen.getByRole( 'button', { name: 'Clear' } )
200
+ ).toBeInTheDocument();
201
+ } );
202
+
203
+ it( 'should show the clear button even when `colors` is an empty array', () => {
204
+ const onChange = jest.fn();
205
+
206
+ render( <ColorPalette colors={ [] } onChange={ onChange } /> );
207
+
208
+ expect(
209
+ screen.getByRole( 'button', { name: 'Clear' } )
210
+ ).toBeInTheDocument();
163
211
  } );
164
212
  } );
@@ -3,7 +3,10 @@
3
3
  */
4
4
  import type { CSSProperties, MouseEventHandler, ReactNode } from 'react';
5
5
 
6
- type OnColorChange = ( newColor?: string ) => void;
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import type { PopoverProps } from '../popover/types';
7
10
 
8
11
  export type ColorObject = {
9
12
  name: string;
@@ -18,7 +21,10 @@ export type PaletteObject = {
18
21
  type PaletteProps = {
19
22
  className?: string;
20
23
  clearColor: () => void;
21
- onChange: OnColorChange;
24
+ /**
25
+ * Callback called when a color is selected.
26
+ */
27
+ onChange: ( newColor?: string, index?: number ) => void;
22
28
  value?: string;
23
29
  actions?: ReactNode;
24
30
  };
@@ -35,14 +41,14 @@ export type MultiplePalettesProps = PaletteProps & {
35
41
  export type CustomColorPickerDropdownProps = {
36
42
  isRenderedInSidebar: boolean;
37
43
  renderContent: () => ReactNode;
38
- popoverProps?: string[];
44
+ popoverProps?: Omit< PopoverProps, 'children' >;
39
45
  renderToggle: ( props: {
40
46
  isOpen: boolean;
41
47
  onToggle: MouseEventHandler< HTMLButtonElement >;
42
48
  } ) => ReactNode;
43
49
  };
44
50
 
45
- export type ColorPaletteProps = {
51
+ export type ColorPaletteProps = Pick< PaletteProps, 'onChange' > & {
46
52
  /**
47
53
  * Whether the palette should have a clearing button.
48
54
  *
@@ -65,14 +71,12 @@ export type ColorPaletteProps = {
65
71
  */
66
72
  disableCustomColors?: boolean;
67
73
  /**
68
- * Whether the color picker should display the alpha channel
69
- * both in the bottom inputs as well as in the color picker itself.
74
+ * This controls whether the alpha channel will be offered when selecting
75
+ * custom colors.
76
+ *
77
+ * @default false
70
78
  */
71
79
  enableAlpha?: boolean;
72
- /**
73
- * Callback called when a color is selected.
74
- */
75
- onChange: OnColorChange;
76
80
  /**
77
81
  * Currently active value.
78
82
  */
@@ -6,6 +6,7 @@
6
6
 
7
7
  ```jsx
8
8
  import { ColorPicker } from '@wordpress/components';
9
+ import { useState } from '@wordpress/element';
9
10
 
10
11
  function Example() {
11
12
  const [color, setColor] = useState();
@@ -25,6 +25,18 @@ export const InputWithSlider = ( {
25
25
  onChange,
26
26
  value,
27
27
  }: InputWithSliderProps ) => {
28
+ const onNumberControlChange = ( newValue?: number | string ) => {
29
+ if ( ! newValue ) {
30
+ onChange( 0 );
31
+ return;
32
+ }
33
+ if ( typeof newValue === 'string' ) {
34
+ onChange( parseInt( newValue, 10 ) );
35
+ return;
36
+ }
37
+ onChange( newValue );
38
+ };
39
+
28
40
  return (
29
41
  <HStack spacing={ 4 }>
30
42
  <NumberControlWrapper
@@ -33,8 +45,7 @@ export const InputWithSlider = ( {
33
45
  label={ label }
34
46
  hideLabelFromVision
35
47
  value={ value }
36
- // @ts-expect-error TODO: Resolve discrepancy in NumberControl
37
- onChange={ onChange }
48
+ onChange={ onNumberControlChange }
38
49
  prefix={
39
50
  <Spacer
40
51
  as={ Text }
@@ -49,6 +60,7 @@ export const InputWithSlider = ( {
49
60
  size="__unstable-large"
50
61
  />
51
62
  <RangeControl
63
+ __nextHasNoMarginBottom
52
64
  label={ label }
53
65
  hideLabelFromVision
54
66
  min={ min }
@@ -38,10 +38,6 @@ export const SelectControl = styled( InnerSelectControl )`
38
38
  export const RangeControl = styled( InnerRangeControl )`
39
39
  flex: 1;
40
40
  margin-right: ${ space( 2 ) };
41
-
42
- ${ StyledField } {
43
- margin-bottom: 0;
44
- }
45
41
  `;
46
42
 
47
43
  // Make the Hue circle picker not go out of the bar.