@wordpress/components 25.15.1-next.79a6196f.0 → 25.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/CHANGELOG.md +27 -2
  2. package/build/border-box-control/border-box-control/component.js.map +1 -1
  3. package/build/border-box-control/border-box-control/hook.js +3 -1
  4. package/build/border-box-control/border-box-control/hook.js.map +1 -1
  5. package/build/border-box-control/types.js.map +1 -1
  6. package/build/border-control/border-control/component.js +5 -1
  7. package/build/border-control/border-control/component.js.map +1 -1
  8. package/build/border-control/border-control/hook.js +18 -15
  9. package/build/border-control/border-control/hook.js.map +1 -1
  10. package/build/border-control/border-control-dropdown/component.js +2 -1
  11. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  12. package/build/border-control/border-control-style-picker/component.js +21 -49
  13. package/build/border-control/border-control-style-picker/component.js.map +1 -1
  14. package/build/border-control/styles.js +15 -27
  15. package/build/border-control/styles.js.map +1 -1
  16. package/build/border-control/types.js.map +1 -1
  17. package/build/box-control/all-input-control.js +35 -29
  18. package/build/box-control/all-input-control.js.map +1 -1
  19. package/build/box-control/axial-input-controls.js +40 -54
  20. package/build/box-control/axial-input-controls.js.map +1 -1
  21. package/build/box-control/index.js +21 -24
  22. package/build/box-control/index.js.map +1 -1
  23. package/build/box-control/input-controls.js +45 -37
  24. package/build/box-control/input-controls.js.map +1 -1
  25. package/build/box-control/styles/box-control-styles.js +50 -112
  26. package/build/box-control/styles/box-control-styles.js.map +1 -1
  27. package/build/box-control/types.js.map +1 -1
  28. package/build/box-control/utils.js +123 -8
  29. package/build/box-control/utils.js.map +1 -1
  30. package/build/button/index.js +14 -16
  31. package/build/button/index.js.map +1 -1
  32. package/build/button/types.js.map +1 -1
  33. package/build/color-picker/hsl-input.js +55 -33
  34. package/build/color-picker/hsl-input.js.map +1 -1
  35. package/build/custom-select-control-v2/index.js +3 -2
  36. package/build/custom-select-control-v2/index.js.map +1 -1
  37. package/build/slot-fill/bubbles-virtually/use-slot-fills.js +1 -1
  38. package/build/slot-fill/bubbles-virtually/use-slot-fills.js.map +1 -1
  39. package/build/theme/styles.js +11 -6
  40. package/build/theme/styles.js.map +1 -1
  41. package/build/toggle-group-control/toggle-group-control/utils.js +7 -1
  42. package/build/toggle-group-control/toggle-group-control/utils.js.map +1 -1
  43. package/build/tooltip/index.js +15 -12
  44. package/build/tooltip/index.js.map +1 -1
  45. package/build/tooltip/types.js.map +1 -1
  46. package/build-module/border-box-control/border-box-control/component.js.map +1 -1
  47. package/build-module/border-box-control/border-box-control/hook.js +3 -1
  48. package/build-module/border-box-control/border-box-control/hook.js.map +1 -1
  49. package/build-module/border-box-control/types.js.map +1 -1
  50. package/build-module/border-control/border-control/component.js +5 -1
  51. package/build-module/border-control/border-control/component.js.map +1 -1
  52. package/build-module/border-control/border-control/hook.js +18 -15
  53. package/build-module/border-control/border-control/hook.js.map +1 -1
  54. package/build-module/border-control/border-control-dropdown/component.js +2 -1
  55. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  56. package/build-module/border-control/border-control-style-picker/component.js +21 -48
  57. package/build-module/border-control/border-control-style-picker/component.js.map +1 -1
  58. package/build-module/border-control/styles.js +14 -24
  59. package/build-module/border-control/styles.js.map +1 -1
  60. package/build-module/border-control/types.js.map +1 -1
  61. package/build-module/box-control/all-input-control.js +38 -28
  62. package/build-module/box-control/all-input-control.js.map +1 -1
  63. package/build-module/box-control/axial-input-controls.js +42 -57
  64. package/build-module/box-control/axial-input-controls.js.map +1 -1
  65. package/build-module/box-control/index.js +22 -25
  66. package/build-module/box-control/index.js.map +1 -1
  67. package/build-module/box-control/input-controls.js +47 -40
  68. package/build-module/box-control/input-controls.js.map +1 -1
  69. package/build-module/box-control/styles/box-control-styles.js +45 -105
  70. package/build-module/box-control/styles/box-control-styles.js.map +1 -1
  71. package/build-module/box-control/types.js.map +1 -1
  72. package/build-module/box-control/utils.js +121 -7
  73. package/build-module/box-control/utils.js.map +1 -1
  74. package/build-module/button/index.js +14 -16
  75. package/build-module/button/index.js.map +1 -1
  76. package/build-module/button/types.js.map +1 -1
  77. package/build-module/color-picker/hsl-input.js +55 -33
  78. package/build-module/color-picker/hsl-input.js.map +1 -1
  79. package/build-module/custom-select-control-v2/index.js +3 -2
  80. package/build-module/custom-select-control-v2/index.js.map +1 -1
  81. package/build-module/slot-fill/bubbles-virtually/use-slot-fills.js +1 -1
  82. package/build-module/slot-fill/bubbles-virtually/use-slot-fills.js.map +1 -1
  83. package/build-module/theme/styles.js +11 -2
  84. package/build-module/theme/styles.js.map +1 -1
  85. package/build-module/toggle-group-control/toggle-group-control/utils.js +7 -1
  86. package/build-module/toggle-group-control/toggle-group-control/utils.js.map +1 -1
  87. package/build-module/tooltip/index.js +16 -13
  88. package/build-module/tooltip/index.js.map +1 -1
  89. package/build-module/tooltip/types.js.map +1 -1
  90. package/build-style/style-rtl.css +6 -4
  91. package/build-style/style.css +6 -4
  92. package/build-types/border-box-control/border-box-control/component.d.ts +1 -0
  93. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  94. package/build-types/border-box-control/border-box-control/hook.d.ts +4 -4
  95. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  96. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +5 -5
  97. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +4 -4
  98. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +4 -4
  99. package/build-types/border-box-control/stories/index.story.d.ts +2 -1
  100. package/build-types/border-box-control/stories/index.story.d.ts.map +1 -1
  101. package/build-types/border-box-control/types.d.ts +6 -0
  102. package/build-types/border-box-control/types.d.ts.map +1 -1
  103. package/build-types/border-control/border-control/component.d.ts +1 -0
  104. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  105. package/build-types/border-control/border-control/hook.d.ts +6 -4
  106. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  107. package/build-types/border-control/border-control-dropdown/component.d.ts +1 -0
  108. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  109. package/build-types/border-control/border-control-dropdown/hook.d.ts +5 -4
  110. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  111. package/build-types/border-control/border-control-style-picker/component.d.ts +3 -4
  112. package/build-types/border-control/border-control-style-picker/component.d.ts.map +1 -1
  113. package/build-types/border-control/stories/index.story.d.ts +12 -6
  114. package/build-types/border-control/stories/index.story.d.ts.map +1 -1
  115. package/build-types/border-control/styles.d.ts +0 -2
  116. package/build-types/border-control/styles.d.ts.map +1 -1
  117. package/build-types/border-control/types.d.ts +12 -1
  118. package/build-types/border-control/types.d.ts.map +1 -1
  119. package/build-types/box-control/all-input-control.d.ts +1 -1
  120. package/build-types/box-control/all-input-control.d.ts.map +1 -1
  121. package/build-types/box-control/axial-input-controls.d.ts +1 -1
  122. package/build-types/box-control/axial-input-controls.d.ts.map +1 -1
  123. package/build-types/box-control/index.d.ts +1 -1
  124. package/build-types/box-control/index.d.ts.map +1 -1
  125. package/build-types/box-control/input-controls.d.ts +1 -1
  126. package/build-types/box-control/input-controls.d.ts.map +1 -1
  127. package/build-types/box-control/stories/index.story.d.ts +42 -36
  128. package/build-types/box-control/stories/index.story.d.ts.map +1 -1
  129. package/build-types/box-control/styles/box-control-styles.d.ts +49 -23
  130. package/build-types/box-control/styles/box-control-styles.d.ts.map +1 -1
  131. package/build-types/box-control/types.d.ts +12 -12
  132. package/build-types/box-control/types.d.ts.map +1 -1
  133. package/build-types/box-control/utils.d.ts +2 -1
  134. package/build-types/box-control/utils.d.ts.map +1 -1
  135. package/build-types/button/deprecated.d.ts +3 -3
  136. package/build-types/button/index.d.ts.map +1 -1
  137. package/build-types/button/types.d.ts +7 -3
  138. package/build-types/button/types.d.ts.map +1 -1
  139. package/build-types/card/card/hook.d.ts +4 -4
  140. package/build-types/card/card-body/hook.d.ts +4 -4
  141. package/build-types/card/card-divider/hook.d.ts +4 -4
  142. package/build-types/card/card-footer/hook.d.ts +4 -4
  143. package/build-types/card/card-header/hook.d.ts +4 -4
  144. package/build-types/card/card-media/hook.d.ts +4 -4
  145. package/build-types/color-palette/styles.d.ts +2 -2
  146. package/build-types/color-picker/component.d.ts +1 -1
  147. package/build-types/color-picker/hsl-input.d.ts.map +1 -1
  148. package/build-types/color-picker/stories/index.story.d.ts +1 -1
  149. package/build-types/color-picker/styles.d.ts +3 -3
  150. package/build-types/custom-select-control-v2/index.d.ts.map +1 -1
  151. package/build-types/date-time/date/styles.d.ts +3 -3
  152. package/build-types/date-time/date-time/styles.d.ts +1 -1
  153. package/build-types/date-time/time/styles.d.ts +4 -4
  154. package/build-types/elevation/hook.d.ts +4 -4
  155. package/build-types/flex/flex/hook.d.ts +4 -4
  156. package/build-types/flex/flex-block/hook.d.ts +4 -4
  157. package/build-types/flex/flex-item/hook.d.ts +4 -4
  158. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
  159. package/build-types/font-size-picker/styles.d.ts +1 -1
  160. package/build-types/grid/hook.d.ts +4 -4
  161. package/build-types/h-stack/hook.d.ts +4 -4
  162. package/build-types/heading/component.d.ts +1 -1
  163. package/build-types/heading/hook.d.ts +4 -4
  164. package/build-types/item-group/item/hook.d.ts +4 -4
  165. package/build-types/item-group/item-group/hook.d.ts +4 -4
  166. package/build-types/menu-item/index.d.ts +1 -1
  167. package/build-types/menu-item/stories/index.story.d.ts +4 -4
  168. package/build-types/navigation/styles/navigation-styles.d.ts +2 -2
  169. package/build-types/navigator/navigator-back-button/hook.d.ts +4 -4
  170. package/build-types/navigator/navigator-button/hook.d.ts +4 -4
  171. package/build-types/number-control/index.d.ts +1 -1
  172. package/build-types/number-control/stories/index.story.d.ts +1 -1
  173. package/build-types/palette-edit/styles.d.ts +3 -3
  174. package/build-types/range-control/index.d.ts +1 -1
  175. package/build-types/range-control/styles/range-control-styles.d.ts +1 -1
  176. package/build-types/resizable-box/index.d.ts +1 -1
  177. package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
  178. package/build-types/resizable-box/stories/index.story.d.ts +2 -2
  179. package/build-types/scrollable/hook.d.ts +4 -4
  180. package/build-types/spacer/hook.d.ts +4 -4
  181. package/build-types/surface/hook.d.ts +4 -4
  182. package/build-types/text/hook.d.ts +4 -4
  183. package/build-types/theme/styles.d.ts.map +1 -1
  184. package/build-types/toggle-control/stories/index.story.d.ts +2 -2
  185. package/build-types/toggle-group-control/toggle-group-control/utils.d.ts.map +1 -1
  186. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
  187. package/build-types/toolbar/toolbar-button/index.d.ts +3 -3
  188. package/build-types/tools-panel/tools-panel/hook.d.ts +4 -4
  189. package/build-types/tools-panel/tools-panel-header/hook.d.ts +4 -4
  190. package/build-types/tools-panel/tools-panel-item/hook.d.ts +4 -4
  191. package/build-types/tooltip/index.d.ts +1 -1
  192. package/build-types/tooltip/index.d.ts.map +1 -1
  193. package/build-types/tooltip/stories/index.story.d.ts +1 -1
  194. package/build-types/tooltip/stories/index.story.d.ts.map +1 -1
  195. package/build-types/tooltip/types.d.ts +1 -1
  196. package/build-types/tooltip/types.d.ts.map +1 -1
  197. package/build-types/truncate/hook.d.ts +4 -4
  198. package/build-types/unit-control/index.d.ts +1 -1
  199. package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -1
  200. package/build-types/v-stack/hook.d.ts +4 -4
  201. package/build-types/v-stack/stories/index.story.d.ts +1 -1
  202. package/package.json +19 -19
  203. package/src/border-box-control/border-box-control/component.tsx +0 -1
  204. package/src/border-box-control/border-box-control/hook.ts +5 -1
  205. package/src/border-box-control/types.ts +6 -0
  206. package/src/border-control/border-control/component.tsx +4 -0
  207. package/src/border-control/border-control/hook.ts +22 -16
  208. package/src/border-control/border-control-dropdown/component.tsx +2 -1
  209. package/src/border-control/border-control-style-picker/component.tsx +31 -66
  210. package/src/border-control/styles.ts +0 -15
  211. package/src/border-control/types.ts +15 -1
  212. package/src/box-control/all-input-control.tsx +57 -34
  213. package/src/box-control/axial-input-controls.tsx +79 -69
  214. package/src/box-control/index.tsx +47 -54
  215. package/src/box-control/input-controls.tsx +114 -83
  216. package/src/box-control/styles/box-control-styles.ts +21 -61
  217. package/src/box-control/test/index.tsx +126 -18
  218. package/src/box-control/types.ts +10 -21
  219. package/src/box-control/utils.ts +43 -8
  220. package/src/button/README.md +1 -1
  221. package/src/button/index.tsx +21 -33
  222. package/src/button/test/index.tsx +122 -0
  223. package/src/button/types.ts +7 -3
  224. package/src/circular-option-picker/test/index.tsx +10 -16
  225. package/src/color-picker/hsl-input.tsx +56 -30
  226. package/src/color-picker/test/index.tsx +190 -16
  227. package/src/custom-select-control-v2/index.tsx +5 -2
  228. package/src/palette-edit/test/index.tsx +326 -10
  229. package/src/slot-fill/bubbles-virtually/use-slot-fills.ts +1 -1
  230. package/src/tabs/test/index.tsx +3 -1
  231. package/src/theme/styles.ts +3 -1
  232. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +6 -6
  233. package/src/toggle-group-control/test/index.tsx +73 -36
  234. package/src/toggle-group-control/toggle-group-control/utils.ts +8 -3
  235. package/src/tooltip/index.tsx +29 -29
  236. package/src/tooltip/test/index.tsx +32 -13
  237. package/src/tooltip/types.ts +1 -1
  238. package/tsconfig.tsbuildinfo +1 -1
  239. package/build/border-control/border-control-style-picker/hook.js +0 -41
  240. package/build/border-control/border-control-style-picker/hook.js.map +0 -1
  241. package/build/box-control/styles/box-control-visualizer-styles.js +0 -93
  242. package/build/box-control/styles/box-control-visualizer-styles.js.map +0 -1
  243. package/build/box-control/unit-control.js +0 -76
  244. package/build/box-control/unit-control.js.map +0 -1
  245. package/build-module/border-control/border-control-style-picker/hook.js +0 -32
  246. package/build-module/border-control/border-control-style-picker/hook.js.map +0 -1
  247. package/build-module/box-control/styles/box-control-visualizer-styles.js +0 -86
  248. package/build-module/box-control/styles/box-control-visualizer-styles.js.map +0 -1
  249. package/build-module/box-control/unit-control.js +0 -68
  250. package/build-module/box-control/unit-control.js.map +0 -1
  251. package/build-types/border-control/border-control-style-picker/hook.d.ts +0 -267
  252. package/build-types/border-control/border-control-style-picker/hook.d.ts.map +0 -1
  253. package/build-types/box-control/styles/box-control-visualizer-styles.d.ts +0 -46
  254. package/build-types/box-control/styles/box-control-visualizer-styles.d.ts.map +0 -1
  255. package/build-types/box-control/unit-control.d.ts +0 -4
  256. package/build-types/box-control/unit-control.d.ts.map +0 -1
  257. package/src/border-control/border-control-style-picker/hook.ts +0 -35
  258. package/src/box-control/styles/box-control-visualizer-styles.ts +0 -75
  259. package/src/box-control/unit-control.tsx +0 -74
