/**
 * Copyright IBM Corp. 2016, 2025
 *
 * This source code is licensed under the Apache-2.0 license found in the
 * LICENSE file in the root directory of this source tree.
 */

@use '@carbon/styles/scss/breakpoint' as *;
@use '@carbon/styles/scss/config' as *;
@use '@carbon/styles/scss/spacing' as *;
@use '@carbon/styles/scss/theme' as *;
@use '@carbon/styles/scss/type' as *;
@use '../../globals/vars' as *;
@use '../../globals/imports' as *;
@use '../../globals/utils/flex-grid' as *;
@use '../card';
@use '../link-with-icon';

@mixin link-list {
  :host(#{$c4d-prefix}-link-list) {
    padding-block-end: 0;

    ul {
      padding: 0;
      margin: 0;
    }

    .#{$c4d-prefix}--link-list__list--vertical,
    .#{$c4d-prefix}-ce--link-list__list--end {
      display: grid;

      ::slotted(#{$c4d-prefix}-link-list-item),
      ::slotted(#{$c4d-prefix}-link-list-item-cta) {
        outline: none;
      }
    }

    .#{$c4d-prefix}--link-list__list--vertical
      ::slotted(#{$c4d-prefix}-link-list-item),
    .#{$c4d-prefix}--link-list__list--vertical
      ::slotted(#{$c4d-prefix}-link-list-item-cta) {
      display: flex;
    }

    .#{$c4d-prefix}-ce--link-list__heading__wrapper {
      display: contents;
    }

    @include breakpoint(md) {
      .#{$c4d-prefix}-ce--link-list__heading--split
        ::slotted(#{$c4d-prefix}-link-list-heading) {
        inline-size: 33.3%;
        padding-inline-end: 10%;
      }
    }

    .#{$c4d-prefix}-ce--link-list__list--split,
    .#{$c4d-prefix}-ce--link-list__list--three-columns {
      ::slotted(#{$c4d-prefix}-link-list-item),
      ::slotted(#{$c4d-prefix}-link-list-item-cta) {
        display: grid;
        align-items: stretch;
        // margin-right: -$spacing-05;
      }

      @include breakpoint(md) {
        display: grid;
        grid-column-gap: $spacing-07;
      }
    }

    .#{$c4d-prefix}-ce--link-list__list--split {
      @include breakpoint(md) {
        grid-template-columns: 1fr 1fr;
      }
    }

    .#{$c4d-prefix}-ce--link-list__list--three-columns {
      @include breakpoint(md) {
        grid-template-columns: 1fr 1fr 1fr;
      }
    }
  }

  :host(#{$c4d-prefix}-link-list-item),
  :host(#{$c4d-prefix}-link-list-item-cta) {
    .#{$prefix}--link {
      display: flex;
      align-content: flex-start;
      padding: $spacing-03 0;
      gap: $spacing-03;
      inline-size: 100%;

      span,
      ::slotted(svg[slot='icon']) {
        align-self: flex-start;
      }
    }
  }

  :host(#{$c4d-prefix}-link-list-heading) {
    display: block;
    color: $text-primary;
    margin-block-end: $spacing-05;

    .#{$prefix}--link {
      cursor: pointer;
    }

    @include type-style('heading-02');
  }

  .#{$c4d-prefix}--link-list__list {
    ::slotted(#{$c4d-prefix}-link-list-item),
    ::slotted(#{$c4d-prefix}-link-list-item-cta) {
      display: flex;
      border-block-start: 1px solid $border-subtle-01;
    }

    &:last-of-type {
      border-block-end: 1px solid $border-subtle-01;
    }
  }

  .#{$c4d-prefix}-ce--link-list__list--end {
    ::slotted(#{$c4d-prefix}-link-list-item),
    ::slotted(#{$c4d-prefix}-link-list-item-cta) {
      border-block-end: 1px solid $border-subtle-01;
      border-block-start: 1px solid $border-subtle-01;
      margin-block-start: -1px;
    }
  }

  .#{$c4d-prefix}--link-list__list--horizontal {
    ::slotted(#{$c4d-prefix}-link-list-item),
    ::slotted(#{$c4d-prefix}-link-list-item-cta) {
      float: inline-start;
      padding-block-end: $spacing-05;
      padding-inline-end: $spacing-07;

      @include breakpoint(md) {
        padding-block-end: 0;
      }
    }
  }

  .#{$c4d-prefix}--link-list__list--vertical {
    ::slotted(*) {
      margin-block-end: 0;
    }
  }

  :host(#{$c4d-prefix}-link-list-item)
    .#{$prefix}--link-with-icon__icon-left
    ::slotted(svg[slot='icon']),
  :host(#{$c4d-prefix}-link-list-item-cta)
    .#{$prefix}--link-with-icon__icon-left
    ::slotted(svg[slot='icon']) {
    min-block-size: 20px;
    min-inline-size: 20px;
  }
}
