@happyvertical/smrt-chat 0.34.5 → 0.34.7

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 (52) hide show
  1. package/dist/manifest.json +2 -2
  2. package/dist/smrt-knowledge.json +4 -4
  3. package/dist/svelte/components/agent/AgentChat.svelte +34 -49
  4. package/dist/svelte/components/agent/AgentChat.svelte.d.ts.map +1 -1
  5. package/dist/svelte/components/agent/AgentSelector.svelte +1 -0
  6. package/dist/svelte/components/agent/AgentSelector.svelte.d.ts.map +1 -1
  7. package/dist/svelte/components/agent/AgentSessionPanel.svelte +15 -16
  8. package/dist/svelte/components/agent/AgentSessionPanel.svelte.d.ts.map +1 -1
  9. package/dist/svelte/components/agent/ToolCallDisplay.svelte +1 -0
  10. package/dist/svelte/components/agent/ToolCallDisplay.svelte.d.ts.map +1 -1
  11. package/dist/svelte/components/dialogs/RoomCreateDialog.svelte +29 -94
  12. package/dist/svelte/components/dialogs/RoomCreateDialog.svelte.d.ts.map +1 -1
  13. package/dist/svelte/components/dialogs/SearchMessages.svelte +51 -36
  14. package/dist/svelte/components/dialogs/SearchMessages.svelte.d.ts.map +1 -1
  15. package/dist/svelte/components/layout/ChatLayout.svelte +1 -0
  16. package/dist/svelte/components/layout/ChatLayout.svelte.d.ts.map +1 -1
  17. package/dist/svelte/components/layout/MemberList.svelte +10 -15
  18. package/dist/svelte/components/layout/MemberList.svelte.d.ts.map +1 -1
  19. package/dist/svelte/components/layout/RoomHeader.svelte +13 -16
  20. package/dist/svelte/components/layout/RoomHeader.svelte.d.ts.map +1 -1
  21. package/dist/svelte/components/layout/RoomList.svelte +26 -17
  22. package/dist/svelte/components/layout/RoomList.svelte.d.ts.map +1 -1
  23. package/dist/svelte/components/messages/MessageInput.svelte +34 -48
  24. package/dist/svelte/components/messages/MessageInput.svelte.d.ts.map +1 -1
  25. package/dist/svelte/components/messages/MessageItem.svelte +52 -43
  26. package/dist/svelte/components/messages/MessageItem.svelte.d.ts.map +1 -1
  27. package/dist/svelte/components/messages/ThreadPanel.svelte +9 -9
  28. package/dist/svelte/components/messages/ThreadPanel.svelte.d.ts.map +1 -1
  29. package/dist/svelte/components/shared/FileUpload.svelte +23 -54
  30. package/dist/svelte/components/shared/FileUpload.svelte.d.ts.map +1 -1
  31. package/dist/svelte/components/shared/MentionAutocomplete.svelte +1 -0
  32. package/dist/svelte/components/shared/MentionAutocomplete.svelte.d.ts.map +1 -1
  33. package/dist/svelte/components/shared/ReactionPicker.svelte +15 -66
  34. package/dist/svelte/components/shared/ReactionPicker.svelte.d.ts.map +1 -1
  35. package/dist/svelte/components/tabs/ChatTab.svelte +20 -18
  36. package/dist/svelte/components/tabs/ChatTab.svelte.d.ts.map +1 -1
  37. package/dist/svelte/components/tabs/ChatTabList.svelte +13 -10
  38. package/dist/svelte/components/tabs/ChatTabList.svelte.d.ts.map +1 -1
  39. package/dist/svelte/components/tabs/MiniChat.svelte +21 -37
  40. package/dist/svelte/components/tabs/MiniChat.svelte.d.ts.map +1 -1
  41. package/dist/svelte/index.d.ts +1 -2
  42. package/dist/svelte/index.d.ts.map +1 -1
  43. package/dist/svelte/index.js +5 -4
  44. package/package.json +9 -8
  45. package/dist/svelte/components/shared/MessageBubble.svelte +0 -81
  46. package/dist/svelte/components/shared/MessageBubble.svelte.d.ts +0 -16
  47. package/dist/svelte/components/shared/MessageBubble.svelte.d.ts.map +0 -1
  48. package/dist/svelte/components/shared/TypingIndicator.svelte +0 -90
  49. package/dist/svelte/components/shared/TypingIndicator.svelte.d.ts +0 -12
  50. package/dist/svelte/components/shared/TypingIndicator.svelte.d.ts.map +0 -1
  51. package/dist/svelte/components/shared/__tests__/MessageBubble.test.js +0 -21
  52. package/dist/svelte/components/shared/__tests__/TypingIndicator.test.js +0 -27
