hyperdx/packages/app/styles/LogTable.module.scss

230 lines
3.9 KiB
SCSS

$button-height: 18px;
.tableWrapper {
/* CSS custom properties for variant support */
--log-table-bg: var(--color-bg-body);
--log-table-muted-bg: var(--color-bg-muted);
&.muted {
--log-table-bg: var(--color-bg-muted);
--log-table-muted-bg: var(--color-bg-highlighted);
}
}
.table {
table-layout: fixed;
border-spacing: 0;
border-collapse: separate;
background: var(--log-table-bg);
}
.tableHead {
background: var(--log-table-bg);
position: sticky;
top: 0;
z-index: 1;
height: 24px;
}
.tableRow {
position: relative;
&__selected {
background-color: var(--log-table-muted-bg);
font-weight: bold;
}
&:hover .rowButtons {
opacity: 1;
}
&:hover .rowContentButton {
background-color: var(--log-table-muted-bg);
}
&:has(.expandButton:hover) .rowButtons {
opacity: 0 !important;
}
&:has(.expandButton:hover) .rowContentButton {
background-color: transparent !important;
}
}
.expandedRowContent {
max-height: 400px;
overflow: auto;
background-color: var(--log-table-muted-bg);
}
.expandButton {
background: transparent;
border: none;
padding: 0 2px;
color: inherit;
cursor: pointer;
display: inline-flex;
align-items: center;
justify-content: center;
transition: background-color 0.15s ease-in-out;
border-radius: 4px;
min-height: $button-height;
&:hover {
background-color: var(--log-table-muted-bg);
}
&:focus,
&:focus-visible {
background-color: var(--log-table-muted-bg);
outline: none;
}
&:active {
outline: none;
box-shadow: none;
background-color: var(--log-table-muted-bg);
}
svg {
transition: transform 0.2s ease-in-out;
transform-origin: center;
}
&.expanded svg {
transform: rotate(90deg);
}
}
.expandButtonSeparator {
width: 1px;
height: calc($button-height - 8px);
border-right: 1px solid var(--color-border);
margin-left: 2px;
margin-right: 2px;
display: inline-block;
vertical-align: middle;
}
.rowContentButton {
background: transparent;
border: none;
padding: 0;
margin: 0;
width: 100%;
cursor: pointer;
text-align: left;
color: inherit;
transition: background-color 0.15s ease-in-out;
border-radius: 4px;
min-height: $button-height;
display: flex;
align-items: center;
position: relative;
&:hover .rowButtons {
opacity: 1;
}
&:focus,
&:focus-visible {
background-color: var(--log-table-muted-bg);
outline: none;
}
&:active {
outline: none;
box-shadow: none;
background-color: var(--log-table-muted-bg);
}
&.isWrapped {
align-items: flex-start;
}
&.isTruncated {
align-items: flex-start;
}
}
.rowButtons {
position: absolute;
top: 2px;
right: 0;
padding-left: 10px;
padding-right: 4px;
display: flex;
gap: 4px;
opacity: 0;
transition: opacity 0.2s ease-in-out;
z-index: 0;
align-items: flex-start;
&:hover {
opacity: 1;
}
}
.iconActionButton {
padding: 4px;
border-radius: 4px;
background-color: var(--color-bg-surface);
border: 1px solid var(--color-border);
width: 20px;
height: 20px;
display: flex;
align-items: center;
justify-content: center;
transition: transform 0.2s ease-in-out;
pointer-events: auto;
&:hover {
transform: scale(1.05);
}
&.copied {
color: var(--color-bg-success);
}
}
.fieldTextContainer {
position: relative;
display: block;
width: 100%;
}
.fieldText {
overflow: hidden;
padding: 2px 4px;
cursor: pointer;
transition: background-color 0.2s ease-in-out;
> span:hover {
border-radius: 4px;
background-color: var(--color-bg-highlighted);
}
&.chart {
overflow: visible;
min-height: 50px;
}
}
.fieldText.truncated {
text-overflow: ellipsis;
white-space: nowrap;
min-height: $button-height;
}
.fieldText.wrapped {
word-break: break-word;
white-space: normal;
display: flex;
}
.fieldTextPopover {
background-color: transparent;
border: none;
box-shadow: none;
padding: 0;
}