@wordpress/components 25.7.0 → 25.8.1

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 (630) hide show
  1. package/CHANGELOG.md +66 -1
  2. package/build/animation/index.js +6 -0
  3. package/build/animation/index.js.map +1 -1
  4. package/build/border-control/border-control-dropdown/component.js +1 -1
  5. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  6. package/build/border-control/styles.js +20 -20
  7. package/build/border-control/styles.js.map +1 -1
  8. package/build/box-control/unit-control.js +1 -1
  9. package/build/box-control/unit-control.js.map +1 -1
  10. package/build/button/index.js +9 -1
  11. package/build/button/index.js.map +1 -1
  12. package/build/button/types.js.map +1 -1
  13. package/build/circular-option-picker/circular-option-picker-actions.js +53 -0
  14. package/build/circular-option-picker/circular-option-picker-actions.js.map +1 -0
  15. package/build/circular-option-picker/circular-option-picker-context.js +14 -0
  16. package/build/circular-option-picker/circular-option-picker-context.js.map +1 -0
  17. package/build/circular-option-picker/circular-option-picker-option-group.js +26 -0
  18. package/build/circular-option-picker/circular-option-picker-option-group.js.map +1 -0
  19. package/build/circular-option-picker/circular-option-picker-option.js +122 -0
  20. package/build/circular-option-picker/circular-option-picker-option.js.map +1 -0
  21. package/build/circular-option-picker/circular-option-picker.js +172 -0
  22. package/build/circular-option-picker/circular-option-picker.js.map +1 -0
  23. package/build/circular-option-picker/index.js +29 -137
  24. package/build/circular-option-picker/index.js.map +1 -1
  25. package/build/circular-option-picker/types.js.map +1 -1
  26. package/build/color-palette/index.js +58 -19
  27. package/build/color-palette/index.js.map +1 -1
  28. package/build/color-palette/types.js.map +1 -1
  29. package/build/combobox-control/index.js +0 -3
  30. package/build/combobox-control/index.js.map +1 -1
  31. package/build/composite/index.js.map +1 -1
  32. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  33. package/build/date-time/time/index.js +6 -1
  34. package/build/date-time/time/index.js.map +1 -1
  35. package/build/date-time/time/timezone.js +1 -1
  36. package/build/date-time/time/timezone.js.map +1 -1
  37. package/build/dropdown/index.js +11 -23
  38. package/build/dropdown/index.js.map +1 -1
  39. package/build/dropdown/types.js.map +1 -1
  40. package/build/dropdown-menu/index.js +7 -1
  41. package/build/dropdown-menu/index.js.map +1 -1
  42. package/build/dropdown-menu/types.js.map +1 -1
  43. package/build/dropdown-menu-v2/styles.js +16 -16
  44. package/build/dropdown-menu-v2/styles.js.map +1 -1
  45. package/build/duotone-picker/color-list-picker/index.js +18 -3
  46. package/build/duotone-picker/color-list-picker/index.js.map +1 -1
  47. package/build/duotone-picker/duotone-picker.js +33 -1
  48. package/build/duotone-picker/duotone-picker.js.map +1 -1
  49. package/build/duotone-picker/types.js.map +1 -1
  50. package/build/focusable-iframe/index.js +0 -4
  51. package/build/focusable-iframe/index.js.map +1 -1
  52. package/build/focusable-iframe/types.js +6 -0
  53. package/build/focusable-iframe/types.js.map +1 -0
  54. package/build/form-token-field/index.js +6 -2
  55. package/build/form-token-field/index.js.map +1 -1
  56. package/build/form-token-field/types.js.map +1 -1
  57. package/build/gradient-picker/index.js +57 -15
  58. package/build/gradient-picker/index.js.map +1 -1
  59. package/build/gradient-picker/types.js.map +1 -1
  60. package/build/higher-order/navigate-regions/index.js.map +1 -1
  61. package/build/higher-order/with-focus-outside/index.js +1 -2
  62. package/build/higher-order/with-focus-outside/index.js.map +1 -1
  63. package/build/higher-order/with-spoken-messages/index.js.map +1 -1
  64. package/build/index.js +6 -0
  65. package/build/index.js.map +1 -1
  66. package/build/input-control/styles/input-control-styles.js +22 -22
  67. package/build/input-control/styles/input-control-styles.js.map +1 -1
  68. package/build/mobile/bottom-sheet/index.native.js +1 -0
  69. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  70. package/build/mobile/global-styles-context/index.native.js.map +1 -1
  71. package/build/modal/index.js +12 -3
  72. package/build/modal/index.js.map +1 -1
  73. package/build/modal/types.js.map +1 -1
  74. package/build/navigation/use-navigation-tree-nodes.js.map +1 -1
  75. package/build/notice/index.js +19 -7
  76. package/build/notice/index.js.map +1 -1
  77. package/build/palette-edit/styles.js +10 -10
  78. package/build/palette-edit/styles.js.map +1 -1
  79. package/build/placeholder/index.js +10 -4
  80. package/build/placeholder/index.js.map +1 -1
  81. package/build/popover/index.js +37 -83
  82. package/build/popover/index.js.map +1 -1
  83. package/build/popover/types.js.map +1 -1
  84. package/build/popover/utils.js +9 -41
  85. package/build/popover/utils.js.map +1 -1
  86. package/build/search-control/index.js +12 -3
  87. package/build/search-control/index.js.map +1 -1
  88. package/build/search-control/types.js.map +1 -1
  89. package/build/text/styles.js +7 -7
  90. package/build/text/styles.js.map +1 -1
  91. package/build/toggle-group-control/toggle-group-control/as-button-group.js +30 -45
  92. package/build/toggle-group-control/toggle-group-control/as-button-group.js.map +1 -1
  93. package/build/toggle-group-control/toggle-group-control/as-radio-group.js +40 -41
  94. package/build/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
  95. package/build/toggle-group-control/toggle-group-control/component.js +10 -5
  96. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  97. package/build/toggle-group-control/toggle-group-control/styles.js +9 -16
  98. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  99. package/build/toggle-group-control/toggle-group-control/utils.js +44 -0
  100. package/build/toggle-group-control/toggle-group-control/utils.js.map +1 -0
  101. package/build/toggle-group-control/toggle-group-control-option-base/component.js +36 -17
  102. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  103. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +10 -8
  104. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  105. package/build/toggle-group-control/types.js.map +1 -1
  106. package/build/toolbar/toolbar/index.js +7 -1
  107. package/build/toolbar/toolbar/index.js.map +1 -1
  108. package/build/toolbar/toolbar-dropdown-menu/index.js +1 -3
  109. package/build/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
  110. package/build/toolbar/toolbar-group/index.js +16 -12
  111. package/build/toolbar/toolbar-group/index.js.map +1 -1
  112. package/build/toolbar/toolbar-group/toolbar-group-collapsed.js +0 -2
  113. package/build/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
  114. package/build/toolbar/toolbar-group/toolbar-group-container.js +3 -1
  115. package/build/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
  116. package/build/toolbar/toolbar-group/types.js +6 -0
  117. package/build/toolbar/toolbar-group/types.js.map +1 -0
  118. package/build/toolbar/toolbar-item/index.js +1 -1
  119. package/build/toolbar/toolbar-item/index.js.map +1 -1
  120. package/build/tooltip/index.js +51 -225
  121. package/build/tooltip/index.js.map +1 -1
  122. package/build/tooltip/types.js +6 -0
  123. package/build/tooltip/types.js.map +1 -0
  124. package/build/ui/context/context-connect.js.map +1 -1
  125. package/build/ui/context/wordpress-component.js.map +1 -1
  126. package/build/unit-control/index.js.map +1 -1
  127. package/build/unit-control/styles/unit-control-styles.js +7 -7
  128. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  129. package/build/utils/colors-values.js +1 -1
  130. package/build/utils/colors-values.js.map +1 -1
  131. package/build/utils/use-deprecated-props.js.map +1 -1
  132. package/build-module/animation/index.js +1 -1
  133. package/build-module/animation/index.js.map +1 -1
  134. package/build-module/border-control/border-control-dropdown/component.js +1 -1
  135. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  136. package/build-module/border-control/styles.js +20 -20
  137. package/build-module/border-control/styles.js.map +1 -1
  138. package/build-module/box-control/unit-control.js +1 -1
  139. package/build-module/box-control/unit-control.js.map +1 -1
  140. package/build-module/button/index.js +9 -1
  141. package/build-module/button/index.js.map +1 -1
  142. package/build-module/button/types.js.map +1 -1
  143. package/build-module/circular-option-picker/circular-option-picker-actions.js +44 -0
  144. package/build-module/circular-option-picker/circular-option-picker-actions.js.map +1 -0
  145. package/build-module/circular-option-picker/circular-option-picker-context.js +11 -0
  146. package/build-module/circular-option-picker/circular-option-picker-context.js.map +1 -0
  147. package/build-module/circular-option-picker/circular-option-picker-option-group.js +23 -0
  148. package/build-module/circular-option-picker/circular-option-picker-option-group.js.map +1 -0
  149. package/build-module/circular-option-picker/circular-option-picker-option.js +114 -0
  150. package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -0
  151. package/build-module/circular-option-picker/circular-option-picker.js +165 -0
  152. package/build-module/circular-option-picker/circular-option-picker.js.map +1 -0
  153. package/build-module/circular-option-picker/index.js +4 -132
  154. package/build-module/circular-option-picker/index.js.map +1 -1
  155. package/build-module/circular-option-picker/types.js.map +1 -1
  156. package/build-module/color-palette/index.js +58 -19
  157. package/build-module/color-palette/index.js.map +1 -1
  158. package/build-module/color-palette/types.js.map +1 -1
  159. package/build-module/combobox-control/index.js +0 -3
  160. package/build-module/combobox-control/index.js.map +1 -1
  161. package/build-module/composite/index.js +2 -0
  162. package/build-module/composite/index.js.map +1 -1
  163. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  164. package/build-module/date-time/time/index.js +6 -1
  165. package/build-module/date-time/time/index.js.map +1 -1
  166. package/build-module/date-time/time/timezone.js +1 -1
  167. package/build-module/date-time/time/timezone.js.map +1 -1
  168. package/build-module/dropdown/index.js +12 -24
  169. package/build-module/dropdown/index.js.map +1 -1
  170. package/build-module/dropdown/types.js.map +1 -1
  171. package/build-module/dropdown-menu/index.js +7 -1
  172. package/build-module/dropdown-menu/index.js.map +1 -1
  173. package/build-module/dropdown-menu/types.js.map +1 -1
  174. package/build-module/dropdown-menu-v2/styles.js +16 -16
  175. package/build-module/dropdown-menu-v2/styles.js.map +1 -1
  176. package/build-module/duotone-picker/color-list-picker/index.js +18 -3
  177. package/build-module/duotone-picker/color-list-picker/index.js.map +1 -1
  178. package/build-module/duotone-picker/duotone-picker.js +33 -1
  179. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  180. package/build-module/duotone-picker/types.js.map +1 -1
  181. package/build-module/focusable-iframe/index.js +2 -3
  182. package/build-module/focusable-iframe/index.js.map +1 -1
  183. package/build-module/focusable-iframe/types.js +2 -0
  184. package/build-module/focusable-iframe/types.js.map +1 -0
  185. package/build-module/form-token-field/index.js +6 -2
  186. package/build-module/form-token-field/index.js.map +1 -1
  187. package/build-module/form-token-field/types.js.map +1 -1
  188. package/build-module/gradient-picker/index.js +57 -15
  189. package/build-module/gradient-picker/index.js.map +1 -1
  190. package/build-module/gradient-picker/types.js.map +1 -1
  191. package/build-module/higher-order/navigate-regions/index.js.map +1 -1
  192. package/build-module/higher-order/with-focus-outside/index.js +1 -3
  193. package/build-module/higher-order/with-focus-outside/index.js.map +1 -1
  194. package/build-module/higher-order/with-spoken-messages/index.js.map +1 -1
  195. package/build-module/index.js +1 -1
  196. package/build-module/index.js.map +1 -1
  197. package/build-module/input-control/styles/input-control-styles.js +23 -23
  198. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  199. package/build-module/mobile/bottom-sheet/index.native.js +1 -0
  200. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  201. package/build-module/mobile/global-styles-context/index.native.js.map +1 -1
  202. package/build-module/modal/index.js +12 -3
  203. package/build-module/modal/index.js.map +1 -1
  204. package/build-module/modal/types.js.map +1 -1
  205. package/build-module/navigation/use-navigation-tree-nodes.js.map +1 -1
  206. package/build-module/notice/index.js +19 -7
  207. package/build-module/notice/index.js.map +1 -1
  208. package/build-module/palette-edit/styles.js +10 -10
  209. package/build-module/palette-edit/styles.js.map +1 -1
  210. package/build-module/placeholder/index.js +11 -4
  211. package/build-module/placeholder/index.js.map +1 -1
  212. package/build-module/popover/index.js +38 -84
  213. package/build-module/popover/index.js.map +1 -1
  214. package/build-module/popover/types.js.map +1 -1
  215. package/build-module/popover/utils.js +8 -39
  216. package/build-module/popover/utils.js.map +1 -1
  217. package/build-module/search-control/index.js +12 -3
  218. package/build-module/search-control/index.js.map +1 -1
  219. package/build-module/search-control/types.js.map +1 -1
  220. package/build-module/text/styles.js +7 -7
  221. package/build-module/text/styles.js.map +1 -1
  222. package/build-module/toggle-group-control/toggle-group-control/as-button-group.js +32 -47
  223. package/build-module/toggle-group-control/toggle-group-control/as-button-group.js.map +1 -1
  224. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js +41 -42
  225. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
  226. package/build-module/toggle-group-control/toggle-group-control/component.js +10 -6
  227. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  228. package/build-module/toggle-group-control/toggle-group-control/styles.js +8 -14
  229. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  230. package/build-module/toggle-group-control/toggle-group-control/utils.js +42 -0
  231. package/build-module/toggle-group-control/toggle-group-control/utils.js.map +1 -0
  232. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +35 -16
  233. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  234. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +8 -7
  235. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  236. package/build-module/toggle-group-control/types.js.map +1 -1
  237. package/build-module/toolbar/toolbar/index.js +7 -1
  238. package/build-module/toolbar/toolbar/index.js.map +1 -1
  239. package/build-module/toolbar/toolbar-dropdown-menu/index.js +5 -3
  240. package/build-module/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
  241. package/build-module/toolbar/toolbar-group/index.js +15 -12
  242. package/build-module/toolbar/toolbar-group/index.js.map +1 -1
  243. package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js +0 -2
  244. package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
  245. package/build-module/toolbar/toolbar-group/toolbar-group-container.js +3 -1
  246. package/build-module/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
  247. package/build-module/toolbar/toolbar-group/types.js +2 -0
  248. package/build-module/toolbar/toolbar-group/types.js.map +1 -0
  249. package/build-module/toolbar/toolbar-item/index.js +1 -1
  250. package/build-module/toolbar/toolbar-item/index.js.map +1 -1
  251. package/build-module/tooltip/index.js +53 -224
  252. package/build-module/tooltip/index.js.map +1 -1
  253. package/build-module/tooltip/types.js +2 -0
  254. package/build-module/tooltip/types.js.map +1 -0
  255. package/build-module/ui/context/context-connect.js.map +1 -1
  256. package/build-module/ui/context/wordpress-component.js.map +1 -1
  257. package/build-module/unit-control/index.js.map +1 -1
  258. package/build-module/unit-control/styles/unit-control-styles.js +7 -7
  259. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  260. package/build-module/utils/colors-values.js +1 -1
  261. package/build-module/utils/colors-values.js.map +1 -1
  262. package/build-module/utils/use-deprecated-props.js.map +1 -1
  263. package/build-style/style-rtl.css +35 -73
  264. package/build-style/style.css +35 -73
  265. package/build-types/animation/index.d.ts +1 -1
  266. package/build-types/animation/index.d.ts.map +1 -1
  267. package/build-types/base-control/hooks.d.ts +1 -1
  268. package/build-types/border-box-control/border-box-control/component.d.ts +1 -1
  269. package/build-types/border-box-control/border-box-control/hook.d.ts +46 -46
  270. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +51 -51
  271. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +1 -1
  272. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +46 -46
  273. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +46 -46
  274. package/build-types/border-box-control/stories/index.story.d.ts +2 -2
  275. package/build-types/border-control/border-control/hook.d.ts +45 -45
  276. package/build-types/border-control/border-control-dropdown/hook.d.ts +45 -45
  277. package/build-types/border-control/border-control-style-picker/hook.d.ts +45 -45
  278. package/build-types/border-control/stories/index.story.d.ts +6 -6
  279. package/build-types/box-control/styles/box-control-styles.d.ts +1 -1
  280. package/build-types/button/deprecated.d.ts +16 -22
  281. package/build-types/button/deprecated.d.ts.map +1 -1
  282. package/build-types/button/index.d.ts.map +1 -1
  283. package/build-types/button/types.d.ts +0 -4
  284. package/build-types/button/types.d.ts.map +1 -1
  285. package/build-types/card/card/hook.d.ts +46 -46
  286. package/build-types/card/card-body/hook.d.ts +46 -46
  287. package/build-types/card/card-divider/hook.d.ts +47 -47
  288. package/build-types/card/card-footer/hook.d.ts +46 -46
  289. package/build-types/card/card-header/hook.d.ts +46 -46
  290. package/build-types/card/card-media/hook.d.ts +46 -46
  291. package/build-types/card/stories/index.story.d.ts +2 -2
  292. package/build-types/circular-option-picker/circular-option-picker-actions.d.ts +7 -0
  293. package/build-types/circular-option-picker/circular-option-picker-actions.d.ts.map +1 -0
  294. package/build-types/circular-option-picker/circular-option-picker-context.d.ts +7 -0
  295. package/build-types/circular-option-picker/circular-option-picker-context.d.ts.map +1 -0
  296. package/build-types/circular-option-picker/circular-option-picker-option-group.d.ts +7 -0
  297. package/build-types/circular-option-picker/circular-option-picker-option-group.d.ts.map +1 -0
  298. package/build-types/circular-option-picker/circular-option-picker-option.d.ts +4 -0
  299. package/build-types/circular-option-picker/circular-option-picker-option.d.ts.map +1 -0
  300. package/build-types/circular-option-picker/circular-option-picker.d.ts +11 -0
  301. package/build-types/circular-option-picker/circular-option-picker.d.ts.map +1 -0
  302. package/build-types/circular-option-picker/index.d.ts +5 -56
  303. package/build-types/circular-option-picker/index.d.ts.map +1 -1
  304. package/build-types/circular-option-picker/stories/index.story.d.ts +3 -1
  305. package/build-types/circular-option-picker/stories/index.story.d.ts.map +1 -1
  306. package/build-types/circular-option-picker/test/index.d.ts +2 -0
  307. package/build-types/circular-option-picker/test/index.d.ts.map +1 -0
  308. package/build-types/circular-option-picker/types.d.ts +53 -1
  309. package/build-types/circular-option-picker/types.d.ts.map +1 -1
  310. package/build-types/color-palette/index.d.ts +3 -19
  311. package/build-types/color-palette/index.d.ts.map +1 -1
  312. package/build-types/color-palette/stories/index.story.d.ts +3 -36
  313. package/build-types/color-palette/stories/index.story.d.ts.map +1 -1
  314. package/build-types/color-palette/styles.d.ts +1 -1
  315. package/build-types/color-palette/types.d.ts +31 -1
  316. package/build-types/color-palette/types.d.ts.map +1 -1
  317. package/build-types/color-picker/component.d.ts +1 -1
  318. package/build-types/color-picker/stories/index.story.d.ts +1 -1
  319. package/build-types/color-picker/styles.d.ts +6 -6
  320. package/build-types/combobox-control/index.d.ts.map +1 -1
  321. package/build-types/combobox-control/stories/index.story.d.ts +2 -2
  322. package/build-types/composite/index.d.ts +14 -1
  323. package/build-types/composite/index.d.ts.map +1 -1
  324. package/build-types/custom-gradient-picker/styles/custom-gradient-picker-styles.d.ts +2 -2
  325. package/build-types/date-time/date/styles.d.ts +3 -3
  326. package/build-types/date-time/date-time/styles.d.ts +2 -2
  327. package/build-types/date-time/time/index.d.ts.map +1 -1
  328. package/build-types/date-time/time/styles.d.ts +12 -12
  329. package/build-types/dropdown/index.d.ts.map +1 -1
  330. package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
  331. package/build-types/dropdown/types.d.ts +12 -4
  332. package/build-types/dropdown/types.d.ts.map +1 -1
  333. package/build-types/dropdown-menu/index.d.ts.map +1 -1
  334. package/build-types/dropdown-menu/stories/index.story.d.ts.map +1 -1
  335. package/build-types/dropdown-menu/types.d.ts +22 -5
  336. package/build-types/dropdown-menu/types.d.ts.map +1 -1
  337. package/build-types/duotone-picker/color-list-picker/index.d.ts.map +1 -1
  338. package/build-types/duotone-picker/duotone-picker.d.ts +1 -1
  339. package/build-types/duotone-picker/duotone-picker.d.ts.map +1 -1
  340. package/build-types/duotone-picker/types.d.ts +31 -1
  341. package/build-types/duotone-picker/types.d.ts.map +1 -1
  342. package/build-types/elevation/hook.d.ts +46 -46
  343. package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
  344. package/build-types/flex/flex/hook.d.ts +46 -46
  345. package/build-types/flex/flex-block/hook.d.ts +46 -46
  346. package/build-types/flex/flex-item/hook.d.ts +46 -46
  347. package/build-types/focal-point-picker/stories/index.story.d.ts +8 -8
  348. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
  349. package/build-types/focusable-iframe/index.d.ts +4 -5
  350. package/build-types/focusable-iframe/index.d.ts.map +1 -1
  351. package/build-types/focusable-iframe/types.d.ts +8 -0
  352. package/build-types/focusable-iframe/types.d.ts.map +1 -0
  353. package/build-types/font-size-picker/styles.d.ts +2 -2
  354. package/build-types/form-token-field/index.d.ts.map +1 -1
  355. package/build-types/form-token-field/types.d.ts +6 -0
  356. package/build-types/form-token-field/types.d.ts.map +1 -1
  357. package/build-types/gradient-picker/index.d.ts +1 -1
  358. package/build-types/gradient-picker/index.d.ts.map +1 -1
  359. package/build-types/gradient-picker/stories/index.story.d.ts +3 -36
  360. package/build-types/gradient-picker/stories/index.story.d.ts.map +1 -1
  361. package/build-types/gradient-picker/types.d.ts +31 -1
  362. package/build-types/gradient-picker/types.d.ts.map +1 -1
  363. package/build-types/grid/hook.d.ts +46 -46
  364. package/build-types/h-stack/component.d.ts +1 -1
  365. package/build-types/h-stack/hook.d.ts +46 -46
  366. package/build-types/heading/hook.d.ts +45 -45
  367. package/build-types/higher-order/navigate-regions/index.d.ts.map +1 -1
  368. package/build-types/higher-order/with-focus-outside/index.d.ts +1 -0
  369. package/build-types/higher-order/with-focus-outside/index.d.ts.map +1 -1
  370. package/build-types/higher-order/with-focus-outside/test/index.d.ts +2 -0
  371. package/build-types/higher-order/with-focus-outside/test/index.d.ts.map +1 -0
  372. package/build-types/higher-order/with-spoken-messages/index.d.ts.map +1 -1
  373. package/build-types/index.d.ts +1 -1
  374. package/build-types/index.d.ts.map +1 -1
  375. package/build-types/isolated-event-container/test/index.d.ts +2 -0
  376. package/build-types/isolated-event-container/test/index.d.ts.map +1 -0
  377. package/build-types/item-group/item/hook.d.ts +46 -46
  378. package/build-types/item-group/item-group/hook.d.ts +46 -46
  379. package/build-types/menu-item/index.d.ts +1 -1
  380. package/build-types/menu-item/stories/index.story.d.ts +4 -4
  381. package/build-types/modal/index.d.ts.map +1 -1
  382. package/build-types/modal/stories/index.story.d.ts.map +1 -1
  383. package/build-types/modal/types.d.ts +1 -1
  384. package/build-types/modal/types.d.ts.map +1 -1
  385. package/build-types/navigable-container/menu.d.ts +1 -1
  386. package/build-types/navigation/back-button/index.d.ts +1 -1
  387. package/build-types/navigation/styles/navigation-styles.d.ts +5 -3
  388. package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -1
  389. package/build-types/navigator/navigator-back-button/component.d.ts +2 -3
  390. package/build-types/navigator/navigator-back-button/component.d.ts.map +1 -1
  391. package/build-types/navigator/navigator-back-button/hook.d.ts +53 -54
  392. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
  393. package/build-types/navigator/navigator-button/component.d.ts +2 -3
  394. package/build-types/navigator/navigator-button/component.d.ts.map +1 -1
  395. package/build-types/navigator/navigator-button/hook.d.ts +53 -54
  396. package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
  397. package/build-types/navigator/navigator-to-parent-button/component.d.ts +2 -3
  398. package/build-types/navigator/navigator-to-parent-button/component.d.ts.map +1 -1
  399. package/build-types/notice/index.d.ts.map +1 -1
  400. package/build-types/number-control/index.d.ts +3 -3
  401. package/build-types/number-control/stories/index.story.d.ts +3 -3
  402. package/build-types/palette-edit/styles.d.ts +4 -4
  403. package/build-types/palette-edit/styles.d.ts.map +1 -1
  404. package/build-types/placeholder/index.d.ts.map +1 -1
  405. package/build-types/popover/index.d.ts +1 -1
  406. package/build-types/popover/index.d.ts.map +1 -1
  407. package/build-types/popover/overlay-middlewares.d.ts +1 -1
  408. package/build-types/popover/stories/e2e/index.story.d.ts +1 -1
  409. package/build-types/popover/types.d.ts +0 -4
  410. package/build-types/popover/types.d.ts.map +1 -1
  411. package/build-types/popover/utils.d.ts +2 -6
  412. package/build-types/popover/utils.d.ts.map +1 -1
  413. package/build-types/range-control/index.d.ts +1 -1
  414. package/build-types/range-control/styles/range-control-styles.d.ts +3 -3
  415. package/build-types/resizable-box/index.d.ts +1 -1
  416. package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
  417. package/build-types/resizable-box/resize-tooltip/label.d.ts +1 -1
  418. package/build-types/resizable-box/stories/index.story.d.ts +2 -2
  419. package/build-types/scrollable/hook.d.ts +46 -46
  420. package/build-types/search-control/index.d.ts +4 -2
  421. package/build-types/search-control/index.d.ts.map +1 -1
  422. package/build-types/search-control/stories/index.story.d.ts +8 -4
  423. package/build-types/search-control/stories/index.story.d.ts.map +1 -1
  424. package/build-types/search-control/types.d.ts +12 -0
  425. package/build-types/search-control/types.d.ts.map +1 -1
  426. package/build-types/spacer/hook.d.ts +46 -46
  427. package/build-types/spinner/index.d.ts +1 -1
  428. package/build-types/surface/hook.d.ts +46 -46
  429. package/build-types/text/hook.d.ts +46 -46
  430. package/build-types/text/styles.d.ts.map +1 -1
  431. package/build-types/text-control/index.d.ts +3 -3
  432. package/build-types/toggle-control/stories/index.story.d.ts +2 -2
  433. package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +2 -4
  434. package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts.map +1 -1
  435. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +2 -4
  436. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts.map +1 -1
  437. package/build-types/toggle-group-control/toggle-group-control/component.d.ts +2 -2
  438. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  439. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +1 -5
  440. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  441. package/build-types/toggle-group-control/toggle-group-control/utils.d.ts +18 -0
  442. package/build-types/toggle-group-control/toggle-group-control/utils.d.ts.map +1 -0
  443. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +1 -1
  444. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +5 -1
  445. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  446. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +1 -0
  447. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
  448. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
  449. package/build-types/toggle-group-control/types.d.ts +13 -24
  450. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  451. package/build-types/toolbar/stories/index.story.d.ts.map +1 -1
  452. package/build-types/toolbar/toolbar/index.d.ts.map +1 -1
  453. package/build-types/toolbar/toolbar-button/index.d.ts +16 -22
  454. package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -1
  455. package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts +3 -1
  456. package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts.map +1 -1
  457. package/build-types/toolbar/toolbar-group/index.d.ts +10 -14
  458. package/build-types/toolbar/toolbar-group/index.d.ts.map +1 -1
  459. package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts +3 -5
  460. package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts.map +1 -1
  461. package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts +7 -5
  462. package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts.map +1 -1
  463. package/build-types/toolbar/toolbar-group/types.d.ts +77 -0
  464. package/build-types/toolbar/toolbar-group/types.d.ts.map +1 -0
  465. package/build-types/toolbar/toolbar-item/index.d.ts.map +1 -1
  466. package/build-types/tools-panel/tools-panel/hook.d.ts +46 -46
  467. package/build-types/tools-panel/tools-panel-header/hook.d.ts +46 -46
  468. package/build-types/tools-panel/tools-panel-item/hook.d.ts +46 -46
  469. package/build-types/tooltip/index.d.ts +8 -5
  470. package/build-types/tooltip/index.d.ts.map +1 -1
  471. package/build-types/tooltip/stories/index.story.d.ts +13 -0
  472. package/build-types/tooltip/stories/index.story.d.ts.map +1 -0
  473. package/build-types/tooltip/test/index.d.ts +2 -0
  474. package/build-types/tooltip/test/index.d.ts.map +1 -0
  475. package/build-types/tooltip/test/utils/index.d.ts +11 -0
  476. package/build-types/tooltip/test/utils/index.d.ts.map +1 -0
  477. package/build-types/tooltip/types.d.ts +61 -0
  478. package/build-types/tooltip/types.d.ts.map +1 -0
  479. package/build-types/truncate/hook.d.ts +46 -46
  480. package/build-types/ui/tooltip/content.d.ts +1 -1
  481. package/build-types/unit-control/index.d.ts +1 -1
  482. package/build-types/unit-control/index.d.ts.map +1 -1
  483. package/build-types/unit-control/styles/unit-control-styles.d.ts +3 -3
  484. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  485. package/build-types/unit-control/unit-select-control.d.ts +1 -1
  486. package/build-types/utils/use-deprecated-props.d.ts +1 -1
  487. package/build-types/v-stack/component.d.ts +1 -1
  488. package/build-types/v-stack/hook.d.ts +46 -46
  489. package/build-types/v-stack/stories/index.story.d.ts +2 -2
  490. package/package.json +20 -20
  491. package/src/animation/index.tsx +1 -0
  492. package/src/border-control/border-control/README.md +2 -2
  493. package/src/border-control/border-control-dropdown/component.tsx +1 -1
  494. package/src/border-control/styles.ts +7 -7
  495. package/src/border-control/test/index.js +79 -69
  496. package/src/box-control/unit-control.tsx +1 -1
  497. package/src/button/README.md +0 -6
  498. package/src/button/index.tsx +9 -1
  499. package/src/button/test/index.tsx +19 -0
  500. package/src/button/types.ts +0 -4
  501. package/src/circular-option-picker/README.md +14 -0
  502. package/src/circular-option-picker/circular-option-picker-actions.tsx +60 -0
  503. package/src/circular-option-picker/circular-option-picker-context.tsx +12 -0
  504. package/src/circular-option-picker/circular-option-picker-option-group.tsx +34 -0
  505. package/src/circular-option-picker/circular-option-picker-option.tsx +139 -0
  506. package/src/circular-option-picker/circular-option-picker.tsx +202 -0
  507. package/src/circular-option-picker/index.tsx +7 -174
  508. package/src/circular-option-picker/stories/index.story.tsx +34 -9
  509. package/src/circular-option-picker/style.scss +11 -7
  510. package/src/circular-option-picker/test/index.tsx +133 -0
  511. package/src/circular-option-picker/types.ts +64 -1
  512. package/src/color-palette/README.md +14 -0
  513. package/src/color-palette/index.tsx +69 -28
  514. package/src/color-palette/stories/index.story.tsx +16 -2
  515. package/src/color-palette/test/index.tsx +32 -30
  516. package/src/color-palette/types.ts +34 -1
  517. package/src/combobox-control/index.tsx +7 -5
  518. package/src/composite/{index.js → index.ts} +3 -0
  519. package/src/confirm-dialog/stories/index.story.js +13 -14
  520. package/src/confirm-dialog/test/index.js +10 -18
  521. package/src/custom-gradient-picker/gradient-bar/control-points.tsx +1 -1
  522. package/src/custom-gradient-picker/gradient-bar/test/utils.ts +5 -5
  523. package/src/date-time/time/index.tsx +8 -1
  524. package/src/date-time/time/timezone.tsx +1 -1
  525. package/src/dropdown/README.md +13 -3
  526. package/src/dropdown/index.tsx +16 -34
  527. package/src/dropdown/stories/index.story.tsx +10 -7
  528. package/src/dropdown/types.ts +12 -4
  529. package/src/dropdown-menu/README.md +18 -0
  530. package/src/dropdown-menu/index.tsx +8 -1
  531. package/src/dropdown-menu/stories/index.story.tsx +5 -0
  532. package/src/dropdown-menu/types.ts +23 -6
  533. package/src/dropdown-menu-v2/styles.ts +1 -1
  534. package/src/duotone-picker/README.md +14 -0
  535. package/src/duotone-picker/color-list-picker/index.tsx +28 -12
  536. package/src/duotone-picker/duotone-picker.tsx +33 -0
  537. package/src/duotone-picker/types.ts +34 -1
  538. package/src/focusable-iframe/{index.js → index.tsx} +7 -4
  539. package/src/focusable-iframe/types.ts +9 -0
  540. package/src/form-token-field/README.md +1 -0
  541. package/src/form-token-field/index.tsx +5 -1
  542. package/src/form-token-field/style.scss +5 -9
  543. package/src/form-token-field/test/index.tsx +36 -1
  544. package/src/form-token-field/types.ts +7 -1
  545. package/src/gradient-picker/README.md +14 -0
  546. package/src/gradient-picker/index.tsx +60 -11
  547. package/src/gradient-picker/types.ts +34 -1
  548. package/src/higher-order/navigate-regions/index.tsx +5 -6
  549. package/src/higher-order/with-filters/test/index.tsx +36 -43
  550. package/src/higher-order/with-focus-outside/{index.js → index.tsx} +8 -5
  551. package/src/higher-order/with-focus-outside/test/{index.js → index.tsx} +13 -11
  552. package/src/higher-order/with-notices/test/index.tsx +1 -1
  553. package/src/higher-order/with-spoken-messages/index.tsx +7 -8
  554. package/src/index.ts +5 -1
  555. package/src/input-control/styles/input-control-styles.tsx +2 -2
  556. package/src/isolated-event-container/test/{index.js → index.tsx} +1 -1
  557. package/src/mobile/bottom-sheet/index.native.js +1 -0
  558. package/src/mobile/global-styles-context/index.native.js +7 -8
  559. package/src/modal/README.md +7 -1
  560. package/src/modal/index.tsx +27 -3
  561. package/src/modal/stories/index.story.tsx +2 -1
  562. package/src/modal/test/index.tsx +231 -0
  563. package/src/modal/types.ts +3 -1
  564. package/src/navigation/use-navigation-tree-nodes.tsx +1 -1
  565. package/src/notice/index.tsx +18 -6
  566. package/src/notice/style.scss +0 -1
  567. package/src/notice/test/__snapshots__/index.tsx.snap +9 -1
  568. package/src/palette-edit/styles.js +2 -1
  569. package/src/placeholder/index.tsx +16 -8
  570. package/src/placeholder/style.scss +2 -16
  571. package/src/placeholder/test/index.tsx +34 -15
  572. package/src/popover/index.tsx +47 -110
  573. package/src/popover/test/index.tsx +3 -3
  574. package/src/popover/types.ts +0 -5
  575. package/src/popover/utils.ts +19 -67
  576. package/src/search-control/README.md +7 -0
  577. package/src/search-control/index.tsx +10 -1
  578. package/src/search-control/style.scss +14 -7
  579. package/src/search-control/types.ts +12 -0
  580. package/src/tab-panel/test/index.tsx +5 -0
  581. package/src/text/styles.js +2 -1
  582. package/src/theme/README.md +5 -5
  583. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +567 -59
  584. package/src/toggle-group-control/test/index.tsx +110 -56
  585. package/src/toggle-group-control/toggle-group-control/README.md +0 -1
  586. package/src/toggle-group-control/toggle-group-control/as-button-group.tsx +39 -57
  587. package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +52 -48
  588. package/src/toggle-group-control/toggle-group-control/component.tsx +12 -6
  589. package/src/toggle-group-control/toggle-group-control/styles.ts +2 -19
  590. package/src/toggle-group-control/toggle-group-control/utils.ts +50 -0
  591. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +70 -20
  592. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +17 -3
  593. package/src/toggle-group-control/types.ts +14 -32
  594. package/src/toolbar/stories/index.story.tsx +3 -5
  595. package/src/toolbar/test/toolbar-group.tsx +13 -7
  596. package/src/toolbar/toolbar/index.tsx +9 -1
  597. package/src/toolbar/toolbar-dropdown-menu/{index.js → index.tsx} +11 -4
  598. package/src/toolbar/toolbar-group/README.md +2 -2
  599. package/src/toolbar/toolbar-group/{index.js → index.tsx} +19 -14
  600. package/src/toolbar/toolbar-group/{toolbar-group-collapsed.js → toolbar-group-collapsed.tsx} +10 -4
  601. package/src/toolbar/toolbar-group/toolbar-group-container.tsx +16 -0
  602. package/src/toolbar/toolbar-group/types.ts +92 -0
  603. package/src/toolbar/toolbar-item/index.tsx +3 -1
  604. package/src/tooltip/README.md +31 -28
  605. package/src/tooltip/index.tsx +106 -0
  606. package/src/tooltip/stories/index.story.tsx +59 -0
  607. package/src/tooltip/style.scss +2 -27
  608. package/src/tooltip/test/index.tsx +335 -0
  609. package/src/tooltip/test/utils/index.tsx +20 -0
  610. package/src/tooltip/types.ts +61 -0
  611. package/src/ui/context/context-connect.ts +3 -3
  612. package/src/ui/context/wordpress-component.ts +4 -4
  613. package/src/unit-control/index.tsx +9 -4
  614. package/src/unit-control/styles/unit-control-styles.ts +3 -1
  615. package/src/unit-control/test/utils.ts +1 -1
  616. package/src/utils/colors-values.js +1 -1
  617. package/src/utils/use-deprecated-props.ts +1 -1
  618. package/tsconfig.tsbuildinfo +1 -1
  619. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +0 -78
  620. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +0 -1
  621. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +0 -76
  622. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +0 -1
  623. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts +0 -9
  624. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts.map +0 -1
  625. package/src/color-palette/test/__snapshots__/index.tsx.snap +0 -288
  626. package/src/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.tsx +0 -84
  627. package/src/toolbar/toolbar-group/toolbar-group-container.js +0 -8
  628. package/src/tooltip/index.js +0 -293
  629. package/src/tooltip/stories/index.story.js +0 -85
  630. package/src/tooltip/test/index.js +0 -323
