nightshade-api 0.52.0

Procedural high level API for the nightshade game engine
Documentation
/* nightshade tree. */

.nightshade-tree {
  display: flex;
  flex-direction: column;
  font-size: 13px;
  user-select: none;
}

.nightshade-tree-row {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 3px 6px;
  border-radius: 6px;
  cursor: pointer;
}

.nightshade-tree-row:hover {
  background: var(--nightshade-hover);
}

.nightshade-tree-chevron {
  display: inline-flex;
  width: 14px;
  justify-content: center;
  color: var(--nightshade-text-dim);
  transition: transform 0.12s ease;
}

.nightshade-tree-chevron.open {
  transform: rotate(90deg);
}

.nightshade-tree-spacer {
  display: inline-block;
  width: 14px;
}

.nightshade-tree-label {
  white-space: nowrap;
}

.nightshade-tree-icon {
  display: inline-flex;
  width: 16px;
  justify-content: center;
  color: var(--nightshade-text-dim);
}

.nightshade-tree-row.selected {
  background: var(--nightshade-accent-soft);
}

.nightshade-tree-row:focus-visible {
  outline: 2px solid var(--nightshade-accent);
  outline-offset: -2px;
}

.nightshade-tree-row.drop-target {
  box-shadow: inset 0 0 0 1px var(--nightshade-accent);
  background: var(--nightshade-accent-soft);
}

.nightshade-tree-rename {
  flex: 1;
  min-width: 0;
  padding: 1px 5px;
  border: 1px solid var(--nightshade-accent);
  border-radius: 5px;
  background: var(--nightshade-input-bg);
  color: var(--nightshade-text);
  font: inherit;
}

.nightshade-tree-rename:focus {
  outline: none;
}