@happyvertical/smrt-chat 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/{chat-stream-j6VuNo3t.js → chat-stream-D1xCl9IM.js} +2 -2
- package/dist/chunks/{chat-stream-j6VuNo3t.js.map → chat-stream-D1xCl9IM.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/manifest.json +1 -1
- package/dist/smrt-knowledge.json +3 -3
- package/dist/svelte/components/agent/AgentChat.svelte +70 -67
- package/dist/svelte/components/agent/AgentSelector.svelte +26 -23
- package/dist/svelte/components/agent/AgentSessionPanel.svelte +47 -44
- package/dist/svelte/components/agent/ToolCallDisplay.svelte +52 -49
- package/dist/svelte/components/assistant/AssistantChoiceCards.svelte +19 -17
- package/dist/svelte/components/assistant/AssistantComposer.svelte +31 -28
- package/dist/svelte/components/assistant/AssistantDock.svelte +69 -66
- package/dist/svelte/components/assistant/AssistantThreadList.svelte +23 -20
- package/dist/svelte/components/assistant/FloatingAssistant.svelte +6 -3
- package/dist/svelte/components/assistant/captions/CaptionOverlay.svelte +4 -1
- package/dist/svelte/components/assistant/captions/HeardCaptions.svelte +5 -2
- package/dist/svelte/components/assistant/captions/SpokenCaptions.svelte +5 -2
- package/dist/svelte/components/dialogs/RoomCreateDialog.svelte +13 -10
- package/dist/svelte/components/dialogs/SearchMessages.svelte +35 -32
- package/dist/svelte/components/helper/HelperControlPanel.svelte +4 -1
- package/dist/svelte/components/layout/ChatLayout.svelte +14 -10
- package/dist/svelte/components/layout/MemberList.svelte +30 -27
- package/dist/svelte/components/layout/RoomHeader.svelte +19 -16
- package/dist/svelte/components/layout/RoomList.svelte +26 -23
- package/dist/svelte/components/messages/MessageInput.svelte +20 -17
- package/dist/svelte/components/messages/MessageItem.svelte +45 -42
- package/dist/svelte/components/messages/MessageList.svelte +8 -5
- package/dist/svelte/components/messages/ThreadPanel.svelte +15 -12
- package/dist/svelte/components/shared/FileUpload.svelte +39 -36
- package/dist/svelte/components/shared/LinkPreview.svelte +9 -6
- package/dist/svelte/components/shared/MentionAutocomplete.svelte +16 -13
- package/dist/svelte/components/shared/ReadReceipts.svelte +13 -10
- package/dist/svelte/components/shared/UserPresence.svelte +10 -7
- package/dist/svelte/components/tabs/ChatTab.svelte +26 -23
- package/dist/svelte/components/tabs/ChatTabList.svelte +20 -17
- package/dist/svelte/components/tabs/ChatTabs.svelte +7 -4
- package/dist/svelte/components/tabs/MiniChat.svelte +26 -23
- package/dist/sveltekit.js +1 -1
- package/package.json +17 -17
|
@@ -392,7 +392,7 @@ function removeAttachment(id: string) {
|
|
|
392
392
|
<div
|
|
393
393
|
class="assistant-composer"
|
|
394
394
|
ondrop={onupload ? handleDrop : undefined}
|
|
395
|
-
ondragover={onupload ? (event) => event.preventDefault() : undefined}
|
|
395
|
+
ondragover={onupload ? (event) => event.preventDefault() : undefined} data-smrt-component="AssistantComposer"
|
|
396
396
|
>
|
|
397
397
|
{#if sendError}
|
|
398
398
|
<p class="assistant-composer-error" role="alert">
|
|
@@ -500,10 +500,12 @@ function removeAttachment(id: string) {
|
|
|
500
500
|
</div>
|
|
501
501
|
|
|
502
502
|
<style>
|
|
503
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
504
|
+
@layer smrt.theme {
|
|
503
505
|
.assistant-composer {
|
|
504
|
-
border-top: 1px solid var(--smrt-color-outline-variant
|
|
505
|
-
background: var(--smrt-color-surface
|
|
506
|
-
padding: var(--smrt-spacing-2
|
|
506
|
+
border-top: 1px solid var(--smrt-color-outline-variant);
|
|
507
|
+
background: var(--smrt-color-surface);
|
|
508
|
+
padding: var(--smrt-spacing-2);
|
|
507
509
|
flex-shrink: 0;
|
|
508
510
|
container-type: inline-size;
|
|
509
511
|
}
|
|
@@ -512,7 +514,7 @@ function removeAttachment(id: string) {
|
|
|
512
514
|
.assistant-composer-row {
|
|
513
515
|
display: flex;
|
|
514
516
|
align-items: flex-end;
|
|
515
|
-
gap: var(--smrt-spacing-2
|
|
517
|
+
gap: var(--smrt-spacing-2);
|
|
516
518
|
}
|
|
517
519
|
|
|
518
520
|
:global(.assistant-composer-attach) {
|
|
@@ -523,15 +525,15 @@ function removeAttachment(id: string) {
|
|
|
523
525
|
width: 44px;
|
|
524
526
|
height: 44px;
|
|
525
527
|
padding: 0;
|
|
526
|
-
border: 1px solid var(--smrt-color-outline-variant
|
|
527
|
-
border-radius: var(--smrt-radius-full
|
|
528
|
-
background: var(--smrt-color-surface-container-low
|
|
529
|
-
color: var(--smrt-color-on-surface-variant
|
|
528
|
+
border: 1px solid var(--smrt-color-outline-variant);
|
|
529
|
+
border-radius: var(--smrt-radius-full);
|
|
530
|
+
background: var(--smrt-color-surface-container-low);
|
|
531
|
+
color: var(--smrt-color-on-surface-variant);
|
|
530
532
|
cursor: pointer;
|
|
531
533
|
}
|
|
532
534
|
|
|
533
535
|
:global(.assistant-composer-attach:hover:not(:disabled)) {
|
|
534
|
-
background: var(--smrt-color-surface-container
|
|
536
|
+
background: var(--smrt-color-surface-container);
|
|
535
537
|
}
|
|
536
538
|
|
|
537
539
|
:global(.assistant-composer-attach:disabled) {
|
|
@@ -570,11 +572,11 @@ function removeAttachment(id: string) {
|
|
|
570
572
|
|
|
571
573
|
:global(.assistant-composer-send) {
|
|
572
574
|
flex-shrink: 0;
|
|
573
|
-
padding: var(--smrt-spacing-2
|
|
575
|
+
padding: var(--smrt-spacing-2) var(--smrt-spacing-3);
|
|
574
576
|
border: none;
|
|
575
|
-
border-radius: var(--smrt-radius-medium
|
|
576
|
-
background: var(--smrt-color-primary
|
|
577
|
-
color: var(--smrt-color-on-primary
|
|
577
|
+
border-radius: var(--smrt-radius-medium);
|
|
578
|
+
background: var(--smrt-color-primary);
|
|
579
|
+
color: var(--smrt-color-on-primary);
|
|
578
580
|
font: var(--smrt-typography-label-large-font, 500 0.875rem/1.25 sans-serif);
|
|
579
581
|
cursor: pointer;
|
|
580
582
|
}
|
|
@@ -588,21 +590,21 @@ function removeAttachment(id: string) {
|
|
|
588
590
|
list-style: none;
|
|
589
591
|
display: flex;
|
|
590
592
|
flex-wrap: wrap;
|
|
591
|
-
gap: var(--smrt-spacing-2
|
|
592
|
-
margin: 0 0 var(--smrt-spacing-2
|
|
593
|
+
gap: var(--smrt-spacing-2);
|
|
594
|
+
margin: 0 0 var(--smrt-spacing-2);
|
|
593
595
|
padding: 0;
|
|
594
596
|
}
|
|
595
597
|
|
|
596
598
|
.assistant-composer-chip {
|
|
597
599
|
display: inline-flex;
|
|
598
600
|
align-items: center;
|
|
599
|
-
gap: var(--smrt-spacing-1
|
|
600
|
-
padding: var(--smrt-spacing-1
|
|
601
|
-
border-radius: var(--smrt-radius-full
|
|
602
|
-
background: var(--smrt-color-surface-container-low
|
|
603
|
-
border: 1px solid var(--smrt-color-outline-variant
|
|
601
|
+
gap: var(--smrt-spacing-1);
|
|
602
|
+
padding: var(--smrt-spacing-1) var(--smrt-spacing-2);
|
|
603
|
+
border-radius: var(--smrt-radius-full);
|
|
604
|
+
background: var(--smrt-color-surface-container-low);
|
|
605
|
+
border: 1px solid var(--smrt-color-outline-variant);
|
|
604
606
|
font: var(--smrt-typography-label-small-font, 500 0.6875rem/1 sans-serif);
|
|
605
|
-
color: var(--smrt-color-on-surface
|
|
607
|
+
color: var(--smrt-color-on-surface);
|
|
606
608
|
max-width: 160px;
|
|
607
609
|
}
|
|
608
610
|
|
|
@@ -615,18 +617,18 @@ function removeAttachment(id: string) {
|
|
|
615
617
|
:global(.assistant-composer-chip-remove) {
|
|
616
618
|
border: none;
|
|
617
619
|
background: none;
|
|
618
|
-
color: var(--smrt-color-on-surface-variant
|
|
620
|
+
color: var(--smrt-color-on-surface-variant);
|
|
619
621
|
cursor: pointer;
|
|
620
622
|
line-height: 1;
|
|
621
623
|
padding: 0;
|
|
622
624
|
}
|
|
623
625
|
|
|
624
626
|
.assistant-composer-error {
|
|
625
|
-
margin: 0 0 var(--smrt-spacing-2
|
|
626
|
-
padding: var(--smrt-spacing-2
|
|
627
|
-
border-radius: var(--smrt-radius-medium
|
|
628
|
-
background: var(--smrt-color-error-container
|
|
629
|
-
color: var(--smrt-color-on-error-container
|
|
627
|
+
margin: 0 0 var(--smrt-spacing-2);
|
|
628
|
+
padding: var(--smrt-spacing-2) var(--smrt-spacing-3);
|
|
629
|
+
border-radius: var(--smrt-radius-medium);
|
|
630
|
+
background: var(--smrt-color-error-container);
|
|
631
|
+
color: var(--smrt-color-on-error-container);
|
|
630
632
|
font: var(--smrt-typography-body-small-font, 0.8125rem/1.4 sans-serif);
|
|
631
633
|
}
|
|
632
634
|
|
|
@@ -647,4 +649,5 @@ function removeAttachment(id: string) {
|
|
|
647
649
|
margin-inline-start: auto;
|
|
648
650
|
}
|
|
649
651
|
}
|
|
652
|
+
}
|
|
650
653
|
</style>
|
|
@@ -604,7 +604,7 @@ async function handleConfirmAction(requestId: string) {
|
|
|
604
604
|
}
|
|
605
605
|
</script>
|
|
606
606
|
|
|
607
|
-
<div class="assistant-dock">
|
|
607
|
+
<div class="assistant-dock" data-smrt-component="AssistantDock">
|
|
608
608
|
<div
|
|
609
609
|
class="assistant-dock-layout"
|
|
610
610
|
data-threads-open={threadsOpen || undefined}
|
|
@@ -995,6 +995,8 @@ async function handleConfirmAction(requestId: string) {
|
|
|
995
995
|
</div>
|
|
996
996
|
|
|
997
997
|
<style>
|
|
998
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
999
|
+
@layer smrt.theme {
|
|
998
1000
|
/* #3000: the dock sizes itself against its own container (a shell dock
|
|
999
1001
|
* edge can be ~250px wide) rather than the viewport. A container cannot
|
|
1000
1002
|
* query itself, so the flex layout lives on an inner wrapper. */
|
|
@@ -1003,8 +1005,8 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1003
1005
|
height: 100%;
|
|
1004
1006
|
min-height: 0;
|
|
1005
1007
|
font-family: var(--smrt-font-family, system-ui, sans-serif);
|
|
1006
|
-
background: var(--smrt-color-surface
|
|
1007
|
-
color: var(--smrt-color-on-surface
|
|
1008
|
+
background: var(--smrt-color-surface);
|
|
1009
|
+
color: var(--smrt-color-on-surface);
|
|
1008
1010
|
}
|
|
1009
1011
|
|
|
1010
1012
|
.assistant-dock-layout {
|
|
@@ -1019,9 +1021,9 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1019
1021
|
justify-content: space-between;
|
|
1020
1022
|
gap: 0.5rem;
|
|
1021
1023
|
padding: 0.35rem 0.75rem;
|
|
1022
|
-
border-top: 1px solid var(--smrt-color-outline-variant
|
|
1024
|
+
border-top: 1px solid var(--smrt-color-outline-variant);
|
|
1023
1025
|
font-size: var(--smrt-typography-body-medium-size, 0.85rem);
|
|
1024
|
-
color: var(--smrt-color-on-surface-variant
|
|
1026
|
+
color: var(--smrt-color-on-surface-variant);
|
|
1025
1027
|
}
|
|
1026
1028
|
|
|
1027
1029
|
.assistant-dock-run {
|
|
@@ -1030,16 +1032,16 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1030
1032
|
justify-content: space-between;
|
|
1031
1033
|
gap: 0.5rem;
|
|
1032
1034
|
padding: 0.35rem 0.75rem;
|
|
1033
|
-
border-bottom: 1px solid var(--smrt-color-outline-variant
|
|
1035
|
+
border-bottom: 1px solid var(--smrt-color-outline-variant);
|
|
1034
1036
|
font-size: var(--smrt-typography-body-medium-size, 0.85rem);
|
|
1035
1037
|
}
|
|
1036
1038
|
|
|
1037
1039
|
.assistant-dock-tool-request {
|
|
1038
1040
|
margin: 0.5rem 0;
|
|
1039
1041
|
padding: 0.75rem;
|
|
1040
|
-
border: 1px solid var(--smrt-color-outline-variant
|
|
1041
|
-
border-radius: var(--smrt-radius-md
|
|
1042
|
-
background: var(--smrt-color-surface-container
|
|
1042
|
+
border: 1px solid var(--smrt-color-outline-variant);
|
|
1043
|
+
border-radius: var(--smrt-radius-md);
|
|
1044
|
+
background: var(--smrt-color-surface-container);
|
|
1043
1045
|
}
|
|
1044
1046
|
|
|
1045
1047
|
.assistant-dock-tool-request p {
|
|
@@ -1051,7 +1053,7 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1051
1053
|
}
|
|
1052
1054
|
|
|
1053
1055
|
.assistant-dock-tool-request-warning {
|
|
1054
|
-
color: var(--smrt-color-error
|
|
1056
|
+
color: var(--smrt-color-error);
|
|
1055
1057
|
}
|
|
1056
1058
|
|
|
1057
1059
|
.assistant-dock-tool-request-details pre {
|
|
@@ -1091,15 +1093,15 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1091
1093
|
display: flex;
|
|
1092
1094
|
justify-content: flex-start;
|
|
1093
1095
|
align-items: center;
|
|
1094
|
-
gap: var(--smrt-spacing-2
|
|
1096
|
+
gap: var(--smrt-spacing-2);
|
|
1095
1097
|
flex-shrink: 0;
|
|
1096
1098
|
width: 100%;
|
|
1097
1099
|
min-height: 44px;
|
|
1098
|
-
padding: var(--smrt-spacing-2
|
|
1100
|
+
padding: var(--smrt-spacing-2) var(--smrt-spacing-3);
|
|
1099
1101
|
border: none;
|
|
1100
|
-
border-bottom: 1px solid var(--smrt-color-outline-variant
|
|
1101
|
-
background: var(--smrt-color-surface-container-low
|
|
1102
|
-
color: var(--smrt-color-on-surface
|
|
1102
|
+
border-bottom: 1px solid var(--smrt-color-outline-variant);
|
|
1103
|
+
background: var(--smrt-color-surface-container-low);
|
|
1104
|
+
color: var(--smrt-color-on-surface);
|
|
1103
1105
|
font: var(--smrt-typography-label-large-font, 500 0.875rem/1.25 sans-serif);
|
|
1104
1106
|
font-family: inherit;
|
|
1105
1107
|
border-radius: 0;
|
|
@@ -1109,7 +1111,7 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1109
1111
|
|
|
1110
1112
|
.assistant-dock .assistant-dock-layout > :global(.assistant-dock-threads-toggle::before) {
|
|
1111
1113
|
content: '▸' / '';
|
|
1112
|
-
color: var(--smrt-color-on-surface-variant
|
|
1114
|
+
color: var(--smrt-color-on-surface-variant);
|
|
1113
1115
|
}
|
|
1114
1116
|
|
|
1115
1117
|
.assistant-dock .assistant-dock-layout[data-threads-open]
|
|
@@ -1118,7 +1120,7 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1118
1120
|
}
|
|
1119
1121
|
|
|
1120
1122
|
.assistant-dock .assistant-dock-layout > :global(.assistant-dock-threads-toggle:focus-visible) {
|
|
1121
|
-
outline: 2px solid var(--smrt-color-primary
|
|
1123
|
+
outline: 2px solid var(--smrt-color-primary);
|
|
1122
1124
|
outline-offset: -2px;
|
|
1123
1125
|
}
|
|
1124
1126
|
|
|
@@ -1130,7 +1132,7 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1130
1132
|
display: flex;
|
|
1131
1133
|
max-width: none;
|
|
1132
1134
|
max-height: 40%;
|
|
1133
|
-
border-bottom: 1px solid var(--smrt-color-outline-variant
|
|
1135
|
+
border-bottom: 1px solid var(--smrt-color-outline-variant);
|
|
1134
1136
|
}
|
|
1135
1137
|
|
|
1136
1138
|
.assistant-dock-threads > :global(.assistant-thread-list) {
|
|
@@ -1150,11 +1152,11 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1150
1152
|
|
|
1151
1153
|
.assistant-dock-empty {
|
|
1152
1154
|
margin: 0;
|
|
1153
|
-
padding: var(--smrt-spacing-2
|
|
1155
|
+
padding: var(--smrt-spacing-2) var(--smrt-spacing-3);
|
|
1154
1156
|
font: var(--smrt-typography-body-small-font, 0.8125rem/1.4 sans-serif);
|
|
1155
|
-
color: var(--smrt-color-on-surface-variant
|
|
1156
|
-
background: var(--smrt-color-surface-container-low
|
|
1157
|
-
border-bottom: 1px solid var(--smrt-color-outline-variant
|
|
1157
|
+
color: var(--smrt-color-on-surface-variant);
|
|
1158
|
+
background: var(--smrt-color-surface-container-low);
|
|
1159
|
+
border-bottom: 1px solid var(--smrt-color-outline-variant);
|
|
1158
1160
|
}
|
|
1159
1161
|
|
|
1160
1162
|
.assistant-dock-scroll {
|
|
@@ -1162,8 +1164,8 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1162
1164
|
overflow-y: auto;
|
|
1163
1165
|
display: flex;
|
|
1164
1166
|
flex-direction: column;
|
|
1165
|
-
gap: var(--smrt-spacing-3
|
|
1166
|
-
padding: var(--smrt-spacing-3
|
|
1167
|
+
gap: var(--smrt-spacing-3);
|
|
1168
|
+
padding: var(--smrt-spacing-3);
|
|
1167
1169
|
min-height: 0;
|
|
1168
1170
|
}
|
|
1169
1171
|
|
|
@@ -1173,7 +1175,7 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1173
1175
|
padding: 0;
|
|
1174
1176
|
display: flex;
|
|
1175
1177
|
flex-direction: column;
|
|
1176
|
-
gap: var(--smrt-spacing-2
|
|
1178
|
+
gap: var(--smrt-spacing-2);
|
|
1177
1179
|
}
|
|
1178
1180
|
|
|
1179
1181
|
/* Narrow-dock friendly bubbles: the user's message sits right, the
|
|
@@ -1187,26 +1189,26 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1187
1189
|
.assistant-dock-messages > li :global(.bubble),
|
|
1188
1190
|
.assistant-dock-streaming :global(.bubble) {
|
|
1189
1191
|
max-width: 85%;
|
|
1190
|
-
padding: var(--smrt-spacing-2
|
|
1191
|
-
border-radius: var(--smrt-radius-large
|
|
1192
|
+
padding: var(--smrt-spacing-2) var(--smrt-spacing-3);
|
|
1193
|
+
border-radius: var(--smrt-radius-large);
|
|
1192
1194
|
overflow-wrap: anywhere;
|
|
1193
1195
|
}
|
|
1194
1196
|
|
|
1195
1197
|
.assistant-dock-messages > li[data-role='user'] :global(.bubble),
|
|
1196
1198
|
.assistant-dock-messages > li[data-role='user'] :global(.bubble--own) {
|
|
1197
1199
|
align-self: flex-end;
|
|
1198
|
-
background: var(--smrt-color-primary-container
|
|
1199
|
-
color: var(--smrt-color-on-primary-container
|
|
1200
|
-
border-radius: var(--smrt-radius-large
|
|
1200
|
+
background: var(--smrt-color-primary-container);
|
|
1201
|
+
color: var(--smrt-color-on-primary-container);
|
|
1202
|
+
border-radius: var(--smrt-radius-large);
|
|
1201
1203
|
}
|
|
1202
1204
|
|
|
1203
1205
|
.assistant-dock-messages > li:not([data-role='user']) :global(.bubble--agent),
|
|
1204
1206
|
.assistant-dock-streaming :global(.bubble--agent) {
|
|
1205
1207
|
align-self: flex-start;
|
|
1206
|
-
background: var(--smrt-color-surface-container
|
|
1207
|
-
color: var(--smrt-color-on-surface
|
|
1208
|
+
background: var(--smrt-color-surface-container);
|
|
1209
|
+
color: var(--smrt-color-on-surface);
|
|
1208
1210
|
border-left: none;
|
|
1209
|
-
border-radius: var(--smrt-radius-large
|
|
1211
|
+
border-radius: var(--smrt-radius-large);
|
|
1210
1212
|
}
|
|
1211
1213
|
|
|
1212
1214
|
.assistant-dock-streaming {
|
|
@@ -1221,9 +1223,9 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1221
1223
|
flex-direction: column;
|
|
1222
1224
|
align-items: center;
|
|
1223
1225
|
justify-content: center;
|
|
1224
|
-
gap: var(--smrt-spacing-2
|
|
1225
|
-
padding: var(--smrt-spacing-5
|
|
1226
|
-
color: var(--smrt-color-on-surface-variant
|
|
1226
|
+
gap: var(--smrt-spacing-2);
|
|
1227
|
+
padding: var(--smrt-spacing-5);
|
|
1228
|
+
color: var(--smrt-color-on-surface-variant);
|
|
1227
1229
|
text-align: center;
|
|
1228
1230
|
}
|
|
1229
1231
|
|
|
@@ -1233,7 +1235,7 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1233
1235
|
}
|
|
1234
1236
|
|
|
1235
1237
|
.assistant-dock-thread-state h2 {
|
|
1236
|
-
color: var(--smrt-color-on-surface
|
|
1238
|
+
color: var(--smrt-color-on-surface);
|
|
1237
1239
|
font: var(--smrt-typography-title-medium-font, 600 1rem/1.4 sans-serif);
|
|
1238
1240
|
}
|
|
1239
1241
|
|
|
@@ -1246,7 +1248,7 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1246
1248
|
display: flex;
|
|
1247
1249
|
flex-wrap: wrap;
|
|
1248
1250
|
justify-content: center;
|
|
1249
|
-
gap: var(--smrt-spacing-2
|
|
1251
|
+
gap: var(--smrt-spacing-2);
|
|
1250
1252
|
}
|
|
1251
1253
|
|
|
1252
1254
|
.assistant-dock-thread-loading {
|
|
@@ -1254,7 +1256,7 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1254
1256
|
}
|
|
1255
1257
|
|
|
1256
1258
|
.assistant-dock-tool-call {
|
|
1257
|
-
margin-top: var(--smrt-spacing-2
|
|
1259
|
+
margin-top: var(--smrt-spacing-2);
|
|
1258
1260
|
min-width: 0;
|
|
1259
1261
|
}
|
|
1260
1262
|
|
|
@@ -1265,17 +1267,17 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1265
1267
|
|
|
1266
1268
|
.assistant-dock-attachments {
|
|
1267
1269
|
list-style: none;
|
|
1268
|
-
margin: var(--smrt-spacing-2
|
|
1270
|
+
margin: var(--smrt-spacing-2) 0 0;
|
|
1269
1271
|
padding: 0;
|
|
1270
1272
|
display: flex;
|
|
1271
1273
|
flex-direction: column;
|
|
1272
|
-
gap: var(--smrt-spacing-1
|
|
1274
|
+
gap: var(--smrt-spacing-1);
|
|
1273
1275
|
}
|
|
1274
1276
|
|
|
1275
1277
|
.assistant-dock-attachment {
|
|
1276
1278
|
display: flex;
|
|
1277
1279
|
align-items: baseline;
|
|
1278
|
-
gap: var(--smrt-spacing-1
|
|
1280
|
+
gap: var(--smrt-spacing-1);
|
|
1279
1281
|
font: var(--smrt-typography-body-small-font, 0.8125rem/1.4 sans-serif);
|
|
1280
1282
|
}
|
|
1281
1283
|
|
|
@@ -1301,63 +1303,64 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1301
1303
|
padding: 0;
|
|
1302
1304
|
display: flex;
|
|
1303
1305
|
flex-direction: column;
|
|
1304
|
-
gap: var(--smrt-spacing-2
|
|
1306
|
+
gap: var(--smrt-spacing-2);
|
|
1305
1307
|
}
|
|
1306
1308
|
|
|
1307
1309
|
.assistant-dock-action-unknown {
|
|
1308
|
-
margin-top: var(--smrt-spacing-2
|
|
1309
|
-
padding: var(--smrt-spacing-2
|
|
1310
|
-
border-radius: var(--smrt-radius-medium
|
|
1311
|
-
background: var(--smrt-color-tertiary-container
|
|
1312
|
-
color: var(--smrt-color-on-tertiary-container
|
|
1310
|
+
margin-top: var(--smrt-spacing-2);
|
|
1311
|
+
padding: var(--smrt-spacing-2) var(--smrt-spacing-3);
|
|
1312
|
+
border-radius: var(--smrt-radius-medium);
|
|
1313
|
+
background: var(--smrt-color-tertiary-container);
|
|
1314
|
+
color: var(--smrt-color-on-tertiary-container);
|
|
1313
1315
|
font: var(--smrt-typography-body-small-font, 0.8125rem/1.4 sans-serif);
|
|
1314
1316
|
}
|
|
1315
1317
|
|
|
1316
1318
|
.assistant-dock-action-unknown p {
|
|
1317
|
-
margin: 0 0 var(--smrt-spacing-2
|
|
1319
|
+
margin: 0 0 var(--smrt-spacing-2);
|
|
1318
1320
|
}
|
|
1319
1321
|
|
|
1320
1322
|
.assistant-dock-stale {
|
|
1321
|
-
padding: var(--smrt-spacing-2
|
|
1322
|
-
border-radius: var(--smrt-radius-medium
|
|
1323
|
-
background: var(--smrt-color-tertiary-container
|
|
1324
|
-
color: var(--smrt-color-on-tertiary-container
|
|
1323
|
+
padding: var(--smrt-spacing-2) var(--smrt-spacing-3);
|
|
1324
|
+
border-radius: var(--smrt-radius-medium);
|
|
1325
|
+
background: var(--smrt-color-tertiary-container);
|
|
1326
|
+
color: var(--smrt-color-on-tertiary-container);
|
|
1325
1327
|
font: var(--smrt-typography-body-small-font, 0.8125rem/1.4 sans-serif);
|
|
1326
1328
|
}
|
|
1327
1329
|
|
|
1328
1330
|
.assistant-dock-stale p {
|
|
1329
|
-
margin: 0 0 var(--smrt-spacing-2
|
|
1331
|
+
margin: 0 0 var(--smrt-spacing-2);
|
|
1330
1332
|
}
|
|
1331
1333
|
|
|
1332
1334
|
.assistant-dock-failed {
|
|
1333
|
-
padding: var(--smrt-spacing-2
|
|
1334
|
-
border-radius: var(--smrt-radius-medium
|
|
1335
|
-
background: var(--smrt-color-error-container
|
|
1336
|
-
color: var(--smrt-color-on-error-container
|
|
1335
|
+
padding: var(--smrt-spacing-2) var(--smrt-spacing-3);
|
|
1336
|
+
border-radius: var(--smrt-radius-medium);
|
|
1337
|
+
background: var(--smrt-color-error-container);
|
|
1338
|
+
color: var(--smrt-color-on-error-container);
|
|
1337
1339
|
font: var(--smrt-typography-body-small-font, 0.8125rem/1.4 sans-serif);
|
|
1338
1340
|
}
|
|
1339
1341
|
|
|
1340
1342
|
.assistant-dock-failed p {
|
|
1341
|
-
margin: 0 0 var(--smrt-spacing-2
|
|
1343
|
+
margin: 0 0 var(--smrt-spacing-2);
|
|
1342
1344
|
}
|
|
1343
1345
|
|
|
1344
1346
|
.assistant-dock-error {
|
|
1345
1347
|
margin: 0;
|
|
1346
|
-
padding: var(--smrt-spacing-2
|
|
1348
|
+
padding: var(--smrt-spacing-2) var(--smrt-spacing-3);
|
|
1347
1349
|
font: var(--smrt-typography-body-small-font, 0.8125rem/1.4 sans-serif);
|
|
1348
|
-
color: var(--smrt-color-on-error-container
|
|
1349
|
-
background: var(--smrt-color-error-container
|
|
1350
|
-
border-bottom: 1px solid var(--smrt-color-outline-variant
|
|
1350
|
+
color: var(--smrt-color-on-error-container);
|
|
1351
|
+
background: var(--smrt-color-error-container);
|
|
1352
|
+
border-bottom: 1px solid var(--smrt-color-outline-variant);
|
|
1351
1353
|
}
|
|
1352
1354
|
|
|
1353
1355
|
.assistant-dock-single-actions {
|
|
1354
1356
|
display: flex;
|
|
1355
1357
|
justify-content: flex-end;
|
|
1356
|
-
padding: var(--smrt-spacing-1
|
|
1358
|
+
padding: var(--smrt-spacing-1) var(--smrt-spacing-2) 0;
|
|
1357
1359
|
}
|
|
1358
1360
|
|
|
1359
1361
|
.assistant-dock-composer-header {
|
|
1360
|
-
padding: 0 var(--smrt-spacing-2
|
|
1361
|
-
padding-top: var(--smrt-spacing-2
|
|
1362
|
+
padding: 0 var(--smrt-spacing-2);
|
|
1363
|
+
padding-top: var(--smrt-spacing-2);
|
|
1362
1364
|
}
|
|
1365
|
+
}
|
|
1363
1366
|
</style>
|
|
@@ -25,7 +25,7 @@ const { threads, activeThreadId = null, onselect, oncreate }: Props = $props();
|
|
|
25
25
|
|
|
26
26
|
<nav
|
|
27
27
|
class="assistant-thread-list"
|
|
28
|
-
aria-label={t(M['chat.assistant_thread_list.conversations_label'])}
|
|
28
|
+
aria-label={t(M['chat.assistant_thread_list.conversations_label'])} data-smrt-component="AssistantThreadList"
|
|
29
29
|
>
|
|
30
30
|
{#if oncreate}
|
|
31
31
|
<Button
|
|
@@ -62,52 +62,54 @@ const { threads, activeThreadId = null, onselect, oncreate }: Props = $props();
|
|
|
62
62
|
</nav>
|
|
63
63
|
|
|
64
64
|
<style>
|
|
65
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
66
|
+
@layer smrt.theme {
|
|
65
67
|
.assistant-thread-list {
|
|
66
68
|
display: flex;
|
|
67
69
|
flex-direction: column;
|
|
68
|
-
border-right: 1px solid var(--smrt-color-outline-variant
|
|
69
|
-
background: var(--smrt-color-surface-container-low
|
|
70
|
+
border-right: 1px solid var(--smrt-color-outline-variant);
|
|
71
|
+
background: var(--smrt-color-surface-container-low);
|
|
70
72
|
min-width: 160px;
|
|
71
73
|
overflow-y: auto;
|
|
72
74
|
}
|
|
73
75
|
|
|
74
76
|
:global(.assistant-thread-list-new) {
|
|
75
|
-
margin: var(--smrt-spacing-2
|
|
76
|
-
padding: var(--smrt-spacing-2
|
|
77
|
-
border: 1px dashed var(--smrt-color-outline-variant
|
|
78
|
-
border-radius: var(--smrt-radius-medium
|
|
77
|
+
margin: var(--smrt-spacing-2);
|
|
78
|
+
padding: var(--smrt-spacing-2) var(--smrt-spacing-3);
|
|
79
|
+
border: 1px dashed var(--smrt-color-outline-variant);
|
|
80
|
+
border-radius: var(--smrt-radius-medium);
|
|
79
81
|
background: transparent;
|
|
80
|
-
color: var(--smrt-color-primary
|
|
82
|
+
color: var(--smrt-color-primary);
|
|
81
83
|
font: var(--smrt-typography-label-medium-font, 500 0.8125rem/1.3 sans-serif);
|
|
82
84
|
cursor: pointer;
|
|
83
85
|
text-align: left;
|
|
84
86
|
}
|
|
85
87
|
|
|
86
88
|
:global(.assistant-thread-list-new:hover) {
|
|
87
|
-
background: var(--smrt-color-surface-container
|
|
89
|
+
background: var(--smrt-color-surface-container);
|
|
88
90
|
}
|
|
89
91
|
|
|
90
92
|
.assistant-thread-list ul {
|
|
91
93
|
list-style: none;
|
|
92
94
|
margin: 0;
|
|
93
|
-
padding: 0 var(--smrt-spacing-2
|
|
95
|
+
padding: 0 var(--smrt-spacing-2) var(--smrt-spacing-2);
|
|
94
96
|
display: flex;
|
|
95
97
|
flex-direction: column;
|
|
96
|
-
gap: var(--smrt-spacing-1
|
|
98
|
+
gap: var(--smrt-spacing-1);
|
|
97
99
|
}
|
|
98
100
|
|
|
99
101
|
:global(.assistant-thread-list-item) {
|
|
100
102
|
display: flex;
|
|
101
103
|
align-items: center;
|
|
102
104
|
justify-content: flex-start;
|
|
103
|
-
gap: var(--smrt-spacing-2
|
|
105
|
+
gap: var(--smrt-spacing-2);
|
|
104
106
|
width: 100%;
|
|
105
107
|
min-width: 0;
|
|
106
|
-
padding: var(--smrt-spacing-2
|
|
108
|
+
padding: var(--smrt-spacing-2) var(--smrt-spacing-3);
|
|
107
109
|
border: none;
|
|
108
|
-
border-radius: var(--smrt-radius-medium
|
|
110
|
+
border-radius: var(--smrt-radius-medium);
|
|
109
111
|
background: transparent;
|
|
110
|
-
color: var(--smrt-color-on-surface
|
|
112
|
+
color: var(--smrt-color-on-surface);
|
|
111
113
|
font: var(--smrt-typography-body-medium-font, 0.875rem/1.4 sans-serif);
|
|
112
114
|
text-align: left;
|
|
113
115
|
cursor: pointer;
|
|
@@ -120,16 +122,16 @@ const { threads, activeThreadId = null, onselect, oncreate }: Props = $props();
|
|
|
120
122
|
display: flex;
|
|
121
123
|
align-items: center;
|
|
122
124
|
justify-content: space-between;
|
|
123
|
-
gap: var(--smrt-spacing-2
|
|
125
|
+
gap: var(--smrt-spacing-2);
|
|
124
126
|
}
|
|
125
127
|
|
|
126
128
|
:global(.assistant-thread-list-item:hover) {
|
|
127
|
-
background: var(--smrt-color-surface-container
|
|
129
|
+
background: var(--smrt-color-surface-container);
|
|
128
130
|
}
|
|
129
131
|
|
|
130
132
|
:global(.assistant-thread-list-item.active) {
|
|
131
|
-
background: var(--smrt-color-secondary-container
|
|
132
|
-
color: var(--smrt-color-on-secondary-container
|
|
133
|
+
background: var(--smrt-color-secondary-container);
|
|
134
|
+
color: var(--smrt-color-on-secondary-container);
|
|
133
135
|
font-weight: var(--smrt-typography-weight-semibold, 600);
|
|
134
136
|
}
|
|
135
137
|
|
|
@@ -143,6 +145,7 @@ const { threads, activeThreadId = null, onselect, oncreate }: Props = $props();
|
|
|
143
145
|
.count {
|
|
144
146
|
flex-shrink: 0;
|
|
145
147
|
font: var(--smrt-typography-label-small-font, 500 0.6875rem/1 sans-serif);
|
|
146
|
-
color: var(--smrt-color-on-surface-variant
|
|
148
|
+
color: var(--smrt-color-on-surface-variant);
|
|
147
149
|
}
|
|
150
|
+
}
|
|
148
151
|
</style>
|
|
@@ -161,7 +161,7 @@ function handleKeydown(event: KeyboardEvent) {
|
|
|
161
161
|
data-expanded={panelExpanded || undefined}
|
|
162
162
|
hidden={!visible}
|
|
163
163
|
inert={!visible}
|
|
164
|
-
aria-hidden={!visible}
|
|
164
|
+
aria-hidden={!visible} data-smrt-component="FloatingAssistant"
|
|
165
165
|
>
|
|
166
166
|
{#if launcherVisible}
|
|
167
167
|
<Button
|
|
@@ -212,6 +212,8 @@ function handleKeydown(event: KeyboardEvent) {
|
|
|
212
212
|
</div>
|
|
213
213
|
|
|
214
214
|
<style>
|
|
215
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
216
|
+
@layer smrt.theme {
|
|
215
217
|
.floating-assistant {
|
|
216
218
|
position: fixed;
|
|
217
219
|
z-index: var(--smrt-z-index-overlay, 1200);
|
|
@@ -230,7 +232,7 @@ function handleKeydown(event: KeyboardEvent) {
|
|
|
230
232
|
.floating-assistant :global(.floating-assistant-launcher),
|
|
231
233
|
.floating-assistant :global(.floating-assistant-collapse) {
|
|
232
234
|
border: 1px solid var(--smrt-color-outline, currentColor);
|
|
233
|
-
border-radius: var(--smrt-radius-full
|
|
235
|
+
border-radius: var(--smrt-radius-full);
|
|
234
236
|
background: var(--smrt-color-surface, Canvas);
|
|
235
237
|
color: var(--smrt-color-on-surface, CanvasText);
|
|
236
238
|
font: inherit;
|
|
@@ -254,7 +256,7 @@ function handleKeydown(event: KeyboardEvent) {
|
|
|
254
256
|
inline-size: 1.75rem;
|
|
255
257
|
block-size: 1.75rem;
|
|
256
258
|
overflow: hidden;
|
|
257
|
-
border-radius: var(--smrt-radius-full
|
|
259
|
+
border-radius: var(--smrt-radius-full);
|
|
258
260
|
}
|
|
259
261
|
|
|
260
262
|
.floating-assistant-panel {
|
|
@@ -306,4 +308,5 @@ function handleKeydown(event: KeyboardEvent) {
|
|
|
306
308
|
transition: none;
|
|
307
309
|
}
|
|
308
310
|
}
|
|
311
|
+
}
|
|
309
312
|
</style>
|
|
@@ -51,7 +51,7 @@ $effect(() => {
|
|
|
51
51
|
});
|
|
52
52
|
</script>
|
|
53
53
|
|
|
54
|
-
<section bind:this={group} class="caption-overlay" aria-label={label}>
|
|
54
|
+
<section bind:this={group} class="caption-overlay" aria-label={label} data-smrt-component="CaptionOverlay">
|
|
55
55
|
<div bind:this={viewport} class="caption-overlay-viewport" onscroll={updatePosition}>
|
|
56
56
|
<div bind:this={content} class="caption-overlay-content">
|
|
57
57
|
{@render children()}
|
|
@@ -66,6 +66,8 @@ $effect(() => {
|
|
|
66
66
|
</section>
|
|
67
67
|
|
|
68
68
|
<style>
|
|
69
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
70
|
+
@layer smrt.theme {
|
|
69
71
|
.caption-overlay {
|
|
70
72
|
position: fixed;
|
|
71
73
|
z-index: var(--smrt-z-index-sticky, 1100);
|
|
@@ -102,4 +104,5 @@ $effect(() => {
|
|
|
102
104
|
padding-block-start: var(--smrt-spacing-2, .5rem);
|
|
103
105
|
background: var(--smrt-color-surface, Canvas);
|
|
104
106
|
}
|
|
107
|
+
}
|
|
105
108
|
</style>
|
|
@@ -33,7 +33,7 @@ const visibleLines = $derived(lines.slice(-Math.max(1, maxLines)));
|
|
|
33
33
|
</script>
|
|
34
34
|
|
|
35
35
|
{#snippet surface()}
|
|
36
|
-
<section class="heard-captions" aria-label={speakerLabel}>
|
|
36
|
+
<section class="heard-captions" aria-label={speakerLabel} data-smrt-component="HeardCaptions">
|
|
37
37
|
<p class="speaker">{speakerLabel}</p>
|
|
38
38
|
<div class="caption-lines" aria-live="polite" aria-atomic="false">
|
|
39
39
|
{#each visibleLines as line (line.id)}
|
|
@@ -57,9 +57,12 @@ const visibleLines = $derived(lines.slice(-Math.max(1, maxLines)));
|
|
|
57
57
|
{/if}
|
|
58
58
|
|
|
59
59
|
<style>
|
|
60
|
-
|
|
60
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
61
|
+
@layer smrt.theme {
|
|
62
|
+
.heard-captions { box-sizing: border-box; min-inline-size: 0; max-inline-size: min(42rem, calc(100vw - 2rem)); overflow-wrap: anywhere; padding: .6rem .85rem; border-inline-start: .25rem solid var(--smrt-color-primary); background: color-mix(in srgb, var(--smrt-color-surface, white) 92%, var(--smrt-color-primary-container)); color: var(--smrt-color-on-surface); border-radius: .35rem; box-shadow: var(--smrt-elevation-4, 0 .25rem .9rem color-mix(in srgb, var(--smrt-color-shadow, black) 16%, transparent)); }
|
|
61
63
|
.speaker { margin: 0 0 .25rem; font-weight: var(--smrt-typography-weight-bold, 700); letter-spacing: .03em; text-transform: uppercase; font-size: var(--smrt-typography-label-medium-size, .75rem); }
|
|
62
64
|
.caption-lines p, .interim { margin: .15rem 0 0; }
|
|
63
65
|
.interim { font-style: italic; opacity: .8; }
|
|
64
66
|
@media (prefers-reduced-motion: reduce) { .heard-captions { scroll-behavior: auto; } }
|
|
67
|
+
}
|
|
65
68
|
</style>
|