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

$breadcrumb-tokens: () !default;

// scss-docs-start breadcrumb-tokens
// stylelint-disable-next-line scss/dollar-variable-default
$breadcrumb-tokens: defaults(
  (
    --breadcrumb-margin-bottom: 1rem,
    --breadcrumb-font-size: inherit,
    --breadcrumb-bg: transparent,
    --breadcrumb-border-radius: var(--border-radius),
    --breadcrumb-divider-color: var(--fg-4),
    --breadcrumb-link-padding-x: .75rem,
    --breadcrumb-link-padding-y: .25rem,
    --breadcrumb-link-color: var(--fg-3),
    --breadcrumb-link-hover-color: var(--fg-2),
    --breadcrumb-link-hover-bg: var(--bg-1),
    --breadcrumb-link-active-color: var(--fg-1),
    --breadcrumb-link-border-radius: var(--border-radius-lg),
  ),
  $breadcrumb-tokens
);
// scss-docs-end breadcrumb-tokens

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

    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: var(--breadcrumb-padding-y, 0) var(--breadcrumb-padding-x, 0);
    font-size: var(--breadcrumb-font-size);
    list-style: none;
    background-color: var(--breadcrumb-bg);
    @include border-radius(var(--breadcrumb-border-radius));
  }

  .breadcrumb-item {
    display: flex;
  }

  .breadcrumb-divider {
    margin-inline: calc(var(--breadcrumb-link-padding-x) / 4);
    color: var(--breadcrumb-divider-color);
  }

  .breadcrumb-link {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 2.25rem;
    padding: var(--breadcrumb-link-padding-y) var(--breadcrumb-link-padding-x);
    color: var(--breadcrumb-link-color);
    text-decoration: none;
    @include border-radius(var(--breadcrumb-link-border-radius));
    @include transition(.1s text-decoration-color ease-in-out);

    &:hover {
      z-index: 2;
      color: var(--breadcrumb-link-hover-color);
      background-color: var(--breadcrumb-link-hover-bg);
    }

    &.active {
      color: var(--breadcrumb-link-active-color);
    }
  }
}
