@kiwicom/orbit-components
Version:
Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.
77 lines (62 loc) • 1.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.translate3d = exports.textAlign = exports.borderRadius = exports.right = exports.left = exports.rtlSpacing = void 0;
const leftToRight = (left, right) => ({
theme
}) => theme.rtl ? right : left;
const rtlSpacing = value => ({
theme
}) => {
if (!theme.rtl) {
return value;
}
const parts = value.split(" ").filter(part => !Number.isNaN(parseFloat(part)) && part);
return parts.length === 4 ? [parts[0], parts[3], parts[2], parts[1]].join(" ") : value;
};
exports.rtlSpacing = rtlSpacing;
const left = leftToRight("left", "right");
exports.left = left;
const right = leftToRight("right", "left");
exports.right = right;
const borderRadius = value => ({
theme
}) => {
if (!theme.rtl) {
return value;
}
const parts = value.split(" ").filter(part => !Number.isNaN(parseFloat(part)) && part);
return parts.length === 4 ? [parts[1], parts[0], parts[3], parts[2]].join(" ") : value;
};
exports.borderRadius = borderRadius;
const textAlign = value => ({
theme
}) => {
if (theme.rtl) {
if (value === "left") {
return leftToRight("left", "right")({
theme
});
}
if (value === "right") {
return leftToRight("right", "left")({
theme
});
}
}
return value;
};
exports.textAlign = textAlign;
const translate3d = value => ({
theme
}) => {
if (!theme.rtl) {
return `translate3d(${value})`;
}
const parts = value.split(",").filter(part => !Number.isNaN(parseFloat(part)) && part);
const x = parts[0];
const newX = x[0] === "-" ? x.slice(1) : `-${x}`;
return `translate3d(${newX},${parts[1]},${parts[2]})`;
};
exports.translate3d = translate3d;