@@ -235,7 +235,7 @@ const BorderControlDropdown = (
235
235
  onClose();
236
236
  } }
237
237
  >
238
- { __( 'Reset to default' ) }
238
+ { __( 'Reset' ) }
239
239
  </Button>
240
240
  </DropdownContentWrapper>
241
241
  ) }
@@ -21,7 +21,7 @@ const labelStyles = css`
21
21
  `;
22
22
 
23
23
  const focusBoxShadow = css`
24
- box-shadow: inset 0 0 0 ${ CONFIG.borderWidth } ${ COLORS.ui.borderFocus };
24
+ box-shadow: inset ${ CONFIG.controlBoxShadowFocus };
25
25
  `;
26
26
 
27
27
  export const borderControl = css`
@@ -165,10 +165,10 @@ export const resetButton = css`
165
165
 
166
166
  /* Override button component styling */
167
167
  && {
168
- border-top: ${ CONFIG.borderWidth } solid ${ COLORS.gray[ 200 ] };
168
+ border-top: ${ CONFIG.borderWidth } solid ${ COLORS.gray[ 400 ] };
169
169
  border-top-left-radius: 0;
170
170
  border-top-right-radius: 0;
171
- height: 46px;
171
+ height: 40px;
172
172
  }
173
173
  `;
174
174
 
@@ -180,10 +180,10 @@ export const borderControlStylePicker = css`
180
180
 
