@indoqa/style-system
Version:
A style system for React with Typescript typed theme support and several base components.
35 lines • 1.37 kB
JavaScript
import * as React from 'react';
import { FelaComponent } from 'react-fela';
import { createFlexChildCSSProps, createFontCSSProps, createMarginCSSProps, createPaddingCSSProps, createStylingCSSProps, } from './base';
import { createResponsiveStyles, mergeThemedStyles } from './utils';
function createTextCSSStyle(props, theme, outsideMediaQuery) {
return {
display: 'inline-block',
...createMarginCSSProps(props, theme),
...createPaddingCSSProps(props, theme),
...createFlexChildCSSProps(props, theme, outsideMediaQuery),
...createFontCSSProps(props, theme),
...createStylingCSSProps(props, theme),
};
}
function themedTextStyle(props) {
return {
...createResponsiveStyles(props, createTextCSSStyle),
};
}
export function Text(props) {
const { children, style, onClick, onMouseDown, onMouseOut, onMouseOver, onScroll, htmlAttrs, testId, innerRef, ...rest } = props;
const styles = mergeThemedStyles(themedTextStyle, style);
return (React.createElement(FelaComponent, { style: styles, ...rest }, ({ className }) => React.createElement('span', {
className,
'data-testid': testId,
onClick,
onMouseDown,
onMouseOut,
onMouseOver,
onScroll,
...htmlAttrs,
ref: innerRef,
}, children)));
}
//# sourceMappingURL=Text.js.map