seitime-frappe/frappe/public/less/desk.less
Suraj Shetty 7107409531
Merge version-12-hotfix to develop (#9095)
* fix: REST API utf-8 decoding on creates/updates

Creating or updating a document via the REST API would generate an error of:

`TypeError: the JSON object must be str, not 'bytes'`

Because get_data() returns bytes which must be explicitly converted to a string before parsing as JSON.

Defect introduced by efe94886a and a71a92341e

* fix(patch): Handle failures in while making Prepared Report attachments private

* case insensitive search for postgres

* convert operator to lowercase while checking

* fix: Pass prepared_report_name as filter if exists

* fix: Add input to multiselect_list control

* fix(reportview): convert to unicode conditionally

fixes TypeError: decoding str is not supported

Traceback (most recent call last):
  File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 57, in application
    response = frappe.handler.handle()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 22, in handle
    data = execute_cmd(cmd)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 61, in execute_cmd
    return frappe.call(method, **frappe.form_dict)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 1038, in call
    return fn(*args, **newargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 511, in wrapper_fn
    retval = fn(*args, **get_newargs(fn, kwargs))
  File "/home/frappe/frappe-bench/apps/frappe/frappe/desk/reportview.py", line 177, in export_query
    frappe.response['result'] = text_type(f.read(), 'utf-8')
TypeError: decoding str is not supported

Signed-off-by: Chinmay D. Pai <chinmaydpai@gmail.com>

* chore: remove useless encode

Signed-off-by: Chinmay D. Pai <chinmaydpai@gmail.com>

* fix: Allow Rename in Website Route Meta

* fix: Add Visit Web Page button in form

* fix: next schedule date should be on or after current date

* test: next schedule date

* fix: Change modified by

* fix: do not allow bulk update for core, single doctypes and doctypes from inactive domains

* fix: switch to safe_decode

* test: Fix list_view test by removing clear-cache code (#8941)

* test: Fix listview test by waiting for clear-cache

* test: Move wait to list_view.js

* test: Try removing clear-cache

* fix(integration): Social Login Key (#8940)

add missing field

* fix: don't set filter for restrict_to_domain in Bulk Update Tool

* fix: query report chart options

* fix: Default and company address fixes

* fix: revert changes made to get_default_address function

* fix: Remove changes in notifications

* fix: list view group by filter ambiguous column name

* fix: changelog modal ui

* test: list view child table filter with created by filter

* fix: not able to download XML file

* fix(security): invalidate reset_password_key on password reset

currently there is no way to invalidate reset_password_key on updating
password through the user settings. so whenever the user sets a new
password we'll invalidate the reset_password_key, so that existing links
to reset user passwords cannot be used.

Signed-off-by: Chinmay D. Pai <chinmaydpai@gmail.com>

* fix: Pin faker version to avoid test failures

* perf: optimise globals search

* fix: add index on child table

* fix: do not pop item from list

* fix: dont add index for global search doctype

* fix: rename function to set

* tests: fix results being return

* fix: codacy fixes

* fix: Code cleanup

- Pass values so that db cursor can handle escaping

* fix: Convert list to tuple

* style: added semi-colon

* fix: add default role on sign up via SSO

* fix(autocomplete): parse options (#8999)

* fix(autocomplete): parse options

* fix: add ignore validation flag

* fix: minor change

* fix(email): try to encode email part to utf-8 (#8964)

fixes issues with class objects other than str

Traceback (most recent call last):
  File "/home/frappe/frappe-bench/apps/frappe/frappe/email/doctype/email_account/email_account.py", line 281, in receive
    communication = self.insert_communication(msg, args=args)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/email/doctype/email_account/email_account.py", line 338, in insert_communication
    email = Email(raw)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/email/receive.py", line 372, in __init__
    self.parse()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/email/receive.py", line 393, in parse
    self.process_part(part)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/email/receive.py", line 445, in process_part
    self.text_content += self.get_payload(part)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/email/receive.py", line 489, in get_payload
    charset = self.get_charset(part)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/email/receive.py", line 484, in get_charset
    charset = chardet.detect(frappe.safe_encode(part))['encoding']
  File "/home/frappe/frappe-bench/env/lib/python3.6/site-packages/chardet/__init__.py", line 34, in detect
    '{0}'.format(type(byte_str)))
TypeError: Expected object of type bytes or bytearray, got: <class 'email.message.Message'>

Signed-off-by: Chinmay D. Pai <chinmaydpai@gmail.com>

* fix: Ambiguous column error when going to next doc (#9005)

fix: Ambiguous column error when going to next doc

Co-authored-by: Prssanna Desai <prssud@gmail.com>

* fix(patch): auto commit on more than 10000 writes

fixes issue where patch fails with:

frappe.exceptions.ValidationError: Too many writes in one request. Please send smaller requests

Signed-off-by: Chinmay D. Pai <chinmaydpai@gmail.com>

* revert: changes in currency formatting  (#9003)

* fix: reverted currency formatting

* ux: added description for currency's number format
* It doesn't have any effect on how the currency is formatted.

* fix: revert json changes in currency master

* fix(filters): set default id to empty string instead of 0 (#9014)

fixes issue where "undefined" value gets set to 0 in postgres, which causes ProgrammingError since the expected value is of type str and not int

* revert: changes in currency formatting  (#9003)

* fix: reverted currency formatting

* ux: added description for currency's number format
* It doesn't have any effect on how the currency is formatted.

* fix: revert json changes in currency master

* feat: add doc for email linking

* fix: missing commits while reverting currency changes

* fix(file): Public-private issue (#9032)

* fix: Pass file's is_private for doc creation

* fix: File is_private and file_url mismatch

* fix: Check if file_url exists

* fix: Validation check

* fix(postgres): Convert is_private to int

* fix: File path for content_hash

* fix: Show default currency as a fallback for currency fieldtype (#8992)

* fix: Show default currency as a fallback for currency fieldtype

* test: Add a test for currency formatting

* fix: Add a patch to fix all user's home settings (#9040)

* fix: Add a patch to fix all user's home settings

* fix: Remove limit

* fix: Allow field of submitted doc to edit if field has allow_on_submit enabled

* test: Add test to check if field is editable

* fix: Typo

* test: Add assert statement for value

* test: Clear cache after creating doctype

* fix: Codacy

* fix checkbox behavior in rtl view when clicking on label to check (#8898)

* fix checkbox behavior in rtl view when clicking on label to check

* fix: Undo changes in desk.css

* fix: Empty row validation

* style: Fix code formatting

* fix: Terminate regex

* fix: don't validate email for standard filters

* fix: before setting user default value, if fieldtype is Link check if doc exists

* Revert "fix: user default value for Link fields"

* before setting user default value, if fieldtype is Link check if doc exists

* fix: Remove Attachment on remove

* fix: minor changes

* style: fix Codacy issue

There should be no space before ','. (comma-spacing)

* fix: rfc5322 compliance for python3 (#9056)

* start of tests

* rfc compliant emails for frappe.

* fix for deepsource

* fix length of strings.

* fix bug that I'm not sure where it came from?

* codacy and deepsource issues trying to keep them happy

* take a punt in the dark

* fix: use SMTPUTF8 instead of SMTP and other minor fixes

Signed-off-by: Chinmay D. Pai <chinmaydpai@gmail.com>

* fix: patch home_settings_for_all_users

* style: Fix Codacy

* fix: KeyError: 'hidden_modules'

* fix: TypeError in home_settings patch

Convert set to list

* refactor: override style for changelog modal

* Merge V12-pre-release to version-12-hotfix (#9094)

Merge V12-pre-release to version-12-hotfix

Co-authored-by: null <rohitw1991@gmail.com>
Co-authored-by: Prssanna Desai <prssud@gmail.com>
Co-authored-by: Chinmay Pai <chinmaydpai@gmail.com>
Co-authored-by: Vishal Dhayagude <vishaldhayagude09@gmail.com>
Co-authored-by: Himanshu <himanshuwarekar@yahoo.com>
Co-authored-by: null <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: null <sahilkhan28297@gmail.com>

* Revert queue.py

Co-authored-by: Ben Knowles <benknowles@users.noreply.github.com>
Co-authored-by: Aditya Hase <aditya@adityahase.com>
Co-authored-by: Shridhar Patil <shridharpatil2792@gmail.com>
Co-authored-by: Faris Ansari <netchampfaris@users.noreply.github.com>
Co-authored-by: Chinmay Pai <chinmaydpai@gmail.com>
Co-authored-by: Rucha Mahabal <ruchamahabal2@gmail.com>
Co-authored-by: Revant Nandgaonkar <revant.one@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Shivam Mishra <scmmishra@users.noreply.github.com>
Co-authored-by: Deepesh Garg <42651287+deepeshgarg007@users.noreply.github.com>
Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
Co-authored-by: Himanshu <himanshuwarekar@yahoo.com>
Co-authored-by: Rohan <Alchez@users.noreply.github.com>
Co-authored-by: Mangesh-Khairnar <mkhairnar10@gmail.com>
Co-authored-by: Prssanna Desai <prssud@gmail.com>
Co-authored-by: Saqib <thefalconx33@gmail.com>
Co-authored-by: Nabin Hait <nabinhait@gmail.com>
Co-authored-by: Ammar Hararah <ammarkharara@gmail.com>
Co-authored-by: Vishal Dhayagude <vishdha@users.noreply.github.com>
Co-authored-by: sahil28297 <37302950+sahil28297@users.noreply.github.com>
2019-12-23 12:24:52 +05:30

1157 lines
16 KiB
Text

@import "variables.less";
@import "mixins.less";
@import "common.less";
@import "print.less";
.nav-pills a, .nav-pills a:hover {
border-bottom: none;
}
a.form-link {
color: inherit;
font-weight: bold;
font-size: 102%;
}
a[disabled="disabled"] {
color: @text-muted;
text-decoration: none;
cursor: default;
&:hover {
text-decoration: none;
}
}
.link-primary& {
color: @brand-primary;
&:hover, &:focus {
color: @brand-primary;
}
}
.scroll-to-top {
background-color: @light-bg;
padding: 7px;
border-radius: 3px;
}
.alert-badge {
margin: 4px 0px;
}
.alert-badge .badge {
margin-top: 3px;
}
/* alert */
#alert-container {
position: fixed;
bottom: 0px;
right: 20px;
z-index: 1050;
}
#alert-container .desk-alert {
box-shadow: 0 0px 5px rgba(0, 0, 0, 0.1);
max-width: 400px;
min-width: 200px;
max-height: 200px;
background-color: @light-yellow;
border: 1px solid @border-color;
// word-break: break-all;
overflow-y: auto;
position: relative;
transform: translateX(calc(100% + 20px));
transition: transform 300ms ease;
padding: 0px;
.alert-message {
padding: 10px 40px 10px 10px;
.indicator::before {
margin-bottom: 1px;
}
}
.close {
position: absolute;
top: 10px;
right: 10px;
color: inherit;
opacity: 1;
font-size: inherit;
}
.next-action-container {
display: flex;
.next-action {
border: none;
background: none;
width: 100%;
border-top: 1px solid @border-color;
border-right: 1px solid @border-color;
padding: 7px;
outline: none;
font-size: 12px;
font-weight: bold;
color: @text-light;
&:hover {
background-color: darken(@light-yellow, 5%);
}
&:last-child {
border-right: none;
}
}
}
}
.missing-image {
background-color: @light-bg;
line-height: 140px;
vertical-align: middle;
text-align: center;
width: 140px;
height: 140px;
}
.missing-image .octicon {
font-size: 32px;
color: @border-color;
}
.missing-image.small {
width: 20px;
height: 20px;
}
.missing-image.small .octicon {
font-size: 16px;
}
.frappe-editor {
cursor: text;
}
.frappe-editor img {
max-width: 100%;
}
textarea.form-control {
height: 120px;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
background-color: @light-bg;
}
.link-select-row {
padding: 5px;
border-bottom: 1px solid @light-border-color;
}
.hidden-xs-inline, .hidden-xs-inline-block {
display: none;
}
.barcode-wrapper {
text-align: center;
}
@media (min-width: 768px) {
.video-modal .modal-dialog {
width: 700px;
}
}
@media (min-width: 768px) {
.hidden-xs-inline {
display: inline;
}
.hidden-xs-inline-block {
display: inline-block;
}
.listview-main-section {
border-right: 1px solid @border-color;
}
}
.panel-bg {
background-color: @panel-bg;
}
.light-bg {
background-color: @light-bg;
}
.modal-backdrop {
opacity: 0.5;
position: fixed;
}
.modal-header {
padding: 10px 15px;
}
.modal-title {
margin-top: 5px;
}
.modal-message {
margin: 30px 15px;
color: @text-muted;
text-align: center;
}
.btn-primary.disabled {
background-color: #b1bdca;
color: #fff;
border-color: #b1bdca;
}
.form-control {
position: relative;
input {
// for vertically aligned text in inputs
padding: 6px 10px 8px;
}
}
.input-area {
position: relative;
}
.input-xs {
height: 26px;
font-size: @text-medium;
}
.link-field.ui-front {
z-index: inherit;
}
.modal .hasDatepicker {
z-index: 1140;
}
.link-field.ui-front {
z-index: inherit;
}
.form-group {
margin-bottom: 7px;
}
.print-preview {
padding: 0px;
max-width: 8.3in;
margin: auto;
min-height: 11.69in;
}
.open-notification {
position:relative;
left: 2px;
display:inline-block;
background:#ff5858;
font-size: @text-medium;
line-height:20px;
padding:0 8px;
color:#fff;
border-radius:10px;
cursor: pointer;
margin-right: 10px;
}
.progress, .progress-bar {
box-shadow: none;
}
a.progress-small {
.progress-chart {
width: 40px;
margin-top: 4px;
float: right;
}
.progress {
margin-bottom: 0;
}
.progress-bar {
transition: unset;
background-color: #98d85b;
}
}
li.user-progress {
.progress-chart {
width: 50px;
margin-top: 8px;
}
.progress {
margin-bottom: 0;
background-color: #fff;
border: 1px solid #e5e7e9;
}
.progress-bar {
transition: unset;
background-color: #98d85b;
}
}
/* on small screens, show only icons on top */
@media (max-width: 767px) {
.module-view-layout .nav-stacked > li {
float: left;
margin-bottom: 5px;
}
.nav-stacked > li + li {
margin-top: 0px;
margin-left: 2px;
}
li.user-progress .progress-chart {
width: 25px;
}
li.user-progress {
display: none;
}
}
.msg-box {
padding: 30px 15px;
text-align: center;
color: @text-muted;
}
.no-border {
border: none !important;
}
.message-row {
padding: 10px 15px;
}
.message-row .indicator {
margin-left: -5px;
margin-right: -20px;
}
.message-box {
.indicator {
margin-right: 15px;
margin-top: 7px;
}
.timeline-head {
padding: 30px;
border: 0px;
border-bottom: 1px solid @border-color;
}
}
.page-only-label {
margin-top: 5px;
text-align: center;
}
.intro-area {
padding: 15px 30px;
}
.file-upload {
.input-group-addon {
color: @text-muted;
font-size: 12px;
}
.file-upload-or {
font-size: 12px;
margin: 0px 7px;
}
.uploaded-filename,
.web-link-wrapper,
.input-upload,
.input-link {
display: inline-block;
vertical-align: middle;
}
.input-upload {
vertical-align: top;
}
.uploaded-filename {
border: 1px solid @border-color;
border-radius: 3px;
}
.uploaded-filename .btn-group {
margin-right: 5px;
margin-bottom: 5px;
}
.uploaded-filename-display {
max-width: 150px;
}
.file-public-column {
flex: 0 0 36px;
order: -1;
justify-content: flex-end;
input[type="checkbox"] {
margin-right: 0;
}
}
}
.frappe-rtl input ,.frappe-rtl textarea {
direction: rtl;
}
.frappe-rtl .checkbox .disp-area {
margin-right: -20px;
margin-left: 0px;
}
.text-editor {
height: 400px;
background-color: white;
border-collapse: separate;
border: 1px solid rgb(204, 204, 204);
padding: 4px;
box-sizing: content-box;
-webkit-box-shadow: rgba(0, 0, 0, 0.0745098) 0px 1px 1px 0px inset;
box-shadow: rgba(0, 0, 0, 0.0745098) 0px 1px 1px 0px inset;
border-radius: 3px;
overflow: scroll;
outline: none;
}
.markdown-text-editor {
height: 451px;
font-family: Monaco, "Courier New", monospace;
}
.breadcrumb {
font-size: 12px;
background-color: #fff;
}
.breadcrumb.for-file-list {
margin-bottom: 0px;
padding: 18px 15px;
border-bottom: 1px solid @border-color;
border-radius: 0px;
}
.screenshot {
border: 1px solid @border-color;
box-shadow: 1px 1px 7px rgba(0,0,0,0.15);
margin: 8px 0px;
max-width: 100%;
}
.help-modal {
a {
color: @brand-primary;
}
.modal-dialog {
width: 768px;
}
.modal-body {
padding: 15px 27px;
}
.parent-link {
&:before {
font-family: 'Octicons';
content: '\f0a4';
}
}
.edit-container {
padding-bottom: 12px;
}
@media (max-width: @screen-xs) {
.modal-dialog {
width: auto;
}
.modal-content {
height: auto !important;
}
iframe {
height: auto;
width: 100%;
}
}
}
.search-result {
margin-bottom: 24px;
}
.search-dialog {
.modal-dialog {
width: 768px;
}
.search-header {
display: flex;
align-items: center;
padding: 5px;
}
.modal-body {
padding: 0px 15px;
}
.empty-state {
color: #d4d9dd;
height: 500px;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
.status-icon {
font-size: 40px;
position: relative;
margin-bottom: 10px;
}
p {
font-size: 15px;
display: block;
}
.cover {
color: white;
font-size: 6px;
position: absolute;
}
}
@keyframes twinkle {
0% { opacity:1; }
50% { opacity:0; }
100% { opacity:1; }
}
@-o-keyframes twinkle {
0% { opacity:1; }
50% { opacity:0; }
100% { opacity:1; }
}
@-moz-keyframes twinkle {
0% { opacity:1; }
50% { opacity:0; }
100% { opacity:1; }
}
@-webkit-keyframes twinkle {
0% { opacity:1; }
50% { opacity:0; }
100% { opacity:1; }
}
.twinkle-one {
-webkit-animation: twinkle 1.5s ease infinite;
-moz-animation: twinkle 1.5s ease infinite;
-o-animation: twinkle 1.5s ease infinite;
animation: twinkle 1.5s ease infinite;
}
.twinkle-two {
-webkit-animation: twinkle 1.5s ease infinite 0.5s;
-moz-animation: twinkle 1.5s ease infinite 0.5s;
-o-animation: twinkle 1.5s ease infinite 0.5s;
animation: twinkle 1.5s ease infinite 0.5s;
}
.twinkle-three {
-webkit-animation: twinkle 1.5s ease infinite 1s;
-moz-animation: twinkle 1.5s ease infinite 1s;
-o-animation: twinkle 1.5s ease infinite 1s;
animation: twinkle 1.5s ease infinite 1s;
}
input.form-control {
border: none;
border-left-style:none;
}
input.form-control:focus {
outline: none;
box-shadow: none;
}
.layout-side-section,
.layout-main-section {
height: 500px;
padding: 0px;
overflow-y: auto;
}
.layout-side-section {
.module-sidebar-nav {
margin-top: 0px;
}
.help-link {
padding-top: 20px;
text-transform: uppercase;
}
.nav {
li a {
display: flex;
align-items: center;
justify-content: space-between;
padding-left: 20px;
background-color: #ffffff;
i {
visibility: hidden;
}
}
.active i {
visibility: visible;
}
.select a, a:hover {
background-color: #f7fafc;
}
}
}
.results-area {
.single-link a {
color: #36414c;
}
}
.module-section {
.back-link {
margin-bottom: 20px;
margin-top: -10px;
}
.all-results-link:before {
font-family: 'Octicons';
content: '\f0a4';
}
.result {
margin-bottom: 5px;
}
}
.full-list {
.result {
margin-top: 15px;
.result-subtype {
float: right;
margin-left: 10px;
}
}
.result-with-subtype {
border-bottom: 1px solid #d1d8dd;
margin-top: 10px;
}
.section-head {
margin-bottom: 25px;
}
}
.dual-section {
.result-subtype{
display: none;
}
}
.result-status {
margin-top: 30px;
text-align: center;
}
.more-results {
display: none;
}
.result {
p {
margin-top: 5px;
margin-bottom: 5px;
}
.result-image {
display: inline-block;
margin-right: 10px;
height: 60px;
width: 60px;
background-color: #fafbfc;
.flex-text {
display: flex;
height: 60px;
align-items: center;
justify-content: center;
}
span {
font-size: 30px;
color: @text-extra-muted;
}
}
}
@media (max-width: @screen-xs) {
.modal-dialog {
width: auto;
}
.modal-content {
height: auto !important;
}
}
@media (max-width: @screen-sm) {
.module-body {
margin: 0px;
border-top: none;
}
}
@media (min-width: 600px) {
.results-area .back-link {
display: none;
}
}
}
.input-area input[type=checkbox] {
margin-left: -20px;
}
.checkbox label {
padding-left: 2px;
}
.checkbox input[type=checkbox] {
margin-right: 5px;
margin-left: 0px;
position: relative;
height: 12px;
}
// custom font awesome checkbox
input[type="checkbox"] {
position: relative;
visibility: hidden;
&:before {
position: absolute;
font-family: 'FontAwesome';
content: '\f096';
visibility: visible;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 14px;
display: inline-block;
font-size: 14px;
color: @text-extra-muted;
.transition(150ms color);
left: 0px;
}
&:focus:before {
color: @text-muted;
}
&:checked:before {
content: '\f14a';
font-size: 13px;
color: @checkbox-color;
}
&:focus {
outline: none;
}
}
// Will not be required after commonifying lists with empty state
.multiselect-empty-state{
min-height: 300px;
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
// mozilla doesn't support
// pseudo elements on checkbox
@-moz-document url-prefix() {
input[type="checkbox"] {
visibility: visible;
left: 0;
}
}
@supports (-moz-appearance: none) {
input[type="checkbox"] {
visibility: visible;
left: 0;
}
}
// edge doesn't support pseudo elements on checkbox
//Microsoft Edge Browser 12+ (All)
@supports (-ms-ime-align:auto) {
input[type="checkbox"] {
visibility: visible;
left: 0;
}
}
// color picker
.color-picker {
position: relative;
z-index: 999;
.color-picker-pallete {
border-radius: 4px;
box-shadow: 0 4px 12px rgba(0,0,0,.15);
background: #fff;
border: 1px solid @border-color;
width: 290px;
height: 106px;
padding-top: 10px;
padding-left: 5px;
position: absolute;
top: 0;
left: 0;
&:after,
&:before {
border: solid transparent;
content: " ";
height: 0;
width: 0;
pointer-events: none;
position: absolute;
bottom: 100%;
left: 30px;
}
&:after {
border-color: rgba(255, 255, 255, 0);
border-bottom-color: #fff;
border-width: 8px;
margin-left: -8px;
}
&:before {
border-color: rgba(221, 221, 221, 0);
border-bottom-color: @border-color;
border-width: 9px;
margin-left: -9px;
}
}
.color-box {
cursor: pointer;
display: inline-block;
width: 20px;
height: 20px;
margin: -2px 0 0 3px;
border: 1px solid rgba(0,0,0, 0.25);
}
}
// Slides
.slides-wrapper {
&:focus {
outline: none;
}
.fa-circle {
font-size: 10px;
margin: 0px 2px;
&.active {
color: #5e64ff;
}
&.link {
cursor: pointer;
}
}
.slide-wrapper {
&:focus {
outline: none;
}
}
.form {
margin-top: 30px;
.form-layout {
margin-top: 0px;
margin-bottom: 0px;
}
.form-section {
padding: 0px 7px;
border: none;
}
}
.add-more {
margin-bottom: 30px;
}
.lead {
margin-top: 20px;
font-weight: 500;
}
.success-state {
margin-bottom: 20px;
}
.next-steps-links {
.title {
text-transform: uppercase;
color: #8D99A6;
font-size: 11px;
}
}
.btn-primary {
font-weight: bold;
}
.slide-footer {
margin: 15px 0px;
padding: 0px 7px;
.btn:not(:last-child) {
margin-right: 3px;
}
a.make-btn.disabled {
background-color: #b1bdca;
color: #fff;
border-color: #b1bdca;
}
}
}
// Onboarding Dialog
.onboarding-dialog {
.slide-body {
width: 65%;
margin-right: auto;
margin-left: auto;
}
.modal-content {
border: 1px solid #d1d8dd;
box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.1);
}
.modal-backdrop {
background-color: #ffffff;
}
.modal-backdrop.in {
opacity: 1;
}
.modal-dialog {
height: 80%;
max-width: none;
}
.onboarding-icon {
color: @text-muted;
margin-right: 5px;
}
.modal-content .slide-container {
height: auto;
min-height: 100%;
bottom: 0;
}
img {
max-height: 175px;
width: auto;
}
.slides-progress {
margin-top: 15px;
}
}
/* broken image styling */
img.no-image {
position: relative;
height: 100%;
width: 100%;
}
.img-background() {
content: " ";
display: block;
position: absolute;
left: 0;
height: calc(100%);
width: 100%;
background-color: @light-bg;
}
.img-foreground() {
content: "\f1c5";
display: block;
font-style: normal;
font-family: FontAwesome;
font-size: 32px;
color: @text-extra-muted;
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 0;
width: 100%;
text-align: center;
}
img.no-image:before {
.img-background();
}
img.no-image:after {
.img-foreground();
}
img.img-loading:before {
.img-background();
}
img.img-loading:after {
.img-foreground();
font-family: 'Octicons';
content: "\f00b";
}
// utilities
.whitespace-nowrap {
white-space: nowrap;
}
// popover
.popover {
border-radius: 4px;
.popover-content {
padding: 12px;
}
}
// like pop-over
.liked-by-popover {
.popover-content {
padding: 0px;
overflow: scroll;
max-height: 150px;
}
min-width: 100px;
ul {
margin: 0px;
li {
padding: 10px;
cursor: pointer;
&:hover {
background: @btn-bg;
}
}
}
}
body.full-width {
@media (min-width: @screen-md) {
.container {
width: 90%;
}
}
}
body.no-sidebar {
@media (min-width: @screen-md) {
.layout-side-section {
display: none;
}
.layout-main-section-wrapper {
width: 100% !important;
}
}
}
// utilities
.whitespace-nowrap {
white-space: nowrap;
}
.modal-minimize {
position: initial;
.modal-backdrop {
display: none;
}
.modal-dialog {
z-index: 101;
position: fixed;
right: 15px;
bottom: 0;
margin: 0;
max-width: 500px;
}
.modal-body {
display: none;
}
}
.app-logo {
width: 24px;
}
.alt-pressed .alt-underline {
text-decoration: underline;
}
.app-change-log-body {
h1 {
font-size: 20px;
}
}