open-consul/ui/packages/consul-ui/app/components/composite-row/index.scss

121 lines
3.1 KiB
SCSS

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
@import './layout';
%composite-row {
@extend %list-row;
}
%composite-row > .header {
@extend %composite-row-header, %list-row-header;
}
%composite-row > .detail {
@extend %composite-row-detail, %list-row-detail;
}
%composite-row > .actions {
@extend %composite-row-actions;
}
%with-composite-row-intent:hover,
%with-composite-row-intent:focus,
%with-composite-row-intent:active {
@extend %list-row-intent;
}
/* project level */
.list-collection > ul > li:not(:first-child) {
@extend %composite-row;
}
/* hoverable rows */
%composite-row.linkable,
.consul-service-instance-list > ul > li:not(:first-child),
.consul-node-list > ul > li:not(:first-child),
.consul-token-list > ul > li:not(:first-child),
.consul-policy-list > ul > li:not(:first-child),
.consul-role-list > ul > li:not(:first-child),
.consul-auth-method-list > ul > li:not(:first-child) {
@extend %with-composite-row-intent;
}
// TODO: This hides the iconless dt's in the below lists as they don't have
// tooltips the todo would be to wrap these texts in spans
.consul-nspace-list > ul > li:not(:first-child) dt,
.consul-token-list > ul > li:not(:first-child) dt,
.consul-policy-list > ul li:not(:first-child) dl:not(.datacenter) dt,
.consul-role-list > ul > li:not(:first-child) dt {
@extend %iconless-dt;
}
%iconless-dt {
display: none;
}
%iconless-dt + dd {
margin-left: 0 !important;
}
/* TODO: the service list has a 1px offset */
.consul-policy-list dl.datacenter dt,
.consul-service-list li > div:first-child > dl:first-child dd {
margin-top: 1px;
}
.consul-service-list .detail,
.consul-service-instance-list .detail {
overflow-x: visible !important;
}
.consul-intention-permission-list > ul {
border-top: 1px solid var(--token-color-surface-interactive-active);
}
.consul-service-instance-list .port dt,
.consul-service-instance-list .port dt::before {
display: none;
}
.consul-service-instance-list .port .copy-button {
margin-right: 0;
}
// Copy Button
%composite-row .copy-button {
display: inline-flex;
}
%composite-row .copy-button button {
@extend %body-100-medium;
}
%composite-row-header .copy-button {
margin-left: 4px;
}
%composite-row-detail .copy-button {
margin-top: 2px;
}
%composite-row .copy-button button {
padding: 0 !important;
margin: 0 !important;
}
%composite-row-header .copy-button button {
display: none;
}
%composite-row-header:hover .copy-button button {
display: block;
}
%composite-row .copy-button button:hover {
background-color: transparent !important;
}
%composite-row-detail > .consul-kind:first-child,
%composite-row-detail > .consul-external-source:first-child {
margin-left: -5px;
}
%composite-row-detail .policy::before {
@extend %with-file-text-mask, %as-pseudo;
margin-right: 3px;
}
%composite-row-detail .role::before {
@extend %with-user-plain-mask, %as-pseudo;
margin-right: 3px;
}
%composite-row-detail .policy-management::before {
margin-right: 3px;
}
%composite-row-header .policy-management dd::before,
%composite-row-detail .policy-management::before {
@extend %with-star-fill-mask, %as-pseudo;
--icon-color: var(--token-color-consul-brand);
}