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

/**
 * @summary A tree is visualization of a structure hierarchy. A branch can be expanded or collapsed.
 */
.slds-tree-container,
.slds-tree_container {
  min-width: calc(var(--slds-g-sizing-base) * 7.5);
  /* stylelint-disable */
  max-width: var(--slds-c-tree-sizing-max-width, 25rem);
  /* stylelint-enable */
}

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

/**
 * @summary Initializes a slds tree
 */
.slds-tree__item {
  display: flex;
  padding-block-start: calc(var(--slds-g-spacing-1) + 2px);
  padding-block-end: calc(var(--slds-g-spacing-1) + 2px);
  padding-inline-start: var(--slds-g-spacing-4);
  padding-inline-end: 0;
}

/**
 * @name item-hovered
 */
.slds-tree__item.slds-is-hovered,
.slds-tree__item:hover {
  background: var(--slds-s-table-row-color-background-selected, var(--slds-g-color-surface-container-2));
  cursor: pointer;
}

/**
 * @summary Styles the focus and selected state for any tree item that has role="treeitem"
 */
.slds-tree [role='treeitem']:focus {
  outline: 0;
}

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

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

.slds-tree [role='treeitem'][aria-selected='true'] > .slds-tree__item {
  background: var(--slds-g-color-brand-base-90);
  box-shadow: var(--slds-g-color-accent-1) 4px 0 0 inset;

  [dir='rtl'] {
    box-shadow: var(--slds-g-color-accent-1) -4px 0 0 inset;
  }
}

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

  [dir='rtl'] {
    box-shadow:
      var(--slds-g-color-accent-1) -4px 0 0 inset,
      var(--slds-g-shadow-inset-focus-1);
  }
}

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

.slds-tree [aria-disabled='true'] .slds-tree__item-meta {
  color: inherit;
}

.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-g-spacing-4) * $current-level);
  }
}
/* stylelint-enable */

/**
* @summary The label text of a tree item or tree branch
*/
.slds-tree__item-label {
  display: block;
}

/**
* @summary The label text of a tree item or tree branch
*/
.slds-tree__item-label:not(a > .slds-tree__item-label) {
  color: var(--slds-g-color-on-surface-2);
}

/**
* @summary The meta text or secondary text of a tree item
*/
.slds-tree__item-meta {
  display: block;
  color: var(--slds-g-color-on-surface-1);
}

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

.slds-tree__item .slds-pill {
  margin-inline-start: var(--slds-g-spacing-3);
}

/**
 * @summary Initializes a slds tree group header
 */
.slds-tree__group-header {
  font-size: var(--slds-g-font-size-base);
  font-weight: var(--slds-g-font-weight-6);
}
