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
#