mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-10-12 07:01:29 +08:00

* feat: time picker hint and timezone picker UI with basic functionality + helper to get timezones * feat: add support for esc keypress to close the timezone picker * chore: add the selected timezone as url param and close timezone picker on select * fix: overall improvement + add searchIndex to timezone * feat: timezone preferences UI * chore: improve timezone utils * chore: change timezone item from div to button * feat: display timezone in timepicker input * chore: fix the typo * fix: don't focus on time picker when timezone is clicked * fix: fix the issue of timezone breaking for browser and utc timezones * fix: display the timezone in timepicker hint 'You are at' * feat: timezone basic functionality (#6492) * chore: change div to fragment + change type to any as the ESLint complains otherwise * chore: manage etc timezone filtering with an arg * chore: update timezone wrapper class name * fix: add timezone support to downloaded logs * feat: add current timezone to dashboard list and configure metadata modal * fix: add pencil icon next to timezone hint + change the copy to Current timezone * fix: properly handle the escape button behavior for timezone picker * chore: replace @vvo/tzdb with native Intl API for timezones * feat: lightmode for timezone picker and timezone adaptation components * fix: use normald tz in browser timezone * fix: timezone picker lightmode fixes * feat: display selected time range in 12 hour format * chore: remove unnecessary optional chaining * fix: fix the typo in css variable * chore: add em dash and change icon for timezone hint in date/time picker * chore: move pen line icon to the right of timezone offset * fix: fix the failing tests * feat: handle switching off the timezone adaptation
167 lines
2.8 KiB
SCSS
167 lines
2.8 KiB
SCSS
// Variables
|
|
$font-family: 'Inter';
|
|
$item-spacing: 8px;
|
|
|
|
:root {
|
|
--border-color: var(--bg-slate-400);
|
|
}
|
|
|
|
.lightMode {
|
|
--border-color: var(--bg-vanilla-400);
|
|
}
|
|
|
|
// Mixins
|
|
@mixin text-style-base {
|
|
font-family: $font-family;
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
}
|
|
|
|
@mixin flex-center {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.timezone-picker {
|
|
width: 532px;
|
|
color: var(--bg-vanilla-400);
|
|
font-family: $font-family;
|
|
|
|
&__search {
|
|
@include flex-center;
|
|
justify-content: space-between;
|
|
padding: 12px 14px;
|
|
border-bottom: 1px solid var(--border-color);
|
|
}
|
|
|
|
&__input-container {
|
|
@include flex-center;
|
|
gap: 6px;
|
|
width: -webkit-fill-available;
|
|
}
|
|
|
|
&__input {
|
|
@include text-style-base;
|
|
width: 100%;
|
|
background: transparent;
|
|
border: none;
|
|
outline: none;
|
|
color: var(--bg-vanilla-100);
|
|
font-size: 14px;
|
|
line-height: 20px;
|
|
letter-spacing: -0.07px;
|
|
padding: 0;
|
|
&.ant-input:focus {
|
|
box-shadow: none;
|
|
}
|
|
|
|
&::placeholder {
|
|
color: var(--bg-vanilla-400);
|
|
}
|
|
}
|
|
|
|
&__esc-key {
|
|
@include text-style-base;
|
|
font-size: 8px;
|
|
color: var(--bg-vanilla-400);
|
|
letter-spacing: -0.04px;
|
|
border-radius: 2.286px;
|
|
border: 1.143px solid var(--bg-ink-200);
|
|
border-bottom-width: 2.286px;
|
|
background: var(--bg-ink-400);
|
|
padding: 0 1px;
|
|
}
|
|
|
|
&__list {
|
|
max-height: 310px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
&__item {
|
|
@include flex-center;
|
|
justify-content: space-between;
|
|
padding: 7.5px 6px 7.5px $item-spacing;
|
|
margin: 4px $item-spacing;
|
|
cursor: pointer;
|
|
background: transparent;
|
|
border: none;
|
|
width: -webkit-fill-available;
|
|
color: var(--bg-vanilla-400);
|
|
font-family: $font-family;
|
|
|
|
&:hover,
|
|
&.selected {
|
|
border-radius: 2px;
|
|
background: rgba(171, 189, 255, 0.04);
|
|
color: var(--bg-vanilla-100);
|
|
}
|
|
|
|
&.has-divider {
|
|
position: relative;
|
|
&::after {
|
|
content: '';
|
|
position: absolute;
|
|
bottom: -2px;
|
|
left: -$item-spacing;
|
|
right: -$item-spacing;
|
|
border-bottom: 1px solid var(--border-color);
|
|
}
|
|
}
|
|
}
|
|
|
|
&__name {
|
|
@include text-style-base;
|
|
font-size: 14px;
|
|
line-height: 20px;
|
|
letter-spacing: -0.07px;
|
|
}
|
|
|
|
&__offset {
|
|
color: var(--bg-vanilla-100);
|
|
font-size: 12px;
|
|
line-height: 16px;
|
|
letter-spacing: -0.06px;
|
|
}
|
|
}
|
|
|
|
.timezone-name-wrapper {
|
|
@include flex-center;
|
|
gap: 6px;
|
|
|
|
&__selected-icon {
|
|
height: 15px;
|
|
width: 15px;
|
|
}
|
|
}
|
|
|
|
.lightMode {
|
|
.timezone-picker {
|
|
&__search {
|
|
.search-icon {
|
|
stroke: var(--bg-ink-400);
|
|
}
|
|
}
|
|
&__input {
|
|
color: var(--bg-ink-100);
|
|
}
|
|
&__esc-key {
|
|
background-color: var(--bg-vanilla-100);
|
|
border-color: var(--bg-vanilla-400);
|
|
color: var(--bg-ink-400);
|
|
}
|
|
&__item {
|
|
color: var(--bg-ink-400);
|
|
}
|
|
&__offset {
|
|
color: var(--bg-ink-100);
|
|
}
|
|
}
|
|
.timezone-name-wrapper {
|
|
&__selected-icon {
|
|
.check-icon {
|
|
stroke: var(--bg-ink-100);
|
|
}
|
|
}
|
|
}
|
|
}
|