element-vir
Version:
Heroic. Reactive. Declarative. Type safe. Web components without compromise.
17 lines (16 loc) • 821 B
TypeScript
import { type Values } from '@augment-vir/common';
import { type CssVarDefinitions, type CssVarsSetup } from 'lit-css-vars';
import { type CustomElementTagName } from '../custom-tag-name.js';
import { type BaseStringName } from './string-names.js';
/**
* Base type for a declarative element definition's CSS vars.
*
* @category Internal
*/
export type CssVarsInitMap<ElementTagName extends CustomElementTagName, CssVarKeys extends BaseStringName<ElementTagName>> = Readonly<Record<CssVarKeys, Values<CssVarsSetup>>>;
/**
* CSS vars ready for use within a declarative element's `render` or `styles` method.
*
* @category Internal
*/
export type CssVars<ElementTagName extends CustomElementTagName, CssVarKeys extends BaseStringName<ElementTagName>> = CssVarDefinitions<CssVarsInitMap<ElementTagName, CssVarKeys>>;