@wordpress/components 21.2.0 → 21.3.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 (302) hide show
  1. package/CHANGELOG.md +35 -3
  2. package/CONTRIBUTING.md +20 -0
  3. package/build/border-box-control/border-box-control/component.js +2 -0
  4. package/build/border-box-control/border-box-control/component.js.map +1 -1
  5. package/build/border-box-control/border-box-control/hook.js +4 -1
  6. package/build/border-box-control/border-box-control/hook.js.map +1 -1
  7. package/build/border-control/border-control/component.js +2 -0
  8. package/build/border-control/border-control/component.js.map +1 -1
  9. package/build/disabled/index.js +6 -26
  10. package/build/disabled/index.js.map +1 -1
  11. package/build/font-size-picker/index.js +1 -1
  12. package/build/font-size-picker/index.js.map +1 -1
  13. package/build/font-size-picker/styles.js +5 -13
  14. package/build/font-size-picker/styles.js.map +1 -1
  15. package/build/font-size-picker/utils.js +1 -1
  16. package/build/font-size-picker/utils.js.map +1 -1
  17. package/build/form-token-field/suggestions-list.js +5 -5
  18. package/build/form-token-field/suggestions-list.js.map +1 -1
  19. package/build/higher-order/with-fallback-styles/index.js +1 -1
  20. package/build/higher-order/with-fallback-styles/index.js.map +1 -1
  21. package/build/index.js +8 -6
  22. package/build/index.js.map +1 -1
  23. package/build/modal/aria-helper.js +2 -3
  24. package/build/modal/aria-helper.js.map +1 -1
  25. package/build/modal/index.js +42 -11
  26. package/build/modal/index.js.map +1 -1
  27. package/build/modal/types.js +6 -0
  28. package/build/modal/types.js.map +1 -0
  29. package/build/navigator/index.js +8 -8
  30. package/build/navigator/index.js.map +1 -1
  31. package/build/navigator/navigator-back-button/component.js +5 -4
  32. package/build/navigator/navigator-back-button/component.js.map +1 -1
  33. package/build/navigator/navigator-back-button/index.js +1 -1
  34. package/build/navigator/navigator-back-button/index.js.map +1 -1
  35. package/build/navigator/navigator-button/component.js +5 -4
  36. package/build/navigator/navigator-button/component.js.map +1 -1
  37. package/build/navigator/navigator-button/index.js +1 -1
  38. package/build/navigator/navigator-button/index.js.map +1 -1
  39. package/build/navigator/navigator-provider/component.js +10 -7
  40. package/build/navigator/navigator-provider/component.js.map +1 -1
  41. package/build/navigator/navigator-provider/index.js +1 -1
  42. package/build/navigator/navigator-provider/index.js.map +1 -1
  43. package/build/navigator/navigator-screen/component.js +24 -27
  44. package/build/navigator/navigator-screen/component.js.map +1 -1
  45. package/build/navigator/navigator-screen/index.js +1 -1
  46. package/build/navigator/navigator-screen/index.js.map +1 -1
  47. package/build/sandbox/index.js +55 -59
  48. package/build/sandbox/index.js.map +1 -1
  49. package/build/sandbox/index.native.js +63 -62
  50. package/build/sandbox/index.native.js.map +1 -1
  51. package/build/slot-fill/bubbles-virtually/slot-fill-provider.js +1 -1
  52. package/build/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
  53. package/build/tab-panel/index.js +4 -4
  54. package/build/tab-panel/index.js.map +1 -1
  55. package/build/theme/index.js +62 -0
  56. package/build/theme/index.js.map +1 -0
  57. package/build/theme/styles.js +33 -0
  58. package/build/theme/styles.js.map +1 -0
  59. package/build/theme/types.js +6 -0
  60. package/build/theme/types.js.map +1 -0
  61. package/build/tools-panel/tools-panel/hook.js +3 -3
  62. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  63. package/build/tools-panel/tools-panel-item/hook.js +6 -6
  64. package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
  65. package/build/tooltip/index.js +4 -1
  66. package/build/tooltip/index.js.map +1 -1
  67. package/build/tooltip/index.native.js +17 -4
  68. package/build/tooltip/index.native.js.map +1 -1
  69. package/build-module/border-box-control/border-box-control/component.js +2 -0
  70. package/build-module/border-box-control/border-box-control/component.js.map +1 -1
  71. package/build-module/border-box-control/border-box-control/hook.js +4 -1
  72. package/build-module/border-box-control/border-box-control/hook.js.map +1 -1
  73. package/build-module/border-control/border-control/component.js +2 -0
  74. package/build-module/border-control/border-control/component.js.map +1 -1
  75. package/build-module/disabled/index.js +7 -26
  76. package/build-module/disabled/index.js.map +1 -1
  77. package/build-module/font-size-picker/index.js +1 -1
  78. package/build-module/font-size-picker/index.js.map +1 -1
  79. package/build-module/font-size-picker/styles.js +5 -13
  80. package/build-module/font-size-picker/styles.js.map +1 -1
  81. package/build-module/font-size-picker/utils.js +1 -1
  82. package/build-module/font-size-picker/utils.js.map +1 -1
  83. package/build-module/form-token-field/suggestions-list.js +5 -5
  84. package/build-module/form-token-field/suggestions-list.js.map +1 -1
  85. package/build-module/higher-order/with-fallback-styles/index.js +2 -2
  86. package/build-module/higher-order/with-fallback-styles/index.js.map +1 -1
  87. package/build-module/index.js +2 -1
  88. package/build-module/index.js.map +1 -1
  89. package/build-module/modal/aria-helper.js +2 -3
  90. package/build-module/modal/aria-helper.js.map +1 -1
  91. package/build-module/modal/index.js +44 -12
  92. package/build-module/modal/index.js.map +1 -1
  93. package/build-module/modal/types.js +2 -0
  94. package/build-module/modal/types.js.map +1 -0
  95. package/build-module/navigator/index.js +4 -4
  96. package/build-module/navigator/index.js.map +1 -1
  97. package/build-module/navigator/navigator-back-button/component.js +3 -3
  98. package/build-module/navigator/navigator-back-button/component.js.map +1 -1
  99. package/build-module/navigator/navigator-back-button/index.js +1 -1
  100. package/build-module/navigator/navigator-back-button/index.js.map +1 -1
  101. package/build-module/navigator/navigator-button/component.js +3 -3
  102. package/build-module/navigator/navigator-button/component.js.map +1 -1
  103. package/build-module/navigator/navigator-button/index.js +1 -1
  104. package/build-module/navigator/navigator-button/index.js.map +1 -1
  105. package/build-module/navigator/navigator-provider/component.js +8 -6
  106. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  107. package/build-module/navigator/navigator-provider/index.js +1 -1
  108. package/build-module/navigator/navigator-provider/index.js.map +1 -1
  109. package/build-module/navigator/navigator-screen/component.js +12 -26
  110. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  111. package/build-module/navigator/navigator-screen/index.js +1 -1
  112. package/build-module/navigator/navigator-screen/index.js.map +1 -1
  113. package/build-module/sandbox/index.js +56 -59
  114. package/build-module/sandbox/index.js.map +1 -1
  115. package/build-module/sandbox/index.native.js +54 -52
  116. package/build-module/sandbox/index.native.js.map +1 -1
  117. package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js +1 -1
  118. package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
  119. package/build-module/tab-panel/index.js +4 -4
  120. package/build-module/tab-panel/index.js.map +1 -1
  121. package/build-module/theme/index.js +52 -0
  122. package/build-module/theme/index.js.map +1 -0
  123. package/build-module/theme/styles.js +25 -0
  124. package/build-module/theme/styles.js.map +1 -0
  125. package/build-module/theme/types.js +2 -0
  126. package/build-module/theme/types.js.map +1 -0
  127. package/build-module/tools-panel/tools-panel/hook.js +3 -3
  128. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  129. package/build-module/tools-panel/tools-panel-item/hook.js +6 -6
  130. package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
  131. package/build-module/tooltip/index.js +4 -1
  132. package/build-module/tooltip/index.js.map +1 -1
  133. package/build-module/tooltip/index.native.js +17 -4
  134. package/build-module/tooltip/index.native.js.map +1 -1
  135. package/build-style/style-rtl.css +26 -22
  136. package/build-style/style.css +26 -22
  137. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  138. package/build-types/border-box-control/border-box-control/hook.d.ts +1 -0
  139. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  140. package/build-types/border-control/border-control/component.d.ts +1 -0
  141. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  142. package/build-types/border-control/border-control/hook.d.ts +1 -0
  143. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  144. package/build-types/border-control/stories/index.d.ts +6 -0
  145. package/build-types/border-control/stories/index.d.ts.map +1 -1
  146. package/build-types/border-control/types.d.ts +4 -0
  147. package/build-types/border-control/types.d.ts.map +1 -1
  148. package/build-types/confirm-dialog/types.d.ts +5 -1
  149. package/build-types/confirm-dialog/types.d.ts.map +1 -1
  150. package/build-types/disabled/index.d.ts.map +1 -1
  151. package/build-types/font-size-picker/styles.d.ts.map +1 -1
  152. package/build-types/modal/aria-helper.d.ts +4 -4
  153. package/build-types/modal/aria-helper.d.ts.map +1 -1
  154. package/build-types/modal/index.d.ts +35 -2
  155. package/build-types/modal/index.d.ts.map +1 -1
  156. package/build-types/modal/stories/index.d.ts +9 -0
  157. package/build-types/modal/stories/index.d.ts.map +1 -0
  158. package/build-types/modal/test/aria-helper.d.ts +2 -0
  159. package/build-types/modal/test/aria-helper.d.ts.map +1 -0
  160. package/build-types/modal/test/index.d.ts +2 -0
  161. package/build-types/modal/test/index.d.ts.map +1 -0
  162. package/build-types/modal/types.d.ts +134 -0
  163. package/build-types/modal/types.d.ts.map +1 -0
  164. package/build-types/navigator/index.d.ts +4 -4
  165. package/build-types/navigator/index.d.ts.map +1 -1
  166. package/build-types/navigator/navigator-back-button/component.d.ts +4 -2
  167. package/build-types/navigator/navigator-back-button/component.d.ts.map +1 -1
  168. package/build-types/navigator/navigator-back-button/hook.d.ts +1 -0
  169. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
  170. package/build-types/navigator/navigator-back-button/index.d.ts +1 -1
  171. package/build-types/navigator/navigator-back-button/index.d.ts.map +1 -1
  172. package/build-types/navigator/navigator-button/component.d.ts +4 -2
  173. package/build-types/navigator/navigator-button/component.d.ts.map +1 -1
  174. package/build-types/navigator/navigator-button/hook.d.ts +1 -0
  175. package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
  176. package/build-types/navigator/navigator-button/index.d.ts +1 -1
  177. package/build-types/navigator/navigator-button/index.d.ts.map +1 -1
  178. package/build-types/navigator/navigator-provider/component.d.ts +2 -2
  179. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  180. package/build-types/navigator/navigator-provider/index.d.ts +1 -1
  181. package/build-types/navigator/navigator-provider/index.d.ts.map +1 -1
  182. package/build-types/navigator/navigator-screen/component.d.ts +2 -2
  183. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  184. package/build-types/navigator/navigator-screen/index.d.ts +1 -1
  185. package/build-types/navigator/navigator-screen/index.d.ts.map +1 -1
  186. package/build-types/navigator/stories/index.d.ts +9 -0
  187. package/build-types/navigator/stories/index.d.ts.map +1 -0
  188. package/build-types/navigator/test/index.d.ts +2 -0
  189. package/build-types/navigator/test/index.d.ts.map +1 -0
  190. package/build-types/navigator/types.d.ts +4 -1
  191. package/build-types/navigator/types.d.ts.map +1 -1
  192. package/build-types/slot-fill/bubbles-virtually/slot-fill-provider.d.ts.map +1 -1
  193. package/build-types/tab-panel/index.d.ts.map +1 -1
  194. package/build-types/theme/index.d.ts +31 -0
  195. package/build-types/theme/index.d.ts.map +1 -0
  196. package/build-types/theme/stories/index.d.ts +13 -0
  197. package/build-types/theme/stories/index.d.ts.map +1 -0
  198. package/build-types/theme/styles.d.ts +10 -0
  199. package/build-types/theme/styles.d.ts.map +1 -0
  200. package/build-types/theme/test/index.d.ts +2 -0
  201. package/build-types/theme/test/index.d.ts.map +1 -0
  202. package/build-types/theme/types.d.ts +21 -0
  203. package/build-types/theme/types.d.ts.map +1 -0
  204. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  205. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  206. package/build-types/tooltip/index.d.ts.map +1 -1
  207. package/package.json +17 -17
  208. package/src/base-field/test/index.js +4 -6
  209. package/src/border-box-control/border-box-control/component.tsx +2 -0
  210. package/src/border-box-control/border-box-control/hook.ts +4 -0
  211. package/src/border-box-control/test/index.js +7 -2
  212. package/src/border-control/border-control/README.md +6 -0
  213. package/src/border-control/border-control/component.tsx +2 -0
  214. package/src/border-control/types.ts +4 -0
  215. package/src/button/style.scss +25 -25
  216. package/src/button/test/index.js +3 -5
  217. package/src/combobox-control/test/index.js +1 -1
  218. package/src/confirm-dialog/types.ts +6 -0
  219. package/src/date-time/time/test/index.tsx +2 -6
  220. package/src/disabled/index.tsx +11 -33
  221. package/src/disabled/test/index.tsx +14 -82
  222. package/src/dropdown/test/index.js +4 -3
  223. package/src/font-size-picker/index.tsx +1 -1
  224. package/src/font-size-picker/styles.ts +3 -1
  225. package/src/font-size-picker/test/index.tsx +2 -2
  226. package/src/font-size-picker/test/utils.ts +5 -5
  227. package/src/font-size-picker/utils.ts +1 -1
  228. package/src/form-file-upload/test/index.tsx +1 -1
  229. package/src/form-token-field/suggestions-list.tsx +5 -5
  230. package/src/higher-order/with-fallback-styles/index.js +6 -2
  231. package/src/higher-order/with-focus-outside/test/index.js +44 -45
  232. package/src/higher-order/with-focus-return/test/index.js +34 -30
  233. package/src/higher-order/with-notices/test/index.js +1 -1
  234. package/src/index.js +2 -1
  235. package/src/input-control/test/index.js +2 -2
  236. package/src/item-group/test/index.js +2 -2
  237. package/src/menu-item/test/index.js +0 -3
  238. package/src/mobile/bottom-sheet/test/range-cell.native.js +16 -14
  239. package/src/modal/README.md +53 -54
  240. package/src/modal/{aria-helper.js → aria-helper.ts} +5 -7
  241. package/src/modal/{index.js → index.tsx} +48 -12
  242. package/src/modal/stories/{index.js → index.tsx} +47 -42
  243. package/src/modal/test/{aria-helper.js → aria-helper.ts} +0 -0
  244. package/src/modal/test/{index.js → index.tsx} +13 -3
  245. package/src/modal/types.ts +144 -0
  246. package/src/navigation/test/index.js +1 -1
  247. package/src/navigator/index.ts +4 -4
  248. package/src/navigator/navigator-back-button/component.tsx +4 -4
  249. package/src/navigator/navigator-back-button/index.ts +1 -1
  250. package/src/navigator/navigator-button/component.tsx +4 -4
  251. package/src/navigator/navigator-button/index.ts +1 -1
  252. package/src/navigator/navigator-provider/component.tsx +6 -4
  253. package/src/navigator/navigator-provider/index.ts +1 -1
  254. package/src/navigator/navigator-screen/component.tsx +20 -26
  255. package/src/navigator/navigator-screen/index.ts +1 -1
  256. package/src/navigator/stories/index.tsx +210 -0
  257. package/src/navigator/test/index.tsx +509 -0
  258. package/src/navigator/types.ts +2 -0
  259. package/src/notice/test/__snapshots__/index.js.snap +39 -38
  260. package/src/notice/test/index.js +15 -36
  261. package/src/notice/test/list.js +6 -14
  262. package/src/number-control/test/index.js +3 -2
  263. package/src/panel/test/body.js +2 -2
  264. package/src/placeholder/style.scss +5 -0
  265. package/src/sandbox/index.js +62 -47
  266. package/src/sandbox/index.native.js +72 -52
  267. package/src/sandbox/test/index.js +7 -10
  268. package/src/shortcut/test/index.tsx +1 -1
  269. package/src/slot-fill/bubbles-virtually/slot-fill-provider.js +5 -3
  270. package/src/style.scss +4 -0
  271. package/src/tab-panel/index.tsx +4 -7
  272. package/src/text-highlight/test/index.tsx +1 -3
  273. package/src/theme/README.md +34 -0
  274. package/src/theme/index.tsx +51 -0
  275. package/src/theme/stories/index.tsx +47 -0
  276. package/src/theme/styles.ts +28 -0
  277. package/src/theme/test/index.tsx +101 -0
  278. package/src/theme/types.ts +21 -0
  279. package/src/toolbar/test/index.js +2 -2
  280. package/src/toolbar-group/test/index.js +6 -10
  281. package/src/tools-panel/test/index.js +4 -6
  282. package/src/tools-panel/tools-panel/hook.ts +2 -9
  283. package/src/tools-panel/tools-panel-item/hook.ts +17 -3
  284. package/src/tooltip/index.js +3 -0
  285. package/src/tooltip/index.native.js +15 -0
  286. package/src/tooltip/test/index.native.js +1 -2
  287. package/src/tree-grid/test/__snapshots__/cell.js.snap +1 -3
  288. package/src/tree-grid/test/__snapshots__/roving-tab-index-item.js.snap +17 -15
  289. package/src/tree-grid/test/__snapshots__/row.js.snap +25 -21
  290. package/src/tree-grid/test/cell.js +4 -4
  291. package/src/tree-grid/test/roving-tab-index-item.js +8 -8
  292. package/src/tree-grid/test/roving-tab-index.js +3 -3
  293. package/src/tree-grid/test/row.js +20 -16
  294. package/src/truncate/test/index.tsx +4 -4
  295. package/src/ui/shortcut/test/index.js +2 -1
  296. package/src/ui/spinner/test/index.js +14 -13
  297. package/src/ui/tooltip/test/index.js +16 -14
  298. package/src/utils/theme-variables.scss +8 -0
  299. package/src/visually-hidden/README.md +4 -0
  300. package/tsconfig.tsbuildinfo +1 -1
  301. package/src/navigator/stories/index.js +0 -194
  302. package/src/navigator/test/index.js +0 -472
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import TestRenderer from 'react-test-renderer';
4
+ import { render } from '@testing-library/react';
5
5
 
