@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
@@ -8,6 +8,7 @@ import { render, screen, within } from '@testing-library/react';
8
8
  */
9
9
  import { useResizeObserver } from '@wordpress/compose';
10
10
  import { SVG, Path } from '@wordpress/primitives';
11
+ import { speak } from '@wordpress/a11y';
11
12
 
12
13
  /**
13
14
  * Internal dependencies
@@ -41,6 +42,9 @@ const Placeholder = (
41
42
 
42
43
  const getPlaceholder = () => screen.getByTestId( 'placeholder' );
43
44
 
45
+ jest.mock( '@wordpress/a11y', () => ( { speak: jest.fn() } ) );
46
+ const mockedSpeak = jest.mocked( speak );
47
+
44
48
  describe( 'Placeholder', () => {
45
49
  beforeEach( () => {
46
50
  // @ts-ignore
@@ -48,10 +52,11 @@ describe( 'Placeholder', () => {
48
52
  <div key="1" />,
49
53
  { width: 320 },
50
54
  ] );
55
+ mockedSpeak.mockReset();
51
56
  } );
52
57
 
53
58
  describe( 'basic rendering', () => {
54
- it( 'should by default render label section and fieldset.', () => {
59
+ it( 'should by default render label section and content section.', () => {
55
60
  render( <Placeholder /> );
56
61
  const placeholder = getPlaceholder();
57
62
 
@@ -74,9 +79,12 @@ describe( 'Placeholder', () => {
74
79
  );
75
80
  expect( placeholderInstructions ).not.toBeInTheDocument();
76
81
 
77
- // Test for empty fieldset.
78
- const placeholderFieldset =
79
- within( placeholder ).getByRole( 'group' );
82
+ // Test for empty content. When the content is empty,
83
+ // the only way to query the div is with `querySelector`
84
+ // eslint-disable-next-line testing-library/no-node-access
85
+ const placeholderFieldset = placeholder.querySelector(
86
+ '.components-placeholder__fieldset'
87
+ );
80
88
  expect( placeholderFieldset ).toBeInTheDocument();
81
89
  expect( placeholderFieldset ).toBeEmptyDOMElement();
82
90
  } );
@@ -104,27 +112,38 @@ describe( 'Placeholder', () => {
104
112
  expect( placeholderLabel ).toBeInTheDocument();
105
113
  } );
106
114
 
107
- it( 'should display a fieldset from the children property', () => {
108
- const content = 'Fieldset';
115
+ it( 'should display content from the children property', () => {
116
+ const content = 'Placeholder content';
109
117
  render( <Placeholder>{ content }</Placeholder> );
110
- const placeholderFieldset = screen.getByRole( 'group' );
118
+ const placeholder = screen.getByText( content );
111
119
 
112
- expect( placeholderFieldset ).toBeInTheDocument();
113
- expect( placeholderFieldset ).toHaveTextContent( content );
120
+ expect( placeholder ).toBeInTheDocument();
121
+ expect( placeholder ).toHaveTextContent( content );
114
122
  } );
115
123
 
116
- it( 'should display a legend if instructions are passed', () => {
124
+ it( 'should display instructions when provided', () => {
117
125
  const instructions = 'Choose an option.';
118
126
  render(
119
127
  <Placeholder instructions={ instructions }>
120
- <div>Fieldset</div>
128
+ <div>Placeholder content</div>
129
+ </Placeholder>
130
+ );
131
+ const placeholder = getPlaceholder();
132
+ const instructionsContainer =
133
+ within( placeholder ).getByText( instructions );
134
+
135
+ expect( instructionsContainer ).toBeInTheDocument();
136
+ } );
137
+
138
+ it( 'should announce instructions to screen readers', () => {
139
+ const instructions = 'Awesome block placeholder instructions.';
140
+ render(
141
+ <Placeholder instructions={ instructions }>
142
+ <div>Placeholder content</div>
121
143
  </Placeholder>
122
144
  );
123
- const captionedFieldset = screen.getByRole( 'group', {
124
- name: instructions,
125
- } );
126
145
 
127
- expect( captionedFieldset ).toBeInTheDocument();
146
+ expect( speak ).toHaveBeenCalledWith( instructions );
128
147
  } );
129
148
 
130
149
  it( 'should add an additional className to the top container', () => {
@@ -40,7 +40,6 @@ import {
40
40
  import { close } from '@wordpress/icons';
41
41
  import deprecated from '@wordpress/deprecated';
42
42
  import { Path, SVG } from '@wordpress/primitives';
43
- import { getScrollContainer } from '@wordpress/dom';
44
43
 
45
44
  /**
46
45
  * Internal dependencies
@@ -52,13 +51,11 @@ import {
52
51
  computePopoverPosition,
53
52
  positionToPlacement,
54
53
  placementToMotionAnimationProps,
55
- getReferenceOwnerDocument,
56
54
  getReferenceElement,
57
55
  } from './utils';
58
56
  import type { WordPressComponentProps } from '../ui/context';
59
57
  import type {
60
58
  PopoverProps,
61
- AnimatedWrapperProps,
62
59
  PopoverAnchorRefReference,
63
60
  PopoverAnchorRefTopBottom,
64
61
  } from './types';
@@ -94,47 +91,6 @@ const ArrowTriangle = () => (
94
91
  </SVG>
95
92
  );
96
93
 
97
- const AnimatedWrapper = forwardRef(
98
- (
99
- {
100
- style: receivedInlineStyles,
101
- placement,
102
- shouldAnimate = false,
103
- ...props
104
- }: HTMLMotionProps< 'div' > & AnimatedWrapperProps,
105
- forwardedRef: ForwardedRef< any >
106
- ) => {
107
- const shouldReduceMotion = useReducedMotion();
108
-
109
- const { style: motionInlineStyles, ...otherMotionProps } = useMemo(
110
- () => placementToMotionAnimationProps( placement ),
111
- [ placement ]
112
- );
113
-
114
- const computedAnimationProps: HTMLMotionProps< 'div' > =
115
- shouldAnimate && ! shouldReduceMotion
116
- ? {
117
- style: {
118
- ...motionInlineStyles,
119
- ...receivedInlineStyles,
120
- },
121
- ...otherMotionProps,
122
- }
123
- : {
124
- animate: false,
125
- style: receivedInlineStyles,
126
- };
127
-
128
- return (
129
- <motion.div
130
- { ...computedAnimationProps }
131
- { ...props }
132
- ref={ forwardedRef }
133
- />
134
- );
135
- }
136
- );
137
-
138
94
  const slotNameContext = createContext< string | undefined >( undefined );
139
95
 
140
96
  const fallbackContainerClassname = 'components-popover__fallback-container';
@@ -241,9 +197,6 @@ const UnforwardedPopover = (
241
197
 
242
198
  const [ fallbackReferenceElement, setFallbackReferenceElement ] =
243
199
  useState< HTMLSpanElement | null >( null );
244
- const [ referenceOwnerDocument, setReferenceOwnerDocument ] = useState<
245
- Document | undefined
246
- >();
247
200
 
248
201
  const anchorRefFallback: RefCallback< HTMLSpanElement > = useCallback(
249
202
  ( node ) => {
@@ -357,15 +310,6 @@ const UnforwardedPopover = (
357
310
  ?.current;
358
311
 
359
312
  useLayoutEffect( () => {
360
- const resultingReferenceOwnerDoc = getReferenceOwnerDocument( {
361
- anchor,
362
- anchorRef,
363
- anchorRect,
364
- getAnchorRect,
365
- fallbackReferenceElement,
366
- fallbackDocument: document,
367
- } );
368
-
369
313
  const resultingReferenceElement = getReferenceElement( {
370
314
  anchor,
371
315
  anchorRef,
@@ -375,8 +319,6 @@ const UnforwardedPopover = (
375
319
  } );
376
320
 
377
321
  refs.setReference( resultingReferenceElement );
378
-
379
- setReferenceOwnerDocument( resultingReferenceOwnerDoc );
380
322
  }, [
381
323
  anchor,
382
324
  anchorRef,
@@ -390,51 +332,61 @@ const UnforwardedPopover = (
390
332
  refs,
391
333
  ] );
392
334
 
393
- // If the reference element is in a different ownerDocument (e.g. iFrame),
394
- // we need to manually update the floating's position as the reference's owner
395
- // document scrolls.
396
- useLayoutEffect( () => {
397
- if (
398
- ! referenceOwnerDocument ||
399
- ! referenceOwnerDocument.defaultView
400
- ) {
401
- return;
402
- }
403
-
404
- const { defaultView } = referenceOwnerDocument;
405
- const { frameElement } = defaultView;
406
-
407
- const scrollContainer = frameElement
408
- ? getScrollContainer( frameElement )
409
- : null;
410
-
411
- defaultView.addEventListener( 'resize', update );
412
- scrollContainer?.addEventListener( 'scroll', update );
413
-
414
- return () => {
415
- defaultView.removeEventListener( 'resize', update );
416
- scrollContainer?.removeEventListener( 'scroll', update );
417
- };
418
- }, [ referenceOwnerDocument, update ] );
419
-
420
335
  const mergedFloatingRef = useMergeRefs( [
421
336
  refs.setFloating,
422
337
  dialogRef,
423
338
  forwardedRef,
424
339
  ] );
425
340
 
426
- // Disable reason: We care to capture the _bubbled_ events from inputs
427
- // within popover as inferring close intent.
341
+ const style = isExpanded
342
+ ? undefined
343
+ : {
344
+ position: strategy,
345
+ top: 0,
346
+ left: 0,
347
+ // `x` and `y` are framer-motion specific props and are shorthands
348
+ // for `translateX` and `translateY`. Currently it is not possible
349
+ // to use `translateX` and `translateY` because those values would
350
+ // be overridden by the return value of the
351
+ // `placementToMotionAnimationProps` function.
352
+ x: computePopoverPosition( x ),
353
+ y: computePopoverPosition( y ),
354
+ };
355
+
356
+ const shouldReduceMotion = useReducedMotion();
357
+ const shouldAnimate = animate && ! isExpanded && ! shouldReduceMotion;
358
+
359
+ const [ animationFinished, setAnimationFinished ] = useState( false );
360
+
361
+ const { style: motionInlineStyles, ...otherMotionProps } = useMemo(
362
+ () => placementToMotionAnimationProps( computedPlacement ),
363
+ [ computedPlacement ]
364
+ );
365
+
366
+ const animationProps: HTMLMotionProps< 'div' > = shouldAnimate
367
+ ? {
368
+ style: {
369
+ ...motionInlineStyles,
370
+ ...style,
371
+ },
372
+ onAnimationComplete: () => setAnimationFinished( true ),
373
+ ...otherMotionProps,
374
+ }
375
+ : {
376
+ animate: false,
377
+ style,
378
+ };
379
+
380
+ // When Floating UI has finished positioning and Framer Motion has finished animating
381
+ // the popover, add the `is-positioned` class to signal that all transitions have finished.
382
+ const isPositioned =
383
+ ( ! shouldAnimate || animationFinished ) && x !== null && y !== null;
428
384
 
429
385
  let content = (
430
- // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
431
- // eslint-disable-next-line jsx-a11y/no-static-element-interactions
432
- <AnimatedWrapper
433
- shouldAnimate={ animate && ! isExpanded }
434
- placement={ computedPlacement }
386
+ <motion.div
435
387
  className={ classnames( 'components-popover', className, {
436
388
  'is-expanded': isExpanded,
437
- 'is-positioned': x !== null && y !== null,
389
+ 'is-positioned': isPositioned,
438
390
  // Use the 'alternate' classname for 'toolbar' variant for back compat.
439
391
  [ `is-${
440
392
  computedVariant === 'toolbar'
@@ -442,26 +394,11 @@ const UnforwardedPopover = (
442
394
  : computedVariant
443
395
  }` ]: computedVariant,
444
396
  } ) }
397
+ { ...animationProps }
445
398
  { ...contentProps }
446
399
  ref={ mergedFloatingRef }
447
400
  { ...dialogProps }
448
401
  tabIndex={ -1 }
449
- style={
450
- isExpanded
451
- ? undefined
452
- : {
453
- position: strategy,
454
- top: 0,
455
- left: 0,
456
- // `x` and `y` are framer-motion specific props and are shorthands
457
- // for `translateX` and `translateY`. Currently it is not possible
458
- // to use `translateX` and `translateY` because those values would
459
- // be overridden by the return value of the
460
- // `placementToMotionAnimationProps` function in `AnimatedWrapper`
461
- x: computePopoverPosition( x ),
462
- y: computePopoverPosition( y ),
463
- }
464
- }
465
402
  >
466
403
  { /* Prevents scroll on the document */ }
