ui-lit
Version:
UI Elements on LIT
31 lines (30 loc) • 1.04 kB
JavaScript
import { unsafeCSS, css } from 'lit';
export const makeCSSProxy = (data, prefix = '') => {
return new Proxy(data, {
get: (target, prop, receiver) => {
if (prop in target) {
const value = Reflect.get(target, prop, receiver);
const _default = value.default ? ", " + value.default : "";
return unsafeCSS(`var(${prefix + value.name + _default})`);
}
else {
console.warn(`undefined prop`, prop);
return css ``;
}
}
});
};
export const makeCSSNameProxy = (data, prefix = '') => {
return new Proxy(data, {
get: (target, prop, receiver) => {
if (prop in target) {
const value = Reflect.get(target, prop, receiver);
return unsafeCSS(prefix + value.name);
}
else {
console.warn(`undefined prop`, prop);
return css ``;
}
}
});
};