6
6
  /**
7
7
  * WordPress dependencies
@@ -21,23 +21,23 @@ const TestButton = forwardRef( ( { ...props }, ref ) => (
21
21
  describe( 'RovingTabIndexItem', () => {
22
22
  it( 'requires RovingTabIndex to be declared as a parent component somewhere in the component hierarchy', () => {
23
23
  expect( () =>
24
- TestRenderer.create( <RovingTabIndexItem as={ TestButton } /> )
24
+ render( <RovingTabIndexItem as={ TestButton } /> )
25
25
  ).toThrow();
26
26
  expect( console ).toHaveErrored();
27
27
  } );
28
28
 
29
29
  it( 'allows another component to be specified as the rendered component using the `as` prop', () => {
30
- const renderer = TestRenderer.create(
30
+ const { container } = render(
31
31
  <RovingTabIndex>
32
32
  <RovingTabIndexItem as={ TestButton } />
33
33
  </RovingTabIndex>
34
34
  );
35
35
 
36
- expect( renderer.toJSON() ).toMatchSnapshot();
36
+ expect( container ).toMatchSnapshot();
37
37
  } );
38
38
 
39
39
  it( 'forwards props to the `as` component', () => {
40
- const renderer = TestRenderer.create(
40
+ const { container } = render(
41
41
  <RovingTabIndex>
42
42
  <RovingTabIndexItem as={ TestButton } className="my-button">
43
43
  Click Me!
@@ -45,11 +45,11 @@ describe( 'RovingTabIndexItem', () => {
45
45
  </RovingTabIndex>
46
46
  );
47
47
 
48
- expect( renderer.toJSON() ).toMatchSnapshot();
48
+ expect( container ).toMatchSnapshot();
49
49
  } );
50
50
 
51
51
  it( 'allows children to be declared using a child render function as an alternative to `as`', () => {
52
- const renderer = TestRenderer.create(
52
+ const { container } = render(
53
53
  <RovingTabIndex>
54
54
  <RovingTabIndexItem>
55
55
  { ( props ) => (
@@ -61,6 +61,6 @@ describe( 'RovingTabIndexItem', () => {
61
61
  </RovingTabIndex>
62
62
  );
63
63
 
64
- expect( renderer.toJSON() ).toMatchSnapshot();
64
+ expect( container ).toMatchSnapshot();
65
65
  } );
66
66
  } );
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import TestRenderer from 'react-test-renderer';
4
+ import { render } from '@testing-library/react';
5
5
 
6
6
  /**
7
7
  * Internal dependencies
@@ -10,12 +10,12 @@ import RovingTabIndex from '../roving-tab-index';
10
10
 
11
11
  describe( 'RovingTabIndex', () => {
12
12
  it( 'does not render any elements other than its children', () => {
13
- const renderer = TestRenderer.create(
13
+ const { container } = render(
14
14
  <RovingTabIndex>
15
15
  <div>child element</div>
16
16
  </RovingTabIndex>
17
17
  );
18
18
 
19
- expect( renderer.toJSON() ).toMatchSnapshot();
19
+ expect( container.firstChild ).toMatchSnapshot();
20
20
  } );
21
21
  } );
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import TestRenderer from 'react-test-renderer';
4
+ import { render } from '@testing-library/react';
5
5
 
6
6
  /**
7
7
  * Internal dependencies
@@ -10,31 +10,35 @@ import TreeGridRow from '../row';
10
10
 
11
11
  describe( 'TreeGridRow', () => {
12
12
  it( 'renders a tr with support for level, positionInSet and setSize props', () => {
13
- const renderer = TestRenderer.create(
13
+ const { container } = render(
14
14
  <table>
15
- <TreeGridRow level="1" positionInSet="1" setSize="1">
16
- <td>Test</td>
17
- </TreeGridRow>
15
+ <tbody>
16
+ <TreeGridRow level="1" positionInSet="1" setSize="1">
17
+ <td>Test</td>
18
+ </TreeGridRow>
19
+ </tbody>
18
20
  </table>
19
21
  );
20
22
 
21
- expect( renderer.toJSON() ).toMatchSnapshot();
23
+ expect( container.firstChild ).toMatchSnapshot();
22
24
  } );
23
25
 
24
26
  it( 'forwards other props to the rendered tr element', () => {
25
- const renderer = TestRenderer.create(
27
+ const { container } = render(
26
28
  <table>
27
- <TreeGridRow
28
- className="my-row"
29
- level="1"
30
- positionInSet="1"
31
- setSize="1"
32
- >
33
- <td>Test</td>
34
- </TreeGridRow>
29
+ <tbody>
30
+ <TreeGridRow
31
+ className="my-row"
32
+ level="1"
33
+ positionInSet="1"
34
+ setSize="1"
35
+ >
36
+ <td>Test</td>
37
+ </TreeGridRow>
38
+ </tbody>
35
39
  </table>
36
40
  );
37
41
 
38
- expect( renderer.toJSON() ).toMatchSnapshot();
42
+ expect( container.firstChild ).toMatchSnapshot();
39
43
  } );
40
44
  } );
@@ -11,7 +11,7 @@ import { Truncate } from '..';
11
11
  describe( 'props', () => {
12
12
  test( 'should render correctly', () => {
13
13
  const { container } = render( <Truncate>Lorem ipsum.</Truncate> );
14
- expect( container.firstChild?.textContent ).toEqual( 'Lorem ipsum.' );
14
+ expect( container.firstChild ).toHaveTextContent( 'Lorem ipsum.' );
15
15
  } );
16
16
 
17
17
  test( 'should render limit', () => {
@@ -20,7 +20,7 @@ describe( 'props', () => {
20
20
  Lorem ipsum.
21
21
  </Truncate>
22
22
  );
23
- expect( container.firstChild?.textContent ).toEqual( 'L…' );
23
+ expect( container.firstChild ).toHaveTextContent( 'L…' );
24
24
  } );
25
25
 
26
26
  test( 'should render custom ellipsis', () => {
@@ -29,7 +29,7 @@ describe( 'props', () => {
29
29
  Lorem ipsum.
30
30
  </Truncate>
31
31
  );
32
- expect( container.firstChild?.textContent ).toEqual( 'Lorem!!!' );
32
+ expect( container.firstChild ).toHaveTextContent( 'Lorem!!!' );
33
33
  } );
34
34
 
35
35
  test( 'should render custom ellipsizeMode', () => {
@@ -38,6 +38,6 @@ describe( 'props', () => {
38
38
  Lorem ipsum.
39
39
  </Truncate>
40
40
  );
41
- expect( container.firstChild?.textContent ).toEqual( 'Lo!!!m.' );
41
+ expect( container.firstChild ).toHaveTextContent( 'Lo!!!m.' );
42
42
  } );
43
43
  } );
@@ -28,7 +28,8 @@ describe( 'Shortcut', () => {
28
28
  };
29
29
  render( <Shortcut shortcut={ shortcutObject } /> );
30
30
  const shortcut = screen.getByText( shortcutObject.display );
31
- expect( shortcut.getAttribute( 'aria-label' ) ).toBe(
31
+ expect( shortcut ).toHaveAttribute(
32
+ 'aria-label',
32
33
  shortcutObject.ariaLabel
33
34
  );
34
35
  } );
@@ -9,27 +9,28 @@ import { render } from '@testing-library/react';
9
9
  import { Spinner } from '..';
10
10
 
11
11
  describe( 'props', () => {
12
- let base;
13
-
14
- beforeEach( () => {
15
- base = render( <Spinner /> );
16
- } );
17
-
18
12
  test( 'should render correctly', () => {
19
- expect( base.container.firstChild ).toMatchSnapshot();
13
+ const { container } = render( <Spinner /> );
14
+ expect( container.firstChild ).toMatchSnapshot();
20
15
  } );
21
16
 
22
17
  test( 'should render color', () => {
23
- const { container } = render( <Spinner color="blue" /> );
24
- expect( container.firstChild ).toMatchDiffSnapshot(
25
- base.container.firstChild
18
+ const { container } = render( <Spinner /> );
19
+ const { container: secondRenderContainer } = render(
20
+ <Spinner color="blue" />
21
+ );
22
+ expect( secondRenderContainer.firstChild ).toMatchDiffSnapshot(
23
+ container.firstChild
26
24
  );
27
25
  } );
28
26
 
29
27
  test( 'should render size', () => {
30
- const { container } = render( <Spinner size={ 31 } /> );
31
- expect( container.firstChild ).toMatchDiffSnapshot(
32
- base.container.firstChild
28
+ const { container } = render( <Spinner /> );
29
+ const { container: secondRenderContainer } = render(
30
+ <Spinner size={ 31 } />
31
+ );
32
+ expect( secondRenderContainer.firstChild ).toMatchDiffSnapshot(
33
+ container.firstChild
33
34
  );
34
35
  } );
35
36
  } );
@@ -13,20 +13,20 @@ describe( 'props', () => {
13
13
  const baseTooltipId = 'base-tooltip';
14
14
  const baseTooltipTriggerContent = 'WordPress.org - Base trigger content';
15
15
  const byId = ( id ) => ( t ) => t.id === id;
16
- beforeEach( () => {
17
- render(
18
- <Tooltip baseId={ baseTooltipId } content="Code is Poetry" visible>
19
- <Text>{ baseTooltipTriggerContent }</Text>
20
- </Tooltip>
21
- );
22
- } );
16
+ const VisibleTooltip = () => (
17
+ <Tooltip baseId={ baseTooltipId } content="Code is Poetry" visible>
18
+ <Text>{ baseTooltipTriggerContent }</Text>
19
+ </Tooltip>
20
+ );
23
21
 
24
22
  test( 'should render correctly', () => {
23
+ render( <VisibleTooltip /> );
25
24
  const tooltip = screen.getByRole( /tooltip/i );
26
25
  expect( tooltip ).toMatchSnapshot();
27
26
  } );
28
27
 
29
28
  test( 'should render invisible', () => {
29
+ render( <VisibleTooltip /> );
30
30
  const invisibleTooltipTriggerContent = 'WordPress.org - Invisible';
31
31
  render(
32
32
  <Tooltip
@@ -37,19 +37,20 @@ describe( 'props', () => {
37
37
  <Text>{ invisibleTooltipTriggerContent }</Text>
38
38
  </Tooltip>
39
39
  );
40
- const tooltips = screen.getAllByRole( /tooltip/i );
40
+ const tooltip = screen.getByRole( /tooltip/i );
41
41
  const invisibleTooltipTrigger = screen.getByText(
42
42
  invisibleTooltipTriggerContent
43
43
  );
44
- // The invisible tooltip should not render.
45
- expect( tooltips ).toHaveLength( 1 );
44
+ // The base tooltip should render only; invisible tooltip should not render.
45
+ expect( tooltip ).toBeInTheDocument();
46
46
  // Assert that the rendered tooltip is indeed the base tooltip.
47
- expect( tooltips[ 0 ].id ).toBe( baseTooltipId );
47
+ expect( tooltip.id ).toBe( baseTooltipId );
48
48
  // But the invisible tooltip's trigger still should have rendered.
49
49
  expect( invisibleTooltipTrigger ).not.toBeUndefined();
50
50
  } );
51
51
 
52
52
  test( 'should render without children', () => {
53
+ render( <VisibleTooltip /> );
53
54
  const childlessTooltipId = 'tooltip-without-children';
54
55
  render(
55
56
  <Tooltip
@@ -64,15 +65,16 @@ describe( 'props', () => {
64
65
  } );
65
66
 
66
67
  test( 'should not render a tooltip without content', () => {
68
+ render( <VisibleTooltip /> );
67
69
  const contentlessTooltipId = 'contentless-tooltip';
68
70
  render(
69
71
  <Tooltip baseId={ contentlessTooltipId } visible>
70
72
  <Text>WordPress.org</Text>
71
73
  </Tooltip>
72
74
  );
73
- const tooltips = screen.getAllByRole( /tooltip/ );
75
+ const tooltip = screen.getByRole( /tooltip/i );
74
76
  // Assert only the base tooltip rendered.
75
- expect( tooltips ).toHaveLength( 1 );
76
- expect( tooltips[ 0 ].id ).toBe( baseTooltipId );
77
+ expect( tooltip ).toBeInTheDocument();
78
+ expect( tooltip.id ).toBe( baseTooltipId );
77
79
  } );
78
80
  } );
@@ -0,0 +1,8 @@
1
+ // Accent color
2
+ //
3
+ // If the `--wp-components-color-accent` variable is not defined, fallback to
4
+ // `--wp-admin-theme-color`. If the `--wp-admin-theme-color` variable is not
5
+ // defined, fallback to the default theme color (WP blue).
6
+ $components-color-accent: var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));
7
+ $components-color-accent-darker-10: var(--wp-components-color-accent-darker-10, var(--wp-admin-theme-color-darker-10, #006ba1));
8
+ $components-color-accent-darker-20: var(--wp-components-color-accent-darker-20, var(--wp-admin-theme-color-darker-20, #005a87));
@@ -15,3 +15,7 @@ function Example() {
15
15
  );
16
16
  }
17
17
  ```
18
+
19
+ ## Best practices
20
+
21
+ The element that `VisuallyHidden` renders has the style `position: absolute`. When using this component be careful of the [stacking context](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context). Even though `VisuallyHidden` isn't visible, it can still affect layout. An example of this is that `VisuallyHidden` may ignore `overflow` styles of ancestor elements because it instead adopts the `overflow` of its stacking context. One known side-effect can be an unexpected scrollbar appearing. To fix this kind of issue, introduce a stacking context on a more immediate parent of `VisuallyHidden`. Adding `position: relative` is often an easy way to do this.