@@ -8,21 +8,27 @@ import * as Ariakit from '@ariakit/react';
8
8
  * WordPress dependencies
9
9
  */
10
10
  import { useInstanceId } from '@wordpress/compose';
11
- import { Children, cloneElement } from '@wordpress/element';
11
+ import {
12
+ Children,
13
+ useContext,
14
+ createContext,
15
+ forwardRef,
16
+ } from '@wordpress/element';
12
17
  import deprecated from '@wordpress/deprecated';
13
18
 
14
19
  /**
15
20
  * Internal dependencies
16
21
  */
17
- import type { TooltipProps, TooltipInternalContext } from './types';
22
+ import type {
23
+ TooltipProps,
24
+ TooltipInternalContext as TooltipInternalContextType,
25
+ } from './types';
18
26
  import Shortcut from '../shortcut';
19
27
  import { positionToPlacement } from '../popover/utils';
20
- import {
21
- contextConnect,
22
- useContextSystem,
23
- ContextSystemProvider,
24
- } from '../context';
25
- import type { WordPressComponentProps } from '../context';
28
+
29
+ const TooltipInternalContext = createContext< TooltipInternalContextType >( {
30
+ isNestedInTooltip: false,
31
+ } );
26
32
 
27
33
  /**
28
34
  * Time over anchor to wait before showing tooltip
@@ -30,13 +36,11 @@ import type { WordPressComponentProps } from '../context';
30
36
  export const TOOLTIP_DELAY = 700;
31
37
 
32
38
  const CONTEXT_VALUE = {
33
- Tooltip: {
34
- isNestedInTooltip: true,
35
- },
39
+ isNestedInTooltip: true,
36
40
  };
37
41
 
38
- function UnconnectedTooltip(
39
- props: WordPressComponentProps< TooltipProps, 'div', false >,
42
+ function UnforwardedTooltip(
43
+ props: TooltipProps,
40
44
  ref: React.ForwardedRef< any >
41
45
  ) {
42
46
  const {
@@ -48,14 +52,10 @@ function UnconnectedTooltip(
48
52
  shortcut,
49
53
  text,
50
54
 
51
- // From Internal Context system
52
- isNestedInTooltip,
53
-
54
55
  ...restProps
55
- } = useContextSystem< typeof props & TooltipInternalContext >(
56
- props,
57
- 'Tooltip'
58
- );
56
+ } = props;
57
+
58
+ const { isNestedInTooltip } = useContext( TooltipInternalContext );
59
59
 
60
60
  const baseId = useInstanceId( Tooltip, 'tooltip' );
61
61
  const describedById = text || shortcut ? baseId : undefined;
@@ -96,16 +96,15 @@ function UnconnectedTooltip(
96
96
  } );
97
97
 
98
98
  if ( isNestedInTooltip ) {
99
- return isOnlyChild
100
- ? cloneElement( children, {
101
- ...restProps,
102
- ref,
103
- } )
104
- : children;
99
+ return isOnlyChild ? (
100
+ <Ariakit.Role { ...restProps } render={ children } />
101
+ ) : (
102
+ children
103
+ );
105
104
  }
106
105
 
107
106
  return (
108
- <ContextSystemProvider value={ CONTEXT_VALUE }>
107
+ <TooltipInternalContext.Provider value={ CONTEXT_VALUE }>
109
108
  <Ariakit.TooltipAnchor
110
109
  onClick={ hideOnClick ? tooltipStore.hide : undefined }
111
110
  store={ tooltipStore }
@@ -117,6 +116,7 @@ function UnconnectedTooltip(
117
116
  { isOnlyChild && ( text || shortcut ) && (
118
117
  <Ariakit.Tooltip
119
118
  { ...restProps }
119
+ className="components-tooltip"
120
120
  unmountOnHide
121
121
  gutter={ 4 }
122
122
  id={ describedById }
@@ -134,10 +134,10 @@ function UnconnectedTooltip(
134
134
  ) }
135
135
  </Ariakit.Tooltip>
136
136
  ) }
137
- </ContextSystemProvider>
137
+ </TooltipInternalContext.Provider>
138
138
  );
139
139
  }
140
140
 
141
- export const Tooltip = contextConnect( UnconnectedTooltip, 'Tooltip' );
141
+ export const Tooltip = forwardRef( UnforwardedTooltip );
142
142
 
143
143
  export default Tooltip;
@@ -12,12 +12,11 @@ import { shortcutAriaLabel } from '@wordpress/keycodes';
12
12
  /**
13
13
  * Internal dependencies
14
14
  */
