UNPKG

ui-lit

Version:

UI Elements on LIT

31 lines (30 loc) 1.04 kB
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 ``; } } }); };