@@ -776,6 +809,9 @@ export default {
},
autoLimit: true,
+ toExpanded: false,
+ ccExpanded: false,
+ bccExpanded: false,
wantsSmimeSign: this.smimeSign,
wantsSmimeEncrypt: this.smimeEncrypt,
isPickerOpen: false,
@@ -1666,6 +1702,10 @@ export default {
this.showBCC = !(this.showBCC && this.selectBcc.length === 0 && this.autoLimit)
},
+ getRecipientIndex(recipients, option) {
+ return recipients.findIndex(r => r.email === option.email)
+ },
+
setEditorModeHtml() {
this.editorMode = EDITOR_MODE_HTML
},
@@ -1774,23 +1814,15 @@ export default {
}
.composer-fields {
- padding: var(--default-grid-baseline) calc(var(--default-grid-baseline) * 2) 0 calc(var(--default-grid-baseline) * 2);
-
- &__label {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- align-items: flex-end;
-
- /** NcButton does not allow font weight styling */
- :deep(.button-vue__text) {
- font-weight: normal;
- }
- }
+ display: flex;
+ flex-direction: row;
+ align-items: flex-start;
+ padding: 0 calc(var(--default-grid-baseline) * 2);
+ min-height: calc(var(--default-clickable-area) + calc(var(--default-grid-baseline) * 2));
&.mail-account {
border-top: none;
- padding-top: calc(var(--default-grid-baseline) * 2);
+ padding-top: var(--default-grid-baseline);
}
input,
@@ -1802,10 +1834,12 @@ export default {
}
.composer-fields--custom {
+ flex: 1;
+ min-width: 0;
display: flex;
align-items: flex-start;
justify-content: space-between;
- padding-top: calc(var(--default-grid-baseline) * 0.5);
+ padding: calc(var(--default-grid-baseline) * 1.5) 0;
button {
margin-top: 0;
@@ -1857,7 +1891,7 @@ export default {
// Make composer editor expand
.message-editor {
flex: 1 1 100%;
- min-height: 0;
+ min-height: 200px;
border-top: 1px solid var(--color-border);
}
@@ -1870,26 +1904,60 @@ export default {
.from-label,
.to-label,
-.copy-toggle,
.cc-label,
.bcc-label {
+ width: calc(var(--default-grid-baseline) * 12);
+ flex-shrink: 0;
+ padding-top: calc(var(--default-grid-baseline) * 1.5 + 1px);
color: var(--color-text-maxcontrast);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
-.bcc-label {
- top: initial;
- bottom: 0;
+// Scope extra padding only to the To select so Cc/Bcc selects are unaffected
+.to-select :deep(.vs__selected-options) {
+ padding-inline-end: calc(var(--default-grid-baseline) * 10);
+}
+
+.recipient-overflow {
+ display: inline-flex;
+ align-items: center;
+ align-self: center;
+ padding: 0 calc(var(--default-grid-baseline) * 2);
+ height: calc(var(--default-clickable-area-small, 28px));
+ border-radius: var(--border-radius-pill);
+ background-color: var(--color-background-dark);
+ white-space: nowrap;
+ font-size: var(--default-font-size);
+ flex-shrink: 0;
+ border: none;
+ cursor: pointer;
+ color: var(--color-main-text);
+
+ &:hover {
+ background-color: var(--color-background-darker);
+ }
}
.copy-toggle {
+ // Absolute so it sits inside the To field visually without adding to its height
+ position: absolute;
+ inset-inline-end: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ z-index: 1;
+ // Override the .composer-fields--custom button rule
+ opacity: 1;
cursor: pointer;
- width: initial;
- &:hover,
- &:focus {
+ :deep(.button-vue__text) {
+ font-weight: normal;
+ color: var(--color-text-maxcontrast);
+ }
+
+ &:hover :deep(.button-vue__text),
+ &:focus :deep(.button-vue__text) {
color: var(--color-main-text);
}
}
diff --git a/src/components/NewMessageModal.vue b/src/components/NewMessageModal.vue
index 70bf666100..a9791fa013 100644
--- a/src/components/NewMessageModal.vue
+++ b/src/components/NewMessageModal.vue
@@ -3,19 +3,24 @@
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
-
-
-
+ ref="floatingPanel"
+ class="floating-composer"
+ :class="{
+ 'floating-composer--maximized': largerModal,
+ 'floating-composer--with-recipient': showRecipientPane && !error && !warning && recipientPaneOpen,
+ }"
+ @mousedown.stop>
+
+
+
+
+
+
+
+
+
+
+
- {{ error }}
+
+ {{ error }}
+
{{ t('mail', 'Go back') }}
@@ -66,8 +96,8 @@
-
-
-
-
-
-
+
diff --git a/src/components/RecipientInfo.vue b/src/components/RecipientInfo.vue
index ff53f9c1be..d55ea84274 100644
--- a/src/components/RecipientInfo.vue
+++ b/src/components/RecipientInfo.vue
@@ -6,19 +6,23 @@