@wordpress/components 25.14.0 → 25.15.1-next.79a6196f.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 (568) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/CONTRIBUTING.md +57 -115
  3. package/LICENSE.md +1 -1
  4. package/build/base-control/index.js +17 -13
  5. package/build/base-control/index.js.map +1 -1
  6. package/build/border-box-control/border-box-control-linked-button/component.js +1 -1
  7. package/build/border-box-control/border-box-control-linked-button/component.js.map +1 -1
  8. package/build/border-control/border-control-style-picker/component.js +1 -1
  9. package/build/border-control/border-control-style-picker/component.js.map +1 -1
  10. package/build/box-control/index.js +1 -1
  11. package/build/box-control/index.js.map +1 -1
  12. package/build/box-control/linked-button.js +1 -1
  13. package/build/box-control/linked-button.js.map +1 -1
  14. package/build/button/index.js +1 -1
  15. package/build/button/index.js.map +1 -1
  16. package/build/color-palette/index.native.js +11 -7
  17. package/build/color-palette/index.native.js.map +1 -1
  18. package/build/color-picker/color-copy-button.js +1 -1
  19. package/build/color-picker/color-copy-button.js.map +1 -1
  20. package/build/context/wordpress-component.js.map +1 -1
  21. package/build/custom-select-control-v2/index.js +11 -10
  22. package/build/custom-select-control-v2/index.js.map +1 -1
  23. package/build/date-time/date/styles.js +8 -8
  24. package/build/date-time/date/styles.js.map +1 -1
  25. package/build/dropdown-menu-v2/index.js +205 -159
  26. package/build/dropdown-menu-v2/index.js.map +1 -1
  27. package/build/dropdown-menu-v2/styles.js +86 -77
  28. package/build/dropdown-menu-v2/styles.js.map +1 -1
  29. package/build/dropdown-menu-v2/types.js.map +1 -1
  30. package/build/duotone-picker/duotone-picker.js +4 -3
  31. package/build/duotone-picker/duotone-picker.js.map +1 -1
  32. package/build/font-size-picker/index.js +4 -2
  33. package/build/font-size-picker/index.js.map +1 -1
  34. package/build/font-size-picker/index.native.js +6 -3
  35. package/build/font-size-picker/index.native.js.map +1 -1
  36. package/build/form-token-field/index.js +10 -5
  37. package/build/form-token-field/index.js.map +1 -1
  38. package/build/form-token-field/token.js +1 -0
  39. package/build/form-token-field/token.js.map +1 -1
  40. package/build/gradient-picker/index.js +3 -2
  41. package/build/gradient-picker/index.js.map +1 -1
  42. package/build/index.native.js +20 -3
  43. package/build/index.native.js.map +1 -1
  44. package/build/input-control/styles/input-control-styles.js +32 -29
  45. package/build/input-control/styles/input-control-styles.js.map +1 -1
  46. package/build/input-control/types.js.map +1 -1
  47. package/build/lock-unlock.js +18 -0
  48. package/build/lock-unlock.js.map +1 -0
  49. package/build/mobile/bottom-sheet/index.native.js +8 -0
  50. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  51. package/build/mobile/color-settings/palette.screen.native.js +8 -4
  52. package/build/mobile/color-settings/palette.screen.native.js.map +1 -1
  53. package/build/mobile/global-styles-context/utils.native.js +26 -13
  54. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  55. package/build/mobile/image/constants.js +12 -0
  56. package/build/mobile/image/constants.js.map +1 -0
  57. package/build/mobile/image/index.native.js +26 -18
  58. package/build/mobile/image/index.native.js.map +1 -1
  59. package/build/mobile/keyboard-aware-flat-list/index.android.js +40 -8
  60. package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  61. package/build/mobile/keyboard-aware-flat-list/index.ios.js +44 -68
  62. package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  63. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +39 -0
  64. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js.map +1 -0
  65. package/build/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +22 -29
  66. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js.map +1 -0
  67. package/build/mobile/keyboard-aware-flat-list/use-scroll.native.js +93 -0
  68. package/build/mobile/keyboard-aware-flat-list/use-scroll.native.js.map +1 -0
  69. package/build/mobile/utils/get-px-from-css-unit.native.js +302 -0
  70. package/build/mobile/utils/get-px-from-css-unit.native.js.map +1 -0
  71. package/build/modal/index.js +18 -13
  72. package/build/modal/index.js.map +1 -1
  73. package/build/navigation/menu/menu-title.js +1 -1
  74. package/build/navigation/menu/menu-title.js.map +1 -1
  75. package/build/navigator/navigator-provider/component.js +13 -15
  76. package/build/navigator/navigator-provider/component.js.map +1 -1
  77. package/build/navigator/navigator-screen/component.js +23 -63
  78. package/build/navigator/navigator-screen/component.js.map +1 -1
  79. package/build/navigator/styles.js +52 -0
  80. package/build/navigator/styles.js.map +1 -0
  81. package/build/number-control/index.js +4 -8
  82. package/build/number-control/index.js.map +1 -1
  83. package/build/number-control/types.js.map +1 -1
  84. package/build/palette-edit/index.js +15 -54
  85. package/build/palette-edit/index.js.map +1 -1
  86. package/build/private-apis.js +11 -26
  87. package/build/private-apis.js.map +1 -1
  88. package/build/private-apis.native.js +21 -0
  89. package/build/private-apis.native.js.map +1 -0
  90. package/build/radio-control/index.js +1 -0
  91. package/build/radio-control/index.js.map +1 -1
  92. package/build/range-control/index.js +1 -1
  93. package/build/range-control/index.js.map +1 -1
  94. package/build/select-control/styles/select-control-styles.js +15 -25
  95. package/build/select-control/styles/select-control-styles.js.map +1 -1
  96. package/build/slot-fill/index.js +3 -2
  97. package/build/slot-fill/index.js.map +1 -1
  98. package/build/slot-fill/types.js.map +1 -1
  99. package/build/snackbar/types.js.map +1 -1
  100. package/build/tabs/styles.js +3 -3
  101. package/build/tabs/styles.js.map +1 -1
  102. package/build/tabs/tabpanel.js +9 -7
  103. package/build/tabs/tabpanel.js.map +1 -1
  104. package/build/toggle-group-control/toggle-group-control/component.js +4 -4
  105. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  106. package/build/toggle-group-control/toggle-group-control/styles.js +29 -15
  107. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  108. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
  109. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  110. package/build/tools-panel/tools-panel/component.js +3 -1
  111. package/build/tools-panel/tools-panel/component.js.map +1 -1
  112. package/build/tools-panel/tools-panel-header/component.js +9 -8
  113. package/build/tools-panel/tools-panel-header/component.js.map +1 -1
  114. package/build/tools-panel/types.js.map +1 -1
  115. package/build/tooltip/index.js +34 -10
  116. package/build/tooltip/index.js.map +1 -1
  117. package/build/tooltip/types.js.map +1 -1
  118. package/build/truncate/hook.js +10 -4
  119. package/build/truncate/hook.js.map +1 -1
  120. package/build/truncate/types.js.map +1 -1
  121. package/build/unit-control/index.js +1 -1
  122. package/build/unit-control/index.js.map +1 -1
  123. package/build/utils/strings.js +34 -3
  124. package/build/utils/strings.js.map +1 -1
  125. package/build-module/base-control/index.js +16 -12
  126. package/build-module/base-control/index.js.map +1 -1
  127. package/build-module/border-box-control/border-box-control-linked-button/component.js +1 -1
  128. package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -1
  129. package/build-module/border-control/border-control-style-picker/component.js +1 -1
  130. package/build-module/border-control/border-control-style-picker/component.js.map +1 -1
  131. package/build-module/box-control/index.js +1 -1
  132. package/build-module/box-control/index.js.map +1 -1
  133. package/build-module/box-control/linked-button.js +1 -1
  134. package/build-module/box-control/linked-button.js.map +1 -1
  135. package/build-module/button/index.js +1 -1
  136. package/build-module/button/index.js.map +1 -1
  137. package/build-module/color-palette/index.native.js +11 -7
  138. package/build-module/color-palette/index.native.js.map +1 -1
  139. package/build-module/color-picker/color-copy-button.js +1 -1
  140. package/build-module/color-picker/color-copy-button.js.map +1 -1
  141. package/build-module/context/wordpress-component.js.map +1 -1
  142. package/build-module/custom-select-control-v2/index.js +11 -10
  143. package/build-module/custom-select-control-v2/index.js.map +1 -1
  144. package/build-module/date-time/date/styles.js +8 -8
  145. package/build-module/date-time/date/styles.js.map +1 -1
  146. package/build-module/dropdown-menu-v2/index.js +201 -154
  147. package/build-module/dropdown-menu-v2/index.js.map +1 -1
  148. package/build-module/dropdown-menu-v2/styles.js +68 -61
  149. package/build-module/dropdown-menu-v2/styles.js.map +1 -1
  150. package/build-module/dropdown-menu-v2/types.js.map +1 -1
  151. package/build-module/duotone-picker/duotone-picker.js +4 -3
  152. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  153. package/build-module/font-size-picker/index.js +4 -2
  154. package/build-module/font-size-picker/index.js.map +1 -1
  155. package/build-module/font-size-picker/index.native.js +5 -2
  156. package/build-module/font-size-picker/index.native.js.map +1 -1
  157. package/build-module/form-token-field/index.js +10 -5
  158. package/build-module/form-token-field/index.js.map +1 -1
  159. package/build-module/form-token-field/token.js +1 -0
  160. package/build-module/form-token-field/token.js.map +1 -1
  161. package/build-module/gradient-picker/index.js +3 -2
  162. package/build-module/gradient-picker/index.js.map +1 -1
  163. package/build-module/index.native.js +6 -1
  164. package/build-module/index.native.js.map +1 -1
  165. package/build-module/input-control/styles/input-control-styles.js +31 -29
  166. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  167. package/build-module/input-control/types.js.map +1 -1
  168. package/build-module/lock-unlock.js +9 -0
  169. package/build-module/lock-unlock.js.map +1 -0
  170. package/build-module/mobile/bottom-sheet/index.native.js +9 -1
  171. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  172. package/build-module/mobile/color-settings/palette.screen.native.js +8 -4
  173. package/build-module/mobile/color-settings/palette.screen.native.js.map +1 -1
  174. package/build-module/mobile/global-styles-context/utils.native.js +25 -13
  175. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  176. package/build-module/mobile/image/constants.js +5 -0
  177. package/build-module/mobile/image/constants.js.map +1 -0
  178. package/build-module/mobile/image/index.native.js +25 -16
  179. package/build-module/mobile/image/index.native.js.map +1 -1
  180. package/build-module/mobile/keyboard-aware-flat-list/index.android.js +40 -6
  181. package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  182. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +46 -68
  183. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  184. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +33 -0
  185. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js.map +1 -0
  186. package/build-module/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +21 -27
  187. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js.map +1 -0
  188. package/build-module/mobile/keyboard-aware-flat-list/use-scroll.native.js +86 -0
  189. package/build-module/mobile/keyboard-aware-flat-list/use-scroll.native.js.map +1 -0
  190. package/build-module/mobile/utils/get-px-from-css-unit.native.js +294 -0
  191. package/build-module/mobile/utils/get-px-from-css-unit.native.js.map +1 -0
  192. package/build-module/modal/index.js +18 -13
  193. package/build-module/modal/index.js.map +1 -1
  194. package/build-module/navigation/menu/menu-title.js +1 -1
  195. package/build-module/navigation/menu/menu-title.js.map +1 -1
  196. package/build-module/navigator/navigator-provider/component.js +3 -16
  197. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  198. package/build-module/navigator/navigator-screen/component.js +16 -70
  199. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  200. package/build-module/navigator/styles.js +47 -0
  201. package/build-module/navigator/styles.js.map +1 -0
  202. package/build-module/number-control/index.js +4 -8
  203. package/build-module/number-control/index.js.map +1 -1
  204. package/build-module/number-control/types.js.map +1 -1
  205. package/build-module/palette-edit/index.js +15 -51
  206. package/build-module/palette-edit/index.js.map +1 -1
  207. package/build-module/private-apis.js +10 -23
  208. package/build-module/private-apis.js.map +1 -1
  209. package/build-module/private-apis.native.js +14 -0
  210. package/build-module/private-apis.native.js.map +1 -0
  211. package/build-module/radio-control/index.js +1 -0
  212. package/build-module/radio-control/index.js.map +1 -1
  213. package/build-module/range-control/index.js +1 -1
  214. package/build-module/range-control/index.js.map +1 -1
  215. package/build-module/select-control/styles/select-control-styles.js +15 -25
  216. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  217. package/build-module/slot-fill/index.js +3 -2
  218. package/build-module/slot-fill/index.js.map +1 -1
  219. package/build-module/slot-fill/types.js.map +1 -1
  220. package/build-module/snackbar/types.js.map +1 -1
  221. package/build-module/tabs/styles.js +3 -3
  222. package/build-module/tabs/styles.js.map +1 -1
  223. package/build-module/tabs/tabpanel.js +9 -7
  224. package/build-module/tabs/tabpanel.js.map +1 -1
  225. package/build-module/toggle-group-control/toggle-group-control/component.js +4 -4
  226. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  227. package/build-module/toggle-group-control/toggle-group-control/styles.js +29 -15
  228. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  229. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
  230. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  231. package/build-module/tools-panel/tools-panel/component.js +3 -1
  232. package/build-module/tools-panel/tools-panel/component.js.map +1 -1
  233. package/build-module/tools-panel/tools-panel-header/component.js +9 -8
  234. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  235. package/build-module/tools-panel/types.js.map +1 -1
  236. package/build-module/tooltip/index.js +34 -12
  237. package/build-module/tooltip/index.js.map +1 -1
  238. package/build-module/tooltip/types.js.map +1 -1
  239. package/build-module/truncate/hook.js +10 -4
  240. package/build-module/truncate/hook.js.map +1 -1
  241. package/build-module/truncate/types.js.map +1 -1
  242. package/build-module/unit-control/index.js +1 -1
  243. package/build-module/unit-control/index.js.map +1 -1
  244. package/build-module/utils/strings.js +32 -2
  245. package/build-module/utils/strings.js.map +1 -1
  246. package/build-style/style-rtl.css +29 -5
  247. package/build-style/style.css +29 -5
  248. package/build-types/base-control/index.d.ts +3 -27
  249. package/build-types/base-control/index.d.ts.map +1 -1
  250. package/build-types/base-control/stories/index.story.d.ts +4 -1
  251. package/build-types/base-control/stories/index.story.d.ts.map +1 -1
  252. package/build-types/border-box-control/border-box-control/hook.d.ts +4 -4
  253. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +6 -6
  254. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +4 -4
  255. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +4 -4
  256. package/build-types/border-box-control/stories/index.story.d.ts +1 -1
  257. package/build-types/border-control/border-control/hook.d.ts +4 -4
  258. package/build-types/border-control/border-control-dropdown/hook.d.ts +4 -4
  259. package/build-types/border-control/border-control-style-picker/hook.d.ts +4 -4
  260. package/build-types/border-control/stories/index.story.d.ts +6 -6
  261. package/build-types/box-control/stories/index.story.d.ts +42 -42
  262. package/build-types/box-control/styles/box-control-styles.d.ts +1 -1
  263. package/build-types/button/deprecated.d.ts +3 -3
  264. package/build-types/card/card/hook.d.ts +4 -4
  265. package/build-types/card/card-body/hook.d.ts +4 -4
  266. package/build-types/card/card-divider/hook.d.ts +4 -4
  267. package/build-types/card/card-footer/hook.d.ts +4 -4
  268. package/build-types/card/card-header/hook.d.ts +4 -4
  269. package/build-types/card/card-media/hook.d.ts +4 -4
  270. package/build-types/color-palette/styles.d.ts +2 -2
  271. package/build-types/color-picker/component.d.ts +2 -2
  272. package/build-types/color-picker/stories/index.story.d.ts +1 -1
  273. package/build-types/color-picker/stories/index.story.d.ts.map +1 -1
  274. package/build-types/color-picker/styles.d.ts +3 -3
  275. package/build-types/composite/test/index.d.ts.map +1 -0
  276. package/build-types/context/wordpress-component.d.ts +3 -3
  277. package/build-types/context/wordpress-component.d.ts.map +1 -1
  278. package/build-types/custom-select-control-v2/index.d.ts +3 -2
  279. package/build-types/custom-select-control-v2/index.d.ts.map +1 -1
  280. package/build-types/custom-select-control-v2/stories/index.story.d.ts +4 -3
  281. package/build-types/custom-select-control-v2/stories/index.story.d.ts.map +1 -1
  282. package/build-types/date-time/date/styles.d.ts +3 -3
  283. package/build-types/date-time/date-time/styles.d.ts +1 -1
  284. package/build-types/date-time/time/styles.d.ts +4 -4
  285. package/build-types/dropdown/index.d.ts +1 -1
  286. package/build-types/dropdown/index.d.ts.map +1 -1
  287. package/build-types/dropdown/stories/index.story.d.ts +3 -3
  288. package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
  289. package/build-types/dropdown-menu/index.d.ts +1 -1
  290. package/build-types/dropdown-menu/index.d.ts.map +1 -1
  291. package/build-types/dropdown-menu/stories/index.story.d.ts +2 -2
  292. package/build-types/dropdown-menu/stories/index.story.d.ts.map +1 -1
  293. package/build-types/dropdown-menu-v2/index.d.ts +18 -15
  294. package/build-types/dropdown-menu-v2/index.d.ts.map +1 -1
  295. package/build-types/dropdown-menu-v2/stories/index.story.d.ts +7 -2
  296. package/build-types/dropdown-menu-v2/stories/index.story.d.ts.map +1 -1
  297. package/build-types/dropdown-menu-v2/styles.d.ts +77 -23
  298. package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
  299. package/build-types/dropdown-menu-v2/types.d.ts +89 -173
  300. package/build-types/dropdown-menu-v2/types.d.ts.map +1 -1
  301. package/build-types/duotone-picker/duotone-picker.d.ts.map +1 -1
  302. package/build-types/elevation/hook.d.ts +4 -4
  303. package/build-types/flex/flex/hook.d.ts +4 -4
  304. package/build-types/flex/flex-block/hook.d.ts +4 -4
  305. package/build-types/flex/flex-item/hook.d.ts +4 -4
  306. package/build-types/focal-point-picker/stories/index.story.d.ts +4 -4
  307. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
  308. package/build-types/font-size-picker/index.d.ts.map +1 -1
  309. package/build-types/font-size-picker/styles.d.ts +1 -1
  310. package/build-types/form-token-field/index.d.ts.map +1 -1
  311. package/build-types/form-token-field/token.d.ts.map +1 -1
  312. package/build-types/grid/hook.d.ts +4 -4
  313. package/build-types/h-stack/hook.d.ts +4 -4
  314. package/build-types/heading/component.d.ts +1 -1
  315. package/build-types/heading/hook.d.ts +4 -4
  316. package/build-types/input-control/styles/input-control-styles.d.ts +11 -0
  317. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  318. package/build-types/input-control/types.d.ts +1 -1
  319. package/build-types/input-control/types.d.ts.map +1 -1
  320. package/build-types/item-group/item/hook.d.ts +4 -4
  321. package/build-types/item-group/item-group/hook.d.ts +4 -4
  322. package/build-types/lock-unlock.d.ts +3 -0
  323. package/build-types/lock-unlock.d.ts.map +1 -0
  324. package/build-types/menu-item/index.d.ts +1 -1
  325. package/build-types/menu-item/stories/index.story.d.ts +4 -4
  326. package/build-types/mobile/image/constants.d.ts +5 -0
  327. package/build-types/mobile/image/constants.d.ts.map +1 -0
  328. package/build-types/modal/index.d.ts.map +1 -1
  329. package/build-types/navigation/styles/navigation-styles.d.ts +3 -3
  330. package/build-types/navigator/navigator-back-button/hook.d.ts +6 -6
  331. package/build-types/navigator/navigator-button/hook.d.ts +6 -6
  332. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  333. package/build-types/navigator/navigator-screen/component.d.ts +1 -7
  334. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  335. package/build-types/navigator/styles.d.ts +9 -0
  336. package/build-types/navigator/styles.d.ts.map +1 -0
  337. package/build-types/number-control/index.d.ts +1 -1
  338. package/build-types/number-control/index.d.ts.map +1 -1
  339. package/build-types/number-control/stories/index.story.d.ts +1 -1
  340. package/build-types/number-control/types.d.ts +1 -1
  341. package/build-types/palette-edit/index.d.ts +3 -8
  342. package/build-types/palette-edit/index.d.ts.map +1 -1
  343. package/build-types/palette-edit/styles.d.ts +3 -3
  344. package/build-types/popover/index.d.ts +1 -1
  345. package/build-types/popover/index.d.ts.map +1 -1
  346. package/build-types/popover/stories/e2e/index.story.d.ts +1 -1
  347. package/build-types/private-apis.d.ts +0 -1
  348. package/build-types/private-apis.d.ts.map +1 -1
  349. package/build-types/radio-control/index.d.ts.map +1 -1
  350. package/build-types/range-control/index.d.ts +1 -1
  351. package/build-types/range-control/styles/range-control-styles.d.ts +1 -1
  352. package/build-types/resizable-box/index.d.ts +1 -1
  353. package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
  354. package/build-types/resizable-box/stories/index.story.d.ts +2 -2
  355. package/build-types/scrollable/hook.d.ts +4 -4
  356. package/build-types/search-control/index.d.ts +1 -1
  357. package/build-types/search-control/stories/index.story.d.ts +2 -2
  358. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  359. package/build-types/slot-fill/index.d.ts +1 -1
  360. package/build-types/slot-fill/index.d.ts.map +1 -1
  361. package/build-types/slot-fill/types.d.ts +4 -0
  362. package/build-types/slot-fill/types.d.ts.map +1 -1
  363. package/build-types/snackbar/index.d.ts +2 -2
  364. package/build-types/snackbar/stories/index.story.d.ts +0 -3
  365. package/build-types/snackbar/stories/index.story.d.ts.map +1 -1
  366. package/build-types/snackbar/types.d.ts +1 -1
  367. package/build-types/snackbar/types.d.ts.map +1 -1
  368. package/build-types/spacer/hook.d.ts +4 -4
  369. package/build-types/surface/hook.d.ts +4 -4
  370. package/build-types/tabs/styles.d.ts.map +1 -1
  371. package/build-types/tabs/tabpanel.d.ts +1 -1
  372. package/build-types/tabs/tabpanel.d.ts.map +1 -1
  373. package/build-types/text/hook.d.ts +4 -4
  374. package/build-types/text-control/index.d.ts +1 -1
  375. package/build-types/textarea-control/index.d.ts +1 -1
  376. package/build-types/toggle-control/stories/index.story.d.ts +2 -2
  377. package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +1 -1
  378. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +1 -1
  379. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  380. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +2 -2
  381. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  382. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +1 -1
  383. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +1 -1
  384. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  385. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
  386. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
  387. package/build-types/toolbar/toolbar-button/index.d.ts +3 -3
  388. package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
  389. package/build-types/tools-panel/tools-panel/hook.d.ts +5 -4
  390. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  391. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  392. package/build-types/tools-panel/tools-panel-header/hook.d.ts +5 -4
  393. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  394. package/build-types/tools-panel/tools-panel-item/hook.d.ts +4 -4
  395. package/build-types/tools-panel/types.d.ts +9 -0
  396. package/build-types/tools-panel/types.d.ts.map +1 -1
  397. package/build-types/tooltip/index.d.ts +1 -1
  398. package/build-types/tooltip/index.d.ts.map +1 -1
  399. package/build-types/tooltip/stories/index.story.d.ts +10 -1
  400. package/build-types/tooltip/stories/index.story.d.ts.map +1 -1
  401. package/build-types/tooltip/types.d.ts +3 -0
  402. package/build-types/tooltip/types.d.ts.map +1 -1
  403. package/build-types/truncate/hook.d.ts +5 -5
  404. package/build-types/truncate/hook.d.ts.map +1 -1
  405. package/build-types/truncate/types.d.ts +4 -0
  406. package/build-types/truncate/types.d.ts.map +1 -1
  407. package/build-types/unit-control/index.d.ts +1 -1
  408. package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -1
  409. package/build-types/utils/strings.d.ts +14 -2
  410. package/build-types/utils/strings.d.ts.map +1 -1
  411. package/build-types/v-stack/hook.d.ts +4 -4
  412. package/build-types/v-stack/stories/index.story.d.ts +1 -1
  413. package/package.json +20 -21
  414. package/src/alignment-matrix-control/test/index.tsx +10 -16
  415. package/src/base-control/index.tsx +21 -16
  416. package/src/border-box-control/border-box-control-linked-button/component.tsx +1 -1
  417. package/src/border-control/border-control-style-picker/component.tsx +1 -1
  418. package/src/box-control/index.tsx +1 -1
  419. package/src/box-control/linked-button.tsx +1 -1
  420. package/src/button/README.md +32 -6
  421. package/src/button/index.tsx +1 -1
  422. package/src/button-group/README.md +0 -6
  423. package/src/card/card/README.md +1 -1
  424. package/src/checkbox-control/README.md +1 -9
  425. package/src/color-palette/index.native.js +18 -7
  426. package/src/color-picker/color-copy-button.tsx +1 -1
  427. package/src/combobox-control/README.md +0 -6
  428. package/src/composite/test/index.tsx +576 -0
  429. package/src/context/wordpress-component.ts +11 -6
  430. package/src/custom-select-control/README.md +0 -6
  431. package/src/custom-select-control-v2/index.tsx +13 -12
  432. package/src/date-time/date/styles.ts +3 -3
  433. package/src/dropdown-menu/README.md +0 -5
  434. package/src/dropdown-menu-v2/README.md +75 -136
  435. package/src/dropdown-menu-v2/index.tsx +321 -231
  436. package/src/dropdown-menu-v2/stories/index.story.tsx +522 -126
  437. package/src/dropdown-menu-v2/styles.ts +226 -151
  438. package/src/dropdown-menu-v2/test/index.tsx +480 -188
  439. package/src/dropdown-menu-v2/types.ts +98 -184
  440. package/src/duotone-picker/duotone-picker.tsx +7 -3
  441. package/src/font-size-picker/index.native.js +8 -2
  442. package/src/font-size-picker/index.tsx +4 -2
  443. package/src/form-toggle/README.md +0 -6
  444. package/src/form-token-field/index.tsx +11 -7
  445. package/src/form-token-field/test/index.tsx +97 -0
  446. package/src/form-token-field/token.tsx +1 -0
  447. package/src/gradient-picker/index.tsx +2 -2
  448. package/src/index.native.js +6 -1
  449. package/src/input-control/styles/input-control-styles.tsx +10 -8
  450. package/src/input-control/types.ts +1 -1
  451. package/src/lock-unlock.js +10 -0
  452. package/src/menu-group/README.md +0 -8
  453. package/src/menu-items-choice/README.md +0 -7
  454. package/src/mobile/bottom-sheet/index.native.js +15 -1
  455. package/src/mobile/color-settings/palette.screen.native.js +7 -5
  456. package/src/mobile/global-styles-context/test/fixtures/theme.native.js +0 -20
  457. package/src/mobile/global-styles-context/utils.native.js +28 -19
  458. package/src/mobile/image/constants.js +1 -0
  459. package/src/mobile/image/index.native.js +55 -18
  460. package/src/mobile/image/style.native.scss +35 -9
  461. package/src/mobile/keyboard-aware-flat-list/index.android.js +50 -5
  462. package/src/mobile/keyboard-aware-flat-list/index.ios.js +65 -91
  463. package/src/mobile/keyboard-aware-flat-list/test/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +27 -25
  464. package/src/mobile/keyboard-aware-flat-list/test/use-scroll.native.js +71 -0
  465. package/src/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +41 -0
  466. package/src/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +22 -27
  467. package/src/mobile/keyboard-aware-flat-list/use-scroll.native.js +100 -0
  468. package/src/mobile/utils/get-px-from-css-unit.native.js +329 -0
  469. package/src/mobile/utils/test/get-px-from-css-unit.native.js +172 -0
  470. package/src/modal/README.md +0 -6
  471. package/src/modal/index.tsx +18 -16
  472. package/src/modal/test/index.tsx +90 -1
  473. package/src/navigation/menu/menu-title.tsx +1 -1
  474. package/src/navigator/navigator-provider/component.tsx +3 -4
  475. package/src/navigator/navigator-screen/component.tsx +15 -93
  476. package/src/navigator/styles.ts +71 -0
  477. package/src/navigator/test/index.tsx +0 -64
  478. package/src/notice/README.md +0 -6
  479. package/src/number-control/README.md +2 -2
  480. package/src/number-control/index.tsx +4 -8
  481. package/src/number-control/types.ts +1 -1
  482. package/src/palette-edit/index.tsx +15 -58
  483. package/src/palette-edit/test/index.tsx +1 -75
  484. package/src/panel/README.md +0 -6
  485. package/src/private-apis.native.js +13 -0
  486. package/src/private-apis.ts +12 -37
  487. package/src/radio-control/README.md +0 -6
  488. package/src/radio-control/index.tsx +4 -1
  489. package/src/radio-control/style.scss +29 -2
  490. package/src/radio-group/README.md +0 -6
  491. package/src/range-control/README.md +1 -9
  492. package/src/range-control/index.tsx +1 -1
  493. package/src/search-control/README.md +0 -6
  494. package/src/select-control/README.md +0 -6
  495. package/src/select-control/styles/select-control-styles.ts +10 -28
  496. package/src/slot-fill/index.tsx +5 -2
  497. package/src/slot-fill/types.ts +5 -0
  498. package/src/snackbar/README.md +0 -6
  499. package/src/snackbar/stories/index.story.tsx +7 -5
  500. package/src/snackbar/style.scss +4 -3
  501. package/src/snackbar/types.ts +2 -1
  502. package/src/spacer/README.md +0 -2
  503. package/src/tab-panel/README.md +0 -5
  504. package/src/tab-panel/test/index.tsx +39 -56
  505. package/src/tabs/styles.ts +7 -1
  506. package/src/tabs/tabpanel.tsx +7 -6
  507. package/src/tabs/test/index.tsx +56 -0
  508. package/src/text-control/README.md +0 -6
  509. package/src/textarea-control/README.md +0 -6
  510. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +12 -16
  511. package/src/toggle-group-control/test/index.tsx +58 -45
  512. package/src/toggle-group-control/toggle-group-control/component.tsx +5 -4
  513. package/src/toggle-group-control/toggle-group-control/styles.ts +13 -19
  514. package/src/toggle-group-control/toggle-group-control-option/README.md +1 -1
  515. package/src/toggle-group-control/toggle-group-control-option-base/README.md +1 -1
  516. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +3 -2
  517. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +1 -1
  518. package/src/toolbar/toolbar/README.md +0 -6
  519. package/src/tools-panel/test/index.tsx +12 -20
  520. package/src/tools-panel/tools-panel/README.md +7 -0
  521. package/src/tools-panel/tools-panel/component.tsx +2 -0
  522. package/src/tools-panel/tools-panel-header/README.md +7 -0
  523. package/src/tools-panel/tools-panel-header/component.tsx +20 -13
  524. package/src/tools-panel/types.ts +9 -0
  525. package/src/tooltip/README.md +4 -0
  526. package/src/tooltip/index.tsx +48 -10
  527. package/src/tooltip/stories/index.story.tsx +18 -1
  528. package/src/tooltip/test/index.tsx +404 -254
  529. package/src/tooltip/types.ts +4 -0
  530. package/src/tree-grid/README.md +0 -4
  531. package/src/truncate/README.md +8 -0
  532. package/src/truncate/hook.ts +17 -10
  533. package/src/truncate/test/index.tsx +54 -27
  534. package/src/truncate/types.ts +4 -0
  535. package/src/unit-control/index.tsx +1 -1
  536. package/src/utils/strings.ts +30 -2
  537. package/src/utils/test/strings.js +96 -1
  538. package/tsconfig.tsbuildinfo +1 -1
  539. package/build/dropdown-menu-v2-ariakit/index.js +0 -256
  540. package/build/dropdown-menu-v2-ariakit/index.js.map +0 -1
  541. package/build/dropdown-menu-v2-ariakit/styles.js +0 -180
  542. package/build/dropdown-menu-v2-ariakit/styles.js.map +0 -1
  543. package/build/dropdown-menu-v2-ariakit/types.js +0 -6
  544. package/build/dropdown-menu-v2-ariakit/types.js.map +0 -1
  545. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +0 -1
  546. package/build-module/dropdown-menu-v2-ariakit/index.js +0 -237
  547. package/build-module/dropdown-menu-v2-ariakit/index.js.map +0 -1
  548. package/build-module/dropdown-menu-v2-ariakit/styles.js +0 -165
  549. package/build-module/dropdown-menu-v2-ariakit/styles.js.map +0 -1
  550. package/build-module/dropdown-menu-v2-ariakit/types.js +0 -2
  551. package/build-module/dropdown-menu-v2-ariakit/types.js.map +0 -1
  552. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +0 -1
  553. package/build-types/dropdown-menu-v2-ariakit/index.d.ts +0 -20
  554. package/build-types/dropdown-menu-v2-ariakit/index.d.ts.map +0 -1
  555. package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts +0 -16
  556. package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts.map +0 -1
  557. package/build-types/dropdown-menu-v2-ariakit/styles.d.ts +0 -96
  558. package/build-types/dropdown-menu-v2-ariakit/styles.d.ts.map +0 -1
  559. package/build-types/dropdown-menu-v2-ariakit/test/index.d.ts.map +0 -1
  560. package/build-types/dropdown-menu-v2-ariakit/types.d.ts +0 -168
  561. package/build-types/dropdown-menu-v2-ariakit/types.d.ts.map +0 -1
  562. package/src/dropdown-menu-v2-ariakit/README.md +0 -331
  563. package/src/dropdown-menu-v2-ariakit/index.tsx +0 -383
  564. package/src/dropdown-menu-v2-ariakit/stories/index.story.tsx +0 -617
  565. package/src/dropdown-menu-v2-ariakit/styles.ts +0 -345
  566. package/src/dropdown-menu-v2-ariakit/test/index.tsx +0 -1108
  567. package/src/dropdown-menu-v2-ariakit/types.ts +0 -179
  568. /package/build-types/{dropdown-menu-v2-ariakit → composite}/test/index.d.ts +0 -0
