@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
@@ -87,22 +87,22 @@ const _defaultSnippet = `() => {
87
87
 
88
88
  return (
89
89
  <>
90
- <ConfirmDialog
91
- isOpen={ isOpen }
92
- onConfirm={ handleConfirm }
93
- onCancel={ handleCancel }
94
- >
95
- Would you like to privately publish the post now?
96
- </ConfirmDialog>
90
+ <ConfirmDialog
91
+ isOpen={ isOpen }
92
+ onConfirm={ handleConfirm }
93
+ onCancel={ handleCancel }
94
+ >
95
+ Would you like to privately publish the post now?
96
+ </ConfirmDialog>
97
97
 
98
- <Heading level={ 1 }>{ confirmVal }</Heading>
98
+ <Heading level={ 1 }>{ confirmVal }</Heading>
99
99
 
100
- <Button variant="primary" onClick={ () => setIsOpen( true ) }>
101
- Open ConfirmDialog
102
- </Button>
100
+ <Button variant="primary" onClick={ () => setIsOpen( true ) }>
101
+ Open ConfirmDialog
102
+ </Button>
103
103
  </>
104
- );
105
- };`;
104
+ );
105
+ };`;
106
106
  _default.args = {};
107
107
  _default.parameters = {
108
108
  docs: {
@@ -110,7 +110,6 @@ _default.parameters = {
110
110
  code: _defaultSnippet,
111
111
  language: 'jsx',
112
112
  type: 'auto',
113
- format: 'true',
114
113
  },
115
114
  },
116
115
  };
@@ -1,13 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import {
5
- render,
6
- screen,
7
- fireEvent,
8
- waitForElementToBeRemoved,
9
- waitFor,
10
- } from '@testing-library/react';
4
+ import { render, screen } from '@testing-library/react';
11
5
  import userEvent from '@testing-library/user-event';
12
6
 
13
7
  /**
@@ -137,6 +131,7 @@ describe( 'Confirm', () => {
137
131
  } );
138
132
 
139
133
  it( 'should not render if dialog is closed by clicking the overlay, and the `onCancel` callback should be called', async () => {
134
+ const user = userEvent.setup();
140
135
  const onCancel = jest.fn().mockName( 'onCancel()' );
141
136
 
142
137
  render(
@@ -147,11 +142,9 @@ describe( 'Confirm', () => {
147
142
 
148
143
  const confirmDialog = screen.getByRole( 'dialog' );
149
144
 
150
- //The overlay click is handled by detecting an onBlur from the modal frame.
151
- // TODO: replace with `@testing-library/user-event`
152
- fireEvent.blur( confirmDialog );
153
-
154
- await waitForElementToBeRemoved( confirmDialog );
145
+ // Disable reason: Semantic queries can’t reach the overlay.
146
+ // eslint-disable-next-line testing-library/no-node-access
147
+ await user.click( confirmDialog.parentElement );
155
148
 
156
149
  expect( confirmDialog ).not.toBeInTheDocument();
157
150
  expect( onCancel ).toHaveBeenCalled();
@@ -315,6 +308,7 @@ describe( 'Confirm', () => {
315
308
  } );
316
309
 
317
310
  it( 'should call the `onCancel` callback if the overlay is clicked', async () => {
311
+ const user = userEvent.setup();
318
312
  const onCancel = jest.fn().mockName( 'onCancel()' );
319
313
 
320
314
  render(
@@ -329,13 +323,11 @@ describe( 'Confirm', () => {
329
323
 
330
324
  const confirmDialog = screen.getByRole( 'dialog' );
331
325
 
332
- //The overlay click is handled by detecting an onBlur from the modal frame.
333
- // TODO: replace with `@testing-library/user-event`
334
- fireEvent.blur( confirmDialog );
326
+ // Disable reason: Semantic queries can’t reach the overlay.
327
+ // eslint-disable-next-line testing-library/no-node-access
328
+ await user.click( confirmDialog.parentElement );
335
329
 
336
- // Wait for a DOM side effect here, so that the `queueBlurCheck` in the
337
- // `useFocusOutside` hook properly executes its timeout task.
338
- await waitFor( () => expect( onCancel ).toHaveBeenCalled() );
330
+ expect( onCancel ).toHaveBeenCalled();
339
331
  } );
340
332
 
341
333
  it( 'should call the `onCancel` callback if the `Escape` key is pressed', async () => {
@@ -93,7 +93,7 @@ function GradientColorPickerDropdown( {
93
93
  ( {
94
94
  placement: 'bottom',
95
95
  offset: 8,
96
- } as const ),
96
+ } ) as const,
97
97
  []
98
98
  );
99
99
 
@@ -13,7 +13,7 @@ describe( 'getHorizontalRelativeGradientPosition', () => {
13
13
  ( {
14
14
  x: 0,
15
15
  width: 1000,
16
- } as DOMRect )
16
+ } ) as DOMRect
17
17
  );
18
18
 
19
19
  const containerElement = document.createElement( 'div' );
@@ -31,7 +31,7 @@ describe( 'getHorizontalRelativeGradientPosition', () => {
31
31
  ( {
32
32
  x: 50,
33
33
  width: 1000,
34
- } as DOMRect )
34
+ } ) as DOMRect
35
35
  );
36
36
 
37
37
  const containerElement = document.createElement( 'div' );
@@ -49,7 +49,7 @@ describe( 'getHorizontalRelativeGradientPosition', () => {
49
49
  ( {
50
50
  x: 0,
51
51
  width: 1000,
52
- } as DOMRect )
52
+ } ) as DOMRect
53
53
  );
54
54
 
55
55
  const containerElement = document.createElement( 'div' );
@@ -68,7 +68,7 @@ describe( 'getHorizontalRelativeGradientPosition', () => {
68
68
  ( {
69
69
  x: 50,
70
70
  width: 1000,
71
- } as DOMRect )
71
+ } ) as DOMRect
72
72
  );
73
73
  const containerElement = document.createElement( 'div' );
74
74
 
@@ -86,7 +86,7 @@ describe( 'getHorizontalRelativeGradientPosition', () => {
86
86
  ( {
87
87
  x: 50,
88
88
  width: 1000,
89
- } as DOMRect )
89
+ } ) as DOMRect
90
90
  );
91
91
 
92
92
  const containerElement = document.createElement( 'div' );
@@ -127,7 +127,14 @@ export function TimePicker( {
127
127
  method: 'hours' | 'minutes' | 'date' | 'year'
128
128
  ) => {
129
129
  const callback: InputChangeCallback = ( value, { event } ) => {
130
- if ( ! ( event.target instanceof HTMLInputElement ) ) {
130
+ // `instanceof` checks need to get the instance definition from the
131
+ // corresponding window object — therefore, the following logic makes
132
+ // the component work correctly even when rendered inside an iframe.
133
+ const HTMLInputElementInstance =
134
+ ( event.target as HTMLInputElement )?.ownerDocument.defaultView
135
+ ?.HTMLInputElement ?? HTMLInputElement;
136
+
137
+ if ( ! ( event.target instanceof HTMLInputElementInstance ) ) {
131
138
  return;
132
139
  }
133
140
 
@@ -38,7 +38,7 @@ const TimeZone = () => {
38
38
  : `(${ zoneAbbr }) ${ timezone.string.replace( '_', ' ' ) }`;
39
39
 
40
40
  return (
41
- <Tooltip position="top center" text={ timezoneDetail }>
41
+ <Tooltip placement="top" text={ timezoneDetail }>
42
42
  <StyledComponent className="components-datetime__timezone">
43
43
  { zoneAbbr }
44
44
  </StyledComponent>
@@ -44,6 +44,12 @@ If you want to target the dropdown menu for styling purposes, you need to provid
44
44
 
45
45
  - Required: No
46
46
 
47
+ ### `defaultOpen`: `boolean`
48
+
49
+ The open state of the dropdown when initially rendered. Use when you do not need to control its open state. It will be overridden by the `open` prop if it is specified on the component's first render.
50
+
51
+ - Required: No
52
+
47
53
  ### `expandOnMobile`: `boolean`
48
54
 
49
55
  Opt-in prop to show popovers fullscreen on mobile.
@@ -74,11 +80,15 @@ A callback invoked when the popover should be closed.
74
80
 
75
81
  - Required: No
76
82
 
77
- ### `onToggle`: `( willOpen: boolean ) => void`
83
+ ### `open`: `boolean`
78
84
 
79
- A callback invoked when the state of the popover changes from open to closed and vice versa.
85
+ The controlled open state of the dropdown. Must be used in conjunction with `onToggle`.
86
+
87
+ - Required: No
88
+
89
+ ### `onToggle`: `( willOpen: boolean ) => void`
80
90
 
81
- The callback receives a boolean as a parameter. If `true`, the popover will open. If `false`, the popover will close.
91
+ A callback invoked when the state of the dropdown changes from open to closed and vice versa.
82
92
 
83
93
  - Required: No
84
94
 
@@ -7,7 +7,7 @@ import type { ForwardedRef } from 'react';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
- import { useEffect, useRef, useState } from '@wordpress/element';
10
+ import { useRef, useState } from '@wordpress/element';
11
11
  import { useMergeRefs } from '@wordpress/compose';
12
12
  import deprecated from '@wordpress/deprecated';
13
13
 
@@ -15,25 +15,10 @@ import deprecated from '@wordpress/deprecated';
15
15
  * Internal dependencies
16
16
  */
17
17
  import { contextConnect, useContextSystem } from '../ui/context';
18
+ import { useControlledValue } from '../utils/hooks';
18
19
  import Popover from '../popover';
19
20
  import type { DropdownProps, DropdownInternalContext } from './types';
20
21
 
21
- function useObservableState(
22
- initialState: boolean,
23
- onStateChange?: ( newState: boolean ) => void
24
- ) {
25
- const [ state, setState ] = useState( initialState );
26
- return [
27
- state,
28
- ( value: boolean ) => {
29
- setState( value );
30
- if ( onStateChange ) {
31
- onStateChange( value );
32
- }
33
- },
34
- ] as const;
35
- }
36
-
37
22
  const UnconnectedDropdown = (
38
23
  props: DropdownProps,
39
24
  forwardedRef: ForwardedRef< any >
@@ -51,6 +36,9 @@ const UnconnectedDropdown = (
51
36
  onToggle,
52
37
  style,
53
38
 
39
+ open,
40
+ defaultOpen,
41
+
54
42
  // Deprecated props
55
43
  position,
56
44
 
@@ -74,20 +62,12 @@ const UnconnectedDropdown = (
74
62
  const [ fallbackPopoverAnchor, setFallbackPopoverAnchor ] =
75
63
  useState< HTMLDivElement | null >( null );
76
64
  const containerRef = useRef< HTMLDivElement >();
77
- const [ isOpen, setIsOpen ] = useObservableState( false, onToggle );
78
-
79
- useEffect(
80
- () => () => {
81
- if ( onToggle && isOpen ) {
82
- onToggle( false );
83
- }
84
- },
85
- [ onToggle, isOpen ]
86
- );
87
65
 
88
- function toggle() {
89
- setIsOpen( ! isOpen );
90
- }
66
+ const [ isOpen, setIsOpen ] = useControlledValue( {
67
+ defaultValue: defaultOpen,
68
+ value: open,
69
+ onChange: onToggle,
70
+ } );
91
71
 
92
72
  /**
93
73
  * Closes the popover when focus leaves it unless the toggle was pressed or
@@ -112,13 +92,15 @@ const UnconnectedDropdown = (
112
92
  }
113
93
 
114
94
  function close() {
115
- if ( onClose ) {
116
- onClose();
117
- }
95
+ onClose?.();
118
96
  setIsOpen( false );
119
97
  }
120
98
 
121
- const args = { isOpen, onToggle: toggle, onClose: close };
99
+ const args = {
100
+ isOpen: !! isOpen,
101
+ onToggle: () => setIsOpen( ! isOpen ),
102
+ onClose: close,
103
+ };
122
104
  const popoverPropsHaveAnchor =
123
105
  !! popoverProps?.anchor ||
124
106
  // Note: `anchorRef`, `getAnchorRect` and `anchorRect` are deprecated and
@@ -25,8 +25,13 @@ const meta: Meta< typeof Dropdown > = {
25
25
  position: { control: { type: null } },
26
26
  renderContent: { control: { type: null } },
27
27
  renderToggle: { control: { type: null } },
28
+ open: { control: { type: null } },
29
+ defaultOpen: { control: { type: null } },
30
+ onToggle: { control: { type: null } },
31
+ onClose: { control: { type: null } },
28
32
  },
29
33
  parameters: {
34
+ actions: { argTypesRegex: '^on.*' },
30
35
  controls: {
31
36
  expanded: true,
32
37
  },
@@ -34,13 +39,11 @@ const meta: Meta< typeof Dropdown > = {
34
39
  };
35
40
  export default meta;
36
41
 
37
- const Template: StoryFn< typeof Dropdown > = ( args ) => {
38
- return (
39
- <div style={ { height: 150 } }>
40
- <Dropdown { ...args } />
41
- </div>
42
- );
43
- };
42
+ const Template: StoryFn< typeof Dropdown > = ( args ) => (
43
+ <div style={ { height: 150 } }>
44
+ <Dropdown { ...args } />
45
+ </div>
46
+ );
44
47
 
45
48
  export const Default = Template.bind( {} );
46
49
  Default.args = {
@@ -62,11 +62,8 @@ export type DropdownProps = {
62
62
  */
63
63
  onClose?: () => void;
64
64
  /**
65
- * A callback invoked when the state of the popover changes
65
+ * A callback invoked when the state of the dropdown changes
66
66
  * from open to closed and vice versa.
67
- * The callback receives a boolean as a parameter.
68
- * If true, the popover will open.
69
- * If false, the popover will close.
70
67
  */
71
68
  onToggle?: ( willOpen: boolean ) => void;
72
69
  /**
@@ -111,6 +108,17 @@ export type DropdownProps = {
111
108
  * @deprecated
112
109
  */
113
110
  position?: PopoverProps[ 'position' ];
111
+ /**
112
+ * The controlled open state of the dropdown.
113
+ * Must be used in conjunction with `onToggle`.
114
+ */
115
+ open?: boolean;
116
+ /**
117
+ * The open state of the dropdown when initially rendered.
118
+ * Use when you do not need to control its open state. It will be overridden
119
+ * by the `open` prop if it is specified on the component's first render.
120
+ */
121
+ defaultOpen?: boolean;
114
122
  };
115
123
 
116
124
  export type DropdownInternalContext = {
@@ -198,3 +198,21 @@ In some contexts, the arrow down key used to open the dropdown menu might need t
198
198
 
199
199
  - Required: No
200
200
  - Default: `false`
201
+
202
+ ### `defaultOpen`: `boolean`
203
+
204
+ The open state of the dropdown menu when initially rendered. Use when you do not need to control its open state. It will be overridden by the `open` prop if it is specified on the component's first render.
205
+
206
+ - Required: No
207
+
208
+ ### `open`: `boolean`
209
+
210
+ The controlled open state of the dropdown menu. Must be used in conjunction with `onToggle`.
211
+
212
+ - Required: No
213
+
214
+ ### `onToggle`: `( willOpen: boolean ) => void`
215
+
216
+ A callback invoked when the state of the dropdown changes from open to closed and vice versa.
217
+
218
+ - Required: No
@@ -22,7 +22,7 @@ import type {
22
22
  } from './types';
23
23
 
24
24
  function mergeProps<
25
- T extends { className?: string; [ key: string ]: unknown }
25
+ T extends { className?: string; [ key: string ]: unknown },
26
26
  >( defaultProps: Partial< T > = {}, props: T = {} as T ) {
27
27
  const mergedProps: T = {
28
28
  ...defaultProps,
@@ -57,6 +57,10 @@ function UnconnectedDropdownMenu( dropdownMenuProps: DropdownMenuProps ) {
57
57
  text,
58
58
  noIcons,
59
59
 
60
+ open,
61
+ defaultOpen,
62
+ onToggle: onToggleProp,
63
+
60
64
  // Context
61
65
  variant,
62
66
  } = useContextSystem< DropdownMenuProps & DropdownMenuInternalContext >(
@@ -211,6 +215,9 @@ function UnconnectedDropdownMenu( dropdownMenuProps: DropdownMenuProps ) {
211
215
  </NavigableMenu>
212
216
  );
213
217
  } }
218
+ open={ open }
219
+ defaultOpen={ defaultOpen }
220
+ onToggle={ onToggleProp }
214
221
  />
215
222
  );
216
223
  }
@@ -2,6 +2,7 @@
2
2
  * External dependencies
3
3
  */
4
4
  import type { Meta, StoryFn } from '@storybook/react';
5
+
5
6
  /**
6
7
  * Internal dependencies
7
8
  */
@@ -25,6 +26,7 @@ const meta: Meta< typeof DropdownMenu > = {
25
26
  title: 'Components/DropdownMenu',
26
27
  component: DropdownMenu,
27
28
  parameters: {
29
+ actions: { argTypesRegex: '^on.*' },
28
30
  controls: { expanded: true },
29
31
  docs: { canvas: { sourceState: 'shown' } },
30
32
  },
@@ -34,6 +36,9 @@ const meta: Meta< typeof DropdownMenu > = {
34
36
  mapping: { menu, chevronDown, more },
35
37
  control: { type: 'select' },
36
38
  },
39
+ open: { control: { type: null } },
40
+ defaultOpen: { control: { type: null } },
41
+ onToggle: { control: { type: null } },
37
42
  },
38
43
  };
39
44
  export default meta;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import type { ReactNode } from 'react';
4
+ import type { HTMLAttributes, ReactNode } from 'react';
5
5
  /**
6
6
  * Internal dependencies
7
7
  */
@@ -13,7 +13,7 @@ import type { NavigableMenuProps } from '../navigable-container/types';
13
13
 
14
14
  export type DropdownOption = {
15
15
  /**
16
- * The Dashicon icon slug to be shown for the option.
16
+ * The icon to be shown for the option.
17
17
  */
18
18
  icon?: IconProps[ 'icon' ];
19
19
  /**
@@ -29,7 +29,7 @@ export type DropdownOption = {
29
29
  /**
30
30
  * A callback function to invoke when the option is selected.
31
31
  */
32
- onClick?: () => void;
32
+ onClick?: ( event?: React.MouseEvent ) => void;
33
33
  /**
34
34
  * Whether or not the control is currently active.
35
35
  */
@@ -41,7 +41,7 @@ export type DropdownOption = {
41
41
  /**
42
42
  * The role to apply to the option's HTML element
43
43
  */
44
- role?: HTMLElement[ 'role' ];
44
+ role?: HTMLAttributes< HTMLElement >[ 'role' ];
45
45
  };
46
46
 
47
47
  type DropdownCallbackProps = {
@@ -50,7 +50,7 @@ type DropdownCallbackProps = {
50
50
  onClose: () => void;
51
51
  };
52
52
 
53
- // Manually including `as` prop because `WordPressComponentProps` polymorhpism
53
+ // Manually including `as` prop because `WordPressComponentProps` polymorphism
54
54
  // creates a union that is too large for TypeScript to handle.
55
55
  type ToggleProps = Partial<
56
56
  Omit<
@@ -59,11 +59,12 @@ type ToggleProps = Partial<
59
59
  >
60
60
  > & {
61
61
  as?: React.ElementType | keyof JSX.IntrinsicElements;
62
+ 'data-toolbar-item'?: boolean;
62
63
  };
63
64
 
64
65
  export type DropdownMenuProps = {
65
66
  /**
66
- * The Dashicon icon slug to be shown in the collapsed menu button.
67
+ * The icon to be shown in the collapsed menu button.
67
68
  *
68
69
  * @default "menu"
69
70
  */
@@ -140,6 +141,22 @@ export type DropdownMenuProps = {
140
141
  * A valid DropdownMenu must specify a `controls` or `children` prop, or both.
141
142
  */
142
143
  controls?: DropdownOption[] | DropdownOption[][];
144
+ /**
145
+ * The controlled open state of the dropdown menu.
146
+ * Must be used in conjunction with `onToggle`.
147
+ */
148
+ open?: boolean;
149
+ /**
150
+ * The open state of the dropdown menu when initially rendered.
151
+ * Use when you do not need to control its open state. It will be overridden
152
+ * by the `open` prop if it is specified on the component's first render.
153
+ */
154
+ defaultOpen?: boolean;
155
+ /**
156
+ * A callback invoked when the state of the dropdown menu changes
157
+ * from open to closed and vice versa.
158
+ */
159
+ onToggle?: ( willOpen: boolean ) => void;
143
160
  };
144
161
 
145
162
  export type DropdownMenuInternalContext = {
@@ -274,5 +274,5 @@ export const SubmenuRtlChevronIcon = styled( Icon )`
274
274
  {
275
275
  transform: `scaleX(-1) translateX(${ space( 2 ) })`,
276
276
  }
