@agents24/chat-react 0.5.0 → 0.5.2

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 (133) hide show
  1. package/README.md +90 -21
  2. package/compatibility.json +10 -10
  3. package/dist/chunk-SSUO4EPD.js +189 -0
  4. package/dist/chunk-SSUO4EPD.js.map +1 -0
  5. package/dist/chunk-ZCNHLFRB.js +108 -0
  6. package/dist/chunk-ZCNHLFRB.js.map +1 -0
  7. package/dist/index.cjs +112 -95
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.d.ts +0 -1
  10. package/dist/index.js +362 -68
  11. package/dist/index.js.map +1 -1
  12. package/dist/mcp-oauth.d.ts +13 -0
  13. package/dist/runtime/index.cjs +594 -0
  14. package/dist/runtime/index.cjs.map +1 -0
  15. package/dist/runtime/index.d.ts +2 -0
  16. package/dist/runtime/index.js +458 -0
  17. package/dist/runtime/index.js.map +1 -0
  18. package/dist/runtime/input-contract.d.ts +20 -0
  19. package/dist/runtime/use-agent-chat-runtime.d.ts +83 -0
  20. package/dist/scaffold/app.d.ts +30 -0
  21. package/dist/scaffold/components/chat/chat-composer.d.ts +21 -0
  22. package/dist/scaffold/components/chat/chat-message.d.ts +21 -0
  23. package/dist/scaffold/components/chat/chat-shell.d.ts +8 -0
  24. package/dist/scaffold/components/chat/collapsible-user-message.d.ts +3 -0
  25. package/dist/scaffold/components/chat/external-link-dialog.d.ts +2 -0
  26. package/dist/scaffold/components/chat/identity-control.d.ts +4 -0
  27. package/dist/scaffold/components/chat/message-parts.d.ts +12 -0
  28. package/dist/scaffold/components/chat/theme-menu.d.ts +1 -0
  29. package/dist/scaffold/components/chat/thread-sidebar.d.ts +16 -0
  30. package/dist/scaffold/components/chat/timeline-loading.d.ts +7 -0
  31. package/dist/scaffold/components/chat/turn-outline.d.ts +4 -0
  32. package/dist/scaffold/components/theme-provider.d.ts +20 -0
  33. package/dist/scaffold/components/ui/attachment.d.ts +24 -0
  34. package/dist/scaffold/components/ui/bubble.d.ts +17 -0
  35. package/dist/scaffold/components/ui/button-group.d.ts +11 -0
  36. package/dist/scaffold/components/ui/button.d.ts +10 -0
  37. package/dist/scaffold/components/ui/dialog.d.ts +17 -0
  38. package/dist/scaffold/components/ui/dropdown-menu.d.ts +29 -0
  39. package/dist/scaffold/components/ui/input.d.ts +3 -0
  40. package/dist/scaffold/components/ui/marker.d.ts +11 -0
  41. package/dist/scaffold/components/ui/message-scroller.d.ts +10 -0
  42. package/dist/scaffold/components/ui/message.d.ts +10 -0
  43. package/dist/scaffold/components/ui/popover.d.ts +6 -0
  44. package/dist/scaffold/components/ui/select.d.ts +8 -0
  45. package/dist/scaffold/components/ui/separator.d.ts +4 -0
  46. package/dist/scaffold/components/ui/sheet.d.ts +14 -0
  47. package/dist/scaffold/components/ui/sidebar.d.ts +69 -0
  48. package/dist/scaffold/components/ui/skeleton.d.ts +2 -0
  49. package/dist/scaffold/components/ui/textarea.d.ts +3 -0
  50. package/dist/scaffold/components/ui/tooltip.d.ts +15 -0
  51. package/dist/scaffold/hooks/use-mobile.d.ts +1 -0
  52. package/dist/scaffold/identity.d.ts +10 -0
  53. package/dist/scaffold/index.cjs +2270 -0
  54. package/dist/scaffold/index.cjs.map +1 -0
  55. package/dist/scaffold/index.d.ts +14 -0
  56. package/dist/scaffold/index.js +2244 -0
  57. package/dist/scaffold/index.js.map +1 -0
  58. package/dist/scaffold/lib/utils.d.ts +2 -0
  59. package/dist/styles.css +137 -378
  60. package/dist/types.d.ts +3 -13
  61. package/dist/ui/adapters.d.ts +1 -1
  62. package/dist/ui/agent-chat-actions.d.ts +12 -5
  63. package/dist/ui/agent-chat-composer.d.ts +2 -1
  64. package/dist/ui/agent-chat-context-compression-row.d.ts +5 -0
  65. package/dist/ui/agent-chat-context-status.d.ts +13 -0
  66. package/dist/ui/agent-chat-message.d.ts +7 -5
  67. package/dist/ui/agent-response-timeline.d.ts +29 -7
  68. package/dist/ui/ask-user-interaction-state.d.ts +20 -0
  69. package/dist/ui/ask-user-interaction.d.ts +8 -0
  70. package/dist/ui/index.cjs +1391 -271
  71. package/dist/ui/index.cjs.map +1 -1
  72. package/dist/ui/index.d.ts +5 -0
  73. package/dist/ui/index.js +2380 -65
  74. package/dist/ui/index.js.map +1 -1
  75. package/dist/ui/tool-sessions.d.ts +70 -0
  76. package/dist/ui/use-audio-recorder.d.ts +8 -0
  77. package/package.json +27 -12
  78. package/scaffold/components.json +25 -0
  79. package/scaffold/manifest.json +28 -0
  80. package/scaffold/src/app.tsx +71 -0
  81. package/scaffold/src/chat.css +54 -0
  82. package/scaffold/src/components/chat/chat-composer.tsx +237 -0
  83. package/scaffold/src/components/chat/chat-message.tsx +76 -0
  84. package/scaffold/src/components/chat/chat-shell.tsx +257 -0
  85. package/scaffold/src/components/chat/collapsible-user-message.tsx +37 -0
  86. package/scaffold/src/components/chat/external-link-dialog.tsx +48 -0
  87. package/scaffold/src/components/chat/identity-control.tsx +69 -0
  88. package/scaffold/src/components/chat/message-parts.tsx +83 -0
  89. package/scaffold/src/components/chat/theme-menu.tsx +79 -0
  90. package/scaffold/src/components/chat/thread-sidebar.tsx +114 -0
  91. package/scaffold/src/components/chat/timeline-loading.ts +17 -0
  92. package/scaffold/src/components/chat/turn-outline.tsx +73 -0
  93. package/scaffold/src/components/theme-provider.tsx +91 -0
  94. package/scaffold/src/components/ui/attachment.tsx +204 -0
  95. package/scaffold/src/components/ui/bubble.tsx +125 -0
  96. package/scaffold/src/components/ui/button-group.tsx +83 -0
  97. package/scaffold/src/components/ui/button.tsx +65 -0
  98. package/scaffold/src/components/ui/dialog.tsx +171 -0
  99. package/scaffold/src/components/ui/dropdown-menu.tsx +271 -0
  100. package/scaffold/src/components/ui/input.tsx +19 -0
  101. package/scaffold/src/components/ui/marker.tsx +69 -0
  102. package/scaffold/src/components/ui/message-scroller.tsx +129 -0
  103. package/scaffold/src/components/ui/message.tsx +92 -0
  104. package/scaffold/src/components/ui/popover.tsx +40 -0
  105. package/scaffold/src/components/ui/select.tsx +92 -0
  106. package/scaffold/src/components/ui/separator.tsx +28 -0
  107. package/scaffold/src/components/ui/sheet.tsx +150 -0
  108. package/scaffold/src/components/ui/sidebar.tsx +677 -0
  109. package/scaffold/src/components/ui/skeleton.tsx +13 -0
  110. package/scaffold/src/components/ui/textarea.tsx +18 -0
  111. package/scaffold/src/components/ui/tooltip.tsx +56 -0
  112. package/scaffold/src/hooks/use-mobile.ts +24 -0
  113. package/scaffold/src/identity.ts +17 -0
  114. package/scaffold/src/index.css +222 -0
  115. package/scaffold/src/index.tsx +39 -0
  116. package/scaffold/src/lib/utils.ts +6 -0
  117. package/scaffold/styles.css +3 -0
  118. package/dist/chunk-CHAU7FNW.js +0 -140
  119. package/dist/chunk-CHAU7FNW.js.map +0 -1
  120. package/dist/chunk-LI67M74F.js +0 -445
  121. package/dist/chunk-LI67M74F.js.map +0 -1
  122. package/dist/chunk-R7WFL3YR.js +0 -1327
  123. package/dist/chunk-R7WFL3YR.js.map +0 -1
  124. package/dist/renderers.d.ts +0 -10
  125. package/dist/templates/agent-chat-app.d.ts +0 -18
  126. package/dist/templates/agent-chat-layout.d.ts +0 -77
  127. package/dist/templates/agent-chat-shell.d.ts +0 -37
  128. package/dist/templates/appearance-control.d.ts +0 -5
  129. package/dist/templates/index.cjs +0 -2600
  130. package/dist/templates/index.cjs.map +0 -1
  131. package/dist/templates/index.d.ts +0 -4
  132. package/dist/templates/index.js +0 -846
  133. package/dist/templates/index.js.map +0 -1
