@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.
Files changed (39) hide show
  1. package/dist/chunks/{AccountCollection-DIMJKGBm.js → AccountCollection-BM28F2y8.js} +2 -2
  2. package/dist/chunks/{AccountCollection-DIMJKGBm.js.map → AccountCollection-BM28F2y8.js.map} +1 -1
  3. package/dist/chunks/{Email-T4k1xQcQ.js → Email-CclqFojc.js} +3 -3
  4. package/dist/chunks/{Email-T4k1xQcQ.js.map → Email-CclqFojc.js.map} +1 -1
  5. package/dist/chunks/{EmailFolder-DITfb7Nf.js → EmailFolder-DtvYtwiz.js} +2 -2
  6. package/dist/chunks/{EmailFolder-DITfb7Nf.js.map → EmailFolder-DtvYtwiz.js.map} +1 -1
  7. package/dist/chunks/{Message-yPXPi2S8.js → Message-CwqRAiRu.js} +4 -4
  8. package/dist/chunks/{Message-yPXPi2S8.js.map → Message-CwqRAiRu.js.map} +1 -1
  9. package/dist/chunks/{MessageCollection-D_F4CfQf.js → MessageCollection-DTmvgr8c.js} +2 -2
  10. package/dist/chunks/{MessageCollection-D_F4CfQf.js.map → MessageCollection-DTmvgr8c.js.map} +1 -1
  11. package/dist/chunks/{__smrt-register__-ohILA20q.js → __smrt-register__-C6vkgxXs.js} +2 -2
  12. package/dist/chunks/{__smrt-register__-ohILA20q.js.map → __smrt-register__-C6vkgxXs.js.map} +1 -1
  13. package/dist/index.js +9 -9
  14. package/dist/manifest.json +1 -1
  15. package/dist/smrt-knowledge.json +3 -3
  16. package/dist/svelte/components/AccountAvatar.svelte +13 -10
  17. package/dist/svelte/components/AccountCard.svelte +18 -15
  18. package/dist/svelte/components/AccountList.svelte +5 -2
  19. package/dist/svelte/components/AttachmentChip.svelte +10 -7
  20. package/dist/svelte/components/AttachmentUpload.svelte +24 -21
  21. package/dist/svelte/components/ComposeForm.svelte +29 -26
  22. package/dist/svelte/components/EmailAccountManager.svelte +54 -51
  23. package/dist/svelte/components/EmailFilterManager.svelte +48 -45
  24. package/dist/svelte/components/FolderNav.svelte +12 -9
  25. package/dist/svelte/components/ForwardForm.svelte +23 -20
  26. package/dist/svelte/components/MailboxDemo.svelte +2 -2
  27. package/dist/svelte/components/MessageCard.svelte +17 -14
  28. package/dist/svelte/components/MessageDetail.svelte +20 -17
  29. package/dist/svelte/components/MessageFilters.svelte +8 -5
  30. package/dist/svelte/components/MessageList.svelte +7 -4
  31. package/dist/svelte/components/MessageStatusIndicator.svelte +10 -7
  32. package/dist/svelte/components/MessageToolbar.svelte +13 -10
  33. package/dist/svelte/components/MessageTypeBadge.svelte +3 -0
  34. package/dist/svelte/components/MessagingSettingsPanel.svelte +9 -6
  35. package/dist/svelte/components/RecipientInput.svelte +24 -21
  36. package/dist/svelte/components/ReplyForm.svelte +24 -21
  37. package/dist/svelte/components/SendStatusBadge.svelte +19 -16
  38. package/dist/svelte/components/ThreadView.svelte +13 -10
  39. 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, 8px);
103
- padding: var(--smrt-spacing-3, 12px);
104
- border: 1px solid var(--smrt-color-outline-variant, #cac4d0);
105
- border-radius: var(--smrt-radius-md, 12px);
106
- background: var(--smrt-color-surface, #fffbfe);
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, 13px);
112
- color: var(--smrt-color-on-surface-variant, #49454f);
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, 8px);
118
- border-left: 3px solid var(--smrt-color-outline-variant, #cac4d0);
119
- background: var(--smrt-color-surface-variant, #e7e0ec);
120
- border-radius: 0 var(--smrt-radius-sm, 8px) var(--smrt-radius-sm, 8px) 0;
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, 12px);
128
- color: var(--smrt-color-on-surface-variant, #49454f);
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, 8px) var(--smrt-spacing-3, 12px);
135
- border-radius: var(--smrt-radius-sm, 8px);
136
- background: var(--smrt-color-error-container, #ffdad6);
137
- color: var(--smrt-color-on-error-container, #410002);
138
- font-size: var(--smrt-typography-body-small-size, 12px);
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, 8px);
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, #49454f);
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, #79747e)', icon: '✎' };
16
+ return { label: 'Draft', color: 'var(--smrt-color-outline)', icon: '✎' };
17
17
  case 'pending':
18
- return { label: 'Pending', color: 'var(--smrt-color-tertiary, #7d5260)', icon: '◷' };
18
+ return { label: 'Pending', color: 'var(--smrt-color-tertiary)', icon: '◷' };
19
19
  case 'sending':
20
- return { label: 'Sending', color: 'var(--smrt-color-primary, #6750a4)', icon: '↑' };
20
+ return { label: 'Sending', color: 'var(--smrt-color-primary)', icon: '↑' };
21
21
  case 'sent':
22
- return { label: 'Sent', color: 'var(--smrt-color-success, #006d3b)', icon: '✓' };
22
+ return { label: 'Sent', color: 'var(--smrt-color-success)', icon: '✓' };
23
23
  case 'failed':
24
- return { label: 'Failed', color: 'var(--smrt-color-error, #ba1a1a)', icon: '✕' };
24
+ return { label: 'Failed', color: 'var(--smrt-color-error)', icon: '✕' };
25
25
  case 'scheduled':
26
- return { label: 'Scheduled', color: 'var(--smrt-color-secondary, #625b71)', icon: '⏰' };
26
+ return { label: 'Scheduled', color: 'var(--smrt-color-secondary)', icon: '⏰' };
27
27
  default:
28
- return { label: status, color: 'var(--smrt-color-outline, #79747e)', icon: '?' };
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, 4px);
46
- border-radius: var(--smrt-radius-sm, 8px);
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, 4px) var(--smrt-spacing-2, 8px);
55
- font-size: var(--smrt-typography-label-small-size, 11px);
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, 4px) var(--smrt-spacing-3, 12px);
60
- font-size: var(--smrt-typography-label-large-size, 13px);
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, #005ac1);
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, #c4c6d0);
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, #43474e);
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, #e1e2ec);
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, #c4c6d0);
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, #e1e2ec);
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, #e1e2ec) 92%, var(--smrt-color-shadow, #000));
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, #43474e);
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, #43474e);
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.16",
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.16",
66
- "@happyvertical/smrt-types": "0.55.16",
67
- "@happyvertical/smrt-secrets": "0.55.16",
68
- "@happyvertical/smrt-tenancy": "0.55.16",
69
- "@happyvertical/smrt-ui": "0.55.16",
70
- "@happyvertical/smrt-users": "0.55.16",
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.16",
88
- "@happyvertical/smrt-vitest": "0.55.16",
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",