A base class for importers that resolves URLs in `@import`s to the contents of Sass files.
Importers should implement {@see \ScssPhp\ScssPhp\Importer__toString} to provide a human-readable description of the importer. For example, the default filesystem importer returns its load path.
Interface implemented by loggers for warnings and debug messages.
The official Sass implementation recommends that loggers report the messages immediately rather than waiting for the end of the compilation, to provide a better debugging experience when the compilation does not end (error or infinite loop after the warning for instance).
Interface implemented by loggers for warnings and debug messages.
The official Sass implementation recommends that loggers report the messages immediately rather than waiting for the end of the compilation, to provide a better debugging experience when the compilation does not end (error or infinite loop after the warning for instance).
A SassScript argument list.
An argument list comes from a rest argument. It's distinct from a normal {@see \ScssPhp\ScssPhp\Value\SassList} in that it may contain a keyword map as well as the positional arguments.
A SassScript calculation.
Although calculations can in principle have any name or any number of arguments, this class only exposes the specific calculations that are supported by the Sass spec. This ensures that all calculations that the user works with are always fully simplified.
A SassScript function reference.
A function reference captures a function from the local environment so that it may be passed between modules.
A SassScript number.
Numbers can have units. Although there's no literal syntax for it, numbers
support scientific-style numerator and denominator units (for example,
miles/hour). These are expected to be resolved before being emitted to
CSS.
A SassScript string.
Strings can either be quoted or unquoted. Unquoted strings are usually CSS identifiers, but they may contain any text.
A SassScript value.
All SassScript values are unmodifiable. New values can be constructed using
subclass constructors like new SassString. Untyped values can be cast to
particular types using assert*() functions like {@see \ScssPhp\ScssPhp\Value\assertString}, which
throw user-friendly error messages if they fail.
Selector nesting tests, taken from sass-spec TODO Remove those tests once the compiler uses this implementation of selectors, as sass-spec covers that logic