UNPKG

@kuma-ui/system

Version:

🐻 Kuma UI is a utility-first, zero-runtime CSS-in-JS library that offers an outstanding developer experience and optimized performance.

130 lines (127 loc) 2.71 kB
import { shadowMappings } from "./chunk-MHHUKXNJ.mjs"; import { spaceMappings } from "./chunk-MZPHH6TP.mjs"; import { textMappings } from "./chunk-WGUPF5LI.mjs"; import { typographyMappings } from "./chunk-VVLDBR4F.mjs"; import { flexMappings } from "./chunk-QODA3KRU.mjs"; import { fontMappings } from "./chunk-M4YB5ZLQ.mjs"; import { gridMappings } from "./chunk-FKAJGU54.mjs"; import { layoutMappings } from "./chunk-MAQPFFKF.mjs"; import { listMappings } from "./chunk-W4G6JS6Y.mjs"; import { maskMappings } from "./chunk-2KCBTLDN.mjs"; import { outlineMappings } from "./chunk-J7IZ7E6Z.mjs"; import { positionMappings } from "./chunk-HS3ZP4BH.mjs"; import { animationMappings } from "./chunk-ONWZTIZM.mjs"; import { backgroundMappings } from "./chunk-UNT4TC5V.mjs"; import { borderMappings } from "./chunk-H4HDYMNX.mjs"; import { colorMappings } from "./chunk-QJTHOKZX.mjs"; import { columnMappings } from "./chunk-J57Z7DR3.mjs"; import { containMappings } from "./chunk-7SWUMWQM.mjs"; import { effectMappings } from "./chunk-AVSKURWU.mjs"; import { filterMappings } from "./chunk-DN4HZKMD.mjs"; import { applyResponsiveStyles } from "./chunk-NLLGTSGT.mjs"; import { toCssUnit } from "./chunk-YMO7ZQ5C.mjs"; // src/consumeStyleProps.ts import { styleCache } from "@kuma-ui/sheet"; var styleMappings = Object.assign( {}, animationMappings, spaceMappings, typographyMappings, layoutMappings, colorMappings, flexMappings, containMappings, borderMappings, outlineMappings, positionMappings, shadowMappings, gridMappings, listMappings, effectMappings, textMappings, fontMappings, maskMappings, columnMappings, backgroundMappings, filterMappings ); var consumeStyleProps = (props) => { const cacheKey = JSON.stringify(props); const cachedStyles = styleCache.get(cacheKey); if (cachedStyles) { return cachedStyles; } let base = ""; const media = {}; for (const key in props) { const cssValue = props[key]; if (cssValue == null) continue; const properties = styleMappings[key]?.split(",") ?? []; for (const property of properties) { const responsiveStyles = applyResponsiveStyles( property, cssValue, (value) => toCssUnit(key, value) ); base += responsiveStyles.base; for (const [breakpoint, css] of Object.entries(responsiveStyles.media)) { if (media[breakpoint]) { media[breakpoint] += css; } else { media[breakpoint] = css; } } } } const combinedStyles = { base, media }; styleCache.set(cacheKey, combinedStyles); return combinedStyles; }; export { consumeStyleProps };