.template-components__section {
position: relative;
padding-top: var( --space-sm );
padding-bottom: var( --space-sm );
display: flex;
flex-direction: column;
gap: var( --space-xs );
line-height: var( --line-height-sm );
}
/* TemplateStyles style tag can get in-between */
.template-components__section + .template-components__section,
.template-components__section + style + .template-components__section {
border-top: 1px solid var( --border-color-base );
}
.template-components__label {
align-self: flex-start;
display: flex;
align-items: center;
color: var( --color-subtle );
font-size: var( --font-size-small );
letter-spacing: 0.05em;
gap: var( --space-xs );
}
.template-components__label img {
height: 1rem;
width: auto;
opacity: var( --opacity-icon-base );
filter: var( --filter-invert );
}
.template-components__group {
display: flex;
gap: var( --space-xs );
flex-wrap: wrap;
flex-grow: 1;
}
.template-components__subgroup {
display: flex;
flex-direction: column;
gap: var( --space-xs );
flex-grow: 1;
}
.template-components__subgroup .template-component__connectorY {
top: -0.5rem; /* calc( var( --space-sm ) * -1 ) */
}
.template-components__subgroup .template-component:last-of-type .template-component__connectorY {
bottom: calc( 50% + 2px); /* calc( var( --connector-thickness ) + 2px ) */
}
.template-component {
display: flex;
}
.template-component__connectors {
/* --connector-thickness: 2px; */
position: relative;
}
.template-component__connectorX,
.template-component__connectorY {
position: absolute;
background-color: var( --border-color-base );
left: calc( 50% - 2px ); /* calc( 50% - var( --connector-thickness ) ) */
}
.template-component__connectorX {
top: calc( 50% - 2px ); /* calc( 50% - var( --connector-thickness ) ) */
right: 0;
height: 2px; /* var( --connector-thickness ) */
}
.template-component__connectorY {
top: 0;
bottom: 0;
width: 2px; /* var( --connector-thickness ) */
}
.template-component--level-1 .template-component__connectors {
display: none;
}
.template-component--level-2 .template-component__connectors {
width: 3rem;
}
.template-component--level-3 .template-component__connectors {
margin-left: 3rem;
width: 3rem;
}
.template-component__card {
position: relative;
border: 1px solid var( --border-color-base );
border-radius: var( --border-radius-medium );
display: grid;
grid-template-columns: 3rem auto;
flex-grow: 1;
}
.template-component__port,
.template-component__item {
display: grid;
align-items: center;
}
.template-component__port {
padding: var( --space-sm ) 0;
border-right: 1px solid var( --border-color-base );
border-top-left-radius: var( --border-radius-medium );
border-bottom-left-radius: var( --border-radius-medium );
justify-items: center;
background-color: var( --color-surface-0 );
font-weight: var( --font-weight-medium );
text-align: center;
}
.template-component__count {
color: var( --color-subtle );
font-size: var( --font-size-x-small );
}
.template-component__item {
padding: var( --space-sm ) var( --space-md );
border-top-right-radius: var( --border-radius-medium );
border-bottom-right-radius: var( --border-radius-medium );
background-color: var( --color-surface-2 );
}
.template-component__title {
display: flex;
gap: 0 var(--space-xxs);
flex-wrap: wrap;
word-break: break-word;
align-items: center;
gap: var( --space-xxs );
color: var( --color-emphasized );
font-weight: var( --font-size-medium );
font-size: var( --font-size-small );
}
.template-component__title-subtext {
color: var( --color-subtle );
font-size: var( --font-size-x-small );
}
.template-component__title-subtext:before {
content: '(';
}
.template-component__title-subtext:after {
content: ')';
}
/* New links on component title is usually a false alert */
.template-component__title a.new {
color: var( --color-emphasized );
}
.template-component__subtitle {
color: var( --color-subtle );
font-size: var( --font-size-x-small );
}
.template-component__subtitle a {
color: var( --color-subtle );
}