css_class_resolution.ts

CSS class resolution utilities for composing class definitions.

Provides the resolve_composes helper to recursively resolve class names to their combined CSS declarations.

Declarations
#

3 declarations

view source

resolve_class_definition
#

css_class_resolution.ts view source

(def: CssClassDefinitionStatic, class_name: string, definitions: Record<string, CssClassDefinition | undefined>, css_properties?: Set<...> | null): ResolveComposesResult

Resolves a class definition's declaration, handling composes composition.

If the definition has a composes property, resolves those classes recursively and combines with any explicit declaration. If no composes, returns the explicit declaration directly.

def

the class definition to resolve

class_name

the name of the class being resolved (for error messages)

type string

definitions

record of all known class definitions

type Record<string, CssClassDefinition | undefined>

css_properties

set of valid CSS properties for literal validation, or null to skip

type Set<string> | null
default null

returns

ResolveComposesResult

combined declaration or an error

resolve_composes
#

css_class_resolution.ts view source

(class_names: string[], definitions: Record<string, CssClassDefinition | undefined>, resolution_stack: Set<string>, visited: Set<string>, original_class_name: string, css_properties?: Set<...> | null): ResolveComposesResult

Resolves an array of class names to their combined CSS declarations.

Recursively resolves nested composes arrays and combines all declarations. Validates that referenced classes exist and are resolvable (not rulesets or interpreters). Supports unmodified CSS literals (e.g., text-align:center) in the composes array.

Deduplication behavior: - Diamond dependencies (class reached via different composition branches) are silently skipped - Redundant listings (class already included by an earlier sibling in this array) emit a warning

class_names

array of class names to resolve

type string[]

definitions

record of all known class definitions

type Record<string, CssClassDefinition | undefined>

resolution_stack

set of class names currently being resolved (for cycle detection)

type Set<string>

visited

set of all class names already resolved (for deduplication)

type Set<string>

original_class_name

the class name being defined (for error messages)

type string

css_properties

set of valid CSS properties for literal validation, or null to skip

type Set<string> | null
default null

returns

ResolveComposesResult

combined declarations or an error

ResolveComposesResult
#

Depends on
#

Imported by
#