feat: Add support for overriding card border radius (#2298)

- Closes #2287


[skip ci]
This commit is contained in:
Dermot Duffy
2025-12-20 17:00:04 -08:00
committed by GitHub
parent d17ecd6c12
commit de42a1652f
15 changed files with 111 additions and 38 deletions
+20 -9
View File
@@ -1,7 +1,11 @@
import { StyleInfo } from 'lit/directives/style-map';
import { AdvancedCameraCardConfig, configDefaults } from '../config/schema/types';
import { ThemeConfig, ThemeName } from '../config/schema/view';
import { aspectRatioToStyle, setOrRemoveAttribute } from '../utils/basic';
import {
aspectRatioToStyle,
setOrRemoveAttribute,
setOrRemoveStyleProperty,
} from '../utils/basic';
import { View } from '../view/view';
import { CardStyleAPI } from './types';
@@ -94,20 +98,27 @@ export class StyleManager {
protected _setPerformance(): void {
const STYLE_DISABLE_MAP = {
box_shadow: 'none',
border_radius: '0px',
box_shadow: {
cssKey: '--advanced-camera-card-box-shadow-override',
value: 'none',
},
border_radius: {
cssKey: '--advanced-camera-card-border-radius-override',
value: '0px',
},
};
const element = this._api.getCardElementManager().getElement();
const performance = this._api.getConfigManager().getCardWideConfig()?.performance;
const styles = performance?.style ?? {};
for (const configKey of Object.keys(styles)) {
const CSSKey = `--advanced-camera-card-css-${configKey.replaceAll('_', '-')}`;
if (styles[configKey] === false) {
element.style.setProperty(CSSKey, STYLE_DISABLE_MAP[configKey]);
} else {
element.style.removeProperty(CSSKey);
}
const mapping = STYLE_DISABLE_MAP[configKey];
setOrRemoveStyleProperty(
element,
!styles[configKey],
mapping.cssKey,
mapping.value,
);
}
}