// data types and "tokens"

$color-true-shadow: rgba(153, 153, 51, 0.5);
$color-false-shadow: rgba(204, 51, 51, 0.5);
$color-stringified-shadow: rgba(0, 200, 200, 0.6);

.t_type {
  color: var(--color-type);
}

.t_bool[data-type-more=true] {
  color: var(--color-true);
  text-shadow: 1px 1px 2px $color-true-shadow;
}
.t_bool[data-type-more=false] {
  color: var(--color-false);
  text-shadow: 1px 1px 2px $color-false-shadow;
}

/*
.t_callable {
  font-weight: bold;
  .t_type,
  .namespace {
    font-weight: normal;
  }
}
*/

//
// property-name, constant-name, method-name
//
.t_identifier {
  color: var(--color-identifier);
  font-weight: bold;
  font-family: monospace;
  white-space: nowrap;
  .t_name {
    color: inherit;
  }
}
.t_int,
.t_float,
.t_string[data-type-more=numeric],
.t_string[data-type-more=timestamp] {
  font-family: var(--font-family-numeric) !important;
  color: var(--color-numeric);
  font-size: 1.15em;
  line-height: 1.15em;
  &::before,
  &::after {
    // undo font-size increase got
    font-family: var(--font-family);
    font-size: 0.8695em;
  }
}

.t_key {
  opacity: 0.75;
  &[data-file] {
    opacity: 1;
  }
  &::before,
  &::after {
    font-family: var(--font-family);
    color: var(--color-key-bracket);
  }
  &::before {
    content: '[';
    margin-right: 1px;
  }
  &::after {
    content: ']';
    margin-left: 1px;
  }
  &.t_int { white-space: nowrap; }
}
.t_keyword {
  color: var(--color-keyword);
}
.t_null {
  color: var(--color-t-null);
}
.t_operator {
  color: var(--color-operator);
  white-space: nowrap !important; //  override .debug .t_string > *
}
.t_punct {
  color: var(--color-punct);
}

.excluded,
.t_maxDepth,
.t_notInspected,
.t_recursion,
.t_unknown {
  font-weight: bold;
  color: var(--color-recursion);
}
.t_resource { font-style: italic; }
.t_string {
  white-space: pre-wrap;
  word-break: break-all;
  &::before,
  &::after {
    font-family: var(--font-family);
    // color: var(--color-quote);
    opacity: 0.6;
  }
  &::before { content: open-quote; }
  &::after { content: close-quote; }
  &.classname {
    &::before { content: none; }
    &::after { content: none; }
  }
  > * {
    white-space: normal;
    word-break: break-word;
  }
  pre {
    white-space: pre;
  }
}
.t_stringified {
  text-shadow: 0 0 2px $color-stringified-shadow;
}
.t_undefined::after {
  content: "undefined";
  opacity: 0.3;
}

.file-docroot {
  opacity: 0.5;
  font-style: italic;
}
.file-path-common {
  opacity: 0.66;
}
.file-path-rel {
}
.file-basename {
  color: var(--color-identifier);
}