@@ -47,9 +47,9 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
47
47
  display: -ms-inline-flexbox;
48
48
  display: inline-flex;
49
49
  min-width: 0;
50
- padding: 2px;
51
50
  position: relative;
52
51
  min-height: 36px;
52
+ padding: 2px;
53
53
  }
54
54
 
55
55
  .emotion-8:hover {
@@ -116,7 +116,8 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
116
116
  width: 100%;
117
117
  z-index: 2;
118
118
  color: #1e1e1e;
119
- width: 30px;
119
+ height: 30px;
120
+ aspect-ratio: 1;
120
121
  padding-left: 0;
121
122
  padding-right: 0;
122
123
  color: #fff;
@@ -198,7 +199,8 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
198
199
  width: 100%;
199
200
  z-index: 2;
200
201
  color: #1e1e1e;
201
- width: 30px;
202
+ height: 30px;
203
+ aspect-ratio: 1;
202
204
  padding-left: 0;
203
205
  padding-right: 0;
204
206
  }
@@ -249,7 +251,6 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
249
251
  aria-label="Uppercase"
250
252
  class="emotion-12 components-toggle-group-control-option-base"
251
253
  data-active-item=""
252
- data-command=""
253
254
  data-value="uppercase"
254
255
  data-wp-c16t="true"
