* feat: add "Email Backups" to "Backups" section * chore: remove comment * chore: better wording * chore: put working snjs version * chore: better wording * style: reuse existing css classes and add the missing one * feat: add "No email backup" option * refactor: move the function outside of the useEffect, remove unused utility function * feat (WIP): move CloudLink to backups section * chore: versions bump, type fixes * fix: handle the case when the setting update fails * style: remove dashed border from the confirmation code, UI improvements * feat: implement removing integration, improve interaction on different events * feat: implement non-interactive textarea for showing and copying the code * fix: fix TS errors * feat: implement "Perform backup" logic - remove the code for copying the confirmation code for backup integration - also remove unnecessary parameters passed to Provider * feat: don't show "CloudLink" in preferences pane * chore: show error in console on exception * refactor: better naming, add `coverage` folder to gitignore * fix: return correct setting name * refactor: use async/await for the sake of consistency * chore: remove duplicate line * feat: get urls for cloud backup from snjs * chore: update dependencies * refactor: set both `token` and `frequency` settings when enabling cloud integration; get only `frequency` when checking the integration status * refactor: once the setting is successfully saved, don't get its value from backend; instead, use its value that's still in frontend * feat: move "Receive a notification email if a cloud backup fails." into cloud backups section * fix: text correction * fix: get correct cloud integration url from snjs based on prod/dev environment
259 lines
4.1 KiB
SCSS
259 lines
4.1 KiB
SCSS
//== Media queries breakpoints
|
|
//
|
|
//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
|
|
|
|
// Extra small screen / phone
|
|
//** Deprecated `$screen-xs` as of v3.0.1
|
|
$screen-xs: 480px !default;
|
|
//** Deprecated `$screen-xs-min` as of v3.2.0
|
|
$screen-xs-min: $screen-xs !default;
|
|
|
|
// Small screen / tablet
|
|
//** Deprecated `$screen-sm` as of v3.0.1
|
|
$screen-sm: 768px !default;
|
|
$screen-sm-min: $screen-sm !default;
|
|
|
|
// Medium screen / desktop
|
|
//** Deprecated `$screen-md` as of v3.0.1
|
|
$screen-md: 992px !default;
|
|
$screen-md-min: $screen-md !default;
|
|
//** Deprecated `$screen-desktop` as of v3.0.1
|
|
$screen-desktop: $screen-md-min !default;
|
|
|
|
// Large screen / wide desktop
|
|
//** Deprecated `$screen-lg` as of v3.0.1
|
|
$screen-lg: 1200px !default;
|
|
$screen-lg-min: $screen-lg !default;
|
|
//** Deprecated `$screen-lg-desktop` as of v3.0.1
|
|
$screen-lg-desktop: $screen-lg-min !default;
|
|
|
|
// So media queries don't overlap when required, provide a maximum
|
|
$screen-xs-max: ($screen-sm-min - 1) !default;
|
|
$screen-sm-max: ($screen-md-min - 1) !default;
|
|
$screen-md-max: ($screen-lg-min - 1) !default;
|
|
|
|
@mixin MQ-Xsmall() {
|
|
@media (max-width: $screen-xs-max) {
|
|
@content;
|
|
}
|
|
}
|
|
|
|
@mixin MQ-Small() {
|
|
@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
|
|
@content;
|
|
}
|
|
}
|
|
|
|
@mixin MQ-Medium() {
|
|
@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
|
|
@content;
|
|
}
|
|
}
|
|
|
|
|
|
@mixin MQ-Large() {
|
|
@media (min-width: $screen-lg-min) {
|
|
@content;
|
|
}
|
|
}
|
|
|
|
.block {
|
|
display: block !important;
|
|
}
|
|
|
|
.inline {
|
|
display: inline-block;
|
|
}
|
|
|
|
.normal {
|
|
font-weight: normal !important;
|
|
}
|
|
|
|
.small-text {
|
|
font-size: 10px;
|
|
}
|
|
|
|
.medium-text {
|
|
font-size: 14px !important;
|
|
}
|
|
|
|
.faded {
|
|
opacity: 0.5;
|
|
}
|
|
|
|
.self-start {
|
|
align-self: flex-start;
|
|
}
|
|
|
|
.justify-self-start {
|
|
justify-self: flex-start;
|
|
}
|
|
|
|
.animate-slide-in-top {
|
|
animation: slide-in-top .1s ease-out;
|
|
}
|
|
|
|
@keyframes slide-in-top {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateY(-40%);
|
|
}
|
|
75% {
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
transform: translateY(0%);
|
|
}
|
|
}
|
|
|
|
.m-0 {
|
|
margin: 0;
|
|
}
|
|
|
|
.mb-0 {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.mt-1 {
|
|
margin-top: .203125rem;
|
|
}
|
|
.mt-2 {
|
|
margin-top: .40625rem;
|
|
}
|
|
.mt-3 {
|
|
margin-top: .609375rem;
|
|
}
|
|
.mt-5 {
|
|
margin-top: 1.015625rem;
|
|
}
|
|
.mt-8 {
|
|
margin-top: 2rem;
|
|
}
|
|
|
|
.p-0 {
|
|
padding: 0rem;
|
|
}
|
|
.p-4 {
|
|
padding: 0.8125rem;
|
|
}
|
|
.p-5 {
|
|
padding: 1.015625rem;
|
|
}
|
|
|
|
.pt-0 {
|
|
padding-top: 0;
|
|
}
|
|
|
|
.px-3 {
|
|
padding-left: .609375rem;
|
|
padding-right: .609375rem;
|
|
}
|
|
|
|
.py-2 {
|
|
padding-top: .40625rem;
|
|
padding-bottom: .40625rem;
|
|
}
|
|
|
|
.border-0 {
|
|
border-width: 0px;
|
|
}
|
|
|
|
.rounded {
|
|
border-radius: var(--sn-stylekit-general-border-radius);
|
|
}
|
|
.rounded-md {
|
|
border-radius: 0.3046875rem;
|
|
}
|
|
|
|
.bg-main {
|
|
background-color: var(--sn-stylekit-info-color);
|
|
}
|
|
.bg-transparent {
|
|
background-color: transparent;
|
|
}
|
|
|
|
.capitalize {
|
|
text-transform: capitalize;
|
|
}
|
|
|
|
.col-start-1 {
|
|
grid-column-start: 1;
|
|
}
|
|
.col-start-2 {
|
|
grid-column-start: 2;
|
|
}
|
|
.col-end-3 {
|
|
grid-column-end: 3;
|
|
}
|
|
|
|
.hover\:color-info:hover {
|
|
color: var(--sn-stylekit-info-color)
|
|
}
|
|
|
|
.hover\:brightness-130:hover {
|
|
filter: brightness(130%);
|
|
}
|
|
|
|
.cursor-pointer {
|
|
cursor: pointer;
|
|
|
|
input[type="checkbox"] {
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
|
|
.cursor-default {
|
|
cursor: default;
|
|
}
|
|
|
|
.pointer-events-none {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.fill-current {
|
|
fill: currentColor;
|
|
}
|
|
|
|
.font-editor {
|
|
font-family: var(--sn-stylekit-editor-font-family);
|
|
}
|
|
.font-semibold {
|
|
font-weight: 600 !important;
|
|
}
|
|
.font-bold {
|
|
font-weight: 700 !important;
|
|
}
|
|
|
|
.grid-template-cols-1fr {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.relative {
|
|
position: relative;
|
|
}
|
|
|
|
.row-start-1 {
|
|
grid-row-start: 1;
|
|
}
|
|
|
|
.selectable {
|
|
user-select: text !important;
|
|
cursor: text;
|
|
}
|
|
|
|
.shadow-sm {
|
|
box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.04), 0px 1px 4px 0px rgba(0, 0, 0, 0.12);
|
|
}
|
|
|
|
.text-sm {
|
|
font-size: var(--sn-stylekit-font-size-h5);;
|
|
}
|
|
.text-info-contrast {
|
|
color: var(--sn-stylekit-info-contrast-color);
|
|
}
|
|
|
|
.wrap {
|
|
word-wrap: break-word;
|
|
word-break: break-all;
|
|
}
|