import { viteThemePlugin } from './plugin/theme'; import { generateColors, getThemeColors } from './themeConfig'; import { mixLighten, mixDarken, tinycolor } from 'vite-plugin-theme'; export function theme({ isProd }) { const colors = generateColors({ mixDarken, mixLighten, tinycolor, }); return viteThemePlugin({ resolveSelector: (s) => { s = s.trim(); switch (s) { case '.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon': return '.ant-steps-item-icon > .ant-steps-icon'; case '.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)': case '.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover': case '.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active': return s; case '.ant-steps-item-icon > .ant-steps-icon': return s; case '.ant-select-item-option-selected:not(.ant-select-item-option-disabled)': return s; default: if (s.indexOf('.ant-btn') >= -1) { // 按钮被重新定制过,需要过滤掉class防止覆盖 return s; } } return s.startsWith('[data-theme') ? s : `[data-theme] ${s}`; }, colorVariables: [...getThemeColors(), ...colors], isProd, }); }