/*
 * Copyright (c) 2026, Salesforce, Inc.,
 * All rights reserved.
 * For full license text, see the LICENSE.txt file
 */

.slds-tree-container,
.slds-tree_container {
  min-width: var(--slds-c-tree-sizing-min-width);
  max-width: var(--slds-c-tree-sizing-max-width);
}

.slds-tree-container > .slds-text-heading_label,
.slds-tree_container > .slds-text-heading_label {
  margin-block-end: var(--slds-c-tree-heading-spacing-block-end);
}

.slds-tree__item {
  display: flex;
  background-color: var(--slds-c-tree-item-color-background);
  padding-block-start: var(--slds-c-tree-item-spacing-block-start, var(--slds-c-tree-item-spacing-block));
  padding-block-end: var(--slds-c-tree-item-spacing-block-end, var(--slds-c-tree-item-spacing-block));
  padding-inline-start: var(--slds-c-tree-item-spacing-inline-start, var(--slds-c-tree-item-spacing-inline));
  padding-inline-end: var(--slds-c-tree-item-spacing-inline-end, var(--slds-c-tree-item-spacing-inline));
}

.slds-tree [role='treeitem']:focus {
  outline: 0;
}

.slds-tree [role='treeitem'] > [role='group'] {
  display: none;
}

.slds-tree [role='treeitem'][aria-expanded='true'] > [role='group'] {
  display: block;
}

[aria-expanded='false'] > .slds-tree__item .slds-button__icon {
  transition: 0.2s transform ease-in-out;
  transform: rotate(0deg);
}

[aria-expanded='true'] > .slds-tree__item .slds-button__icon {
  transition: 0.2s transform ease-in-out;
  transform: rotate(90deg);

  [dir='rtl'] {
    transform: rotate(-90deg);
  }
}

/* stylelint-disable */
@for $current-level from 1 to 20 {
  [aria-level='$current-level'] > .slds-tree__item {
    padding-inline-start: calc(var(--slds-c-tree-item-spacing-indent) * $current-level);
  }
}
/* stylelint-enable */

.slds-tree__item:hover,
.slds-tree__item.slds-is-hovered {
  background-color: var(--slds-c-tree-item-color-background-hover);
  cursor: pointer;
}

.slds-tree [role='treeitem']:focus > .slds-tree__item {
  background-color: var(--slds-c-tree-item-color-background-focus);
  cursor: pointer;
  text-decoration: underline;
}

.slds-tree [role='treeitem']:focus-visible > .slds-tree__item {
  box-shadow: var(--slds-c-tree-item-shadow-focus);
}

.slds-tree [role='treeitem'][aria-selected='true'] > .slds-tree__item {
  background-color: var(--slds-c-tree-item-color-background);
  box-shadow: var(--slds-c-tree-item-color-border) 4px 0 0 inset;

  [dir='rtl'] {
    box-shadow: var(--slds-c-tree-item-color-border) -4px 0 0 inset;
  }
}

.slds-tree [role='treeitem'][aria-selected='true']:focus-visible > .slds-tree__item {
  box-shadow:
    var(--slds-c-tree-item-color-border) 4px 0 0 inset,
    var(--slds-c-tree-item-shadow-focus);

  [dir='rtl'] {
    box-shadow:
      var(--slds-c-tree-item-color-border) -4px 0 0 inset,
      var(--slds-c-tree-item-shadow-focus);
  }
}

.slds-tree [aria-disabled='true'] {
  color: var(--slds-c-tree-color-foreground-disabled);
}

.slds-tree [aria-disabled='true'] .slds-tree__item:hover,
.slds-tree [aria-disabled='true'] .slds-tree__item.slds-is-hovered {
  background-color: transparent;
  cursor: default;
}

.slds-tree__item-label {
  display: block;
}

.slds-tree__item-label:not(a > .slds-tree__item-label) {
  color: var(--slds-c-tree-item-label-color-foreground);
}

.slds-tree [aria-disabled='true'] .slds-tree__item-label:not(a > .slds-tree__item-label) {
  color: var(--slds-c-tree-item-label-color-foreground-disabled);
}

.slds-tree__item-meta {
  display: block;
  color: var(--slds-c-tree-item-meta-color-foreground);
}

.slds-tree [aria-disabled='true'] .slds-tree__item-meta {
  color: var(--slds-c-tree-item-meta-color-foreground-disabled);
}

.slds-tree__item .slds-button {
  align-self: flex-start;
  margin-block-start: 2px;
}

.slds-tree__item .slds-pill {
  margin-inline-start: var(--slds-c-tree-item-pill-spacing-inline-start);
}

.slds-tree__group-header {
  font-size: var(--slds-c-tree-group-header-font-size);
  font-weight: var(--slds-c-tree-group-header-font-weight);
}