@@ -1,90 +0,0 @@
1
- <script lang="ts">
2
- /**
3
- * TypingIndicator - Animated "typing..." display
4
- * Shows "Alice is typing..." or "Alice and Bob are typing..." with animated dots.
5
- */
6
-
7
- export interface Props {
8
- /** Names of users currently typing */
9
- names: string[];
10
- }
11
-
12
- const { names }: Props = $props();
13
-
14
- const label = $derived.by(() => {
15
- if (names.length === 0) return '';
16
- if (names.length === 1) return `${names[0]} is typing`;
17
- if (names.length === 2) return `${names[0]} and ${names[1]} are typing`;
18
- return `${names[0]} and ${names.length - 1} others are typing`;
19
- });
20
- </script>
21
-
22
- {#if names.length > 0}
23
- <div class="typing" aria-live="polite" aria-label="{label}">
24
- <span class="typing__text">{label}</span>
25
- <span class="typing__dots" aria-hidden="true">
26
- <span class="typing__dot"></span>
27
- <span class="typing__dot"></span>
28
- <span class="typing__dot"></span>
29
- </span>
30
- </div>
31
- {/if}
32
-
33
- <style>
34
- .typing {
35
- display: inline-flex;
36
- align-items: center;
37
- gap: var(--smrt-spacing-1, 0.25rem);
38
- padding: var(--smrt-spacing-1, 0.25rem) var(--smrt-spacing-3, 0.75rem);
39
- font-size: var(--smrt-typography-body-small-size, 0.75rem);
40
- color: var(--smrt-color-on-surface-variant, #43474e);
41
- }
42
-
43
- .typing__text {
44
- white-space: nowrap;
45
- }
46
-
47
- .typing__dots {
48
- display: inline-flex;
49
- align-items: center;
50
- gap: var(--smrt-spacing-1, 4px);
51
- }
52
-
53
- .typing__dot {
54
- width: 4px;
55
- height: 4px;
56
- border-radius: var(--smrt-radius-full, 9999px);
57
- background: var(--smrt-color-on-surface-variant, #43474e);
58
- animation: typing-bounce 1.4s infinite ease-in-out both;
59
- }
60
-
61
- .typing__dot:nth-child(1) {
62
- animation-delay: 0s;
63
- }
64
-
65
- .typing__dot:nth-child(2) {
66
- animation-delay: 0.2s;
67
- }
68
-
69
- .typing__dot:nth-child(3) {
70
- animation-delay: 0.4s;
71
- }
72
-
73
- @keyframes typing-bounce {
74
- 0%, 80%, 100% {
75
- opacity: 0.3;
76
- transform: scale(0.8);
77
- }
78
- 40% {
79
- opacity: 1;
80
- transform: scale(1);
81
- }
82
- }
83
-
84
- @media (prefers-reduced-motion: reduce) {
85
- .typing__dot {
86
- animation: none;
87
- opacity: 0.6;
88
- }
89
- }
90
- </style>
@@ -1,12 +0,0 @@
1
- /**
2
- * TypingIndicator - Animated "typing..." display
3
- * Shows "Alice is typing..." or "Alice and Bob are typing..." with animated dots.
4
- */
5
- export interface Props {
6
- /** Names of users currently typing */
7
- names: string[];
8
- }
9
- declare const TypingIndicator: import("svelte").Component<Props, {}, "">;
10
- type TypingIndicator = ReturnType<typeof TypingIndicator>;
11
- export default TypingIndicator;
12
- //# sourceMappingURL=TypingIndicator.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypingIndicator.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/shared/TypingIndicator.svelte.ts"],"names":[],"mappings":"AAGA;;;GAGG;AAEH,MAAM,WAAW,KAAK;IACpB,sCAAsC;IACtC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AA6BD,QAAA,MAAM,eAAe,2CAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
@@ -1,21 +0,0 @@
1
- // @vitest-environment jsdom
2
- /**
3
- * Component coverage for MessageBubble via the shared S11 harness (#1416).
4
- */
5
- import { expectNoA11yViolations, render, screen, } from '@happyvertical/smrt-vitest/svelte';
6
- import { describe, expect, it } from 'vitest';
7
- import MessageBubble from '../MessageBubble.svelte';
8
- describe('MessageBubble', () => {
9
- it('renders the message content', () => {
10
- render(MessageBubble, {
11
- props: { content: 'Hello there', isOwn: false },
12
- });
13
- expect(screen.getByText('Hello there')).toBeInTheDocument();
14
- });
15
- it('is axe-clean for an own message', async () => {
16
- const { container } = render(MessageBubble, {
17
- props: { content: 'Hi', isOwn: true },
18
- });
19
- await expectNoA11yViolations(container);
20
- });
21
- });
@@ -1,27 +0,0 @@
1
- // @vitest-environment jsdom
2
- /**
3
- * Component coverage for TypingIndicator via the shared S11 harness (#1416).
4
- */
5
- import { expectNoA11yViolations, render, screen, } from '@happyvertical/smrt-vitest/svelte';
6
- import { describe, expect, it } from 'vitest';
7
- import TypingIndicator from '../TypingIndicator.svelte';
8
- describe('TypingIndicator', () => {
9
- it('names a single typist', () => {
10
- render(TypingIndicator, { props: { names: ['Ada'] } });
11
- expect(screen.getByText('Ada is typing')).toBeInTheDocument();
12
- });
13
- it('names two typists', () => {
14
- render(TypingIndicator, { props: { names: ['Ada', 'Bob'] } });
15
- expect(screen.getByText('Ada and Bob are typing')).toBeInTheDocument();
16
- });
17
- it('renders nothing when nobody is typing', () => {
18
- const { container } = render(TypingIndicator, { props: { names: [] } });
19
- expect(container.querySelector('.typing')).toBeNull();
20
- });
21
- it('is axe-clean', async () => {
22
- const { container } = render(TypingIndicator, {
23
- props: { names: ['Ada'] },
24
- });
25
- await expectNoA11yViolations(container);
26
- });
27
- });