15
- import Button from '../../button';
16
15
  import Modal from '../../modal';
17
16
  import Tooltip, { TOOLTIP_DELAY } from '..';
18
17
 
19
18
  const props = {
20
- children: <Button>Tooltip anchor</Button>,
19
+ children: <button>Tooltip anchor</button>,
21
20
  text: 'tooltip text',
22
21
  };
23
22
 
@@ -56,8 +55,8 @@ describe( 'Tooltip', () => {
56
55
  render(
57
56
  // @ts-expect-error Tooltip cannot have more than one child element
58
57
  <Tooltip { ...props }>
59
- <Button>First button</Button>
60
- <Button>Second button</Button>
58
+ <button>First button</button>
59
+ <button>Second button</button>
61
60
  </Tooltip>
62
61
  );
63
62
 
@@ -102,6 +101,17 @@ describe( 'Tooltip', () => {
102
101
  screen.queryByRole( 'button', { description: 'tooltip text' } )
103
102
  ).not.toBeInTheDocument();
104
103
  } );
104
+
105
+ it( 'should not leak Tooltip props to the tooltip anchor', () => {
106
+ render(
107
+ <Tooltip data-foo>
108
+ <button>Anchor</button>
109
+ </Tooltip>
110
+ );
111
+ expect(
112
+ screen.getByRole( 'button', { name: 'Anchor' } )
113
+ ).not.toHaveAttribute( 'data-foo' );
114
+ } );
105
115
  } );
