@happyvertical/smrt-messages 0.55.15 → 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-Ddu9V850.js → AccountCollection-BM28F2y8.js} +2 -2
  2. package/dist/chunks/{AccountCollection-Ddu9V850.js.map → AccountCollection-BM28F2y8.js.map} +1 -1
  3. package/dist/chunks/{Email-BsLkVCcU.js → Email-CclqFojc.js} +3 -3
  4. package/dist/chunks/{Email-BsLkVCcU.js.map → Email-CclqFojc.js.map} +1 -1
  5. package/dist/chunks/{EmailFolder-DgP2t7vD.js → EmailFolder-DtvYtwiz.js} +2 -2
  6. package/dist/chunks/{EmailFolder-DgP2t7vD.js.map → EmailFolder-DtvYtwiz.js.map} +1 -1
  7. package/dist/chunks/{Message-Sc8bIQ7X.js → Message-CwqRAiRu.js} +4 -4
  8. package/dist/chunks/{Message-Sc8bIQ7X.js.map → Message-CwqRAiRu.js.map} +1 -1
  9. package/dist/chunks/{MessageCollection-Cv1vwpZt.js → MessageCollection-DTmvgr8c.js} +2 -2
  10. package/dist/chunks/{MessageCollection-Cv1vwpZt.js.map → MessageCollection-DTmvgr8c.js.map} +1 -1
  11. package/dist/chunks/{__smrt-register__-BFJ53fMS.js → __smrt-register__-C6vkgxXs.js} +2 -2
  12. package/dist/chunks/{__smrt-register__-BFJ53fMS.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
@@ -52,9 +52,9 @@ function open(message: MessageData) {
52
52
  wasRead = true;
53
53
  }
54
54
  </script>
55
- <p>{t(M['messages.mailbox_demo.disclaimer'])}</p>
55
+ <p data-smrt-component="MailboxDemo">{t(M['messages.mailbox_demo.disclaimer'])}</p>
56
56
  <Button onclick={() => { composing = true; sentSubject = null; }}>{t(M['messages.mailbox_demo.compose'])}</Button>
57
- {#if sentSubject !== null}<p role="status">{t(M['messages.mailbox_demo.sent'], { subject: sentSubject })}</p>{/if}
57
+ {#if sentSubject !== null}<p role="status" data-smrt-component="MailboxDemo">{t(M['messages.mailbox_demo.sent'], { subject: sentSubject })}</p>{/if}
58
58
  {#if composing}
59
59
  <ComposeForm {accounts} onsend={send} ondiscard={() => (composing = false)} />
60
60
  {:else if selected}
@@ -104,7 +104,7 @@ const _slackMeta = $derived.by(() => {
104
104
  class:message-card--unread={!message.isRead}
105
105
  class:message-card--compact={compact}
106
106
  role="row"
107
- aria-selected={selected}
107
+ aria-selected={selected} data-smrt-component="MessageCard"
108
108
  >
109
109
  {#if onselect}
110
110
  <div class="select-col">
@@ -188,23 +188,25 @@ const _slackMeta = $derived.by(() => {
188
188
  </div>
189
189
 
190
190
  <style>
191
+ @layer smrt.reset, smrt.structure, smrt.theme;
192
+ @layer smrt.theme {
191
193
  .message-card {
192
194
  display: flex;
193
195
  align-items: stretch;
194
- border-bottom: 1px solid var(--smrt-color-outline-variant, #c4c6d0);
196
+ border-bottom: 1px solid var(--smrt-color-outline-variant);
195
197
  transition: background var(--smrt-duration-short2, 150ms) var(--smrt-easing-standard, ease);
196
198
  }
197
199
 
198
200
  .message-card:hover {
199
- background: var(--smrt-color-surface-variant, #e1e2ec);
201
+ background: var(--smrt-color-surface-variant);
200
202
  }
201
203
 
202
204
  .message-card--selected {
203
- background: var(--smrt-color-secondary-container, #d7e3f7);
205
+ background: var(--smrt-color-secondary-container);
204
206
  }
205
207
 
206
208
  .message-card--unread {
207
- background: var(--smrt-color-surface, #fefbff);
209
+ background: var(--smrt-color-surface);
208
210
  }
209
211
 
210
212
  .select-col {
@@ -229,7 +231,7 @@ const _slackMeta = $derived.by(() => {
229
231
  }
230
232
 
231
233
  .message-content:focus-visible {
232
- outline: 2px solid var(--smrt-color-primary, #005ac1);
234
+ outline: 2px solid var(--smrt-color-primary);
233
235
  outline-offset: -2px;
234
236
  }
235
237
 
@@ -249,7 +251,7 @@ const _slackMeta = $derived.by(() => {
249
251
 
250
252
  .sender-name {
251
253
  font: var(--smrt-typography-body-medium-font, 0.875rem / 1.25 sans-serif);
252
- color: var(--smrt-color-on-surface, #1a1c1e);
254
+ color: var(--smrt-color-on-surface);
253
255
  overflow: hidden;
254
256
  text-overflow: ellipsis;
255
257
  white-space: nowrap;
@@ -261,8 +263,8 @@ const _slackMeta = $derived.by(() => {
261
263
 
262
264
  .account-label {
263
265
  font: var(--smrt-typography-label-small-font, 500 0.6875rem / 1 sans-serif);
264
- color: var(--smrt-color-on-surface-variant, #43474e);
265
- background: var(--smrt-color-surface-variant, #e1e2ec);
266
+ color: var(--smrt-color-on-surface-variant);
267
+ background: var(--smrt-color-surface-variant);
266
268
  padding: 0.125rem 0.375rem;
267
269
  border-radius: var(--smrt-radius-small, 0.25rem);
268
270
  white-space: nowrap;
@@ -277,7 +279,7 @@ const _slackMeta = $derived.by(() => {
277
279
 
278
280
  .date {
279
281
  font: var(--smrt-typography-label-small-font, 500 0.6875rem / 1 sans-serif);
280
- color: var(--smrt-color-on-surface-variant, #43474e);
282
+ color: var(--smrt-color-on-surface-variant);
281
283
  white-space: nowrap;
282
284
  }
283
285
 
@@ -290,7 +292,7 @@ const _slackMeta = $derived.by(() => {
290
292
 
291
293
  .subject {
292
294
  font: var(--smrt-typography-body-medium-font, 0.875rem / 1.25 sans-serif);
293
- color: var(--smrt-color-on-surface, #1a1c1e);
295
+ color: var(--smrt-color-on-surface);
294
296
  overflow: hidden;
295
297
  text-overflow: ellipsis;
296
298
  white-space: nowrap;
@@ -309,7 +311,7 @@ const _slackMeta = $derived.by(() => {
309
311
 
310
312
  .preview {
311
313
  font: var(--smrt-typography-body-small-font, 0.75rem / 1.33 sans-serif);
312
- color: var(--smrt-color-on-surface-variant, #43474e);
314
+ color: var(--smrt-color-on-surface-variant);
313
315
  overflow: hidden;
314
316
  text-overflow: ellipsis;
315
317
  white-space: nowrap;
@@ -318,7 +320,7 @@ const _slackMeta = $derived.by(() => {
318
320
  .meta-inline {
319
321
  flex-shrink: 0;
320
322
  font: var(--smrt-typography-label-small-font, 500 0.6875rem / 1 sans-serif);
321
- color: var(--smrt-color-on-surface-variant, #43474e);
323
+ color: var(--smrt-color-on-surface-variant);
322
324
  }
323
325
 
324
326
  /*
@@ -335,7 +337,7 @@ const _slackMeta = $derived.by(() => {
335
337
  border: none;
336
338
  background: none;
337
339
  font-size: var(--smrt-typography-body-large-size, 1rem);
338
- color: var(--smrt-color-on-surface-variant, #43474e);
340
+ color: var(--smrt-color-on-surface-variant);
339
341
  opacity: 0.5;
340
342
  transition: opacity var(--smrt-duration-short2, 150ms);
341
343
  }
@@ -351,4 +353,5 @@ const _slackMeta = $derived.by(() => {
351
353
  .message-card--compact .preview-row {
352
354
  display: none;
353
355
  }
356
+ }
354
357
  </style>
@@ -90,7 +90,7 @@ const _displayBody = $derived.by(() => {
90
90
  });
91
91
  </script>
92
92
 
93
- <article class="message-detail">
93
+ <article class="message-detail" data-smrt-component="MessageDetail">
94
94
  <Card padding="lg">
95
95
  <header class="detail-header">
96
96
  <div class="header-top">
@@ -190,6 +190,8 @@ const _displayBody = $derived.by(() => {
190
190
  </article>
191
191
 
192
192
  <style>
193
+ @layer smrt.reset, smrt.structure, smrt.theme;
194
+ @layer smrt.theme {
193
195
  .message-detail {
194
196
  max-width: 100%;
195
197
  }
@@ -199,7 +201,7 @@ const _displayBody = $derived.by(() => {
199
201
  flex-direction: column;
200
202
  gap: 0.75rem;
201
203
  padding-bottom: 1rem;
202
- border-bottom: 1px solid var(--smrt-color-outline-variant, #c4c6d0);
204
+ border-bottom: 1px solid var(--smrt-color-outline-variant);
203
205
  }
204
206
 
205
207
  .header-top {
@@ -211,7 +213,7 @@ const _displayBody = $derived.by(() => {
211
213
  .subject {
212
214
  margin: 0;
213
215
  font: var(--smrt-typography-title-large-font, 600 1.375rem / 1.25 sans-serif);
214
- color: var(--smrt-color-on-surface, #1a1c1e);
216
+ color: var(--smrt-color-on-surface);
215
217
  }
216
218
 
217
219
  .meta-grid {
@@ -229,12 +231,12 @@ const _displayBody = $derived.by(() => {
229
231
  .meta-label {
230
232
  flex-shrink: 0;
231
233
  width: 4rem;
232
- color: var(--smrt-color-on-surface-variant, #43474e);
234
+ color: var(--smrt-color-on-surface-variant);
233
235
  font-weight: var(--smrt-typography-weight-medium, 500);
234
236
  }
235
237
 
236
238
  .meta-value {
237
- color: var(--smrt-color-on-surface, #1a1c1e);
239
+ color: var(--smrt-color-on-surface);
238
240
  overflow: hidden;
239
241
  text-overflow: ellipsis;
240
242
  }
@@ -244,7 +246,7 @@ const _displayBody = $derived.by(() => {
244
246
  gap: 1rem;
245
247
  padding: 0.75rem 0;
246
248
  font: var(--smrt-typography-body-medium-font, 0.875rem / 1.25 sans-serif);
247
- color: var(--smrt-color-on-surface-variant, #43474e);
249
+ color: var(--smrt-color-on-surface-variant);
248
250
  }
249
251
 
250
252
  .type-detail {
@@ -257,7 +259,7 @@ const _displayBody = $derived.by(() => {
257
259
 
258
260
  .body-text {
259
261
  font: var(--smrt-typography-body-large-font, 1rem / 1.5 sans-serif);
260
- color: var(--smrt-color-on-surface, #1a1c1e);
262
+ color: var(--smrt-color-on-surface);
261
263
  white-space: pre-wrap;
262
264
  word-break: break-word;
263
265
  margin: 0;
@@ -266,13 +268,13 @@ const _displayBody = $derived.by(() => {
266
268
 
267
269
  .attachments {
268
270
  padding-top: 0.75rem;
269
- border-top: 1px solid var(--smrt-color-outline-variant, #c4c6d0);
271
+ border-top: 1px solid var(--smrt-color-outline-variant);
270
272
  }
271
273
 
272
274
  .attachments-label {
273
275
  margin: 0 0 0.5rem;
274
276
  font: var(--smrt-typography-label-large-font, 500 0.875rem / 1.25 sans-serif);
275
- color: var(--smrt-color-on-surface-variant, #43474e);
277
+ color: var(--smrt-color-on-surface-variant);
276
278
  }
277
279
 
278
280
  .attachments-list {
@@ -285,7 +287,7 @@ const _displayBody = $derived.by(() => {
285
287
  display: flex;
286
288
  gap: 0.5rem;
287
289
  padding-top: 1rem;
288
- border-top: 1px solid var(--smrt-color-outline-variant, #c4c6d0);
290
+ border-top: 1px solid var(--smrt-color-outline-variant);
289
291
  }
290
292
 
291
293
  /*
@@ -298,24 +300,25 @@ const _displayBody = $derived.by(() => {
298
300
  */
299
301
  .actions :global(.action-btn) {
300
302
  padding: 0.5rem 1rem;
301
- border: 1px solid var(--smrt-color-outline, #72787e);
303
+ border: 1px solid var(--smrt-color-outline);
302
304
  border-radius: var(--smrt-radius-small, 0.25rem);
303
- background: var(--smrt-color-surface, #fefbff);
304
- color: var(--smrt-color-on-surface, #1a1c1e);
305
+ background: var(--smrt-color-surface);
306
+ color: var(--smrt-color-on-surface);
305
307
  font: var(--smrt-typography-label-large-font, 500 0.875rem / 1.25 sans-serif);
306
308
  transition: background var(--smrt-duration-short2, 150ms);
307
309
  }
308
310
 
309
311
  .actions :global(.action-btn):hover {
310
- background: var(--smrt-color-surface-variant, #e1e2ec);
312
+ background: var(--smrt-color-surface-variant);
311
313
  }
312
314
 
313
315
  .actions :global(.action-btn--danger) {
314
- color: var(--smrt-color-error, #ba1a1a);
315
- border-color: var(--smrt-color-error, #ba1a1a);
316
+ color: var(--smrt-color-error);
317
+ border-color: var(--smrt-color-error);
316
318
  }
317
319
 
318
320
  .actions :global(.action-btn--danger):hover {
319
- background: var(--smrt-color-error-container, #ffdad6);
321
+ background: var(--smrt-color-error-container);
320
322
  }
323
+ }
321
324
  </style>
@@ -89,7 +89,7 @@ const _hasActiveFilters = $derived(
89
89
  );
90
90
  </script>
91
91
 
92
- <div class="message-filters" role="search" aria-label={t(M['messages.message_filters.filters_label'])}>
92
+ <div class="message-filters" role="search" aria-label={t(M['messages.message_filters.filters_label'])} data-smrt-component="MessageFilters">
93
93
  <div class="search-row">
94
94
  <Input
95
95
  type="search"
@@ -162,13 +162,15 @@ const _hasActiveFilters = $derived(
162
162
  </div>
163
163
 
164
164
  <style>
165
+ @layer smrt.reset, smrt.structure, smrt.theme;
166
+ @layer smrt.theme {
165
167
  .message-filters {
166
168
  display: flex;
167
169
  flex-direction: column;
168
170
  gap: 0.5rem;
169
171
  padding: 0.75rem;
170
- background: var(--smrt-color-surface, #fefbff);
171
- border: 1px solid var(--smrt-color-outline-variant, #c4c6d0);
172
+ background: var(--smrt-color-surface);
173
+ border: 1px solid var(--smrt-color-outline-variant);
172
174
  border-radius: var(--smrt-radius-medium, 0.5rem);
173
175
  }
174
176
 
@@ -223,7 +225,7 @@ const _hasActiveFilters = $derived(
223
225
  align-items: center;
224
226
  gap: 0.25rem;
225
227
  font: var(--smrt-typography-body-small-font, 0.75rem / 1.33 sans-serif);
226
- color: var(--smrt-color-on-surface, #1a1c1e);
228
+ color: var(--smrt-color-on-surface);
227
229
  cursor: pointer;
228
230
  }
229
231
 
@@ -238,7 +240,8 @@ const _hasActiveFilters = $derived(
238
240
  border: none;
239
241
  background: none;
240
242
  font: var(--smrt-typography-label-medium-font, 500 0.75rem / 1.33 sans-serif);
241
- color: var(--smrt-color-primary, #005ac1);
243
+ color: var(--smrt-color-primary);
242
244
  text-decoration: underline;
243
245
  }
246
+ }
244
247
  </style>
@@ -60,7 +60,7 @@ function getAccount(accountId: string): AccountData | undefined {
60
60
  }
61
61
  </script>
62
62
 
63
- <div class="message-list" role="grid" aria-label={t(M['messages.message_list.messages_label'])}>
63
+ <div class="message-list" role="grid" aria-label={t(M['messages.message_list.messages_label'])} data-smrt-component="MessageList">
64
64
  {#if loading}
65
65
  <div class="loading" role="status" aria-live="polite">
66
66
  <p>{t(M['messages.message_list.loading'])}</p>
@@ -91,24 +91,27 @@ function getAccount(accountId: string): AccountData | undefined {
91
91
  </div>
92
92
 
93
93
  <style>
94
+ @layer smrt.reset, smrt.structure, smrt.theme;
95
+ @layer smrt.theme {
94
96
  .message-list {
95
97
  display: flex;
96
98
  flex-direction: column;
97
- border: 1px solid var(--smrt-color-outline-variant, #c4c6d0);
99
+ border: 1px solid var(--smrt-color-outline-variant);
98
100
  border-radius: var(--smrt-radius-medium, 0.5rem);
99
101
  overflow: hidden;
100
- background: var(--smrt-color-surface, #fefbff);
102
+ background: var(--smrt-color-surface);
101
103
  }
102
104
 
103
105
  .loading,
104
106
  .empty {
105
107
  text-align: center;
106
108
  padding: var(--smrt-spacing-3xl, 3rem);
107
- color: var(--smrt-color-on-surface-variant, #43474e);
109
+ color: var(--smrt-color-on-surface-variant);
108
110
  }
109
111
 
110
112
  .loading p,
111
113
  .empty p {
112
114
  font: var(--smrt-typography-body-large-font, 1.125rem / 1.5 sans-serif);
113
115
  }
116
+ }
114
117
  </style>
@@ -29,7 +29,7 @@ const {
29
29
  }: Props = $props();
30
30
  </script>
31
31
 
32
- <span class="status-indicators" role="group" aria-label={t(M['messages.message_status_indicator.status'])}>
32
+ <span class="status-indicators" role="group" aria-label={t(M['messages.message_status_indicator.status'])} data-smrt-component="MessageStatusIndicator">
33
33
  {#if !isRead}
34
34
  <span class="indicator unread" title={t(M['messages.message_status_indicator.unread'])} aria-label={t(M['messages.message_status_indicator.unread'])}>
35
35
  <span class="dot"></span>
@@ -50,6 +50,8 @@ const {
50
50
  </span>
51
51
 
52
52
  <style>
53
+ @layer smrt.reset, smrt.structure, smrt.theme;
54
+ @layer smrt.theme {
53
55
  .status-indicators {
54
56
  display: inline-flex;
55
57
  align-items: center;
@@ -65,23 +67,24 @@ const {
65
67
  .unread .dot {
66
68
  width: 0.5rem;
67
69
  height: 0.5rem;
68
- border-radius: var(--smrt-radius-full, 9999px);
69
- background: var(--smrt-color-primary, #005ac1);
70
+ border-radius: var(--smrt-radius-full);
71
+ background: var(--smrt-color-primary);
70
72
  }
71
73
 
72
74
  .flagged {
73
- color: var(--smrt-color-error, #ba1a1a);
75
+ color: var(--smrt-color-error);
74
76
  }
75
77
 
76
78
  .attachment {
77
- color: var(--smrt-color-on-surface-variant, #43474e);
79
+ color: var(--smrt-color-on-surface-variant);
78
80
  }
79
81
 
80
82
  .answered {
81
- color: var(--smrt-color-primary, #005ac1);
83
+ color: var(--smrt-color-primary);
82
84
  }
83
85
 
84
86
  .draft {
85
- color: var(--smrt-color-on-surface-variant, #43474e);
87
+ color: var(--smrt-color-on-surface-variant);
86
88
  }
89
+ }
87
90
  </style>
@@ -35,7 +35,7 @@ const {
35
35
  }: Props = $props();
36
36
  </script>
37
37
 
38
- <div class="toolbar" role="toolbar" aria-label={t(M['messages.message_toolbar.actions_label'])}>
38
+ <div class="toolbar" role="toolbar" aria-label={t(M['messages.message_toolbar.actions_label'])} data-smrt-component="MessageToolbar">
39
39
  <div class="selection-info">
40
40
  {#if selectedCount > 0}
41
41
  <span class="count">{t(M['messages.message_toolbar.count_selected'], { selectedCount, totalCount })}</span>
@@ -79,12 +79,14 @@ const {
79
79
  </div>
80
80
 
81
81
  <style>
82
+ @layer smrt.reset, smrt.structure, smrt.theme;
83
+ @layer smrt.theme {
82
84
  .toolbar {
83
85
  display: flex;
84
86
  align-items: center;
85
87
  justify-content: space-between;
86
88
  padding: 0.5rem 0.75rem;
87
- background: var(--smrt-color-surface-variant, #e1e2ec);
89
+ background: var(--smrt-color-surface-variant);
88
90
  border-radius: var(--smrt-radius-small, 0.25rem);
89
91
  gap: 1rem;
90
92
  flex-wrap: wrap;
@@ -98,7 +100,7 @@ const {
98
100
 
99
101
  .count {
100
102
  font: var(--smrt-typography-body-small-font, 0.75rem / 1.33 sans-serif);
101
- color: var(--smrt-color-on-surface-variant, #43474e);
103
+ color: var(--smrt-color-on-surface-variant);
102
104
  }
103
105
 
104
106
  /*
@@ -114,7 +116,7 @@ const {
114
116
  border: none;
115
117
  background: none;
116
118
  font: var(--smrt-typography-label-medium-font, 500 0.75rem / 1.33 sans-serif);
117
- color: var(--smrt-color-primary, #005ac1);
119
+ color: var(--smrt-color-primary);
118
120
  text-decoration: underline;
119
121
  padding: 0;
120
122
  }
@@ -127,19 +129,20 @@ const {
127
129
 
128
130
  .actions :global(.action-btn) {
129
131
  padding: 0.25rem 0.625rem;
130
- border: 1px solid var(--smrt-color-outline, #72787e);
132
+ border: 1px solid var(--smrt-color-outline);
131
133
  border-radius: var(--smrt-radius-small, 0.25rem);
132
- background: var(--smrt-color-surface, #fefbff);
133
- color: var(--smrt-color-on-surface, #1a1c1e);
134
+ background: var(--smrt-color-surface);
135
+ color: var(--smrt-color-on-surface);
134
136
  font: var(--smrt-typography-label-small-font, 500 0.6875rem / 1 sans-serif);
135
137
  }
136
138
 
137
139
  .actions :global(.action-btn):hover {
138
- background: var(--smrt-color-surface-variant, #e1e2ec);
140
+ background: var(--smrt-color-surface-variant);
139
141
  }
140
142
 
141
143
  .actions :global(.action-btn--danger) {
142
- color: var(--smrt-color-error, #ba1a1a);
143
- border-color: var(--smrt-color-error, #ba1a1a);
144
+ color: var(--smrt-color-error);
145
+ border-color: var(--smrt-color-error);
144
146
  }
147
+ }
145
148
  </style>
@@ -49,6 +49,8 @@ const _variant = $derived.by(() => {
49
49
  </Badge>
50
50
 
51
51
  <style>
52
+ @layer smrt.reset, smrt.structure, smrt.theme;
53
+ @layer smrt.theme {
52
54
  .type-badge {
53
55
  display: inline-flex;
54
56
  align-items: center;
@@ -58,4 +60,5 @@ const _variant = $derived.by(() => {
58
60
  .type-icon {
59
61
  font-size: 0.85em;
60
62
  }
63
+ }
61
64
  </style>
@@ -239,7 +239,7 @@ async function saveRoute() {
239
239
  }
240
240
  </script>
241
241
 
242
- <div class="messaging-settings">
242
+ <div class="messaging-settings" data-smrt-component="MessagingSettingsPanel">
243
243
  <section>
244
244
  <header>
245
245
  <div><h3>{t(M['messages.messaging_settings.accounts_title'])}</h3><p>{t(M['messages.messaging_settings.accounts_description'])}</p></div>
@@ -389,19 +389,22 @@ async function saveRoute() {
389
389
  </div>
390
390
 
391
391
  <style>
392
+ @layer smrt.reset, smrt.structure, smrt.theme;
393
+ @layer smrt.theme {
392
394
  .messaging-settings { display: grid; gap: 1.5rem; }
393
395
  section { display: grid; gap: 0.75rem; }
394
396
  header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
395
397
  h3, h4, p { margin: 0; }
396
- header p, small, .secret-note, .empty { color: var(--smrt-color-on-surface-variant, #64748b); }
398
+ header p, small, .secret-note, .empty { color: var(--smrt-color-on-surface-variant); }
397
399
  .items { display: grid; gap: 0.5rem; }
398
- :global(.item) { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.875rem; text-align: left; background: var(--smrt-color-surface, #fff); color: inherit; border: 1px solid var(--smrt-color-outline-variant, #e2e8f0); border-radius: 0.5rem; }
400
+ :global(.item) { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.875rem; text-align: left; background: var(--smrt-color-surface); color: inherit; border: 1px solid var(--smrt-color-outline-variant); border-radius: 0.5rem; }
399
401
  :global(.item:not(:disabled)) { cursor: pointer; }
400
402
  :global(.item span:first-child) { display: grid; gap: 0.2rem; }
401
- .ok { color: var(--smrt-color-success, #15803d); }
402
- :global(.editor) { display: grid; gap: 0.65rem; padding: 1rem; border: 1px solid var(--smrt-color-outline-variant, #e2e8f0); border-radius: 0.5rem; background: var(--smrt-color-surface-container-low, #f8fafc); }
403
+ .ok { color: var(--smrt-color-success); }
404
+ :global(.editor) { display: grid; gap: 0.65rem; padding: 1rem; border: 1px solid var(--smrt-color-outline-variant); border-radius: 0.5rem; background: var(--smrt-color-surface-container-low); }
403
405
  label { font-weight: var(--smrt-typography-weight-semibold, 600); }
404
406
  .checkbox { display: flex; align-items: center; gap: 0.5rem; }
405
407
  .actions { display: flex; justify-content: flex-end; gap: 0.5rem; margin-top: 0.5rem; }
406
- .error { color: var(--smrt-color-error, #b91c1c); }
408
+ .error { color: var(--smrt-color-error); }
409
+ }
407
410
  </style>
@@ -62,7 +62,7 @@ export interface Props {
62
62
  }
63
63
  </script>
64
64
 
65
- <div class="recipient-input">
65
+ <div class="recipient-input" data-smrt-component="RecipientInput">
66
66
  <label class="label" for={inputId}>{label}</label>
67
67
  <div class="chips-container">
68
68
  {#each recipients as recipient, i}
@@ -89,26 +89,28 @@ export interface Props {
89
89
  </div>
90
90
 
91
91
  <style>
92
+ @layer smrt.reset, smrt.structure, smrt.theme;
93
+ @layer smrt.theme {
92
94
  .recipient-input {
93
95
  display: flex;
94
96
  align-items: flex-start;
95
- gap: var(--smrt-spacing-2, 8px);
96
- padding: var(--smrt-spacing-1, 4px) 0;
97
- border-bottom: 1px solid var(--smrt-color-outline-variant, #cac4d0);
97
+ gap: var(--smrt-spacing-2);
98
+ padding: var(--smrt-spacing-1) 0;
99
+ border-bottom: 1px solid var(--smrt-color-outline-variant);
98
100
  }
99
101
 
100
102
  .label {
101
103
  font-family: var(--smrt-font-family, system-ui);
102
- font-size: var(--smrt-typography-label-large-size, 14px);
103
- color: var(--smrt-color-on-surface-variant, #49454f);
104
- padding-top: var(--smrt-spacing-2, 8px);
104
+ font-size: var(--smrt-typography-label-large-size);
105
+ color: var(--smrt-color-on-surface-variant);
106
+ padding-top: var(--smrt-spacing-2);
105
107
  min-width: 32px;
106
108
  }
107
109
 
108
110
  .chips-container {
109
111
  display: flex;
110
112
  flex-wrap: wrap;
111
- gap: var(--smrt-spacing-1, 4px);
113
+ gap: var(--smrt-spacing-1);
112
114
  flex: 1;
113
115
  align-items: center;
114
116
  }
@@ -116,18 +118,18 @@ export interface Props {
116
118
  .chip {
117
119
  display: inline-flex;
118
120
  align-items: center;
119
- gap: var(--smrt-spacing-1, 4px);
120
- padding: var(--smrt-spacing-1, 4px) var(--smrt-spacing-1, 4px) var(--smrt-spacing-1, 4px) var(--smrt-spacing-2, 8px);
121
- border-radius: var(--smrt-radius-sm, 8px);
122
- background: var(--smrt-color-secondary-container, #e8def8);
123
- color: var(--smrt-color-on-secondary-container, #1d192b);
124
- font-size: var(--smrt-typography-label-large-size, 13px);
121
+ gap: var(--smrt-spacing-1);
122
+ padding: var(--smrt-spacing-1) var(--smrt-spacing-1) var(--smrt-spacing-1) var(--smrt-spacing-2);
123
+ border-radius: var(--smrt-radius-sm);
124
+ background: var(--smrt-color-secondary-container);
125
+ color: var(--smrt-color-on-secondary-container);
126
+ font-size: var(--smrt-typography-label-large-size);
125
127
  font-family: var(--smrt-font-family, system-ui);
126
128
  }
127
129
 
128
130
  .chip.invalid {
129
- background: var(--smrt-color-error-container, #ffdad6);
130
- color: var(--smrt-color-on-error-container, #410002);
131
+ background: var(--smrt-color-error-container);
132
+ color: var(--smrt-color-on-error-container);
131
133
  }
132
134
 
133
135
  /*
@@ -140,8 +142,8 @@ export interface Props {
140
142
  .chips-container :global(.chip-remove) {
141
143
  background: none;
142
144
  border: none;
143
- padding: 0 var(--smrt-spacing-1, 4px);
144
- font-size: var(--smrt-typography-label-large-size, 14px);
145
+ padding: 0 var(--smrt-spacing-1);
146
+ font-size: var(--smrt-typography-label-large-size);
145
147
  color: inherit;
146
148
  opacity: 0.7;
147
149
  }
@@ -164,14 +166,15 @@ export interface Props {
164
166
  outline: none;
165
167
  box-shadow: none;
166
168
  font-family: var(--smrt-font-family, system-ui);
167
- font-size: var(--smrt-typography-body-medium-size, 14px);
168
- padding: var(--smrt-spacing-1, 4px) 0;
169
+ font-size: var(--smrt-typography-body-medium-size);
170
+ padding: var(--smrt-spacing-1) 0;
169
171
  background: transparent;
170
- color: var(--smrt-color-on-surface, #1c1b1f);
172
+ color: var(--smrt-color-on-surface);
171
173
  }
172
174
 
173
175
  .chips-container :global(.recipient-field):focus {
174
176
  border: none;
175
177
  box-shadow: none;
176
178
  }
179
+ }
177
180
  </style>