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

@use "sass:map";
@use "sass:math";
@use "sass:meta";
@use "../../../settings";

/// convert px to rem
/// @param {Number} $size - font size
/// @param {Number} $base-size [settings.$font-base-size] - base font size
/// @return {Number} rem value
///
/// @example scss - scss inputs
///   .selector {
///     font-size: function.math-px-to-rem(14px, 16px);
///   }
///
/// @example css - css outputs
///   .selector {
///     font-size: 0.875rem;
///   }
///
@function px-to-rem($size, $base-size: null) {
  @if $size == 0 {
    @return 0;
  }

  @if meta.type-of($size) != "number" or math.unit($size) != "px" {
    @error "@function function.math-px-to-rem: Argument $size is not valid number.";
  }

  @if not $base-size {
    $base-size: settings.$font-base-size;
  }

  @if meta.type-of($base-size) != "number" or math.unit($base-size) != "px" {
    @error "@function function.math-px-to-rem: Argument $base-size is not valid number.";
  }

  @if 0 < $size and $size < 10 {
    @warn "@function function.math-px-to-rem: This specification is may not render as intended, because argument $size is less than 10."; // stylelint-disable-line max-line-length
  }

  @return math.div($size, $base-size) * 1rem;
}
