/* eslint-disable */
import React from 'react';
import aesthetic, { ComponentBlock, StyleSheet } from 'aesthetic';
import { withStyles } from 'aesthetic-react';
type Theme = { unit: number };
type Props = { foo?: string };
function Comp(props: Props) {
return
;
}
// INVALID
aesthetic.registerTheme('invalid', { unit: 8 }, () => ({
'@charset': 123,
'@font-face': [],
'@global': 'foo',
'@import': 123,
'@keyframes': 'bar',
'@page': 'baz',
'@viewport': true,
invalid: 'property',
}));
aesthetic.registerTheme('invalid-nested', { unit: 8 }, () => ({
'@charset': 'utf8',
'@font-face': {
One: [{ invalid: 'property' }],
Two: { fontFamily: 'Two', srcPaths: 123 },
},
'@global': {
button: {
display: 'block',
invalid: 'property',
},
unknown: 123,
},
'@import': './foo.css',
'@keyframes': {
fade: {},
slide: {
'0%': { opacity: 0 },
'100%': { opacity: 1 },
},
warp: {
from: { color: 'red' },
to: { color: 'blue', invalid: 'property' },
},
},
'@page': {
color: 'black',
invalid: 'property',
},
'@viewport': {
color: 'black',
position: 'invalid',
},
}));
// VALID
aesthetic.registerTheme('valid', { unit: 8 }, () => ({
'@charset': 'utf8',
'@font-face': {
One: [],
Two: { fontFamily: 'Two', srcPaths: [] },
},
'@global': {
button: {
display: 'block',
},
},
'@import': './foo.css',
'@keyframes': {
fade: {},
slide: {
'0%': { opacity: 0 },
'100%': { opacity: 1 },
},
warp: {
from: { color: 'red' },
to: { color: 'blue', invalid: 'property' },
},
},
'@page': {
color: 'black',
},
'@viewport': {
color: 'black',
},
}));
// Direct object
const ruleset: ComponentBlock = {
display: 'block',
invalid: 'property',
':hover': {
color: 'red',
},
'> invalid': {
color: 'blue',
},
};
const styleSheet: StyleSheet = {
foo: {
display: 'block',
invalid: 'property',
},
bar: {
another: 'invalid',
},
baz: 'direct-css-class-name',
};
// Styled component using arrow function
const CompA = withStyles(() => ({
element: {
display: 'block',
invalid: 'property',
':hover': {
color: 'red',
invalid: 'property',
},
},
// className: 'foo',
}))(Comp);
// Styled component using arrow function with body
const CompB = withStyles(() => {
return {
element: {
display: 'block',
invalid: 'property',
':hover': {
color: 'red',
},
},
className: 'foo',
};
})(Comp);
// Styled component using regular function
const CompC = withStyles(function() {
return {
element: {
display: 'block',
invalid: 'property',
':hover': {
color: 'red',
},
},
className: 'foo',
};
})(Comp);
// Styled component with no styles
const CompD = withStyles(null)(Comp);