@use "sass:map";
@use "sass:math";

/* -- Namespacing Configuration -- */

/*
 * `$namespace` will be prepended to all classes in this library when compiled.
 * do not set `$ns`, that is used as an internal shorthand.
 */

$namespace: "" !default;

/* -- Viewport configuration -- */

$min-site-width: 320 !default;
$max-site-width: 1920 !default;

/* -- Font configuration -- */

/*
 * This should be a unitless number in pixels.
 */
$base-font-size: 16 !default;

/* -- Breakpoint Configuration -- */

/*
 * These settings will determine what classes will be generated and
 * what breakpoints you can use with the `bp` mixins.
 */

$default-media-type: all !default;

$additionalBreakpoints: () !default;

$breakpoints: map.merge(
  (
    xs: 480,
    sm: 680,
    md: 768,
    lg: 960,
    xl: 1200,
    max: $max-site-width,
  ),
  $additionalBreakpoints
) !default;

/* -- Size Configuration -- */

/*
 * These sizes are used to generate custom properties and class
 * variants.
 */

$base-size: 20 !default;

$additionalSizes: () !default;

$sizes: map.merge(
  (
    default: $base-size,
    xs: math.div($base-size, 4),
    sm: math.div($base-size, 2),
    md: $base-size,
    lg: $base-size * 2,
    xl: $base-size * 4,
  ),
  $additionalSizes
) !default;

/* -- Base64 Image Placeholder Strings -- */

$additionalPlaceholders: () !default;

$placeholders: map.merge(
  (
    "1x1":
      "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",
    "2x1":
      "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAABCAQAAABeK7cBAAAAC0lEQVR42mNkAAIAAAoAAv/lxKUAAAAASUVORK5CYII=",
    "4x3":
      "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAQAAAAe/WZNAAAADklEQVR42mNkgAJGDAYAAFEABCaLYqoAAAAASUVORK5CYII=",
    "16x9":
      "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg==",
  ),
  $additionalPlaceholders
) !default;

/* -- Animation Easings -- */

$additionalEasings: () !default;

$easings: map.deep-merge(
  (
    sine: (
      in: cubic-bezier(0.47, 0, 0.745, 0.715),
      out: cubic-bezier(0.39, 0.575, 0.565, 1),
      inOut: cubic-bezier(0.445, 0.05, 0.55, 0.95),
      reversed: (
        in: cubic-bezier(0.255, 0.285, 0.53, 1),
        out: cubic-bezier(0.435, 0, 0.61, 0.425),
        inOut: cubic-bezier(0.45, 0.05, 0.555, 0.95),
      ),
    ),
    quad: (
      in: cubic-bezier(0.55, 0.085, 0.68, 0.53),
      out: cubic-bezier(0.25, 0.46, 0.45, 0.94),
      inOut: cubic-bezier(0.455, 0.03, 0.515, 0.955),
      reversed: (
        in: cubic-bezier(0.32, 0.47, 0.45, 0.915),
        out: cubic-bezier(0.55, 0.06, 0.75, 0.54),
        inOut: cubic-bezier(0.485, 0.045, 0.545, 0.97),
      ),
    ),
    cubic: (
      in: cubic-bezier(0.55, 0.055, 0.675, 0.19),
      out: cubic-bezier(0.215, 0.61, 0.355, 1),
      inOut: cubic-bezier(0.645, 0.045, 0.355, 1),
      reversed: (
        in: cubic-bezier(0.325, 0.81, 0.45, 0.945),
        out: cubic-bezier(0.645, 0, 0.785, 0.39),
        inOut: cubic-bezier(0.645, 0, 0.355, 0.955),
      ),
    ),
    quart: (
      in: cubic-bezier(0.895, 0.03, 0.685, 0.22),
      out: cubic-bezier(0.165, 0.84, 0.44, 1),
      inOut: cubic-bezier(0.77, 0, 0.175, 1),
      reversed: (
        in: cubic-bezier(0.315, 0.78, 0.105, 0.97),
        out: cubic-bezier(0.56, 0, 0.835, 0.16),
        inOut: cubic-bezier(0.825, 0, 0.23, 1),
      ),
    ),
    quint: (
      in: cubic-bezier(0.755, 0.05, 0.855, 0.06),
      out: cubic-bezier(0.23, 1, 0.32, 1),
      inOut: cubic-bezier(0.86, 0, 0.07, 1),
      reversed: (
        in: cubic-bezier(0.145, 0.94, 0.245, 0.95),
        out: cubic-bezier(0.68, 0, 0.77, 0),
        inOut: cubic-bezier(0.93, 0, 0.14, 1),
      ),
    ),
    expo: (
      in: cubic-bezier(0.95, 0.05, 0.795, 0.035),
      out: cubic-bezier(0.19, 1, 0.22, 1),
      inOut: cubic-bezier(1, 0, 0, 1),
      reversed: (
        in: cubic-bezier(0.205, 0.965, 0.05, 0.95),
        out: cubic-bezier(0.78, 0, 0.81, 0),
        inOut: cubic-bezier(1, 0, 0, 1),
      ),
    ),
    circ: (
      in: cubic-bezier(0.6, 0.04, 0.98, 0.335),
      out: cubic-bezier(0.075, 0.82, 0.165, 1),
      inOut: cubic-bezier(0.785, 0.135, 0.15, 0.86),
      reversed: (
        in: cubic-bezier(0.02, 0.665, 0.4, 0.96),
        out: cubic-bezier(0.835, 0, 0.925, 0.18),
        inOut: cubic-bezier(0.85, 0.14, 0.215, 0.865),
      ),
    ),
    back: (
      in: cubic-bezier(0.6, -0.28, 0.735, 0.045),
      out: cubic-bezier(0.175, 0.885, 0.32, 1.275),
      inOut: cubic-bezier(0.68, -0.55, 0.265, 1.55),
      reversed: (
        in: cubic-bezier(0.265, 0.955, 0.4, 1.28),
        out: cubic-bezier(0.68, 0, 0.825, 0.39),
        inOut: cubic-bezier(0.735, 0, 0.32, 2.1),
      ),
    ),
  ),
  $additionalEasings
) !default;