467
404
  { isExpanded && <ScrollLock /> }
@@ -501,7 +438,7 @@ const UnforwardedPopover = (
501
438
  <ArrowTriangle />
502
439
  </div>
503
440
  ) }
504
- </AnimatedWrapper>
441
+ </motion.div>
505
442
  );
506
443
 
507
444
  const shouldRenderWithinSlot = slot.ref && ! inline;
@@ -23,17 +23,17 @@ import { PopoverInsideIframeRenderedInExternalSlot } from './utils';
23
23
 
24
24
  type PositionToPlacementTuple = [
25
25
  NonNullable< PopoverProps[ 'position' ] >,
26
- NonNullable< PopoverProps[ 'placement' ] >
26
+ NonNullable< PopoverProps[ 'placement' ] >,
27
27
  ];
28
28
  type PlacementToAnimationOriginTuple = [
29
29
  NonNullable< PopoverProps[ 'placement' ] >,
30
30
  number,
31
- number
31
+ number,
32
32
  ];
33
33
  type PlacementToInitialTranslationTuple = [
34
34
  NonNullable< PopoverProps[ 'placement' ] >,
35
35
  'translateY' | 'translateX',
36
- CSSProperties[ 'translate' ]
36
+ CSSProperties[ 'translate' ],
37
37
  ];
