diff --git a/.changeset/polite-items-cheat.md b/.changeset/polite-items-cheat.md
new file mode 100644
index 0000000000..71c4dd8b07
--- /dev/null
+++ b/.changeset/polite-items-cheat.md
@@ -0,0 +1,5 @@
+---
+'@emotion/jest': major
+---
+
+Drop support for Enzyme
diff --git a/docs/testing.mdx b/docs/testing.mdx
index c55211b5a9..cd4b92ad1a 100644
--- a/docs/testing.mdx
+++ b/docs/testing.mdx
@@ -32,26 +32,9 @@ import { createSerializer } from '@emotion/jest'
expect.addSnapshotSerializer(createSerializer())
```
-When using Enzyme, you can add `"@emotion/jest/enzyme-serializer"` instead.
-
-```json
-{
- "snapshotSerializers": ["@emotion/jest/enzyme-serializer"]
-}
-```
-
-Or use `expect.addSnapshotSerializer` to add it like this:
-
-```javascript
-// also adds the enzyme-to-json serializer
-import { createEnzymeSerializer } from '@emotion/jest/enzyme-serializer'
-
-expect.addSnapshotSerializer(createEnzymeSerializer())
-```
-
### Writing a test
-Writing a test with `@emotion/jest` involves creating a snapshot from the `react-test-renderer` or `enzyme-to-json`'s resulting JSON.
+Writing a test with `@emotion/jest` involves creating a snapshot from the `react-test-renderer`'s resulting JSON.
```jsx
import React from 'react'
diff --git a/package.json b/package.json
index ac464ba243..fba49a4d31 100644
--- a/package.json
+++ b/package.json
@@ -201,9 +201,6 @@
"bundlesize": "^0.13.2",
"codecov": "^2.3.1",
"cssjanus": "^1.2.0",
- "enzyme": "^3.11.0",
- "enzyme-adapter-react-16": "^1.15.5",
- "enzyme-to-json": "^3.6.1",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-react": "^1.1.7",
diff --git a/packages/cache/__tests__/index.js b/packages/cache/__tests__/index.js
index 931c506877..8987be5f1f 100644
--- a/packages/cache/__tests__/index.js
+++ b/packages/cache/__tests__/index.js
@@ -1,5 +1,5 @@
/** @jsx jsx */
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import { safeQuerySelector } from 'test-utils'
import createCache from '@emotion/cache'
import { jsx, CacheProvider } from '@emotion/react'
diff --git a/packages/css/test/__snapshots__/selectivity.test.js.snap b/packages/css/test/__snapshots__/selectivity.test.js.snap
index 5829b6e2d3..f80acc0ada 100644
--- a/packages/css/test/__snapshots__/selectivity.test.js.snap
+++ b/packages/css/test/__snapshots__/selectivity.test.js.snap
@@ -15,62 +15,62 @@ exports[`css complex nested media queries 1`] = `
`;
exports[`css complex nested styles 1`] = `
-".css-52fshx {
+".css-1fh6au3 {
color: blue;
}
-.css-52fshx:hover {
+.css-1fh6au3:hover {
color: green;
}
-.css-52fshx:hover .name {
+.css-1fh6au3:hover .name {
color: amethyst;
}
-.css-52fshx:hover .name:focus {
+.css-1fh6au3:hover .name:focus {
color: burlywood;
}
@media (min-width: 420px) {
- .css-52fshx:hover .name:focus {
+ .css-1fh6au3:hover .name:focus {
color: rebeccapurple;
}
}"
`;
exports[`css handles media query merges 1`] = `
-".css-19kb3dc {
+".css-uzr6q5 {
color: darkslateblue;
color: red;
color: purple;
}
@media (min-width: 420px) {
- .css-19kb3dc {
+ .css-uzr6q5 {
color: amethyst;
}
}
@media (min-width: 640px) {
- .css-19kb3dc {
+ .css-uzr6q5 {
color: rebeccapurple;
}
}
@media (min-width: 960px) {
- .css-19kb3dc {
+ .css-uzr6q5 {
color: burlywood;
}
}
@media (min-width: 640px) {
- .css-19kb3dc {
+ .css-uzr6q5 {
color: blue;
}
}
@media (min-width: 640px) {
- .css-19kb3dc {
+ .css-uzr6q5 {
color: aquamarine;
}
}"
diff --git a/packages/css/test/component-selector.test.js b/packages/css/test/component-selector.test.js
index ce5bbbada2..a7eab145e1 100644
--- a/packages/css/test/component-selector.test.js
+++ b/packages/css/test/component-selector.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import styled from '@emotion/styled'
import renderer from 'react-test-renderer'
diff --git a/packages/css/test/css.test.js b/packages/css/test/css.test.js
index 7b44dab7a8..df86dd5722 100644
--- a/packages/css/test/css.test.js
+++ b/packages/css/test/css.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import renderer from 'react-test-renderer'
import { css, flush, sheet } from '@emotion/css'
diff --git a/packages/css/test/cx.test.js b/packages/css/test/cx.test.js
index 30370209ed..a05b72002f 100644
--- a/packages/css/test/cx.test.js
+++ b/packages/css/test/cx.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import renderer from 'react-test-renderer'
import { css, cx } from '@emotion/css'
diff --git a/packages/css/test/inject-global.test.js b/packages/css/test/inject-global.test.js
index 44050042ee..e4139a0441 100644
--- a/packages/css/test/inject-global.test.js
+++ b/packages/css/test/inject-global.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import { injectGlobal, sheet, flush, css } from '@emotion/css'
describe('injectGlobal', () => {
diff --git a/packages/css/test/instance/css.test.js b/packages/css/test/instance/css.test.js
index 67a2a02ea4..cce9704274 100644
--- a/packages/css/test/instance/css.test.js
+++ b/packages/css/test/instance/css.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import React from 'react'
import renderer from 'react-test-renderer'
import { css as differentCss, flush, sheet } from './emotion-instance'
diff --git a/packages/css/test/keyframes.test.js b/packages/css/test/keyframes.test.js
index 961568ca82..863a6ab4ad 100644
--- a/packages/css/test/keyframes.test.js
+++ b/packages/css/test/keyframes.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import renderer from 'react-test-renderer'
import { keyframes, flush, css } from '@emotion/css'
@@ -13,17 +13,17 @@ describe('keyframes', () => {
animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
transform: translate3d(0,0,0);
}
-
+
40%, 43% {
animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
transform: translate3d(0, -30px, 0);
}
-
+
70% {
animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
transform: translate3d(0, -15px, 0);
}
-
+
90% {
transform: translate3d(0,-4px,0);
}
@@ -54,7 +54,7 @@ describe('keyframes', () => {
from {
transform: rotate(0deg);
}
-
+
to {
transform: rotate(${endingRotation});
}
diff --git a/packages/css/test/label-pattern.test.js b/packages/css/test/label-pattern.test.js
index 92bf2203ef..94e54bc440 100644
--- a/packages/css/test/label-pattern.test.js
+++ b/packages/css/test/label-pattern.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import styled from '@emotion/styled'
import renderer from 'react-test-renderer'
diff --git a/packages/css/test/no-babel/index.test.js b/packages/css/test/no-babel/index.test.js
index 0695aa3db0..da31f40cf4 100644
--- a/packages/css/test/no-babel/index.test.js
+++ b/packages/css/test/no-babel/index.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import renderer from 'react-test-renderer'
import { css } from '@emotion/css'
diff --git a/packages/css/test/no-babel/warnings.test.js b/packages/css/test/no-babel/warnings.test.js
index 533e08a4ee..04228426d0 100644
--- a/packages/css/test/no-babel/warnings.test.js
+++ b/packages/css/test/no-babel/warnings.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import { css } from '@emotion/css'
console.error = jest.fn()
diff --git a/packages/css/test/selectivity.test.js b/packages/css/test/selectivity.test.js
index c6782b88d2..54e245e51a 100644
--- a/packages/css/test/selectivity.test.js
+++ b/packages/css/test/selectivity.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import { css, sheet, flush } from '@emotion/css'
describe('css', () => {
diff --git a/packages/css/test/source-map/__snapshots__/source-map.test.js.snap b/packages/css/test/source-map/__snapshots__/source-map.test.js.snap
index 44163b7fba..8d9faa3c9c 100644
--- a/packages/css/test/source-map/__snapshots__/source-map.test.js.snap
+++ b/packages/css/test/source-map/__snapshots__/source-map.test.js.snap
@@ -2,30 +2,30 @@
exports[`css css without newline or semicolon 1`] = `
".css-6kh100-cls{color:hotpink;}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3RG1CIiwiZmlsZSI6InNvdXJjZS1tYXAudGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAndGVzdC11dGlscy9sZWdhY3ktZW52J1xuaW1wb3J0IHsgY3NzLCBzaGVldCwgZmx1c2ggfSBmcm9tICdAZW1vdGlvbi9jc3MnXG5cbmNvbnN0IGNvbW1lbnRQYXR0ZXJuID0gL1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vZ1xuY29uc3QgZ2V0U3R5bGVzID0gc2hlZXQgPT5cbiAgc2hlZXQudGFnc1xuICAgIC5tYXAodGFnID0+IHRhZy50ZXh0Q29udGVudCB8fCAnJylcbiAgICAuam9pbignJylcbiAgICAucmVwbGFjZShjb21tZW50UGF0dGVybiwgJ1xcbiQmXFxuJylcblxuZGVzY3JpYmUoJ2NzcycsICgpID0+IHtcbiAgYWZ0ZXJFYWNoKCgpID0+IGZsdXNoKCkpXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIHN0eWxlcycsICgpID0+IHtcbiAgICBjb25zdCBtcSA9IFtcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA0MjBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDY0MHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogOTYwcHgpJ1xuICAgIF1cblxuICAgIGNzcyh7XG4gICAgICBjb2xvcjogJ2JsdWUnLFxuICAgICAgJyY6aG92ZXInOiB7XG4gICAgICAgICcmIC5uYW1lJzoge1xuICAgICAgICAgIGNvbG9yOiAnYW1ldGh5c3QnLFxuICAgICAgICAgICcmOmZvY3VzJzoge1xuICAgICAgICAgICAgY29sb3I6ICdidXJseXdvb2QnLFxuICAgICAgICAgICAgW21xWzBdXToge1xuICAgICAgICAgICAgICBjb2xvcjogJ3JlYmVjY2FwdXJwbGUnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjb2xvcjogJ2dyZWVuJ1xuICAgICAgfVxuICAgIH0pXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG5cbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgbWVkaWEgcXVlcmllcycsICgpID0+IHtcbiAgICBjc3NgXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCksIChtYXgtaGVpZ2h0OiA0MjBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgXG5cbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbiAgdGVzdCgnY3NzIHdpdGhvdXQgbmV3bGluZSBvciBzZW1pY29sb24nLCAoKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgY29uc3QgY2xzID0gY3NzYFxuICAgICAgY29sb3I6IGhvdHBpbms7XG4gICAgYFxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxufSlcbiJdfQ== */
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3RG1CIiwiZmlsZSI6InNvdXJjZS1tYXAudGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAndGVzdC11dGlscy9zZXR1cC1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
"
`;
exports[`css source-map nested media queries 1`] = `
".css-1vjvce5{}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQ08iLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQ08iLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
@media (max-width: 600px){.css-1vjvce5 h1{font-size:1.4rem;}}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQ08iLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQ08iLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
@media (max-width: 400px),(max-height: 420px){.css-1vjvce5 h1{font-size:1.1rem;}}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQ08iLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQ08iLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
"
`;
exports[`css source-map nested styles 1`] = `
-".css-3v0nwm{color:blue;}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
-.css-3v0nwm:hover{color:green;}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
-.css-3v0nwm:hover .name{color:amethyst;}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
-.css-3v0nwm:hover .name:focus{color:burlywood;}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
-@media(min-width: 420px){.css-3v0nwm:hover .name:focus{color:rebeccapurple;}}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
+".css-7lm4iz{color:blue;}
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
+.css-7lm4iz:hover{color:green;}
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
+.css-7lm4iz:hover .name{color:amethyst;}
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
+.css-7lm4iz:hover .name:focus{color:burlywood;}
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
+@media(min-width: 420px){.css-7lm4iz:hover .name:focus{color:rebeccapurple;}}
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
"
`;
diff --git a/packages/css/test/source-map/source-map.test.js b/packages/css/test/source-map/source-map.test.js
index 62dce7ab1c..b40f988476 100644
--- a/packages/css/test/source-map/source-map.test.js
+++ b/packages/css/test/source-map/source-map.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import { css, sheet, flush } from '@emotion/css'
const commentPattern = /\/\*[\s\S]*?\*\//g
diff --git a/packages/css/test/warnings.test.js b/packages/css/test/warnings.test.js
index a692085a7b..5769bdd238 100644
--- a/packages/css/test/warnings.test.js
+++ b/packages/css/test/warnings.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import { css } from '@emotion/css'
import createCss from '@emotion/css/create-instance'
import * as React from 'react'
diff --git a/packages/jest/README.md b/packages/jest/README.md
index 7f90e5d220..b7c28917e8 100644
--- a/packages/jest/README.md
+++ b/packages/jest/README.md
@@ -22,17 +22,7 @@ module.exports = {
}
```
-To assist with shallow rendering, there's a custom enzyme snapshot serializer, that includes the `enzyme-to-json` serializer, which is available by importing `@emotion/jest/enzyme-serializer`. If you already have the `enzyme-to-json` serializer added to `snapshotSerializers`, it will need to be removed to allow this to work.
-
-```js
-// jest.config.js
-module.exports = {
- // ... other config
- snapshotSerializers: ['@emotion/jest/enzyme-serializer']
-}
-```
-
-Or you can add the serializer via the `expect.addSnapshotSerializer` method like so: (the example below is with react-test-renderer but @emotion/jest also works with enzyme and react-testing-library)
+Or you can add the serializer via the `expect.addSnapshotSerializer` method like so:
```jsx
import React from 'react'
diff --git a/packages/jest/enzyme-serializer/package.json b/packages/jest/enzyme-serializer/package.json
deleted file mode 100644
index 5afdff682d..0000000000
--- a/packages/jest/enzyme-serializer/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "main": "dist/emotion-jest-enzyme-serializer.cjs.js",
- "module": "dist/emotion-jest-enzyme-serializer.esm.js",
- "types": "../types/enzyme-serializer"
-}
diff --git a/packages/jest/enzyme/package.json b/packages/jest/enzyme/package.json
deleted file mode 100644
index b5e67c5a8f..0000000000
--- a/packages/jest/enzyme/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "dist/emotion-jest-enzyme.cjs.js",
- "module": "dist/emotion-jest-enzyme.esm.js"
-}
diff --git a/packages/jest/package.json b/packages/jest/package.json
index f1d7b4b345..f017a682c8 100644
--- a/packages/jest/package.json
+++ b/packages/jest/package.json
@@ -14,15 +14,6 @@
"import": "./dist/emotion-jest.cjs.mjs",
"default": "./dist/emotion-jest.cjs.js"
},
- "./enzyme": {
- "types": {
- "import": "./enzyme/dist/emotion-jest-enzyme.cjs.mjs",
- "default": "./enzyme/dist/emotion-jest-enzyme.cjs.js"
- },
- "module": "./enzyme/dist/emotion-jest-enzyme.esm.js",
- "import": "./enzyme/dist/emotion-jest-enzyme.cjs.mjs",
- "default": "./enzyme/dist/emotion-jest-enzyme.cjs.js"
- },
"./serializer": {
"types": {
"import": "./serializer/dist/emotion-jest-serializer.cjs.mjs",
@@ -32,15 +23,6 @@
"import": "./serializer/dist/emotion-jest-serializer.cjs.mjs",
"default": "./serializer/dist/emotion-jest-serializer.cjs.js"
},
- "./enzyme-serializer": {
- "types": {
- "import": "./enzyme-serializer/dist/emotion-jest-enzyme-serializer.cjs.mjs",
- "default": "./enzyme-serializer/dist/emotion-jest-enzyme-serializer.cjs.js"
- },
- "module": "./enzyme-serializer/dist/emotion-jest-enzyme-serializer.esm.js",
- "import": "./enzyme-serializer/dist/emotion-jest-enzyme-serializer.cjs.mjs",
- "default": "./enzyme-serializer/dist/emotion-jest-enzyme-serializer.cjs.js"
- },
"./package.json": "./package.json"
},
"types": "types/index.d.ts",
@@ -104,9 +86,7 @@
"preconstruct": {
"entrypoints": [
"./index.js",
- "./serializer.js",
- "./enzyme.js",
- "./enzyme-serializer.js"
+ "./serializer.js"
]
}
}
diff --git a/packages/jest/src/create-enzyme-serializer.js b/packages/jest/src/create-enzyme-serializer.js
deleted file mode 100644
index 2178056037..0000000000
--- a/packages/jest/src/create-enzyme-serializer.js
+++ /dev/null
@@ -1,107 +0,0 @@
-/* import type { Options } from './create-serializer' */
-import { createSerializer as createEmotionSerializer } from './create-serializer'
-import * as enzymeTickler from './enzyme-tickler'
-import { createSerializer as createEnzymeToJsonSerializer } from 'enzyme-to-json'
-import {
- isEmotionCssPropElementType,
- isStyledElementType,
- unwrapFromPotentialFragment
-} from './utils'
-
-const enzymeToJsonSerializer = createEnzymeToJsonSerializer({
- map: json => {
- if (typeof json.node.type === 'string') {
- return json
- }
- const isRealStyled = json.node.type.__emotion_real === json.node.type
- if (isRealStyled) {
- return {
- ...json,
- children: json.children.slice(-1)
- }
- }
- return json
- }
-})
-
-// this is a hack, leveraging the internal/implementation knowledge about the enzyme's ShallowWrapper
-// there is no sane way to get this information otherwise though
-const getUnrenderedElement = shallowWrapper => {
- const symbols = Object.getOwnPropertySymbols(shallowWrapper)
- const elementValues = symbols.filter(sym => {
- const val = shallowWrapper[sym]
- return !!val && val.$$typeof === Symbol.for('react.element')
- })
- if (elementValues.length !== 1) {
- throw new Error(
- "Could not get unrendered element reliably from the Enzyme's ShallowWrapper. This is a bug in Emotion - please open an issue with repro steps included:\n" +
- 'https://github.com/emotion-js/emotion/issues/new?assignees=&labels=bug%2C+needs+triage&template=--bug-report.md&title='
- )
- }
- return shallowWrapper[elementValues[0]]
-}
-
-const wrappedEnzymeSerializer = {
- test: enzymeToJsonSerializer.test,
- print: (enzymeWrapper, printer) => {
- const isShallow = !!enzymeWrapper.dive
-
- if (isShallow && enzymeWrapper.root() === enzymeWrapper) {
- const unrendered = getUnrenderedElement(enzymeWrapper)
- if (
- isEmotionCssPropElementType(unrendered) ||
- isStyledElementType(unrendered)
- ) {
- return enzymeToJsonSerializer.print(
- unwrapFromPotentialFragment(enzymeWrapper),
- printer
- )
- }
- }
-
- return enzymeToJsonSerializer.print(enzymeWrapper, printer)
- }
-}
-
-export function createEnzymeSerializer({
- classNameReplacer,
- DOMElements = true,
- includeStyles = true
-} /* : Options */ = {}) {
- const emotionSerializer = createEmotionSerializer({
- classNameReplacer,
- DOMElements,
- includeStyles
- })
- return {
- test(node) {
- return wrappedEnzymeSerializer.test(node) || emotionSerializer.test(node)
- },
- serialize(
- node,
- config,
- indentation /*: string */,
- depth /*: number */,
- refs,
- printer /*: Function */
- ) {
- if (wrappedEnzymeSerializer.test(node)) {
- const tickled = enzymeTickler.tickle(node)
- return wrappedEnzymeSerializer.print(
- tickled,
- // https://github.com/facebook/jest/blob/470ef2d29c576d6a10de344ec25d5a855f02d519/packages/pretty-format/src/index.ts#L281
- valChild => printer(valChild, config, indentation, depth, refs)
- )
- }
- // we know here it had to match against emotionSerializer
- return emotionSerializer.serialize(
- node,
- config,
- indentation,
- depth,
- refs,
- printer
- )
- }
- }
-}
diff --git a/packages/jest/src/create-serializer.js b/packages/jest/src/create-serializer.js
index 533b7ecf0c..d5b67ea2c4 100644
--- a/packages/jest/src/create-serializer.js
+++ b/packages/jest/src/create-serializer.js
@@ -1,11 +1,9 @@
import prettify from '@emotion/css-prettifier'
import { replaceClassNames } from './replace-class-names'
-import * as enzymeTickler from './enzyme-tickler'
import {
getClassNamesFromNodes,
isReactElement,
isEmotionCssPropElementType,
- isEmotionCssPropEnzymeElement,
isDOMElement,
getStylesFromClassNames,
getStyleElements,
@@ -102,49 +100,11 @@ function getLabelsFromClassName(keys, className) {
}).filter(Boolean)
}
-function isShallowEnzymeElement(
- element /*: any */,
- keys /*: string[] */,
- labels /*: string[] */
-) {
- const childClassNames = (element.children || [])
- .map(({ props = {} }) => props.className || '')
- .filter(Boolean)
-
- return !childClassNames.some(className => {
- const childLabels = getLabelsFromClassName(keys, className)
- return childLabels.every(childLabel => labels.includes(childLabel))
- })
-}
-
const createConvertEmotionElements =
(keys /*: string[]*/) => (node /*: any*/) => {
if (isPrimitive(node)) {
return node
}
- if (isEmotionCssPropEnzymeElement(node)) {
- const className = enzymeTickler.getTickledClassName(node.props.css)
- const labels = getLabelsFromClassName(keys, className || '')
-
- if (isShallowEnzymeElement(node, keys, labels)) {
- const emotionType = node.props.__EMOTION_TYPE_PLEASE_DO_NOT_USE__
- // emotionType will be a string for DOM elements
- const type =
- typeof emotionType === 'string'
- ? emotionType
- : emotionType.displayName || emotionType.name || 'Component'
- return {
- ...node,
- props: filterEmotionProps({
- ...node.props,
- className
- }),
- type
- }
- } else {
- return node.children[node.children.length - 1]
- }
- }
if (isEmotionCssPropElementType(node)) {
return {
...node,
diff --git a/packages/jest/src/enzyme-serializer.d.ts b/packages/jest/src/enzyme-serializer.d.ts
deleted file mode 100644
index 7e9e849dfa..0000000000
--- a/packages/jest/src/enzyme-serializer.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '../types/enzyme-serializer'
diff --git a/packages/jest/src/enzyme-serializer.js b/packages/jest/src/enzyme-serializer.js
deleted file mode 100644
index 2b73962978..0000000000
--- a/packages/jest/src/enzyme-serializer.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import { createEnzymeSerializer } from './create-enzyme-serializer'
-export const { test, serialize } = createEnzymeSerializer()
diff --git a/packages/jest/src/enzyme-tickler.js b/packages/jest/src/enzyme-tickler.js
deleted file mode 100644
index 45b52f72cd..0000000000
--- a/packages/jest/src/enzyme-tickler.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import { unwrapFromPotentialFragment } from './utils'
-
-const tickledCssProps = new WeakMap()
-
-export const getTickledClassName = cssProp => tickledCssProps.get(cssProp)
-
-export const tickle = wrapper => {
- const isShallow = typeof wrapper.dive === 'function'
-
- wrapper.find('EmotionCssPropInternal').forEach(el => {
- const cssProp = el.props().css
-
- if (!cssProp) {
- return
- }
-
- const rendered = (isShallow ? el.dive() : el.children()).last()
- tickledCssProps.set(
- cssProp,
- unwrapFromPotentialFragment(rendered).props().className
- )
- })
- return wrapper
-}
diff --git a/packages/jest/src/enzyme.d.ts b/packages/jest/src/enzyme.d.ts
deleted file mode 100644
index fdcaa2b47c..0000000000
--- a/packages/jest/src/enzyme.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '../types/enzyme'
diff --git a/packages/jest/src/enzyme.js b/packages/jest/src/enzyme.js
deleted file mode 100644
index 72fdee8bd1..0000000000
--- a/packages/jest/src/enzyme.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export { createEnzymeSerializer } from './create-enzyme-serializer'
-export { matchers } from './matchers'
diff --git a/packages/jest/src/utils.js b/packages/jest/src/utils.js
index acf2f871de..6f07d60756 100644
--- a/packages/jest/src/utils.js
+++ b/packages/jest/src/utils.js
@@ -94,16 +94,6 @@ export function unwrapFromPotentialFragment(node) {
return node
}
-function getClassNamesFromEnzyme(selectors, nodeWithPotentialFragment) {
- const node = unwrapFromPotentialFragment(nodeWithPotentialFragment)
- // We need to dive in to get the className if we have a styled element from a shallow render
- const isShallow = shouldDive(node)
- const nodeWithClassName = findNodeWithClassName(
- isShallow ? node.dive() : node
- )
- return getClassNames(selectors, getClassNameProp(nodeWithClassName))
-}
-
function getClassNamesFromCheerio(selectors, node) {
const classes = node.attr('class')
return getClassNames(selectors, classes)
@@ -135,12 +125,6 @@ export function isStyledElementType(val /* : any */) /* : boolean */ {
return type.__emotion_real === type
}
-export function isEmotionCssPropEnzymeElement(val /* : any */) /*: boolean */ {
- return (
- val.$$typeof === Symbol.for('react.test.json') &&
- val.type === 'EmotionCssPropInternal'
- )
-}
const domElementPattern = /^((HTML|SVG)\w*)?Element$/
export function isDOMElement(val) /*: boolean */ {
@@ -152,19 +136,13 @@ export function isDOMElement(val) /*: boolean */ {
)
}
-function isEnzymeElement(val) /*: boolean */ {
- return typeof val.findWhere === 'function'
-}
-
function isCheerioElement(val) /*: boolean */ {
return val.cheerio === '[cheerio object]'
}
export function getClassNamesFromNodes(nodes /*: Array
- Hello -
- - World! -- Hello -
- - World! -- Hello -
- - World! - -- Hello -
- - World! -- Hello -
- - World! -- Hello -
- - World! - -`; - -exports[`enzyme shallow with prop containing css element with other props 1`] = ` -.emotion-0 { - background-color: blue; -} - -- Hello -
- - World! -