/** * Copyright Aquera Inc 2023 * * This source code is licensed under the BSD-3-Clause license found in the * LICENSE file in the root directory of this source tree. */ import {css} from 'lit'; /** * TreeItem CSS */ export const styles = css` :host { box-sizing: border-box; -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing)); -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing)); text-rendering: var(--nile-text-rendering, var(--ng-text-rendering)); } :host *, :host *::before, :host *::after { box-sizing: inherit; } [hidden] { display: none !important; } :host { display: block; outline: 0; z-index: 0; } :host(:focus) { outline: none; } slot:not([name])::slotted(nile-icon) { margin-inline-end: var(--nile-spacing-md); } .tree-item { position: relative; display: flex; align-items: stretch; flex-direction: column; color: var(--nile-colors-dark-900); cursor: pointer; user-select: none; } .tree-item__checkbox { pointer-events: none; } .tree-item__expand-button, .tree-item__checkbox, .tree-item__label { font-family: var(--nile-font-family-serif); font-size: var(--nile-type-scale-4); font-weight: var(--nile-font-weight-regular); } .tree-item__checkbox::part(base) { display: flex; align-items: center; } .tree-item__indentation { display: block; width: 1em; flex-shrink: 0; } .tree-item__expand-button { display: flex; align-items: center; justify-content: center; box-sizing: content-box; color: var(--nile-colors-neutral-500); padding: var(--nile-spacing-md); width: 1rem; height: 1rem; flex-shrink: 0; cursor: pointer; } .tree-item__expand-button { transition: 250ms rotate ease; } .tree-item--expanded .tree-item__expand-button { rotate: 90deg; } .tree-item--expanded.tree-item--rtl .tree-item__expand-button { rotate: -90deg; } .tree-item--expanded slot[name='expand-icon'], .tree-item:not(.tree-item--expanded) slot[name='collapse-icon'] { display: none; } .tree-item:not(.tree-item--has-expand-button) .tree-item__expand-icon-slot { display: none; } .tree-item__expand-button--visible { cursor: pointer; } .tree-item__item { display: flex; align-items: center; border-inline-start: solid 3px transparent; } .tree-item--disabled .tree-item__item { opacity: 0.5; outline: none; cursor: not-allowed; } :host(:focus-visible) .tree-item__item { outline: solid 3px var(--nile-colors-neutral-500); outline-offset: 1px; z-index: 2; } :host(:not([aria-disabled='true'])) .tree-item--selected .tree-item__item { background-color: var(--nile-colors-primary-100); border-inline-start-color: var(--nile-colors-primary-700); } :host(:not([aria-disabled='true'])) .tree-item__expand-button { color: var(--nile-colors-dark-900); } .tree-item__label { display: flex; align-items: center; transition: 150ms color; } .tree-item__children { display: block; font-size: calc(1em + var(--indent-size, 1rem)); } /* Indentation lines */ .tree-item__children { position: relative; } .tree-item__children::before { content: ''; position: absolute; top: var(--indent-guide-offset); bottom: var(--indent-guide-offset); left: calc(1em - (var(--indent-guide-width) / 2) - 1px); border-inline-end: var(--indent-guide-width) var(--indent-guide-style) var(--indent-guide-color); z-index: 1; } .tree-item--rtl .tree-item__children::before { left: auto; right: 1em; } @media (forced-colors: active) { :host(:not([aria-disabled='true'])) .tree-item--selected .tree-item__item { outline: dashed 1px SelectedItem; } } `; export default [styles];