blob: bb098f34cd9c0ab647126b38d3752d1713c6f0fe [file] [log] [blame]
@charset "utf-8";
@import "../util";
$left-padding: 4em; // 32pt; // 2.8em;
$border-size: 2px;
$bracket-size: .4em; // 4pt;
/**
* Virtual Collection Builder
*/
.vc {
margin-top: 4pt;
.docGroup {
position: relative;
display: inline-block;
margin-left: $left-padding; // 28pt
.docGroup { display: block; }
padding: 4pt 2pt 4pt 0pt;
border: {
radius: $standard-border-radius * 2;
style: solid;
width: 0 $bracket-size; // .6em .5em
}
&[data-operation] {
> .doc:first-child::before,
> .docGroup:first-child::before {
content: none;
}
> .doc::before,
> .docGroup::before {
display: inline-block;
position: absolute;
text-align: right;
width: $left-padding;
margin-left: -1 * ($left-padding + .5em); // -28pt
line-height: 1.5em;
border-top: $border-size solid transparent;
}
> .docGroup::before {
margin-left: -1 * ($left-padding + .5em) + (-1 * $bracket-size);
}
}
// Or operation
&[data-operation=or] {
> .doc::before,
> .docGroup::before {
// This will be overruled by JS!
content: "or";
}
}
// And operation
&[data-operation=and] {
> .doc::before,
> .docGroup::before {
// This will be overruled by JS!
content: "and";
}
}
/**
* All operators on groups
*/
> .operators {
position: absolute;
display: block;
top: 10px;
vertical-align: middle;
left: 3px;
> span:first-child {
border: {
top-left-radius: 0;
bottom-left-radius: 0;
}
}
margin-left: 100%;
padding: 0;
}
}
/**
* All document rules
*/
.doc {
line-height: 170%;
padding-left: $left-padding;
> span + span,
> span + div + span,
> span + ul + span {
margin-left: 5pt;
}
> span.key,
> span.value {
font-weight: bold;
}
> span.value {
&[data-type=regex] {
font-style: italic;
&::after,
&::before {
content: '/';
}
}
}
// Unspecified value
&.unspecified > span, span.unspecified {
padding: 0 4px;
box-shadow: $choose-box-shadow;
border: {
style: solid;
width: $border-size;
radius: $standard-border-radius;
}
@include choose-item;
&:hover {
@include choose-hover;
}
}
> span.key.fixed {
color: $light-green;
}
/**
* All operators on docs
*/
> .operators {
display: inline-block;
margin-left: 10px;
}
> span.key {
position: relative;
> ul {
margin: 0;
margin-left: 3.3em;
}
}
}
.rewritten {
.rewrite {
margin-left: 4pt;
display: inline-block;
color: $dark-orange;
&::after {
font: {
family: FontAwesome;
style: normal;
weight: normal;
}
content: $fa-rewrite;
text-decoration: underline;
}
> span {
display: none;
}
}
}
/**
* All operators
*/
.operators {
opacity: 0;
white-space: nowrap;
padding: 0;
font-size: 0;
line-height: 0;
text-align: center;
}
> .docGroup {
margin-left: 0;
}
.menu {
display: inline-block;
}
.menu li[data-type=ref]:before,
span.key.ref:before {
content: $fa-referto;
font-family: 'FontAwesome';
padding-right: 4pt;
style: normal;
weight: normal;
}
div.value {
position: absolute;
display: inline-block;
z-index: 8000;
padding: 4pt;
margin-top: -6pt;
border: {
width: $border-size;
style: solid;
radius: $standard-border-radius;
}
input {
border-width: 0;
}
> div {
padding: 2pt;
cursor: pointer;
font: {
size: 80%;
style: italic;
}
display: inline-block;
@include choose-item;
border: {
width: $border-size;
style: solid;
radius: $standard-border-radius;
}
&:hover {
@include choose-hover;
}
}
&.regex {
> input {
font-style: italic;
}
> div {
@include choose-active;
}
}
}
}
.vc:not(.fragment) {
.docGroup, .doc {
// color: $nearly-white;
// color: $dark-green;
color: $dark-grey;
// text-shadow: $light-shadow;
}
/**
* Rules for all docGroups
*/
// Whiten on hover
.docGroup:hover {
// background-color: rgba(255,255,255,.06);
background-color: rgba(255,255,255,.3);
}
.doc > span.key.fixed {
color: $light-green;
}
.doc > span:not(.fixed) {
cursor: pointer;
&:hover {
// color: $dark-green;
color: $dark-orange;
}
}
.rewritten .rewrite {
color: $dark-orange;
}
.doc, .docGroup {
&:hover > .operators {
opacity: 1;
}
}
.docGroup {
&[data-operation] {
> .doc::before,
> .docGroup::before {
// color: $dark-green;
color: $dark-orange;
}
}
&[data-operation=or] {
border-color: $dark-orange;
}
}
div.value {
@include choose-item;
box-shadow: $choose-box-shadow;
}
}
/**
* The z-index cascade for groups.
*/
$dg-index : 30;
.docGroup {
> .operators {
z-index: $dg-index;
}
.docGroup {
> .operators {
z-index: $dg-index + 1;
}
.docGroup {
> .operators {
z-index: $dg-index + 2;
}
.docGroup {
> .operators {
z-index: $dg-index + 3;
}
.docGroup {
> .operators {
z-index: $dg-index + 4;
}
.docGroup {
> .operators {
z-index: $dg-index + 5;
}
.docGroup {
> .operators {
z-index: $dg-index + 6;
}
}
}
}
}
}
}
}
.vc.fragment {
.doc {
margin-right: 2em;
}
}
#collection {
line-height: 1em;
border-radius: $standard-border-radius;
}
/*
header #vc-view > div {
margin: 1.3em 0 .5em 0;
}
*/
#vc-choose > span.rewritten {
&::after {
color: $dark-orange;
padding: 0;
padding-left: 4px;
font: {
family: FontAwesome;
style: normal;
weight: normal;
}
content: $fa-rewrite;
text-decoration: underline;
}
}
div#vc-view {
position:relative;
> div.vc {
display: none;
&.active {
display: block;
}
margin: 1.3em 0 .5em 0;
border: 2px solid $dark-green;
background-color: $nearly-white;
> div:first-child {
// margin: 1.3em;
padding: 1.3em;
}
}
}
div.panel.vcinfo {
padding: 3pt 0pt 3pt 3pt;
background-color: $dark-green;
div.button-group > span {
box-shadow: none;
}
}