@wordpress/components 19.17.0 → 20.0.1-next.d6164808d3.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 (599) hide show
  1. package/CHANGELOG.md +68 -1
  2. package/build/alignment-matrix-control/index.js +1 -1
  3. package/build/alignment-matrix-control/index.js.map +1 -1
  4. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +9 -9
  5. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  6. package/build/angle-picker-control/index.js +3 -0
  7. package/build/angle-picker-control/index.js.map +1 -1
  8. package/build/angle-picker-control/styles/angle-picker-control-styles.js +14 -4
  9. package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  10. package/build/autocomplete/index.js +9 -11
  11. package/build/autocomplete/index.js.map +1 -1
  12. package/build/base-control/styles/base-control-styles.js +8 -8
  13. package/build/base-control/styles/base-control-styles.js.map +1 -1
  14. package/build/base-field/styles.js +5 -5
  15. package/build/base-field/styles.js.map +1 -1
  16. package/build/box-control/styles/box-control-visualizer-styles.js +8 -8
  17. package/build/box-control/styles/box-control-visualizer-styles.js.map +1 -1
  18. package/build/color-list-picker/index.js +16 -5
  19. package/build/color-list-picker/index.js.map +1 -1
  20. package/build/color-palette/index.js +22 -12
  21. package/build/color-palette/index.js.map +1 -1
  22. package/build/color-palette/index.native.js +3 -3
  23. package/build/color-palette/index.native.js.map +1 -1
  24. package/build/combobox-control/index.js +7 -4
  25. package/build/combobox-control/index.js.map +1 -1
  26. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/constants.js +0 -0
  27. package/build/custom-gradient-picker/gradient-bar/constants.js.map +1 -0
  28. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/control-points.js +34 -41
  29. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -0
  30. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/index.js +0 -1
  31. package/build/custom-gradient-picker/gradient-bar/index.js.map +1 -0
  32. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/utils.js +0 -0
  33. package/build/custom-gradient-picker/gradient-bar/utils.js.map +1 -0
  34. package/build/custom-gradient-picker/index.js +19 -4
  35. package/build/custom-gradient-picker/index.js.map +1 -1
  36. package/build/custom-select-control/index.js +21 -11
  37. package/build/custom-select-control/index.js.map +1 -1
  38. package/build/custom-select-control/styles.js +34 -0
  39. package/build/custom-select-control/styles.js.map +1 -0
  40. package/build/date-time/constants.js +9 -0
  41. package/build/date-time/constants.js.map +1 -0
  42. package/build/date-time/date/index.js +175 -186
  43. package/build/date-time/date/index.js.map +1 -1
  44. package/build/date-time/date/styles.js +59 -40
  45. package/build/date-time/date/styles.js.map +1 -1
  46. package/build/date-time/date-time/index.js +5 -2
  47. package/build/date-time/date-time/index.js.map +1 -1
  48. package/build/date-time/time/index.js +22 -17
  49. package/build/date-time/time/index.js.map +1 -1
  50. package/build/date-time/utils.js +27 -0
  51. package/build/date-time/utils.js.map +1 -0
  52. package/build/dimension-control/index.js +2 -6
  53. package/build/dimension-control/index.js.map +1 -1
  54. package/build/disabled/index.js +28 -11
  55. package/build/disabled/index.js.map +1 -1
  56. package/build/disabled/styles/disabled-styles.js +3 -3
  57. package/build/disabled/styles/disabled-styles.js.map +1 -1
  58. package/build/{swatch → disabled}/types.js +0 -0
  59. package/build/{swatch → disabled}/types.js.map +0 -0
  60. package/build/dropdown/index.js +5 -6
  61. package/build/dropdown/index.js.map +1 -1
  62. package/build/duotone-picker/custom-duotone-bar.js +2 -2
  63. package/build/duotone-picker/custom-duotone-bar.js.map +1 -1
  64. package/build/duotone-picker/duotone-picker.js +9 -1
  65. package/build/duotone-picker/duotone-picker.js.map +1 -1
  66. package/build/duotone-picker/duotone-swatch.js +13 -3
  67. package/build/duotone-picker/duotone-swatch.js.map +1 -1
  68. package/build/focal-point-picker/index.js +4 -6
  69. package/build/focal-point-picker/index.js.map +1 -1
  70. package/build/focal-point-picker/styles/focal-point-style.js +4 -4
  71. package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
  72. package/build/font-size-picker/index.js +43 -14
  73. package/build/font-size-picker/index.js.map +1 -1
  74. package/build/font-size-picker/utils.js +32 -22
  75. package/build/font-size-picker/utils.js.map +1 -1
  76. package/build/form-token-field/index.js +11 -5
  77. package/build/form-token-field/index.js.map +1 -1
  78. package/build/gradient-picker/index.js +15 -3
  79. package/build/gradient-picker/index.js.map +1 -1
  80. package/build/guide/index.js +5 -3
  81. package/build/guide/index.js.map +1 -1
  82. package/build/guide/page-control.js +3 -7
  83. package/build/guide/page-control.js.map +1 -1
  84. package/build/item-group/styles.js +10 -10
  85. package/build/item-group/styles.js.map +1 -1
  86. package/build/mobile/bottom-sheet/index.native.js +3 -6
  87. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  88. package/build/mobile/global-styles-context/utils.native.js +3 -1
  89. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  90. package/build/mobile/image/index.native.js +6 -26
  91. package/build/mobile/image/index.native.js.map +1 -1
  92. package/build/mobile/picker/index.android.js +3 -3
  93. package/build/mobile/picker/index.android.js.map +1 -1
  94. package/build/modal/index.js +1 -3
  95. package/build/modal/index.js.map +1 -1
  96. package/build/navigable-container/container.js +9 -8
  97. package/build/navigable-container/container.js.map +1 -1
  98. package/build/navigator/navigator-back-button/hook.js +0 -4
  99. package/build/navigator/navigator-back-button/hook.js.map +1 -1
  100. package/build/navigator/navigator-button/hook.js +0 -4
  101. package/build/navigator/navigator-button/hook.js.map +1 -1
  102. package/build/notice/list.js +10 -6
  103. package/build/notice/list.js.map +1 -1
  104. package/build/palette-edit/index.js +1 -0
  105. package/build/palette-edit/index.js.map +1 -1
  106. package/build/palette-edit/styles.js +10 -10
  107. package/build/palette-edit/styles.js.map +1 -1
  108. package/build/popover/index.js +100 -97
  109. package/build/popover/index.js.map +1 -1
  110. package/build/popover/utils.js +178 -0
  111. package/build/popover/utils.js.map +1 -0
  112. package/build/range-control/index.js +3 -0
  113. package/build/range-control/index.js.map +1 -1
  114. package/build/range-control/styles/range-control-styles.js +43 -37
  115. package/build/range-control/styles/range-control-styles.js.map +1 -1
  116. package/build/select-control/chevron-down.js +30 -0
  117. package/build/select-control/chevron-down.js.map +1 -0
  118. package/build/select-control/index.js +7 -7
  119. package/build/select-control/index.js.map +1 -1
  120. package/build/select-control/styles/select-control-styles.js +30 -15
  121. package/build/select-control/styles/select-control-styles.js.map +1 -1
  122. package/build/snackbar/list.js +5 -3
  123. package/build/snackbar/list.js.map +1 -1
  124. package/build/spinner/index.js +2 -0
  125. package/build/spinner/index.js.map +1 -1
  126. package/build/text/styles.js +7 -7
  127. package/build/text/styles.js.map +1 -1
  128. package/build/toggle-group-control/toggle-group-control/component.js +16 -8
  129. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  130. package/build/toggle-group-control/toggle-group-control/styles.js +7 -5
  131. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  132. package/build/toggle-group-control/toggle-group-control-option/component.js +15 -5
  133. package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  134. package/build/toggle-group-control/toggle-group-control-option-base/component.js +5 -1
  135. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  136. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +20 -7
  137. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  138. package/build/toggle-group-control/toggle-group-control-option-icon/component.js +26 -7
  139. package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  140. package/build/tools-panel/styles.js +11 -11
  141. package/build/tools-panel/styles.js.map +1 -1
  142. package/build/ui/context/context-connect.js +1 -3
  143. package/build/ui/context/context-connect.js.map +1 -1
  144. package/build/unit-control/index.js +2 -3
  145. package/build/unit-control/index.js.map +1 -1
  146. package/build/utils/colors-values.js +52 -142
  147. package/build/utils/colors-values.js.map +1 -1
  148. package/build/utils/config-values.js +1 -1
  149. package/build/utils/config-values.js.map +1 -1
  150. package/build/utils/input/input-control.js +1 -1
  151. package/build/utils/input/input-control.js.map +1 -1
  152. package/build/utils/rtl.js +6 -5
  153. package/build/utils/rtl.js.map +1 -1
  154. package/build/utils/strings.js +50 -0
  155. package/build/utils/strings.js.map +1 -0
  156. package/build-module/alignment-matrix-control/index.js +1 -1
  157. package/build-module/alignment-matrix-control/index.js.map +1 -1
  158. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +9 -9
  159. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  160. package/build-module/angle-picker-control/index.js +3 -0
  161. package/build-module/angle-picker-control/index.js.map +1 -1
  162. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +13 -4
  163. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  164. package/build-module/autocomplete/index.js +9 -10
  165. package/build-module/autocomplete/index.js.map +1 -1
  166. package/build-module/base-control/styles/base-control-styles.js +8 -8
  167. package/build-module/base-control/styles/base-control-styles.js.map +1 -1
  168. package/build-module/base-field/styles.js +5 -5
  169. package/build-module/base-field/styles.js.map +1 -1
  170. package/build-module/box-control/styles/box-control-visualizer-styles.js +8 -8
  171. package/build-module/box-control/styles/box-control-visualizer-styles.js.map +1 -1
  172. package/build-module/color-list-picker/index.js +13 -5
  173. package/build-module/color-list-picker/index.js.map +1 -1
  174. package/build-module/color-palette/index.js +22 -11
  175. package/build-module/color-palette/index.js.map +1 -1
  176. package/build-module/color-palette/index.native.js +4 -4
  177. package/build-module/color-palette/index.native.js.map +1 -1
  178. package/build-module/combobox-control/index.js +6 -3
  179. package/build-module/combobox-control/index.js.map +1 -1
  180. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/constants.js +0 -0
  181. package/build-module/custom-gradient-picker/gradient-bar/constants.js.map +1 -0
  182. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/control-points.js +34 -41
  183. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -0
  184. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/index.js +0 -1
  185. package/build-module/custom-gradient-picker/gradient-bar/index.js.map +1 -0
  186. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/utils.js +0 -0
  187. package/build-module/custom-gradient-picker/gradient-bar/utils.js.map +1 -0
  188. package/build-module/custom-gradient-picker/index.js +16 -3
  189. package/build-module/custom-gradient-picker/index.js.map +1 -1
  190. package/build-module/custom-select-control/index.js +20 -12
  191. package/build-module/custom-select-control/index.js.map +1 -1
  192. package/build-module/custom-select-control/styles.js +22 -0
  193. package/build-module/custom-select-control/styles.js.map +1 -0
  194. package/build-module/date-time/constants.js +2 -0
  195. package/build-module/date-time/constants.js.map +1 -0
  196. package/build-module/date-time/date/index.js +178 -184
  197. package/build-module/date-time/date/index.js.map +1 -1
  198. package/build-module/date-time/date/styles.js +47 -38
  199. package/build-module/date-time/date/styles.js.map +1 -1
  200. package/build-module/date-time/date-time/index.js +4 -2
  201. package/build-module/date-time/date-time/index.js.map +1 -1
  202. package/build-module/date-time/time/index.js +20 -16
  203. package/build-module/date-time/time/index.js.map +1 -1
  204. package/build-module/date-time/utils.js +19 -0
  205. package/build-module/date-time/utils.js.map +1 -0
  206. package/build-module/dimension-control/index.js +1 -5
  207. package/build-module/dimension-control/index.js.map +1 -1
  208. package/build-module/disabled/index.js +28 -11
  209. package/build-module/disabled/index.js.map +1 -1
  210. package/build-module/disabled/styles/disabled-styles.js +3 -3
  211. package/build-module/disabled/styles/disabled-styles.js.map +1 -1
  212. package/build-module/{swatch → disabled}/types.js +0 -0
  213. package/build-module/{swatch → disabled}/types.js.map +0 -0
  214. package/build-module/dropdown/index.js +5 -6
  215. package/build-module/dropdown/index.js.map +1 -1
  216. package/build-module/duotone-picker/custom-duotone-bar.js +1 -1
  217. package/build-module/duotone-picker/custom-duotone-bar.js.map +1 -1
  218. package/build-module/duotone-picker/duotone-picker.js +7 -1
  219. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  220. package/build-module/duotone-picker/duotone-swatch.js +11 -3
  221. package/build-module/duotone-picker/duotone-swatch.js.map +1 -1
  222. package/build-module/focal-point-picker/index.js +4 -5
  223. package/build-module/focal-point-picker/index.js.map +1 -1
  224. package/build-module/focal-point-picker/styles/focal-point-style.js +4 -4
  225. package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
  226. package/build-module/font-size-picker/index.js +39 -14
  227. package/build-module/font-size-picker/index.js.map +1 -1
  228. package/build-module/font-size-picker/utils.js +31 -23
  229. package/build-module/font-size-picker/utils.js.map +1 -1
  230. package/build-module/form-token-field/index.js +12 -6
  231. package/build-module/form-token-field/index.js.map +1 -1
  232. package/build-module/gradient-picker/index.js +14 -3
  233. package/build-module/gradient-picker/index.js.map +1 -1
  234. package/build-module/guide/index.js +5 -3
  235. package/build-module/guide/index.js.map +1 -1
  236. package/build-module/guide/page-control.js +3 -6
  237. package/build-module/guide/page-control.js.map +1 -1
  238. package/build-module/item-group/styles.js +10 -10
  239. package/build-module/item-group/styles.js.map +1 -1
  240. package/build-module/mobile/bottom-sheet/index.native.js +3 -5
  241. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  242. package/build-module/mobile/global-styles-context/utils.native.js +2 -1
  243. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  244. package/build-module/mobile/image/index.native.js +8 -28
  245. package/build-module/mobile/image/index.native.js.map +1 -1
  246. package/build-module/mobile/picker/index.android.js +3 -3
  247. package/build-module/mobile/picker/index.android.js.map +1 -1
  248. package/build-module/modal/index.js +1 -2
  249. package/build-module/modal/index.js.map +1 -1
  250. package/build-module/navigable-container/container.js +9 -7
  251. package/build-module/navigable-container/container.js.map +1 -1
  252. package/build-module/navigator/navigator-back-button/hook.js +0 -4
  253. package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
  254. package/build-module/navigator/navigator-button/hook.js +0 -4
  255. package/build-module/navigator/navigator-button/hook.js.map +1 -1
  256. package/build-module/notice/list.js +10 -5
  257. package/build-module/notice/list.js.map +1 -1
  258. package/build-module/palette-edit/index.js +1 -0
  259. package/build-module/palette-edit/index.js.map +1 -1
  260. package/build-module/palette-edit/styles.js +10 -10
  261. package/build-module/palette-edit/styles.js.map +1 -1
  262. package/build-module/popover/index.js +100 -98
  263. package/build-module/popover/index.js.map +1 -1
  264. package/build-module/popover/utils.js +164 -0
  265. package/build-module/popover/utils.js.map +1 -0
  266. package/build-module/range-control/index.js +3 -0
  267. package/build-module/range-control/index.js.map +1 -1
  268. package/build-module/range-control/styles/range-control-styles.js +43 -37
  269. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  270. package/build-module/select-control/chevron-down.js +21 -0
  271. package/build-module/select-control/chevron-down.js.map +1 -0
  272. package/build-module/select-control/index.js +7 -7
  273. package/build-module/select-control/index.js.map +1 -1
  274. package/build-module/select-control/styles/select-control-styles.js +24 -13
  275. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  276. package/build-module/snackbar/list.js +5 -2
  277. package/build-module/snackbar/list.js.map +1 -1
  278. package/build-module/spinner/index.js +2 -0
  279. package/build-module/spinner/index.js.map +1 -1
  280. package/build-module/text/styles.js +7 -7
  281. package/build-module/text/styles.js.map +1 -1
  282. package/build-module/toggle-group-control/toggle-group-control/component.js +14 -7
  283. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  284. package/build-module/toggle-group-control/toggle-group-control/styles.js +5 -4
  285. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  286. package/build-module/toggle-group-control/toggle-group-control-option/component.js +17 -3
  287. package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  288. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +5 -1
  289. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  290. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +16 -6
  291. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  292. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +27 -5
  293. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  294. package/build-module/tools-panel/styles.js +11 -11
  295. package/build-module/tools-panel/styles.js.map +1 -1
  296. package/build-module/ui/context/context-connect.js +1 -2
  297. package/build-module/ui/context/context-connect.js.map +1 -1
  298. package/build-module/unit-control/index.js +2 -2
  299. package/build-module/unit-control/index.js.map +1 -1
  300. package/build-module/utils/colors-values.js +52 -141
  301. package/build-module/utils/colors-values.js.map +1 -1
  302. package/build-module/utils/config-values.js +1 -1
  303. package/build-module/utils/config-values.js.map +1 -1
  304. package/build-module/utils/input/input-control.js +1 -1
  305. package/build-module/utils/input/input-control.js.map +1 -1
  306. package/build-module/utils/rtl.js +6 -4
  307. package/build-module/utils/rtl.js.map +1 -1
  308. package/build-module/utils/strings.js +37 -0
  309. package/build-module/utils/strings.js.map +1 -0
  310. package/build-style/style-rtl.css +176 -1227
  311. package/build-style/style.css +171 -1225
  312. package/build-types/color-palette/index.d.ts +2 -1
  313. package/build-types/color-palette/index.d.ts.map +1 -1
  314. package/build-types/color-picker/styles.d.ts +2 -2
  315. package/build-types/date-time/constants.d.ts +2 -0
  316. package/build-types/date-time/constants.d.ts.map +1 -0
  317. package/build-types/date-time/date/index.d.ts +3 -1
  318. package/build-types/date-time/date/index.d.ts.map +1 -1
  319. package/build-types/date-time/date/styles.d.ts +22 -8
  320. package/build-types/date-time/date/styles.d.ts.map +1 -1
  321. package/build-types/date-time/date/test/index.d.ts +1 -1
  322. package/build-types/date-time/date/test/index.d.ts.map +1 -1
  323. package/build-types/date-time/date-time/index.d.ts.map +1 -1
  324. package/build-types/date-time/time/index.d.ts.map +1 -1
  325. package/build-types/date-time/utils.d.ts +8 -0
  326. package/build-types/date-time/utils.d.ts.map +1 -0
  327. package/build-types/disabled/index.d.ts +35 -28
  328. package/build-types/disabled/index.d.ts.map +1 -1
  329. package/build-types/disabled/stories/index.d.ts +13 -0
  330. package/build-types/disabled/stories/index.d.ts.map +1 -0
  331. package/build-types/disabled/styles/disabled-styles.d.ts +2 -1
  332. package/build-types/disabled/styles/disabled-styles.d.ts.map +1 -1
  333. package/build-types/disabled/test/index.d.ts +2 -0
  334. package/build-types/{flyout/flyout → disabled/test}/index.d.ts.map +1 -1
  335. package/build-types/disabled/types.d.ts +14 -0
  336. package/build-types/disabled/types.d.ts.map +1 -0
  337. package/build-types/dropdown/index.d.ts.map +1 -1
  338. package/build-types/form-token-field/index.d.ts.map +1 -1
  339. package/build-types/form-token-field/stories/index.d.ts +1 -0
  340. package/build-types/form-token-field/stories/index.d.ts.map +1 -1
  341. package/build-types/form-token-field/types.d.ts +7 -0
  342. package/build-types/form-token-field/types.d.ts.map +1 -1
  343. package/build-types/navigator/navigator-back-button/hook.d.ts +0 -3
  344. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
  345. package/build-types/navigator/navigator-button/hook.d.ts +0 -3
  346. package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
  347. package/build-types/placeholder/test/index.d.ts +2 -0
  348. package/build-types/{flyout → placeholder/test}/index.d.ts.map +1 -1
  349. package/build-types/popover/index.d.ts +1 -1
  350. package/build-types/popover/index.d.ts.map +1 -1
  351. package/build-types/popover/utils.d.ts +26 -69
  352. package/build-types/popover/utils.d.ts.map +1 -1
  353. package/build-types/range-control/index.d.ts +2 -2
  354. package/build-types/range-control/index.d.ts.map +1 -1
  355. package/build-types/range-control/styles/range-control-styles.d.ts +5 -2
  356. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  357. package/build-types/range-control/types.d.ts +2 -2
  358. package/build-types/range-control/types.d.ts.map +1 -1
  359. package/build-types/select-control/chevron-down.d.ts +4 -0
  360. package/build-types/select-control/chevron-down.d.ts.map +1 -0
  361. package/build-types/select-control/index.d.ts.map +1 -1
  362. package/build-types/select-control/styles/select-control-styles.d.ts +8 -0
  363. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  364. package/build-types/spinner/index.d.ts.map +1 -1
  365. package/build-types/toggle-group-control/stories/index.d.ts +25 -0
  366. package/build-types/toggle-group-control/stories/index.d.ts.map +1 -0
  367. package/build-types/toggle-group-control/test/index.d.ts +2 -0
  368. package/build-types/toggle-group-control/test/index.d.ts.map +1 -0
  369. package/build-types/toggle-group-control/toggle-group-control/component.d.ts +6 -3
  370. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  371. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +1 -0
  372. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  373. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +6 -7
  374. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
  375. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  376. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +4 -0
  377. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
  378. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +11 -9
  379. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -1
  380. package/build-types/toggle-group-control/types.d.ts +23 -10
  381. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  382. package/build-types/ui/context/context-connect.d.ts +3 -0
  383. package/build-types/ui/context/context-connect.d.ts.map +1 -1
  384. package/build-types/ui/form-group/use-form-group.d.ts +2 -2
  385. package/build-types/unit-control/index.d.ts +2 -1
  386. package/build-types/unit-control/index.d.ts.map +1 -1
  387. package/build-types/unit-control/types.d.ts +5 -1
  388. package/build-types/unit-control/types.d.ts.map +1 -1
  389. package/build-types/utils/colors-values.d.ts +18 -97
  390. package/build-types/utils/colors-values.d.ts.map +1 -1
  391. package/build-types/utils/rtl.d.ts.map +1 -1
  392. package/build-types/utils/strings.d.ts +2 -0
  393. package/build-types/utils/strings.d.ts.map +1 -0
  394. package/package.json +22 -21
  395. package/src/alignment-matrix-control/index.js +1 -1
  396. package/src/alignment-matrix-control/stories/index.js +49 -24
  397. package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.js +1 -3
  398. package/src/angle-picker-control/index.js +7 -1
  399. package/src/angle-picker-control/stories/index.js +8 -5
  400. package/src/angle-picker-control/styles/angle-picker-control-styles.js +12 -3
  401. package/src/autocomplete/index.js +9 -18
  402. package/src/base-control/styles/base-control-styles.ts +1 -1
  403. package/src/base-field/styles.js +1 -1
  404. package/src/base-field/test/__snapshots__/index.js.snap +2 -2
  405. package/src/box-control/styles/box-control-visualizer-styles.js +0 -1
  406. package/src/box-control/test/index.js +8 -8
  407. package/src/button/test/index.js +188 -146
  408. package/src/color-list-picker/index.js +15 -3
  409. package/src/color-list-picker/style.scss +11 -0
  410. package/src/color-palette/index.js +32 -16
  411. package/src/color-palette/index.native.js +10 -6
  412. package/src/color-palette/stories/index.js +1 -1
  413. package/src/color-palette/test/__snapshots__/index.js.snap +17 -3
  414. package/src/combobox-control/index.js +6 -5
  415. package/src/combobox-control/stories/index.js +9 -3
  416. package/src/combobox-control/style.scss +0 -1
  417. package/src/confirm-dialog/test/index.js +85 -62
  418. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/constants.js +0 -0
  419. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/control-points.js +54 -50
  420. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/index.js +0 -3
  421. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/test/utils.js +0 -0
  422. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/utils.js +0 -0
  423. package/src/custom-gradient-picker/index.js +18 -3
  424. package/src/custom-gradient-picker/stories/index.js +4 -3
  425. package/src/custom-gradient-picker/style.scss +30 -27
  426. package/src/custom-select-control/README.md +10 -0
  427. package/src/custom-select-control/index.js +22 -16
  428. package/src/custom-select-control/stories/index.js +1 -1
  429. package/src/custom-select-control/style.scss +0 -12
  430. package/src/custom-select-control/styles.ts +28 -0
  431. package/src/custom-select-control/test/index.js +4 -1
  432. package/src/date-time/constants.ts +1 -0
  433. package/src/date-time/date/index.tsx +289 -184
  434. package/src/date-time/date/styles.ts +86 -27
  435. package/src/date-time/date/test/index.tsx +18 -28
  436. package/src/date-time/date-time/index.tsx +3 -2
  437. package/src/date-time/time/index.tsx +23 -19
  438. package/src/date-time/utils.ts +17 -0
  439. package/src/dimension-control/index.js +1 -5
  440. package/src/disabled/index.tsx +80 -0
  441. package/src/disabled/stories/index.tsx +87 -0
  442. package/src/disabled/styles/{disabled-styles.js → disabled-styles.tsx} +0 -0
  443. package/src/disabled/test/index.tsx +174 -0
  444. package/src/disabled/types.ts +13 -0
  445. package/src/dropdown/index.js +3 -5
  446. package/src/dropdown-menu/stories/index.js +13 -2
  447. package/src/duotone-picker/custom-duotone-bar.js +1 -1
  448. package/src/duotone-picker/duotone-picker.js +34 -26
  449. package/src/duotone-picker/duotone-swatch.js +12 -5
  450. package/src/duotone-picker/stories/duotone-picker.js +66 -0
  451. package/src/duotone-picker/stories/duotone-swatch.js +32 -0
  452. package/src/focal-point-picker/index.js +10 -5
  453. package/src/focal-point-picker/styles/focal-point-style.js +0 -1
  454. package/src/focal-point-picker/test/index.js +78 -45
  455. package/src/font-size-picker/index.js +161 -144
  456. package/src/font-size-picker/stories/index.js +1 -0
  457. package/src/font-size-picker/style.scss +8 -5
  458. package/src/font-size-picker/test/index.js +13 -6
  459. package/src/font-size-picker/test/{util.js → utils.js} +77 -1
  460. package/src/font-size-picker/utils.js +38 -23
  461. package/src/form-token-field/README.md +1 -0
  462. package/src/form-token-field/index.tsx +24 -10
  463. package/src/form-token-field/stories/index.tsx +8 -0
  464. package/src/form-token-field/test/index.js +31 -0
  465. package/src/form-token-field/types.ts +7 -0
  466. package/src/gradient-picker/index.js +22 -7
  467. package/src/gradient-picker/stories/index.js +56 -81
  468. package/src/guide/index.js +3 -1
  469. package/src/guide/page-control.js +1 -6
  470. package/src/guide/stories/index.js +12 -11
  471. package/src/guide/test/index.js +54 -37
  472. package/src/guide/test/page-control.js +14 -17
  473. package/src/higher-order/with-notices/test/index.js +4 -2
  474. package/src/higher-order/with-spoken-messages/test/index.js +1 -1
  475. package/src/item-group/styles.ts +3 -3
  476. package/src/menu-group/test/index.js +18 -7
  477. package/src/mobile/bottom-sheet/index.native.js +2 -4
  478. package/src/mobile/global-styles-context/utils.native.js +2 -1
  479. package/src/mobile/image/index.native.js +9 -30
  480. package/src/mobile/picker/index.android.js +10 -4
  481. package/src/mobile/picker/styles.native.scss +4 -4
  482. package/src/modal/index.js +1 -2
  483. package/src/modal/test/index.js +11 -9
  484. package/src/navigable-container/container.js +12 -18
  485. package/src/navigable-container/test/menu.js +14 -11
  486. package/src/navigator/navigator-back-button/hook.ts +0 -3
  487. package/src/navigator/navigator-button/hook.ts +0 -3
  488. package/src/notice/list.js +12 -10
  489. package/src/palette-edit/index.js +1 -0
  490. package/src/palette-edit/styles.js +6 -5
  491. package/src/placeholder/README.md +1 -1
  492. package/src/placeholder/style.scss +65 -20
  493. package/src/placeholder/test/index.tsx +174 -0
  494. package/src/popover/index.js +133 -112
  495. package/src/popover/stories/index.js +17 -3
  496. package/src/popover/test/__snapshots__/index.js.snap +6 -6
  497. package/src/popover/test/index.js +129 -36
  498. package/src/popover/utils.js +107 -0
  499. package/src/range-control/index.tsx +3 -0
  500. package/src/range-control/styles/range-control-styles.ts +9 -4
  501. package/src/range-control/types.ts +5 -2
  502. package/src/select-control/chevron-down.tsx +25 -0
  503. package/src/select-control/index.tsx +6 -9
  504. package/src/select-control/styles/select-control-styles.ts +23 -14
  505. package/src/slot-fill/test/slot.js +5 -5
  506. package/src/snackbar/list.js +3 -2
  507. package/src/spinner/index.tsx +2 -0
  508. package/src/style.scss +0 -2
  509. package/src/text/styles.js +1 -1
  510. package/src/text/test/index.tsx +1 -1
  511. package/src/toggle-group-control/stories/index.tsx +127 -0
  512. package/src/toggle-group-control/test/__snapshots__/{index.js.snap → index.tsx.snap} +28 -22
  513. package/src/toggle-group-control/test/{index.js → index.tsx} +2 -4
  514. package/src/toggle-group-control/toggle-group-control/README.md +2 -0
  515. package/src/toggle-group-control/toggle-group-control/component.tsx +18 -9
  516. package/src/toggle-group-control/toggle-group-control/styles.ts +9 -6
  517. package/src/toggle-group-control/toggle-group-control-option/component.tsx +19 -3
  518. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +3 -0
  519. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +18 -0
  520. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +6 -8
  521. package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +30 -7
  522. package/src/toggle-group-control/types.ts +74 -59
  523. package/src/toolbar/test/index.js +4 -4
  524. package/src/toolbar-group/test/index.js +9 -15
  525. package/src/tools-panel/styles.ts +2 -2
  526. package/src/tools-panel/test/index.js +3 -2
  527. package/src/tooltip/test/index.js +188 -172
  528. package/src/ui/context/context-connect.ts +3 -2
  529. package/src/unit-control/index.tsx +2 -2
  530. package/src/unit-control/types.ts +10 -1
  531. package/src/utils/colors-values.js +42 -137
  532. package/src/utils/config-values.js +1 -1
  533. package/src/utils/input/input-control.js +6 -6
  534. package/src/utils/rtl.js +6 -2
  535. package/src/utils/strings.ts +72 -0
  536. package/src/utils/test/strings.js +15 -0
  537. package/tsconfig.json +0 -1
  538. package/tsconfig.tsbuildinfo +1 -1
  539. package/build/custom-gradient-bar/constants.js.map +0 -1
  540. package/build/custom-gradient-bar/control-points.js.map +0 -1
  541. package/build/custom-gradient-bar/index.js.map +0 -1
  542. package/build/custom-gradient-bar/utils.js.map +0 -1
  543. package/build/date-time/date/utils.js +0 -34
  544. package/build/date-time/date/utils.js.map +0 -1
  545. package/build/swatch/index.js +0 -41
  546. package/build/swatch/index.js.map +0 -1
  547. package/build-module/custom-gradient-bar/constants.js.map +0 -1
  548. package/build-module/custom-gradient-bar/control-points.js.map +0 -1
  549. package/build-module/custom-gradient-bar/index.js.map +0 -1
  550. package/build-module/custom-gradient-bar/utils.js.map +0 -1
  551. package/build-module/date-time/date/utils.js +0 -22
  552. package/build-module/date-time/date/utils.js.map +0 -1
  553. package/build-module/swatch/index.js +0 -30
  554. package/build-module/swatch/index.js.map +0 -1
  555. package/build-types/color-picker/color-display.d.ts +0 -13
  556. package/build-types/color-picker/color-display.d.ts.map +0 -1
  557. package/build-types/date-time/date/test/utils.d.ts +0 -2
  558. package/build-types/date-time/date/test/utils.d.ts.map +0 -1
  559. package/build-types/date-time/date/utils.d.ts +0 -15
  560. package/build-types/date-time/date/utils.d.ts.map +0 -1
  561. package/build-types/flyout/context.d.ts +0 -6
  562. package/build-types/flyout/context.d.ts.map +0 -1
  563. package/build-types/flyout/flyout/component.d.ts +0 -21
  564. package/build-types/flyout/flyout/component.d.ts.map +0 -1
  565. package/build-types/flyout/flyout/hook.d.ts +0 -270
  566. package/build-types/flyout/flyout/hook.d.ts.map +0 -1
  567. package/build-types/flyout/flyout/index.d.ts +0 -3
  568. package/build-types/flyout/flyout-content/component.d.ts +0 -3
  569. package/build-types/flyout/flyout-content/component.d.ts.map +0 -1
  570. package/build-types/flyout/flyout-content/index.d.ts +0 -2
  571. package/build-types/flyout/flyout-content/index.d.ts.map +0 -1
  572. package/build-types/flyout/index.d.ts +0 -2
  573. package/build-types/flyout/styles.d.ts +0 -22
  574. package/build-types/flyout/styles.d.ts.map +0 -1
  575. package/build-types/flyout/types.d.ts +0 -80
  576. package/build-types/flyout/types.d.ts.map +0 -1
  577. package/build-types/flyout/utils.d.ts +0 -8
  578. package/build-types/flyout/utils.d.ts.map +0 -1
  579. package/build-types/swatch/index.d.ts +0 -5
  580. package/build-types/swatch/index.d.ts.map +0 -1
  581. package/build-types/swatch/types.d.ts +0 -11
  582. package/build-types/swatch/types.d.ts.map +0 -1
  583. package/build-types/utils/hooks/use-combined-ref.d.ts +0 -8
  584. package/build-types/utils/hooks/use-combined-ref.d.ts.map +0 -1
  585. package/src/date-time/date/datepicker.scss +0 -863
  586. package/src/date-time/date/style.scss +0 -85
  587. package/src/date-time/date/test/utils.ts +0 -32
  588. package/src/date-time/date/utils.ts +0 -20
  589. package/src/date-time/style.scss +0 -1
  590. package/src/disabled/index.js +0 -55
  591. package/src/disabled/stories/index.js +0 -61
  592. package/src/disabled/test/index.js +0 -240
  593. package/src/menu-group/test/__snapshots__/index.js.snap +0 -23
  594. package/src/placeholder/test/index.js +0 -163
  595. package/src/swatch/index.tsx +0 -22
  596. package/src/swatch/style.scss +0 -21
  597. package/src/swatch/types.ts +0 -11
  598. package/src/toggle-group-control/stories/index.js +0 -203
  599. package/src/tools-panel/test/__snapshots__/index.js.snap +0 -210
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { last, clone, uniq, map, difference, some } from 'lodash';
4
+ import { last, clone, map, some } from 'lodash';
5
5
  import classnames from 'classnames';
