"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeTheme = void 0; const theme_mjs_1 = require('./theme.js'); function isPlainObject(value) { if (typeof value !== 'object' || value === null) return false; let proto = value; while (Object.getPrototypeOf(proto) !== null) { proto = Object.getPrototypeOf(proto); } return Object.getPrototypeOf(value) === proto; } function deepMerge(...objects) { const output = {}; for (const obj of objects) { for (const [key, value] of Object.entries(obj)) { const prevValue = output[key]; output[key] = isPlainObject(prevValue) && isPlainObject(value) ? deepMerge(prevValue, value) : value; } } return output; } function makeTheme(...themes) { const themesToMerge = [ theme_mjs_1.defaultTheme, ...themes.filter((theme) => theme != null), ]; return deepMerge(...themesToMerge); } exports.makeTheme = makeTheme;