UNPKG

@crossed/styled

Version:

A universal & performant styling library for React Native, Next.js & React

35 lines (34 loc) 1.38 kB
import { convertKeyToCss, normalizeUnitPixel } from "./../utils"; const PseudoClassPlugin = { name: "PseudoClassPlugin", test: [":hover", ":active", ":focus", ":focus-visible", ":disabled"], apply: ({ styles, key: ctxKey, addClassname, props, isWeb }) => { const pseudoClass = ctxKey.replace(/:/i, ""); Object.entries(styles).forEach(([key, value]) => { const valueNormalized = normalizeUnitPixel(key, value, isWeb); if (isWeb) { addClassname({ suffix: `:${pseudoClass}${pseudoClass === "hover" ? ":not(:disabled):not(:active)" : pseudoClass === "active" ? ":not(:disabled)" : ""}`, body: { [`${pseudoClass}:${convertKeyToCss(key)}-[${typeof valueNormalized === "number" ? valueNormalized : valueNormalized == null ? void 0 : valueNormalized.replace(/ /g, "-")}]`]: { [key]: valueNormalized } } }); } if ((props == null ? void 0 : props[pseudoClass]) || !props) { addClassname({ body: { [`${convertKeyToCss(key)}-[${typeof valueNormalized === "number" ? valueNormalized : valueNormalized == null ? void 0 : valueNormalized.replace(/ /g, "-")}]`]: { [key]: valueNormalized } } }); } }, {}); } }; export { PseudoClassPlugin }; //# sourceMappingURL=PseudoClass.js.map