106
116
 
107
117
  describe( 'keyboard focus', () => {
@@ -142,9 +152,7 @@ describe( 'Tooltip', () => {
142
152
  render(
143
153
  <>
144
154
  <Tooltip { ...props }>
145
- <Button disabled __experimentalIsFocusable>
146
- Tooltip anchor
147
- </Button>
155
+ <button aria-disabled="true">Tooltip anchor</button>
148
156
  </Tooltip>
149
157
  <button>Focus me</button>
150
158
  </>
@@ -196,9 +204,7 @@ describe( 'Tooltip', () => {
196
204
  render(
197
205
  <>
198
206
  <Tooltip { ...props }>
199
- <Button disabled __experimentalIsFocusable>
200
- Tooltip anchor
201
- </Button>
207
+ <button aria-disabled="true">Tooltip anchor</button>
202
208
  </Tooltip>
203
209
  <button>Focus me</button>
204
210
  </>
@@ -310,12 +316,12 @@ describe( 'Tooltip', () => {
310
316
 
311
317
  render(
312
318
  <Tooltip { ...props }>
313
- <Button
319
+ <button
314
320
  onMouseEnter={ onMouseEnterMock }
315
321
  onMouseLeave={ onMouseLeaveMock }
316
322
  >
317
323
  Tooltip anchor
318
- </Button>
324
+ </button>
319
325
  </Tooltip>
320
326
  );
321
327
 
@@ -443,7 +449,7 @@ describe( 'Tooltip', () => {
443
449
  <Tooltip text="Outer tooltip">
444
450
  <Tooltip text="Middle tooltip">
445
451
  <Tooltip text="Inner tooltip">
446
- <Button>Tooltip anchor</Button>
452
+ <button>Tooltip anchor</button>
447
453
  </Tooltip>
448
454
  </Tooltip>
449
455
  </Tooltip>
@@ -481,5 +487,18 @@ describe( 'Tooltip', () => {
481
487
  ).not.toBeInTheDocument()
482
488
  );
483
489
  } );
490
+
491
+ it( 'should not leak Tooltip component classname to the anchor element', () => {
492
+ render(
493
+ <Tooltip>
494
+ <Tooltip>
495
+ <button>Anchor</button>
496
+ </Tooltip>
497
+ </Tooltip>
498
+ );
499
+ expect(
500
+ screen.getByRole( 'button', { name: 'Anchor' } )
501
+ ).not.toHaveClass( 'components-tooltip' );
502
+ } );
484
503
  } );
485
504
  } );
@@ -61,5 +61,5 @@ export type TooltipProps = {
61
61
  };
62
62
 
63
63
  export type TooltipInternalContext = {
64
- isNestedInTooltip?: boolean;
64
+ isNestedInTooltip: boolean;
65
65
  };