@windijs/utilities
Version:
@windijs/utilities
20 lines (17 loc) • 1.49 kB
JavaScript
import { fontSizeConfig, textAlignConfig, verticalAlignConfig, textTransformConfig, opacityConfig, textShadowConfig, textStrokeWidthConfig, whiteSpaceConfig } from '@windijs/config';
import { createUtility, fontSizeHandler, configHandler, colorHandler, meld, pxHandler, guard, cssHandler } from '@windijs/core';
import { prop } from '@windijs/helpers';
import colors from './colors.js';
var text = createUtility("text")
.use(fontSizeHandler(fontSizeConfig))
.use(configHandler(textAlignConfig, "textAlign"))
.use(configHandler(verticalAlignConfig, "verticalAlign"))
.use(configHandler(textTransformConfig, "textTransform"))
.use(colorHandler(colors, "color", "--w-text-opacity"))
.case("opacity", configHandler(opacityConfig, prop `--w-text-opacity`))
.case("shadow", configHandler(textShadowConfig, "textShadow"))
.case("stroke", meld(configHandler(textStrokeWidthConfig, prop `-webkit-text-stroke-width`), colorHandler(colors, prop `-webkit-text-stroke-color`, "--w-text-stroke-opacity"), pxHandler(prop `-webkit-text-stroke-width`), guard("opacity", configHandler(opacityConfig, prop `--w-text-stroke-opacity`))))
.case("space", configHandler(whiteSpaceConfig, "whiteSpace"))
.case("break", meld(guard("normal", cssHandler({ wordBreak: "normal", overflowWrap: "normal" })), guard("words", cssHandler({ overflowWrap: "break-word" })), guard("all", cssHandler({ wordBreak: "break-all" }))))
.init();
export { text as default };