@wordpress/style-engine
Version:
A suite of parsers and compilers for WordPress styles.
71 lines (70 loc) • 1.72 kB
JavaScript
// packages/style-engine/src/styles/border/index.ts
import { generateRule, generateBoxRules, camelCaseJoin } from "../utils";
function createBorderGenerateFunction(path) {
return (style, options) => generateRule(style, options, path, camelCaseJoin(path));
}
function createBorderEdgeGenerateFunction(edge) {
return (style, options) => {
return ["color", "style", "width"].flatMap((key) => {
const path = ["border", edge, key];
return createBorderGenerateFunction(path)(style, options);
});
};
}
var color = {
name: "color",
generate: createBorderGenerateFunction(["border", "color"])
};
var radius = {
name: "radius",
generate: (style, options) => {
return generateBoxRules(
style,
options,
["border", "radius"],
{
default: "borderRadius",
individual: "border%sRadius"
},
["topLeft", "topRight", "bottomLeft", "bottomRight"]
);
}
};
var borderStyle = {
name: "style",
generate: createBorderGenerateFunction(["border", "style"])
};
var width = {
name: "width",
generate: createBorderGenerateFunction(["border", "width"])
};
var borderTop = {
name: "borderTop",
generate: createBorderEdgeGenerateFunction("top")
};
var borderRight = {
name: "borderRight",
generate: createBorderEdgeGenerateFunction("right")
};
var borderBottom = {
name: "borderBottom",
generate: createBorderEdgeGenerateFunction("bottom")
};
var borderLeft = {
name: "borderLeft",
generate: createBorderEdgeGenerateFunction("left")
};
var border_default = [
color,
borderStyle,
width,
radius,
borderTop,
borderRight,
borderBottom,
borderLeft
];
export {
border_default as default
};
//# sourceMappingURL=index.js.map