@brizy/ui
Version:
React elements in Brizy style
28 lines (27 loc) • 2.54 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Theme = void 0;
const react_1 = __importDefault(require("react"));
const colors_1 = require("../utils/colors");
const getFieldsTheme_1 = require("../utils/getFieldsTheme");
const constants_1 = require("../constants");
const Theme = props => {
var _a, _b, _c, _d;
const { children, colors, shadow } = props;
const { header, content, sider, footer, fields, card: cardColor } = colors || {};
const { card } = shadow || {};
const headerColor = (0, colors_1.getHexByColorType)((_a = header === null || header === void 0 ? void 0 : header.color) !== null && _a !== void 0 ? _a : "white");
const contentColor = (0, colors_1.getHexByColorType)((_b = content === null || content === void 0 ? void 0 : content.color) !== null && _b !== void 0 ? _b : "gray-lightest");
const siderColor = (0, colors_1.getHexByColorType)((_c = sider === null || sider === void 0 ? void 0 : sider.color) !== null && _c !== void 0 ? _c : "dark");
const footerColor = (0, colors_1.getHexByColorType)((_d = footer === null || footer === void 0 ? void 0 : footer.color) !== null && _d !== void 0 ? _d : "white");
const fieldsColor = (0, getFieldsTheme_1.getFieldsStyleTheme)(fields);
const cardColors = Object.assign(Object.assign({}, ((cardColor === null || cardColor === void 0 ? void 0 : cardColor.background) ? { [`--${constants_1.BRZ_PREFIX}-card-background`]: (0, colors_1.getHexByColorType)(cardColor === null || cardColor === void 0 ? void 0 : cardColor.background) } : {})), ((cardColor === null || cardColor === void 0 ? void 0 : cardColor.borderColor)
? { [`--${constants_1.BRZ_PREFIX}-card-border-color`]: (0, colors_1.getHexByColorType)(cardColor === null || cardColor === void 0 ? void 0 : cardColor.borderColor) }
: {}));
const style = Object.assign(Object.assign(Object.assign({ [`--${constants_1.BRZ_PREFIX}-header-color`]: headerColor, [`--${constants_1.BRZ_PREFIX}-content-color`]: contentColor, [`--${constants_1.BRZ_PREFIX}-sider-color`]: siderColor, [`--${constants_1.BRZ_PREFIX}-footer-color`]: footerColor }, (card && { [`--${constants_1.BRZ_PREFIX}-card-shadow`]: card })), fieldsColor), cardColors);
return (react_1.default.createElement("div", { className: `${constants_1.BRZ_PREFIX}-theme__provider`, style: style }, children));
};
exports.Theme = Theme;