181
181
  export const borderStyleButton = css`
182
182
  &&&&& {
183
- min-width: 30px;
184
- width: 30px;
185
- height: 30px;
186
- padding: 3px;
183
+ min-width: 32px;
184
+ width: 32px;
185
+ height: 32px;
186
+ padding: 4px;
187
187
  }
188
188
  `;
189
189
 
@@ -1,13 +1,8 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import {
5
- act,
6
- fireEvent,
7
- render,
8
- screen,
9
- waitFor,
10
- } from '@testing-library/react';
4
+ import { fireEvent, render, screen, waitFor } from '@testing-library/react';
5
+ import userEvent from '@testing-library/user-event';
11
6
 
12
7
  /**
13
8
  * Internal dependencies
@@ -43,36 +38,28 @@ function createProps( customProps ) {
43
38
 
44
39
  const toggleLabelRegex = /Border color( and style)* picker/;
45
40
 
46
- function getWrappingPopoverElement( element ) {
47
- return element.closest( '.components-popover' );
48
- }
49
-
50
- const openPopover = async () => {
41
+ const openPopover = async ( user ) => {
51
42
  const toggleButton = screen.getByLabelText( toggleLabelRegex );
52
- fireEvent.click( toggleButton );
43
+ await user.click( toggleButton );
53
44
 
54
45
  // Wait for color picker popover to fully appear
55
46
  const pickerButton = screen.getByRole( 'button', {
56
47
  name: /^Custom color picker/,
57
48
  } );
58
49
 
59
- await waitFor( () =>
60
- expect(
61
- getWrappingPopoverElement( pickerButton )
62
- ).toBePositionedPopover()
63
- );
50
+ await waitFor( () => expect( pickerButton ).toBePositionedPopover() );
64
51
  };
65
52
 
66
53
  const getButton = ( name ) => {
67
54
  return screen.getByRole( 'button', { name } );
68
55
  };
69
56
 
70
- const queryButton = ( name ) => {
71
- return screen.queryByRole( 'button', { name } );
57
+ const getColorOption = ( color ) => {
58
+ return screen.getByRole( 'option', { name: `Color: ${ color }` } );
72
59
  };
73
60
 
74
- const clickButton = ( name ) => {
75
- fireEvent.click( getButton( name ) );
61
+ const queryButton = ( name ) => {
62
+ return screen.queryByRole( 'button', { name } );
76
63
  };
77
64
 
78
65
  const getSliderInput = () => {
@@ -82,15 +69,6 @@ const getSliderInput = () => {
82
69
  const getWidthInput = () => {
83
70
  return screen.getByRole( 'spinbutton', { name: 'Border width' } );
84
71
  };
85
- const setWidthInput = ( value ) => {
86
- const widthInput = getWidthInput();
87
- act( () => {
88
- widthInput.focus();
89
- } );
90
- fireEvent.change( widthInput, { target: { value } } );
91
- };
92
-
93
- const clearWidthInput = () => setWidthInput( '' );
94
72
 
95
73
  describe( 'BorderControl', () => {
96
74
  describe( 'basic rendering', () => {
@@ -146,19 +124,20 @@ describe( 'BorderControl', () => {
146
124
  } );
147
125
 
148
126
  it( 'should render color and style popover', async () => {
127
+ const user = userEvent.setup();
149
128
  const props = createProps();
150
129
  render( <BorderControl { ...props } /> );
151
- await openPopover();
130
+ await openPopover( user );
152
131
 
153
132
  const customColorPicker = getButton( /Custom color picker/ );
154
- const colorSwatchButtons = screen.getAllByRole( 'button', {
133
+ const colorSwatchButtons = screen.getAllByRole( 'option', {
155
134
  name: /^Color:/,
156
135
  } );
157
136
  const styleLabel = screen.getByText( 'Style' );
158
137
  const solidButton = getButton( 'Solid' );
159
138
  const dashedButton = getButton( 'Dashed' );
160
139
  const dottedButton = getButton( 'Dotted' );
161
- const resetButton = getButton( 'Reset to default' );
140
+ const resetButton = getButton( 'Reset' );
162
141
 
163
142
  expect( customColorPicker ).toBeInTheDocument();
164
143
  expect( colorSwatchButtons.length ).toEqual( colors.length );
@@ -170,9 +149,10 @@ describe( 'BorderControl', () => {
170
149
  } );
171
150
 
172
151
  it( 'should render color and style popover header', async () => {
152
+ const user = userEvent.setup();
173
153
  const props = createProps( { showDropdownHeader: true } );
174
154
  render( <BorderControl { ...props } /> );
175
- await openPopover();
155
+ await openPopover( user );
176
156
 
177
157
  const headerLabel = screen.getByText( 'Border color' );
178
158
  const closeButton = getButton( 'Close border color' );
@@ -182,9 +162,10 @@ describe( 'BorderControl', () => {
182
162
  } );
183
163
 
184
164
  it( 'should not render style options when opted out of', async () => {
165
+ const user = userEvent.setup();
185
166
  const props = createProps( { enableStyle: false } );
186
167
  render( <BorderControl { ...props } /> );
187
- await openPopover();
168
+ await openPopover( user );
188
169
 
189
170
  const styleLabel = screen.queryByText( 'Style' );
190
171
  const solidButton = queryButton( 'Solid' );
@@ -307,6 +288,10 @@ describe( 'BorderControl', () => {
307
288
  const { rerender } = render( <BorderControl { ...props } /> );
308
289
 
309
290
  const slider = getSliderInput();
291
+ // As per [1], it is not currently possible to reasonably
292
+ // replicate this interaction using `userEvent`, so leaving
293
+ // `fireEvent` in place to cover it.
294
+ // [1]: https://github.com/testing-library/user-event/issues/871
310
295
  fireEvent.change( slider, { target: { value: '5' } } );
311
296
 
312
297
  expect( props.onChange ).toHaveBeenNthCalledWith( 1, {
@@ -321,10 +306,11 @@ describe( 'BorderControl', () => {
321
306
  } );
322
307
 
323
308
  it( 'should update color selection', async () => {
309
+ const user = userEvent.setup();
324
310
  const props = createProps();
325
311
  render( <BorderControl { ...props } /> );
326
- await openPopover();
327
- clickButton( 'Color: Green' );
312
+ await openPopover( user );
313
+ await user.click( getColorOption( 'Green' ) );
328
314
 
329
315
  expect( props.onChange ).toHaveBeenNthCalledWith( 1, {
330
316
  ...defaultBorder,
@@ -333,10 +319,11 @@ describe( 'BorderControl', () => {
333
319
  } );
334
320
 
335
321
  it( 'should clear color selection when toggling swatch off', async () => {
322
+ const user = userEvent.setup();
336
323
  const props = createProps();
337
324
  render( <BorderControl { ...props } /> );
338
- await openPopover();
339
- clickButton( 'Color: Blue' );
325
+ await openPopover( user );
326
+ await user.click( getColorOption( 'Blue' ) );
340
327
 
341
328
  expect( props.onChange ).toHaveBeenNthCalledWith( 1, {
342
329
  ...defaultBorder,
@@ -345,10 +332,11 @@ describe( 'BorderControl', () => {
345
332
  } );
346
333
 
347
334
  it( 'should update style selection', async () => {
335
+ const user = userEvent.setup();
348
336
  const props = createProps();
349
337
  render( <BorderControl { ...props } /> );
350
- await openPopover();
351
- clickButton( 'Dashed' );
338
+ await openPopover( user );
339
+ await user.click( getButton( 'Dashed' ) );
352
340
 
353
341
  expect( props.onChange ).toHaveBeenNthCalledWith( 1, {
354
342
  ...defaultBorder,
@@ -357,19 +345,21 @@ describe( 'BorderControl', () => {
357
345
  } );
358
346
 
359
347
  it( 'should take no action when color and style popover is closed', async () => {
348
+ const user = userEvent.setup();
360
349
  const props = createProps( { showDropdownHeader: true } );
361
350
  render( <BorderControl { ...props } /> );
362
- await openPopover();
363
- clickButton( 'Close border color' );
351
+ await openPopover( user );
352
+ await user.click( getButton( 'Close border color' ) );
364
353
 
365
354
  expect( props.onChange ).not.toHaveBeenCalled();
366
355
  } );
367
356
 
368
357
  it( 'should reset color and style only when popover reset button clicked', async () => {
358
+ const user = userEvent.setup();
369
359
  const props = createProps();
370
360
  render( <BorderControl { ...props } /> );
371
- await openPopover();
372
- clickButton( 'Reset to default' );
361
+ await openPopover( user );
362
+ await user.click( getButton( 'Reset' ) );
373
363
 
374
364
  expect( props.onChange ).toHaveBeenNthCalledWith( 1, {
375
365
  color: undefined,
@@ -379,25 +369,27 @@ describe( 'BorderControl', () => {
379
369
  } );
380
370
 
381
371
  it( 'should sanitize border when width and color are undefined', async () => {
372
+ const user = userEvent.setup();
382
373
  const props = createProps();
383
374
  const { rerender } = render( <BorderControl { ...props } /> );
384
- clearWidthInput();
375
+ await user.clear( getWidthInput() );
385
376
  rerender( <BorderControl { ...props } /> );
386
- await openPopover();
387
- clickButton( 'Color: Blue' );
377
+ await openPopover( user );
378
+ await user.click( getColorOption( 'Blue' ) );
388
379
 
389
380
  expect( props.onChange ).toHaveBeenCalledWith( undefined );
390
381
  } );
391
382
 
392
383
  it( 'should not sanitize border when requested', async () => {
384
+ const user = userEvent.setup();
393
385
  const props = createProps( {
394
386
  shouldSanitizeBorder: false,
395
387
  } );
396
388
  const { rerender } = render( <BorderControl { ...props } /> );
397
- clearWidthInput();
389
+ await user.clear( getWidthInput() );
398
390
  rerender( <BorderControl { ...props } /> );
399
- await openPopover();
400
- clickButton( 'Color: Blue' );
391
+ await openPopover( user );
392
+ await user.click( getColorOption( 'Blue' ) );
401
393
 
402
394
  expect( props.onChange ).toHaveBeenNthCalledWith( 2, {
403
395
  color: undefined,
@@ -407,12 +399,16 @@ describe( 'BorderControl', () => {
407
399
  } );
408
400
 
409
401
  it( 'should clear color and set style to `none` when setting zero width', async () => {
402
+ const user = userEvent.setup();
410
403
  const props = createProps();
411
404
  render( <BorderControl { ...props } /> );
412
- await openPopover();
413
- clickButton( 'Color: Green' );
414
- clickButton( 'Dotted' );
415
- setWidthInput( '0' );
405
+ await openPopover( user );
406
+ await user.click( getColorOption( 'Green' ) );
407
+ await user.click( getButton( 'Dotted' ) );
408
+ await user.type( getWidthInput(), '0', {
409
+ initialSelectionStart: 0,
410
+ initialSelectionEnd: 1,
411
+ } );
416
412
 
417
413
  expect( props.onChange ).toHaveBeenNthCalledWith( 3, {
418
414
  color: undefined,
@@ -422,15 +418,23 @@ describe( 'BorderControl', () => {
422
418
  } );
423
419
 
424
420
  it( 'should reselect color and style selections when changing to non-zero width', async () => {
421
+ const user = userEvent.setup();
425
422
  const props = createProps();
426
423
  const { rerender } = render( <BorderControl { ...props } /> );
427
- await openPopover();
428
- clickButton( 'Color: Green' );
424
+ await openPopover( user );
425
+ await user.click( getColorOption( 'Green' ) );
429
426
  rerender( <BorderControl { ...props } /> );
430
- clickButton( 'Dotted' );
427
+ await user.click( getButton( 'Dotted' ) );
431
428
  rerender( <BorderControl { ...props } /> );
432
- setWidthInput( '0' );
433
- setWidthInput( '5' );
429
+ const widthInput = getWidthInput();
430
+ await user.type( widthInput, '0', {
431
+ initialSelectionStart: 0,
432
+ initialSelectionEnd: 1,
433
+ } );
434
+ await user.type( widthInput, '5', {
435
+ initialSelectionStart: 0,
436
+ initialSelectionEnd: 1,
437
+ } );
434
438
 
435
439
  expect( props.onChange ).toHaveBeenNthCalledWith( 4, {
436
440
  color: '#00a32a',
@@ -440,10 +444,11 @@ describe( 'BorderControl', () => {
440
444
  } );
441
445
 
442
446
  it( 'should set a non-zero width when applying color to zero width border', async () => {
447
+ const user = userEvent.setup();
443
448
  const props = createProps( { value: undefined } );
444
449
  const { rerender } = render( <BorderControl { ...props } /> );
445
- await openPopover();
446
- clickButton( 'Color: Yellow' );
450
+ await openPopover( user );
451
+ await user.click( getColorOption( 'Yellow' ) );
447
452
 
448
453
  expect( props.onChange ).toHaveBeenCalledWith( {
449
454
  color: '#bd8600',
@@ -451,9 +456,11 @@ describe( 'BorderControl', () => {
451
456
  width: undefined,
452
457
  } );
453
458
 
454
- setWidthInput( '0' );
459
+ await user.type( getWidthInput(), '0' );
460
+
455
461
  rerender( <BorderControl { ...props } /> );
456
- clickButton( 'Color: Green' );
462
+ await openPopover( user );
463
+ await user.click( getColorOption( 'Green' ) );
457
464
 
458
465
  expect( props.onChange ).toHaveBeenCalledWith( {
459
466
  color: '#00a32a',
@@ -463,13 +470,14 @@ describe( 'BorderControl', () => {
463
470
  } );
464
471
 
465
472
  it( 'should set a non-zero width when applying style to zero width border', async () => {
473
+ const user = userEvent.setup();
466
474
  const props = createProps( {
467
475
  value: undefined,
468
476
  shouldSanitizeBorder: false,
469
477
  } );
470
478
  const { rerender } = render( <BorderControl { ...props } /> );
471
- await openPopover();
472
- clickButton( 'Dashed' );
479
+ await openPopover( user );
480
+ await user.click( getButton( 'Dashed' ) );
473
481
 
474
482
  expect( props.onChange ).toHaveBeenCalledWith( {
475
483
  color: undefined,
@@ -477,9 +485,11 @@ describe( 'BorderControl', () => {
477
485
  width: undefined,
478
486
  } );
479
487
 
480
- setWidthInput( '0' );
488
+ await user.type( getWidthInput(), '0' );
489
+
481
490
  rerender( <BorderControl { ...props } /> );
482
- clickButton( 'Dotted' );
491
+ await openPopover( user );
492
+ await user.click( getButton( 'Dotted' ) );
483
493
 
484
494
  expect( props.onChange ).toHaveBeenCalledWith( {
485
495
  color: undefined,
@@ -67,7 +67,7 @@ function Tooltip( {
67
67
  * https://github.com/WordPress/gutenberg/pull/24966#issuecomment-685875026
68
68
  */
