@crossed/ui
Version:
A universal & performant styling library for React Native, Next.js & React
62 lines (61 loc) • 1.24 kB
JavaScript
"use client";
import { jsx } from "react/jsx-runtime";
import {
Text as TextNative
} from "react-native";
import {
composeStyles,
createStyles,
withReactive
} from "@crossed/styled";
import {
fontWeightStyles,
fontSizeStyles,
fontColorStyles,
sizeTemplateStyles
} from "../styles/typography";
import { textAlignStyles } from "../styles/textAlign";
import { memo } from "react";
const useText = createStyles(({ font }) => ({
root: {
base: Object.assign(font.extraStyles, {
color: font.color,
fontFamily: font.family
})
}
}));
const Text = memo(
withReactive(
({
weight,
color = "primary",
textAlign,
fontSize,
style,
size = "default",
...props
}) => {
return /* @__PURE__ */ jsx(
TextNative,
{
ref: props.ref,
...props,
...composeStyles(
sizeTemplateStyles[size],
textAlignStyles[textAlign],
fontSizeStyles[fontSize],
fontWeightStyles[weight],
useText.root,
fontColorStyles[color],
style
).rnw()
}
);
}
)
);
Text.displayName = "Text";
export {
Text
};
//# sourceMappingURL=Text.js.map