38
38
 
39
39
  // There's no matching `placement` for 'middle center' positions,
@@ -14,11 +14,6 @@ type DomRectWithOwnerDocument = DOMRect & {
14
14
 
15
15
  type PopoverPlacement = Placement | 'overlay';
16
16
 
17
- export type AnimatedWrapperProps = {
18
- placement: PopoverPlacement;
19
- shouldAnimate?: boolean;
20
- };
21
-
22
17
  export type PopoverAnchorRefReference = MutableRefObject<
23
18
  Element | null | undefined
24
19
  >;
@@ -3,7 +3,7 @@
3
3
  */
4
4
  // eslint-disable-next-line no-restricted-imports
5
5
  import type { MotionProps } from 'framer-motion';
6
- import type { ReferenceType, VirtualElement } from '@floating-ui/react-dom';
6
+ import type { Placement, ReferenceType } from '@floating-ui/react-dom';
7
7
 
8
8
  /**
9
9
  * Internal dependencies
@@ -16,7 +16,7 @@ import type {
16
16
 
17
17
  const POSITION_TO_PLACEMENT: Record<
18
18
  NonNullable< PopoverProps[ 'position' ] >,
19
- NonNullable< PopoverProps[ 'placement' ] >
19
+ Placement
20
20
  > = {
21
21
  bottom: 'bottom',
22
22
  top: 'top',
@@ -79,8 +79,7 @@ const POSITION_TO_PLACEMENT: Record<
79
79
  */
80
80
  export const positionToPlacement = (
81
81
  position: NonNullable< PopoverProps[ 'position' ] >
82
- ): NonNullable< PopoverProps[ 'placement' ] > =>
83
- POSITION_TO_PLACEMENT[ position ] ?? 'bottom';
82
+ ) => POSITION_TO_PLACEMENT[ position ] ?? 'bottom';
84
83
 