277
- )() }
277
+ ) }
278
278
  `;
@@ -64,6 +64,20 @@ An array of colors for the duotone effect.
64
64
 
65
65
  Callback which is called when the duotone colors change.
66
66
 
67
+ ### `asButtons`: `boolean`
68
+
69
+ Whether the control should present as a set of buttons, each with its own tab stop.
70
+
71
+ - Required: No
72
+ - Default: `false`
73
+
74
+ ### `loop`: `boolean`
75
+
76
+ Prevents keyboard interaction from wrapping around. Only used when `asButtons` is not true.
77
+
78
+ - Required: No
79
+ - Default: `true`
80
+
67
81
  ## DuotoneSwatch Props
68
82
 
69
83
  ### `values`
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { useState } from '@wordpress/element';
5
5
  import { swatch } from '@wordpress/icons';
6
+ import { __ } from '@wordpress/i18n';
6
7
 
7
8
  /**
8
9
  * Internal dependencies
@@ -13,6 +14,7 @@ import ColorIndicator from '../../color-indicator';
13
14
  import Icon from '../../icon';
14
15
  import { HStack } from '../../h-stack';
15
16
  import type { ColorListPickerProps, ColorOptionProps } from './types';
17
+ import { useInstanceId } from '@wordpress/compose';
16
18
 
17
19
  function ColorOption( {
18
20
  label,
@@ -23,11 +25,17 @@ function ColorOption( {
23
25
  onChange,
24
26
  }: ColorOptionProps ) {
25
27
  const [ isOpen, setIsOpen ] = useState( false );
28
+ const idRoot = useInstanceId( ColorOption, 'color-list-picker-option' );
29
+ const labelId = `${ idRoot }__label`;
30
+ const contentId = `${ idRoot }__content`;
31
+
26
32
  return (
27
33
  <>
28
34
  <Button
29
35
  className="components-color-list-picker__swatch-button"
30
36
  onClick={ () => setIsOpen( ( prev ) => ! prev ) }
37
+ aria-expanded={ isOpen }
38
+ aria-controls={ contentId }
31
39
  >
32
40
  <HStack justify="flex-start" spacing={ 2 }>
33
41
  { value ? (
@@ -38,20 +46,28 @@ function ColorOption( {
38
46
  ) : (
39
47
  <Icon icon={ swatch } />
40
48
  ) }
41
- <span>{ label }</span>
49
+ <span id={ labelId }>{ label }</span>
42
50
  </HStack>
43
51
  </Button>
44
- { isOpen && (
45
- <ColorPalette
46
- className="components-color-list-picker__color-picker"
47
- colors={ colors }
48
- value={ value }
49
- clearable={ false }
50
- onChange={ onChange }
51
- disableCustomColors={ disableCustomColors }
52
- enableAlpha={ enableAlpha }
53
- />
54
- ) }
52
+ <div
53
+ role="group"
54
+ id={ contentId }
55
+ aria-labelledby={ labelId }
56
+ aria-hidden={ ! isOpen }
57
+ >
58
+ { isOpen && (
59
+ <ColorPalette
60
+ aria-label={ __( 'Color options' ) }
61
+ className="components-color-list-picker__color-picker"
62
+ colors={ colors }
63
+ value={ value }
64
+ clearable={ false }
65
+ onChange={ onChange }
66
+ disableCustomColors={ disableCustomColors }
67
+ enableAlpha={ enableAlpha }
68
+ />
69
+ ) }
70
+ </div>
55
71
  </>
56
72
  );
57
73
  }