////
/// (c) hidoo | MIT License
/// @group features
////

@use "sass:list";
@use "sass:meta";
@use "./on" as mixin;
@use "../../settings";

/// Default selectors
/// @access private
/// @type List
///
$_default-selectors: () !default;

/// Utility for pseudo classes like `.is-active`
/// @param {List} $additional-selectors [()] - list of additional selectors
/// @param {List} $capturing-selectors [()] - capturing parent selectors
///
/// @example scss - scss inputs
///   .selector {
///     @include mixin.on-active() {
///       font-size: 16px;
///     }
///   }
///
/// @example css - css outputs
///   .selector:where(.is-active) {
///     font-size: 16px;
///   }
///
@mixin on-active($additional-selectors: (), $capturing-selectors: ()) {
  $selectors: $_default-selectors;

  @if meta.type-of(settings.$selector-active) == "list" {
    $selectors: list.join(
      $selectors,
      settings.$selector-active,
      $separator: comma
    );
  }

  @if meta.type-of($additional-selectors) == "list" {
    $selectors: list.join($selectors, $additional-selectors, $separator: comma);
  }

  @include mixin.on(
    $selectors: $selectors,
    $capturing-selectors: $capturing-selectors
  ) {
    @content;
  }
}
