@use "config" as *;
@use "functions" as *;
@use "mixins/border-radius" as *;
@use "mixins/tokens" as *;

$alert-tokens: () !default;

// scss-docs-start alert-tokens
// stylelint-disable-next-line scss/dollar-variable-default
$alert-tokens: defaults(
  (
    --alert-gap: #{$spacer * .75},
    --alert-bg: var(--theme-bg-subtle, var(--bg-1)),
    --alert-padding-x: #{$spacer},
    --alert-padding-y: #{$spacer},
    --alert-color: var(--theme-fg, inherit),
    --alert-border-color: var(--theme-border, var(--border-color)),
    --alert-border: var(--border-width) solid var(--alert-border-color),
    --alert-border-radius: var(--border-radius),
    --alert-link-color: inherit,
    --hr-border-color: var(--theme-border, var(--border-color)),
  ),
  $alert-tokens
);
// scss-docs-end alert-tokens

@layer components {
  .alert {
    @include tokens($alert-tokens);

    display: flex;
    gap: var(--alert-gap);
    align-items: start;
    padding: var(--alert-padding-y) var(--alert-padding-x);
    color: var(--alert-color);
    background-color: var(--alert-bg);
    border: var(--alert-border);
    @include border-radius(var(--alert-border-radius));
  }

  .alert > p {
    margin-bottom: 0;
  }

  .alert-heading {
    // Specified to prevent conflicts of changing $headings-color
    color: inherit;
  }

  // Provide class for links that match alerts
  .alert-link {
    font-weight: var(--font-weight-semibold);
    color: var(--alert-link-color);
  }
}
