@agno-hq/chat-react 0.1.1 → 0.3.1
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/README.md +407 -21
- package/dist/chat/index.cjs +334 -0
- package/dist/chat/index.cjs.map +1 -0
- package/dist/chat/index.d.cts +1335 -0
- package/dist/chat/index.d.ts +1335 -0
- package/dist/chat/index.js +5 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chunk-2WM3CCFE.cjs +106 -0
- package/dist/chunk-2WM3CCFE.cjs.map +1 -0
- package/dist/chunk-55HQJGLP.cjs +527 -0
- package/dist/chunk-55HQJGLP.cjs.map +1 -0
- package/dist/chunk-6V2YIPHF.js +503 -0
- package/dist/chunk-6V2YIPHF.js.map +1 -0
- package/dist/chunk-BZC2674Z.js +3501 -0
- package/dist/chunk-BZC2674Z.js.map +1 -0
- package/dist/chunk-JEPFGKHH.cjs +3588 -0
- package/dist/chunk-JEPFGKHH.cjs.map +1 -0
- package/dist/chunk-RE7ZT73K.js +102 -0
- package/dist/chunk-RE7ZT73K.js.map +1 -0
- package/dist/client-DUyVqxU9.d.cts +413 -0
- package/dist/client-DUyVqxU9.d.ts +413 -0
- package/dist/core/index.cjs +94 -0
- package/dist/core/index.cjs.map +1 -0
- package/dist/core/index.d.cts +108 -0
- package/dist/core/index.d.ts +108 -0
- package/dist/core/index.js +5 -0
- package/dist/core/index.js.map +1 -0
- package/dist/fonts.css +18 -0
- package/dist/index.cjs +415 -1954
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -835
- package/dist/index.d.ts +12 -835
- package/dist/index.js +3 -1920
- package/dist/index.js.map +1 -1
- package/dist/styles.css +2102 -659
- package/dist/tokens.css +111 -0
- package/package.json +50 -7
package/dist/styles.css
CHANGED
|
@@ -1,126 +1,193 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* agno-chat-react
|
|
3
|
-
* Brand accent #ff4017, near-black #111113 surfaces, zinc greys, white-alpha
|
|
4
|
-
* borders, Inter + DM Mono. Import once: `import 'agno-chat-react/styles.css'`.
|
|
2
|
+
* @agno-hq/chat-react — design tokens.
|
|
5
3
|
*
|
|
6
|
-
*
|
|
4
|
+
* Lifted from `agno-os/src/globals.css` so the components render with the same
|
|
5
|
+
* palette, radii and shadows as the AgentOS chat. Import this file alone
|
|
6
|
+
* (`@agno-hq/chat-react/tokens.css`) to keep the palette while supplying your own
|
|
7
|
+
* component CSS; `styles.css` already contains it.
|
|
8
|
+
*
|
|
9
|
+
* Declared on :root as well as the embed classes, so you can retheme globally
|
|
10
|
+
* or per-embed:
|
|
11
|
+
*
|
|
12
|
+
* :root { --color-brand-brand: 99, 102, 241; --agno-radius-lg: 1.25rem; }
|
|
13
|
+
*
|
|
14
|
+
* Dark by default; add `agno-light` on the embed for light mode (`agno-dark`
|
|
15
|
+
* also works if you toggle both explicitly).
|
|
7
16
|
*/
|
|
8
17
|
|
|
9
|
-
|
|
18
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
19
|
+
Design tokens — Agno OS
|
|
20
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
10
21
|
|
|
22
|
+
:root,
|
|
11
23
|
.agno-root,
|
|
12
|
-
.agno-
|
|
13
|
-
|
|
24
|
+
.agno-launcher {
|
|
25
|
+
/* Radii (agno-os: --radius-rounded-*) */
|
|
26
|
+
--agno-radius-xs: 0.25rem;
|
|
27
|
+
--agno-radius-sm: 0.5rem;
|
|
28
|
+
--agno-radius-md: 0.625rem;
|
|
29
|
+
--agno-radius-lg: 0.75rem;
|
|
30
|
+
--agno-radius-xl: 1rem;
|
|
31
|
+
--agno-radius-full: 9999px;
|
|
32
|
+
|
|
33
|
+
/* Brand + semantic colours are theme-independent in Agno OS */
|
|
34
|
+
--color-brand-brand: 255, 64, 23;
|
|
35
|
+
--color-brand-accent: 235, 110, 82;
|
|
36
|
+
--color-positive: 34, 197, 94;
|
|
37
|
+
--color-destructive: 229, 57, 53;
|
|
38
|
+
|
|
39
|
+
/* Dark theme (agno-os `.dark`) */
|
|
40
|
+
--color-primary: 255, 255, 255;
|
|
41
|
+
--color-primary-accent: 24, 24, 27;
|
|
42
|
+
--color-muted: 161, 161, 170;
|
|
43
|
+
--color-background: 17, 17, 19;
|
|
44
|
+
--color-background-secondary: 39, 39, 42;
|
|
45
|
+
--color-border-default: 255, 255, 255, 0.2;
|
|
46
|
+
--color-border-selected: 255, 255, 255, 0.75;
|
|
47
|
+
|
|
48
|
+
--agno-shadow-border: 0 0 0 1px rgba(0, 0, 0, 0.3), 0 1px 2px -1px rgba(0, 0, 0, 0.4),
|
|
49
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.3);
|
|
50
|
+
--agno-shadow-panel: 0 0 0 1px rgba(0, 0, 0, 0.3), 0 12px 32px -8px rgba(0, 0, 0, 0.6);
|
|
51
|
+
|
|
52
|
+
/* Semantic aliases used throughout this stylesheet. */
|
|
53
|
+
--agno-primary: rgb(var(--color-primary));
|
|
54
|
+
--agno-accent: rgb(var(--color-primary-accent));
|
|
55
|
+
--agno-muted: rgb(var(--color-muted));
|
|
56
|
+
--agno-bg: rgb(var(--color-background));
|
|
57
|
+
--agno-secondary: rgb(var(--color-background-secondary));
|
|
58
|
+
--agno-secondary-soft: rgba(var(--color-background-secondary), 0.5);
|
|
59
|
+
--agno-border: rgba(var(--color-border-default));
|
|
60
|
+
--agno-border-selected: rgba(var(--color-border-selected));
|
|
61
|
+
--agno-brand: rgb(var(--color-brand-brand));
|
|
62
|
+
--agno-brand-soft: rgba(var(--color-brand-brand), 0.14);
|
|
63
|
+
--agno-positive: rgb(var(--color-positive));
|
|
64
|
+
--agno-destructive: rgb(var(--color-destructive));
|
|
65
|
+
/* Agno OS layers subtle primary tints instead of extra greys. */
|
|
66
|
+
--agno-tint: rgba(var(--color-primary), 0.05);
|
|
67
|
+
--agno-tint-strong: rgba(var(--color-primary), 0.1);
|
|
68
|
+
|
|
69
|
+
/* Back-compat aliases (previous releases exposed these names). */
|
|
70
|
+
--agno-text: var(--agno-primary);
|
|
71
|
+
--agno-surface: var(--agno-bg);
|
|
72
|
+
--agno-surface-2: var(--agno-secondary);
|
|
73
|
+
--agno-error: var(--agno-destructive);
|
|
74
|
+
--agno-radius: var(--agno-radius-md);
|
|
75
|
+
--agno-primary-bg: var(--agno-primary);
|
|
76
|
+
--agno-primary-fg: var(--agno-accent);
|
|
77
|
+
|
|
78
|
+
/* Typography — repoint these to self-hosted faces to skip fonts.css. */
|
|
79
|
+
--agno-font: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
|
|
80
|
+
--agno-font-mono: 'DM Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
14
81
|
}
|
|
15
82
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
--
|
|
21
|
-
--
|
|
22
|
-
--
|
|
23
|
-
--
|
|
24
|
-
--
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
--agno-brand: #ff4017;
|
|
28
|
-
--agno-brand-soft: rgba(255, 64, 23, 0.14);
|
|
29
|
-
--agno-accent: var(--agno-brand);
|
|
30
|
-
|
|
31
|
-
/* Monochrome primary action (Agno uses inverse, not brand, for buttons). */
|
|
32
|
-
--agno-primary-bg: #fafafa;
|
|
33
|
-
--agno-primary-fg: #111113;
|
|
34
|
-
|
|
35
|
-
--agno-user: rgba(255, 255, 255, 0.06);
|
|
36
|
-
--agno-positive: #22c55e;
|
|
37
|
-
--agno-error: #e53935;
|
|
83
|
+
/* Light theme (agno-os `:root`) */
|
|
84
|
+
.agno-light,
|
|
85
|
+
.agno-root.agno-light,
|
|
86
|
+
.agno-launcher.agno-light {
|
|
87
|
+
--color-primary: 24, 24, 27;
|
|
88
|
+
--color-primary-accent: 255, 255, 255;
|
|
89
|
+
--color-muted: 113, 113, 122;
|
|
90
|
+
--color-background: 255, 255, 255;
|
|
91
|
+
--color-background-secondary: 244, 244, 245;
|
|
92
|
+
--color-border-default: 24, 24, 27, 0.1;
|
|
93
|
+
--color-border-selected: 24, 24, 27, 0.5;
|
|
38
94
|
|
|
39
|
-
--agno-
|
|
40
|
-
|
|
41
|
-
--agno-
|
|
95
|
+
--agno-shadow-border: 0 0 0 1px rgba(0, 0, 0, 0.06), 0 1px 2px -1px rgba(0, 0, 0, 0.06),
|
|
96
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.04);
|
|
97
|
+
--agno-shadow-panel: 0 0 0 1px rgba(0, 0, 0, 0.06), 0 12px 32px -8px rgba(0, 0, 0, 0.18);
|
|
98
|
+
}
|
|
42
99
|
|
|
100
|
+
/* Explicit dark, for apps that toggle both classes. */
|
|
101
|
+
.agno-dark,
|
|
102
|
+
.agno-root.agno-dark,
|
|
103
|
+
.agno-launcher.agno-dark {
|
|
104
|
+
--color-primary: 255, 255, 255;
|
|
105
|
+
--color-primary-accent: 24, 24, 27;
|
|
106
|
+
--color-muted: 161, 161, 170;
|
|
107
|
+
--color-background: 17, 17, 19;
|
|
108
|
+
--color-background-secondary: 39, 39, 42;
|
|
109
|
+
--color-border-default: 255, 255, 255, 0.2;
|
|
110
|
+
--color-border-selected: 255, 255, 255, 0.75;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/*
|
|
114
|
+
* @agno-hq/chat-react — component styles, following the Agno OS design system.
|
|
115
|
+
*
|
|
116
|
+
* Every colour, radius, shadow and font here comes from a token in
|
|
117
|
+
* `tokens.css`; `styles.css` ships the two concatenated, so import that unless
|
|
118
|
+
* you are supplying your own tokens. Webfonts are a separate opt-in file
|
|
119
|
+
* (`fonts.css`) — this sheet makes no third-party request.
|
|
120
|
+
*
|
|
121
|
+
* Each class below is also addressable from the `classNames` prop on the
|
|
122
|
+
* components, so Tailwind (or anything else) layers on top of these rules
|
|
123
|
+
* rather than replacing them.
|
|
124
|
+
*/
|
|
125
|
+
|
|
126
|
+
.agno-root,
|
|
127
|
+
.agno-root *,
|
|
128
|
+
.agno-launcher,
|
|
129
|
+
.agno-launcher *,
|
|
130
|
+
/* Portalled to <body>, outside the embed. */
|
|
131
|
+
.agno-hovercard,
|
|
132
|
+
.agno-hovercard *,
|
|
133
|
+
.agno-sources__list,
|
|
134
|
+
.agno-sources__list * {
|
|
135
|
+
box-sizing: border-box;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
.agno-root {
|
|
43
140
|
display: flex;
|
|
44
141
|
flex-direction: column;
|
|
45
142
|
background: var(--agno-bg);
|
|
46
|
-
color: var(--agno-
|
|
143
|
+
color: var(--agno-primary);
|
|
47
144
|
border: 1px solid var(--agno-border);
|
|
48
145
|
border-radius: var(--agno-radius-lg);
|
|
49
146
|
overflow: hidden;
|
|
50
|
-
font-family:
|
|
51
|
-
font-size:
|
|
52
|
-
|
|
147
|
+
font-family: var(--agno-font);
|
|
148
|
+
font-size: 0.875rem;
|
|
149
|
+
font-weight: 400;
|
|
150
|
+
line-height: 21px;
|
|
151
|
+
letter-spacing: -0.02em;
|
|
53
152
|
-webkit-font-smoothing: antialiased;
|
|
54
153
|
-moz-osx-font-smoothing: grayscale;
|
|
55
154
|
}
|
|
56
155
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
156
|
+
|
|
157
|
+
/* Type scale — Agno OS `Paragraph` sizes. */
|
|
158
|
+
.agno-text-body {
|
|
159
|
+
font-size: 0.875rem;
|
|
160
|
+
line-height: 21px;
|
|
161
|
+
letter-spacing: -0.02em;
|
|
162
|
+
}
|
|
163
|
+
.agno-text-xsmall {
|
|
164
|
+
font-size: 0.75rem;
|
|
165
|
+
line-height: 1.0625rem;
|
|
166
|
+
letter-spacing: -0.02em;
|
|
167
|
+
}
|
|
168
|
+
.agno-text-label,
|
|
169
|
+
.agno-mono {
|
|
170
|
+
font-family: var(--agno-font-mono);
|
|
171
|
+
font-size: 0.75rem;
|
|
172
|
+
line-height: 1rem;
|
|
173
|
+
letter-spacing: 0.02em;
|
|
69
174
|
}
|
|
70
175
|
|
|
71
|
-
/* Scrollbars — thin, like Agno OS. */
|
|
72
176
|
.agno-root ::-webkit-scrollbar {
|
|
73
177
|
width: 6px;
|
|
74
178
|
height: 6px;
|
|
75
179
|
}
|
|
76
180
|
.agno-root ::-webkit-scrollbar-thumb {
|
|
77
|
-
background: var(--agno-
|
|
78
|
-
border-radius:
|
|
181
|
+
background: var(--agno-tint-strong);
|
|
182
|
+
border-radius: var(--agno-radius-full);
|
|
79
183
|
}
|
|
80
184
|
.agno-root ::-webkit-scrollbar-track {
|
|
81
185
|
background: transparent;
|
|
82
186
|
}
|
|
83
187
|
|
|
84
|
-
/*
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
align-items: center;
|
|
88
|
-
justify-content: space-between;
|
|
89
|
-
gap: 12px;
|
|
90
|
-
padding: 12px 16px;
|
|
91
|
-
border-bottom: 1px solid var(--agno-border);
|
|
92
|
-
background: var(--agno-bg);
|
|
93
|
-
}
|
|
94
|
-
.agno-header__brand {
|
|
95
|
-
display: flex;
|
|
96
|
-
align-items: center;
|
|
97
|
-
gap: 10px;
|
|
98
|
-
}
|
|
99
|
-
.agno-header__title {
|
|
100
|
-
font-weight: 600;
|
|
101
|
-
font-size: 13px;
|
|
102
|
-
text-transform: uppercase;
|
|
103
|
-
letter-spacing: 0.08em;
|
|
104
|
-
}
|
|
105
|
-
/* Agno brand mark — orange rounded square with the "A". */
|
|
106
|
-
.agno-logo {
|
|
107
|
-
display: grid;
|
|
108
|
-
place-items: center;
|
|
109
|
-
width: 24px;
|
|
110
|
-
height: 24px;
|
|
111
|
-
border-radius: 7px;
|
|
112
|
-
background: var(--agno-brand);
|
|
113
|
-
color: #fff;
|
|
114
|
-
font-weight: 700;
|
|
115
|
-
font-size: 14px;
|
|
116
|
-
line-height: 1;
|
|
117
|
-
box-shadow: 0 0 16px rgba(255, 64, 23, 0.45);
|
|
118
|
-
}
|
|
119
|
-
.agno-header__controls {
|
|
120
|
-
display: flex;
|
|
121
|
-
align-items: center;
|
|
122
|
-
gap: 8px;
|
|
123
|
-
}
|
|
188
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
189
|
+
Shell: sidebars, chat column
|
|
190
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
124
191
|
|
|
125
192
|
.agno-main {
|
|
126
193
|
display: flex;
|
|
@@ -129,26 +196,26 @@
|
|
|
129
196
|
}
|
|
130
197
|
|
|
131
198
|
.agno-sidebar {
|
|
132
|
-
width:
|
|
199
|
+
width: 316px;
|
|
133
200
|
border-left: 1px solid var(--agno-border);
|
|
134
201
|
background: var(--agno-bg);
|
|
135
|
-
padding:
|
|
202
|
+
padding: 16px;
|
|
136
203
|
overflow: auto;
|
|
137
204
|
}
|
|
138
205
|
.agno-sidebar--left {
|
|
139
206
|
border-left: none;
|
|
140
207
|
border-right: 1px solid var(--agno-border);
|
|
141
|
-
width:
|
|
208
|
+
width: 260px;
|
|
142
209
|
}
|
|
143
210
|
.agno-sidebar__title {
|
|
144
|
-
font-
|
|
211
|
+
font-family: var(--agno-font-mono);
|
|
212
|
+
font-size: 0.75rem;
|
|
213
|
+
letter-spacing: 0.02em;
|
|
145
214
|
text-transform: uppercase;
|
|
146
|
-
letter-spacing: 0.06em;
|
|
147
215
|
color: var(--agno-muted);
|
|
148
|
-
margin-bottom:
|
|
216
|
+
margin-bottom: 12px;
|
|
149
217
|
}
|
|
150
218
|
|
|
151
|
-
/* Chat surface */
|
|
152
219
|
.agno-chat {
|
|
153
220
|
display: flex;
|
|
154
221
|
flex-direction: column;
|
|
@@ -157,105 +224,93 @@
|
|
|
157
224
|
min-height: 0;
|
|
158
225
|
}
|
|
159
226
|
|
|
227
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
228
|
+
Transcript
|
|
229
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
230
|
+
|
|
160
231
|
.agno-list {
|
|
161
232
|
flex: 1;
|
|
162
233
|
overflow-y: auto;
|
|
163
|
-
padding:
|
|
234
|
+
padding: 24px 24px 8px;
|
|
235
|
+
}
|
|
236
|
+
/* Agno OS centres the conversation in an 800px column. */
|
|
237
|
+
.agno-list__inner {
|
|
238
|
+
width: 100%;
|
|
239
|
+
max-width: 800px;
|
|
240
|
+
margin: 0 auto;
|
|
164
241
|
display: flex;
|
|
165
242
|
flex-direction: column;
|
|
166
|
-
gap:
|
|
243
|
+
gap: 36px;
|
|
167
244
|
}
|
|
168
245
|
.agno-list__empty {
|
|
169
|
-
|
|
170
|
-
|
|
246
|
+
height: 100%;
|
|
247
|
+
display: grid;
|
|
248
|
+
place-items: center;
|
|
171
249
|
text-align: center;
|
|
172
|
-
|
|
250
|
+
color: var(--agno-muted);
|
|
173
251
|
}
|
|
174
252
|
|
|
175
|
-
/* Messages */
|
|
176
253
|
.agno-msg {
|
|
177
254
|
display: flex;
|
|
178
|
-
gap: 12px;
|
|
179
255
|
align-items: flex-start;
|
|
180
|
-
|
|
181
|
-
.agno-msg--user {
|
|
182
|
-
flex-direction: row-reverse;
|
|
256
|
+
gap: 16px;
|
|
183
257
|
}
|
|
184
258
|
.agno-msg__avatar {
|
|
185
|
-
flex: 0 0
|
|
186
|
-
width:
|
|
187
|
-
height:
|
|
188
|
-
border-radius:
|
|
259
|
+
flex: 0 0 24px;
|
|
260
|
+
width: 24px;
|
|
261
|
+
height: 24px;
|
|
262
|
+
border-radius: 6px;
|
|
189
263
|
display: grid;
|
|
190
264
|
place-items: center;
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
265
|
+
overflow: hidden;
|
|
266
|
+
}
|
|
267
|
+
.agno-msg__avatar svg {
|
|
268
|
+
display: block;
|
|
269
|
+
}
|
|
270
|
+
.agno-msg--user .agno-msg__avatar {
|
|
271
|
+
background: var(--agno-secondary);
|
|
272
|
+
color: var(--agno-primary);
|
|
273
|
+
border-radius: var(--agno-radius-sm);
|
|
274
|
+
font-size: 10px;
|
|
275
|
+
line-height: 1;
|
|
276
|
+
font-weight: 500;
|
|
277
|
+
letter-spacing: 0;
|
|
194
278
|
}
|
|
195
|
-
.agno-msg--
|
|
279
|
+
.agno-msg--team .agno-msg__avatar {
|
|
196
280
|
background: var(--agno-brand);
|
|
197
|
-
border-color: transparent;
|
|
198
281
|
color: #fff;
|
|
199
|
-
|
|
200
|
-
box-shadow: 0 0 14px rgba(255, 64, 23, 0.4);
|
|
282
|
+
padding: 4px;
|
|
201
283
|
}
|
|
202
284
|
.agno-msg__body {
|
|
203
|
-
max-width: 80%;
|
|
204
|
-
display: flex;
|
|
205
|
-
flex-direction: column;
|
|
206
|
-
gap: 8px;
|
|
207
|
-
}
|
|
208
|
-
/* Agent body spans the column so tool/step cards keep a stable width as
|
|
209
|
-
content streams in (no horizontal jitter). */
|
|
210
|
-
.agno-msg--agent .agno-msg__body {
|
|
211
285
|
flex: 1;
|
|
212
|
-
max-width: 100%;
|
|
213
286
|
min-width: 0;
|
|
287
|
+
display: flex;
|
|
288
|
+
flex-direction: column;
|
|
289
|
+
gap: 12px;
|
|
290
|
+
color: var(--agno-primary);
|
|
214
291
|
}
|
|
215
|
-
|
|
216
|
-
align-items: flex-end;
|
|
217
|
-
}
|
|
218
|
-
/* Agent replies render as plain text (Agno OS style), not a card. */
|
|
292
|
+
/* Agent and user messages are both plain text in Agno OS — no bubbles. */
|
|
219
293
|
.agno-msg__content {
|
|
220
|
-
padding: 2px 0;
|
|
221
294
|
word-break: break-word;
|
|
222
295
|
}
|
|
223
|
-
/* User messages sit in a rounded bubble. */
|
|
224
|
-
.agno-msg--user .agno-msg__content {
|
|
225
|
-
background: var(--agno-user);
|
|
226
|
-
border: 1px solid var(--agno-border);
|
|
227
|
-
border-radius: var(--agno-radius);
|
|
228
|
-
padding: 10px 14px;
|
|
229
|
-
}
|
|
230
|
-
.agno-msg__content--empty {
|
|
231
|
-
min-height: 20px;
|
|
232
|
-
}
|
|
233
296
|
.agno-msg__error {
|
|
234
|
-
color: var(--agno-
|
|
235
|
-
|
|
297
|
+
color: var(--agno-destructive);
|
|
298
|
+
word-break: break-word;
|
|
236
299
|
}
|
|
237
|
-
|
|
238
|
-
/* Inline "what it's doing" indicator, shown in the agent bubble before content. */
|
|
239
300
|
.agno-msg__activity {
|
|
240
301
|
display: flex;
|
|
241
302
|
align-items: center;
|
|
242
|
-
gap:
|
|
303
|
+
gap: 8px;
|
|
304
|
+
min-height: 28px;
|
|
243
305
|
color: var(--agno-muted);
|
|
244
|
-
font-size: 13px;
|
|
245
|
-
padding: 4px 0;
|
|
246
306
|
}
|
|
247
|
-
.agno-msg__activity-label {
|
|
248
|
-
letter-spacing: 0.01em;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
/* Streaming caret — brand accent */
|
|
252
307
|
.agno-msg__caret {
|
|
253
308
|
display: inline-block;
|
|
254
|
-
width:
|
|
309
|
+
width: 6px;
|
|
255
310
|
height: 14px;
|
|
256
311
|
margin-left: 2px;
|
|
257
312
|
vertical-align: text-bottom;
|
|
258
|
-
background: var(--agno-
|
|
313
|
+
background: var(--agno-primary);
|
|
259
314
|
border-radius: 1px;
|
|
260
315
|
animation: agno-blink 1s steps(2, start) infinite;
|
|
261
316
|
}
|
|
@@ -265,7 +320,10 @@
|
|
|
265
320
|
}
|
|
266
321
|
}
|
|
267
322
|
|
|
268
|
-
/*
|
|
323
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
324
|
+
Markdown
|
|
325
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
326
|
+
|
|
269
327
|
.agno-md > :first-child {
|
|
270
328
|
margin-top: 0;
|
|
271
329
|
}
|
|
@@ -273,230 +331,947 @@
|
|
|
273
331
|
margin-bottom: 0;
|
|
274
332
|
}
|
|
275
333
|
.agno-md-p {
|
|
276
|
-
margin:
|
|
334
|
+
margin: 8px 0;
|
|
277
335
|
}
|
|
278
336
|
.agno-md-heading {
|
|
279
|
-
margin:
|
|
280
|
-
|
|
281
|
-
|
|
337
|
+
margin: 16px 0 8px;
|
|
338
|
+
font-weight: 500;
|
|
339
|
+
line-height: normal;
|
|
282
340
|
}
|
|
283
341
|
.agno-md-list {
|
|
284
|
-
margin:
|
|
342
|
+
margin: 8px 0;
|
|
285
343
|
padding-left: 20px;
|
|
286
344
|
}
|
|
287
345
|
.agno-md-code {
|
|
288
|
-
background: var(--agno-
|
|
346
|
+
background: var(--agno-tint);
|
|
289
347
|
padding: 1px 5px;
|
|
290
|
-
border-radius:
|
|
291
|
-
font-
|
|
292
|
-
font-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
348
|
+
border-radius: var(--agno-radius-xs);
|
|
349
|
+
font-family: var(--agno-font-mono);
|
|
350
|
+
font-size: 0.75rem;
|
|
351
|
+
letter-spacing: -0.015em;
|
|
352
|
+
}
|
|
353
|
+
/* Fenced code: a header bar (language, copy) over a numbered, highlighted body. */
|
|
354
|
+
.agno-md-code-block {
|
|
355
|
+
margin: 8px 0;
|
|
296
356
|
border: 1px solid var(--agno-border);
|
|
357
|
+
border-radius: var(--agno-radius-md);
|
|
358
|
+
background: var(--agno-secondary-soft);
|
|
359
|
+
overflow: hidden;
|
|
360
|
+
}
|
|
361
|
+
.agno-md-code-head {
|
|
362
|
+
display: flex;
|
|
363
|
+
align-items: center;
|
|
364
|
+
justify-content: space-between;
|
|
365
|
+
gap: 8px;
|
|
366
|
+
padding: 6px 8px 6px 14px;
|
|
367
|
+
border-bottom: 1px solid var(--agno-border);
|
|
368
|
+
}
|
|
369
|
+
.agno-md-code-lang {
|
|
370
|
+
font-family: var(--agno-font-mono);
|
|
371
|
+
font-size: 0.75rem;
|
|
372
|
+
color: var(--agno-muted);
|
|
373
|
+
letter-spacing: -0.01em;
|
|
374
|
+
}
|
|
375
|
+
.agno-md-copy {
|
|
376
|
+
display: grid;
|
|
377
|
+
place-items: center;
|
|
378
|
+
width: 26px;
|
|
379
|
+
height: 26px;
|
|
380
|
+
padding: 0;
|
|
381
|
+
border: 0;
|
|
297
382
|
border-radius: var(--agno-radius-sm);
|
|
383
|
+
background: transparent;
|
|
384
|
+
color: var(--agno-muted);
|
|
385
|
+
cursor: pointer;
|
|
386
|
+
transition: color 0.15s ease, background-color 0.15s ease;
|
|
387
|
+
}
|
|
388
|
+
.agno-md-copy:hover,
|
|
389
|
+
.agno-md-copy:focus-visible {
|
|
390
|
+
color: var(--agno-primary);
|
|
391
|
+
background: var(--agno-tint);
|
|
392
|
+
}
|
|
393
|
+
.agno-md-copy.is-copied {
|
|
394
|
+
color: var(--agno-positive);
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
.agno-md-pre {
|
|
398
|
+
margin: 0;
|
|
298
399
|
padding: 12px 14px;
|
|
400
|
+
max-height: var(--agno-code-max-height, 32rem);
|
|
401
|
+
overflow: auto;
|
|
402
|
+
font-family: var(--agno-font-mono);
|
|
403
|
+
font-size: 0.75rem;
|
|
404
|
+
line-height: 1.5rem;
|
|
405
|
+
letter-spacing: -0.02em;
|
|
406
|
+
}
|
|
407
|
+
/* Line numbers are counters, so they neither select nor copy. */
|
|
408
|
+
.agno-md-pre code {
|
|
409
|
+
counter-reset: line;
|
|
410
|
+
}
|
|
411
|
+
.agno-md-line {
|
|
412
|
+
counter-increment: line;
|
|
413
|
+
}
|
|
414
|
+
.agno-md-line::before {
|
|
415
|
+
content: counter(line);
|
|
416
|
+
display: inline-block;
|
|
417
|
+
width: var(--agno-code-gutter, 2ch);
|
|
418
|
+
margin-right: 1.25rem;
|
|
419
|
+
text-align: right;
|
|
420
|
+
color: var(--agno-muted);
|
|
421
|
+
user-select: none;
|
|
422
|
+
}
|
|
423
|
+
/* Tokens carry both themes; the theme class picks one, like every other colour. */
|
|
424
|
+
.agno-md-line span {
|
|
425
|
+
color: var(--shiki-dark);
|
|
426
|
+
}
|
|
427
|
+
.agno-light .agno-md-line span {
|
|
428
|
+
color: var(--shiki-light);
|
|
429
|
+
}
|
|
430
|
+
.agno-dark .agno-md-line span {
|
|
431
|
+
color: var(--shiki-dark);
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
.agno-md a {
|
|
435
|
+
color: var(--agno-primary);
|
|
436
|
+
text-underline-offset: 2px;
|
|
437
|
+
}
|
|
438
|
+
.agno-md-quote {
|
|
439
|
+
margin: 8px 0;
|
|
440
|
+
padding-left: 12px;
|
|
441
|
+
border-left: 2px solid var(--agno-border);
|
|
442
|
+
color: var(--agno-muted);
|
|
443
|
+
}
|
|
444
|
+
.agno-md-rule {
|
|
445
|
+
margin: 16px 0;
|
|
446
|
+
border: none;
|
|
447
|
+
border-top: 1px solid var(--agno-border);
|
|
448
|
+
}
|
|
449
|
+
.agno-md-img {
|
|
450
|
+
max-width: 100%;
|
|
451
|
+
border-radius: var(--agno-radius-md);
|
|
452
|
+
}
|
|
453
|
+
/* Wide tables scroll in place — the transcript column never widens. */
|
|
454
|
+
.agno-md-table-wrap {
|
|
455
|
+
margin: 8px 0;
|
|
299
456
|
overflow-x: auto;
|
|
300
|
-
|
|
301
|
-
|
|
457
|
+
border: 1px solid var(--agno-border);
|
|
458
|
+
border-radius: var(--agno-radius-md);
|
|
459
|
+
}
|
|
460
|
+
.agno-md-table {
|
|
461
|
+
width: 100%;
|
|
462
|
+
border-collapse: collapse;
|
|
463
|
+
font-size: 0.8125rem;
|
|
464
|
+
}
|
|
465
|
+
.agno-md-table th,
|
|
466
|
+
.agno-md-table td {
|
|
467
|
+
padding: 6px 10px;
|
|
468
|
+
text-align: left;
|
|
469
|
+
vertical-align: top;
|
|
470
|
+
}
|
|
471
|
+
.agno-md-table th {
|
|
472
|
+
background: var(--agno-secondary-soft);
|
|
473
|
+
font-weight: 500;
|
|
474
|
+
white-space: nowrap;
|
|
475
|
+
}
|
|
476
|
+
.agno-md-table tr + tr td {
|
|
477
|
+
border-top: 1px solid var(--agno-border);
|
|
302
478
|
}
|
|
479
|
+
/* GFM task lists: the checkbox replaces the bullet. */
|
|
480
|
+
.agno-md-list li:has(> input[type='checkbox']) {
|
|
481
|
+
list-style: none;
|
|
482
|
+
margin-left: -20px;
|
|
483
|
+
}
|
|
484
|
+
.agno-md-list li input[type='checkbox'] {
|
|
485
|
+
margin-right: 6px;
|
|
486
|
+
accent-color: var(--agno-brand);
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
490
|
+
Tool calls — pill triggers, detail panel underneath
|
|
491
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
303
492
|
|
|
304
|
-
/* Tool calls */
|
|
305
493
|
.agno-tools {
|
|
306
494
|
display: flex;
|
|
307
495
|
flex-direction: column;
|
|
308
|
-
gap:
|
|
309
|
-
}
|
|
310
|
-
.agno-tool {
|
|
311
|
-
border: 1px solid var(--agno-border);
|
|
312
|
-
border-radius: var(--agno-radius-sm);
|
|
313
|
-
background: var(--agno-surface);
|
|
314
|
-
overflow: hidden;
|
|
315
|
-
}
|
|
316
|
-
.agno-tool--running {
|
|
317
|
-
border-color: rgba(255, 64, 23, 0.35);
|
|
496
|
+
gap: 8px;
|
|
318
497
|
}
|
|
319
|
-
.agno-
|
|
320
|
-
width: 100%;
|
|
498
|
+
.agno-tools__row {
|
|
321
499
|
display: flex;
|
|
500
|
+
flex-wrap: wrap;
|
|
322
501
|
align-items: center;
|
|
323
502
|
gap: 8px;
|
|
324
|
-
|
|
325
|
-
|
|
503
|
+
}
|
|
504
|
+
.agno-tool {
|
|
505
|
+
display: inline-flex;
|
|
506
|
+
align-items: center;
|
|
507
|
+
gap: 6px;
|
|
508
|
+
padding: 2px 8px;
|
|
326
509
|
border: none;
|
|
327
|
-
|
|
510
|
+
border-radius: var(--agno-radius-sm);
|
|
511
|
+
background: var(--agno-tint);
|
|
512
|
+
color: var(--agno-primary);
|
|
328
513
|
cursor: pointer;
|
|
329
|
-
font:
|
|
330
|
-
|
|
514
|
+
font-family: var(--agno-font-mono);
|
|
515
|
+
font-size: 0.75rem;
|
|
516
|
+
line-height: 1.125rem;
|
|
517
|
+
letter-spacing: 0.02em;
|
|
518
|
+
text-transform: uppercase;
|
|
519
|
+
transition: background 0.12s ease;
|
|
331
520
|
}
|
|
332
|
-
.agno-
|
|
333
|
-
|
|
334
|
-
opacity: 0.7;
|
|
521
|
+
.agno-tool:hover {
|
|
522
|
+
background: var(--agno-tint-strong);
|
|
335
523
|
}
|
|
336
|
-
.agno-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
}
|
|
341
|
-
.agno-tool__status {
|
|
342
|
-
font-size: 10.5px;
|
|
343
|
-
padding: 1px 8px;
|
|
344
|
-
border-radius: 999px;
|
|
345
|
-
background: var(--agno-surface-2);
|
|
524
|
+
.agno-tool.is-open {
|
|
525
|
+
background: var(--agno-tint-strong);
|
|
526
|
+
}
|
|
527
|
+
.agno-tool__spinner {
|
|
346
528
|
color: var(--agno-muted);
|
|
347
|
-
text-transform: lowercase;
|
|
348
|
-
letter-spacing: 0.02em;
|
|
349
529
|
}
|
|
350
|
-
.agno-
|
|
351
|
-
|
|
352
|
-
background: var(--agno-brand-soft);
|
|
530
|
+
.agno-spin {
|
|
531
|
+
animation: agno-spin 1s linear infinite;
|
|
353
532
|
}
|
|
354
|
-
|
|
355
|
-
|
|
533
|
+
@keyframes agno-spin {
|
|
534
|
+
to {
|
|
535
|
+
transform: rotate(360deg);
|
|
536
|
+
}
|
|
356
537
|
}
|
|
357
|
-
.agno-
|
|
358
|
-
color: var(--agno-
|
|
538
|
+
.agno-tool__icon {
|
|
539
|
+
color: var(--agno-muted);
|
|
359
540
|
}
|
|
360
|
-
.agno-
|
|
361
|
-
color: var(--agno-
|
|
541
|
+
.agno-tool--error {
|
|
542
|
+
color: var(--agno-destructive);
|
|
362
543
|
}
|
|
363
|
-
.agno-
|
|
364
|
-
|
|
365
|
-
font-size: 9px;
|
|
366
|
-
color: var(--agno-muted);
|
|
544
|
+
.agno-tool--paused .agno-tool__icon {
|
|
545
|
+
color: var(--agno-brand);
|
|
367
546
|
}
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
border-top: 1px solid var(--agno-border);
|
|
547
|
+
|
|
548
|
+
.agno-tool-detail {
|
|
371
549
|
display: flex;
|
|
372
550
|
flex-direction: column;
|
|
551
|
+
gap: 12px;
|
|
552
|
+
padding: 12px;
|
|
553
|
+
border-radius: var(--agno-radius-md);
|
|
554
|
+
background: var(--agno-secondary-soft);
|
|
555
|
+
}
|
|
556
|
+
.agno-tool-detail__head {
|
|
557
|
+
display: flex;
|
|
558
|
+
align-items: center;
|
|
559
|
+
justify-content: space-between;
|
|
373
560
|
gap: 8px;
|
|
374
561
|
}
|
|
375
|
-
.agno-
|
|
376
|
-
|
|
562
|
+
.agno-tool-detail__meta {
|
|
563
|
+
margin-left: auto;
|
|
564
|
+
}
|
|
565
|
+
.agno-tool-detail__name {
|
|
566
|
+
font-family: var(--agno-font-mono);
|
|
567
|
+
font-size: 0.75rem;
|
|
568
|
+
letter-spacing: 0.02em;
|
|
569
|
+
text-transform: uppercase;
|
|
570
|
+
}
|
|
571
|
+
.agno-tool-detail__status {
|
|
572
|
+
color: var(--agno-muted);
|
|
573
|
+
font-family: var(--agno-font-mono);
|
|
574
|
+
font-size: 0.75rem;
|
|
575
|
+
letter-spacing: 0.02em;
|
|
377
576
|
text-transform: uppercase;
|
|
378
|
-
|
|
577
|
+
}
|
|
578
|
+
.agno-tool-detail__status--done {
|
|
579
|
+
color: var(--agno-positive);
|
|
580
|
+
}
|
|
581
|
+
.agno-tool-detail__status--error {
|
|
582
|
+
color: var(--agno-destructive);
|
|
583
|
+
}
|
|
584
|
+
.agno-tool-detail__status--paused,
|
|
585
|
+
.agno-tool-detail__status--running {
|
|
586
|
+
color: var(--agno-brand);
|
|
587
|
+
}
|
|
588
|
+
.agno-tool-detail__label {
|
|
379
589
|
color: var(--agno-muted);
|
|
380
|
-
|
|
590
|
+
font-family: var(--agno-font-mono);
|
|
591
|
+
font-size: 0.75rem;
|
|
592
|
+
letter-spacing: 0.02em;
|
|
593
|
+
text-transform: uppercase;
|
|
594
|
+
margin-bottom: 6px;
|
|
381
595
|
}
|
|
382
|
-
.agno-
|
|
596
|
+
.agno-tool-detail__pre {
|
|
383
597
|
margin: 0;
|
|
384
|
-
|
|
385
|
-
border-radius:
|
|
386
|
-
|
|
598
|
+
padding: 10px;
|
|
599
|
+
border-radius: var(--agno-radius-sm);
|
|
600
|
+
background: var(--agno-bg);
|
|
387
601
|
overflow-x: auto;
|
|
388
|
-
font-
|
|
389
|
-
font-
|
|
602
|
+
font-family: var(--agno-font-mono);
|
|
603
|
+
font-size: 0.75rem;
|
|
604
|
+
line-height: 1.125rem;
|
|
605
|
+
letter-spacing: -0.02em;
|
|
606
|
+
white-space: pre-wrap;
|
|
607
|
+
word-break: break-word;
|
|
390
608
|
}
|
|
391
609
|
|
|
392
|
-
/*
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
background: var(--agno-surface);
|
|
398
|
-
}
|
|
399
|
-
.agno-reasoning__toggle,
|
|
400
|
-
.agno-citations__toggle {
|
|
401
|
-
width: 100%;
|
|
610
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
611
|
+
Collapsible panels: reasoning, tool calls
|
|
612
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
613
|
+
|
|
614
|
+
.agno-disclosure__toggle {
|
|
402
615
|
display: flex;
|
|
403
616
|
align-items: center;
|
|
404
|
-
gap:
|
|
405
|
-
padding:
|
|
617
|
+
gap: 8px;
|
|
618
|
+
padding: 0;
|
|
406
619
|
background: none;
|
|
407
620
|
border: none;
|
|
408
621
|
color: var(--agno-muted);
|
|
409
622
|
cursor: pointer;
|
|
410
623
|
font: inherit;
|
|
411
|
-
|
|
624
|
+
text-align: left;
|
|
412
625
|
}
|
|
413
|
-
.agno-
|
|
414
|
-
|
|
415
|
-
margin-left: auto;
|
|
416
|
-
font-size: 9px;
|
|
626
|
+
.agno-disclosure__toggle:hover {
|
|
627
|
+
color: var(--agno-primary);
|
|
417
628
|
}
|
|
418
|
-
.agno-
|
|
419
|
-
|
|
420
|
-
|
|
629
|
+
.agno-disclosure__chev {
|
|
630
|
+
flex: 0 0 16px;
|
|
631
|
+
transition: transform 0.2s ease;
|
|
632
|
+
}
|
|
633
|
+
.agno-disclosure__toggle[aria-expanded='true'] .agno-disclosure__chev {
|
|
634
|
+
transform: rotate(180deg);
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
.agno-reasoning {
|
|
421
638
|
display: flex;
|
|
422
639
|
flex-direction: column;
|
|
423
|
-
gap:
|
|
640
|
+
gap: 12px;
|
|
424
641
|
}
|
|
425
|
-
.
|
|
642
|
+
/* Timeline — a continuous rule down the centre of the icon column. */
|
|
643
|
+
.agno-timeline {
|
|
426
644
|
position: relative;
|
|
645
|
+
isolation: isolate;
|
|
646
|
+
margin: 0;
|
|
647
|
+
padding: 0 0 0 24px;
|
|
648
|
+
list-style: none;
|
|
649
|
+
display: flex;
|
|
650
|
+
flex-direction: column;
|
|
651
|
+
gap: 16px;
|
|
427
652
|
}
|
|
428
|
-
.agno-
|
|
653
|
+
.agno-timeline::before {
|
|
429
654
|
content: '';
|
|
430
655
|
position: absolute;
|
|
431
|
-
left:
|
|
432
|
-
top:
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
background: var(--agno-brand);
|
|
656
|
+
left: 8px;
|
|
657
|
+
top: 10px;
|
|
658
|
+
bottom: 10px;
|
|
659
|
+
width: 1px;
|
|
660
|
+
background: var(--agno-border);
|
|
437
661
|
}
|
|
438
|
-
.agno-
|
|
439
|
-
|
|
662
|
+
.agno-timeline__item {
|
|
663
|
+
position: relative;
|
|
664
|
+
}
|
|
665
|
+
.agno-timeline__item::before {
|
|
666
|
+
content: '';
|
|
667
|
+
position: absolute;
|
|
668
|
+
left: -20px;
|
|
669
|
+
top: 7px;
|
|
670
|
+
width: 7px;
|
|
671
|
+
height: 7px;
|
|
672
|
+
border-radius: var(--agno-radius-full);
|
|
673
|
+
background: var(--agno-muted);
|
|
674
|
+
box-shadow: 0 0 0 4px var(--agno-bg);
|
|
675
|
+
}
|
|
676
|
+
.agno-reasoning__title {
|
|
677
|
+
font-weight: 500;
|
|
440
678
|
}
|
|
441
679
|
.agno-reasoning__text {
|
|
442
|
-
color: var(--agno-
|
|
680
|
+
color: var(--agno-primary);
|
|
443
681
|
}
|
|
444
682
|
.agno-reasoning__meta {
|
|
445
|
-
font-size: 12px;
|
|
446
683
|
color: var(--agno-muted);
|
|
684
|
+
font-size: 0.75rem;
|
|
685
|
+
line-height: 1.0625rem;
|
|
447
686
|
}
|
|
448
687
|
|
|
449
|
-
.
|
|
450
|
-
|
|
688
|
+
/* Behind the scenes — one trigger over the whole run timeline. */
|
|
689
|
+
.agno-bts {
|
|
451
690
|
display: flex;
|
|
452
691
|
flex-direction: column;
|
|
453
|
-
gap:
|
|
692
|
+
gap: 12px;
|
|
693
|
+
}
|
|
694
|
+
.agno-bts__toggle {
|
|
695
|
+
display: flex;
|
|
696
|
+
align-items: center;
|
|
697
|
+
gap: 8px;
|
|
698
|
+
width: fit-content;
|
|
699
|
+
max-width: 100%;
|
|
700
|
+
padding: 0;
|
|
701
|
+
background: none;
|
|
702
|
+
border: none;
|
|
703
|
+
color: var(--agno-muted);
|
|
704
|
+
cursor: pointer;
|
|
705
|
+
font: inherit;
|
|
706
|
+
letter-spacing: -0.02em;
|
|
707
|
+
text-align: left;
|
|
708
|
+
}
|
|
709
|
+
.agno-bts__toggle:hover {
|
|
710
|
+
color: var(--agno-primary);
|
|
711
|
+
}
|
|
712
|
+
/* Loader and chevron share a cell: the loader shows while streaming, and the
|
|
713
|
+
chevron takes over on hover — as in AgentOS. */
|
|
714
|
+
.agno-bts__marker {
|
|
715
|
+
display: grid;
|
|
716
|
+
place-items: center;
|
|
717
|
+
flex: 0 0 16px;
|
|
718
|
+
width: 16px;
|
|
719
|
+
height: 16px;
|
|
720
|
+
}
|
|
721
|
+
.agno-bts__marker > * {
|
|
722
|
+
grid-column: 1;
|
|
723
|
+
grid-row: 1;
|
|
724
|
+
transition: opacity 0.2s ease, transform 0.2s ease;
|
|
454
725
|
}
|
|
455
|
-
.agno-
|
|
456
|
-
|
|
457
|
-
font-size: 12px;
|
|
726
|
+
.agno-bts--streaming .agno-bts__chev {
|
|
727
|
+
opacity: 0;
|
|
458
728
|
}
|
|
459
|
-
.agno-
|
|
460
|
-
|
|
729
|
+
.agno-bts--streaming .agno-bts__toggle:hover .agno-bts__chev {
|
|
730
|
+
opacity: 1;
|
|
731
|
+
}
|
|
732
|
+
.agno-bts--streaming .agno-bts__toggle:hover .agno-loader {
|
|
733
|
+
opacity: 0;
|
|
734
|
+
}
|
|
735
|
+
.agno-bts__toggle[aria-expanded='true'] .agno-bts__chev {
|
|
736
|
+
transform: rotate(180deg);
|
|
737
|
+
}
|
|
738
|
+
.agno-bts__label-text {
|
|
739
|
+
overflow: hidden;
|
|
740
|
+
text-overflow: ellipsis;
|
|
741
|
+
white-space: nowrap;
|
|
742
|
+
}
|
|
743
|
+
.agno-bts__label {
|
|
461
744
|
color: var(--agno-muted);
|
|
745
|
+
font-size: 0.75rem;
|
|
746
|
+
line-height: 1.0625rem;
|
|
462
747
|
}
|
|
463
|
-
.
|
|
464
|
-
|
|
465
|
-
|
|
748
|
+
/* One step line: label, truncated preview, marker on the right. */
|
|
749
|
+
.agno-bts__step {
|
|
750
|
+
display: flex;
|
|
751
|
+
align-items: center;
|
|
752
|
+
gap: 8px;
|
|
753
|
+
width: 100%;
|
|
754
|
+
min-width: 0;
|
|
755
|
+
padding: 0;
|
|
756
|
+
color: var(--agno-muted);
|
|
757
|
+
font-size: 0.75rem;
|
|
758
|
+
line-height: 1.0625rem;
|
|
759
|
+
letter-spacing: -0.02em;
|
|
760
|
+
text-align: left;
|
|
761
|
+
}
|
|
762
|
+
.agno-bts__step--button {
|
|
763
|
+
background: none;
|
|
764
|
+
border: none;
|
|
765
|
+
cursor: pointer;
|
|
766
|
+
font-family: inherit;
|
|
767
|
+
}
|
|
768
|
+
.agno-bts__step--button:hover .agno-bts__step-label {
|
|
769
|
+
color: var(--agno-primary);
|
|
770
|
+
}
|
|
771
|
+
.agno-bts__step-label {
|
|
772
|
+
flex-shrink: 0;
|
|
773
|
+
white-space: nowrap;
|
|
774
|
+
}
|
|
775
|
+
.agno-bts__preview {
|
|
776
|
+
flex: 1;
|
|
777
|
+
min-width: 0;
|
|
778
|
+
overflow: hidden;
|
|
779
|
+
text-overflow: ellipsis;
|
|
780
|
+
white-space: nowrap;
|
|
781
|
+
color: var(--agno-muted);
|
|
782
|
+
}
|
|
783
|
+
.agno-bts__detail {
|
|
784
|
+
margin-left: auto;
|
|
785
|
+
flex-shrink: 0;
|
|
786
|
+
}
|
|
787
|
+
.agno-bts__step-marker {
|
|
788
|
+
margin-left: auto;
|
|
789
|
+
display: grid;
|
|
790
|
+
place-items: center;
|
|
791
|
+
flex: 0 0 14px;
|
|
792
|
+
width: 14px;
|
|
793
|
+
height: 14px;
|
|
794
|
+
}
|
|
795
|
+
.agno-bts__step-marker > * {
|
|
796
|
+
grid-column: 1;
|
|
797
|
+
grid-row: 1;
|
|
798
|
+
transition: opacity 0.2s ease, transform 0.2s ease;
|
|
799
|
+
}
|
|
800
|
+
/* While a step runs the loader shows; hovering reveals the chevron. */
|
|
801
|
+
.agno-bts__step-marker .agno-loader + .agno-bts__chev {
|
|
802
|
+
opacity: 0;
|
|
803
|
+
}
|
|
804
|
+
.agno-bts__step--button:hover .agno-bts__step-marker .agno-bts__chev {
|
|
805
|
+
opacity: 1;
|
|
806
|
+
}
|
|
807
|
+
.agno-bts__step--button:hover .agno-bts__step-marker .agno-loader {
|
|
808
|
+
opacity: 0;
|
|
809
|
+
}
|
|
810
|
+
.agno-bts__step--button[aria-expanded='true'] .agno-bts__chev {
|
|
811
|
+
transform: rotate(180deg);
|
|
812
|
+
}
|
|
813
|
+
.agno-bts__step-body {
|
|
814
|
+
display: flex;
|
|
815
|
+
flex-direction: column;
|
|
816
|
+
gap: 8px;
|
|
817
|
+
padding-top: 4px;
|
|
818
|
+
}
|
|
819
|
+
.agno-bts__name {
|
|
820
|
+
color: var(--agno-primary);
|
|
821
|
+
font-weight: 500;
|
|
822
|
+
}
|
|
823
|
+
.agno-bts__content {
|
|
824
|
+
color: var(--agno-primary);
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
/* Timeline rows with an icon column (the line runs behind the icons). */
|
|
828
|
+
.agno-timeline--icons {
|
|
829
|
+
padding-left: 0;
|
|
830
|
+
}
|
|
831
|
+
/* A single step needs no connecting rule. */
|
|
832
|
+
.agno-timeline--icons:has(> :only-child)::before {
|
|
833
|
+
display: none;
|
|
834
|
+
}
|
|
835
|
+
.agno-timeline__row {
|
|
836
|
+
position: relative;
|
|
837
|
+
display: flex;
|
|
838
|
+
align-items: flex-start;
|
|
839
|
+
gap: 8px;
|
|
840
|
+
}
|
|
841
|
+
.agno-timeline__icon {
|
|
842
|
+
position: relative;
|
|
843
|
+
z-index: 1;
|
|
844
|
+
display: grid;
|
|
845
|
+
place-items: center;
|
|
846
|
+
flex: 0 0 16px;
|
|
847
|
+
width: 16px;
|
|
848
|
+
height: 20px;
|
|
849
|
+
color: var(--agno-muted);
|
|
850
|
+
background: var(--agno-bg);
|
|
851
|
+
}
|
|
852
|
+
.agno-timeline__content {
|
|
853
|
+
flex: 1;
|
|
854
|
+
min-width: 0;
|
|
855
|
+
margin-top: 2px;
|
|
856
|
+
display: flex;
|
|
857
|
+
flex-direction: column;
|
|
858
|
+
gap: 8px;
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
862
|
+
Sources — the pills under an answer (Figma: Components Library › Sources found)
|
|
863
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
864
|
+
|
|
865
|
+
.agno-sources {
|
|
866
|
+
display: flex;
|
|
867
|
+
flex-direction: column;
|
|
868
|
+
gap: 8px;
|
|
869
|
+
}
|
|
870
|
+
.agno-sources__head {
|
|
871
|
+
color: var(--agno-primary);
|
|
872
|
+
font-family: var(--agno-font-mono);
|
|
873
|
+
font-size: 0.75rem;
|
|
874
|
+
line-height: 1rem;
|
|
875
|
+
letter-spacing: -0.02em;
|
|
876
|
+
}
|
|
877
|
+
/* A single row of fixed-width pills; wraps only when the column can't hold them. */
|
|
878
|
+
.agno-sources__grid {
|
|
879
|
+
display: flex;
|
|
880
|
+
flex-wrap: wrap;
|
|
881
|
+
align-items: center;
|
|
882
|
+
gap: 12px;
|
|
883
|
+
}
|
|
884
|
+
|
|
885
|
+
.agno-source {
|
|
886
|
+
display: flex;
|
|
887
|
+
align-items: center;
|
|
888
|
+
gap: 8px;
|
|
889
|
+
width: 160px;
|
|
890
|
+
max-width: 100%;
|
|
891
|
+
min-width: 0;
|
|
892
|
+
padding: 4px 8px 4px 4px;
|
|
893
|
+
border-radius: var(--agno-radius-sm);
|
|
894
|
+
background: var(--agno-secondary-soft);
|
|
895
|
+
color: inherit;
|
|
466
896
|
text-decoration: none;
|
|
897
|
+
transition: background 0.15s ease;
|
|
898
|
+
}
|
|
899
|
+
a.agno-source:hover {
|
|
900
|
+
background: var(--agno-secondary);
|
|
901
|
+
}
|
|
902
|
+
/* 24px avatar box; the icon fills it. Doubled up to outrank `.agno-favicon`. */
|
|
903
|
+
.agno-favicon.agno-source__icon {
|
|
904
|
+
flex: 0 0 24px;
|
|
905
|
+
width: 24px;
|
|
906
|
+
height: 24px;
|
|
907
|
+
border-radius: 6px;
|
|
908
|
+
}
|
|
909
|
+
.agno-source__icon.agno-favicon--glyph svg {
|
|
910
|
+
width: 14px;
|
|
911
|
+
height: 14px;
|
|
912
|
+
}
|
|
913
|
+
.agno-source__title {
|
|
914
|
+
flex: 1;
|
|
915
|
+
min-width: 0;
|
|
916
|
+
overflow: hidden;
|
|
917
|
+
text-overflow: ellipsis;
|
|
918
|
+
white-space: nowrap;
|
|
919
|
+
color: var(--agno-muted);
|
|
920
|
+
font-size: 0.75rem;
|
|
921
|
+
font-weight: 400;
|
|
922
|
+
line-height: 1.25rem;
|
|
923
|
+
letter-spacing: -0.02em;
|
|
924
|
+
text-decoration: underline;
|
|
925
|
+
text-underline-position: from-font;
|
|
926
|
+
}
|
|
927
|
+
.agno-source__link {
|
|
928
|
+
flex: 0 0 16px;
|
|
929
|
+
color: var(--agno-primary);
|
|
467
930
|
}
|
|
468
931
|
|
|
469
|
-
/*
|
|
932
|
+
/* "+N more": the next few favicons fanned out, then the count. */
|
|
933
|
+
.agno-sources__more {
|
|
934
|
+
display: flex;
|
|
935
|
+
align-items: center;
|
|
936
|
+
gap: 4px;
|
|
937
|
+
padding: 4px 8px;
|
|
938
|
+
border: none;
|
|
939
|
+
border-radius: var(--agno-radius-sm);
|
|
940
|
+
background: var(--agno-secondary);
|
|
941
|
+
color: var(--agno-muted);
|
|
942
|
+
cursor: pointer;
|
|
943
|
+
font: inherit;
|
|
944
|
+
font-size: 0.75rem;
|
|
945
|
+
line-height: 1.0625rem;
|
|
946
|
+
letter-spacing: -0.02em;
|
|
947
|
+
transition: color 0.15s ease;
|
|
948
|
+
}
|
|
949
|
+
.agno-sources__more:hover {
|
|
950
|
+
color: var(--agno-primary);
|
|
951
|
+
}
|
|
952
|
+
.agno-sources__stack {
|
|
953
|
+
display: flex;
|
|
954
|
+
align-items: center;
|
|
955
|
+
}
|
|
956
|
+
.agno-favicon.agno-sources__stack-icon {
|
|
957
|
+
flex: 0 0 24px;
|
|
958
|
+
width: 24px;
|
|
959
|
+
height: 24px;
|
|
960
|
+
border-radius: 6px;
|
|
961
|
+
/* Opaque, so the icon beneath doesn't show through; a ring in the pill
|
|
962
|
+
colour then separates each from the one under it. */
|
|
963
|
+
background: var(--agno-bg);
|
|
964
|
+
box-shadow: 0 0 0 1px var(--agno-secondary);
|
|
965
|
+
}
|
|
966
|
+
.agno-sources__stack-icon + .agno-sources__stack-icon {
|
|
967
|
+
margin-left: -16px;
|
|
968
|
+
}
|
|
969
|
+
.agno-sources__stack-icon.agno-favicon--glyph svg {
|
|
970
|
+
width: 14px;
|
|
971
|
+
height: 14px;
|
|
972
|
+
}
|
|
973
|
+
.agno-sources__more-label {
|
|
974
|
+
display: flex;
|
|
975
|
+
align-items: center;
|
|
976
|
+
height: 24px;
|
|
977
|
+
white-space: nowrap;
|
|
978
|
+
}
|
|
979
|
+
.agno-sources__overflow {
|
|
980
|
+
display: inline-flex;
|
|
981
|
+
}
|
|
982
|
+
.agno-sources__more[aria-expanded='true'] {
|
|
983
|
+
color: var(--agno-primary);
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
/* The rest of the sources, listed above the "+N more" pill. Portalled to
|
|
987
|
+
<body> like the hover card, so the transcript can't clip it. */
|
|
988
|
+
.agno-sources__list {
|
|
989
|
+
position: fixed;
|
|
990
|
+
z-index: 2147483000;
|
|
991
|
+
display: flex;
|
|
992
|
+
flex-direction: column;
|
|
993
|
+
overflow: hidden;
|
|
994
|
+
border: 1px solid var(--agno-border);
|
|
995
|
+
border-radius: var(--agno-radius-sm);
|
|
996
|
+
background: var(--agno-secondary-soft);
|
|
997
|
+
-webkit-backdrop-filter: blur(4px);
|
|
998
|
+
backdrop-filter: blur(4px);
|
|
999
|
+
color: var(--agno-primary);
|
|
1000
|
+
font-family: var(--agno-font);
|
|
1001
|
+
animation: agno-hovercard-in 0.12s ease-out;
|
|
1002
|
+
}
|
|
1003
|
+
/* Positioned by its top edge either way; anchoring above means lifting the
|
|
1004
|
+
list by its own height, which only CSS knows. */
|
|
1005
|
+
.agno-sources__list--top {
|
|
1006
|
+
transform: translateY(-100%);
|
|
1007
|
+
}
|
|
1008
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1009
|
+
.agno-sources__list {
|
|
1010
|
+
animation: none;
|
|
1011
|
+
}
|
|
1012
|
+
}
|
|
1013
|
+
/* A source as a row of the list: full width, flat, divided by hairlines. */
|
|
1014
|
+
.agno-source--row {
|
|
1015
|
+
width: 100%;
|
|
1016
|
+
max-width: none;
|
|
1017
|
+
padding: 8px;
|
|
1018
|
+
border-radius: 0;
|
|
1019
|
+
background: transparent;
|
|
1020
|
+
}
|
|
1021
|
+
.agno-source--row + .agno-source--row {
|
|
1022
|
+
border-top: 1px solid var(--agno-border);
|
|
1023
|
+
}
|
|
1024
|
+
a.agno-source--row:hover {
|
|
1025
|
+
background: var(--agno-tint);
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
1029
|
+
Follow-ups — "Related questions" under the latest answer
|
|
1030
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
1031
|
+
|
|
1032
|
+
.agno-followups {
|
|
1033
|
+
display: flex;
|
|
1034
|
+
flex-direction: column;
|
|
1035
|
+
gap: 8px;
|
|
1036
|
+
min-width: 0;
|
|
1037
|
+
}
|
|
1038
|
+
.agno-followups__head {
|
|
1039
|
+
color: var(--agno-muted);
|
|
1040
|
+
font-size: 0.8125rem;
|
|
1041
|
+
line-height: 1.25rem;
|
|
1042
|
+
}
|
|
1043
|
+
/* One bordered box, rows divided by hairlines — reads as a list of questions
|
|
1044
|
+
rather than a row of chips, so long prompts have the full width. */
|
|
1045
|
+
.agno-followups__list {
|
|
1046
|
+
display: flex;
|
|
1047
|
+
flex-direction: column;
|
|
1048
|
+
border: 1px solid var(--agno-border);
|
|
1049
|
+
border-radius: var(--agno-radius-lg);
|
|
1050
|
+
background: var(--agno-secondary-soft);
|
|
1051
|
+
overflow: hidden;
|
|
1052
|
+
}
|
|
1053
|
+
.agno-followup {
|
|
1054
|
+
display: flex;
|
|
1055
|
+
align-items: center;
|
|
1056
|
+
width: 100%;
|
|
1057
|
+
min-width: 0;
|
|
1058
|
+
margin: 0;
|
|
1059
|
+
padding: 10px 14px;
|
|
1060
|
+
border: 0;
|
|
1061
|
+
border-top: 1px solid var(--agno-border);
|
|
1062
|
+
background: none;
|
|
1063
|
+
color: var(--agno-primary);
|
|
1064
|
+
font-family: inherit;
|
|
1065
|
+
font-size: 0.875rem;
|
|
1066
|
+
line-height: 1.375rem;
|
|
1067
|
+
letter-spacing: -0.01em;
|
|
1068
|
+
text-align: left;
|
|
1069
|
+
cursor: pointer;
|
|
1070
|
+
transition: background 0.15s ease;
|
|
1071
|
+
}
|
|
1072
|
+
.agno-followup:first-child {
|
|
1073
|
+
border-top: 0;
|
|
1074
|
+
}
|
|
1075
|
+
.agno-followup:hover:not(:disabled),
|
|
1076
|
+
.agno-followup:focus-visible {
|
|
1077
|
+
background: var(--agno-tint);
|
|
1078
|
+
outline: none;
|
|
1079
|
+
}
|
|
1080
|
+
.agno-followup:disabled {
|
|
1081
|
+
opacity: 0.5;
|
|
1082
|
+
cursor: not-allowed;
|
|
1083
|
+
}
|
|
1084
|
+
/* Clamped to `--agno-followup-lines` (set per button from the `lines` prop),
|
|
1085
|
+
one by default: a prompt that wraps reads like an answer, not a question to
|
|
1086
|
+
ask. The full text is on the button's `title`. */
|
|
1087
|
+
.agno-followup__text {
|
|
1088
|
+
flex: 1;
|
|
1089
|
+
min-width: 0;
|
|
1090
|
+
display: -webkit-box;
|
|
1091
|
+
-webkit-box-orient: vertical;
|
|
1092
|
+
-webkit-line-clamp: var(--agno-followup-lines, 1);
|
|
1093
|
+
line-clamp: var(--agno-followup-lines, 1);
|
|
1094
|
+
overflow: hidden;
|
|
1095
|
+
overflow-wrap: anywhere;
|
|
1096
|
+
}
|
|
1097
|
+
/* Pinned above the dock by `<ChatWindow>`: same 800px column and inner
|
|
1098
|
+
padding as the quick prompts, so the box lines up with the input. */
|
|
1099
|
+
.agno-followups--dock {
|
|
1100
|
+
width: 100%;
|
|
1101
|
+
max-width: calc(800px + 48px);
|
|
1102
|
+
margin: 0 auto;
|
|
1103
|
+
padding: 0 32px 8px;
|
|
1104
|
+
box-sizing: border-box;
|
|
1105
|
+
}
|
|
1106
|
+
|
|
1107
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
1108
|
+
Link previews — the card body, shared by source cards and hover cards
|
|
1109
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
1110
|
+
|
|
1111
|
+
.agno-preview {
|
|
1112
|
+
min-width: 0;
|
|
1113
|
+
display: flex;
|
|
1114
|
+
flex-direction: column;
|
|
1115
|
+
gap: 2px;
|
|
1116
|
+
}
|
|
1117
|
+
.agno-preview__site {
|
|
1118
|
+
display: flex;
|
|
1119
|
+
align-items: center;
|
|
1120
|
+
gap: 6px;
|
|
1121
|
+
min-width: 0;
|
|
1122
|
+
color: var(--agno-muted);
|
|
1123
|
+
font-size: 0.6875rem;
|
|
1124
|
+
line-height: 1rem;
|
|
1125
|
+
}
|
|
1126
|
+
.agno-preview__host {
|
|
1127
|
+
overflow: hidden;
|
|
1128
|
+
text-overflow: ellipsis;
|
|
1129
|
+
white-space: nowrap;
|
|
1130
|
+
}
|
|
1131
|
+
.agno-preview__title {
|
|
1132
|
+
font-size: 0.8125rem;
|
|
1133
|
+
font-weight: 500;
|
|
1134
|
+
line-height: 1.125rem;
|
|
1135
|
+
/* Two lines, then ellipsis — titles vary wildly and the cards are a grid. */
|
|
1136
|
+
display: -webkit-box;
|
|
1137
|
+
-webkit-line-clamp: 2;
|
|
1138
|
+
-webkit-box-orient: vertical;
|
|
1139
|
+
overflow: hidden;
|
|
1140
|
+
}
|
|
1141
|
+
.agno-preview__desc {
|
|
1142
|
+
color: var(--agno-muted);
|
|
1143
|
+
font-size: 0.75rem;
|
|
1144
|
+
line-height: 1.0625rem;
|
|
1145
|
+
display: -webkit-box;
|
|
1146
|
+
-webkit-line-clamp: 3;
|
|
1147
|
+
-webkit-box-orient: vertical;
|
|
1148
|
+
overflow: hidden;
|
|
1149
|
+
}
|
|
1150
|
+
.agno-preview__image {
|
|
1151
|
+
margin-top: 6px;
|
|
1152
|
+
width: 100%;
|
|
1153
|
+
aspect-ratio: 1.91;
|
|
1154
|
+
object-fit: cover;
|
|
1155
|
+
border-radius: var(--agno-radius-sm);
|
|
1156
|
+
}
|
|
1157
|
+
.agno-preview[data-loading='true'] .agno-preview__title {
|
|
1158
|
+
opacity: 0.6;
|
|
1159
|
+
}
|
|
1160
|
+
|
|
1161
|
+
.agno-favicon {
|
|
1162
|
+
flex: 0 0 14px;
|
|
1163
|
+
width: 14px;
|
|
1164
|
+
height: 14px;
|
|
1165
|
+
border-radius: var(--agno-radius-xs);
|
|
1166
|
+
object-fit: contain;
|
|
1167
|
+
}
|
|
1168
|
+
.agno-favicon--glyph {
|
|
1169
|
+
display: grid;
|
|
1170
|
+
place-items: center;
|
|
1171
|
+
color: var(--agno-muted);
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1174
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
1175
|
+
Inline citation markers + the hover card
|
|
1176
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
1177
|
+
|
|
1178
|
+
.agno-hover {
|
|
1179
|
+
/* The card is portalled to <body>, so this only has to hold the trigger. */
|
|
1180
|
+
display: inline;
|
|
1181
|
+
}
|
|
1182
|
+
.agno-cite {
|
|
1183
|
+
display: inline-grid;
|
|
1184
|
+
place-items: center;
|
|
1185
|
+
min-width: 16px;
|
|
1186
|
+
height: 16px;
|
|
1187
|
+
margin: 0 1px 0 2px;
|
|
1188
|
+
padding: 0 4px;
|
|
1189
|
+
border-radius: var(--agno-radius-full);
|
|
1190
|
+
background: var(--agno-tint);
|
|
1191
|
+
color: var(--agno-muted);
|
|
1192
|
+
font-size: 0.625rem;
|
|
1193
|
+
font-variant-numeric: tabular-nums;
|
|
1194
|
+
line-height: 1;
|
|
1195
|
+
text-decoration: none;
|
|
1196
|
+
vertical-align: 2px;
|
|
1197
|
+
transition: background 0.15s ease, color 0.15s ease;
|
|
1198
|
+
}
|
|
1199
|
+
.agno-md a.agno-cite {
|
|
1200
|
+
color: var(--agno-muted);
|
|
1201
|
+
}
|
|
1202
|
+
.agno-cite:hover,
|
|
1203
|
+
.agno-cite:focus-visible {
|
|
1204
|
+
background: var(--agno-tint-strong);
|
|
1205
|
+
color: var(--agno-primary);
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1208
|
+
.agno-hovercard {
|
|
1209
|
+
position: fixed;
|
|
1210
|
+
z-index: 2147483000;
|
|
1211
|
+
padding: 12px;
|
|
1212
|
+
border: 1px solid var(--agno-border);
|
|
1213
|
+
border-radius: var(--agno-radius-lg);
|
|
1214
|
+
background: var(--agno-bg);
|
|
1215
|
+
box-shadow: var(--agno-shadow-panel);
|
|
1216
|
+
color: var(--agno-primary);
|
|
1217
|
+
font-family: var(--agno-font);
|
|
1218
|
+
animation: agno-hovercard-in 0.12s ease-out;
|
|
1219
|
+
}
|
|
1220
|
+
/* Positioned by its top edge either way; anchoring above means lifting the
|
|
1221
|
+
card by its own height, which only CSS knows. */
|
|
1222
|
+
.agno-hovercard--top {
|
|
1223
|
+
transform: translateY(-100%);
|
|
1224
|
+
}
|
|
1225
|
+
@keyframes agno-hovercard-in {
|
|
1226
|
+
from {
|
|
1227
|
+
opacity: 0;
|
|
1228
|
+
}
|
|
1229
|
+
to {
|
|
1230
|
+
opacity: 1;
|
|
1231
|
+
}
|
|
1232
|
+
}
|
|
1233
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1234
|
+
.agno-hovercard {
|
|
1235
|
+
animation: none;
|
|
1236
|
+
}
|
|
1237
|
+
}
|
|
1238
|
+
|
|
1239
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
1240
|
+
Workflow steps + member responses
|
|
1241
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
1242
|
+
|
|
470
1243
|
.agno-steps,
|
|
471
1244
|
.agno-members {
|
|
472
1245
|
display: flex;
|
|
473
1246
|
flex-direction: column;
|
|
474
|
-
gap:
|
|
1247
|
+
gap: 8px;
|
|
475
1248
|
}
|
|
476
1249
|
.agno-steps__title,
|
|
477
1250
|
.agno-members__title {
|
|
478
|
-
font-size: 11px;
|
|
479
|
-
text-transform: uppercase;
|
|
480
|
-
letter-spacing: 0.05em;
|
|
481
1251
|
color: var(--agno-muted);
|
|
1252
|
+
font-family: var(--agno-font-mono);
|
|
1253
|
+
font-size: 0.75rem;
|
|
1254
|
+
letter-spacing: 0.02em;
|
|
1255
|
+
text-transform: uppercase;
|
|
482
1256
|
}
|
|
483
1257
|
.agno-steps__list {
|
|
484
1258
|
display: flex;
|
|
485
1259
|
flex-direction: column;
|
|
486
|
-
|
|
1260
|
+
gap: 6px;
|
|
487
1261
|
}
|
|
488
|
-
.agno-step
|
|
489
|
-
|
|
490
|
-
border-radius: var(--agno-radius-
|
|
491
|
-
background: var(--agno-
|
|
492
|
-
|
|
1262
|
+
.agno-step,
|
|
1263
|
+
.agno-member {
|
|
1264
|
+
border-radius: var(--agno-radius-md);
|
|
1265
|
+
background: var(--agno-secondary-soft);
|
|
1266
|
+
overflow: hidden;
|
|
493
1267
|
}
|
|
494
|
-
.agno-step__head
|
|
1268
|
+
.agno-step__head,
|
|
1269
|
+
.agno-member__head {
|
|
495
1270
|
width: 100%;
|
|
496
1271
|
display: flex;
|
|
497
1272
|
align-items: center;
|
|
498
|
-
gap:
|
|
499
|
-
padding:
|
|
1273
|
+
gap: 8px;
|
|
1274
|
+
padding: 10px 12px;
|
|
500
1275
|
background: none;
|
|
501
1276
|
border: none;
|
|
502
1277
|
color: inherit;
|
|
@@ -505,79 +1280,53 @@
|
|
|
505
1280
|
text-align: left;
|
|
506
1281
|
}
|
|
507
1282
|
.agno-step__icon {
|
|
1283
|
+
flex: 0 0 18px;
|
|
508
1284
|
width: 18px;
|
|
509
1285
|
height: 18px;
|
|
510
|
-
|
|
511
|
-
border-radius: 50%;
|
|
1286
|
+
border-radius: var(--agno-radius-full);
|
|
512
1287
|
display: grid;
|
|
513
1288
|
place-items: center;
|
|
514
1289
|
font-size: 11px;
|
|
515
|
-
background: var(--agno-
|
|
1290
|
+
background: var(--agno-tint);
|
|
516
1291
|
color: var(--agno-muted);
|
|
517
1292
|
}
|
|
518
1293
|
.agno-step__icon--completed {
|
|
519
|
-
background: rgba(
|
|
1294
|
+
background: rgba(var(--color-positive), 0.15);
|
|
520
1295
|
color: var(--agno-positive);
|
|
521
1296
|
}
|
|
522
1297
|
.agno-step__icon--running {
|
|
523
1298
|
background: var(--agno-brand-soft);
|
|
524
1299
|
color: var(--agno-brand);
|
|
525
|
-
animation: agno-pulse 1.4s ease-in-out infinite;
|
|
526
1300
|
}
|
|
527
1301
|
.agno-step__icon--error {
|
|
528
|
-
background: rgba(
|
|
529
|
-
color: var(--agno-
|
|
1302
|
+
background: rgba(var(--color-destructive), 0.15);
|
|
1303
|
+
color: var(--agno-destructive);
|
|
530
1304
|
}
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
opacity: 1;
|
|
534
|
-
}
|
|
535
|
-
50% {
|
|
536
|
-
opacity: 0.4;
|
|
537
|
-
}
|
|
538
|
-
}
|
|
539
|
-
.agno-step__name {
|
|
1305
|
+
.agno-step__name,
|
|
1306
|
+
.agno-member__name {
|
|
540
1307
|
font-weight: 500;
|
|
541
|
-
font-size: 13px;
|
|
542
1308
|
}
|
|
543
|
-
.agno-step__chev
|
|
1309
|
+
.agno-step__chev,
|
|
1310
|
+
.agno-member__chev {
|
|
544
1311
|
margin-left: auto;
|
|
545
|
-
font-size: 9px;
|
|
546
1312
|
color: var(--agno-muted);
|
|
1313
|
+
transition: transform 0.2s ease;
|
|
547
1314
|
}
|
|
548
|
-
.agno-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
}
|
|
552
|
-
.agno-
|
|
553
|
-
|
|
554
|
-
}
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
.agno-member {
|
|
558
|
-
border: 1px solid var(--agno-border);
|
|
559
|
-
border-radius: var(--agno-radius-sm);
|
|
560
|
-
background: var(--agno-surface);
|
|
561
|
-
overflow: hidden;
|
|
562
|
-
}
|
|
563
|
-
.agno-member__head {
|
|
564
|
-
width: 100%;
|
|
565
|
-
display: flex;
|
|
566
|
-
align-items: center;
|
|
567
|
-
gap: 8px;
|
|
568
|
-
padding: 8px 11px;
|
|
569
|
-
background: none;
|
|
570
|
-
border: none;
|
|
571
|
-
color: inherit;
|
|
572
|
-
cursor: pointer;
|
|
573
|
-
font: inherit;
|
|
574
|
-
text-align: left;
|
|
1315
|
+
.agno-step__head[aria-expanded='true'] .agno-step__chev,
|
|
1316
|
+
.agno-member__head[aria-expanded='true'] .agno-member__chev {
|
|
1317
|
+
transform: rotate(180deg);
|
|
1318
|
+
}
|
|
1319
|
+
.agno-step__body {
|
|
1320
|
+
padding: 0 12px 12px 38px;
|
|
1321
|
+
}
|
|
1322
|
+
.agno-step__error {
|
|
1323
|
+
color: var(--agno-destructive);
|
|
575
1324
|
}
|
|
576
1325
|
.agno-member__dot {
|
|
1326
|
+
flex: 0 0 8px;
|
|
577
1327
|
width: 8px;
|
|
578
1328
|
height: 8px;
|
|
579
|
-
|
|
580
|
-
border-radius: 50%;
|
|
1329
|
+
border-radius: var(--agno-radius-full);
|
|
581
1330
|
background: var(--agno-muted);
|
|
582
1331
|
}
|
|
583
1332
|
.agno-member__dot--running {
|
|
@@ -588,36 +1337,35 @@
|
|
|
588
1337
|
background: var(--agno-positive);
|
|
589
1338
|
}
|
|
590
1339
|
.agno-member__dot--error {
|
|
591
|
-
background: var(--agno-
|
|
1340
|
+
background: var(--agno-destructive);
|
|
592
1341
|
}
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
1342
|
+
@keyframes agno-pulse {
|
|
1343
|
+
0%,
|
|
1344
|
+
100% {
|
|
1345
|
+
opacity: 1;
|
|
1346
|
+
}
|
|
1347
|
+
50% {
|
|
1348
|
+
opacity: 0.4;
|
|
1349
|
+
}
|
|
596
1350
|
}
|
|
597
1351
|
.agno-member__kind {
|
|
598
|
-
font-size: 10.5px;
|
|
599
1352
|
color: var(--agno-muted);
|
|
1353
|
+
font-family: var(--agno-font-mono);
|
|
1354
|
+
font-size: 0.75rem;
|
|
1355
|
+
letter-spacing: 0.02em;
|
|
600
1356
|
text-transform: uppercase;
|
|
601
|
-
letter-spacing: 0.04em;
|
|
602
|
-
}
|
|
603
|
-
.agno-member__chev {
|
|
604
|
-
margin-left: auto;
|
|
605
|
-
font-size: 9px;
|
|
606
|
-
color: var(--agno-muted);
|
|
607
1357
|
}
|
|
608
1358
|
.agno-member__body {
|
|
609
|
-
padding: 0
|
|
610
|
-
border-top: 1px solid var(--agno-border);
|
|
1359
|
+
padding: 0 12px 12px;
|
|
611
1360
|
display: flex;
|
|
612
1361
|
flex-direction: column;
|
|
613
|
-
gap:
|
|
614
|
-
padding-top: 10px;
|
|
615
|
-
}
|
|
616
|
-
.agno-member__content {
|
|
617
|
-
font-size: 13.5px;
|
|
1362
|
+
gap: 12px;
|
|
618
1363
|
}
|
|
619
1364
|
|
|
620
|
-
/*
|
|
1365
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
1366
|
+
Media
|
|
1367
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
1368
|
+
|
|
621
1369
|
.agno-media {
|
|
622
1370
|
display: flex;
|
|
623
1371
|
flex-wrap: wrap;
|
|
@@ -626,63 +1374,219 @@
|
|
|
626
1374
|
.agno-media__img,
|
|
627
1375
|
.agno-media__video {
|
|
628
1376
|
max-width: 100%;
|
|
629
|
-
border-radius: var(--agno-radius-
|
|
1377
|
+
border-radius: var(--agno-radius-md);
|
|
630
1378
|
border: 1px solid var(--agno-border);
|
|
631
1379
|
}
|
|
632
1380
|
.agno-media__audio {
|
|
633
1381
|
width: 100%;
|
|
634
1382
|
}
|
|
635
1383
|
|
|
636
|
-
/*
|
|
1384
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
1385
|
+
Status + loader (ported from agno-os DiagonalGridLoader)
|
|
1386
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
1387
|
+
|
|
637
1388
|
.agno-status {
|
|
638
1389
|
display: flex;
|
|
639
1390
|
align-items: center;
|
|
640
|
-
gap:
|
|
1391
|
+
gap: 8px;
|
|
641
1392
|
color: var(--agno-muted);
|
|
642
|
-
|
|
643
|
-
padding-left: 42px;
|
|
644
|
-
}
|
|
645
|
-
.agno-status__dots {
|
|
646
|
-
display: inline-flex;
|
|
647
|
-
gap: 3px;
|
|
648
|
-
}
|
|
649
|
-
.agno-status__dots span {
|
|
650
|
-
width: 6px;
|
|
651
|
-
height: 6px;
|
|
652
|
-
border-radius: 50%;
|
|
653
|
-
background: var(--agno-brand);
|
|
654
|
-
animation: agno-bounce 1.2s infinite ease-in-out;
|
|
1393
|
+
padding-left: 40px;
|
|
655
1394
|
}
|
|
656
|
-
|
|
657
|
-
|
|
1395
|
+
|
|
1396
|
+
.agno-loader {
|
|
1397
|
+
display: grid;
|
|
1398
|
+
place-items: center;
|
|
1399
|
+
flex-shrink: 0;
|
|
1400
|
+
width: 14px;
|
|
1401
|
+
height: 14px;
|
|
1402
|
+
color: currentColor;
|
|
658
1403
|
}
|
|
659
|
-
|
|
660
|
-
|
|
1404
|
+
|
|
1405
|
+
/* Grid loader — copied from agno-os DiagonalGridLoader.css */
|
|
1406
|
+
.agno-loader__dot {
|
|
1407
|
+
color: currentColor;
|
|
1408
|
+
box-shadow:
|
|
1409
|
+
var(--gap) calc(-1 * var(--gap)) 0 0px,
|
|
1410
|
+
calc(2 * var(--gap)) calc(-1 * var(--gap)) 0 0px,
|
|
1411
|
+
calc(3 * var(--gap)) calc(-1 * var(--gap)) 0 0px,
|
|
1412
|
+
var(--gap) 0 0 0px,
|
|
1413
|
+
calc(2 * var(--gap)) 0 0 0px,
|
|
1414
|
+
calc(3 * var(--gap)) 0 0 0px,
|
|
1415
|
+
var(--gap) var(--gap) 0 0px,
|
|
1416
|
+
calc(2 * var(--gap)) var(--gap) 0 0px,
|
|
1417
|
+
calc(3 * var(--gap)) var(--gap) 0 0px;
|
|
1418
|
+
transform: translateX(calc(-2 * var(--gap)));
|
|
1419
|
+
animation: agno-grid-loader 2s infinite linear;
|
|
661
1420
|
}
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
1421
|
+
|
|
1422
|
+
@keyframes agno-grid-loader {
|
|
1423
|
+
0% {
|
|
1424
|
+
box-shadow:
|
|
1425
|
+
var(--gap) calc(-1 * var(--gap)) 0 0px,
|
|
1426
|
+
calc(2 * var(--gap)) calc(-1 * var(--gap)) 0 0px,
|
|
1427
|
+
calc(3 * var(--gap)) calc(-1 * var(--gap)) 0 0px,
|
|
1428
|
+
var(--gap) 0 0 0px,
|
|
1429
|
+
calc(2 * var(--gap)) 0 0 0px,
|
|
1430
|
+
calc(3 * var(--gap)) 0 0 0px,
|
|
1431
|
+
var(--gap) var(--gap) 0 0px,
|
|
1432
|
+
calc(2 * var(--gap)) var(--gap) 0 0px,
|
|
1433
|
+
calc(3 * var(--gap)) var(--gap) 0 0px;
|
|
666
1434
|
}
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
1435
|
+
|
|
1436
|
+
12.5% {
|
|
1437
|
+
box-shadow:
|
|
1438
|
+
var(--gap) calc(-1 * var(--gap)) 0 0px,
|
|
1439
|
+
calc(2 * var(--gap)) calc(-1 * var(--gap)) 0 0px,
|
|
1440
|
+
calc(3 * var(--gap)) calc(-1 * var(--gap)) 0 0px
|
|
1441
|
+
color-mix(in srgb, currentColor 20%, transparent),
|
|
1442
|
+
var(--gap) 0 0 0px color-mix(in srgb, currentColor 20%, transparent),
|
|
1443
|
+
calc(2 * var(--gap)) 0 0 0px,
|
|
1444
|
+
calc(3 * var(--gap)) 0 0 0px
|
|
1445
|
+
color-mix(in srgb, currentColor 20%, transparent),
|
|
1446
|
+
var(--gap) var(--gap) 0 0px,
|
|
1447
|
+
calc(2 * var(--gap)) var(--gap) 0 0px,
|
|
1448
|
+
calc(3 * var(--gap)) var(--gap) 0 0px;
|
|
1449
|
+
}
|
|
1450
|
+
|
|
1451
|
+
25% {
|
|
1452
|
+
box-shadow:
|
|
1453
|
+
var(--gap) calc(-1 * var(--gap)) 0 0px
|
|
1454
|
+
color-mix(in srgb, currentColor 20%, transparent),
|
|
1455
|
+
calc(2 * var(--gap)) calc(-1 * var(--gap)) 0 0px,
|
|
1456
|
+
calc(3 * var(--gap)) calc(-1 * var(--gap)) 0 0px
|
|
1457
|
+
color-mix(in srgb, currentColor 20%, transparent),
|
|
1458
|
+
var(--gap) 0 0 0px,
|
|
1459
|
+
calc(2 * var(--gap)) 0 0 0px,
|
|
1460
|
+
calc(3 * var(--gap)) 0 0 0px,
|
|
1461
|
+
var(--gap) var(--gap) 0 0px,
|
|
1462
|
+
calc(2 * var(--gap)) var(--gap) 0 0px
|
|
1463
|
+
color-mix(in srgb, currentColor 20%, transparent),
|
|
1464
|
+
calc(3 * var(--gap)) var(--gap) 0 0px;
|
|
1465
|
+
}
|
|
1466
|
+
|
|
1467
|
+
37.5% {
|
|
1468
|
+
box-shadow:
|
|
1469
|
+
var(--gap) calc(-1 * var(--gap)) 0 0px,
|
|
1470
|
+
calc(2 * var(--gap)) calc(-1 * var(--gap)) 0 0px
|
|
1471
|
+
color-mix(in srgb, currentColor 20%, transparent),
|
|
1472
|
+
calc(3 * var(--gap)) calc(-1 * var(--gap)) 0 0px,
|
|
1473
|
+
var(--gap) 0 0 0px,
|
|
1474
|
+
calc(2 * var(--gap)) 0 0 0px,
|
|
1475
|
+
calc(3 * var(--gap)) 0 0 0px,
|
|
1476
|
+
var(--gap) var(--gap) 0 0px
|
|
1477
|
+
color-mix(in srgb, currentColor 20%, transparent),
|
|
1478
|
+
calc(2 * var(--gap)) var(--gap) 0 0px,
|
|
1479
|
+
calc(3 * var(--gap)) var(--gap) 0 0px;
|
|
1480
|
+
}
|
|
1481
|
+
|
|
1482
|
+
50% {
|
|
1483
|
+
box-shadow:
|
|
1484
|
+
var(--gap) calc(-1 * var(--gap)) 0 0px
|
|
1485
|
+
color-mix(in srgb, currentColor 20%, transparent),
|
|
1486
|
+
calc(2 * var(--gap)) calc(-1 * var(--gap)) 0 0px
|
|
1487
|
+
color-mix(in srgb, currentColor 20%, transparent),
|
|
1488
|
+
calc(3 * var(--gap)) calc(-1 * var(--gap)) 0 0px,
|
|
1489
|
+
var(--gap) 0 0 0px,
|
|
1490
|
+
calc(2 * var(--gap)) 0 0 0px,
|
|
1491
|
+
calc(3 * var(--gap)) 0 0 0px,
|
|
1492
|
+
var(--gap) var(--gap) 0 0px,
|
|
1493
|
+
calc(2 * var(--gap)) var(--gap) 0 0px,
|
|
1494
|
+
calc(3 * var(--gap)) var(--gap) 0 0px
|
|
1495
|
+
color-mix(in srgb, currentColor 20%, transparent);
|
|
1496
|
+
}
|
|
1497
|
+
|
|
1498
|
+
62.5% {
|
|
1499
|
+
box-shadow:
|
|
1500
|
+
var(--gap) calc(-1 * var(--gap)) 0 0px,
|
|
1501
|
+
calc(2 * var(--gap)) calc(-1 * var(--gap)) 0 0px,
|
|
1502
|
+
calc(3 * var(--gap)) calc(-1 * var(--gap)) 0 0px,
|
|
1503
|
+
var(--gap) 0 0 0px color-mix(in srgb, currentColor 20%, transparent),
|
|
1504
|
+
calc(2 * var(--gap)) 0 0 0px,
|
|
1505
|
+
calc(3 * var(--gap)) 0 0 0px,
|
|
1506
|
+
var(--gap) var(--gap) 0 0px,
|
|
1507
|
+
calc(2 * var(--gap)) var(--gap) 0 0px
|
|
1508
|
+
color-mix(in srgb, currentColor 20%, transparent),
|
|
1509
|
+
calc(3 * var(--gap)) var(--gap) 0 0px
|
|
1510
|
+
color-mix(in srgb, currentColor 20%, transparent);
|
|
1511
|
+
}
|
|
1512
|
+
|
|
1513
|
+
75% {
|
|
1514
|
+
box-shadow:
|
|
1515
|
+
var(--gap) calc(-1 * var(--gap)) 0 0px,
|
|
1516
|
+
calc(2 * var(--gap)) calc(-1 * var(--gap)) 0 0px
|
|
1517
|
+
color-mix(in srgb, currentColor 20%, transparent),
|
|
1518
|
+
calc(3 * var(--gap)) calc(-1 * var(--gap)) 0 0px,
|
|
1519
|
+
var(--gap) 0 0 0px,
|
|
1520
|
+
calc(2 * var(--gap)) 0 0 0px,
|
|
1521
|
+
calc(3 * var(--gap)) 0 0 0px
|
|
1522
|
+
color-mix(in srgb, currentColor 20%, transparent),
|
|
1523
|
+
var(--gap) var(--gap) 0 0px,
|
|
1524
|
+
calc(2 * var(--gap)) var(--gap) 0 0px,
|
|
1525
|
+
calc(3 * var(--gap)) var(--gap) 0 0px
|
|
1526
|
+
color-mix(in srgb, currentColor 20%, transparent);
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
87.5% {
|
|
1530
|
+
box-shadow:
|
|
1531
|
+
var(--gap) calc(-1 * var(--gap)) 0 0px,
|
|
1532
|
+
calc(2 * var(--gap)) calc(-1 * var(--gap)) 0 0px
|
|
1533
|
+
color-mix(in srgb, currentColor 20%, transparent),
|
|
1534
|
+
calc(3 * var(--gap)) calc(-1 * var(--gap)) 0 0px,
|
|
1535
|
+
var(--gap) 0 0 0px,
|
|
1536
|
+
calc(2 * var(--gap)) 0 0 0px
|
|
1537
|
+
color-mix(in srgb, currentColor 20%, transparent),
|
|
1538
|
+
calc(3 * var(--gap)) 0 0 0px,
|
|
1539
|
+
var(--gap) var(--gap) 0 0px
|
|
1540
|
+
color-mix(in srgb, currentColor 20%, transparent),
|
|
1541
|
+
calc(2 * var(--gap)) var(--gap) 0 0px,
|
|
1542
|
+
calc(3 * var(--gap)) var(--gap) 0 0px;
|
|
670
1543
|
}
|
|
1544
|
+
|
|
1545
|
+
100% {
|
|
1546
|
+
box-shadow:
|
|
1547
|
+
var(--gap) calc(-1 * var(--gap)) 0 0px,
|
|
1548
|
+
calc(2 * var(--gap)) calc(-1 * var(--gap)) 0 0px,
|
|
1549
|
+
calc(3 * var(--gap)) calc(-1 * var(--gap)) 0 0px,
|
|
1550
|
+
var(--gap) 0 0 0px,
|
|
1551
|
+
calc(2 * var(--gap)) 0 0 0px,
|
|
1552
|
+
calc(3 * var(--gap)) 0 0 0px,
|
|
1553
|
+
var(--gap) var(--gap) 0 0px,
|
|
1554
|
+
calc(2 * var(--gap)) var(--gap) 0 0px,
|
|
1555
|
+
calc(3 * var(--gap)) var(--gap) 0 0px;
|
|
1556
|
+
}
|
|
1557
|
+
}
|
|
1558
|
+
|
|
1559
|
+
/* Loader sizing — agno-os sets these inline; the defaults match its `default` size. */
|
|
1560
|
+
.agno-loader__dot {
|
|
1561
|
+
--dot-size: 2px;
|
|
1562
|
+
--gap: 6px;
|
|
1563
|
+
width: 2px;
|
|
1564
|
+
height: 2px;
|
|
1565
|
+
aspect-ratio: 1;
|
|
1566
|
+
border-radius: 0.5px;
|
|
671
1567
|
}
|
|
672
1568
|
|
|
673
|
-
/*
|
|
1569
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
1570
|
+
Human in the loop
|
|
1571
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
1572
|
+
|
|
674
1573
|
.agno-hitl {
|
|
675
1574
|
display: flex;
|
|
676
1575
|
flex-direction: column;
|
|
677
|
-
gap:
|
|
678
|
-
|
|
1576
|
+
gap: 12px;
|
|
1577
|
+
width: 100%;
|
|
1578
|
+
max-width: 800px;
|
|
1579
|
+
margin: 0 auto;
|
|
679
1580
|
}
|
|
680
1581
|
.agno-hitl__title {
|
|
681
1582
|
display: flex;
|
|
682
1583
|
align-items: center;
|
|
683
|
-
gap:
|
|
684
|
-
|
|
685
|
-
font-
|
|
1584
|
+
gap: 8px;
|
|
1585
|
+
color: var(--agno-muted);
|
|
1586
|
+
font-family: var(--agno-font-mono);
|
|
1587
|
+
font-size: 0.75rem;
|
|
1588
|
+
letter-spacing: 0.02em;
|
|
1589
|
+
text-transform: uppercase;
|
|
686
1590
|
}
|
|
687
1591
|
.agno-hitl__actions {
|
|
688
1592
|
display: flex;
|
|
@@ -694,9 +1598,8 @@
|
|
|
694
1598
|
flex-direction: column;
|
|
695
1599
|
gap: 12px;
|
|
696
1600
|
padding: 12px;
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
border-radius: var(--agno-radius);
|
|
1601
|
+
border-radius: var(--agno-radius-md);
|
|
1602
|
+
background: var(--agno-secondary-soft);
|
|
700
1603
|
}
|
|
701
1604
|
.agno-hitl-card__head {
|
|
702
1605
|
display: flex;
|
|
@@ -707,48 +1610,41 @@
|
|
|
707
1610
|
.agno-hitl-card__tool {
|
|
708
1611
|
display: flex;
|
|
709
1612
|
align-items: center;
|
|
710
|
-
gap:
|
|
711
|
-
font-family: 'DM Mono', ui-monospace, monospace;
|
|
712
|
-
font-size: 12px;
|
|
713
|
-
text-transform: uppercase;
|
|
714
|
-
letter-spacing: 0.03em;
|
|
1613
|
+
gap: 8px;
|
|
715
1614
|
color: var(--agno-muted);
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
1615
|
+
font-family: var(--agno-font-mono);
|
|
1616
|
+
font-size: 0.75rem;
|
|
1617
|
+
letter-spacing: 0.02em;
|
|
1618
|
+
text-transform: uppercase;
|
|
719
1619
|
}
|
|
720
1620
|
.agno-hitl-card__choices {
|
|
721
1621
|
display: flex;
|
|
722
1622
|
gap: 6px;
|
|
723
1623
|
}
|
|
724
1624
|
.agno-hitl-card__choice {
|
|
725
|
-
width: 26px;
|
|
726
|
-
height: 26px;
|
|
727
1625
|
display: grid;
|
|
728
1626
|
place-items: center;
|
|
729
|
-
|
|
1627
|
+
width: 24px;
|
|
1628
|
+
height: 24px;
|
|
1629
|
+
border-radius: var(--agno-radius-sm);
|
|
730
1630
|
border: 1px solid var(--agno-border);
|
|
731
|
-
background:
|
|
1631
|
+
background: transparent;
|
|
732
1632
|
color: var(--agno-muted);
|
|
733
1633
|
cursor: pointer;
|
|
734
|
-
font-size: 12px;
|
|
735
1634
|
}
|
|
736
1635
|
.agno-hitl-card__choice:hover:not(:disabled) {
|
|
737
|
-
border-color: var(--agno-border-
|
|
738
|
-
color: var(--agno-
|
|
1636
|
+
border-color: var(--agno-border-selected);
|
|
1637
|
+
color: var(--agno-primary);
|
|
739
1638
|
}
|
|
740
1639
|
.agno-hitl-card__choice.is-active.is-confirm {
|
|
741
1640
|
border-color: var(--agno-positive);
|
|
742
1641
|
color: var(--agno-positive);
|
|
743
|
-
box-shadow: 0 0 0 1px var(--agno-positive);
|
|
744
1642
|
}
|
|
745
1643
|
.agno-hitl-card__choice.is-active.is-reject {
|
|
746
|
-
border-color: var(--agno-
|
|
747
|
-
color: var(--agno-
|
|
748
|
-
box-shadow: 0 0 0 1px var(--agno-error);
|
|
1644
|
+
border-color: var(--agno-destructive);
|
|
1645
|
+
color: var(--agno-destructive);
|
|
749
1646
|
}
|
|
750
1647
|
.agno-hitl-card__args {
|
|
751
|
-
border: 1px solid var(--agno-border);
|
|
752
1648
|
border-radius: var(--agno-radius-sm);
|
|
753
1649
|
background: var(--agno-bg);
|
|
754
1650
|
}
|
|
@@ -757,60 +1653,69 @@
|
|
|
757
1653
|
display: flex;
|
|
758
1654
|
align-items: center;
|
|
759
1655
|
justify-content: space-between;
|
|
760
|
-
|
|
1656
|
+
gap: 8px;
|
|
1657
|
+
padding: 8px 10px;
|
|
761
1658
|
background: none;
|
|
762
1659
|
border: none;
|
|
763
1660
|
color: var(--agno-muted);
|
|
764
1661
|
cursor: pointer;
|
|
765
|
-
font:
|
|
766
|
-
font-size:
|
|
1662
|
+
font-family: var(--agno-font-mono);
|
|
1663
|
+
font-size: 0.75rem;
|
|
1664
|
+
letter-spacing: 0.02em;
|
|
767
1665
|
text-transform: uppercase;
|
|
768
|
-
|
|
1666
|
+
}
|
|
1667
|
+
.agno-hitl-card__args-head[aria-expanded='true'] .agno-hitl-card__chev {
|
|
1668
|
+
transform: rotate(180deg);
|
|
769
1669
|
}
|
|
770
1670
|
.agno-hitl-card__chev {
|
|
771
|
-
|
|
1671
|
+
transition: transform 0.2s ease;
|
|
772
1672
|
}
|
|
773
1673
|
.agno-hitl-card__args-body {
|
|
774
|
-
padding: 0 10px
|
|
1674
|
+
padding: 0 10px 10px;
|
|
775
1675
|
display: flex;
|
|
776
1676
|
flex-direction: column;
|
|
777
1677
|
gap: 4px;
|
|
778
1678
|
}
|
|
779
1679
|
.agno-hitl-card__arg {
|
|
780
1680
|
display: flex;
|
|
781
|
-
gap:
|
|
782
|
-
font-size:
|
|
1681
|
+
gap: 8px;
|
|
1682
|
+
font-size: 0.75rem;
|
|
1683
|
+
line-height: 1.0625rem;
|
|
783
1684
|
}
|
|
784
1685
|
.agno-hitl-card__arg-key {
|
|
785
1686
|
color: var(--agno-muted);
|
|
786
|
-
font-family:
|
|
1687
|
+
font-family: var(--agno-font-mono);
|
|
787
1688
|
}
|
|
788
1689
|
.agno-hitl-card__arg-val {
|
|
789
|
-
color: var(--agno-text);
|
|
790
1690
|
word-break: break-word;
|
|
791
1691
|
}
|
|
792
|
-
.agno-hitl-card__reason
|
|
1692
|
+
.agno-hitl-card__reason,
|
|
1693
|
+
.agno-hitl-card__input {
|
|
793
1694
|
background: var(--agno-bg);
|
|
794
1695
|
border: 1px solid var(--agno-border);
|
|
795
|
-
border-radius: var(--agno-radius-
|
|
796
|
-
padding:
|
|
797
|
-
color: var(--agno-
|
|
1696
|
+
border-radius: var(--agno-radius-md);
|
|
1697
|
+
padding: 9px 11px;
|
|
1698
|
+
color: var(--agno-primary);
|
|
798
1699
|
font: inherit;
|
|
1700
|
+
letter-spacing: -0.02em;
|
|
1701
|
+
}
|
|
1702
|
+
.agno-hitl-card__reason {
|
|
799
1703
|
resize: vertical;
|
|
800
1704
|
}
|
|
801
|
-
.agno-hitl-card__reason:focus
|
|
1705
|
+
.agno-hitl-card__reason:focus,
|
|
1706
|
+
.agno-hitl-card__input:focus {
|
|
802
1707
|
outline: none;
|
|
803
|
-
border-color: var(--agno-border-
|
|
1708
|
+
border-color: var(--agno-border-selected);
|
|
804
1709
|
}
|
|
805
1710
|
.agno-hitl-card__fields {
|
|
806
1711
|
display: flex;
|
|
807
1712
|
flex-direction: column;
|
|
808
|
-
gap:
|
|
1713
|
+
gap: 12px;
|
|
809
1714
|
}
|
|
810
1715
|
.agno-hitl-card__field {
|
|
811
1716
|
display: flex;
|
|
812
1717
|
flex-direction: column;
|
|
813
|
-
gap:
|
|
1718
|
+
gap: 6px;
|
|
814
1719
|
}
|
|
815
1720
|
.agno-hitl-card__field.is-bool {
|
|
816
1721
|
flex-direction: row;
|
|
@@ -818,32 +1723,26 @@
|
|
|
818
1723
|
justify-content: space-between;
|
|
819
1724
|
}
|
|
820
1725
|
.agno-hitl-card__field-name {
|
|
821
|
-
font-size: 11px;
|
|
822
|
-
text-transform: uppercase;
|
|
823
|
-
letter-spacing: 0.03em;
|
|
824
1726
|
color: var(--agno-muted);
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
border-radius: var(--agno-radius-sm);
|
|
830
|
-
padding: 9px 11px;
|
|
831
|
-
color: var(--agno-text);
|
|
832
|
-
font: inherit;
|
|
833
|
-
}
|
|
834
|
-
.agno-hitl-card__input:focus {
|
|
835
|
-
outline: none;
|
|
836
|
-
border-color: var(--agno-brand);
|
|
1727
|
+
font-family: var(--agno-font-mono);
|
|
1728
|
+
font-size: 0.75rem;
|
|
1729
|
+
letter-spacing: 0.02em;
|
|
1730
|
+
text-transform: uppercase;
|
|
837
1731
|
}
|
|
838
1732
|
|
|
839
|
-
/*
|
|
1733
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
1734
|
+
Event log
|
|
1735
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
1736
|
+
|
|
840
1737
|
.agno-eventlog {
|
|
841
1738
|
overflow-y: auto;
|
|
842
1739
|
display: flex;
|
|
843
1740
|
flex-direction: column;
|
|
844
|
-
gap:
|
|
845
|
-
font-
|
|
846
|
-
font-
|
|
1741
|
+
gap: 4px;
|
|
1742
|
+
font-family: var(--agno-font-mono);
|
|
1743
|
+
font-size: 0.75rem;
|
|
1744
|
+
line-height: 1.125rem;
|
|
1745
|
+
letter-spacing: -0.02em;
|
|
847
1746
|
}
|
|
848
1747
|
.agno-eventlog__empty {
|
|
849
1748
|
color: var(--agno-muted);
|
|
@@ -852,20 +1751,16 @@
|
|
|
852
1751
|
display: flex;
|
|
853
1752
|
align-items: baseline;
|
|
854
1753
|
gap: 8px;
|
|
855
|
-
padding:
|
|
856
|
-
border-radius:
|
|
857
|
-
background: var(--agno-
|
|
858
|
-
border: 1px solid var(--agno-border);
|
|
1754
|
+
padding: 5px 8px;
|
|
1755
|
+
border-radius: var(--agno-radius-sm);
|
|
1756
|
+
background: var(--agno-secondary-soft);
|
|
859
1757
|
}
|
|
860
1758
|
.agno-eventlog__name {
|
|
861
|
-
|
|
1759
|
+
text-transform: uppercase;
|
|
1760
|
+
letter-spacing: 0.02em;
|
|
862
1761
|
}
|
|
863
1762
|
.agno-eventlog__count {
|
|
864
|
-
color: var(--agno-
|
|
865
|
-
background: var(--agno-surface-2);
|
|
866
|
-
border-radius: 999px;
|
|
867
|
-
padding: 0 6px;
|
|
868
|
-
font-size: 11px;
|
|
1763
|
+
color: var(--agno-muted);
|
|
869
1764
|
}
|
|
870
1765
|
.agno-eventlog__source {
|
|
871
1766
|
color: var(--agno-muted);
|
|
@@ -879,11 +1774,20 @@
|
|
|
879
1774
|
white-space: nowrap;
|
|
880
1775
|
}
|
|
881
1776
|
|
|
882
|
-
/*
|
|
1777
|
+
/* The per-run feed nested inside a behind-the-scenes step. */
|
|
1778
|
+
.agno-timeline__content .agno-eventlog {
|
|
1779
|
+
margin-top: 4px;
|
|
1780
|
+
padding-right: 4px;
|
|
1781
|
+
}
|
|
1782
|
+
|
|
1783
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
1784
|
+
Sessions
|
|
1785
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
1786
|
+
|
|
883
1787
|
.agno-sessions {
|
|
884
1788
|
display: flex;
|
|
885
1789
|
flex-direction: column;
|
|
886
|
-
gap:
|
|
1790
|
+
gap: 12px;
|
|
887
1791
|
height: 100%;
|
|
888
1792
|
min-height: 0;
|
|
889
1793
|
}
|
|
@@ -893,42 +1797,16 @@
|
|
|
893
1797
|
justify-content: space-between;
|
|
894
1798
|
}
|
|
895
1799
|
.agno-sessions__title {
|
|
896
|
-
font-size: 11px;
|
|
897
|
-
text-transform: uppercase;
|
|
898
|
-
letter-spacing: 0.06em;
|
|
899
1800
|
color: var(--agno-muted);
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
align-items: center;
|
|
904
|
-
justify-content: center;
|
|
905
|
-
gap: 8px;
|
|
906
|
-
width: 100%;
|
|
907
|
-
background: var(--agno-surface);
|
|
908
|
-
border: 1px solid var(--agno-border);
|
|
909
|
-
border-radius: var(--agno-radius);
|
|
910
|
-
color: var(--agno-text);
|
|
911
|
-
padding: 11px 12px;
|
|
912
|
-
cursor: pointer;
|
|
913
|
-
font: inherit;
|
|
914
|
-
font-size: 12px;
|
|
915
|
-
font-weight: 600;
|
|
1801
|
+
font-family: var(--agno-font-mono);
|
|
1802
|
+
font-size: 0.75rem;
|
|
1803
|
+
letter-spacing: 0.02em;
|
|
916
1804
|
text-transform: uppercase;
|
|
917
|
-
letter-spacing: 0.08em;
|
|
918
|
-
transition: border-color 0.12s ease, background 0.12s ease;
|
|
919
|
-
}
|
|
920
|
-
.agno-sessions__new:hover {
|
|
921
|
-
border-color: var(--agno-border-strong);
|
|
922
|
-
background: var(--agno-surface-2);
|
|
923
|
-
}
|
|
924
|
-
.agno-sessions__new span {
|
|
925
|
-
font-size: 15px;
|
|
926
|
-
font-weight: 400;
|
|
927
1805
|
}
|
|
928
1806
|
.agno-sessions__empty {
|
|
929
1807
|
color: var(--agno-muted);
|
|
930
|
-
font-size:
|
|
931
|
-
|
|
1808
|
+
font-size: 0.75rem;
|
|
1809
|
+
line-height: 1.0625rem;
|
|
932
1810
|
}
|
|
933
1811
|
.agno-sessions__list {
|
|
934
1812
|
list-style: none;
|
|
@@ -936,29 +1814,31 @@
|
|
|
936
1814
|
padding: 0;
|
|
937
1815
|
display: flex;
|
|
938
1816
|
flex-direction: column;
|
|
939
|
-
gap:
|
|
1817
|
+
gap: 8px;
|
|
940
1818
|
overflow-y: auto;
|
|
941
1819
|
}
|
|
942
1820
|
.agno-sessions__item {
|
|
943
1821
|
display: flex;
|
|
944
1822
|
align-items: stretch;
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
1823
|
+
/* The list scrolls, so a row must never be squeezed to make others fit —
|
|
1824
|
+
shrinking one cascades into the name's line box and clips its descenders. */
|
|
1825
|
+
flex-shrink: 0;
|
|
1826
|
+
min-height: 3.25rem;
|
|
1827
|
+
border-radius: var(--agno-radius-md);
|
|
1828
|
+
background: var(--agno-secondary-soft);
|
|
949
1829
|
}
|
|
950
1830
|
.agno-sessions__item:hover {
|
|
951
|
-
|
|
1831
|
+
background: var(--agno-secondary);
|
|
952
1832
|
}
|
|
953
1833
|
.agno-sessions__item.is-active {
|
|
954
|
-
background: var(--agno-
|
|
955
|
-
border-color: var(--agno-border-strong);
|
|
1834
|
+
background: var(--agno-secondary);
|
|
956
1835
|
}
|
|
957
1836
|
.agno-sessions__select {
|
|
958
1837
|
flex: 1;
|
|
959
1838
|
min-width: 0;
|
|
960
1839
|
display: flex;
|
|
961
1840
|
flex-direction: column;
|
|
1841
|
+
justify-content: center;
|
|
962
1842
|
gap: 2px;
|
|
963
1843
|
background: none;
|
|
964
1844
|
border: none;
|
|
@@ -966,251 +1846,486 @@
|
|
|
966
1846
|
cursor: pointer;
|
|
967
1847
|
font: inherit;
|
|
968
1848
|
text-align: left;
|
|
969
|
-
padding:
|
|
1849
|
+
padding: 10px 12px;
|
|
970
1850
|
}
|
|
971
1851
|
.agno-sessions__name {
|
|
972
1852
|
white-space: nowrap;
|
|
973
1853
|
overflow: hidden;
|
|
974
1854
|
text-overflow: ellipsis;
|
|
975
|
-
|
|
1855
|
+
/* `overflow: hidden` clips vertically too, so keep the full line box. */
|
|
1856
|
+
flex-shrink: 0;
|
|
976
1857
|
}
|
|
977
1858
|
.agno-sessions__date {
|
|
978
|
-
font-size: 11px;
|
|
979
1859
|
color: var(--agno-muted);
|
|
1860
|
+
font-size: 0.75rem;
|
|
1861
|
+
line-height: 1.0625rem;
|
|
980
1862
|
}
|
|
981
1863
|
.agno-sessions__delete {
|
|
1864
|
+
display: grid;
|
|
1865
|
+
place-items: center;
|
|
982
1866
|
background: none;
|
|
983
1867
|
border: none;
|
|
984
1868
|
color: var(--agno-muted);
|
|
985
1869
|
cursor: pointer;
|
|
986
|
-
padding: 0
|
|
987
|
-
|
|
1870
|
+
padding: 0 12px;
|
|
1871
|
+
opacity: 0;
|
|
1872
|
+
transition: opacity 0.15s ease;
|
|
1873
|
+
}
|
|
1874
|
+
.agno-sessions__item:hover .agno-sessions__delete,
|
|
1875
|
+
.agno-sessions__delete:focus-visible {
|
|
1876
|
+
opacity: 1;
|
|
988
1877
|
}
|
|
989
1878
|
.agno-sessions__delete:hover {
|
|
990
|
-
color: var(--agno-
|
|
1879
|
+
color: var(--agno-destructive);
|
|
1880
|
+
}
|
|
1881
|
+
.agno-sessions__spinner {
|
|
1882
|
+
display: grid;
|
|
1883
|
+
place-items: center;
|
|
1884
|
+
padding: 0 12px;
|
|
1885
|
+
color: var(--agno-muted);
|
|
991
1886
|
}
|
|
992
1887
|
|
|
993
|
-
/*
|
|
1888
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
1889
|
+
Banner + errors
|
|
1890
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
1891
|
+
|
|
994
1892
|
.agno-banner {
|
|
995
|
-
padding:
|
|
1893
|
+
padding: 12px 16px;
|
|
996
1894
|
background: var(--agno-brand-soft);
|
|
997
|
-
border-bottom: 1px solid rgba(
|
|
998
|
-
|
|
999
|
-
|
|
1895
|
+
border-bottom: 1px solid rgba(var(--color-brand-brand), 0.3);
|
|
1896
|
+
font-size: 0.75rem;
|
|
1897
|
+
line-height: 1.0625rem;
|
|
1000
1898
|
}
|
|
1001
1899
|
.agno-banner code {
|
|
1002
|
-
background: var(--agno-
|
|
1900
|
+
background: var(--agno-tint);
|
|
1003
1901
|
padding: 1px 5px;
|
|
1004
|
-
border-radius:
|
|
1005
|
-
font-
|
|
1006
|
-
|
|
1902
|
+
border-radius: var(--agno-radius-xs);
|
|
1903
|
+
font-family: var(--agno-font-mono);
|
|
1904
|
+
}
|
|
1905
|
+
.agno-chat__error {
|
|
1906
|
+
flex: 0 0 auto;
|
|
1907
|
+
width: 100%;
|
|
1908
|
+
max-width: 800px;
|
|
1909
|
+
max-height: 120px;
|
|
1910
|
+
overflow-y: auto;
|
|
1911
|
+
margin: 0 auto;
|
|
1912
|
+
padding: 0 24px 8px;
|
|
1913
|
+
color: var(--agno-destructive);
|
|
1914
|
+
font-size: 0.75rem;
|
|
1915
|
+
line-height: 1.0625rem;
|
|
1007
1916
|
}
|
|
1008
1917
|
|
|
1009
|
-
/*
|
|
1918
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
1919
|
+
Chat input dock
|
|
1920
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
1921
|
+
|
|
1010
1922
|
.agno-input {
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1923
|
+
padding: 8px 24px 12px;
|
|
1924
|
+
}
|
|
1925
|
+
.agno-input__dock {
|
|
1926
|
+
position: relative;
|
|
1927
|
+
width: 100%;
|
|
1928
|
+
max-width: 800px;
|
|
1929
|
+
margin: 0 auto;
|
|
1014
1930
|
display: flex;
|
|
1015
1931
|
flex-direction: column;
|
|
1016
1932
|
gap: 8px;
|
|
1933
|
+
padding: 8px;
|
|
1934
|
+
border: 1px solid var(--agno-border);
|
|
1935
|
+
border-radius: var(--agno-radius-xl);
|
|
1936
|
+
background: var(--agno-accent);
|
|
1937
|
+
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
|
|
1938
|
+
transition: border-color 0.15s ease;
|
|
1939
|
+
}
|
|
1940
|
+
.agno-input[data-dragging='true'] .agno-input__dock {
|
|
1941
|
+
border-color: var(--agno-brand);
|
|
1017
1942
|
}
|
|
1018
|
-
.
|
|
1943
|
+
/* Covers the dock while files are dragged over it. */
|
|
1944
|
+
.agno-input__drop {
|
|
1945
|
+
position: absolute;
|
|
1946
|
+
inset: 0;
|
|
1947
|
+
z-index: 1;
|
|
1019
1948
|
display: flex;
|
|
1020
|
-
|
|
1021
|
-
|
|
1949
|
+
align-items: center;
|
|
1950
|
+
justify-content: center;
|
|
1951
|
+
gap: 8px;
|
|
1952
|
+
border-radius: inherit;
|
|
1953
|
+
background: var(--agno-accent);
|
|
1954
|
+
color: var(--agno-muted);
|
|
1955
|
+
font-size: 0.8125rem;
|
|
1956
|
+
pointer-events: none;
|
|
1957
|
+
}
|
|
1958
|
+
.agno-input__error {
|
|
1959
|
+
margin: 0;
|
|
1960
|
+
padding: 0 4px;
|
|
1961
|
+
color: var(--agno-error);
|
|
1962
|
+
font-size: 0.75rem;
|
|
1963
|
+
line-height: 1.25rem;
|
|
1964
|
+
}
|
|
1965
|
+
/* Attachment previews — the AgentOS upload banner: a count with "clear all",
|
|
1966
|
+
then a scrolling row of bordered thumbnails and typed file cards, fading out
|
|
1967
|
+
at the dock's right edge. */
|
|
1968
|
+
.agno-files {
|
|
1969
|
+
display: flex;
|
|
1970
|
+
flex-direction: column;
|
|
1971
|
+
gap: 8px;
|
|
1972
|
+
}
|
|
1973
|
+
.agno-files__head {
|
|
1974
|
+
display: flex;
|
|
1975
|
+
align-items: center;
|
|
1976
|
+
justify-content: space-between;
|
|
1977
|
+
gap: 8px;
|
|
1022
1978
|
}
|
|
1023
|
-
.agno-
|
|
1979
|
+
.agno-files__count,
|
|
1980
|
+
.agno-files__clear {
|
|
1981
|
+
font-family: var(--agno-font-mono);
|
|
1982
|
+
font-size: 0.75rem;
|
|
1983
|
+
line-height: 1rem;
|
|
1984
|
+
letter-spacing: 0.02em;
|
|
1985
|
+
text-transform: uppercase;
|
|
1986
|
+
white-space: nowrap;
|
|
1987
|
+
}
|
|
1988
|
+
.agno-files__count {
|
|
1989
|
+
color: rgba(var(--color-primary), 0.5);
|
|
1990
|
+
}
|
|
1991
|
+
.agno-files__clear {
|
|
1024
1992
|
display: inline-flex;
|
|
1025
1993
|
align-items: center;
|
|
1026
|
-
gap:
|
|
1027
|
-
|
|
1028
|
-
background:
|
|
1029
|
-
|
|
1030
|
-
|
|
1994
|
+
gap: 8px;
|
|
1995
|
+
border: none;
|
|
1996
|
+
background: none;
|
|
1997
|
+
padding: 0;
|
|
1998
|
+
color: var(--agno-primary);
|
|
1999
|
+
cursor: pointer;
|
|
2000
|
+
}
|
|
2001
|
+
.agno-files__strip {
|
|
2002
|
+
position: relative;
|
|
2003
|
+
}
|
|
2004
|
+
/* Pinned to the strip's edge, above the row, so it holds still while the row
|
|
2005
|
+
scrolls beneath it. */
|
|
2006
|
+
.agno-files__strip::after {
|
|
2007
|
+
content: '';
|
|
2008
|
+
position: absolute;
|
|
2009
|
+
top: 0;
|
|
2010
|
+
right: 0;
|
|
2011
|
+
bottom: 0;
|
|
2012
|
+
width: 32px;
|
|
2013
|
+
pointer-events: none;
|
|
2014
|
+
background: linear-gradient(to right, rgba(var(--color-primary-accent), 0.1), var(--agno-accent));
|
|
2015
|
+
}
|
|
2016
|
+
.agno-files__row {
|
|
2017
|
+
display: flex;
|
|
2018
|
+
align-items: center;
|
|
2019
|
+
gap: 8px;
|
|
2020
|
+
overflow-x: auto;
|
|
2021
|
+
scrollbar-width: none;
|
|
2022
|
+
}
|
|
2023
|
+
.agno-files__row::-webkit-scrollbar {
|
|
2024
|
+
display: none;
|
|
2025
|
+
}
|
|
2026
|
+
/* Every item is a 54px-tall bordered tile; the remove control is a tab folded
|
|
2027
|
+
into its top-right corner, sharing the tile's border. */
|
|
2028
|
+
.agno-file {
|
|
2029
|
+
position: relative;
|
|
2030
|
+
flex: none;
|
|
2031
|
+
display: flex;
|
|
2032
|
+
align-items: center;
|
|
2033
|
+
gap: 8px;
|
|
2034
|
+
height: 54px;
|
|
2035
|
+
overflow: hidden;
|
|
2036
|
+
border: 1px solid var(--agno-border);
|
|
2037
|
+
border-radius: 4px;
|
|
2038
|
+
}
|
|
2039
|
+
.agno-file--image {
|
|
2040
|
+
width: 69px;
|
|
2041
|
+
justify-content: center;
|
|
2042
|
+
}
|
|
2043
|
+
.agno-file--card {
|
|
2044
|
+
width: 166px;
|
|
2045
|
+
padding: 4px 8px;
|
|
2046
|
+
background: var(--agno-bg);
|
|
2047
|
+
}
|
|
2048
|
+
.agno-file__remove {
|
|
2049
|
+
position: absolute;
|
|
2050
|
+
top: -1px;
|
|
2051
|
+
right: -1px;
|
|
2052
|
+
display: grid;
|
|
2053
|
+
place-items: center;
|
|
2054
|
+
padding: 3px 3px 4px 4px;
|
|
2055
|
+
border: 1px solid var(--agno-border);
|
|
2056
|
+
border-top: none;
|
|
2057
|
+
border-right: none;
|
|
2058
|
+
border-radius: 0 0 0 8px;
|
|
2059
|
+
background: var(--agno-secondary);
|
|
2060
|
+
color: var(--agno-primary);
|
|
2061
|
+
cursor: pointer;
|
|
2062
|
+
filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.05));
|
|
2063
|
+
}
|
|
2064
|
+
.agno-file__thumb {
|
|
2065
|
+
display: block;
|
|
2066
|
+
width: 100%;
|
|
2067
|
+
height: 100%;
|
|
2068
|
+
object-fit: cover;
|
|
2069
|
+
}
|
|
2070
|
+
.agno-file__mark {
|
|
2071
|
+
display: grid;
|
|
2072
|
+
place-items: center;
|
|
2073
|
+
flex: none;
|
|
2074
|
+
width: 24px;
|
|
2075
|
+
height: 24px;
|
|
2076
|
+
padding: 4px;
|
|
2077
|
+
border-radius: 6px;
|
|
2078
|
+
background: var(--agno-secondary);
|
|
2079
|
+
color: var(--agno-primary);
|
|
2080
|
+
}
|
|
2081
|
+
.agno-file__meta {
|
|
2082
|
+
display: flex;
|
|
2083
|
+
flex: 1 1 0;
|
|
2084
|
+
flex-direction: column;
|
|
2085
|
+
justify-content: center;
|
|
2086
|
+
gap: 2px;
|
|
2087
|
+
height: 40px;
|
|
2088
|
+
min-width: 0;
|
|
2089
|
+
}
|
|
2090
|
+
.agno-file__name {
|
|
2091
|
+
overflow: hidden;
|
|
2092
|
+
text-overflow: ellipsis;
|
|
2093
|
+
white-space: nowrap;
|
|
2094
|
+
font-size: 0.75rem;
|
|
2095
|
+
line-height: 1.0625rem;
|
|
2096
|
+
letter-spacing: -0.02em;
|
|
2097
|
+
color: var(--agno-primary);
|
|
1031
2098
|
}
|
|
1032
|
-
.agno-
|
|
1033
|
-
|
|
1034
|
-
|
|
2099
|
+
.agno-file__type {
|
|
2100
|
+
overflow: hidden;
|
|
2101
|
+
text-overflow: ellipsis;
|
|
2102
|
+
white-space: nowrap;
|
|
2103
|
+
font-family: var(--agno-font-mono);
|
|
2104
|
+
font-size: 0.75rem;
|
|
2105
|
+
line-height: 1rem;
|
|
2106
|
+
letter-spacing: 0.02em;
|
|
2107
|
+
text-transform: uppercase;
|
|
1035
2108
|
color: var(--agno-muted);
|
|
1036
|
-
cursor: pointer;
|
|
1037
|
-
font-size: 14px;
|
|
1038
2109
|
}
|
|
1039
|
-
.agno-
|
|
2110
|
+
.agno-input__field {
|
|
1040
2111
|
display: flex;
|
|
1041
|
-
align-items: flex-
|
|
1042
|
-
gap: 8px;
|
|
1043
|
-
background: var(--agno-surface);
|
|
1044
|
-
border: 1px solid var(--agno-border);
|
|
2112
|
+
align-items: flex-start;
|
|
1045
2113
|
border-radius: var(--agno-radius-lg);
|
|
1046
|
-
|
|
1047
|
-
}
|
|
1048
|
-
.agno-input__row:focus-within {
|
|
1049
|
-
border-color: var(--agno-border-strong);
|
|
2114
|
+
background: var(--agno-secondary);
|
|
1050
2115
|
}
|
|
1051
2116
|
.agno-input__textarea {
|
|
1052
2117
|
flex: 1;
|
|
2118
|
+
min-width: 0;
|
|
2119
|
+
min-height: 31px;
|
|
2120
|
+
max-height: 213px;
|
|
1053
2121
|
resize: none;
|
|
1054
|
-
|
|
2122
|
+
overflow-y: auto;
|
|
1055
2123
|
background: transparent;
|
|
1056
2124
|
border: none;
|
|
1057
|
-
padding:
|
|
1058
|
-
color: var(--agno-
|
|
2125
|
+
padding: 12px;
|
|
2126
|
+
color: var(--agno-primary);
|
|
1059
2127
|
font: inherit;
|
|
2128
|
+
letter-spacing: -0.02em;
|
|
1060
2129
|
}
|
|
1061
2130
|
.agno-input__textarea::placeholder {
|
|
1062
|
-
color: var(--
|
|
2131
|
+
color: rgba(var(--color-muted), 0.5);
|
|
1063
2132
|
}
|
|
1064
2133
|
.agno-input__textarea:focus {
|
|
1065
2134
|
outline: none;
|
|
1066
2135
|
}
|
|
1067
|
-
.agno-
|
|
2136
|
+
.agno-input__textarea:disabled {
|
|
2137
|
+
cursor: not-allowed;
|
|
2138
|
+
opacity: 0.5;
|
|
2139
|
+
}
|
|
2140
|
+
.agno-input__row {
|
|
2141
|
+
display: flex;
|
|
2142
|
+
align-items: center;
|
|
2143
|
+
justify-content: space-between;
|
|
2144
|
+
gap: 8px;
|
|
2145
|
+
}
|
|
2146
|
+
.agno-input__actions {
|
|
2147
|
+
display: flex;
|
|
2148
|
+
align-items: center;
|
|
2149
|
+
gap: 8px;
|
|
2150
|
+
}
|
|
2151
|
+
|
|
2152
|
+
/* Compact: one row, the field with the controls beside it — the Figma
|
|
2153
|
+
"Textarea" component (8px padding, 12px gap, 24px field and buttons). */
|
|
2154
|
+
.agno-input--compact .agno-input__dock {
|
|
2155
|
+
gap: 8px;
|
|
2156
|
+
border-radius: var(--agno-radius-lg);
|
|
2157
|
+
box-shadow: none;
|
|
2158
|
+
}
|
|
2159
|
+
.agno-input--compact .agno-input__row {
|
|
2160
|
+
align-items: flex-end;
|
|
2161
|
+
gap: 12px;
|
|
2162
|
+
}
|
|
2163
|
+
.agno-input--compact .agno-input__field {
|
|
2164
|
+
flex: 1;
|
|
2165
|
+
min-width: 0;
|
|
1068
2166
|
background: none;
|
|
1069
|
-
border:
|
|
2167
|
+
border-radius: 0;
|
|
2168
|
+
}
|
|
2169
|
+
.agno-input--compact .agno-input__textarea {
|
|
2170
|
+
min-height: 24px;
|
|
2171
|
+
max-height: 120px;
|
|
2172
|
+
padding: 1.5px 8px;
|
|
2173
|
+
line-height: 21px;
|
|
2174
|
+
}
|
|
2175
|
+
.agno-input--compact .agno-input__actions {
|
|
2176
|
+
gap: 8px;
|
|
2177
|
+
padding-bottom: 0;
|
|
2178
|
+
}
|
|
2179
|
+
.agno-input--compact .agno-btn--icon {
|
|
2180
|
+
width: 24px;
|
|
2181
|
+
height: 24px;
|
|
1070
2182
|
border-radius: var(--agno-radius-sm);
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
cursor: pointer;
|
|
2183
|
+
}
|
|
2184
|
+
.agno-input--compact .agno-btn--ghost {
|
|
1074
2185
|
color: var(--agno-muted);
|
|
1075
|
-
font-size: 15px;
|
|
1076
2186
|
}
|
|
1077
|
-
.agno-
|
|
1078
|
-
color: var(--agno-
|
|
1079
|
-
background: var(--agno-surface-2);
|
|
2187
|
+
.agno-input--compact .agno-btn--ghost:hover:not(:disabled) {
|
|
2188
|
+
color: var(--agno-primary);
|
|
1080
2189
|
}
|
|
2190
|
+
.agno-input--compact .agno-btn--icon:not(.agno-btn--ghost) {
|
|
2191
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
2192
|
+
}
|
|
2193
|
+
|
|
2194
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
2195
|
+
Buttons — Agno OS `Button` (DM Mono, uppercase, rounded-md)
|
|
2196
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
1081
2197
|
|
|
1082
|
-
/* Buttons */
|
|
1083
2198
|
.agno-btn {
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
2199
|
+
display: inline-flex;
|
|
2200
|
+
align-items: center;
|
|
2201
|
+
justify-content: center;
|
|
2202
|
+
gap: 8px;
|
|
2203
|
+
height: 36px;
|
|
2204
|
+
padding: 0 16px;
|
|
2205
|
+
border: 1px solid transparent;
|
|
2206
|
+
border-radius: var(--agno-radius-md);
|
|
2207
|
+
background: var(--agno-primary);
|
|
2208
|
+
color: var(--agno-accent);
|
|
1089
2209
|
cursor: pointer;
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
2210
|
+
user-select: none;
|
|
2211
|
+
white-space: nowrap;
|
|
2212
|
+
font-family: var(--agno-font-mono);
|
|
2213
|
+
font-size: 0.75rem;
|
|
2214
|
+
font-weight: 400;
|
|
2215
|
+
line-height: 1rem;
|
|
2216
|
+
letter-spacing: 0.24px;
|
|
2217
|
+
text-transform: uppercase;
|
|
2218
|
+
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
2219
|
+
transition: background 0.12s ease, opacity 0.12s ease, border-color 0.12s ease;
|
|
1093
2220
|
}
|
|
1094
2221
|
.agno-btn:hover:not(:disabled) {
|
|
1095
|
-
|
|
2222
|
+
background: rgba(var(--color-primary), 0.8);
|
|
1096
2223
|
}
|
|
1097
2224
|
.agno-btn:disabled {
|
|
1098
|
-
opacity: 0.
|
|
2225
|
+
opacity: 0.5;
|
|
1099
2226
|
cursor: not-allowed;
|
|
2227
|
+
pointer-events: none;
|
|
1100
2228
|
}
|
|
1101
|
-
.agno-btn--
|
|
1102
|
-
background: var(--agno-
|
|
1103
|
-
|
|
1104
|
-
color: var(--agno-primary-fg);
|
|
2229
|
+
.agno-btn--secondary {
|
|
2230
|
+
background: var(--agno-secondary);
|
|
2231
|
+
color: var(--agno-primary);
|
|
1105
2232
|
}
|
|
1106
|
-
.agno-btn--
|
|
1107
|
-
|
|
1108
|
-
border-color: var(--agno-primary-bg);
|
|
2233
|
+
.agno-btn--secondary:hover:not(:disabled) {
|
|
2234
|
+
background: var(--agno-secondary-soft);
|
|
1109
2235
|
}
|
|
1110
|
-
.agno-btn--
|
|
1111
|
-
background:
|
|
1112
|
-
border-color: var(--agno-
|
|
1113
|
-
color:
|
|
2236
|
+
.agno-btn--outline {
|
|
2237
|
+
background: transparent;
|
|
2238
|
+
border-color: var(--agno-border);
|
|
2239
|
+
color: var(--agno-primary);
|
|
2240
|
+
}
|
|
2241
|
+
.agno-btn--outline:hover:not(:disabled) {
|
|
2242
|
+
background: var(--agno-tint);
|
|
1114
2243
|
}
|
|
1115
2244
|
.agno-btn--ghost {
|
|
1116
|
-
background:
|
|
1117
|
-
color: var(--agno-
|
|
1118
|
-
|
|
1119
|
-
font-weight: 600;
|
|
1120
|
-
text-transform: uppercase;
|
|
1121
|
-
letter-spacing: 0.08em;
|
|
1122
|
-
padding: 7px 12px;
|
|
2245
|
+
background: transparent;
|
|
2246
|
+
color: var(--agno-primary);
|
|
2247
|
+
box-shadow: none;
|
|
1123
2248
|
}
|
|
1124
2249
|
.agno-btn--ghost:hover:not(:disabled) {
|
|
1125
|
-
|
|
1126
|
-
background: var(--agno-surface);
|
|
2250
|
+
background: var(--agno-tint);
|
|
1127
2251
|
}
|
|
1128
2252
|
.agno-btn--ghost.is-active {
|
|
1129
|
-
background: var(--agno-
|
|
1130
|
-
color: var(--agno-text);
|
|
1131
|
-
border-color: var(--agno-border-strong);
|
|
2253
|
+
background: var(--agno-tint-strong);
|
|
1132
2254
|
}
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
display: grid;
|
|
1137
|
-
place-items: center;
|
|
1138
|
-
width: 36px;
|
|
1139
|
-
height: 36px;
|
|
1140
|
-
border-radius: var(--agno-radius);
|
|
1141
|
-
border: 1px solid transparent;
|
|
1142
|
-
background: var(--agno-primary-bg);
|
|
1143
|
-
color: var(--agno-primary-fg);
|
|
1144
|
-
cursor: pointer;
|
|
1145
|
-
font-size: 14px;
|
|
1146
|
-
transition: opacity 0.12s ease, background 0.12s ease;
|
|
2255
|
+
.agno-btn--destructive {
|
|
2256
|
+
background: var(--agno-destructive);
|
|
2257
|
+
color: #fff;
|
|
1147
2258
|
}
|
|
1148
|
-
.agno-
|
|
1149
|
-
|
|
1150
|
-
transform: translateX(1px);
|
|
2259
|
+
.agno-btn--destructive:hover:not(:disabled) {
|
|
2260
|
+
background: rgba(var(--color-destructive), 0.8);
|
|
1151
2261
|
}
|
|
1152
|
-
.agno-
|
|
1153
|
-
|
|
2262
|
+
.agno-btn--sm {
|
|
2263
|
+
height: 32px;
|
|
2264
|
+
padding: 0 12px;
|
|
1154
2265
|
}
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
2266
|
+
/* Square icon buttons: `iconSm` (32px) and `iconXs` (24px) in Agno OS. */
|
|
2267
|
+
.agno-btn--icon {
|
|
2268
|
+
width: 32px;
|
|
2269
|
+
height: 32px;
|
|
2270
|
+
padding: 0;
|
|
2271
|
+
border-radius: var(--agno-radius-sm);
|
|
1158
2272
|
}
|
|
1159
|
-
.agno-
|
|
1160
|
-
|
|
1161
|
-
|
|
2273
|
+
.agno-btn--icon-xs {
|
|
2274
|
+
width: 24px;
|
|
2275
|
+
height: 24px;
|
|
2276
|
+
padding: 0;
|
|
2277
|
+
border-radius: var(--agno-radius-sm);
|
|
1162
2278
|
}
|
|
1163
|
-
.agno-
|
|
1164
|
-
|
|
1165
|
-
font-size: 11px;
|
|
2279
|
+
.agno-btn--block {
|
|
2280
|
+
width: 100%;
|
|
1166
2281
|
}
|
|
1167
2282
|
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
padding: 6px 14px;
|
|
1172
|
-
}
|
|
2283
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
2284
|
+
Entity selector
|
|
2285
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
1173
2286
|
|
|
1174
|
-
/* Entity selector — Agno OS style popover */
|
|
1175
2287
|
.agno-select {
|
|
1176
2288
|
position: relative;
|
|
2289
|
+
min-width: 0;
|
|
1177
2290
|
}
|
|
1178
2291
|
.agno-select__trigger {
|
|
1179
2292
|
display: flex;
|
|
1180
2293
|
align-items: center;
|
|
1181
2294
|
justify-content: space-between;
|
|
1182
2295
|
gap: 8px;
|
|
1183
|
-
height:
|
|
1184
|
-
|
|
2296
|
+
height: 32px;
|
|
2297
|
+
/* Comfortable 190px when there is room, but never wider than what the header
|
|
2298
|
+
can spare — a hard floor here starves the title in a narrow launcher
|
|
2299
|
+
panel. `.agno-select__value` ellipses once it shrinks. */
|
|
2300
|
+
min-width: min(190px, 100%);
|
|
1185
2301
|
max-width: 280px;
|
|
1186
2302
|
padding: 0 10px;
|
|
1187
|
-
background:
|
|
2303
|
+
background: transparent;
|
|
1188
2304
|
border: 1px solid var(--agno-border);
|
|
1189
|
-
border-radius: var(--agno-radius-
|
|
1190
|
-
color: var(--agno-
|
|
2305
|
+
border-radius: var(--agno-radius-md);
|
|
2306
|
+
color: var(--agno-primary);
|
|
1191
2307
|
cursor: pointer;
|
|
1192
|
-
font:
|
|
2308
|
+
font-family: var(--agno-font-mono);
|
|
2309
|
+
font-size: 0.75rem;
|
|
2310
|
+
letter-spacing: 0.02em;
|
|
2311
|
+
text-transform: uppercase;
|
|
1193
2312
|
}
|
|
1194
2313
|
.agno-select__trigger:hover:not(:disabled) {
|
|
1195
|
-
|
|
2314
|
+
background: var(--agno-tint);
|
|
1196
2315
|
}
|
|
1197
2316
|
.agno-select__trigger:disabled {
|
|
1198
2317
|
opacity: 0.5;
|
|
1199
2318
|
cursor: not-allowed;
|
|
1200
2319
|
}
|
|
1201
2320
|
.agno-select__value {
|
|
1202
|
-
font-family: 'DM Mono', ui-monospace, monospace;
|
|
1203
|
-
font-size: 12px;
|
|
1204
|
-
letter-spacing: 0.02em;
|
|
1205
|
-
text-transform: uppercase;
|
|
1206
2321
|
white-space: nowrap;
|
|
1207
2322
|
overflow: hidden;
|
|
1208
2323
|
text-overflow: ellipsis;
|
|
1209
2324
|
}
|
|
1210
2325
|
.agno-select__chev {
|
|
2326
|
+
flex: 0 0 16px;
|
|
1211
2327
|
color: var(--agno-muted);
|
|
1212
|
-
|
|
1213
|
-
transition: transform 0.15s ease;
|
|
2328
|
+
transition: transform 0.2s ease;
|
|
1214
2329
|
}
|
|
1215
2330
|
.agno-select__chev.is-open {
|
|
1216
2331
|
transform: rotate(180deg);
|
|
@@ -1225,27 +2340,25 @@
|
|
|
1225
2340
|
max-height: 360px;
|
|
1226
2341
|
overflow-y: auto;
|
|
1227
2342
|
padding: 6px;
|
|
1228
|
-
background: var(--agno-
|
|
1229
|
-
border:
|
|
1230
|
-
|
|
1231
|
-
box-shadow:
|
|
1232
|
-
0 0 0 1px rgba(0, 0, 0, 0.3),
|
|
1233
|
-
0 12px 32px -8px rgba(0, 0, 0, 0.6);
|
|
2343
|
+
background: var(--agno-bg);
|
|
2344
|
+
border-radius: var(--agno-radius-lg);
|
|
2345
|
+
box-shadow: var(--agno-shadow-panel);
|
|
1234
2346
|
}
|
|
1235
2347
|
.agno-select__empty {
|
|
1236
2348
|
padding: 8px 10px;
|
|
1237
2349
|
color: var(--agno-muted);
|
|
1238
|
-
font-size:
|
|
2350
|
+
font-size: 0.75rem;
|
|
1239
2351
|
}
|
|
1240
2352
|
.agno-select__group + .agno-select__group {
|
|
1241
2353
|
margin-top: 4px;
|
|
1242
2354
|
}
|
|
1243
2355
|
.agno-select__group-label {
|
|
1244
2356
|
padding: 6px 10px 4px;
|
|
1245
|
-
font-size: 11px;
|
|
1246
2357
|
color: var(--agno-muted);
|
|
2358
|
+
font-family: var(--agno-font-mono);
|
|
2359
|
+
font-size: 0.75rem;
|
|
2360
|
+
letter-spacing: 0.02em;
|
|
1247
2361
|
text-transform: uppercase;
|
|
1248
|
-
letter-spacing: 0.05em;
|
|
1249
2362
|
}
|
|
1250
2363
|
.agno-select__option {
|
|
1251
2364
|
width: 100%;
|
|
@@ -1256,22 +2369,19 @@
|
|
|
1256
2369
|
background: none;
|
|
1257
2370
|
border: none;
|
|
1258
2371
|
border-radius: var(--agno-radius-sm);
|
|
1259
|
-
color: var(--agno-
|
|
2372
|
+
color: var(--agno-primary);
|
|
1260
2373
|
cursor: pointer;
|
|
1261
2374
|
font: inherit;
|
|
1262
2375
|
text-align: left;
|
|
1263
2376
|
}
|
|
1264
|
-
.agno-select__option:hover
|
|
1265
|
-
background: var(--agno-surface-2);
|
|
1266
|
-
}
|
|
2377
|
+
.agno-select__option:hover,
|
|
1267
2378
|
.agno-select__option.is-selected {
|
|
1268
|
-
background: var(--agno-
|
|
2379
|
+
background: var(--agno-secondary-soft);
|
|
1269
2380
|
}
|
|
1270
2381
|
.agno-select__check {
|
|
1271
|
-
width: 14px;
|
|
1272
2382
|
flex: 0 0 14px;
|
|
1273
|
-
|
|
1274
|
-
|
|
2383
|
+
width: 14px;
|
|
2384
|
+
color: var(--agno-primary);
|
|
1275
2385
|
}
|
|
1276
2386
|
.agno-select__label {
|
|
1277
2387
|
flex: 1;
|
|
@@ -1279,15 +2389,348 @@
|
|
|
1279
2389
|
white-space: nowrap;
|
|
1280
2390
|
overflow: hidden;
|
|
1281
2391
|
text-overflow: ellipsis;
|
|
1282
|
-
font-size: 14px;
|
|
1283
2392
|
}
|
|
1284
2393
|
.agno-select__model {
|
|
1285
|
-
font-family: 'DM Mono', ui-monospace, monospace;
|
|
1286
|
-
font-size: 10.5px;
|
|
1287
2394
|
color: var(--agno-muted);
|
|
1288
|
-
|
|
2395
|
+
font-family: var(--agno-font-mono);
|
|
2396
|
+
font-size: 0.75rem;
|
|
2397
|
+
letter-spacing: 0.02em;
|
|
2398
|
+
white-space: nowrap;
|
|
2399
|
+
}
|
|
2400
|
+
|
|
2401
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
2402
|
+
Quick prompts — suggested chips on an empty transcript
|
|
2403
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
2404
|
+
|
|
2405
|
+
.agno-empty {
|
|
2406
|
+
display: flex;
|
|
2407
|
+
flex-direction: column;
|
|
2408
|
+
align-items: center;
|
|
2409
|
+
gap: 16px;
|
|
2410
|
+
max-width: 480px;
|
|
2411
|
+
}
|
|
2412
|
+
|
|
2413
|
+
/* AgentOS stacks the suggestions above the dock as left-aligned cards, sharing
|
|
2414
|
+
the dock's 800px column and inner padding so their left edges line up. */
|
|
2415
|
+
.agno-prompts {
|
|
2416
|
+
display: flex;
|
|
2417
|
+
flex-direction: column;
|
|
2418
|
+
align-items: flex-start;
|
|
2419
|
+
gap: 8px;
|
|
2420
|
+
width: 100%;
|
|
2421
|
+
/* Line the cards up with the dock's inner block: the dock is an 800px box
|
|
2422
|
+
inside `.agno-input`'s 24px padding, then 8px of its own. Matching that
|
|
2423
|
+
total here keeps the left edges flush at every width. */
|
|
2424
|
+
max-width: calc(800px + 48px);
|
|
2425
|
+
margin: 0 auto;
|
|
2426
|
+
padding: 0 32px 8px;
|
|
2427
|
+
max-height: 45vh;
|
|
2428
|
+
overflow-y: auto;
|
|
2429
|
+
}
|
|
2430
|
+
.agno-prompt {
|
|
2431
|
+
display: flex;
|
|
2432
|
+
align-items: center;
|
|
2433
|
+
width: 400px;
|
|
2434
|
+
max-width: 100%;
|
|
2435
|
+
padding: 8px 12px;
|
|
2436
|
+
border: 1px solid rgba(var(--color-primary), 0.15);
|
|
2437
|
+
border-radius: var(--agno-radius-sm);
|
|
2438
|
+
background: var(--agno-secondary-soft);
|
|
2439
|
+
backdrop-filter: blur(40px);
|
|
2440
|
+
color: rgba(var(--color-primary), 0.8);
|
|
2441
|
+
font-family: inherit;
|
|
2442
|
+
font-size: 0.875rem;
|
|
2443
|
+
line-height: 21px;
|
|
2444
|
+
letter-spacing: -0.02em;
|
|
2445
|
+
text-align: left;
|
|
2446
|
+
cursor: pointer;
|
|
2447
|
+
/* Long prompts clamp rather than growing the stack out of the viewport. */
|
|
2448
|
+
display: -webkit-box;
|
|
2449
|
+
-webkit-line-clamp: 2;
|
|
2450
|
+
-webkit-box-orient: vertical;
|
|
2451
|
+
overflow: hidden;
|
|
2452
|
+
transition: border-color 0.15s ease;
|
|
2453
|
+
}
|
|
2454
|
+
.agno-prompt:hover:not(:disabled) {
|
|
2455
|
+
border-color: var(--agno-primary);
|
|
2456
|
+
}
|
|
2457
|
+
.agno-prompt:disabled {
|
|
2458
|
+
opacity: 0.5;
|
|
2459
|
+
cursor: not-allowed;
|
|
2460
|
+
}
|
|
2461
|
+
|
|
2462
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
2463
|
+
Floating launcher — the support-widget layout
|
|
2464
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
2465
|
+
|
|
2466
|
+
.agno-launcher {
|
|
2467
|
+
--agno-launcher-offset: 24px;
|
|
2468
|
+
--agno-launcher-width: 400px;
|
|
2469
|
+
--agno-launcher-height: 620px;
|
|
2470
|
+
|
|
2471
|
+
position: fixed;
|
|
2472
|
+
z-index: 2147483000;
|
|
2473
|
+
display: flex;
|
|
2474
|
+
flex-direction: column;
|
|
2475
|
+
gap: 12px;
|
|
2476
|
+
font-family: var(--agno-font);
|
|
2477
|
+
}
|
|
2478
|
+
|
|
2479
|
+
/* Bottom corners stack panel-then-bubble; top corners flip the order. */
|
|
2480
|
+
.agno-launcher--bottom-right {
|
|
2481
|
+
bottom: var(--agno-launcher-offset);
|
|
2482
|
+
right: var(--agno-launcher-offset);
|
|
2483
|
+
align-items: flex-end;
|
|
2484
|
+
}
|
|
2485
|
+
.agno-launcher--bottom-left {
|
|
2486
|
+
bottom: var(--agno-launcher-offset);
|
|
2487
|
+
left: var(--agno-launcher-offset);
|
|
2488
|
+
align-items: flex-start;
|
|
2489
|
+
}
|
|
2490
|
+
.agno-launcher--top-right {
|
|
2491
|
+
top: var(--agno-launcher-offset);
|
|
2492
|
+
right: var(--agno-launcher-offset);
|
|
2493
|
+
align-items: flex-end;
|
|
2494
|
+
flex-direction: column-reverse;
|
|
2495
|
+
}
|
|
2496
|
+
.agno-launcher--top-left {
|
|
2497
|
+
top: var(--agno-launcher-offset);
|
|
2498
|
+
left: var(--agno-launcher-offset);
|
|
2499
|
+
align-items: flex-start;
|
|
2500
|
+
flex-direction: column-reverse;
|
|
2501
|
+
}
|
|
2502
|
+
|
|
2503
|
+
.agno-launcher__panel {
|
|
2504
|
+
display: flex;
|
|
2505
|
+
width: var(--agno-launcher-width);
|
|
2506
|
+
height: var(--agno-launcher-height);
|
|
2507
|
+
/* Never outgrow the viewport: leave the offsets plus room for the bubble. */
|
|
2508
|
+
max-width: calc(100vw - 2 * var(--agno-launcher-offset));
|
|
2509
|
+
max-height: calc(100vh - 2 * var(--agno-launcher-offset) - 68px);
|
|
2510
|
+
border-radius: var(--agno-radius-lg);
|
|
2511
|
+
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 24px 48px -12px rgba(0, 0, 0, 0.5);
|
|
2512
|
+
overflow: hidden;
|
|
2513
|
+
animation: agno-launcher-in 0.16s ease-out;
|
|
2514
|
+
}
|
|
2515
|
+
.agno-launcher__panel > * {
|
|
2516
|
+
flex: 1;
|
|
2517
|
+
min-width: 0;
|
|
2518
|
+
min-height: 0;
|
|
2519
|
+
}
|
|
2520
|
+
.agno-launcher__panel[hidden] {
|
|
2521
|
+
display: none;
|
|
2522
|
+
}
|
|
2523
|
+
|
|
2524
|
+
@keyframes agno-launcher-in {
|
|
2525
|
+
from {
|
|
2526
|
+
opacity: 0;
|
|
2527
|
+
transform: translateY(8px) scale(0.98);
|
|
2528
|
+
}
|
|
2529
|
+
to {
|
|
2530
|
+
opacity: 1;
|
|
2531
|
+
transform: none;
|
|
2532
|
+
}
|
|
2533
|
+
}
|
|
2534
|
+
|
|
2535
|
+
.agno-launcher__bubble {
|
|
2536
|
+
display: inline-flex;
|
|
2537
|
+
align-items: center;
|
|
2538
|
+
justify-content: center;
|
|
2539
|
+
gap: 8px;
|
|
2540
|
+
flex: 0 0 auto;
|
|
2541
|
+
width: 56px;
|
|
2542
|
+
height: 56px;
|
|
2543
|
+
padding: 0;
|
|
2544
|
+
border: none;
|
|
2545
|
+
border-radius: var(--agno-radius-full);
|
|
2546
|
+
background: var(--agno-brand);
|
|
2547
|
+
color: #fff;
|
|
2548
|
+
font-family: inherit;
|
|
2549
|
+
font-size: 0.875rem;
|
|
2550
|
+
font-weight: 500;
|
|
2551
|
+
letter-spacing: -0.02em;
|
|
2552
|
+
cursor: pointer;
|
|
2553
|
+
box-shadow: 0 8px 24px -8px rgba(0, 0, 0, 0.6);
|
|
2554
|
+
transition: transform 0.15s ease, filter 0.15s ease;
|
|
2555
|
+
}
|
|
2556
|
+
.agno-launcher__bubble.has-label {
|
|
2557
|
+
width: auto;
|
|
2558
|
+
padding: 0 20px;
|
|
2559
|
+
}
|
|
2560
|
+
.agno-launcher__bubble:hover {
|
|
2561
|
+
filter: brightness(1.08);
|
|
2562
|
+
transform: translateY(-1px);
|
|
2563
|
+
}
|
|
2564
|
+
.agno-launcher__label {
|
|
2565
|
+
white-space: nowrap;
|
|
2566
|
+
}
|
|
2567
|
+
|
|
2568
|
+
/* Full-screen panels take the viewport; the bubble becomes a corner close. */
|
|
2569
|
+
.agno-launcher.is-fullscreen.is-open {
|
|
2570
|
+
top: 0;
|
|
2571
|
+
right: 0;
|
|
2572
|
+
bottom: 0;
|
|
2573
|
+
left: 0;
|
|
2574
|
+
gap: 0;
|
|
2575
|
+
align-items: stretch;
|
|
2576
|
+
}
|
|
2577
|
+
.agno-launcher.is-fullscreen.is-open .agno-launcher__panel {
|
|
2578
|
+
width: 100%;
|
|
2579
|
+
height: 100%;
|
|
2580
|
+
max-width: none;
|
|
2581
|
+
max-height: none;
|
|
2582
|
+
border-radius: 0;
|
|
2583
|
+
}
|
|
2584
|
+
.agno-launcher.is-fullscreen.is-open .agno-launcher__bubble {
|
|
2585
|
+
position: absolute;
|
|
2586
|
+
top: var(--agno-launcher-offset);
|
|
2587
|
+
width: 40px;
|
|
2588
|
+
height: 40px;
|
|
2589
|
+
}
|
|
2590
|
+
.agno-launcher.is-fullscreen.is-open.agno-launcher--bottom-right .agno-launcher__bubble,
|
|
2591
|
+
.agno-launcher.is-fullscreen.is-open.agno-launcher--top-right .agno-launcher__bubble {
|
|
2592
|
+
right: var(--agno-launcher-offset);
|
|
2593
|
+
}
|
|
2594
|
+
.agno-launcher.is-fullscreen.is-open.agno-launcher--bottom-left .agno-launcher__bubble,
|
|
2595
|
+
.agno-launcher.is-fullscreen.is-open.agno-launcher--top-left .agno-launcher__bubble {
|
|
2596
|
+
left: var(--agno-launcher-offset);
|
|
2597
|
+
}
|
|
2598
|
+
.agno-launcher.is-fullscreen.is-open .agno-root {
|
|
2599
|
+
border: none;
|
|
2600
|
+
border-radius: 0;
|
|
2601
|
+
}
|
|
2602
|
+
|
|
2603
|
+
/* Below the popover width, a popover panel fills the screen too. */
|
|
2604
|
+
@media (max-width: 480px) {
|
|
2605
|
+
.agno-launcher.is-popover.is-open {
|
|
2606
|
+
top: 0;
|
|
2607
|
+
right: 0;
|
|
2608
|
+
bottom: 0;
|
|
2609
|
+
left: 0;
|
|
2610
|
+
gap: 0;
|
|
2611
|
+
align-items: stretch;
|
|
2612
|
+
}
|
|
2613
|
+
.agno-launcher.is-popover.is-open .agno-launcher__panel {
|
|
2614
|
+
width: 100%;
|
|
2615
|
+
height: 100%;
|
|
2616
|
+
max-width: none;
|
|
2617
|
+
max-height: none;
|
|
2618
|
+
border-radius: 0;
|
|
2619
|
+
}
|
|
2620
|
+
.agno-launcher.is-popover.is-open .agno-launcher__bubble {
|
|
2621
|
+
position: absolute;
|
|
2622
|
+
top: 12px;
|
|
2623
|
+
right: 12px;
|
|
2624
|
+
width: 40px;
|
|
2625
|
+
height: 40px;
|
|
2626
|
+
}
|
|
2627
|
+
.agno-launcher.is-popover.is-open .agno-root {
|
|
2628
|
+
border: none;
|
|
2629
|
+
border-radius: 0;
|
|
2630
|
+
}
|
|
2631
|
+
}
|
|
2632
|
+
|
|
2633
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
2634
|
+
Header-less shell
|
|
2635
|
+
The embed ships without chrome of its own. Two rules pick up the pieces the
|
|
2636
|
+
old header used to hold.
|
|
2637
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
2638
|
+
|
|
2639
|
+
/* A full-screen launcher panel covers its own bubble, so it needs a way out.
|
|
2640
|
+
With no header to sit in, the close button floats over the surface. */
|
|
2641
|
+
.agno-close-floating {
|
|
2642
|
+
position: absolute;
|
|
2643
|
+
top: 12px;
|
|
2644
|
+
right: 12px;
|
|
2645
|
+
z-index: 2;
|
|
2646
|
+
}
|
|
2647
|
+
.agno-root {
|
|
2648
|
+
position: relative;
|
|
2649
|
+
}
|
|
2650
|
+
|
|
2651
|
+
/* The entity picker now lives in the composer's right action group, beside the
|
|
2652
|
+
send button — the AgentOS composer layout, where the left group holds attach
|
|
2653
|
+
and the right holds the component selector then send. */
|
|
2654
|
+
.agno-input__actions > .agno-select {
|
|
2655
|
+
flex: 0 1 auto;
|
|
2656
|
+
min-width: 0;
|
|
2657
|
+
}
|
|
2658
|
+
.agno-input__actions > .agno-select .agno-select__trigger {
|
|
2659
|
+
/* AgentOS sizes this h-8, max-w-[300px], px-3. Inside the dock it needs no
|
|
2660
|
+
border of its own — the dock already frames it — so it reads as part of
|
|
2661
|
+
the row until hovered. */
|
|
2662
|
+
height: 32px;
|
|
2663
|
+
min-width: 0;
|
|
2664
|
+
max-width: 300px;
|
|
2665
|
+
padding: 0 12px;
|
|
2666
|
+
border-color: transparent;
|
|
2667
|
+
}
|
|
2668
|
+
.agno-input__actions > .agno-select .agno-select__trigger:hover {
|
|
2669
|
+
border-color: var(--agno-border);
|
|
2670
|
+
}
|
|
2671
|
+
/* The dock sits at the bottom of the surface, so the popover opens upwards. */
|
|
2672
|
+
.agno-input__actions > .agno-select .agno-select__panel {
|
|
2673
|
+
top: auto;
|
|
2674
|
+
bottom: calc(100% + 6px);
|
|
2675
|
+
right: 0;
|
|
2676
|
+
left: auto;
|
|
2677
|
+
}
|
|
2678
|
+
|
|
2679
|
+
/* Rows must be allowed to shrink, or the transcript cannot scroll inside a
|
|
2680
|
+
fixed-height embed. */
|
|
2681
|
+
.agno-main,
|
|
2682
|
+
.agno-chat {
|
|
2683
|
+
min-height: 0;
|
|
2684
|
+
}
|
|
2685
|
+
|
|
2686
|
+
/* The read-only selection display in the composer row — AgentOS's
|
|
2687
|
+
`SelectComponentType`: h-8, capped width, mono uppercase, model chip. */
|
|
2688
|
+
.agno-entity {
|
|
2689
|
+
display: flex;
|
|
2690
|
+
align-items: center;
|
|
2691
|
+
justify-content: flex-end;
|
|
2692
|
+
gap: 8px;
|
|
2693
|
+
height: 32px;
|
|
2694
|
+
min-width: 0;
|
|
2695
|
+
max-width: 300px;
|
|
2696
|
+
padding: 0 4px;
|
|
2697
|
+
cursor: default;
|
|
2698
|
+
}
|
|
2699
|
+
.agno-entity__name {
|
|
2700
|
+
min-width: 0;
|
|
2701
|
+
overflow: hidden;
|
|
2702
|
+
text-overflow: ellipsis;
|
|
2703
|
+
white-space: nowrap;
|
|
2704
|
+
font-family: var(--agno-font-mono);
|
|
2705
|
+
font-size: 0.75rem;
|
|
2706
|
+
line-height: 1rem;
|
|
2707
|
+
letter-spacing: 0.02em;
|
|
2708
|
+
text-transform: uppercase;
|
|
2709
|
+
color: var(--agno-primary);
|
|
2710
|
+
}
|
|
2711
|
+
/* AgentOS frames the provider mark in a small bordered square. */
|
|
2712
|
+
.agno-entity__mark {
|
|
2713
|
+
display: grid;
|
|
2714
|
+
place-items: center;
|
|
2715
|
+
flex: none;
|
|
2716
|
+
width: 18px;
|
|
2717
|
+
height: 18px;
|
|
1289
2718
|
border: 1px solid var(--agno-border);
|
|
1290
|
-
border-radius:
|
|
1291
|
-
|
|
2719
|
+
border-radius: 6px;
|
|
2720
|
+
color: var(--agno-primary);
|
|
2721
|
+
}
|
|
2722
|
+
.agno-entity__model {
|
|
2723
|
+
flex: none;
|
|
2724
|
+
max-width: 120px;
|
|
2725
|
+
overflow: hidden;
|
|
2726
|
+
text-overflow: ellipsis;
|
|
1292
2727
|
white-space: nowrap;
|
|
2728
|
+
padding: 2px 6px;
|
|
2729
|
+
border: 1px solid var(--agno-border);
|
|
2730
|
+
border-radius: 6px;
|
|
2731
|
+
font-family: var(--agno-font-mono);
|
|
2732
|
+
font-size: 0.6875rem;
|
|
2733
|
+
line-height: 1rem;
|
|
2734
|
+
letter-spacing: 0.02em;
|
|
2735
|
+
color: var(--agno-muted);
|
|
1293
2736
|
}
|