85
84
  /**
86
85
  * @typedef AnimationOrigin
@@ -139,58 +138,17 @@ export const placementToMotionAnimationProps = (
139
138
  };
140
139
  };
141
140
 
142
- export const getReferenceOwnerDocument = ( {
143
- anchor,
144
- anchorRef,
145
- anchorRect,
146
- getAnchorRect,
147
- fallbackReferenceElement,
148
- fallbackDocument,
149
- }: Pick<
150
- PopoverProps,
151
- 'anchorRef' | 'anchorRect' | 'getAnchorRect' | 'anchor'
152
- > & {
153
- fallbackReferenceElement: Element | null;
154
- fallbackDocument: Document;
155
- } ): Document => {
156
- // In floating-ui's terms:
157
- // - "reference" refers to the popover's anchor element.
158
- // - "floating" refers the floating popover's element.
159
- // A floating element can also be positioned relative to a virtual element,
160
- // instead of a real one. A virtual element is represented by an object
161
- // with the `getBoundingClientRect()` function (like real elements).
162
- // See https://floating-ui.com/docs/virtual-elements for more info.
163
- let resultingReferenceOwnerDoc;
164
- if ( ( anchor as VirtualElement )?.contextElement ) {
165
- resultingReferenceOwnerDoc = ( anchor as VirtualElement ).contextElement
166
- ?.ownerDocument;
167
- } else if ( anchor ) {
168
- resultingReferenceOwnerDoc = anchor.ownerDocument;
169
- } else if ( ( anchorRef as PopoverAnchorRefTopBottom | undefined )?.top ) {
170
- resultingReferenceOwnerDoc = ( anchorRef as PopoverAnchorRefTopBottom )
171
- ?.top.ownerDocument;
172
- } else if ( ( anchorRef as Range | undefined )?.startContainer ) {
173
- resultingReferenceOwnerDoc = ( anchorRef as Range ).startContainer
174
- .ownerDocument;
175
- } else if (
176
- ( anchorRef as PopoverAnchorRefReference | undefined )?.current
177
- ) {
178
- resultingReferenceOwnerDoc = (
179
- ( anchorRef as PopoverAnchorRefReference ).current as Element
180
- ).ownerDocument;
181
- } else if ( anchorRef as Element | undefined ) {
182
- // This one should be deprecated.
183
- resultingReferenceOwnerDoc = ( anchorRef as Element ).ownerDocument;
184
- } else if ( anchorRect && anchorRect?.ownerDocument ) {
185
- resultingReferenceOwnerDoc = anchorRect.ownerDocument;
186
- } else if ( getAnchorRect ) {
187
- resultingReferenceOwnerDoc = getAnchorRect(
188
- fallbackReferenceElement
189
- )?.ownerDocument;
190
- }
141
+ function isTopBottom(
142
+ anchorRef: PopoverProps[ 'anchorRef' ]
143
+ ): anchorRef is PopoverAnchorRefTopBottom {
144
+ return !! ( anchorRef as PopoverAnchorRefTopBottom )?.top;
145
+ }
191
146
 
192
- return resultingReferenceOwnerDoc ?? fallbackDocument;
193
- };
147
+ function isRef(
148
+ anchorRef: PopoverProps[ 'anchorRef' ]
149
+ ): anchorRef is PopoverAnchorRefReference {
150
+ return !! ( anchorRef as PopoverAnchorRefReference )?.current;
151
+ }
194
152
 
195
153
  export const getReferenceElement = ( {
196
154
  anchor,
@@ -208,19 +166,15 @@ export const getReferenceElement = ( {
208
166
 
209
167
  if ( anchor ) {
210
168
  referenceElement = anchor;
211
- } else if ( ( anchorRef as PopoverAnchorRefTopBottom | undefined )?.top ) {
169
+ } else if ( isTopBottom( anchorRef ) ) {
212
170
  // Create a virtual element for the ref. The expectation is that
213
171
  // if anchorRef.top is defined, then anchorRef.bottom is defined too.
214
172
  // Seems to be used by the block toolbar, when multiple blocks are selected
215
173
  // (top and bottom blocks are used to calculate the resulting rect).
216
174
  referenceElement = {
217
175
  getBoundingClientRect() {
218
- const topRect = (
219
- anchorRef as PopoverAnchorRefTopBottom
220
- ).top.getBoundingClientRect();
221
- const bottomRect = (
222
- anchorRef as PopoverAnchorRefTopBottom
223
- ).bottom.getBoundingClientRect();
176
+ const topRect = anchorRef.top.getBoundingClientRect();
177
+ const bottomRect = anchorRef.bottom.getBoundingClientRect();
224
178
  return new window.DOMRect(
225
179
  topRect.x,
226
180
  topRect.y,
@@ -229,12 +183,10 @@ export const getReferenceElement = ( {
229
183
  );
230
184
  },
231
185
  };
232
- } else if (
233
- ( anchorRef as PopoverAnchorRefReference | undefined )?.current
234
- ) {
186
+ } else if ( isRef( anchorRef ) ) {
235
187
  // Standard React ref.
236
- referenceElement = ( anchorRef as PopoverAnchorRefReference ).current;
237
- } else if ( anchorRef as Element | undefined ) {
188
+ referenceElement = anchorRef.current;
189
+ } else if ( anchorRef ) {
238
190
  // If `anchorRef` holds directly the element's value (no `current` key)
239
191
  // This is a weird scenario and should be deprecated.
240
192
  referenceElement = anchorRef as Element;
@@ -90,6 +90,13 @@ If true, the label will not be visible, but will be read by screen readers. Defa
90
90
  - Type: `Boolean`
91
91
  - Required: No
92
92
 
93
+ #### `size`: `'default'` | `'compact'`
94
+
95
+ The size of the component.
96
+
97
+ - Required: No
98
+ - Default: `'default'`
99
+
93
100
  ## Related components
94
101
 
95
102
  - To offer users more constrained options for input, use TextControl, SelectControl, RadioControl, CheckboxControl, or RangeControl.
@@ -23,6 +23,7 @@ import type { ForwardedRef } from 'react';
23
23
  function UnforwardedSearchControl(
24
24
  {
25
25
  __nextHasNoMarginBottom,
26
+ __next40pxDefaultSize = false,
26
27
  className,
27
28
  onChange,
28
29
  onKeyDown,
@@ -32,6 +33,7 @@ function UnforwardedSearchControl(
32
33
  hideLabelFromVision = true,
33
34
  help,
34
35
  onClose,
36
+ size = 'default',
35
37
  ...restProps
36
38
  }: WordPressComponentProps< SearchControlProps, 'input', false >,
37
39
  forwardedRef: ForwardedRef< HTMLInputElement >
@@ -44,9 +46,11 @@ function UnforwardedSearchControl(
44
46
  if ( onClose ) {
45
47
  return (
46
48
  <Button
49
+ __next40pxDefaultSize={ __next40pxDefaultSize }
47
50
  icon={ closeSmall }
48
51
  label={ __( 'Close search' ) }
49
52
  onClick={ onClose }
53
+ size={ size }
50
54
  />
51
55
  );
52
56
  }
@@ -54,12 +58,14 @@ function UnforwardedSearchControl(
54
58
  if ( !! value ) {
55
59
  return (
56
60
  <Button
61
+ __next40pxDefaultSize={ __next40pxDefaultSize }
57
62
  icon={ closeSmall }
58
63
  label={ __( 'Reset search' ) }
59
64
  onClick={ () => {
60
65
  onChange( '' );
61
66
  searchRef.current?.focus();
62
67
  } }
68
+ size={ size }
63
69
  />
64
70
  );
65
71
  }
@@ -74,7 +80,10 @@ function UnforwardedSearchControl(
74
80
  id={ id }
75
81
  hideLabelFromVision={ hideLabelFromVision }
76
82
  help={ help }
77
- className={ classnames( className, 'components-search-control' ) }
83
+ className={ classnames( className, 'components-search-control', {
84
+ 'is-next-40px-default-size': __next40pxDefaultSize,
85
+ 'is-size-compact': size === 'compact',
86
+ } ) }
78
87
  >
79
88
  <div className="components-search-control__input-wrapper">
80
89
  <input
@@ -4,7 +4,7 @@
4
4
  input[type="search"].components-search-control__input {
5
5
  @include input-control;
6
6
  display: block;
7
- padding: $grid-unit-20 $grid-unit-60 $grid-unit-20 $grid-unit-20;
7
+ padding: 0 $grid-unit-60 0 $grid-unit-20;
8
8
  background: $gray-100;
9
9
  border: none;
10
10
  width: 100%;
@@ -36,21 +36,28 @@
36
36
  -webkit-appearance: none;
37
37
  }
38
38
  }
39
+
40
+ &.is-next-40px-default-size input[type="search"].components-search-control__input {
41
+ height: $grid-unit-50;
42
+ }
43
+
44
+ &.is-size-compact input[type="search"].components-search-control__input {
45
+ height: $grid-unit-40;
46
+ }
47
+
39
48
  }
40
49
 
41
50
  .components-search-control__icon {
42
51
  position: absolute;
43
- top: 0;
44
- width: $icon-size;
45
52
  right: ( $grid-unit-60 - $icon-size ) * 0.5;
46
- bottom: 0;
53
+ top: 50%;
54
+ transform: translateY(-50%);
55
+
47
56
  display: flex;
48
57
  align-items: center;
49
58
  justify-content: center;
50
59
 
51
- > svg {
52
- margin: $grid-unit-10 0;
53
- }
60
+ width: $icon-size;
54
61
  }
55
62
 
56
63
  .components-search-control__input-wrapper {
@@ -40,4 +40,16 @@ export type SearchControlProps = Pick<
40
40
  * The current value of the input.
41
41
  */
