168 lines
3.6 KiB
JavaScript
168 lines
3.6 KiB
JavaScript
|
import {
|
||
|
component_styles_default
|
||
|
} from "./chunk.K23QWHWK.js";
|
||
|
import {
|
||
|
i
|
||
|
} from "./chunk.CXZZ2LVK.js";
|
||
|
|
||
|
// src/components/tree-item/tree-item.styles.ts
|
||
|
var tree_item_styles_default = i`
|
||
|
${component_styles_default}
|
||
|
|
||
|
:host {
|
||
|
display: block;
|
||
|
outline: 0;
|
||
|
z-index: 0;
|
||
|
}
|
||
|
|
||
|
:host(:focus) {
|
||
|
outline: none;
|
||
|
}
|
||
|
|
||
|
slot:not([name])::slotted(sl-icon) {
|
||
|
margin-inline-end: var(--sl-spacing-x-small);
|
||
|
}
|
||
|
|
||
|
.tree-item {
|
||
|
position: relative;
|
||
|
display: flex;
|
||
|
align-items: stretch;
|
||
|
flex-direction: column;
|
||
|
color: var(--sl-color-neutral-700);
|
||
|
cursor: pointer;
|
||
|
user-select: none;
|
||
|
-webkit-user-select: none;
|
||
|
}
|
||
|
|
||
|
.tree-item__checkbox {
|
||
|
pointer-events: none;
|
||
|
}
|
||
|
|
||
|
.tree-item__expand-button,
|
||
|
.tree-item__checkbox,
|
||
|
.tree-item__label {
|
||
|
font-family: var(--sl-font-sans);
|
||
|
font-size: var(--sl-font-size-medium);
|
||
|
font-weight: var(--sl-font-weight-normal);
|
||
|
line-height: var(--sl-line-height-dense);
|
||
|
letter-spacing: var(--sl-letter-spacing-normal);
|
||
|
}
|
||
|
|
||
|
.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(--sl-color-neutral-500);
|
||
|
padding: var(--sl-spacing-x-small);
|
||
|
width: 1rem;
|
||
|
height: 1rem;
|
||
|
flex-shrink: 0;
|
||
|
cursor: pointer;
|
||
|
}
|
||
|
|
||
|
.tree-item__expand-button {
|
||
|
transition: var(--sl-transition-medium) 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: var(--sl-focus-ring);
|
||
|
outline-offset: var(--sl-focus-ring-offset);
|
||
|
z-index: 2;
|
||
|
}
|
||
|
|
||
|
:host(:not([aria-disabled='true'])) .tree-item--selected .tree-item__item {
|
||
|
background-color: var(--sl-color-neutral-100);
|
||
|
border-inline-start-color: var(--sl-color-primary-600);
|
||
|
}
|
||
|
|
||
|
:host(:not([aria-disabled='true'])) .tree-item__expand-button {
|
||
|
color: var(--sl-color-neutral-600);
|
||
|
}
|
||
|
|
||
|
.tree-item__label {
|
||
|
display: flex;
|
||
|
align-items: center;
|
||
|
transition: var(--sl-transition-fast) color;
|
||
|
}
|
||
|
|
||
|
.tree-item__children {
|
||
|
display: block;
|
||
|
font-size: calc(1em + var(--indent-size, var(--sl-spacing-medium)));
|
||
|
}
|
||
|
|
||
|
/* 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 {
|
||
|
tree_item_styles_default
|
||
|
};
|