6
6
  import type { KeyboardEvent, MouseEvent, TouchEvent } from 'react';
7
7
 
@@ -78,6 +78,7 @@ export function FormTokenField( props: FormTokenFieldProps ) {
78
78
  __experimentalValidateInput = () => true,
79
79
  __experimentalShowHowTo = true,
80
80
  __next36pxDefaultSize = false,
81
+ __experimentalAutoSelectFirstMatch = false,
81
82
  } = props;
82
83
 
83
84
  const instanceId = useInstanceId( FormTokenField );
@@ -409,12 +410,14 @@ export function FormTokenField( props: FormTokenFieldProps ) {
409
410
  }
410
411
 
411
412
  function addNewTokens( tokens: string[] ) {
412
- const tokensToAdd = uniq(
413
- tokens
414
- .map( saveTransform )
415
- .filter( Boolean )
416
- .filter( ( token ) => ! valueContainsToken( token ) )
417
- );
413
+ const tokensToAdd = [
414
+ ...new Set(
415
+ tokens
416
+ .map( saveTransform )
417
+ .filter( Boolean )
418
+ .filter( ( token ) => ! valueContainsToken( token ) )
419
+ ),
420
+ ];
418
421
 
419
422
  if ( tokensToAdd.length > 0 ) {
420
423
  const newValue = clone( value );
@@ -475,7 +478,9 @@ export function FormTokenField( props: FormTokenFieldProps ) {
475
478
  } );
476
479
 
477
480
  if ( match.length === 0 ) {
478
- _suggestions = difference( _suggestions, normalizedValue );
481
+ _suggestions = _suggestions.filter(
482
+ ( suggestion ) => ! normalizedValue.includes( suggestion )
483
+ );
479
484
  } else {
480
485
  match = match.toLocaleLowerCase();
481
486
 
@@ -534,8 +539,17 @@ export function FormTokenField( props: FormTokenFieldProps ) {
534
539
  );
535
540
 
536
541
  if ( resetSelectedSuggestion ) {
537
- setSelectedSuggestionIndex( -1 );
538
- setSelectedSuggestionScroll( false );
542
+ if (
543
+ __experimentalAutoSelectFirstMatch &&
544
+ inputHasMinimumChars &&
545
+ hasMatchingSuggestions
546
+ ) {
547
+ setSelectedSuggestionIndex( 0 );
548
+ setSelectedSuggestionScroll( true );
549
+ } else {
550
+ setSelectedSuggestionIndex( -1 );
551
+ setSelectedSuggestionScroll( false );
552
+ }
539
553
  }
540
554
 
541
555
  if ( inputHasMinimumChars ) {
@@ -102,6 +102,14 @@ Async.args = {
102
102
  suggestions: continents,
103
103
  };
104
104
 
105
+ export const DropdownSelector: ComponentStory< typeof FormTokenField > =
106
+ DefaultTemplate.bind( {} );
107
+ DropdownSelector.args = {
108
+ ...Default.args,
109
+ __experimentalExpandOnFocus: true,
110
+ __experimentalAutoSelectFirstMatch: true,
111
+ };
112
+
105
113
  /**
106
114
  * The rendered output of each suggestion can be customized by passing a
107
115
  * render function to the `__experimentalRenderItem` prop. (This is still an experimental feature
@@ -396,6 +396,37 @@ describe( 'FormTokenField', () => {
396
396
  sendKeyDown( keyCodes.enter );
397
397
  expect( wrapper.state.tokens ).toEqual( [ 'foo', 'bar' ] );
398
398
  } );
399
+
400
+ it( 'should automatically select the first matching suggestions when __experimentalAutoSelectFirstMatch is set to true', () => {
401
+ setUp( { __experimentalAutoSelectFirstMatch: true } );
402
+
403
+ wrapper.setState( {
404
+ isExpanded: true,
405
+ } );
406
+
407
+ expect( getSuggestionsText() ).toEqual( [] );
408
+
409
+ const searchText = 'so';
410
+
411
+ act( () => {
412
+ setText( searchText );
413
+ } );
414
+
415
+ const expectedFirstMatchTokens =
416
+ fixtures.matchingSuggestions[ searchText ][ 0 ];
417
+
418
+ expect( getSelectedSuggestion() ).toEqual(
419
+ expectedFirstMatchTokens
420
+ );
421
+
422
+ sendKeyDown( keyCodes.enter );
423
+
424
+ expect( wrapper.state.tokens ).toEqual( [
425
+ 'foo',
426
+ 'bar',
427
+ expectedFirstMatchTokens.join( '' ),
428
+ ] );
429
+ } );
399
430
  } );
400
431
 
401
432
  describe( 'removing tokens', () => {
@@ -158,6 +158,13 @@ export interface FormTokenFieldProps
158
158
  * @default false
159
159
  */
160
160
  __next36pxDefaultSize?: boolean;
161
+ /**
162
+ * If true, the select the first matching suggestion when the user presses
163
+ * the Enter key (or space when tokenizeOnSpace is true).
164
+ *
165
+ * @default false
166
+ */
167
+ __experimentalAutoSelectFirstMatch?: boolean;
161
168
  /**
162
169
  * Custom renderer for suggestions.
163
170
  */
@@ -16,6 +16,7 @@ import CircularOptionPicker from '../circular-option-picker';
16
16
  import CustomGradientPicker from '../custom-gradient-picker';
17
17
  import { VStack } from '../v-stack';
18
18
  import { ColorHeading } from '../color-palette/styles';
19
+ import { Spacer } from '../spacer';
19
20
 
20
21
  function SingleOrigin( {
21
22
  className,
@@ -99,6 +100,8 @@ function MultipleOrigin( {
99
100
  }
100
101
 
101
102
  export default function GradientPicker( {
103
+ /** Start opting into the new margin-free styles that will become the default in a future version. */
104
+ __nextHasNoMargin = false,
102
105
  className,
103
106
  gradients,
104
107
  onChange,
@@ -117,6 +120,11 @@ export default function GradientPicker( {
117
120
  ? MultipleOrigin
118
121
  : SingleOrigin;
119
122
 
123
+ // Can be removed when deprecation period is over
124
+ const deprecatedMarginSpacerProps = ! __nextHasNoMargin
125
+ ? { marginTop: 3 }
126
+ : {};
127
+
120
128
  return (
121
129
  <Component
122
130
  className={ className }
@@ -137,13 +145,20 @@ export default function GradientPicker( {
137
145
  }
138
146
  content={
139
147
  ! disableCustomGradients && (
140
- <CustomGradientPicker
141
- __experimentalIsRenderedInSidebar={
142
- __experimentalIsRenderedInSidebar
143
- }
144
- value={ value }
145
- onChange={ onChange }
146
- />
148
+ <Spacer
149
+ marginTop={ gradients?.length ? 3 : 0 }
150
+ marginBottom={ 0 }
151
+ { ...deprecatedMarginSpacerProps }
152
+ >
153
+ <CustomGradientPicker
154
+ __nextHasNoMargin={ __nextHasNoMargin }
155
+ __experimentalIsRenderedInSidebar={
156
+ __experimentalIsRenderedInSidebar
157
+ }
158
+ value={ value }
159
+ onChange={ onChange }
160
+ />
161
+ </Spacer>
147
162
  )
148
163
  }
149
164
  />
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { text, boolean, object } from '@storybook/addon-knobs';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -16,94 +11,74 @@ import GradientPicker from '../';
16
11
  export default {
17
12
  title: 'Components/GradientPicker',
18
13
  component: GradientPicker,
19
- parameters: {
20
- knobs: { disable: false },
14
+ argTypes: {
15
+ __nextHasNoMargin: { control: { type: 'boolean' } },
16
+ clearable: { control: { type: 'boolean' } },
17
+ disableCustomGradients: { control: { type: 'boolean' } },
18
+ onChange: { action: 'onChange' },
21
19
  },
22
20
  };
23
21
 
24
- const GradientPickerWithState = ( props ) => {
22
+ const GRADIENTS = [
23
+ {
24
+ name: 'Vivid cyan blue to vivid purple',
25
+ gradient:
26
+ 'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)',
27
+ slug: 'vivid-cyan-blue-to-vivid-purple',
28
+ },
29
+ {
30
+ name: 'Light green cyan to vivid green cyan',
31
+ gradient:
32
+ 'linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%)',
33
+ slug: 'light-green-cyan-to-vivid-green-cyan',
34
+ },
35
+ {
36
+ name: 'Luminous vivid amber to luminous vivid orange',
37
+ gradient:
38
+ 'linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%)',
39
+ slug: 'luminous-vivid-amber-to-luminous-vivid-orange',
40
+ },
41
+ {
42
+ name: 'Luminous vivid orange to vivid red',
43
+ gradient:
44
+ 'linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%)',
45
+ slug: 'luminous-vivid-orange-to-vivid-red',
46
+ },
47
+ {
48
+ name: 'Very light gray to cyan bluish gray',
49
+ gradient:
50
+ 'linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%)',
51
+ slug: 'very-light-gray-to-cyan-bluish-gray',
52
+ },
53
+ {
54
+ name: 'Cool to warm spectrum',
55
+ gradient:
56
+ 'linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%)',
57
+ slug: 'cool-to-warm-spectrum',
58
+ },
59
+ ];
60
+
61
+ const Template = ( { onChange, ...props } ) => {
25
62
  const [ gradient, setGradient ] = useState();
26
63
  return (
27
64
  <GradientPicker
28
65
  { ...props }
29
66
  value={ gradient }
30
- onChange={ setGradient }
67
+ onChange={ ( ...changeArgs ) => {
68
+ setGradient( ...changeArgs );
69
+ onChange?.( ...changeArgs );
70
+ } }
31
71
  />
32
72
  );
33
73
  };
34
74
 
35
- export const _default = () => {
36
- const disableCustomGradients = boolean( 'Disable Custom Gradients', false );
37
- const clearable = boolean( 'Clearable', true );
38
- const className = text( 'Class Name', '' );
39
- const gradients = object( 'Gradients', [
40
- {
41
- name: 'Vivid cyan blue to vivid purple',
42
- gradient:
43
- 'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)',
44
- slug: 'vivid-cyan-blue-to-vivid-purple',
45
- },
46
- {
47
- name: 'Light green cyan to vivid green cyan',
48
- gradient:
49
- 'linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%)',
50
- slug: 'light-green-cyan-to-vivid-green-cyan',
51
- },
52
- {
53
- name: 'Luminous vivid amber to luminous vivid orange',
54
- gradient:
55
- 'linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%)',
56
- slug: 'luminous-vivid-amber-to-luminous-vivid-orange',
57
- },
58
- {
59
- name: 'Luminous vivid orange to vivid red',
60
- gradient:
61
- 'linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%)',
62
- slug: 'luminous-vivid-orange-to-vivid-red',
63
- },
64
- {
65
- name: 'Very light gray to cyan bluish gray',
66
- gradient:
67
- 'linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%)',
68
- slug: 'very-light-gray-to-cyan-bluish-gray',
69
- },
70
- {
71
- name: 'Cool to warm spectrum',
72
- gradient:
73
- 'linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%)',
74
- slug: 'cool-to-warm-spectrum',
75
- },
76
- ] );
77
-
78
- return (
79
- <GradientPickerWithState
80
- disableCustomGradients={ disableCustomGradients }
81
- gradients={ gradients }
82
- clearable={ clearable }
83
- className={ className }
84
- />
85
- );
75
+ export const Default = Template.bind( {} );
76
+ Default.args = {
77
+ gradients: GRADIENTS,
86
78
  };
87
79
 
88
- export const WithNoExistingGradients = () => {
89
- const disableCustomGradients = boolean( 'Disable Custom Gradients', false );
90
- const __experimentalHasMultipleOrigins = boolean(
91
- 'Experimental Has Multiple Origins',
92
- true
93
- );
94
- const clearable = boolean( 'Clearable', true );
95
- const className = text( 'Class Name', '' );
96
- const gradients = object( 'Gradients', [] );
97
-
98
- return (
99
- <GradientPickerWithState
100
- __experimentalHasMultipleOrigins={
101
- __experimentalHasMultipleOrigins
102
- }
103
- disableCustomGradients={ disableCustomGradients }
104
- gradients={ gradients }
105
- clearable={ clearable }
106
- className={ className }
107
- />
108
- );
80
+ export const WithNoExistingGradients = Template.bind( {} );
81
+ WithNoExistingGradients.args = {
82
+ ...Default.args,
83
+ gradients: [],
109
84
  };
@@ -42,7 +42,9 @@ export default function Guide( {
42
42
  useEffect( () => {
43
43
  // Each time we change the current page, start from the first element of the page.
44
44
  // This also solves any focus loss that can happen.
45
- focus.tabbable.find( guideContainer.current )?.[ 0 ]?.focus();
45
+ if ( guideContainer.current ) {
46
+ focus.tabbable.find( guideContainer.current )?.[ 0 ]?.focus();
47
+ }
46
48
  }, [ currentPage ] );
47
49
 
48
50
  if ( Children.count( children ) ) {
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { times } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -24,7 +19,7 @@ export default function PageControl( {
24
19
  className="components-guide__page-control"
25
20
  aria-label={ __( 'Guide controls' ) }
26
21
  >
27
- { times( numberOfPages, ( page ) => (
22
+ { Array.from( { length: numberOfPages } ).map( ( _, page ) => (
28
23
  <li
29
24
  key={ page }
30
25
  // Set aria-current="step" on the active page, see https://www.w3.org/TR/wai-aria-1.1/#aria-current
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { times } from 'lodash';
5
4
  import { text, number } from '@storybook/addon-knobs';
6
5
 
7
6
  /**
@@ -41,16 +40,18 @@ const ModalExample = ( { numberOfPages, ...props } ) => {
41
40
  <Guide
42
41
  { ...props }
43
42
  onFinish={ closeGuide }
44
- pages={ times( numberOfPages, ( page ) => ( {
45
- content: (
46
- <>
47
- <h1>
48
- Page { page + 1 } of { numberOfPages }
49
- </h1>
50
- <p>{ loremIpsum }</p>
51
- </>
52
- ),
53
- } ) ) }
43
+ pages={ Array.from( { length: numberOfPages } ).map(
44
+ ( _, page ) => ( {
45
+ content: (
46
+ <>
47
+ <h1>
48
+ Page { page + 1 } of { numberOfPages }
49
+ </h1>
50
+ <p>{ loremIpsum }</p>
51
+ </>
52
+ ),
53
+ } )
54
+ ) }
54
55
  />
55
56
  ) }
56
57
  </>
@@ -1,23 +1,22 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { shallow } from 'enzyme';
4
+ import { render, screen } from '@testing-library/react';
5
+ import userEvent from '@testing-library/user-event';
5
6
 
6
7
  /**
7
8
  * Internal dependencies
8
9
  */
9
10
  import Guide from '../';
10
- import PageControl from '../page-control';
11
- import Modal from '../../modal';
12
11
 
13
12
  describe( 'Guide', () => {
14
13
  it( 'renders nothing when there are no pages', () => {
15
- const wrapper = shallow( <Guide /> );
16
- expect( wrapper.isEmptyRender() ).toBe( true );
14
+ render( <Guide pages={ [] } /> );
15
+ expect( screen.queryByRole( 'dialog' ) ).not.toBeInTheDocument();
17
16
  } );
18
17
 
19
18
  it( 'renders one page at a time', () => {
20
- const wrapper = shallow(
19
+ render(
21
20
  <Guide
22
21
  pages={ [
23
22
  { content: <p>Page 1</p> },
@@ -25,11 +24,14 @@ describe( 'Guide', () => {
25
24
  ] }
26
25
  />
27
26
  );
28
- expect( wrapper.find( 'p' ) ).toHaveLength( 1 );
27
+
28
+ expect( screen.queryByRole( 'dialog' ) ).toBeVisible();
29
+ expect( screen.queryByText( 'Page 1' ) ).toBeVisible();
30
+ expect( screen.queryByText( 'Page 2' ) ).not.toBeInTheDocument();
29
31
  } );
30
32
 
31
33
  it( 'hides back button and shows forward button on the first page', () => {
32
- const wrapper = shallow(
34
+ render(
33
35
  <Guide
34
36
  pages={ [
35
37
  { content: <p>Page 1</p> },
@@ -37,20 +39,23 @@ describe( 'Guide', () => {
37
39
  ] }
38
40
  />
39
41
  );
40
- expect( wrapper.find( PageControl ).prop( 'currentPage' ) ).toBe( 0 );
41
- expect( wrapper.find( '.components-guide__back-button' ) ).toHaveLength(
42
- 0
43
- );
42
+
43
+ expect(
44
+ screen.queryByRole( 'button', { name: 'Previous' } )
45
+ ).not.toBeInTheDocument();
44
46
  expect(
45
- wrapper.find( '.components-guide__forward-button' )
46
- ).toHaveLength( 1 );
47
+ screen.queryByRole( 'button', { name: 'Next' } )
48
+ ).toBeVisible();
47
49
  expect(
48
- wrapper.find( '.components-guide__finish-button' )
49
- ).toHaveLength( 0 );
50
+ screen.queryByRole( 'button', { name: 'Finish' } )
51
+ ).not.toBeInTheDocument();
50
52
  } );
51
53
 
52
- it( 'shows back button and shows finish button on the last page', () => {
53
- const wrapper = shallow(
54
+ it( 'shows back button and shows finish button on the last page', async () => {
55
+ const user = userEvent.setup( {
56
+ advanceTimers: jest.advanceTimersByTime,
57
+ } );
58
+ render(
54
59
  <Guide
55
60
  pages={ [
56
61
  { content: <p>Page 1</p> },
@@ -58,47 +63,59 @@ describe( 'Guide', () => {
58
63
  ] }
59
64
  />
60
65
  );
61
- wrapper.find( '.components-guide__forward-button' ).simulate( 'click' );
62
- expect( wrapper.find( PageControl ).prop( 'currentPage' ) ).toBe( 1 );
63
- expect( wrapper.find( '.components-guide__back-button' ) ).toHaveLength(
64
- 1
65
- );
66
+ await user.click( screen.getByRole( 'button', { name: 'Next' } ) );
67
+
68
+ expect( screen.queryByText( 'Page 1' ) ).not.toBeInTheDocument();
69
+ expect( screen.queryByText( 'Page 2' ) ).toBeVisible();
70
+
66
71
  expect(
67
- wrapper.find( '.components-guide__forward-button' )
68
- ).toHaveLength( 0 );
72
+ screen.queryByRole( 'button', { name: 'Previous' } )
73
+ ).toBeVisible();
69
74
  expect(
70
- wrapper.find( '.components-guide__finish-button' )
71
- ).toHaveLength( 1 );
75
+ screen.queryByRole( 'button', { name: 'Next' } )
76
+ ).not.toBeInTheDocument();
77
+ expect(
78
+ screen.queryByRole( 'button', { name: 'Finish' } )
79
+ ).toBeVisible();
72
80
  } );
73
81
 
74
82
  it( "doesn't display the page control if there is only one page", () => {
75
- const wrapper = shallow(
76
- <Guide pages={ [ { content: <p>Page 1</p> } ] } />
77
- );
78
- expect( wrapper.find( PageControl ).exists() ).toBeFalsy();
83
+ render( <Guide pages={ [ { content: <p>Page 1</p> } ] } /> );
84
+ expect(
85
+ screen.queryByRole( 'list', { name: 'Guide controls' } )
86
+ ).not.toBeInTheDocument();
79
87
  } );
80
88
 
81
- it( 'calls onFinish when the finish button is clicked', () => {
89
+ it( 'calls onFinish when the finish button is clicked', async () => {
90
+ const user = userEvent.setup( {
91
+ advanceTimers: jest.advanceTimersByTime,
92
+ } );
82
93
  const onFinish = jest.fn();
83
- const wrapper = shallow(
94
+ render(
84
95
  <Guide
85
96
  onFinish={ onFinish }
86
97
  pages={ [ { content: <p>Page 1</p> } ] }
87
98
  />
88
99
  );
89
- wrapper.find( '.components-guide__finish-button' ).simulate( 'click' );
100
+ await user.click( screen.getByRole( 'button', { name: 'Finish' } ) );
101
+
90
102
  expect( onFinish ).toHaveBeenCalled();
91
103
  } );
92
104
 
93
- it( 'calls onFinish when the modal is closed', () => {
105
+ it( 'calls onFinish when the modal is closed', async () => {
106
+ const user = userEvent.setup( {
107
+ advanceTimers: jest.advanceTimersByTime,
108
+ } );
94
109
  const onFinish = jest.fn();
95
- const wrapper = shallow(
110
+ render(
96
111
  <Guide
97
112
  onFinish={ onFinish }
98
113
  pages={ [ { content: <p>Page 1</p> } ] }
99
114
  />
100
115
  );
101
- wrapper.find( Modal ).prop( 'onRequestClose' )();
116
+
117
+ await user.keyboard( '[Escape]' );
118
+
102
119
  expect( onFinish ).toHaveBeenCalled();
103
120
  } );
104
121
  } );
@@ -1,12 +1,8 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { shallow } from 'enzyme';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { Button } from '@wordpress/components';
4
+ import { render, screen } from '@testing-library/react';
5
+ import userEvent from '@testing-library/user-event';
10
6
 
11
7
  /**
12
8
  * Internal dependencies
@@ -15,29 +11,30 @@ import PageControl from '../page-control';
15
11
 
16
12
  describe( 'PageControl', () => {
17
13
  it( 'renders an empty list when there are no pages', () => {
18
- const wrapper = shallow(
19
- <PageControl currentPage={ 0 } numberOfPages={ 0 } />
20
- );
21
- expect( wrapper.find( Button ) ).toHaveLength( 0 );
14
+ render( <PageControl currentPage={ 0 } numberOfPages={ 0 } /> );
15
+ expect( screen.queryByRole( 'button' ) ).not.toBeInTheDocument();
22
16
  } );
23
17
 
24
18
  it( 'renders a button for each page', () => {
25
- const wrapper = shallow(
26
- <PageControl currentPage={ 0 } numberOfPages={ 5 } />
27
- );
28
- expect( wrapper.find( Button ) ).toHaveLength( 5 );
19
+ render( <PageControl currentPage={ 0 } numberOfPages={ 5 } /> );
20
+ expect( screen.getAllByRole( 'button' ) ).toHaveLength( 5 );
29
21
  } );
30
22
 
31
- it( 'sets the current page when a button is clicked', () => {
23
+ it( 'sets the current page when a button is clicked', async () => {
24
+ const user = userEvent.setup( {
25
+ advanceTimers: jest.advanceTimersByTime,
26
+ } );
32
27
  const setCurrentPage = jest.fn();
33
- const wrapper = shallow(
28
+ render(
34
29
  <PageControl
35
30
  currentPage={ 0 }
36
31
  numberOfPages={ 2 }
37
32
  setCurrentPage={ setCurrentPage }
38
33
  />
39
34
  );
40
- wrapper.find( Button ).at( 1 ).simulate( 'click' );
35
+
36
+ await user.click( screen.getAllByRole( 'button' )[ 1 ] );
37
+
41
38
  expect( setCurrentPage ).toHaveBeenCalledWith( 1 );
42
39
  } );
43
40
  } );
@@ -5,6 +5,7 @@ import {
5
5
  act,
6
6
  render,
7
7
  fireEvent,
8
+ screen,
8
9
  waitForElementToBeRemoved,
9
10
  within,
10
11
  } from '@testing-library/react';
@@ -145,10 +146,11 @@ describe( 'withNotices rendering', () => {
145
146
  it( 'should display notices with functioning dismissal triggers', async () => {
146
147
  const messages = [ 'Aló!', 'hu dis?', 'Otis' ];
147
148
  const notices = noticesFrom( messages );
148
- const { container, getAllByLabelText } = render(
149
+ const { container } = render(
149
150
  <TestComponent notifications={ notices } />
150
151
  );
151
- const [ buttonRemoveFirst ] = getAllByLabelText( stockDismissText );
152
+ const [ buttonRemoveFirst ] =
153
+ screen.getAllByLabelText( stockDismissText );
152
154
  const getRemovalTarget = () =>
153
155
  within( container ).getByText(
154
156
  // The last item corresponds to the first notice in the DOM.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { render } from 'enzyme';
4
+ import { render } from '@testing-library/react';
5
5
 
6
6
  /**
7
7
  * Internal dependencies