42
42
  value?: string;
43
+ /**
44
+ * The size of the component
45
+ *
46
+ * @default 'default'
47
+ */
48
+ size?: 'default' | 'compact';
49
+ /**
50
+ * Start opting into the larger default height that will become the default size in a future version.
51
+ *
52
+ * @default false
53
+ */
54
+ __next40pxDefaultSize?: boolean;
43
55
  };
@@ -13,6 +13,7 @@ import { wordpress, category, media } from '@wordpress/icons';
13
13
  * Internal dependencies
14
14
  */
15
15
  import TabPanel from '..';
16
+ import cleanupTooltip from '../../tooltip/test/utils';
16
17
 
17
18
  const TABS = [
18
19
  {
@@ -128,6 +129,8 @@ describe.each( [
128
129
 
129
130
  await user.unhover( allTabs[ i ] );
130
131
  }
132
+
133
+ await cleanupTooltip( user );
131
134
  } );
132
135
 
133
136
  it( 'should display a tooltip when moving the selection via the keyboard on tabs provided with an icon', async () => {
@@ -189,6 +192,8 @@ describe.each( [
189
192
  expect( mockOnSelect ).toHaveBeenLastCalledWith( 'beta' );
190
193
  expect( screen.getByText( 'Beta' ) ).toBeInTheDocument();
191
194
  expect( await getSelectedTab() ).toHaveFocus();
195
+
196
+ await cleanupTooltip( user );
192
197
  } );
193
198
  } );
194
199
 
@@ -34,7 +34,8 @@ export const highlighterText = css`
34
34
  mark {
35
35
  background: ${ COLORS.alert.yellow };
36
36
  border-radius: 2px;
37
- box-shadow: 0 0 0 1px rgba( 0, 0, 0, 0.05 ) inset,
37
+ box-shadow:
38
+ 0 0 0 1px rgba( 0, 0, 0, 0.05 ) inset,
38
39
  0 -1px 0 rgba( 0, 0, 0, 0.1 ) inset;
39
40
  }
40
41
  `;
@@ -40,8 +40,8 @@ If you would like your custom component to be themeable as a child of the `Theme
40
40
  - Grayscale:
41
41
  - `--wp-components-color-gray-100`: Used for light gray backgrounds.
42
42
  - `--wp-components-color-gray-200`: Used sparingly for light borders.
43
- - `--wp-components-color-gray-300`: Used for most borders.
44
- - `--wp-components-color-gray-400`
45
- - `--wp-components-color-gray-600`: Meets 3:1 UI or large text contrast against white.
46
- - `--wp-components-color-gray-700`: Meets 4.6:1 text contrast against white.
47
- - `--wp-components-color-gray-800`
43
+ - `--wp-components-color-gray-300`: Used for most borders.
44
+ - `--wp-components-color-gray-400`
45
+ - `--wp-components-color-gray-600`: Meets 3:1 UI or large text contrast against white.
46
+ - `--wp-components-color-gray-700`: Meets 4.6:1 text contrast against white.
47
+ - `--wp-components-color-gray-800`