mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2025-02-25 07:07:48 +01:00
* feat: add shortcuts for insert_query and update_query into `Database` example: await db.insert("table_name", base_model) * remove where from argument * chore: code clean-up * extension manager * lnbits-qrcode components * parse date from dict * refactor: make `settings` a fixture * chore: remove verbose key names * fix: time column * fix: cast balance to `int` * extension toggle vue3 * vue3 @input migration * fix: payment extra and payment hash * fix dynamic fields and ext db migration * remove shadow on cards in dark theme * screwed up and made more css pushes to this branch * attempt to make chip component in settings dynamic fields * dynamic chips * qrscanner * clean init admin settings * make get_user better * add dbversion model * remove update_payment_status/extra/details * traces for value and assertion errors * refactor services * add PaymentFiatAmount * return Payment on api endpoints * rename to get_user_from_account * refactor: just refactor (#2740) * rc5 * Fix db cache (#2741) * [refactor] split services.py (#2742) * refactor: spit `core.py` (#2743) * refactor: make QR more customizable * fix: print.html * fix: qrcode options * fix: white shadow on dark theme * fix: datetime wasnt parsed in dict_to_model * add timezone for conversion * only parse timestamp for sqlite, postgres does it * log internal payment success * fix: export wallet to phone QR * Adding a customisable border theme, like gradient (#2746) * fixed mobile scan btn * fix test websocket * fix get_payments tests * dict_to_model skip none values * preimage none instead of defaulting to 0000... * fixup test real invoice tests * fixed pheonixd for wss * fix nodemanager test settings * fix lnbits funding * only insert extension when they dont exist --------- Co-authored-by: Vlad Stan <stan.v.vlad@gmail.com> Co-authored-by: Tiago Vasconcelos <talvasconcelos@gmail.com> Co-authored-by: Arc <ben@arc.wales> Co-authored-by: Arc <33088785+arcbtc@users.noreply.github.com>
241 lines
4.5 KiB
SCSS
241 lines
4.5 KiB
SCSS
$themes: (
|
|
'classic': (
|
|
primary: #673ab7,
|
|
secondary: #9c27b0,
|
|
dark: #1f2234,
|
|
info: #333646,
|
|
marginal-bg: #1f2234,
|
|
marginal-text: #fff
|
|
),
|
|
'bitcoin': (
|
|
primary: #ff9853,
|
|
secondary: #ff7353,
|
|
dark: #2d293b,
|
|
info: #333646,
|
|
marginal-bg: #2d293b,
|
|
marginal-text: #fff
|
|
),
|
|
'freedom': (
|
|
primary: #e22156,
|
|
secondary: #b91a45,
|
|
dark: #0a0a0a,
|
|
info: #1b1b1b,
|
|
marginal-bg: #2d293b,
|
|
marginal-text: #fff
|
|
),
|
|
'cyber': (
|
|
primary: #7cb342,
|
|
secondary: #558b2f,
|
|
dark: #0a0a0a,
|
|
info: #1b1b1b,
|
|
marginal-bg: #2d293b,
|
|
marginal-text: #fff
|
|
),
|
|
'mint': (
|
|
primary: #3ab77d,
|
|
secondary: #27b065,
|
|
dark: #1f342b,
|
|
info: #334642,
|
|
marginal-bg: #1f342b,
|
|
marginal-text: #fff
|
|
),
|
|
'autumn': (
|
|
primary: #b7763a,
|
|
secondary: #b07927,
|
|
dark: #34291f,
|
|
info: #463f33,
|
|
marginal-bg: #342a1f,
|
|
marginal-text: rgb(255, 255, 255)
|
|
),
|
|
'flamingo': (
|
|
primary: #ff00ff,
|
|
secondary: #fda3fd,
|
|
dark: #2f032f,
|
|
info: #bc23bc,
|
|
marginal-bg: #311231,
|
|
marginal-text: rgb(255, 255, 255)
|
|
),
|
|
'monochrome': (
|
|
primary: #494949,
|
|
secondary: #6b6b6b,
|
|
dark: #000,
|
|
info: rgb(39, 39, 39),
|
|
marginal-bg: #000,
|
|
marginal-text: rgb(255, 255, 255)
|
|
)
|
|
);
|
|
@each $theme, $colors in $themes {
|
|
@each $name, $color in $colors {
|
|
@if $name== 'dark' {
|
|
[data-theme='#{$theme}'] .q-drawer--dark,
|
|
body[data-theme='#{$theme}'].body--dark,
|
|
[data-theme='#{$theme}'] .q-menu--dark {
|
|
background: $color !important;
|
|
}
|
|
/* IF WANTING TO SET A DARKER BG COLOR IN THE FUTURE
|
|
// set a darker body bg for all themes, when in "dark mode"
|
|
body[data-theme='#{$theme}'].body--dark {
|
|
background: scale-color($color, $lightness: -60%);
|
|
}
|
|
*/
|
|
}
|
|
@if $name== 'info' {
|
|
[data-theme='#{$theme}'] .q-card--dark,
|
|
[data-theme='#{$theme}'] .q-stepper--dark {
|
|
background: $color !important;
|
|
}
|
|
}
|
|
}
|
|
[data-theme='#{$theme}'] {
|
|
@each $name, $color in $colors {
|
|
.bg-#{$name} {
|
|
background: $color !important;
|
|
}
|
|
.text-#{$name} {
|
|
color: $color !important;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
[data-theme='freedom'] .q-drawer--dark {
|
|
background: #0a0a0a !important;
|
|
}
|
|
|
|
[data-theme='freedom'] .q-header {
|
|
background: #0a0a0a !important;
|
|
}
|
|
|
|
[data-theme='cyber'] .q-drawer--dark {
|
|
background: #0a0a0a !important;
|
|
}
|
|
|
|
[data-theme='cyber'] .q-header {
|
|
background: #0a0a0a !important;
|
|
}
|
|
|
|
[data-theme='salvador'] .q-drawer--dark {
|
|
background: #242424 !important;
|
|
}
|
|
|
|
[data-theme='salvador'] .q-header {
|
|
background: #0f47af !important;
|
|
}
|
|
|
|
[v-cloak] {
|
|
display: none;
|
|
}
|
|
|
|
body.body--dark .q-table--dark {
|
|
background: transparent;
|
|
}
|
|
|
|
body.body--dark .q-field--error {
|
|
.text-negative,
|
|
.q-field__messages {
|
|
color: yellow !important;
|
|
}
|
|
}
|
|
|
|
.lnbits-drawer__q-list .q-item {
|
|
padding-top: 5px !important;
|
|
padding-bottom: 5px !important;
|
|
border-top-right-radius: 3px;
|
|
border-bottom-right-radius: 3px;
|
|
&.q-item--active {
|
|
color: inherit;
|
|
font-weight: bold;
|
|
}
|
|
}
|
|
|
|
.lnbits__dialog-card {
|
|
width: 500px;
|
|
}
|
|
|
|
.q-table--dense {
|
|
th:first-child,
|
|
td:first-child,
|
|
.q-table__bottom {
|
|
padding-left: 6px !important;
|
|
}
|
|
th:last-child,
|
|
td:last-child,
|
|
.q-table__bottom {
|
|
padding-right: 6px !important;
|
|
}
|
|
}
|
|
|
|
a.inherit {
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
|
|
// QR video
|
|
video {
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.material-icons {
|
|
font-family: 'Material Icons';
|
|
font-weight: normal;
|
|
font-style: normal;
|
|
font-size: 24px;
|
|
line-height: 1;
|
|
letter-spacing: normal;
|
|
text-transform: none;
|
|
display: inline-block;
|
|
white-space: nowrap;
|
|
word-wrap: normal;
|
|
direction: ltr;
|
|
-moz-font-feature-settings: 'liga';
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
.q-rating__icon {
|
|
font-size: 1em;
|
|
}
|
|
|
|
// text-wrap
|
|
.text-wrap {
|
|
word-break: break-word;
|
|
}
|
|
|
|
.q-card {
|
|
code {
|
|
overflow-wrap: break-word;
|
|
}
|
|
}
|
|
|
|
// qrcode
|
|
.qrcode__wrapper {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.qrcode__wrapper canvas {
|
|
width: 100% !important; // important to override qrcode inline width
|
|
height: 100% !important;
|
|
max-width: 350px; // default width of <lnbits-qrcode> component
|
|
}
|
|
.qrcode__image {
|
|
position: absolute;
|
|
max-width: 52px;
|
|
width: 15%;
|
|
overflow: hidden;
|
|
background: #fff;
|
|
overflow: hidden;
|
|
padding: 0.2rem;
|
|
border-radius: 0.2rem;
|
|
}
|
|
|
|
.whitespace-pre-line {
|
|
white-space: pre-line;
|
|
}
|
|
.q-carousel__slide {
|
|
background-size: contain;
|
|
background-repeat: no-repeat;
|
|
}
|
|
.q-dialog__inner--minimized {
|
|
padding: 12px;
|
|
}
|