@use 'sass:string';
@use '../function' as *;
@use '../config' as *;

/// Generates transition related declarations.
/// @param {string} $duration - The duration of the transition.
/// @param {string} $property - The property to which the transition is applied.
/// @param {string} $timing-function - The speed curve of the transition.
/// @return {string} - The generated transition declarations.
/// @throws {error} - If the duration or timing-function is invalid.
@mixin transition(
  $duration: config('duration', $transition),
  $property: all,
  $timing-function: config('timing-function', $transition),
) {
  transition-duration: $duration;
  transition-property: string.unquote($property);
  transition-timing-function: $timing-function;
}
