@ddrinnova/agentsgt-widget 0.1.20 → 0.2.0
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 +68 -14
- package/dist/widget.css +1 -1
- package/dist/widget.es.js +5794 -5690
- package/dist/widget.umd.js +66 -66
- package/package.json +2 -7
package/README.md
CHANGED
|
@@ -111,6 +111,8 @@ function MyPage() {
|
|
|
111
111
|
|
|
112
112
|
## Options
|
|
113
113
|
|
|
114
|
+
### Core
|
|
115
|
+
|
|
114
116
|
| Option | Type | Default | Description |
|
|
115
117
|
|:---|:---|:---|:---|
|
|
116
118
|
| **`runtimeUrl`** | `string` | *required* | Full URL to the agent chat endpoint |
|
|
@@ -119,7 +121,29 @@ function MyPage() {
|
|
|
119
121
|
| `title` | `string` | Agent name | Header title |
|
|
120
122
|
| `initialMessage` | `string` | `"Need any help?"` | Greeting shown on first visit |
|
|
121
123
|
| `identifier` | `string` | — | External user ID for conversation tracking |
|
|
122
|
-
|
|
124
|
+
|
|
125
|
+
### `theme` (since 0.2.0)
|
|
126
|
+
|
|
127
|
+
| Option | Type | Default | Description |
|
|
128
|
+
|:---|:---|:---|:---|
|
|
129
|
+
| `theme.primaryColor` | `string` | `#FBB76B` | Accent color (CTAs, link hover, focus ring) |
|
|
130
|
+
| `theme.accent` | `string` | derived | Secondary accent |
|
|
131
|
+
| `theme.surface` | `string` | `#ffffff` | Widget background |
|
|
132
|
+
| `theme.textColor` | `string` | `#1f2937` | Primary text color |
|
|
133
|
+
| `theme.radius` | `"sm"` \| `"md"` \| `"lg"` \| `"xl"` \| `number` | `"lg"` | Corner radius preset, or px value |
|
|
134
|
+
| `theme.shadow` | `"none"` \| `"sm"` \| `"md"` \| `"lg"` | `"md"` | Drop-shadow strength |
|
|
135
|
+
| `theme.mode` | `"light"` \| `"dark"` \| `"auto"` | `"light"` | `"auto"` follows the user's `prefers-color-scheme` |
|
|
136
|
+
| `theme.fontFamily` | `string` | system stack | Custom font family |
|
|
137
|
+
|
|
138
|
+
### `branding` (since 0.2.0)
|
|
139
|
+
|
|
140
|
+
| Option | Type | Default | Description |
|
|
141
|
+
|:---|:---|:---|:---|
|
|
142
|
+
| `branding.title` | `string` | — | Header title (overrides top-level `title`) |
|
|
143
|
+
| `branding.avatarUrl` | `string` | letter circle | Header avatar image |
|
|
144
|
+
| `branding.logoUrl` | `string` | chat icon | Image inside the launcher button |
|
|
145
|
+
| `branding.poweredBy` | `boolean` | `true` | Show the "Powered by AgentsGT" footer |
|
|
146
|
+
| `branding.suggestedPrompts` | `string[]` | — | Chip row above the input on the empty state (max 6 shown) |
|
|
123
147
|
|
|
124
148
|
---
|
|
125
149
|
|
|
@@ -146,20 +170,31 @@ Inline chat that fills its parent container. Use when **embedding directly into
|
|
|
146
170
|
|
|
147
171
|
### Full control — via CSS custom properties
|
|
148
172
|
|
|
173
|
+
The widget defines its CSS variables on its own wrappers (`.agt-popup`, `.agt-sidebar`, `.agt-trigger`, `.agt-widget`), so they never leak onto the host page. Override them by targeting the same selectors:
|
|
174
|
+
|
|
149
175
|
```css
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
--agt-
|
|
155
|
-
--agt-
|
|
156
|
-
--agt-
|
|
157
|
-
--agt-
|
|
158
|
-
--agt-
|
|
159
|
-
--agt-
|
|
176
|
+
.agt-popup,
|
|
177
|
+
.agt-sidebar,
|
|
178
|
+
.agt-trigger,
|
|
179
|
+
.agt-widget {
|
|
180
|
+
--agt-primary: #FBB76B;
|
|
181
|
+
--agt-accent: #f59e3a;
|
|
182
|
+
--agt-bg: #ffffff;
|
|
183
|
+
--agt-surface: #ffffff;
|
|
184
|
+
--agt-text: #1f2937;
|
|
185
|
+
--agt-text-secondary: #6b7280;
|
|
186
|
+
--agt-text-on-primary: #1f2937;
|
|
187
|
+
--agt-border: #e5e7eb;
|
|
188
|
+
--agt-muted: #f3f4f6;
|
|
189
|
+
--agt-user-bg: rgba(251, 183, 107, 0.14);
|
|
190
|
+
--agt-assistant-bg: #f3f4f6;
|
|
191
|
+
--agt-radius: 1rem;
|
|
192
|
+
--agt-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
|
|
160
193
|
}
|
|
161
194
|
```
|
|
162
195
|
|
|
196
|
+
Dark mode uses the same vars under `[data-agt-theme="dark"]`. Set `theme.mode: "auto"` to follow the user's system preference.
|
|
197
|
+
|
|
163
198
|
---
|
|
164
199
|
|
|
165
200
|
## API Keys
|
|
@@ -181,11 +216,30 @@ cd agentsgt-widget
|
|
|
181
216
|
npm install
|
|
182
217
|
npm run dev # Start dev server at localhost:5173
|
|
183
218
|
npm run build # Production build → dist/
|
|
184
|
-
npm run
|
|
185
|
-
|
|
186
|
-
|
|
219
|
+
npm run lint
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## Releasing
|
|
223
|
+
|
|
224
|
+
Releases are published to npm by **GitHub Actions** on tag push — no local `npm publish`.
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
# 1. Bump the version in package.json (patch / minor / major as appropriate)
|
|
228
|
+
npm version patch # writes 0.2.x → 0.2.(x+1), creates a v0.2.(x+1) git tag
|
|
229
|
+
|
|
230
|
+
# 2. Push the commit and the tag
|
|
231
|
+
git push origin main --follow-tags
|
|
187
232
|
```
|
|
188
233
|
|
|
234
|
+
The workflow at `.github/workflows/publish.yml` runs on tags matching `v*.*.*`:
|
|
235
|
+
|
|
236
|
+
1. Installs dependencies, lints, builds.
|
|
237
|
+
2. Verifies `package.json` `version` matches the pushed tag (fails the run otherwise).
|
|
238
|
+
3. Publishes with `npm publish --access public --provenance`.
|
|
239
|
+
4. Creates a GitHub Release with auto-generated notes.
|
|
240
|
+
|
|
241
|
+
**One-time setup:** add an `NPM_TOKEN` repo secret with publish rights to `@ddrinnova/agentsgt-widget`.
|
|
242
|
+
|
|
189
243
|
---
|
|
190
244
|
|
|
191
245
|
<div align="center">
|
package/dist/widget.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--agt-primary: #FBB76B;--agt-bg: #ffffff;--agt-text: #1f2937;--agt-text-secondary: #6b7280;--agt-border: #e5e7eb;--agt-muted: #f3f4f6;--agt-user-bg: rgba(251, 183, 107, .1);--agt-assistant-bg: #f3f4f6;--agt-error-bg: #fef2f2;--agt-error-text: #b91c1c;--agt-radius: 1rem;--agt-shadow: 0 10px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1)}.agt-widget,.agt-popup,.agt-sidebar,.agt-trigger{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}.agt-widget *,.agt-popup *,.agt-sidebar *,.agt-trigger *{box-sizing:border-box;margin:0;padding:0}.agt-widget button,.agt-popup button,.agt-sidebar button,.agt-trigger{-moz-appearance:none;appearance:none;-webkit-appearance:none;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;justify-content:center;border:none;background:transparent;padding:0;margin:0;font:inherit;color:inherit;text-decoration:none;text-transform:none;letter-spacing:inherit;line-height:inherit;outline:none;box-shadow:none}.agt-widget textarea,.agt-popup textarea,.agt-sidebar textarea{-moz-appearance:none;appearance:none;-webkit-appearance:none;box-sizing:border-box;border:none;background:transparent;padding:0;margin:0;font:inherit;color:inherit;outline:none;box-shadow:none;resize:none}.agt-widget svg,.agt-popup svg,.agt-sidebar svg,.agt-trigger svg{display:block;flex-shrink:0}.agt-widget{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden;background:var(--agt-bg);color:var(--agt-text);font-size:14px;line-height:1.5}.agt-popup{position:fixed;bottom:24px;right:24px;z-index:9999;width:400px;height:520px;border-radius:var(--agt-radius);box-shadow:var(--agt-shadow);background:var(--agt-bg);border:1px solid var(--agt-border);display:flex;flex-direction:column;overflow:hidden;animation:agt-slide-up .3s ease-out}@media (max-width: 480px){.agt-popup{bottom:0;right:0;width:100%;height:100%;border-radius:0}}.agt-sidebar{position:fixed;top:0;right:0;z-index:9999;width:380px;height:100%;background:var(--agt-bg);border-left:1px solid var(--agt-border);box-shadow:-4px 0 16px #00000014;display:flex;flex-direction:column;animation:agt-slide-in-right .3s ease-out}@media (max-width: 480px){.agt-sidebar{width:100%}}.agt-trigger{position:fixed;bottom:24px;right:24px;z-index:9998;width:56px;height:56px;border-radius:50%;background:var(--agt-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000026;transition:transform .2s ease,box-shadow .2s ease;animation:agt-scale-in .3s ease-out}.agt-trigger:hover{transform:scale(1.08);box-shadow:0 6px 16px #0003}.agt-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--agt-border);background:var(--agt-bg);flex-shrink:0}.agt-header__title{font-weight:600;font-size:14px;color:var(--agt-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agt-header__actions{display:flex;align-items:center;gap:4px}.agt-header__btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;border-radius:6px;cursor:pointer;color:var(--agt-text-secondary);transition:background-color .15s,color .15s}.agt-header__btn:hover{background:var(--agt-muted);color:var(--agt-text)}.agt-footer{padding:6px 16px;text-align:center;font-size:10px;color:var(--agt-text-secondary);border-top:1px solid var(--agt-border);flex-shrink:0}.agt-messages{flex:1;overflow-y:auto;padding:16px}.agt-messages__inner{display:flex;flex-direction:column;gap:12px}.agt-message{display:flex;width:100%}.agt-message--user{justify-content:flex-end}.agt-message--assistant{justify-content:flex-start}.agt-message__content{max-width:78%;border-radius:var(--agt-radius);padding:8px 12px;font-size:14px;line-height:1.5;word-break:break-word}.agt-message--user .agt-message__content{background:var(--agt-user-bg);color:var(--agt-text);border-bottom-right-radius:4px}.agt-message--assistant .agt-message__content{background:var(--agt-assistant-bg);color:var(--agt-text);border-bottom-left-radius:4px}.agt-message__content--error{background:var(--agt-error-bg)!important;color:var(--agt-error-text)!important;display:flex;align-items:flex-start;gap:8px;border:1px solid rgba(185,28,28,.15)}.agt-message__typing{display:flex;align-items:center;gap:4px;padding:4px 0}.agt-message__typing span{width:6px;height:6px;border-radius:50%;background:var(--agt-text-secondary);animation:agt-bounce 1.4s infinite ease-in-out both}.agt-message__typing span:nth-child(1){animation-delay:-.32s}.agt-message__typing span:nth-child(2){animation-delay:-.16s}.agt-input{padding:8px 16px 12px;flex-shrink:0}.agt-input__container{display:flex;align-items:flex-end;gap:8px;border:1px solid var(--agt-border);border-radius:var(--agt-radius);padding:8px 12px;background:var(--agt-bg);transition:border-color .15s}.agt-input__container:focus-within{border-color:var(--agt-primary)}.agt-input__textarea{flex:1;border:none;outline:none;background:transparent;font-size:14px;font-family:inherit;color:var(--agt-text);line-height:1.5;min-height:24px;padding:0}.agt-input__textarea::-moz-placeholder{color:var(--agt-text-secondary);opacity:.6}.agt-input__textarea::placeholder{color:var(--agt-text-secondary);opacity:.6}.agt-input__send{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:50%;background:var(--agt-text);color:var(--agt-bg);cursor:pointer;flex-shrink:0;transition:opacity .15s}.agt-input__send:disabled{opacity:.3;cursor:default}.agt-input__send:not(:disabled):hover{opacity:.8}.agt-tool{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--agt-muted);border-radius:8px;margin:8px 0;font-size:13px;color:var(--agt-text-secondary)}.agt-tool--error{background:var(--agt-error-bg);color:var(--agt-error-text)}.agt-tool--sources{padding:6px 10px;font-size:13px;margin:6px 0;background:#00000008;border:1px solid rgba(0,0,0,.06);border-radius:8px}.agt-tool__label{color:var(--agt-text-secondary);font-weight:500;margin-right:4px}.agt-tool--sources a{color:var(--agt-primary);text-decoration:none}.agt-tool--sources a:hover{text-decoration:underline}.agt-tool__separator{color:var(--agt-text-secondary);margin:0 6px}.agt-tool__image{margin:8px 0}.agt-tool__image img{border-radius:8px;max-width:100%;max-height:300px;-o-object-fit:contain;object-fit:contain}.agt-spinner{display:inline-flex;align-items:center;gap:4px}.agt-spinner__dot{width:6px;height:6px;border-radius:50%;background:var(--agt-text-secondary);animation:agt-bounce 1.4s infinite ease-in-out both}.agt-spinner__dot:nth-child(1){animation-delay:-.32s}.agt-spinner__dot:nth-child(2){animation-delay:-.16s}.agt-markdown p{margin:.25em 0;line-height:1.6}.agt-markdown p:first-child{margin-top:0}.agt-markdown p:last-child{margin-bottom:0}.agt-markdown strong{font-weight:600}.agt-markdown em{font-style:italic}.agt-markdown code{background:#0000000f;padding:.1em .35em;border-radius:4px;font-size:.85em;font-family:SF Mono,Monaco,Cascadia Code,monospace}.agt-markdown pre{background:#0000000f;padding:12px;border-radius:8px;overflow-x:auto;margin:8px 0;font-size:13px}.agt-markdown pre code{background:none;padding:0;border-radius:0;font-size:inherit}.agt-markdown ul{list-style:disc;padding-left:1.25em;margin:.25em 0}.agt-markdown ol{list-style:decimal;padding-left:1.25em;margin:.25em 0}.agt-markdown li{margin:.1em 0}.agt-markdown a{color:var(--agt-primary);text-decoration:underline;text-decoration-color:#fbb76b66;text-underline-offset:2px}.agt-markdown a:hover{text-decoration-color:var(--agt-primary)}.agt-markdown table{width:100%;border-collapse:collapse;margin:8px 0;font-size:13px}.agt-markdown th,.agt-markdown td{padding:6px 10px;border:1px solid var(--agt-border);text-align:left}.agt-markdown th{background:var(--agt-muted);font-weight:600;font-size:12px;color:var(--agt-text-secondary)}.agt-markdown hr{border:none;border-top:1px solid var(--agt-border);margin:12px 0}.agt-markdown blockquote{border-left:3px solid var(--agt-border);margin:8px 0;padding:4px 12px;color:var(--agt-text-secondary)}@keyframes agt-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes agt-slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes agt-scale-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes agt-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.agt-messages::-webkit-scrollbar{width:6px}.agt-messages::-webkit-scrollbar-track{background:transparent}.agt-messages::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.agt-messages::-webkit-scrollbar-thumb:hover{background:#00000040}
|
|
1
|
+
.agt-popup,.agt-sidebar,.agt-trigger,.agt-widget{--agt-primary: #FBB76B;--agt-accent: #f59e3a;--agt-bg: #ffffff;--agt-surface: #ffffff;--agt-text: #1f2937;--agt-text-secondary: #6b7280;--agt-text-on-primary: #1f2937;--agt-border: #e5e7eb;--agt-muted: #f3f4f6;--agt-user-bg: rgba(251, 183, 107, .14);--agt-assistant-bg: #f3f4f6;--agt-error-bg: #fef2f2;--agt-error-text: #b91c1c;--agt-radius: 1rem;--agt-radius-sm: .5rem;--agt-radius-md: .75rem;--agt-radius-lg: 1rem;--agt-shadow: 0 10px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .08);--agt-shadow-trigger: 0 8px 24px -6px rgba(0, 0, 0, .22);--agt-scrollbar: rgba(0, 0, 0, .18);--agt-scrollbar-hover: rgba(0, 0, 0, .32);--agt-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--agt-code-bg: rgba(0, 0, 0, .06);--agt-sources-bg: rgba(0, 0, 0, .03);--agt-sources-border: rgba(0, 0, 0, .06)}.agt-popup[data-agt-theme=dark],.agt-sidebar[data-agt-theme=dark],.agt-trigger[data-agt-theme=dark],.agt-widget[data-agt-theme=dark]{--agt-bg: #0f172a;--agt-surface: #0f172a;--agt-text: #f1f5f9;--agt-text-secondary: #94a3b8;--agt-text-on-primary: #0f172a;--agt-border: rgba(255, 255, 255, .08);--agt-muted: rgba(255, 255, 255, .06);--agt-user-bg: rgba(251, 183, 107, .18);--agt-assistant-bg: rgba(255, 255, 255, .06);--agt-error-bg: rgba(220, 38, 38, .12);--agt-error-text: #fca5a5;--agt-shadow: 0 18px 40px -10px rgba(0, 0, 0, .55), 0 10px 14px -8px rgba(0, 0, 0, .45);--agt-shadow-trigger: 0 10px 28px -6px rgba(0, 0, 0, .55);--agt-scrollbar: rgba(255, 255, 255, .18);--agt-scrollbar-hover: rgba(255, 255, 255, .32);--agt-code-bg: rgba(255, 255, 255, .08);--agt-sources-bg: rgba(255, 255, 255, .04);--agt-sources-border: rgba(255, 255, 255, .08)}.agt-widget,.agt-popup,.agt-sidebar,.agt-trigger{box-sizing:border-box;font-family:var(--agt-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}.agt-widget *,.agt-popup *,.agt-sidebar *,.agt-trigger *{box-sizing:border-box;margin:0;padding:0}.agt-widget button,.agt-popup button,.agt-sidebar button,.agt-trigger{-moz-appearance:none;appearance:none;-webkit-appearance:none;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;justify-content:center;border:none;background:transparent;padding:0;margin:0;font:inherit;color:inherit;text-decoration:none;text-transform:none;letter-spacing:inherit;line-height:inherit;outline:none;box-shadow:none}.agt-widget textarea,.agt-popup textarea,.agt-sidebar textarea{-moz-appearance:none;appearance:none;-webkit-appearance:none;box-sizing:border-box;border:none;background:transparent;padding:0;margin:0;font:inherit;color:inherit;outline:none;box-shadow:none;resize:none}.agt-widget svg,.agt-popup svg,.agt-sidebar svg,.agt-trigger svg{display:block;flex-shrink:0}.agt-widget{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden;background:var(--agt-bg);color:var(--agt-text);font-size:14px;line-height:1.5}.agt-popup{position:fixed;bottom:24px;right:24px;z-index:9999;width:400px;height:560px;border-radius:var(--agt-radius);box-shadow:var(--agt-shadow);background:var(--agt-bg);color:var(--agt-text);border:1px solid var(--agt-border);display:flex;flex-direction:column;overflow:hidden;animation:agt-pop-in .22s cubic-bezier(.16,1,.3,1);transform-origin:bottom right}@media (max-width: 480px){.agt-popup{bottom:0;right:0;width:100%;height:100%;border-radius:0}}.agt-sidebar{position:fixed;top:0;right:0;z-index:9999;width:380px;height:100%;background:var(--agt-bg);color:var(--agt-text);border-left:1px solid var(--agt-border);box-shadow:-4px 0 16px #00000014;display:flex;flex-direction:column;animation:agt-slide-in-right .24s cubic-bezier(.16,1,.3,1)}@media (max-width: 480px){.agt-sidebar{width:100%}}.agt-trigger{position:fixed;bottom:24px;right:24px;z-index:9998;width:56px;height:56px;border-radius:50%;background:var(--agt-primary);color:var(--agt-text-on-primary);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--agt-shadow-trigger);transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s ease;animation:agt-scale-in .24s cubic-bezier(.16,1,.3,1)}.agt-trigger:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 12px 28px -8px #00000047}.agt-trigger:active{transform:scale(.96)}.agt-trigger__logo{width:28px;height:28px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.agt-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--agt-border);background:linear-gradient(180deg,color-mix(in srgb,var(--agt-primary) 6%,var(--agt-bg)) 0%,var(--agt-bg) 100%);flex-shrink:0}.agt-header__brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.agt-header__avatar{width:28px;height:28px;border-radius:50%;background:var(--agt-primary);color:var(--agt-text-on-primary);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0;-o-object-fit:cover;object-fit:cover;overflow:hidden}.agt-header__avatar--fallback{letter-spacing:.02em}.agt-header__title{font-weight:600;font-size:14px;color:var(--agt-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.agt-header__actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.agt-header__btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;border-radius:6px;cursor:pointer;color:var(--agt-text-secondary);transition:background-color .15s ease,color .15s ease,transform .15s ease}.agt-header__btn:hover{background:var(--agt-muted);color:var(--agt-text)}.agt-header__btn:active{transform:scale(.92)}.agt-footer{padding:6px 16px;text-align:center;font-size:10px;color:var(--agt-text-secondary);border-top:1px solid var(--agt-border);flex-shrink:0;letter-spacing:.02em}.agt-messages{flex:1;overflow-y:auto;padding:16px}.agt-messages__inner{display:flex;flex-direction:column;gap:12px}.agt-message{display:flex;width:100%;animation:agt-message-in .18s cubic-bezier(.16,1,.3,1)}.agt-message--user{justify-content:flex-end}.agt-message--assistant{justify-content:flex-start}.agt-message__content{max-width:78%;border-radius:var(--agt-radius);padding:8px 12px;font-size:14px;line-height:1.5;word-break:break-word}.agt-message--user .agt-message__content{background:var(--agt-user-bg);color:var(--agt-text);border-bottom-right-radius:4px}.agt-message--assistant .agt-message__content{background:var(--agt-assistant-bg);color:var(--agt-text);border-bottom-left-radius:4px}.agt-message__content--error{background:var(--agt-error-bg)!important;color:var(--agt-error-text)!important;display:flex;align-items:flex-start;gap:8px;border:1px solid color-mix(in srgb,var(--agt-error-text) 25%,transparent)}.agt-message__typing{display:flex;align-items:center;gap:4px;padding:4px 0}.agt-message__typing span{width:6px;height:6px;border-radius:50%;background:var(--agt-text-secondary);animation:agt-bounce 1.4s infinite ease-in-out both}.agt-message__typing span:nth-child(1){animation-delay:-.32s}.agt-message__typing span:nth-child(2){animation-delay:-.16s}.agt-prompts{display:flex;gap:6px;padding:0 16px 6px;overflow-x:auto;scrollbar-width:none;flex-shrink:0}.agt-prompts::-webkit-scrollbar{display:none}.agt-prompts__chip{display:inline-flex;align-items:center;flex-shrink:0;padding:6px 12px;font-size:12.5px;font-weight:500;background:var(--agt-muted);color:var(--agt-text);border:1px solid var(--agt-border);border-radius:999px;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease;white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis}.agt-prompts__chip:hover:not(:disabled){background:color-mix(in srgb,var(--agt-primary) 14%,var(--agt-muted));border-color:color-mix(in srgb,var(--agt-primary) 40%,var(--agt-border))}.agt-prompts__chip:active:not(:disabled){transform:scale(.97)}.agt-prompts__chip:disabled{opacity:.5;cursor:default}.agt-input{padding:8px 16px 12px;flex-shrink:0}.agt-input__container{display:flex;align-items:flex-end;gap:8px;border:1px solid var(--agt-border);border-radius:var(--agt-radius);padding:8px 12px;background:var(--agt-bg);transition:border-color .15s ease,box-shadow .15s ease}.agt-input__container:focus-within{border-color:var(--agt-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--agt-primary) 22%,transparent)}.agt-input__textarea{flex:1;border:none;outline:none;background:transparent;font-size:14px;font-family:inherit;color:var(--agt-text);line-height:1.5;min-height:24px;padding:0}.agt-input__textarea::-moz-placeholder{color:var(--agt-text-secondary);opacity:.6}.agt-input__textarea::placeholder{color:var(--agt-text-secondary);opacity:.6}.agt-input__send{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:50%;background:var(--agt-primary);color:var(--agt-text-on-primary);cursor:pointer;flex-shrink:0;transition:opacity .15s ease,transform .15s ease,background .15s ease}.agt-input__send:disabled{opacity:.3;cursor:default;background:var(--agt-text-secondary);color:var(--agt-bg)}.agt-input__send:not(:disabled):hover{transform:scale(1.06)}.agt-input__send:not(:disabled):active{transform:scale(.94)}.agt-tool{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--agt-muted);border-radius:8px;margin:8px 0;font-size:13px;color:var(--agt-text-secondary)}.agt-tool--error{background:var(--agt-error-bg);color:var(--agt-error-text)}.agt-tool--sources{padding:6px 10px;font-size:13px;margin:6px 0;background:var(--agt-sources-bg);border:1px solid var(--agt-sources-border);border-radius:8px}.agt-tool__label{color:var(--agt-text-secondary);font-weight:500;margin-right:4px}.agt-tool--sources a{color:var(--agt-primary);text-decoration:none}.agt-tool--sources a:hover{text-decoration:underline}.agt-tool__separator{color:var(--agt-text-secondary);margin:0 6px}.agt-tool__image{margin:8px 0}.agt-tool__image img{border-radius:8px;max-width:100%;max-height:300px;-o-object-fit:contain;object-fit:contain}.agt-spinner{display:inline-flex;align-items:center;gap:4px}.agt-spinner__dot{width:6px;height:6px;border-radius:50%;background:var(--agt-text-secondary);animation:agt-bounce 1.4s infinite ease-in-out both}.agt-spinner__dot:nth-child(1){animation-delay:-.32s}.agt-spinner__dot:nth-child(2){animation-delay:-.16s}.agt-markdown p{margin:.25em 0;line-height:1.6}.agt-markdown p:first-child{margin-top:0}.agt-markdown p:last-child{margin-bottom:0}.agt-markdown strong{font-weight:600}.agt-markdown em{font-style:italic}.agt-markdown code{background:var(--agt-code-bg);padding:.1em .35em;border-radius:4px;font-size:.85em;font-family:SF Mono,Monaco,Cascadia Code,monospace}.agt-markdown pre{background:var(--agt-code-bg);padding:12px;border-radius:8px;overflow-x:auto;margin:8px 0;font-size:13px}.agt-markdown pre code{background:none;padding:0;border-radius:0;font-size:inherit}.agt-markdown ul{list-style:disc;padding-left:1.25em;margin:.25em 0}.agt-markdown ol{list-style:decimal;padding-left:1.25em;margin:.25em 0}.agt-markdown li{margin:.1em 0}.agt-markdown a{color:var(--agt-primary);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--agt-primary) 40%,transparent);text-underline-offset:2px}.agt-markdown a:hover{text-decoration-color:var(--agt-primary)}.agt-markdown table{width:100%;border-collapse:collapse;margin:8px 0;font-size:13px}.agt-markdown th,.agt-markdown td{padding:6px 10px;border:1px solid var(--agt-border);text-align:left}.agt-markdown th{background:var(--agt-muted);font-weight:600;font-size:12px;color:var(--agt-text-secondary)}.agt-markdown hr{border:none;border-top:1px solid var(--agt-border);margin:12px 0}.agt-markdown blockquote{border-left:3px solid var(--agt-border);margin:8px 0;padding:4px 12px;color:var(--agt-text-secondary)}@keyframes agt-pop-in{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes agt-slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes agt-scale-in{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes agt-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes agt-message-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.agt-messages::-webkit-scrollbar{width:6px}.agt-messages::-webkit-scrollbar-track{background:transparent}.agt-messages::-webkit-scrollbar-thumb{background:var(--agt-scrollbar);border-radius:3px}.agt-messages::-webkit-scrollbar-thumb:hover{background:var(--agt-scrollbar-hover)}@media (prefers-reduced-motion: reduce){.agt-popup,.agt-sidebar,.agt-trigger,.agt-widget,.agt-message,.agt-prompts__chip,.agt-input__send,.agt-trigger:hover,.agt-trigger:active,.agt-header__btn{animation:none!important;transition:none!important}.agt-message__typing span,.agt-spinner__dot{animation-duration:0s!important}}
|