69
69
  return (
70
- <BaseTooltip text={ text } position="top">
70
+ <BaseTooltip text={ text } placement="top">
71
71
  <div>{ children }</div>
72
72
  </BaseTooltip>
73
73
  );
@@ -145,12 +145,6 @@ Whether the button is disabled. If `true`, this will force a `button` element to
145
145
 
146
146
  - Required: No
147
147
 
148
- #### `focus`: `boolean`
149
-
150
- Whether the button is focused.
151
-
152
- - Required: No
153
-
154
148
  #### `href`: `string`
155
149
 
156
150
  If provided, renders `a` instead of `button`.
@@ -24,6 +24,7 @@ import Tooltip from '../tooltip';
24
24
  import Icon from '../icon';
25
25
  import { VisuallyHidden } from '../visually-hidden';
26
26
  import type { ButtonProps, DeprecatedButtonProps } from './types';
27
+ import { positionToPlacement } from '../popover/utils';
27
28
 
28
29
  const disabledEventsOnDisabledButton = [ 'onMouseDown', 'onClick' ] as const;
29
30
 
@@ -225,6 +226,13 @@ export function UnforwardedButton(
225
226
  </button>
226
227
  );
227
228
 
229
+ // Convert legacy `position` values to be used with the new `placement` prop
230
+ let computedPlacement;
231
+ // if `tooltipPosition` is defined, compute value to `placement`
232
+ if ( tooltipPosition !== undefined ) {
233
+ computedPlacement = positionToPlacement( tooltipPosition );
234
+ }
235
+
228
236
  if ( ! shouldShowTooltip ) {
229
237
  return (
230
238
  <>
@@ -248,7 +256,7 @@ export function UnforwardedButton(
248
256
  : label
249
257
  }
250
258
  shortcut={ shortcut }
251
- position={ tooltipPosition }
259
+ placement={ computedPlacement }
252
260
  >
253
261
  { element }
254
262
  </Tooltip>
@@ -15,6 +15,7 @@ import { plusCircle } from '@wordpress/icons';
15
15
  */
16
16
  import Button from '..';
17
17
  import Tooltip from '../../tooltip';
18
+ import cleanupTooltip from '../../tooltip/test/utils';
18
19
 
19
20
  jest.mock( '../../icon', () => () => <div data-testid="test-icon" /> );
20
21
 
@@ -236,9 +237,13 @@ describe( 'Button', () => {
236
237
  await user.tab();
237
238
 
238
239
  expect( screen.getByText( 'Label' ) ).toBeVisible();
240
+
241
+ await cleanupTooltip( user );
239
242
  } );
240
243
 
241
244
  it( 'should populate tooltip with description content for buttons with visible labels (buttons with children)', async () => {
245
+ const user = userEvent.setup();
246
+
242
247
  render(
243
248
  <Button
244
249
  label="Label"
@@ -255,6 +260,16 @@ describe( 'Button', () => {
255
260
  description: 'Description text',
256
261
  } )
257
262
  ).toBeVisible();
263
+
264
+ await user.tab();
265
+
266
+ expect(
267
+ screen.getByRole( 'tooltip', {
268
+ name: 'Description text',
269
+ } )
270
+ ).toBeVisible();
271
+
272
+ await cleanupTooltip( user );
258
273
  } );
259
274
 
260
275
  it( 'should allow tooltip disable', async () => {
@@ -293,6 +308,8 @@ describe( 'Button', () => {
293
308
  await user.tab();
294
309
 
295
310
  expect( screen.getByText( 'WordPress' ) ).toBeVisible();
311
+
312
+ await cleanupTooltip( user );
296
313
  } );
297
314
 
298
315
  it( 'should not show the tooltip when icon and children defined', async () => {
@@ -327,6 +344,8 @@ describe( 'Button', () => {
327
344
  await user.tab();
328
345
 
329
346
  expect( screen.getByText( 'WordPress' ) ).toBeVisible();
347
+
348
+ await cleanupTooltip( user );
330
349
  } );
331
350
  } );
332
351
 
@@ -33,10 +33,6 @@ type BaseButtonProps = {
33
33
  * An accessible description for the button.
34
34
  */
35
35
  describedBy?: string;
36
- /**
37
- * Whether the button is focused.
38
- */
39
- focus?: boolean;
40
36
  /**
41
37
  * If provided, renders an Icon component inside the button.
42
38
  */
@@ -80,6 +80,20 @@ The child elements.
80
80
 
81
81
  - Required: No
82
82
 
83
+ ### `asButtons`: `boolean`
84
+
85
+ Whether the control should present as a set of buttons, each with its own tab stop.
86
+
87
+ - Required: No
88
+ - Default: `false`
89
+
90
+ ### `loop`: `boolean`
91
+
92
+ Prevents keyboard interaction from wrapping around. Only used when `asButtons` is not true.
93
+
94
+ - Required: No
95
+ - Default: `true`
96
+
83
97
  ## Subcomponents
84
98
 
85
99
  ### `CircularOptionPicker.ButtonAction`
@@ -0,0 +1,60 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import classnames from 'classnames';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import Button from '../button';
10
+ import Dropdown from '../dropdown';
11
+ import type { DropdownLinkActionProps } from './types';
12
+ import type { WordPressComponentProps } from '../ui/context';
13
+ import type { ButtonAsButtonProps } from '../button/types';
14
+
15
+ export function DropdownLinkAction( {
16
+ buttonProps,
17
+ className,
18
+ dropdownProps,
19
+ linkText,
20
+ }: DropdownLinkActionProps ) {
21
+ return (
22
+ <Dropdown
23
+ className={ classnames(
24
+ 'components-circular-option-picker__dropdown-link-action',
25
+ className
26
+ ) }
27
+ renderToggle={ ( { isOpen, onToggle } ) => (
28
+ <Button
29
+ aria-expanded={ isOpen }
30
+ aria-haspopup="true"
31
+ onClick={ onToggle }
32
+ variant="link"
33
+ { ...buttonProps }
34
+ >
35
+ { linkText }
36
+ </Button>
37
+ ) }
38
+ { ...dropdownProps }
39
+ />
40
+ );
41
+ }
42
+
43
+ export function ButtonAction( {
44
+ className,
45
+ children,
46
+ ...additionalProps
47
+ }: WordPressComponentProps< ButtonAsButtonProps, 'button', false > ) {
48
+ return (
49
+ <Button
50
+ className={ classnames(
51
+ 'components-circular-option-picker__clear',
52
+ className
53
+ ) }
54
+ variant="tertiary"
55
+ { ...additionalProps }
56
+ >
57
+ { children }
58
+ </Button>
59
+ );
60
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { createContext } from '@wordpress/element';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import type { CircularOptionPickerContextProps } from './types';
10
+
11
+ export const CircularOptionPickerContext =
12
+ createContext< CircularOptionPickerContextProps >( {} );
@@ -0,0 +1,34 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import classnames from 'classnames';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import type { OptionGroupProps } from './types';
10
+
11
+ export function OptionGroup( {
12
+ className,
13
+ options,
14
+ ...additionalProps
15
+ }: OptionGroupProps ) {
16
+ const role =
17
+ 'aria-label' in additionalProps || 'aria-labelledby' in additionalProps
18
+ ? 'group'
19
+ : undefined;
20
+
21
+ return (
22
+ <div
23
+ { ...additionalProps }
24
+ role={ role }
25
+ className={ classnames(
26
+ 'components-circular-option-picker__option-group',
27
+ 'components-circular-option-picker__swatches',
28
+ className
29
+ ) }
30
+ >
31
+ { options }
32
+ </div>
33
+ );
34
+ }