package/dist/styles.css CHANGED
@@ -1,292 +1,64 @@
1
1
  :root,
2
- :root[data-agents24-color-mode="light"] {
3
- --a24-background: #ffffff;
4
- --a24-surface: #f7f7f8;
5
- --a24-surface-hover: #efeff1;
6
- --a24-text: #18181b;
7
- --a24-muted: #71717a;
8
- --a24-border: rgba(24, 24, 27, 0.12);
9
- --a24-accent: #18181b;
10
- --a24-accent-text: #ffffff;
11
- --a24-danger: #b42318;
12
- --a24-focus: #71717a;
13
- --a24-font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
14
- color-scheme: light;
15
- }
16
-
17
- :root[data-agents24-color-mode="dark"] {
18
- --a24-background: #111113;
19
- --a24-surface: #19191c;
20
- --a24-surface-hover: #232328;
21
- --a24-text: #f4f4f5;
22
- --a24-muted: #a1a1aa;
23
- --a24-border: rgba(244, 244, 245, 0.14);
24
- --a24-accent: #f4f4f5;
25
- --a24-accent-text: #18181b;
26
- --a24-focus: #a1a1aa;
27
- color-scheme: dark;
2
+ :root[data-agents24-color-mode="light"],
3
+ [data-agents24-theme-root] {
4
+ --a24-background: var(--background, #fff);
5
+ --a24-surface: var(--muted, #f7f7f8);
6
+ --a24-surface-hover: var(--accent, #efeff1);
7
+ --a24-text: var(--foreground, #18181b);
8
+ --a24-muted: var(--muted-foreground, #71717a);
9
+ --a24-border: var(--border, rgb(24 24 27 / 12%));
10
+ --a24-accent: var(--primary, #18181b);
11
+ --a24-accent-text: var(--primary-foreground, #fff);
12
+ --a24-danger: var(--destructive, #b42318);
13
+ --a24-focus: var(--ring, #71717a);
14
+ --a24-composer-radius: var(--radius-xl, .875rem);
15
+ --a24-composer-expanded-radius: var(--radius-xl, .875rem);
16
+ --a24-composer-shadow: 0 1px 2px rgb(0 0 0 / 6%), 0 1px 3px rgb(0 0 0 / 4%);
17
+ --a24-composer-mobile-shadow: var(--a24-composer-shadow);
18
+ --a24-message-enter-animation: none;
19
+ }
20
+
21
+ :root[data-agents24-color-mode="dark"],
22
+ [data-agents24-theme-root].dark {
23
+ --a24-background: var(--background, #111113);
24
+ --a24-surface: var(--muted, #19191c);
25
+ --a24-surface-hover: var(--accent, #232328);
26
+ --a24-text: var(--foreground, #f4f4f5);
27
+ --a24-muted: var(--muted-foreground, #a1a1aa);
28
+ --a24-border: var(--border, rgb(244 244 245 / 14%));
29
+ --a24-accent: var(--primary, #f4f4f5);
30
+ --a24-accent-text: var(--primary-foreground, #18181b);
31
+ --a24-focus: var(--ring, #a1a1aa);
28
32
  }
29
33
 
30
34
  @media (prefers-color-scheme: dark) {
31
35
  :root:not([data-agents24-color-mode="light"]) {
32
- --a24-background: #111113;
33
- --a24-surface: #19191c;
34
- --a24-surface-hover: #232328;
35
- --a24-text: #f4f4f5;
36
- --a24-muted: #a1a1aa;
37
- --a24-border: rgba(244, 244, 245, 0.14);
38
- --a24-accent: #f4f4f5;
39
- --a24-accent-text: #18181b;
40
- --a24-focus: #a1a1aa;
41
- color-scheme: dark;
36
+ --a24-background: var(--background, #111113);
37
+ --a24-surface: var(--muted, #19191c);
38
+ --a24-surface-hover: var(--accent, #232328);
39
+ --a24-text: var(--foreground, #f4f4f5);
40
+ --a24-muted: var(--muted-foreground, #a1a1aa);
41
+ --a24-border: var(--border, rgb(244 244 245 / 14%));
42
+ --a24-accent: var(--primary, #f4f4f5);
43
+ --a24-accent-text: var(--primary-foreground, #18181b);
44
+ --a24-focus: var(--ring, #a1a1aa);
42
45
  }
43
46
  }
44
47
 
45
- [data-agents24-chat-layout] *,
46
- [data-agents24-chat-layout] *::before,
47
- [data-agents24-chat-layout] *::after { box-sizing: border-box; }
48
-
49
- .a24-chat {
50
- background: var(--a24-background);
51
- color: var(--a24-text);
52
- display: grid;
53
- font-family: var(--a24-font-family);
54
- grid-template-columns: minmax(15rem, 17rem) minmax(0, 1fr);
55
- height: 100%;
56
- min-height: 32rem;
57
- overflow: hidden;
58
- position: relative;
59
- width: 100%;
60
- }
61
-
62
- .a24-sr-only {
63
- clip: rect(0, 0, 0, 0);
64
- clip-path: inset(50%);
65
- height: 1px;
66
- overflow: hidden;
67
- position: absolute;
68
- white-space: nowrap;
69
- width: 1px;
70
- }
71
-
72
- .a24-skip-link {
73
- background: var(--a24-accent);
74
- border-radius: .5rem;
75
- color: var(--a24-accent-text);
76
- left: .75rem;
77
- padding: .6rem .8rem;
78
- position: absolute;
79
- top: .75rem;
80
- transform: translateY(-200%);
81
- z-index: 80;
82
- }
83
- .a24-skip-link:focus { transform: translateY(0); }
84
-
85
- .a24-button,
86
- .a24-icon-button,
87
- .a24-thread__open {
88
- appearance: none;
89
- border: 0;
90
- cursor: pointer;
91
- font: inherit;
92
- }
93
- .a24-chat button { touch-action: manipulation; }
94
- .a24-button:focus-visible,
95
- .a24-icon-button:focus-visible,
96
- .a24-thread__open:focus-visible,
97
- .a24-chat button:focus-visible,
98
- .a24-chat input:focus-visible,
99
- .a24-chat select:focus-visible,
100
- .a24-chat textarea:focus-visible {
101
- outline: 2px solid var(--a24-focus);
102
- outline-offset: 2px;
103
- }
104
- .a24-button:disabled,
105
- .a24-icon-button:disabled { cursor: not-allowed; opacity: .5; }
106
- .a24-button {
107
- align-items: center;
108
- border-radius: .5rem;
109
- display: inline-flex;
110
- font-size: .875rem;
111
- font-weight: 600;
112
- gap: .5rem;
113
- justify-content: center;
114
- min-height: 2.5rem;
115
- padding: .55rem .8rem;
116
- }
117
- .a24-button svg,
118
- .a24-icon-button svg { height: 1rem; width: 1rem; }
119
- .a24-button--primary { background: var(--a24-accent); color: var(--a24-accent-text); }
120
- .a24-button--quiet { background: transparent; color: var(--a24-muted); }
121
- .a24-button--quiet:hover { background: var(--a24-surface-hover); color: var(--a24-text); }
122
- .a24-icon-button {
123
- align-items: center;
124
- background: transparent;
125
- border-radius: .5rem;
126
- color: var(--a24-muted);
127
- display: inline-flex;
128
- height: 2.25rem;
129
- justify-content: center;
130
- width: 2.25rem;
131
- }
132
- .a24-icon-button:hover { background: var(--a24-surface-hover); color: var(--a24-text); }
133
-
134
- .a24-sidebar {
135
- background: var(--a24-surface);
136
- border-inline-end: 1px solid var(--a24-border);
137
- min-height: 0;
138
- position: relative;
139
- z-index: 40;
140
- }
141
- .a24-sidebar__inner {
142
- display: flex;
143
- flex-direction: column;
144
- height: 100%;
145
- min-height: 0;
146
- padding: max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));
147
- }
148
- .a24-target-selector { margin-bottom: .65rem; min-width: 0; position: relative; }
149
- .a24-target-selector__trigger {
150
- align-items: center;
151
- background: transparent;
152
- border: 0;
153
- border-radius: .5rem;
154
- color: var(--a24-text);
155
- cursor: pointer;
156
- display: flex;
157
- gap: .55rem;
158
- min-height: 2.75rem;
159
- padding: .35rem;
160
- text-align: start;
161
- width: 100%;
162
- }
163
- .a24-target-selector__trigger:hover { background: var(--a24-background); }
164
- .a24-target-selector__trigger:focus-visible { box-shadow: 0 0 0 1px var(--a24-border); outline: none; }
165
- .a24-target-selector__trigger > svg { color: var(--a24-muted); flex: 0 0 auto; height: .9rem; transition: transform 160ms ease; width: .9rem; }
166
- .a24-target-selector[data-open] .a24-target-selector__trigger > svg { transform: rotate(180deg); }
167
- .a24-target-selector__copy { display: flex; flex: 1; flex-direction: column; line-height: 1.25; min-width: 0; }
168
- .a24-target-selector__copy strong,
169
- .a24-target-selector__copy span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
170
- .a24-target-selector__copy strong { font-size: .875rem; font-weight: 650; }
171
- .a24-target-selector__copy span { color: var(--a24-muted); font-size: .72rem; }
172
- .a24-target-selector__panel {
173
- background: var(--a24-background);
174
- border: 1px solid var(--a24-border);
175
- border-radius: .65rem;
176
- box-shadow: 0 10px 28px rgba(0,0,0,.12);
177
- display: flex;
178
- flex-direction: column;
179
- gap: .45rem;
180
- left: 0;
181
- padding: .7rem;
182
- position: absolute;
183
- right: 0;
184
- top: calc(100% + .2rem);
185
- z-index: 60;
186
- }
187
- .a24-target-selector__panel label { font-size: .75rem; font-weight: 650; }
188
- .a24-target-selector__panel input { background: var(--a24-background); border: 1px solid var(--a24-border); border-radius: .45rem; color: var(--a24-text); font: inherit; font-size: .75rem; min-height: 2.15rem; outline: none; padding: .4rem .5rem; width: 100%; }
189
- .a24-target-selector__panel input:focus-visible { border-color: var(--a24-text); }
190
- .a24-target-selector__panel p { color: var(--a24-muted); font-size: .7rem; line-height: 1.35; margin: 0; overflow-wrap: anywhere; }
191
- .a24-target-selector__panel .a24-target-selector__error { color: var(--a24-danger); }
192
- .a24-target-selector__apply { align-self: flex-end; background: var(--a24-accent); color: var(--a24-accent-text); min-height: 2rem; padding: .35rem .65rem; }
193
- .a24-sidebar__top { align-items: center; display: flex; gap: .5rem; }
194
- .a24-sidebar__new { flex: 1; }
195
- .a24-sidebar__mobile-close { display: none; }
196
- .a24-search {
197
- align-items: center;
198
- background: var(--a24-background);
199
- border: 1px solid var(--a24-border);
200
- border-radius: .5rem;
201
- color: var(--a24-muted);
202
- display: flex;
203
- gap: .5rem;
204
- margin: .75rem 0;
205
- min-height: 2.25rem;
206
- padding: 0 .65rem;
207
- }
208
- .a24-search svg { height: .95rem; width: .95rem; }
209
- .a24-search input { background: transparent; border: 0; color: var(--a24-text); min-width: 0; outline: none; width: 100%; }
210
- .a24-thread-list { display: flex; flex: 1; flex-direction: column; gap: .25rem; min-height: 0; overflow-y: auto; }
211
- .a24-thread { align-items: center; border-radius: .5rem; display: flex; min-width: 0; position: relative; }
212
- .a24-thread:hover,
213
- .a24-thread[data-selected] { background: var(--a24-background); box-shadow: 0 1px 2px rgba(0,0,0,.04); }
214
- .a24-thread__open { background: transparent; color: var(--a24-text); min-width: 0; padding: .6rem .5rem; text-align: start; width: 100%; }
215
- .a24-thread__title { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
216
- .a24-thread__status { color: var(--a24-muted); display: block; font-size: .75rem; margin-top: .15rem; }
217
- .a24-thread__delete { flex: 0 0 auto; height: 2rem; opacity: 0; width: 2rem; }
218
- .a24-thread:hover .a24-thread__delete,
219
- .a24-thread:focus-within .a24-thread__delete { opacity: 1; }
220
- .a24-sidebar__hint { color: var(--a24-muted); font-size: .875rem; margin: .75rem .5rem; }
221
- .a24-sidebar__more { margin-top: .5rem; width: 100%; }
222
-
223
- .a24-chat__body { display: flex; min-height: 0; min-width: 0; flex-direction: column; }
224
- .a24-header {
225
- align-items: center;
226
- border-bottom: 1px solid var(--a24-border);
227
- display: flex;
228
- flex: 0 0 auto;
229
- gap: .65rem;
230
- min-height: 4rem;
231
- padding: max(.55rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) .55rem max(1rem, env(safe-area-inset-left));
232
- }
233
- .a24-header__menu { display: none; }
234
- .a24-avatar { border-radius: .6rem; height: 2.25rem; object-fit: cover; width: 2.25rem; }
235
- .a24-avatar--fallback { align-items: center; background: var(--a24-accent); color: var(--a24-accent-text); display: inline-flex; font-weight: 700; justify-content: center; }
236
- .a24-header__identity { min-width: 0; }
237
- .a24-header h1 { font-size: .95rem; line-height: 1.25rem; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
238
- .a24-connection { align-items: center; color: var(--a24-muted); display: flex; font-size: .72rem; gap: .25rem; }
239
- .a24-connection svg { height: .75rem; width: .75rem; }
240
- .a24-connection[data-state="connected"] { color: #17803d; }
241
- .a24-connection[data-state="offline"],
242
- .a24-connection[data-state="expired"] { color: var(--a24-danger); }
243
- .a24-header__actions { align-items: center; display: flex; gap: .4rem; margin-inline-start: auto; }
244
- .a24-appearance { flex: 0 0 auto; }
245
-
246
- .a24-main { flex: 1; min-height: 0; overflow: hidden; position: relative; }
247
- .a24-state { align-items: center; display: flex; flex-direction: column; height: 100%; justify-content: center; margin: auto; max-width: 28rem; padding: 2rem; text-align: center; }
248
- .a24-state__icon { align-items: center; background: var(--a24-surface); border-radius: .75rem; color: var(--a24-muted); display: flex; height: 3rem; justify-content: center; width: 3rem; }
249
- .a24-state__icon svg { height: 1.25rem; width: 1.25rem; }
250
- .a24-state h2 { font-size: 1.1rem; margin: 1rem 0 .25rem; }
251
- .a24-state p { color: var(--a24-muted); font-size: .9rem; line-height: 1.5; margin: 0 0 1rem; }
252
-
253
- /* Shell and transcript primitives are deliberately self-contained. Customer
254
- apps must not need Tailwind or source scanning to render the default UI. */
255
- .a24-shell {
48
+ .a24-scroller {
256
49
  display: flex;
257
50
  flex: 1;
258
51
  flex-direction: column;
259
52
  height: 100%;
260
53
  min-height: 0;
261
- min-width: 0;
54
+ overflow: hidden;
262
55
  position: relative;
263
56
  width: 100%;
264
57
  }
265
- .a24-shell--empty { overflow: visible; padding: 0 1rem; }
266
- .a24-shell__empty { display: flex; flex: 1; flex-direction: column; height: 100%; justify-content: center; position: relative; z-index: 10; }
267
- .a24-shell__empty-content { align-items: center; display: flex; flex-direction: column; padding: 2rem 0 7rem; text-align: center; width: 100%; }
268
- .a24-shell__empty-title { font-size: clamp(1.6rem, 4vw, 2rem); font-weight: 650; letter-spacing: -.025em; margin: 0; padding: 0 0 1.5rem; }
269
- .a24-shell__empty-composer,
270
- .a24-shell__composer-inner { margin: 0 auto; max-width: 48rem; padding: 0 1rem; width: 100%; }
271
- .a24-shell__content { display: flex; flex-direction: column; gap: 2rem; margin: 0 auto; max-width: 48rem; min-height: 100%; padding: 3rem 1rem 8rem; width: 100%; }
272
- .a24-shell__composer-overlay {
273
- background: linear-gradient(to bottom, transparent 0%, color-mix(in srgb, var(--a24-background) 85%, transparent) 42%, var(--a24-background) 68%);
274
- bottom: 0;
275
- left: 0;
276
- overflow: visible;
277
- padding: 2.5rem max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
278
- pointer-events: none;
279
- position: absolute;
280
- right: 0;
281
- z-index: 20;
282
- }
283
- .a24-shell__scroll-button { display: flex; justify-content: center; left: 0; padding-bottom: .75rem; pointer-events: auto; position: absolute; right: 0; top: 0; transform: translateY(-100%); }
284
- .a24-shell__composer-inner { pointer-events: auto; }
285
-
286
- .a24-scroller { display: flex; flex: 1; flex-direction: column; height: 100%; min-height: 0; overflow: hidden; position: relative; width: 100%; }
287
- .a24-scroller__viewport { flex: 1; height: 100%; min-height: 0; min-width: 0; overscroll-behavior: contain; overflow-y: auto; scrollbar-gutter: stable; width: 100%; }
58
+ .a24-scroller__viewport { flex: 1; height: 100%; min-height: 0; min-width: 0; overscroll-behavior: contain; overflow-y: auto; scrollbar-width: none; width: 100%; }
59
+ .a24-scroller__viewport::-webkit-scrollbar { display: none; }
288
60
  .a24-scroller__content { display: flex; flex-direction: column; gap: 2rem; min-height: 100%; }
289
- .a24-scroller__item { flex: 0 0 auto; min-width: 0; overflow: visible; }
61
+ .a24-scroller__item { animation: var(--a24-message-enter-animation); flex: 0 0 auto; min-width: 0; overflow: visible; }
290
62
  .a24-scroller__button {
291
63
  align-items: center;
292
64
  appearance: none;
@@ -294,7 +66,7 @@
294
66
  border: 1px solid var(--a24-border);
295
67
  border-radius: 999px;
296
68
  bottom: 1rem;
297
- box-shadow: 0 6px 18px rgba(0,0,0,.12);
69
+ box-shadow: 0 6px 18px rgb(0 0 0 / 12%);
298
70
  color: var(--a24-text);
299
71
  display: flex;
300
72
  font: inherit;
@@ -314,7 +86,7 @@
314
86
  .a24-outline__rail { display: flex; flex-direction: column; pointer-events: auto; }
315
87
  .a24-outline__button { align-items: center; appearance: none; background: transparent; border: 0; display: flex; height: .55rem; padding: 0; position: relative; width: 4rem; }
316
88
  .a24-outline__bar { background: var(--a24-muted); border-radius: 999px; display: block; height: 2px; }
317
- .a24-outline__preview { background: var(--a24-background); border: 1px solid var(--a24-border); border-radius: .75rem; box-shadow: 0 8px 28px rgba(0,0,0,.14); color: var(--a24-text); opacity: 0; padding: .75rem; position: absolute; text-align: start; width: 16rem; }
89
+ .a24-outline__preview { background: var(--a24-background); border: 1px solid var(--a24-border); border-radius: .75rem; box-shadow: 0 8px 28px rgb(0 0 0 / 14%); color: var(--a24-text); max-height: 8rem; opacity: 0; overflow: hidden; padding: .75rem; pointer-events: none; position: absolute; text-align: start; width: 16rem; }
318
90
  .a24-outline[data-side="left"] { left: .25rem; }
319
91
  .a24-outline[data-side="right"] { right: .25rem; }
320
92
  .a24-outline[data-side="left"] .a24-outline__button { justify-content: flex-start; }
@@ -323,54 +95,23 @@
323
95
  .a24-outline[data-side="right"] .a24-outline__preview { margin-right: .5rem; right: 100%; }
324
96
  .a24-outline__button:hover .a24-outline__preview,
325
97
  .a24-outline__button:focus-visible .a24-outline__preview { opacity: 1; }
98
+ .a24-outline__preview > span { display: -webkit-box; line-height: 1.25rem; overflow: hidden; overflow-wrap: anywhere; -webkit-box-orient: vertical; }
99
+ .a24-outline__preview > span:first-child { -webkit-line-clamp: 4; }
100
+ .a24-outline__preview > span + span { color: var(--a24-muted); margin-top: .25rem; -webkit-line-clamp: 2; }
326
101
 
327
102
  .a24-composer { margin: 0 auto; max-width: 48rem; overflow: visible; position: relative; width: 100%; }
328
- .a24-composer__surface {
329
- background: var(--a24-background);
330
- border: 1px solid var(--a24-border);
331
- border-radius: 999px;
332
- box-shadow: 0 6px 24px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.08);
333
- padding: .3rem .45rem;
334
- position: relative;
335
- transition: border-color 160ms ease, box-shadow 160ms ease;
336
- width: 100%;
337
- }
338
- .a24-composer__surface:focus-within { border-color: var(--a24-border); box-shadow: 0 6px 24px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.08); }
339
- .a24-composer__surface[data-expanded] { border-radius: 1.1rem; padding: .5rem; }
103
+ .a24-composer__surface { background: var(--a24-background); border: 1px solid var(--a24-border); border-radius: var(--a24-composer-radius); box-shadow: var(--a24-composer-shadow); padding: .3rem .45rem; position: relative; width: 100%; }
104
+ .a24-composer__surface:focus-within { border-color: var(--a24-border); box-shadow: var(--a24-composer-shadow); outline: 0; }
105
+ .a24-composer__surface[data-expanded] { border-radius: var(--a24-composer-expanded-radius); padding: .5rem; }
340
106
  .a24-composer__grid { align-items: center; display: grid; width: 100%; }
341
107
  .a24-composer__attach-slot,
342
108
  .a24-composer__submit-slot { align-items: center; display: flex; justify-content: center; }
343
109
  .a24-composer__textarea-slot { min-width: 0; width: 100%; }
344
- .a24-composer__textarea {
345
- appearance: none;
346
- background: transparent;
347
- border: 0;
348
- color: var(--a24-text);
349
- display: block;
350
- font: inherit;
351
- font-size: .94rem;
352
- line-height: 1.45;
353
- margin: 0;
354
- min-height: 2.25rem;
355
- outline: 0;
356
- padding: .48rem .25rem;
357
- resize: none;
358
- width: 100%;
359
- }
110
+ .a24-composer__textarea { appearance: none; background: transparent; border: 0; color: var(--a24-text); display: block; font: inherit; font-size: .94rem; line-height: 1.45; margin: 0; min-height: 2.25rem; outline: 0; padding: .48rem .25rem; resize: none; width: 100%; }
360
111
  .a24-composer__textarea::placeholder { color: var(--a24-muted); opacity: .78; }
361
112
  .a24-composer__attach,
362
113
  .a24-composer__submit,
363
- .a24-composer__attachment-remove {
364
- align-items: center;
365
- appearance: none;
366
- border: 0;
367
- border-radius: 999px;
368
- cursor: pointer;
369
- display: inline-flex;
370
- flex: 0 0 auto;
371
- font: inherit;
372
- justify-content: center;
373
- }
114
+ .a24-composer__attachment-remove { align-items: center; appearance: none; border: 0; border-radius: 999px; cursor: pointer; display: inline-flex; flex: 0 0 auto; font: inherit; justify-content: center; }
374
115
  .a24-composer__attach { background: var(--a24-surface); color: var(--a24-muted); height: 2rem; width: 2rem; }
375
116
  .a24-composer__attach:hover { background: var(--a24-surface-hover); color: var(--a24-text); }
376
117
  .a24-composer__submit { background: var(--a24-accent); color: var(--a24-accent-text); height: 2.25rem; transition: opacity 160ms ease, transform 160ms ease; width: 2.25rem; }
@@ -390,54 +131,91 @@
390
131
  .a24-hitl--resolved { color: var(--a24-muted); font-size: .85rem; }
391
132
  .a24-hitl__title { color: var(--a24-text); font-size: .9rem; font-weight: 650; line-height: 1.45; }
392
133
  .a24-hitl__comment { background: var(--a24-background); border: 1px solid var(--a24-border); border-radius: .55rem; color: var(--a24-text); font: inherit; min-height: 5rem; padding: .65rem .75rem; resize: vertical; width: 100%; }
134
+ .a24-hitl__comment:focus-visible { border-color: var(--a24-border); outline: 2px solid var(--a24-focus); outline-offset: 2px; }
393
135
  .a24-hitl__error { color: var(--a24-danger); font-size: .85rem; }
394
136
  .a24-hitl__actions { align-items: center; display: flex; flex-wrap: wrap; gap: .45rem; }
395
137
  .a24-hitl__action { appearance: none; background: transparent; border: 1px solid var(--a24-border); border-radius: .5rem; color: var(--a24-text); cursor: pointer; font: inherit; font-size: .82rem; font-weight: 600; min-height: 2.25rem; padding: .4rem .7rem; }
396
138
  .a24-hitl__action[data-primary] { background: var(--a24-accent); border-color: var(--a24-accent); color: var(--a24-accent-text); }
397
139
  .a24-hitl__action:disabled { cursor: not-allowed; opacity: .55; }
398
140
 
399
- .a24-chat [data-slot="message"] { display: flex; font-size: .9rem; gap: .5rem; max-width: 80%; min-width: 0; width: 100%; }
400
- .a24-chat [data-slot="message"].is-user { justify-content: flex-end; margin-inline-start: auto; }
401
- .a24-chat [data-slot="message"].is-assistant { max-width: 100%; }
402
- .a24-chat [data-slot="message-group"] { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
403
- .a24-chat :is([data-slot="message-content"], [data-slot="bubble-content"]) { display: flex; flex-direction: column; gap: .5rem; line-height: 1.55; max-width: 100%; min-width: 0; overflow-wrap: anywhere; }
404
- .a24-chat :is([data-slot="message-content"], [data-slot="bubble-content"]) > :first-child { margin-top: 0; }
405
- .a24-chat :is([data-slot="message-content"], [data-slot="bubble-content"]) > :last-child { margin-bottom: 0; }
406
- .a24-chat .is-user > :is([data-slot="message-content"], [data-slot="bubble-content"]) { align-self: flex-end; background: var(--a24-surface); border-radius: .65rem; padding: .7rem 1rem; width: fit-content; }
407
- .a24-chat [data-slot="message-actions"] { align-items: center; display: flex; gap: .2rem; }
408
- .a24-chat [data-slot="message-actions"] button,
409
- .a24-chat [data-slot="attachment-action"] { align-items: center; appearance: none; background: transparent; border: 0; border-radius: .4rem; color: var(--a24-muted); display: inline-flex; height: 2rem; justify-content: center; padding: 0; width: 2rem; }
410
- .a24-chat [data-slot="message-actions"] button:hover,
411
- .a24-chat [data-slot="attachment-action"]:hover { background: var(--a24-surface-hover); color: var(--a24-text); }
412
- .a24-chat [data-slot="message-actions"] button svg { height: 1rem; width: 1rem; }
413
- .a24-chat [data-slot="attachment-group"] { display: flex; flex-wrap: wrap; gap: .5rem; }
414
- .a24-chat [data-slot="attachment"] { align-items: center; border: 1px solid var(--a24-border); border-radius: .6rem; display: flex; gap: .5rem; max-width: 100%; min-width: 10rem; padding: .45rem; }
415
- .a24-chat [data-slot="attachment-media"] { align-items: center; background: var(--a24-surface); border-radius: .4rem; display: flex; height: 2.25rem; justify-content: center; overflow: hidden; width: 2.25rem; }
416
- .a24-chat [data-slot="attachment-content"] { min-width: 0; }
417
- .a24-chat [data-slot="attachment-title"],
418
- .a24-chat [data-slot="attachment-description"] { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
419
- .a24-chat [data-slot="attachment-description"] { color: var(--a24-muted); font-size: .72rem; }
420
- .a24-chat [data-slot="attachment-media"] img { height: 100%; object-fit: cover; width: 100%; }
421
- .a24-chat [data-slot="bubble"] { display: flex; flex-direction: column; gap: .25rem; max-width: 80%; min-width: 0; position: relative; width: fit-content; }
422
- .a24-chat [data-slot="bubble"][data-variant="ghost"] { max-width: 100%; width: 100%; }
423
- .a24-chat [data-slot="bubble-content"] { border: 1px solid transparent; }
424
- .a24-chat [data-slot="bubble"][data-variant="default"] [data-slot="bubble-content"] { background: var(--a24-accent); color: var(--a24-accent-text); }
425
- .a24-chat [data-slot="bubble"][data-variant="secondary"] [data-slot="bubble-content"],
426
- .a24-chat [data-slot="bubble"][data-variant="muted"] [data-slot="bubble-content"],
427
- .a24-chat [data-slot="bubble"][data-variant="tinted"] [data-slot="bubble-content"] { background: var(--a24-surface); color: var(--a24-text); }
428
- .a24-chat [data-slot="bubble"][data-variant="ghost"] [data-slot="bubble-content"] { background: transparent; border: 0; border-radius: 0; padding: 0; width: 100%; }
429
- .a24-message-response { max-width: 100%; min-width: 0; width: 100%; }
141
+ .a24-context-status { flex: 0 0 auto; position: relative; }
142
+ .a24-context-status__trigger { align-items: center; appearance: none; background: transparent; border: 0; border-radius: .5rem; color: var(--a24-muted); cursor: pointer; display: inline-flex; font: inherit; font-size: .6875rem; font-variant-numeric: tabular-nums; gap: .375rem; height: 1.5rem; padding: 0 .5rem; }
143
+ .a24-context-status__trigger:hover { background: var(--a24-surface-hover); color: var(--a24-text); }
144
+ .a24-context-status__trigger:focus-visible { outline: 2px solid var(--a24-focus); outline-offset: 2px; }
145
+ .a24-context-status__trigger > span { font-weight: 600; }
146
+ .a24-context-status__ring { height: .875rem; transform: rotate(-90deg); width: .875rem; }
147
+ .a24-context-status__track, .a24-context-status__value { fill: none; stroke-width: 2; }
148
+ .a24-context-status__track { opacity: .25; stroke: currentColor; }
149
+ .a24-context-status__value { opacity: .75; stroke: currentColor; stroke-linecap: round; }
150
+ .a24-context-status__popover { background: #fff; border: 1px solid #e5e5e5; border-radius: .75rem; bottom: calc(100% + .5rem); box-shadow: 0 .5rem 1.25rem rgb(0 0 0 / 16%); color: #262626; display: flex; flex-direction: column; font-size: .75rem; gap: .125rem; inset-inline-end: 0; padding: .75rem; position: absolute; white-space: nowrap; width: max-content; z-index: 80; }
151
+ .a24-context-status__popover strong { font-size: .875rem; font-weight: 600; }
152
+ .a24-context-status__popover > span:not(.a24-context-status__sr-only) { color: #737373; }
153
+ .dark .a24-context-status__popover, :root[data-agents24-color-mode="dark"] .a24-context-status__popover { background: #171717; border-color: #262626; color: #e5e5e5; }
154
+ .dark .a24-context-status__popover > span:not(.a24-context-status__sr-only), :root[data-agents24-color-mode="dark"] .a24-context-status__popover > span:not(.a24-context-status__sr-only) { color: #a3a3a3; }
155
+ .a24-context-status__sr-only { border: 0; clip: rect(0, 0, 0, 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; width: 1px; }
156
+ .a24-tool-disclosure { min-width: 0; width: 100%; }
157
+ .a24-tool-trigger-row { align-items: center; display: flex; gap: .35rem; min-width: 0; }
158
+ .a24-tool-trigger { align-items: center; appearance: none; background: transparent; border: 0; color: var(--a24-muted); display: flex; font: inherit; font-size: .875rem; gap: .35rem; line-height: 1.35; min-width: 0; padding: .125rem 0; text-align: start; }
159
+ button.a24-tool-trigger { border-radius: .5rem; cursor: pointer; transition: background-color 140ms ease, color 140ms ease; }
160
+ button.a24-tool-trigger:hover { color: var(--a24-text); }
161
+ .a24-tool-trigger--root { background: transparent; border: 1px solid color-mix(in srgb, var(--a24-border) 55%, var(--a24-background)); border-radius: 9999px; padding: .3rem .5rem; }
162
+ button.a24-tool-trigger--root { border-radius: 9999px; }
163
+ button.a24-tool-trigger--root:hover { background: transparent; }
164
+ .a24-tool-trigger--without-orb { padding-inline-start: .625rem; }
165
+ button.a24-tool-trigger:focus-visible { outline: 2px solid var(--a24-focus); outline-offset: 2px; }
166
+ .a24-tool-trigger--error { color: var(--a24-danger); }
167
+ .a24-tool-orb { align-items: center; display: inline-flex; flex: 0 0 auto; height: 1.25rem; justify-content: center; width: 1.25rem; }
168
+ .a24-tool-orb canvas { display: block; }
169
+ .a24-tool-trigger__label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
170
+ .a24-tool-trigger__chevron { flex: 0 0 auto; height: .75rem; opacity: 0; transition: opacity 140ms ease; width: .75rem; }
171
+ .a24-tool-trigger:hover .a24-tool-trigger__chevron,
172
+ .a24-tool-trigger:focus-visible .a24-tool-trigger__chevron { opacity: .7; }
173
+ .a24-tool-disclosure__content { color: var(--a24-muted); font-size: .875rem; margin-top: .25rem; padding-inline-start: 1rem; }
174
+ .a24-tool-list-frame { min-width: 0; position: relative; }
175
+ .a24-tool-list-frame::before,
176
+ .a24-tool-list-frame::after { content: ""; height: 1.25rem; inset-inline: 0 .25rem; opacity: 0; pointer-events: none; position: absolute; transition: opacity 140ms ease; z-index: 1; }
177
+ .a24-tool-list-frame::before { background: linear-gradient(to bottom, color-mix(in srgb, var(--a24-background) 86%, transparent), transparent); top: 0; }
178
+ .a24-tool-list-frame::after { background: linear-gradient(to top, color-mix(in srgb, var(--a24-background) 86%, transparent), transparent); bottom: 0; }
179
+ .a24-tool-list-frame[data-scroll-fade-top]::before,
180
+ .a24-tool-list-frame[data-scroll-fade-bottom]::after { opacity: 1; }
181
+ .a24-tool-list { max-height: 16rem; overscroll-behavior: contain; overflow-y: auto; padding-inline-end: .25rem; }
182
+ .a24-tool-list > [role="listitem"] + [role="listitem"] { margin-top: .25rem; }
183
+ .a24-tool-detail { color: var(--a24-muted); font-size: .8125rem; overflow-wrap: anywhere; padding: .25rem 0; }
184
+ .a24-tool-detail--error,
185
+ .a24-child-tool--error { color: var(--a24-danger); }
186
+ .a24-child-tool { color: var(--a24-muted); display: flex; flex-direction: column; font-size: .8125rem; gap: .1rem; padding: .15rem 0; }
187
+ .a24-child-tool__detail { opacity: .76; overflow-wrap: anywhere; }
188
+ .a24-tool-shimmer { animation: a24-tool-shimmer 1.35s ease-in-out infinite; }
189
+ .a24-tool-reel { display: inline-grid; min-width: 0; overflow: hidden; position: relative; vertical-align: bottom; }
190
+ .a24-tool-reel > span { grid-area: 1 / 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
191
+ .a24-tool-reel__previous { animation: a24-tool-reel-out 200ms ease-out both; }
192
+ .a24-tool-reel__current { animation: a24-tool-reel-in 200ms ease-out both; }
193
+
194
+ @keyframes a24-tool-shimmer {
195
+ 0%, 100% { opacity: .55; }
196
+ 50% { opacity: 1; }
197
+ }
198
+ @keyframes a24-tool-reel-in {
199
+ from { opacity: 0; transform: translateY(75%); }
200
+ to { opacity: 1; transform: translateY(0); }
201
+ }
202
+ @keyframes a24-tool-reel-out {
203
+ from { opacity: 1; transform: translateY(0); }
204
+ to { opacity: 0; transform: translateY(-75%); }
205
+ }
206
+
207
+ .a24-message-response { box-sizing: border-box; max-width: 100%; min-width: 0; padding-inline: 3px; width: 100%; }
208
+ .a24-timeline-error { padding-inline: 3px; }
209
+ .a24-chat-message { display: flex; flex-direction: column; gap: .5rem; min-width: 0; width: 100%; }
210
+ .a24-chat-message--user { margin-inline-start: auto; max-width: 80%; }
211
+ .a24-chat-message--assistant { max-width: 100%; }
212
+ .a24-chat-message-content { display: flex; flex-direction: column; max-width: 100%; min-width: 0; }
213
+ .a24-chat-message-content--user { align-self: flex-end; overflow: visible; width: fit-content; }
214
+ .a24-chat-message-content--assistant { overflow: visible; width: 100%; }
430
215
  .a24-message-response > :first-child { margin-top: 0; }
431
216
  .a24-message-response > :last-child { margin-bottom: 0; }
432
217
  .a24-message-response :is(pre, table) { max-width: 100%; overflow-x: auto; }
433
218
  .a24-message-response :is(p, li, blockquote, code) { overflow-wrap: anywhere; }
434
-
435
- .a24-chat textarea { color: var(--a24-text); font: inherit; }
436
- .a24-chat input[type="file"].hidden { display: none; }
437
- .a24-chat button { font-family: inherit; }
438
- .a24-model-select { align-items: center; color: var(--a24-muted); display: inline-flex; font-size: .8rem; gap: .2rem; position: relative; }
439
- .a24-model-select select { appearance: none; background: transparent; border: 0; color: inherit; cursor: pointer; font: inherit; padding: .25rem 1.2rem .25rem .25rem; }
440
- .a24-model-select svg { pointer-events: none; position: absolute; right: .1rem; width: .8rem; }
441
219
  .a24-source-link,
442
220
  .a24-citation { color: #075f9a; text-decoration: underline; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-underline-offset: .18em; }
443
221
  .a24-output-attachment { background: var(--a24-surface); border: 1px solid var(--a24-border); border-radius: .5rem; display: inline-flex; font-size: .8rem; padding: .45rem .65rem; }
@@ -454,32 +232,9 @@
454
232
  .a24-ui-block table { border-collapse: collapse; font-size: .75rem; width: 100%; }
455
233
  .a24-ui-block th,
456
234
  .a24-ui-block td { border-bottom: 1px solid var(--a24-border); padding: .35rem; text-align: start; }
457
- .a24-sidebar-backdrop { display: none; }
458
-
459
- .a24-outline__preview { max-height: 8rem; overflow: hidden; pointer-events: none; }
460
- .a24-outline__preview > span { display: -webkit-box; line-height: 1.25rem; overflow: hidden; overflow-wrap: anywhere; -webkit-box-orient: vertical; }
461
- .a24-outline__preview > span:first-child { -webkit-line-clamp: 4; }
462
- .a24-outline__preview > span + span { color: var(--a24-muted); margin-top: .25rem; -webkit-line-clamp: 2; }
463
235
 
464
236
  @media (max-width: 720px) {
465
- .a24-chat { grid-template-columns: minmax(0, 1fr); min-height: 26rem; }
466
- .a24-sidebar { bottom: 0; box-shadow: 8px 0 28px rgba(0,0,0,.16); left: 0; max-width: min(88vw, 19rem); position: absolute; top: 0; transform: translateX(-105%); transition: transform 180ms ease; width: 100%; }
467
- [dir="rtl"] .a24-sidebar { left: auto; right: 0; transform: translateX(105%); }
468
- .a24-sidebar[data-open] { transform: translateX(0); }
469
- .a24-sidebar__mobile-close { display: inline-flex; }
470
- .a24-sidebar-backdrop { background: rgba(0,0,0,.36); border: 0; display: block; inset: 0; position: absolute; z-index: 30; }
471
- .a24-header__menu { display: inline-flex; }
472
- .a24-header__collapse { display: none; }
473
- .a24-thread__delete { opacity: 1; }
474
- .a24-shell__content { gap: 1.5rem; padding: 2rem 1rem 7.5rem; }
475
- .a24-shell__composer-overlay {
476
- padding: 2rem max(.5rem, env(safe-area-inset-right)) max(.65rem, env(safe-area-inset-bottom)) max(.5rem, env(safe-area-inset-left));
477
- }
478
- .a24-shell__composer-inner { padding: 0 .25rem; }
479
- .a24-shell__empty-content { padding-bottom: 5.5rem; }
480
- .a24-shell__empty-composer { padding: 0; }
481
- .a24-composer__surface { box-shadow: 0 4px 18px rgba(0,0,0,.1); }
482
- .a24-chat [data-slot="message"] { max-width: 92%; }
237
+ .a24-composer__surface { box-shadow: var(--a24-composer-mobile-shadow); }
483
238
  }
484
239
 
485
240
  @media (min-width: 960px) {
@@ -487,7 +242,11 @@
487
242
  }
488
243
 
489
244
  @media (prefers-reduced-motion: reduce) {
490
- .a24-chat *,
491
- .a24-chat *::before,
492
- .a24-chat *::after { animation-duration: .01ms !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
245
+ :is(.a24-scroller, .a24-outline, .a24-composer, .a24-hitl, .a24-tool-disclosure) *,
246
+ :is(.a24-scroller, .a24-outline, .a24-composer, .a24-hitl, .a24-tool-disclosure) *::before,
247
+ :is(.a24-scroller, .a24-outline, .a24-composer, .a24-hitl, .a24-tool-disclosure) *::after {
248
+ animation-duration: .01ms !important;
249
+ scroll-behavior: auto !important;
250
+ transition-duration: .01ms !important;
251
+ }
493
252
  }
package/dist/types.d.ts CHANGED
@@ -1,18 +1,8 @@
1
- import type { HitlAction } from "@agents24/client";
2
- import type { ChatMessage, ChatPart, ChatToolPart } from "@agents24/react";
3
- import type { ReactNode } from "react";
1
+ import type { HitlAction, HitlResponse } from "@agents24/client";
4
2
  export type * from "@agents24/react";
5
- export type { ChatAttachment, ChatHitlPart, ChatMessage, ChatPart, ChatToolPart, } from "@agents24/react";
3
+ export type { ChatAttachment, ChatHitlPart, ChatMessage, ChatModelTurnPart, ChatNodeActivityPart, ChatPart, ChatToolPart, } from "@agents24/react";
6
4
  export type ChatHitlAction = HitlAction;
7
- export type ToolRenderer = (props: {
8
- part: ChatToolPart;
9
- message: ChatMessage;
10
- }) => ReactNode;
11
- export type Agents24ChatRenderOptions = {
12
- renderPart?: (part: ChatPart, message: ChatMessage) => ReactNode;
13
- toolRenderers?: Partial<Record<`tool-${string}`, ToolRenderer>>;
14
- fallbackToolRenderer?: ToolRenderer;
15
- };
5
+ export type ChatHitlResponse = HitlResponse;
16
6
  export type ChatMcpOauthCompletion = {
17
7
  code: string;
18
8
  connectionId?: string;
@@ -11,7 +11,7 @@ export declare function ChatMessage(input: ChatMessageProps): React.ReactElement
11
11
  export type ChatMessageContentProps = React.ComponentProps<"div"> & {
12
12
  from?: ChatMessageRole;
13
13
  };
14
- export declare function ChatMessageContent({ className, ...props }: ChatMessageContentProps): React.ReactElement;
14
+ export declare function ChatMessageContent({ className, from, ...props }: ChatMessageContentProps): React.ReactElement;
15
15
  export type ChatMessageActionsProps = React.ComponentProps<"div">;
16
16
  export declare function ChatMessageActions({ className, ...props }: ChatMessageActionsProps): React.ReactElement;
17
17
  export type ChatMessageActionProps = React.ComponentProps<"button"> & {