typed-bem
Version:
A TypeScript library for generating BEM class names.
7 lines (4 loc) • 772 B
TypeScript
import { B as BemBlocks, a as BemSchema } from './shared/typed-bem.DsSxeKVt.js';
type KeysOfSet<T> = T extends Set<infer U> ? U : never;
declare function generateBemClassNames<B extends BemBlocks<BemSchema>>(): <BlockName extends keyof B, ElementName extends keyof NonNullable<B[BlockName]["elements"]>>(blockName: BlockName, blockModifiersOrElementName?: (KeysOfSet<B[BlockName]["modifiers"]> extends never ? undefined : Partial<Record<KeysOfSet<B[BlockName]["modifiers"]>, boolean>>) | ElementName, elementModifiers?: KeysOfSet<NonNullable<B[BlockName]["elements"]>[ElementName]["modifiers"]> extends never ? undefined : Partial<Record<KeysOfSet<NonNullable<B[BlockName]["elements"]>[ElementName]["modifiers"]>, boolean>>) => string;
export { generateBemClassNames };