@hakuna-matata-ui/styled-system
Version:
Style function for css-in-js building component libraries
53 lines (48 loc) • 943 B
text/typescript
import { mergeWith, objectKeys } from "@hakuna-matata-ui/utils"
import {
background,
border,
color,
effect,
filter,
flexbox,
grid,
interactivity,
layout,
list,
others,
position,
ring,
space,
textDecoration,
transform,
transition,
typography,
} from "./config"
import { pseudoPropNames, pseudoSelectors } from "./pseudos"
export const systemProps = mergeWith(
{},
background,
border,
color,
flexbox,
layout,
filter,
ring,
interactivity,
grid,
others,
position,
effect,
space,
typography,
textDecoration,
transform,
list,
transition,
)
const layoutSystem = Object.assign({}, space, layout, flexbox, grid, position)
export const layoutPropNames = objectKeys(layoutSystem)
export const propNames = [...objectKeys(systemProps), ...pseudoPropNames]
const styleProps = { ...systemProps, ...pseudoSelectors }
export const isStyleProp = (prop: string) => prop in styleProps