@happyvertical/smrt-messages 0.55.16 → 0.55.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{AccountCollection-DIMJKGBm.js → AccountCollection-BM28F2y8.js} +2 -2
- package/dist/chunks/{AccountCollection-DIMJKGBm.js.map → AccountCollection-BM28F2y8.js.map} +1 -1
- package/dist/chunks/{Email-T4k1xQcQ.js → Email-CclqFojc.js} +3 -3
- package/dist/chunks/{Email-T4k1xQcQ.js.map → Email-CclqFojc.js.map} +1 -1
- package/dist/chunks/{EmailFolder-DITfb7Nf.js → EmailFolder-DtvYtwiz.js} +2 -2
- package/dist/chunks/{EmailFolder-DITfb7Nf.js.map → EmailFolder-DtvYtwiz.js.map} +1 -1
- package/dist/chunks/{Message-yPXPi2S8.js → Message-CwqRAiRu.js} +4 -4
- package/dist/chunks/{Message-yPXPi2S8.js.map → Message-CwqRAiRu.js.map} +1 -1
- package/dist/chunks/{MessageCollection-D_F4CfQf.js → MessageCollection-DTmvgr8c.js} +2 -2
- package/dist/chunks/{MessageCollection-D_F4CfQf.js.map → MessageCollection-DTmvgr8c.js.map} +1 -1
- package/dist/chunks/{__smrt-register__-ohILA20q.js → __smrt-register__-C6vkgxXs.js} +2 -2
- package/dist/chunks/{__smrt-register__-ohILA20q.js.map → __smrt-register__-C6vkgxXs.js.map} +1 -1
- package/dist/index.js +9 -9
- package/dist/manifest.json +1 -1
- package/dist/smrt-knowledge.json +3 -3
- package/dist/svelte/components/AccountAvatar.svelte +13 -10
- package/dist/svelte/components/AccountCard.svelte +18 -15
- package/dist/svelte/components/AccountList.svelte +5 -2
- package/dist/svelte/components/AttachmentChip.svelte +10 -7
- package/dist/svelte/components/AttachmentUpload.svelte +24 -21
- package/dist/svelte/components/ComposeForm.svelte +29 -26
- package/dist/svelte/components/EmailAccountManager.svelte +54 -51
- package/dist/svelte/components/EmailFilterManager.svelte +48 -45
- package/dist/svelte/components/FolderNav.svelte +12 -9
- package/dist/svelte/components/ForwardForm.svelte +23 -20
- package/dist/svelte/components/MailboxDemo.svelte +2 -2
- package/dist/svelte/components/MessageCard.svelte +17 -14
- package/dist/svelte/components/MessageDetail.svelte +20 -17
- package/dist/svelte/components/MessageFilters.svelte +8 -5
- package/dist/svelte/components/MessageList.svelte +7 -4
- package/dist/svelte/components/MessageStatusIndicator.svelte +10 -7
- package/dist/svelte/components/MessageToolbar.svelte +13 -10
- package/dist/svelte/components/MessageTypeBadge.svelte +3 -0
- package/dist/svelte/components/MessagingSettingsPanel.svelte +9 -6
- package/dist/svelte/components/RecipientInput.svelte +24 -21
- package/dist/svelte/components/ReplyForm.svelte +24 -21
- package/dist/svelte/components/SendStatusBadge.svelte +19 -16
- package/dist/svelte/components/ThreadView.svelte +13 -10
- package/package.json +9 -9
|
@@ -60,7 +60,7 @@ export interface Props {
|
|
|
60
60
|
}
|
|
61
61
|
</script>
|
|
62
62
|
|
|
63
|
-
<div class="reply-form">
|
|
63
|
+
<div class="reply-form" data-smrt-component="ReplyForm">
|
|
64
64
|
<div class="reply-header">
|
|
65
65
|
{replyAll ? 'Reply All' : 'Reply'} to {originalMessage.senderName || originalMessage.senderAddress}
|
|
66
66
|
</div>
|
|
@@ -96,51 +96,53 @@ export interface Props {
|
|
|
96
96
|
</div>
|
|
97
97
|
|
|
98
98
|
<style>
|
|
99
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
100
|
+
@layer smrt.theme {
|
|
99
101
|
.reply-form {
|
|
100
102
|
display: flex;
|
|
101
103
|
flex-direction: column;
|
|
102
|
-
gap: var(--smrt-spacing-2
|
|
103
|
-
padding: var(--smrt-spacing-3
|
|
104
|
-
border: 1px solid var(--smrt-color-outline-variant
|
|
105
|
-
border-radius: var(--smrt-radius-md
|
|
106
|
-
background: var(--smrt-color-surface
|
|
104
|
+
gap: var(--smrt-spacing-2);
|
|
105
|
+
padding: var(--smrt-spacing-3);
|
|
106
|
+
border: 1px solid var(--smrt-color-outline-variant);
|
|
107
|
+
border-radius: var(--smrt-radius-md);
|
|
108
|
+
background: var(--smrt-color-surface);
|
|
107
109
|
font-family: var(--smrt-font-family, system-ui);
|
|
108
110
|
}
|
|
109
111
|
|
|
110
112
|
.reply-header {
|
|
111
|
-
font-size: var(--smrt-typography-title-small-size
|
|
112
|
-
color: var(--smrt-color-on-surface-variant
|
|
113
|
+
font-size: var(--smrt-typography-title-small-size);
|
|
114
|
+
color: var(--smrt-color-on-surface-variant);
|
|
113
115
|
font-weight: var(--smrt-typography-weight-medium, 500);
|
|
114
116
|
}
|
|
115
117
|
|
|
116
118
|
.quoted-original {
|
|
117
|
-
padding: var(--smrt-spacing-2
|
|
118
|
-
border-left: 3px solid var(--smrt-color-outline-variant
|
|
119
|
-
background: var(--smrt-color-surface-variant
|
|
120
|
-
border-radius: 0 var(--smrt-radius-sm
|
|
119
|
+
padding: var(--smrt-spacing-2);
|
|
120
|
+
border-left: 3px solid var(--smrt-color-outline-variant);
|
|
121
|
+
background: var(--smrt-color-surface-variant);
|
|
122
|
+
border-radius: 0 var(--smrt-radius-sm) var(--smrt-radius-sm) 0;
|
|
121
123
|
max-height: 200px;
|
|
122
124
|
overflow-y: auto;
|
|
123
125
|
}
|
|
124
126
|
|
|
125
127
|
.quoted-text {
|
|
126
128
|
margin: 0;
|
|
127
|
-
font-size: var(--smrt-typography-body-small-size
|
|
128
|
-
color: var(--smrt-color-on-surface-variant
|
|
129
|
+
font-size: var(--smrt-typography-body-small-size);
|
|
130
|
+
color: var(--smrt-color-on-surface-variant);
|
|
129
131
|
white-space: pre-wrap;
|
|
130
132
|
font-family: var(--smrt-font-family, system-ui);
|
|
131
133
|
}
|
|
132
134
|
|
|
133
135
|
.send-error {
|
|
134
|
-
padding: var(--smrt-spacing-2
|
|
135
|
-
border-radius: var(--smrt-radius-sm
|
|
136
|
-
background: var(--smrt-color-error-container
|
|
137
|
-
color: var(--smrt-color-on-error-container
|
|
138
|
-
font-size: var(--smrt-typography-body-small-size
|
|
136
|
+
padding: var(--smrt-spacing-2) var(--smrt-spacing-3);
|
|
137
|
+
border-radius: var(--smrt-radius-sm);
|
|
138
|
+
background: var(--smrt-color-error-container);
|
|
139
|
+
color: var(--smrt-color-on-error-container);
|
|
140
|
+
font-size: var(--smrt-typography-body-small-size);
|
|
139
141
|
}
|
|
140
142
|
|
|
141
143
|
.actions {
|
|
142
144
|
display: flex;
|
|
143
|
-
gap: var(--smrt-spacing-2
|
|
145
|
+
gap: var(--smrt-spacing-2);
|
|
144
146
|
}
|
|
145
147
|
|
|
146
148
|
/*
|
|
@@ -150,6 +152,7 @@ export interface Props {
|
|
|
150
152
|
* issue #1589.
|
|
151
153
|
*/
|
|
152
154
|
.actions :global(.btn-text) {
|
|
153
|
-
color: var(--smrt-color-on-surface-variant
|
|
155
|
+
color: var(--smrt-color-on-surface-variant);
|
|
154
156
|
}
|
|
157
|
+
}
|
|
155
158
|
</style>
|
|
@@ -13,54 +13,57 @@ export interface Props {
|
|
|
13
13
|
const statusConfig = $derived.by(() => {
|
|
14
14
|
switch (status) {
|
|
15
15
|
case 'draft':
|
|
16
|
-
return { label: 'Draft', color: 'var(--smrt-color-outline
|
|
16
|
+
return { label: 'Draft', color: 'var(--smrt-color-outline)', icon: '✎' };
|
|
17
17
|
case 'pending':
|
|
18
|
-
return { label: 'Pending', color: 'var(--smrt-color-tertiary
|
|
18
|
+
return { label: 'Pending', color: 'var(--smrt-color-tertiary)', icon: '◷' };
|
|
19
19
|
case 'sending':
|
|
20
|
-
return { label: 'Sending', color: 'var(--smrt-color-primary
|
|
20
|
+
return { label: 'Sending', color: 'var(--smrt-color-primary)', icon: '↑' };
|
|
21
21
|
case 'sent':
|
|
22
|
-
return { label: 'Sent', color: 'var(--smrt-color-success
|
|
22
|
+
return { label: 'Sent', color: 'var(--smrt-color-success)', icon: '✓' };
|
|
23
23
|
case 'failed':
|
|
24
|
-
return { label: 'Failed', color: 'var(--smrt-color-error
|
|
24
|
+
return { label: 'Failed', color: 'var(--smrt-color-error)', icon: '✕' };
|
|
25
25
|
case 'scheduled':
|
|
26
|
-
return { label: 'Scheduled', color: 'var(--smrt-color-secondary
|
|
26
|
+
return { label: 'Scheduled', color: 'var(--smrt-color-secondary)', icon: '⏰' };
|
|
27
27
|
default:
|
|
28
|
-
return { label: status, color: 'var(--smrt-color-outline
|
|
28
|
+
return { label: status, color: 'var(--smrt-color-outline)', icon: '?' };
|
|
29
29
|
}
|
|
30
30
|
});
|
|
31
31
|
</script>
|
|
32
32
|
|
|
33
33
|
<span
|
|
34
34
|
class="send-status-badge {size}"
|
|
35
|
-
style="--badge-color: {statusConfig.color}"
|
|
35
|
+
style="--smrt-send-status-badge-color: {statusConfig.color}" data-smrt-component="SendStatusBadge"
|
|
36
36
|
>
|
|
37
37
|
<span class="icon">{statusConfig.icon}</span>
|
|
38
38
|
<span class="label">{statusConfig.label}</span>
|
|
39
39
|
</span>
|
|
40
40
|
|
|
41
41
|
<style>
|
|
42
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
43
|
+
@layer smrt.theme {
|
|
42
44
|
.send-status-badge {
|
|
43
45
|
display: inline-flex;
|
|
44
46
|
align-items: center;
|
|
45
|
-
gap: var(--smrt-spacing-1
|
|
46
|
-
border-radius: var(--smrt-radius-sm
|
|
47
|
-
border: 1px solid var(--badge-color);
|
|
48
|
-
color: var(--badge-color);
|
|
47
|
+
gap: var(--smrt-spacing-1);
|
|
48
|
+
border-radius: var(--smrt-radius-sm);
|
|
49
|
+
border: 1px solid var(--smrt-send-status-badge-color);
|
|
50
|
+
color: var(--smrt-send-status-badge-color);
|
|
49
51
|
font-family: var(--smrt-font-family, system-ui);
|
|
50
52
|
white-space: nowrap;
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
.sm {
|
|
54
|
-
padding: var(--smrt-spacing-1
|
|
55
|
-
font-size: var(--smrt-typography-label-small-size
|
|
56
|
+
padding: var(--smrt-spacing-1) var(--smrt-spacing-2);
|
|
57
|
+
font-size: var(--smrt-typography-label-small-size);
|
|
56
58
|
}
|
|
57
59
|
|
|
58
60
|
.md {
|
|
59
|
-
padding: var(--smrt-spacing-1
|
|
60
|
-
font-size: var(--smrt-typography-label-large-size
|
|
61
|
+
padding: var(--smrt-spacing-1) var(--smrt-spacing-3);
|
|
62
|
+
font-size: var(--smrt-typography-label-large-size);
|
|
61
63
|
}
|
|
62
64
|
|
|
63
65
|
.icon {
|
|
64
66
|
font-size: inherit;
|
|
65
67
|
}
|
|
68
|
+
}
|
|
66
69
|
</style>
|
|
@@ -98,7 +98,7 @@ const _sortedMessages = $derived(
|
|
|
98
98
|
);
|
|
99
99
|
</script>
|
|
100
100
|
|
|
101
|
-
<div class="thread-view" role="list" aria-label={t(M['messages.thread_view.conversation_thread'])}>
|
|
101
|
+
<div class="thread-view" role="list" aria-label={t(M['messages.thread_view.conversation_thread'])} data-smrt-component="ThreadView">
|
|
102
102
|
{#each _sortedMessages as message, i (message.id)}
|
|
103
103
|
<div
|
|
104
104
|
class="thread-message"
|
|
@@ -169,6 +169,8 @@ const _sortedMessages = $derived(
|
|
|
169
169
|
</div>
|
|
170
170
|
|
|
171
171
|
<style>
|
|
172
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
173
|
+
@layer smrt.theme {
|
|
172
174
|
.thread-view {
|
|
173
175
|
display: flex;
|
|
174
176
|
flex-direction: column;
|
|
@@ -180,13 +182,13 @@ const _sortedMessages = $derived(
|
|
|
180
182
|
}
|
|
181
183
|
|
|
182
184
|
.thread-message--active {
|
|
183
|
-
box-shadow: -3px 0 0 0 var(--smrt-color-primary
|
|
185
|
+
box-shadow: -3px 0 0 0 var(--smrt-color-primary);
|
|
184
186
|
}
|
|
185
187
|
|
|
186
188
|
.thread-connector {
|
|
187
189
|
width: 2px;
|
|
188
190
|
height: 1rem;
|
|
189
|
-
background: var(--smrt-color-outline-variant
|
|
191
|
+
background: var(--smrt-color-outline-variant);
|
|
190
192
|
margin-left: 1.5rem;
|
|
191
193
|
}
|
|
192
194
|
|
|
@@ -208,14 +210,14 @@ const _sortedMessages = $derived(
|
|
|
208
210
|
border: none;
|
|
209
211
|
background: none;
|
|
210
212
|
font-size: var(--smrt-typography-label-medium-size, 0.75rem);
|
|
211
|
-
color: var(--smrt-color-on-surface-variant
|
|
213
|
+
color: var(--smrt-color-on-surface-variant);
|
|
212
214
|
z-index: 1;
|
|
213
215
|
padding: 0.25rem;
|
|
214
216
|
border-radius: var(--smrt-radius-small, 0.25rem);
|
|
215
217
|
}
|
|
216
218
|
|
|
217
219
|
.message-wrapper :global(.collapse-btn):hover {
|
|
218
|
-
background: var(--smrt-color-surface-variant
|
|
220
|
+
background: var(--smrt-color-surface-variant);
|
|
219
221
|
}
|
|
220
222
|
|
|
221
223
|
.thread-message :global(.collapsed-header) {
|
|
@@ -224,16 +226,16 @@ const _sortedMessages = $derived(
|
|
|
224
226
|
gap: 0.75rem;
|
|
225
227
|
width: 100%;
|
|
226
228
|
padding: 0.75rem;
|
|
227
|
-
border: 1px solid var(--smrt-color-outline-variant
|
|
229
|
+
border: 1px solid var(--smrt-color-outline-variant);
|
|
228
230
|
border-radius: var(--smrt-radius-medium, 0.5rem);
|
|
229
|
-
background: var(--smrt-color-surface-variant
|
|
231
|
+
background: var(--smrt-color-surface-variant);
|
|
230
232
|
text-align: left;
|
|
231
233
|
color: inherit;
|
|
232
234
|
font: inherit;
|
|
233
235
|
}
|
|
234
236
|
|
|
235
237
|
.thread-message :global(.collapsed-header):hover {
|
|
236
|
-
background: color-mix(in srgb, var(--smrt-color-surface-variant
|
|
238
|
+
background: color-mix(in srgb, var(--smrt-color-surface-variant) 92%, var(--smrt-color-shadow));
|
|
237
239
|
}
|
|
238
240
|
|
|
239
241
|
.collapsed-sender {
|
|
@@ -245,7 +247,7 @@ const _sortedMessages = $derived(
|
|
|
245
247
|
.collapsed-preview {
|
|
246
248
|
flex: 1;
|
|
247
249
|
font: var(--smrt-typography-body-small-font, 0.75rem / 1.33 sans-serif);
|
|
248
|
-
color: var(--smrt-color-on-surface-variant
|
|
250
|
+
color: var(--smrt-color-on-surface-variant);
|
|
249
251
|
overflow: hidden;
|
|
250
252
|
text-overflow: ellipsis;
|
|
251
253
|
white-space: nowrap;
|
|
@@ -254,6 +256,7 @@ const _sortedMessages = $derived(
|
|
|
254
256
|
.collapsed-date {
|
|
255
257
|
flex-shrink: 0;
|
|
256
258
|
font: var(--smrt-typography-label-small-font, 500 0.6875rem / 1 sans-serif);
|
|
257
|
-
color: var(--smrt-color-on-surface-variant
|
|
259
|
+
color: var(--smrt-color-on-surface-variant);
|
|
258
260
|
}
|
|
261
|
+
}
|
|
259
262
|
</style>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-messages",
|
|
3
|
-
"version": "0.55.
|
|
3
|
+
"version": "0.55.17",
|
|
4
4
|
"smrtJsdoc": "strict",
|
|
5
5
|
"description": "Unified multi-channel messaging with STI-based hierarchies",
|
|
6
6
|
"type": "module",
|
|
@@ -62,12 +62,12 @@
|
|
|
62
62
|
"@happyvertical/files": "^0.103.4",
|
|
63
63
|
"@happyvertical/logger": "^0.103.4",
|
|
64
64
|
"@happyvertical/messages": "^0.103.4",
|
|
65
|
-
"@happyvertical/smrt-core": "0.55.
|
|
66
|
-
"@happyvertical/smrt-types": "0.55.
|
|
67
|
-
"@happyvertical/smrt-secrets": "0.55.
|
|
68
|
-
"@happyvertical/smrt-tenancy": "0.55.
|
|
69
|
-
"@happyvertical/smrt-ui": "0.55.
|
|
70
|
-
"@happyvertical/smrt-users": "0.55.
|
|
65
|
+
"@happyvertical/smrt-core": "0.55.17",
|
|
66
|
+
"@happyvertical/smrt-types": "0.55.17",
|
|
67
|
+
"@happyvertical/smrt-secrets": "0.55.17",
|
|
68
|
+
"@happyvertical/smrt-tenancy": "0.55.17",
|
|
69
|
+
"@happyvertical/smrt-ui": "0.55.17",
|
|
70
|
+
"@happyvertical/smrt-users": "0.55.17",
|
|
71
71
|
"@happyvertical/sql": "^0.103.4",
|
|
72
72
|
"@happyvertical/utils": "^0.103.4"
|
|
73
73
|
},
|
|
@@ -84,8 +84,8 @@
|
|
|
84
84
|
}
|
|
85
85
|
},
|
|
86
86
|
"devDependencies": {
|
|
87
|
-
"@happyvertical/smrt-ledgers": "0.55.
|
|
88
|
-
"@happyvertical/smrt-vitest": "0.55.
|
|
87
|
+
"@happyvertical/smrt-ledgers": "0.55.17",
|
|
88
|
+
"@happyvertical/smrt-vitest": "0.55.17",
|
|
89
89
|
"@sveltejs/package": "^2.5.8",
|
|
90
90
|
"@sveltejs/vite-plugin-svelte": "^7.3.0",
|
|
91
91
|
"@types/node": "24.13.6",
|