@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
JavaScript
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
};