255
256
  data-wp-component="ToggleGroupControlOptionBase"
@@ -288,7 +289,6 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
288
289
  aria-checked="false"
289
290
  aria-label="Lowercase"
290
291
  class="emotion-18 components-toggle-group-control-option-base"
291
- data-command=""
292
292
  data-value="lowercase"
293
293
  data-wp-c16t="true"
294
294
  data-wp-component="ToggleGroupControlOptionBase"
@@ -374,9 +374,9 @@ exports[`ToggleGroupControl controlled should render correctly with text options
374
374
  display: -ms-inline-flexbox;
375
375
  display: inline-flex;
376
376
  min-width: 0;
377
- padding: 2px;
378
377
  position: relative;
379
378
  min-height: 36px;
379
+ padding: 2px;
380
380
  }
381
381
 
382
382
  .emotion-8:hover {
@@ -498,7 +498,6 @@ exports[`ToggleGroupControl controlled should render correctly with text options
498
498
  aria-checked="false"
499
499
  aria-label="R"
500
500
  class="emotion-12 components-toggle-group-control-option-base"
501
- data-command=""
502
501
  data-value="rigas"
503
502
  data-wp-c16t="true"
504
503
  data-wp-component="ToggleGroupControlOptionBase"
@@ -521,7 +520,6 @@ exports[`ToggleGroupControl controlled should render correctly with text options
521
520
  aria-checked="false"
522
521
  aria-label="J"
523
522
  class="emotion-12 components-toggle-group-control-option-base"
524
- data-command=""
525
523
  data-value="jack"
526
524
  data-wp-c16t="true"
527
525
  data-wp-component="ToggleGroupControlOptionBase"
@@ -596,9 +594,9 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
596
594
  display: -ms-inline-flexbox;
597
595
  display: inline-flex;
598
596
  min-width: 0;
599
- padding: 2px;
600
597
  position: relative;
601
598
  min-height: 36px;
599
+ padding: 2px;
602
600
  }
603
601
 
604
602
  .emotion-8:hover {
@@ -665,7 +663,8 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
665
663
  width: 100%;
666
664
  z-index: 2;
667
665
  color: #1e1e1e;
668
- width: 30px;
666
+ height: 30px;
667
+ aspect-ratio: 1;
669
668
  padding-left: 0;
670
669
  padding-right: 0;
671
670
  color: #fff;
@@ -747,7 +746,8 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
747
746
  width: 100%;
748
747
  z-index: 2;
749
748
  color: #1e1e1e;
750
- width: 30px;
749
+ height: 30px;
750
+ aspect-ratio: 1;
751
751
  padding-left: 0;
752
752
  padding-right: 0;
753
753
  }
@@ -798,7 +798,6 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
798
798
  aria-label="Uppercase"
799
799
  class="emotion-12 components-toggle-group-control-option-base"
800
800
  data-active-item=""
801
- data-command=""
802
801
  data-value="uppercase"
803
802
  data-wp-c16t="true"
804
803
  data-wp-component="ToggleGroupControlOptionBase"
@@ -837,7 +836,6 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
837
836
  aria-checked="false"
838
837
  aria-label="Lowercase"
839
838
  class="emotion-18 components-toggle-group-control-option-base"
840
- data-command=""
841
839
  data-value="lowercase"
842
840
  data-wp-c16t="true"
843
841
  data-wp-component="ToggleGroupControlOptionBase"
@@ -917,9 +915,9 @@ exports[`ToggleGroupControl uncontrolled should render correctly with text optio
917
915
  display: -ms-inline-flexbox;
918
916
  display: inline-flex;
919
917
  min-width: 0;
920
- padding: 2px;
921
918
  position: relative;
922
919
  min-height: 36px;
920
+ padding: 2px;
923
921
  }
924
922
 
925
923
  .emotion-8:hover {
@@ -1041,7 +1039,6 @@ exports[`ToggleGroupControl uncontrolled should render correctly with text optio
1041
1039
  aria-checked="false"
1042
1040
  aria-label="R"
1043
1041
  class="emotion-12 components-toggle-group-control-option-base"
1044
- data-command=""
1045
1042
  data-value="rigas"
1046
1043
  data-wp-c16t="true"
1047
1044
  data-wp-component="ToggleGroupControlOptionBase"
@@ -1064,7 +1061,6 @@ exports[`ToggleGroupControl uncontrolled should render correctly with text optio
1064
1061
  aria-checked="false"
1065
1062
  aria-label="J"
1066
1063
  class="emotion-12 components-toggle-group-control-option-base"
1067
- data-command=""
1068
1064
  data-value="jack"
1069
1065
  data-wp-c16t="true"
1070
1066
  data-wp-component="ToggleGroupControlOptionBase"
@@ -2,7 +2,7 @@
2
2
  * External dependencies
3
3
  */
4
4
  import { render, screen, waitFor } from '@testing-library/react';
5
- import userEvent from '@testing-library/user-event';
5
+ import { press, click, hover, sleep } from '@ariakit/test';
6
6
 
7
7
  /**
8
8
  * WordPress dependencies
@@ -19,8 +19,13 @@ import {
19
19
  ToggleGroupControlOption,
20
20
  ToggleGroupControlOptionIcon,
21
21
  } from '../index';
22
+ import { TOOLTIP_DELAY } from '../../tooltip';
22
23
  import type { ToggleGroupControlProps } from '../types';
23
- import cleanupTooltip from '../../tooltip/test/utils';
24
+
25
+ const hoverOutside = async () => {
26
+ await hover( document.body );
27
+ await hover( document.body, { clientX: 10, clientY: 10 } );
28
+ };
24
29
 
25
30
  const ControlledToggleGroupControl = ( {
26
31
  value: valueProp,
@@ -113,7 +118,6 @@ describe.each( [
113
118
  } );
114
119
  } );
115
120
  it( 'should call onChange with proper value', async () => {
116
- const user = userEvent.setup();
117
121
  const mockOnChange = jest.fn();
118
122
 
119
123
  render(
@@ -126,13 +130,12 @@ describe.each( [
126
130
  </Component>
127
131
  );
128
132
 
129
- await user.click( screen.getByRole( 'radio', { name: 'R' } ) );
133
+ await click( screen.getByRole( 'radio', { name: 'R' } ) );
130
134
 
131
135
  expect( mockOnChange ).toHaveBeenCalledWith( 'rigas' );
132
136
  } );
133
137
 
134
138
  it( 'should render tooltip where `showTooltip` === `true`', async () => {
135
- const user = userEvent.setup();
136
139
  render(
137
140
  <Component label="Test Toggle Group Control">
138
141
  { optionsWithTooltip }
@@ -143,19 +146,26 @@ describe.each( [
143
146
  'Click for Delicious Gnocchi'
144
147
  );
145
148
 
146
- await user.hover( firstRadio );
149
+ await hover( firstRadio );
147
150
 
148
- const tooltip = await screen.findByText(
149
- 'Click for Delicious Gnocchi'
150
- );
151
+ const tooltip = await screen.findByRole( 'tooltip', {
152
+ name: 'Click for Delicious Gnocchi',
153
+ } );
151
154
 
152
155
  await waitFor( () => expect( tooltip ).toBeVisible() );
153
156
 
154
- await cleanupTooltip( user );
157
+ // hover outside of radio
158
+ await hoverOutside();
159
+
160
+ // Tooltip should hide
161
+ expect(
162
+ screen.queryByRole( 'tooltip', {
163
+ name: 'Click for Delicious Gnocchi',
164
+ } )
165
+ ).not.toBeInTheDocument();
155
166
  } );
156
167
 
157
168
  it( 'should not render tooltip', async () => {
158
- const user = userEvent.setup();
159
169
  render(
160
170
  <Component label="Test Toggle Group Control">
161
171
  { optionsWithTooltip }
@@ -166,19 +176,24 @@ describe.each( [
166
176
  'Click for Sumptuous Caponata'
167
177
  );
168
178
 
169
- await user.hover( secondRadio );
179
+ await hover( secondRadio );
170
180
 
171
- await waitFor( () =>
172
- expect(
173
- screen.queryByText( 'Click for Sumptuous Caponata' )
174
- ).not.toBeInTheDocument()
175
- );
181
+ // Tooltip shouldn't show
182
+ expect(
183
+ screen.queryByText( 'Click for Sumptuous Caponata' )
184
+ ).not.toBeInTheDocument();
185
+
186
+ // Advance time by default delay
187
+ await sleep( TOOLTIP_DELAY );
188
+
189
+ // Tooltip shouldn't show.
190
+ expect(
191
+ screen.queryByText( 'Click for Sumptuous Caponata' )
192
+ ).not.toBeInTheDocument();
176
193
  } );
177
194
 
178
195
  if ( mode === 'controlled' ) {
179
196
  it( 'should reset values correctly', async () => {
180
- const user = userEvent.setup();
181
-
182
197
  render(
183
198
  <Component label="Test Toggle Group Control">
184
199
  { options }
@@ -188,25 +203,23 @@ describe.each( [
188
203
  const rigasOption = screen.getByRole( 'radio', { name: 'R' } );
189
204
  const jackOption = screen.getByRole( 'radio', { name: 'J' } );
190
205
 
191
- await user.click( rigasOption );
206
+ await click( rigasOption );
192
207
 
193
208
  expect( jackOption ).not.toBeChecked();
194
209
  expect( rigasOption ).toBeChecked();
195
210
 
196
- await user.keyboard( '[ArrowRight]' );
211
+ await press.ArrowRight();
197
212
 
198
213
  expect( rigasOption ).not.toBeChecked();
199
214
  expect( jackOption ).toBeChecked();
200
215
 
201
- await user.click( screen.getByRole( 'button', { name: 'Reset' } ) );
216
+ await click( screen.getByRole( 'button', { name: 'Reset' } ) );
202
217
 
203
218
  expect( rigasOption ).not.toBeChecked();
204
219
  expect( jackOption ).not.toBeChecked();
205
220
  } );
206
221
 
207
222
  it( 'should update correctly when triggered by external updates', async () => {
208
- const user = userEvent.setup();
209
-
210
223
  render(
211
224
  <Component
212
225
  value="rigas"
@@ -225,19 +238,19 @@ describe.each( [
225
238
  screen.getByRole( 'radio', { name: 'J' } )
226
239
  ).not.toBeChecked();
227
240
 
228
- await user.click( screen.getByRole( 'button', { name: 'Jack' } ) );
241
+ await click( screen.getByRole( 'button', { name: 'Jack' } ) );
229
242
  expect( screen.getByRole( 'radio', { name: 'J' } ) ).toBeChecked();
230
243
  expect(
231
244
  screen.getByRole( 'radio', { name: 'R' } )
232
245
  ).not.toBeChecked();
233
246
 
234
- await user.click( screen.getByRole( 'button', { name: 'Rigas' } ) );
247
+ await click( screen.getByRole( 'button', { name: 'Rigas' } ) );
235
248
  expect( screen.getByRole( 'radio', { name: 'R' } ) ).toBeChecked();
236
249
  expect(
237
250
  screen.getByRole( 'radio', { name: 'J' } )
238
251
  ).not.toBeChecked();
239
252
 
240
- await user.click( screen.getByRole( 'button', { name: 'Reset' } ) );
253
+ await click( screen.getByRole( 'button', { name: 'Reset' } ) );
241
254
  expect(
242
255
  screen.getByRole( 'radio', { name: 'R' } )
243
256
  ).not.toBeChecked();
@@ -251,7 +264,6 @@ describe.each( [
251
264
  describe( 'isDeselectable = false', () => {
252
265
  it( 'should not be deselectable', async () => {
253
266
  const mockOnChange = jest.fn();
254
- const user = userEvent.setup();
255
267
 
256
268
  render(
257
269
  <Component
@@ -267,31 +279,35 @@ describe.each( [
267
279
  name: 'R',
268
280
  checked: true,
269
281
  } );
270
- await user.click( rigas );
282
+ await click( rigas );
271
283
  expect( mockOnChange ).toHaveBeenCalledTimes( 0 );
272
284
  } );
273
285
 
274
286
  it( 'should not tab to next radio option', async () => {
275
- const user = userEvent.setup();
276
-
277
287
  render(
278
- <Component value="rigas" label="Test">
279
- { options }
280
- </Component>
288
+ <>
289
+ <Component value="rigas" label="Test">
290
+ { options }
291
+ </Component>
292
+ <button>After ToggleGroupControl</button>
293
+ </>
281
294
  );
282
295
 
283
296
  const rigas = screen.getByRole( 'radio', {
284
297
  name: 'R',
285
298
  } );
286
299
 
287
- await user.tab();
300
+ await press.Tab();
288
301
  expect( rigas ).toHaveFocus();
289
302
 
290
- await user.tab();
303
+ await press.Tab();
291
304
 
305
+ // When in controlled mode, there is an additional "Reset" button.
292
306
  const expectedFocusTarget =
293
307
  mode === 'uncontrolled'
294
- ? rigas.ownerDocument.body
308
+ ? screen.getByRole( 'button', {
309
+ name: 'After ToggleGroupControl',
310
+ } )
295
311
  : screen.getByRole( 'button', { name: 'Reset' } );
296
312
 
297
313
  expect( expectedFocusTarget ).toHaveFocus();
@@ -301,7 +317,6 @@ describe.each( [
301
317
  describe( 'isDeselectable = true', () => {
302
318
  it( 'should be deselectable', async () => {
303
319
  const mockOnChange = jest.fn();
304
- const user = userEvent.setup();
305
320
 
306
321
  render(
307
322
  <Component
@@ -314,7 +329,7 @@ describe.each( [
314
329
  </Component>
315
330
  );
316
331
 
317
- await user.click(
332
+ await click(
318
333
  screen.getByRole( 'button', {
319
334
  name: 'R',
320
335
  pressed: true,
@@ -323,7 +338,7 @@ describe.each( [
323
338
  expect( mockOnChange ).toHaveBeenCalledTimes( 1 );
324
339
  expect( mockOnChange ).toHaveBeenLastCalledWith( undefined );
325
340
 
326
- await user.click(
341
+ await click(
327
342
  screen.getByRole( 'button', {
328
343
  name: 'R',
329
344
  pressed: false,
@@ -334,15 +349,13 @@ describe.each( [
334
349
  } );
335
350
 
336
351
  it( 'should tab to the next option button', async () => {
337
- const user = userEvent.setup();
338
-
339
352
  render(
340
353
  <Component isDeselectable value="rigas" label="Test">
341
354
  { options }
342
355
  </Component>
343
356
  );
344
357
 
345
- await user.tab();
358
+ await press.Tab();
346
359
  expect(
347
360
  screen.getByRole( 'button', {
348
361
  name: 'R',
@@ -350,7 +363,7 @@ describe.each( [
350
363
  } )
351
364
  ).toHaveFocus();
352
365
 
353
- await user.tab();
366
+ await press.Tab();
354
367
  expect(
355
368
  screen.getByRole( 'button', {
356
369
  name: 'J',
@@ -359,7 +372,7 @@ describe.each( [
359
372
  ).toHaveFocus();
360
373
 
361
374
  // Focus should not move with arrow keys
362
- await user.keyboard( '{ArrowLeft}' );
375
+ await press.ArrowLeft();
363
376
  expect(
364
377
  screen.getByRole( 'button', {
365
378
  name: 'J',
@@ -47,6 +47,8 @@ function UnconnectedToggleGroupControl(
47
47
  } = useContextSystem( props, 'ToggleGroupControl' );
48
48
 
49
49
  const baseId = useInstanceId( ToggleGroupControl, 'toggle-group-control' );
50
+ const normalizedSize =
51
+ __next40pxDefaultSize && size === 'default' ? '__unstable-large' : size;
50
52
 
51
53
  const cx = useCx();
52
54
 
@@ -56,13 +58,12 @@ function UnconnectedToggleGroupControl(
56
58
  styles.toggleGroupControl( {
57
59
  isBlock,
58
60
  isDeselectable,
59
- size,
60
- __next40pxDefaultSize,
61
+ size: normalizedSize,
61
62
  } ),
62
63
  isBlock && styles.block,
63
64
  className
64
65
  ),
65
- [ className, cx, isBlock, isDeselectable, size, __next40pxDefaultSize ]
66
+ [ className, cx, isBlock, isDeselectable, normalizedSize ]
66
67
  );
67
68
 
68
69
  const MainControl = isDeselectable
@@ -86,7 +87,7 @@ function UnconnectedToggleGroupControl(
86
87
  label={ label }
87
88
  onChange={ onChange }
88
89
  ref={ forwardedRef }
89
- size={ size }
90
+ size={ normalizedSize }
90
91
  value={ value }
91
92
  >
92
93
  <LayoutGroup id={ baseId }>{ children }</LayoutGroup>
@@ -14,11 +14,7 @@ export const toggleGroupControl = ( {
14
14
  isBlock,
15
15
  isDeselectable,
16
16
  size,
17
- __next40pxDefaultSize,
18
- }: Pick<
19
- ToggleGroupControlProps,
20
- 'isBlock' | 'isDeselectable' | '__next40pxDefaultSize'
21
- > & {
17
+ }: Pick< ToggleGroupControlProps, 'isBlock' | 'isDeselectable' > & {
22
18
  size: NonNullable< ToggleGroupControlProps[ 'size' ] >;
23
19
  } ) => css`
24
20
  background: ${ COLORS.ui.background };
@@ -26,10 +22,9 @@ export const toggleGroupControl = ( {
26
22
  border-radius: ${ CONFIG.controlBorderRadius };
27
23
  display: inline-flex;
28
24
  min-width: 0;
29
- padding: 2px;
30
25
  position: relative;
31
26
 
32
- ${ toggleGroupControlSize( size, __next40pxDefaultSize ) }
27
+ ${ toggleGroupControlSize( size ) }
33
28
  ${ ! isDeselectable && enclosingBorders( isBlock ) }
34
29
  `;
35
30
 
@@ -57,21 +52,20 @@ const enclosingBorders = ( isBlock: ToggleGroupControlProps[ 'isBlock' ] ) => {
57
52
  };
58
53
 
59
54
  export const toggleGroupControlSize = (
60
- size: NonNullable< ToggleGroupControlProps[ 'size' ] >,
61
- __next40pxDefaultSize: ToggleGroupControlProps[ '__next40pxDefaultSize' ]
55
+ size: NonNullable< ToggleGroupControlProps[ 'size' ] >
62
56
  ) => {
63
- const heights = {
64
- default: '40px',
65
- '__unstable-large': '40px',
57
+ const styles = {
58
+ default: css`
59
+ min-height: 36px;
60
+ padding: 2px;
61
+ `,
62
+ '__unstable-large': css`
63
+ min-height: 40px;
64
+ padding: 3px;
65
+ `,
66
66
  };
67
67
 
68
- if ( ! __next40pxDefaultSize ) {
69
- heights.default = '36px';
70
- }
71
-
72
- return css`
73
- min-height: ${ heights[ size ] };
74
- `;
68
+ return styles[ size ];
75
69
  };
76
70
 
77
71
  export const block = css`
@@ -4,7 +4,7 @@
4
4
  This feature is still experimental. “Experimental” means this is an early implementation subject to drastic and breaking changes.
5
5
  </div>
6
6
 
7
- `ToggleGroupControlOption` is a form component and is meant to be used as a child of [`ToggleGroupControl`]((/packages/components/src/toggle-group-control/toggle-group-control/README.md)).
7
+ `ToggleGroupControlOption` is a form component and is meant to be used as a child of [`ToggleGroupControl`](/packages/components/src/toggle-group-control/toggle-group-control/README.md).
8
8
 
9
9
 
10
10
  ## Usage
@@ -4,7 +4,7 @@
4
4
  This feature is still experimental. “Experimental” means this is an early implementation subject to drastic and breaking changes.
5
5
  </div>
6
6
 
7
- `ToggleGroupControlOptionBase` is a form component and is meant to be used as an internal, generic component for any children of [`ToggleGroupControl`](<(/packages/components/src/toggle-group-control/toggle-group-control/README.md)>).
7
+ `ToggleGroupControlOptionBase` is a form component and is meant to be used as an internal, generic component for any children of [`ToggleGroupControl`](/packages/components/src/toggle-group-control/toggle-group-control/README.md).
8
8
 
9
9
  ## Props
10
10
 
@@ -102,12 +102,13 @@ const isIconStyles = ( {
102
102
  }: Pick< ToggleGroupControlProps, 'size' > ) => {
103
103
  const iconButtonSizes = {
104
104
  default: '30px',
105
- '__unstable-large': '34px',
105
+ '__unstable-large': '32px',
106
106
  };
107
107
 
108
108
  return css`
109
109
  color: ${ COLORS.gray[ 900 ] };
110
- width: ${ iconButtonSizes[ size ] };
110
+ height: ${ iconButtonSizes[ size ] };
111
+ aspect-ratio: 1;
111
112
  padding-left: 0;
112
113
  padding-right: 0;
113
114
  `;
@@ -4,7 +4,7 @@
4
4
  This feature is still experimental. “Experimental” means this is an early implementation subject to drastic and breaking changes.
5
5
  </div>
6
6
 
7
- `ToggleGroupControlOptionIcon` is a form component which is meant to be used as a child of [`ToggleGroupControl`] and displays an icon(<(/packages/components/src/toggle-group-control/toggle-group-control/README.md)>).
7
+ `ToggleGroupControlOptionIcon` is a form component which is meant to be used as a child of [`ToggleGroupControl`](/packages/components/src/toggle-group-control/toggle-group-control/README.md) and displays an icon.
8
8
 
9
9
  ## Usage
10
10
 
@@ -4,12 +4,6 @@ Toolbar can be used to group related options. To emphasize groups of related ico
4
4
 
5
5
  ![Toolbar component above an image block](https://wordpress.org/gutenberg/files/2019/01/s_96EC471FE9C9D91A996770229947AAB54A03351BDE98F444FD3C1BF0CED365EA_1541782974545_ButtonGroup.png)
6
6
 
7
- ## Table of contents
8
-
9
- 1. [Design guidelines](#design-guidelines)
10
- 2. [Development guidelines](#development-guidelines)
11
- 3. [Related components](#related-components)
12
-
13
7
  ## Design guidelines
14
8
 
15
9
  ### Usage
@@ -455,8 +455,8 @@ describe( 'ToolsPanel', () => {
455
455
 
456
456
  const menuGroups = screen.getAllByRole( 'group' );
457
457
 
458
- // Groups should be: default controls, optional controls & reset all.
459
- expect( menuGroups.length ).toEqual( 3 );
458
+ // There are now only two groups controls & reset all.
459
+ expect( menuGroups.length ).toEqual( 2 );
460
460
  } );
461
461
 
462
462
  it( 'should not render contents of items when in placeholder state', () => {
@@ -517,15 +517,11 @@ describe( 'ToolsPanel', () => {
517
517
 
518
518
  await openDropdownMenu();
519
519
 
520
- // The linked control should initially appear in the optional controls
521
- // menu group. There should be three menu groups: default controls,
522
- // optional controls, and the group to reset all options.
523
520
  let menuGroups = screen.getAllByRole( 'group' );
524
- expect( menuGroups.length ).toEqual( 3 );
525
521
 
526
- // The linked control should be in the second group, of optional controls.
522
+ // The linked control should be in the first group of controls.
527
523
  expect(
528
- within( menuGroups[ 1 ] ).getByText( 'Linked' )
524
+ within( menuGroups[ 0 ] ).getByText( 'Linked' )
529
525
  ).toBeInTheDocument();
530
526
 
531
527
  // Simulate the main control having a value set which should
@@ -540,22 +536,18 @@ describe( 'ToolsPanel', () => {
540
536
  linkedItem = screen.getByText( 'Linked control' );
541
537
  expect( linkedItem ).toBeInTheDocument();
542
538
 
543
- // The linked control should now appear in the default controls
544
- // menu group and have been removed from the optional group.
539
+ // The linked control should still appear in the controls
540
+ // menu group but as a default control.
545
541
  menuGroups = screen.getAllByRole( 'group' );
546
542
 
547
- // There should now only be two groups. The default controls and
548
- // and the group for the reset all option.
549
- expect( menuGroups.length ).toEqual( 2 );
550
-
551
- // The new default control item for the Linked control should be
552
- // within the first menu group.
543
+ // The new default control item for the Linked control should still
544
+ // be within the first menu group.
553
545
  const defaultItem = within( menuGroups[ 0 ] ).getByText( 'Linked' );
554
546
  expect( defaultItem ).toBeInTheDocument();
555
547
 
556
548
  // Optional controls have an additional aria-label. This can be used
557
- // to confirm the conditional default control has been removed from
558
- // the optional menu item group.
549
+ // to confirm the conditional default control is now being treated
550
+ // as default control.
559
551
  expect(
560
552
  screen.queryByRole( 'menuitemcheckbox', {
561
553
  name: 'Show Linked',
@@ -599,7 +591,7 @@ describe( 'ToolsPanel', () => {
599
591
  let conditionalItem = screen.queryByText( 'Conditional control' );
600
592
  expect( conditionalItem ).not.toBeInTheDocument();
601
593
 
602
- // The conditional control should not yet appear in the default controls
594
+ // The conditional control should not yet appear in the controls
603
595
  // menu group.
604
596
  await openDropdownMenu();
605
597
  let menuGroups = screen.getAllByRole( 'group' );
@@ -619,7 +611,7 @@ describe( 'ToolsPanel', () => {
619
611
  conditionalItem = screen.getByText( 'Conditional control' );
620
612
  expect( conditionalItem ).toBeInTheDocument();
621
613
 
622
- // The conditional control should now appear in the default controls
614
+ // The conditional control should now appear in the controls
623
615
  // menu group.
624
616
  menuGroups = screen.getAllByRole( 'group' );
625
617
 
@@ -157,6 +157,13 @@ wrapper element allowing the panel to lay them out accordingly.
157
157
  - Required: No
158
158
  - Default: `false`
159
159
 
160
+ ### `dropdownMenuProps`: `{}`
161
+
162
+ The popover props to configure panel's `DropdownMenu`.
163
+
164
+ - Type: `DropdownMenuProps`
165
+ - Required: No
166
+
160
167
  ### `headingLevel`: `1 | 2 | 3 | 4 | 5 | 6 | '1' | '2' | '3' | '4' | '5' | '6'`
161
168
 
162
169
  The heading level of the panel's header.
@@ -25,6 +25,7 @@ const UnconnectedToolsPanel = (
25
25
  resetAllItems,
26
26
  toggleItem,
27
27
  headingLevel,
28
+ dropdownMenuProps,
28
29
  ...toolsPanelProps
29
30
  } = useToolsPanel( props );
30
31
 
@@ -36,6 +37,7 @@ const UnconnectedToolsPanel = (
36
37
  resetAll={ resetAllItems }
37
38
  toggleItem={ toggleItem }
38
39
  headingLevel={ headingLevel }
40
+ dropdownMenuProps={ dropdownMenuProps }
39
41
  />
40
42
  { children }
41
43
  </ToolsPanelContext.Provider>