@aparte/core 0.8.0 → 0.10.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.
Files changed (75) hide show
  1. package/dist/client/aparte-client.d.ts.map +1 -1
  2. package/dist/client/stream-adapter.d.ts.map +1 -1
  3. package/dist/client/xml-artifact-feed.d.ts.map +1 -1
  4. package/dist/components/bubble/aparte-chat-bubble.d.ts +24 -3
  5. package/dist/components/bubble/aparte-chat-bubble.d.ts.map +1 -1
  6. package/dist/components/bubble/bubble-sync.d.ts.map +1 -1
  7. package/dist/components/composer/aparte-composer-action.d.ts.map +1 -1
  8. package/dist/components/composer/aparte-composer-add-attachment.d.ts +11 -0
  9. package/dist/components/composer/aparte-composer-add-attachment.d.ts.map +1 -1
  10. package/dist/components/composer/aparte-composer-cancel.d.ts +8 -0
  11. package/dist/components/composer/aparte-composer-cancel.d.ts.map +1 -1
  12. package/dist/components/composer/aparte-composer-input.d.ts.map +1 -1
  13. package/dist/components/composer/aparte-composer-send.d.ts +32 -0
  14. package/dist/components/composer/aparte-composer-send.d.ts.map +1 -1
  15. package/dist/components/elicitation/aparte-elicitation.d.ts +10 -0
  16. package/dist/components/elicitation/aparte-elicitation.d.ts.map +1 -1
  17. package/dist/components/viewport/aparte-chat-viewport.d.ts +13 -1
  18. package/dist/components/viewport/aparte-chat-viewport.d.ts.map +1 -1
  19. package/dist/config/aparte-config.d.ts +34 -1
  20. package/dist/config/aparte-config.d.ts.map +1 -1
  21. package/dist/config/config-subscribe.d.ts +4 -0
  22. package/dist/config/config-subscribe.d.ts.map +1 -0
  23. package/dist/config/index.d.ts +1 -0
  24. package/dist/config/index.d.ts.map +1 -1
  25. package/dist/config/locale.d.ts +98 -0
  26. package/dist/config/locale.d.ts.map +1 -1
  27. package/dist/config/sanitize.d.ts.map +1 -1
  28. package/dist/custom-elements.json +7590 -6959
  29. package/dist/elicitation/panel.d.ts +13 -0
  30. package/dist/elicitation/panel.d.ts.map +1 -1
  31. package/dist/host/aparte-chat-host.d.ts +3 -1
  32. package/dist/host/aparte-chat-host.d.ts.map +1 -1
  33. package/dist/{index-BieFbKeW.js → index-BnKBciDG.js} +642 -248
  34. package/dist/index-BnKBciDG.js.map +1 -0
  35. package/dist/index.css +147 -310
  36. package/dist/index.d.ts +3 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +281 -92
  39. package/dist/index.js.map +1 -1
  40. package/dist/index.node.d.ts +3 -1
  41. package/dist/index.node.d.ts.map +1 -1
  42. package/dist/index.node.js +60 -55
  43. package/dist/index.node.js.map +1 -1
  44. package/dist/parsers/aparte-stream-parser.d.ts +25 -0
  45. package/dist/parsers/aparte-stream-parser.d.ts.map +1 -1
  46. package/dist/renderers/highlight-stream.d.ts +17 -0
  47. package/dist/renderers/highlight-stream.d.ts.map +1 -0
  48. package/dist/renderers/segment-renderers.d.ts.map +1 -1
  49. package/dist/renderers/segments/artifact/binary-file.d.ts.map +1 -1
  50. package/dist/renderers/segments/artifact/card.d.ts.map +1 -1
  51. package/dist/renderers/segments/artifact/shared.d.ts +19 -2
  52. package/dist/renderers/segments/artifact/shared.d.ts.map +1 -1
  53. package/dist/renderers/segments/code.d.ts.map +1 -1
  54. package/dist/renderers/segments/error.d.ts.map +1 -1
  55. package/dist/renderers/segments/pipeline-waiting.d.ts.map +1 -1
  56. package/dist/renderers/segments/thinking.d.ts.map +1 -1
  57. package/dist/renderers/segments/tool-call.d.ts.map +1 -1
  58. package/dist/types/event-map.d.ts +1 -2
  59. package/dist/types/event-map.d.ts.map +1 -1
  60. package/dist/types/events.d.ts +0 -16
  61. package/dist/types/events.d.ts.map +1 -1
  62. package/dist/types/index.d.ts +2 -2
  63. package/dist/types/index.d.ts.map +1 -1
  64. package/dist/types/models.d.ts +1 -6
  65. package/dist/types/models.d.ts.map +1 -1
  66. package/dist/types/segments.d.ts +103 -51
  67. package/dist/types/segments.d.ts.map +1 -1
  68. package/dist/utils/segments.d.ts +244 -0
  69. package/dist/utils/segments.d.ts.map +1 -0
  70. package/package.json +1 -1
  71. package/dist/index-BieFbKeW.js.map +0 -1
  72. package/dist/renderers/segments/file-tree.d.ts +0 -3
  73. package/dist/renderers/segments/file-tree.d.ts.map +0 -1
  74. package/dist/renderers/segments/terminal.d.ts +0 -3
  75. package/dist/renderers/segments/terminal.d.ts.map +0 -1
package/dist/index.css CHANGED
@@ -22,7 +22,6 @@
22
22
  --aparte-surface-2: #f1ebdf;
23
23
  /* Code blocks, headers */
24
24
  --aparte-surface-3: #e7dfce;
25
- /* Skeletons, disabled */
26
25
 
27
26
  /* Text */
28
27
  --aparte-text: #241f2b;
@@ -31,7 +30,6 @@
31
30
 
32
31
  /* Borders */
33
32
  --aparte-border: #e5ddce;
34
- --aparte-border-focus: var(--aparte-primary);
35
33
  --aparte-border-width: 1px;
36
34
 
37
35
  /* Status Colors */
@@ -49,18 +47,6 @@
49
47
  --aparte-radius-full: 9999px;
50
48
 
51
49
  /* Component-specific radius (overridable per app) */
52
- --aparte-radius-input: var(--aparte-radius-lg);
53
- --aparte-radius-input-footer: var(--aparte-radius-lg);
54
- --aparte-radius-send-btn: var(--aparte-radius-md);
55
- --aparte-radius-action-btn: var(--aparte-radius-sm);
56
- --aparte-radius-select: var(--aparte-radius-md);
57
- --aparte-radius-avatar: var(--aparte-radius-md);
58
- --aparte-radius-bubble: var(--aparte-radius-lg);
59
- --aparte-radius-code: var(--aparte-radius-lg);
60
- --aparte-radius-thinking: var(--aparte-radius-lg);
61
- --aparte-radius-terminal: var(--aparte-radius-lg);
62
- --aparte-radius-error: var(--aparte-radius-md);
63
- --aparte-radius-file-tree: var(--aparte-radius-lg);
64
50
 
65
51
  /* Spacing scale — every gap / padding / margin / offset routes through these,
66
52
  so there are no raw px spacings in the rules. Incidental, pixel-tuned values
@@ -100,8 +86,6 @@
100
86
 
101
87
  /* Text/icon over a --aparte-primary (brass) fill — send button, run button. */
102
88
  --aparte-on-primary: #ffffff;
103
- /* Focus ring — derived from the accent so it themes automatically. */
104
- --aparte-focus-ring: 0 0 0 3px color-mix(in srgb, var(--aparte-primary) 15%, transparent);
105
89
  /* Outline width for keyboard focus + drag-over indicators. */
106
90
  --aparte-focus-outline-width: 2px;
107
91
  /* Scrollbars rendered by the library. */
@@ -118,36 +102,21 @@
118
102
  no bubble background; consumers can flip these to get a chat-app look. */
119
103
  --aparte-message-content-bg-user: #efe7f6;
120
104
  --aparte-message-content-bg-assistant: transparent;
121
- --aparte-message-content-text-user: var(--aparte-text);
122
- --aparte-message-content-text-assistant: var(--aparte-text);
123
105
  --aparte-message-content-padding: 10px 14px;
124
106
  --aparte-message-content-radius: 14px;
125
107
 
126
108
  /* Aliases used by some segment renderers (artifact card, tool pill).
127
109
  Mapped to existing tokens so consumers that override --aparte-surface-1/2
128
110
  get cohesive results without touching every rule. */
129
- --aparte-surface: var(--aparte-surface-1);
130
- --aparte-surface-hover: var(--aparte-surface-2);
131
- --aparte-text-secondary: var(--aparte-text-muted);
132
- --aparte-accent: var(--aparte-primary);
133
- --aparte-success-border: var(--aparte-success);
134
- --aparte-success-surface: color-mix(in oklch, var(--aparte-success) 12%, transparent);
135
- --aparte-error-border-soft: var(--aparte-error);
136
- --aparte-error-surface: color-mix(in oklch, var(--aparte-error) 12%, transparent);
137
111
 
138
112
  /* Code typography — exposed so apps can swap in Geist Mono / Cascadia / … */
139
113
  --aparte-code-font-family: ui-monospace, 'Cascadia Code', 'JetBrains Mono', 'Geist Mono', SFMono-Regular, Consolas, 'Liberation Mono', monospace;
140
114
 
141
115
  /* Attachments */
142
- --aparte-attachment-chip-bg: var(--aparte-surface-2);
143
- --aparte-attachment-chip-border: var(--aparte-border);
144
- --aparte-attachment-chip-radius: var(--aparte-radius-sm);
145
- --aparte-attachment-chip-color: var(--aparte-text);
146
116
  --aparte-attachment-image-size: 72px;
147
117
  --aparte-attachments-max-height: 140px;
148
118
 
149
119
  /* Attachment thumbnail tile (composer preview + sent-message strip) */
150
- --aparte-thumb-radius: var(--aparte-radius-lg);
151
120
  --aparte-thumb-name-color: #ffffff;
152
121
  --aparte-thumb-name-scrim: linear-gradient(to top, rgba(0, 0, 0, 0.82), rgba(0, 0, 0, 0));
153
122
  --aparte-thumb-name-padding: 14px 5px 4px;
@@ -160,46 +129,27 @@
160
129
  /* Action Bar */
161
130
  --aparte-action-bar-gap: 4px;
162
131
  --aparte-action-bar-btn-size: 28px;
163
- --aparte-action-bar-btn-color: var(--aparte-text-muted);
164
- --aparte-action-bar-btn-hover-bg: var(--aparte-surface-2);
165
- --aparte-action-bar-btn-hover-color: var(--aparte-text);
166
132
 
167
133
  /* Branch Picker */
168
134
  --aparte-branch-picker-gap: 4px;
169
135
  --aparte-branch-picker-btn-size: 20px;
170
136
  --aparte-branch-picker-btn-icon-size: 16px;
171
- --aparte-branch-picker-btn-color: var(--aparte-text-muted);
172
- --aparte-branch-picker-btn-hover-color: var(--aparte-text);
173
137
  --aparte-branch-picker-label-size: 12px;
174
- --aparte-branch-picker-label-color: var(--aparte-text-muted);
175
138
  --aparte-branch-picker-label-min-width: 32px;
176
139
 
177
140
  /* Avatars */
178
141
  --aparte-avatar-size: 32px;
179
142
  --aparte-avatar-font-size: 14px;
180
- --aparte-avatar-radius: var(--aparte-radius-avatar);
181
- --aparte-avatar-bg-user: var(--aparte-primary);
182
- --aparte-avatar-text-user: var(--aparte-text-inverse);
183
- --aparte-avatar-bg-assistant: var(--aparte-surface-3);
184
- --aparte-avatar-text-assistant: var(--aparte-text-inverse);
185
143
  --aparte-avatar-image-user: none;
186
144
  --aparte-avatar-image-assistant: none;
187
145
  --aparte-avatar-image-size: 90%;
188
146
 
189
147
  /* Text Sizes */
190
148
  --aparte-name-font-size: 14px;
191
- --aparte-name-color: var(--aparte-text);
192
149
  --aparte-timestamp-font-size: 12px;
193
- --aparte-timestamp-color: var(--aparte-text-muted);
194
150
  --aparte-content-font-size: 15px;
195
- --aparte-content-color: var(--aparte-text);
196
151
 
197
152
  /* Input */
198
- --aparte-input-bg: var(--aparte-surface-1);
199
- --aparte-input-border: var(--aparte-border);
200
- --aparte-input-text: var(--aparte-text);
201
- --aparte-input-placeholder: var(--aparte-text-muted);
202
- --aparte-input-focus-border: var(--aparte-primary);
203
153
  --aparte-input-gap: 8px;
204
154
  --aparte-input-editor-font-size: 15px;
205
155
  --aparte-input-editor-max-height: 200px;
@@ -212,7 +162,6 @@
212
162
  --aparte-select-min-width: 120px;
213
163
 
214
164
  /* Status Indicator */
215
- --aparte-status-color: var(--aparte-text-muted);
216
165
  --aparte-status-bg: transparent;
217
166
  --aparte-status-dot-size: 6px;
218
167
 
@@ -221,11 +170,6 @@
221
170
  --aparte-waiting-dot-gap: 4px;
222
171
 
223
172
  /* Thinking Segment */
224
- --aparte-thinking-border: var(--aparte-border);
225
- --aparte-thinking-bg: var(--aparte-surface-2);
226
- --aparte-thinking-text: var(--aparte-text-muted);
227
- --aparte-thinking-content: var(--aparte-text);
228
- --aparte-thinking-content-bg: var(--aparte-surface-1);
229
173
  --aparte-thinking-content-max-height: 300px;
230
174
  --aparte-thinking-content-line-height: 1.55;
231
175
  --aparte-thinking-toggle-size: 9px;
@@ -265,49 +209,16 @@
265
209
  --aparte-elic-dismiss-room: 72px;
266
210
 
267
211
  /* Code Blocks */
268
- --aparte-code-bg: var(--aparte-surface-1);
269
- --aparte-code-header-bg: var(--aparte-surface-2);
270
- --aparte-code-border: var(--aparte-border);
271
- --aparte-code-header-text: var(--aparte-text-muted);
272
212
  --aparte-code-copy-hover-bg: rgba(0, 0, 0, 0.05);
273
213
  --aparte-code-copy-icon-size: 14px;
274
214
  --aparte-code-inline-font-size: 0.875em;
275
215
 
276
- /* Terminal */
277
- --aparte-terminal-bg: #1e293b;
278
- --aparte-terminal-text: #e2e8f0;
279
- --aparte-terminal-icon: #64748b;
280
- --aparte-terminal-hover: #334155;
281
- --aparte-terminal-running: #22c55e;
282
- --aparte-terminal-output-bg: #0f172a;
283
- --aparte-terminal-output-text: #94a3b8;
284
- --aparte-terminal-copy-btn-size: 26px;
285
- --aparte-terminal-font-size: 13px;
286
- --aparte-terminal-output-max-height: 200px;
287
216
 
288
- /* Progress */
289
- --aparte-progress-bar-bg: var(--aparte-surface-3);
290
- --aparte-progress-bar-fill: var(--aparte-primary);
291
- --aparte-progress-label: var(--aparte-text);
292
217
 
293
218
  /* Scroll-to-bottom button */
294
219
  --aparte-scroll-btn-size: 36px;
295
- --aparte-scroll-btn-bg: var(--aparte-surface-1);
296
- --aparte-scroll-btn-color: var(--aparte-text);
297
- --aparte-scroll-btn-border: var(--aparte-border);
298
220
  --aparte-scroll-btn-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
299
- --aparte-scroll-btn-hover-bg: var(--aparte-surface-2);
300
221
 
301
- /* File Tree */
302
- --aparte-file-tree-bg: var(--aparte-surface-1);
303
- --aparte-file-tree-border: var(--aparte-border);
304
- --aparte-file-tree-header-bg: var(--aparte-surface-2);
305
- --aparte-file-tree-hover: var(--aparte-surface-2);
306
- --aparte-file-tree-title: var(--aparte-text-muted);
307
- /* Git-status file colours reuse the semantic status tokens by default. */
308
- --aparte-file-status-added: var(--aparte-success);
309
- --aparte-file-status-modified: var(--aparte-info);
310
- --aparte-file-status-deleted: var(--aparte-error);
311
222
 
312
223
  /* Error segment */
313
224
  --aparte-error-bg: #fef2f2;
@@ -326,9 +237,7 @@
326
237
  --aparte-prose-list-indent: 1.5em;
327
238
  --aparte-prose-list-margin: 0.4em 0;
328
239
  --aparte-prose-li-margin: 0.15em 0;
329
- --aparte-prose-blockquote-border: var(--aparte-border);
330
240
  --aparte-prose-blockquote-border-width: 3px;
331
- --aparte-prose-code-bg: var(--aparte-surface-2);
332
241
 
333
242
  /* Viewport */
334
243
  --aparte-viewport-padding: 16px;
@@ -337,35 +246,20 @@
337
246
  bubble and the composer — this restores the symmetry rather than inventing a
338
247
  value. Set it to 0 for a flush composer (a full-bleed mobile shell with a docked
339
248
  keyboard is the legitimate case). */
340
- --aparte-chat-bottom-gap: var(--aparte-space-8, 16px);
341
249
 
342
- /* Content */
343
- --aparte-content-line-height: var(--aparte-line-height-loose, 1.7);
344
- --aparte-cursor-color: var(--aparte-primary);
345
250
 
346
251
  /* Status */
347
252
  --aparte-status-font-size: 13px;
348
253
 
349
254
  /* Input (composer) */
350
255
  --aparte-input-font-size: 14px;
351
- --aparte-input-line-height: var(--aparte-line-height-normal, 1.5);
352
256
  --aparte-input-padding-x: 12px;
353
257
  --aparte-input-padding-y: 10px;
354
258
 
355
259
  /* Conversation List */
356
260
  --aparte-conv-list-gap: 2px;
357
261
  --aparte-conv-item-padding: 7px 10px;
358
- --aparte-conv-item-radius: var(--aparte-radius-md);
359
- --aparte-conv-item-color: var(--aparte-text-muted);
360
- --aparte-conv-item-color-active: var(--aparte-text);
361
- --aparte-conv-item-bg-hover: var(--aparte-surface-3);
362
- --aparte-conv-item-bg-active: var(--aparte-surface-3);
363
262
  --aparte-conv-item-font-size: 0.8125rem;
364
- --aparte-conv-item-font-weight-active: var(--aparte-font-weight-medium, 500);
365
- --aparte-conv-delete-color: var(--aparte-text-muted);
366
- --aparte-conv-delete-bg-hover: var(--aparte-error);
367
- --aparte-conv-delete-color-hover: var(--aparte-text-inverse);
368
- --aparte-conv-delete-radius: var(--aparte-radius-sm);
369
263
  --aparte-conv-item-gap: 6px;
370
264
  --aparte-conv-action-btn-size: 20px;
371
265
  }
@@ -389,9 +283,6 @@
389
283
  --aparte-text: #f2eee7;
390
284
  --aparte-text-muted: #a89bb6;
391
285
  --aparte-text-inverse: #17141c;
392
- --aparte-name-color: #f2eee7;
393
- --aparte-content-color: #ece8e2;
394
- --aparte-timestamp-color: #7a7088;
395
286
 
396
287
  /* Borders */
397
288
  --aparte-border: #342a40;
@@ -400,39 +291,8 @@
400
291
  --aparte-primary: #d9a24b;
401
292
  --aparte-primary-hover: #e7c588;
402
293
 
403
- /* Input */
404
- --aparte-input-bg: #211b28;
405
- --aparte-input-border: #342a40;
406
- --aparte-input-text: #f2eee7;
407
- --aparte-input-placeholder: #7a7088;
408
-
409
- /* Status */
410
- --aparte-status-color: #94a3b8;
411
-
412
- /* Thinking */
413
- --aparte-thinking-border: #334155;
414
- --aparte-thinking-bg: #1e293b;
415
- --aparte-thinking-text: #94a3b8;
416
- --aparte-thinking-content: #e5e7eb;
417
- --aparte-thinking-content-bg: #0f172a;
418
-
419
- /* Code */
420
- --aparte-code-bg: #1e293b;
421
- --aparte-code-header-bg: #334155;
422
- --aparte-code-border: #475569;
423
- --aparte-code-header-text: #94a3b8;
424
-
425
- /* Progress */
426
- --aparte-progress-bar-bg: #334155;
294
+ /* Scroll-to-bottom button */
427
295
  --aparte-scroll-btn-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
428
- --aparte-progress-label: #e5e7eb;
429
-
430
- /* File Tree */
431
- --aparte-file-tree-bg: #1e293b;
432
- --aparte-file-tree-border: #334155;
433
- --aparte-file-tree-header-bg: #0f172a;
434
- --aparte-file-tree-hover: #334155;
435
- --aparte-file-tree-title: #94a3b8;
436
296
 
437
297
  /* Error segment */
438
298
  --aparte-error-bg: #2d1b1b;
@@ -440,15 +300,154 @@
440
300
  --aparte-error-solid: #f87171;
441
301
  --aparte-error-text: #fca5a5;
442
302
  --aparte-error-title: #fecaca;
303
+ }
304
+
305
+ /* =========================================
306
+ Derived layer — re-anchored, on purpose
307
+
308
+ Every value below READS another variable. A custom property is substituted
309
+ where it is DECLARED, so a derived value declared only on `:root` is computed
310
+ once against the root palette and merely inherits after that: overriding
311
+ `--aparte-primary` on a subtree moved the send button and nothing else, and
312
+ `[data-aparte-theme="dark"]` — which overrides eight masters — left every
313
+ derived value on its light substitution.
314
+
315
+ So the layer is declared again at each anchor where a palette can change:
316
+ the document root, a shadow host, any themed subtree, any aparté host, and
317
+ the `aparte-chat` element itself (per-instance theming). Substitution then
318
+ re-runs there against that element's own masters.
319
+
320
+ Only DERIVED values may live here. The literal palette stays in the block
321
+ above with `:root, :host` alone — widening THAT list would re-declare the
322
+ light literals on an `<aparte-chat>` nested in a dark wrapper, where a local
323
+ declaration beats the inherited dark value, and the chat would go light.
324
+ `scripts/check-derived-vars.mjs` holds both halves of that rule.
325
+ ========================================= */
326
+ :root,
327
+ :host,
328
+ [data-aparte-theme],
329
+ [data-aparte-host],
330
+ aparte-chat {
331
+ /* Borders */
332
+ --aparte-border-focus: var(--aparte-primary);
333
+
334
+ /* Component-specific radius (overridable per app) */
335
+ --aparte-radius-input: var(--aparte-radius-lg);
336
+ --aparte-radius-input-footer: var(--aparte-radius-lg);
337
+ --aparte-radius-send-btn: var(--aparte-radius-md);
338
+ --aparte-radius-action-btn: var(--aparte-radius-sm);
339
+ --aparte-radius-select: var(--aparte-radius-md);
340
+ --aparte-radius-avatar: var(--aparte-radius-md);
341
+ --aparte-radius-bubble: var(--aparte-radius-lg);
342
+ --aparte-radius-code: var(--aparte-radius-lg);
343
+ --aparte-radius-thinking: var(--aparte-radius-lg);
344
+ --aparte-radius-error: var(--aparte-radius-md);
345
+
346
+ /* Focus ring — derived from the accent so it themes automatically. */
347
+ --aparte-focus-ring: 0 0 0 3px color-mix(in srgb, var(--aparte-primary) 15%, transparent);
348
+
349
+ /* Messages */
350
+ --aparte-message-content-text-user: var(--aparte-text);
351
+ --aparte-message-content-text-assistant: var(--aparte-text);
352
+ --aparte-surface: var(--aparte-surface-1);
353
+ --aparte-surface-hover: var(--aparte-surface-2);
354
+ --aparte-text-secondary: var(--aparte-text-muted);
355
+ --aparte-accent: var(--aparte-primary);
356
+ --aparte-success-border: var(--aparte-success);
357
+ --aparte-success-surface: color-mix(in oklch, var(--aparte-success) 12%, transparent);
358
+ --aparte-error-border-soft: var(--aparte-error);
359
+ --aparte-error-surface: color-mix(in oklch, var(--aparte-error) 12%, transparent);
360
+
361
+ /* Attachments */
362
+ --aparte-attachment-chip-bg: var(--aparte-surface-2);
363
+ --aparte-attachment-chip-border: var(--aparte-border);
364
+ --aparte-attachment-chip-radius: var(--aparte-radius-sm);
365
+ --aparte-attachment-chip-color: var(--aparte-text);
443
366
 
444
- /* Prose */
445
- --aparte-prose-blockquote-border: #475569;
446
- --aparte-prose-code-bg: #334155;
367
+ /* Attachment thumbnail tile (composer preview + sent-message strip) */
368
+ --aparte-thumb-radius: var(--aparte-radius-lg);
447
369
 
448
- /* Conversation List (dark overrides) */
449
- --aparte-conv-item-bg-hover: #334155;
450
- --aparte-conv-item-bg-active: #334155;
451
- --aparte-conv-delete-color: #64748b;
370
+ /* Action Bar */
371
+ --aparte-action-bar-btn-color: var(--aparte-text-muted);
372
+ --aparte-action-bar-btn-hover-bg: var(--aparte-surface-2);
373
+ --aparte-action-bar-btn-hover-color: var(--aparte-text);
374
+
375
+ /* Branch Picker */
376
+ --aparte-branch-picker-btn-color: var(--aparte-text-muted);
377
+ --aparte-branch-picker-btn-hover-color: var(--aparte-text);
378
+ --aparte-branch-picker-label-color: var(--aparte-text-muted);
379
+
380
+ /* Avatars */
381
+ --aparte-avatar-radius: var(--aparte-radius-avatar);
382
+ --aparte-avatar-bg-user: var(--aparte-primary);
383
+ --aparte-avatar-text-user: var(--aparte-text-inverse);
384
+ --aparte-avatar-bg-assistant: var(--aparte-surface-3);
385
+ --aparte-avatar-text-assistant: var(--aparte-text-inverse);
386
+
387
+ /* Text Sizes */
388
+ --aparte-name-color: var(--aparte-text);
389
+ --aparte-timestamp-color: var(--aparte-text-muted);
390
+ --aparte-content-color: var(--aparte-text);
391
+
392
+ /* Input */
393
+ --aparte-input-bg: var(--aparte-surface-1);
394
+ --aparte-input-border: var(--aparte-border);
395
+ --aparte-input-text: var(--aparte-text);
396
+ --aparte-input-placeholder: var(--aparte-text-muted);
397
+ --aparte-input-focus-border: var(--aparte-primary);
398
+
399
+ /* Status Indicator */
400
+ --aparte-status-color: var(--aparte-text-muted);
401
+
402
+ /* Thinking Segment */
403
+ --aparte-thinking-border: var(--aparte-border);
404
+ --aparte-thinking-bg: var(--aparte-surface-2);
405
+ --aparte-thinking-text: var(--aparte-text-muted);
406
+ --aparte-thinking-content: var(--aparte-text);
407
+ --aparte-thinking-content-bg: var(--aparte-surface-1);
408
+
409
+ /* Code Blocks */
410
+ --aparte-code-bg: var(--aparte-surface-1);
411
+ --aparte-code-header-bg: var(--aparte-surface-2);
412
+ --aparte-code-border: var(--aparte-border);
413
+ --aparte-code-header-text: var(--aparte-text-muted);
414
+
415
+ /* Progress */
416
+ --aparte-progress-bar-bg: var(--aparte-surface-3);
417
+ --aparte-progress-bar-fill: var(--aparte-primary);
418
+ --aparte-progress-label: var(--aparte-text);
419
+
420
+ /* Scroll-to-bottom button */
421
+ --aparte-scroll-btn-bg: var(--aparte-surface-1);
422
+ --aparte-scroll-btn-color: var(--aparte-text);
423
+ --aparte-scroll-btn-border: var(--aparte-border);
424
+ --aparte-scroll-btn-hover-bg: var(--aparte-surface-2);
425
+
426
+ /* Prose (segment-content) */
427
+ --aparte-prose-blockquote-border: var(--aparte-border);
428
+ --aparte-prose-code-bg: var(--aparte-surface-2);
429
+
430
+ /* Viewport */
431
+ --aparte-chat-bottom-gap: var(--aparte-space-8, 16px);
432
+
433
+ /* Content */
434
+ --aparte-content-line-height: var(--aparte-line-height-loose, 1.7);
435
+ --aparte-cursor-color: var(--aparte-primary);
436
+
437
+ /* Input (composer) */
438
+ --aparte-input-line-height: var(--aparte-line-height-normal, 1.5);
439
+
440
+ /* Conversation List */
441
+ --aparte-conv-item-radius: var(--aparte-radius-md);
442
+ --aparte-conv-item-color: var(--aparte-text-muted);
443
+ --aparte-conv-item-color-active: var(--aparte-text);
444
+ --aparte-conv-item-bg-hover: var(--aparte-surface-3);
445
+ --aparte-conv-item-bg-active: var(--aparte-surface-3);
446
+ --aparte-conv-item-font-weight-active: var(--aparte-font-weight-medium, 500);
447
+ --aparte-conv-delete-color: var(--aparte-text-muted);
448
+ --aparte-conv-delete-bg-hover: var(--aparte-error);
449
+ --aparte-conv-delete-color-hover: var(--aparte-text-inverse);
450
+ --aparte-conv-delete-radius: var(--aparte-radius-sm);
452
451
  }
453
452
 
454
453
  /* =========================================
@@ -1932,124 +1931,6 @@ details[open] .thinking-toggle {
1932
1931
  background: var(--aparte-code-bg, #ffffff);
1933
1932
  }
1934
1933
 
1935
- /* Terminal */
1936
- .segment-terminal {
1937
- margin: var(--aparte-space-6, 12px) 0;
1938
- font-family: var(--aparte-code-font-family, 'Fira Code', 'Monaco', 'Consolas', monospace);
1939
- font-size: var(--aparte-terminal-font-size, 13px);
1940
- }
1941
-
1942
- .terminal-command-block {
1943
- display: flex;
1944
- align-items: center;
1945
- gap: var(--aparte-space-5, 10px);
1946
- padding: var(--aparte-space-5, 10px) var(--aparte-space-7, 14px);
1947
- background: var(--aparte-terminal-bg, #1e293b);
1948
- border-radius: var(--aparte-radius-terminal);
1949
- color: var(--aparte-terminal-text, #e2e8f0);
1950
- }
1951
-
1952
- .terminal-icon {
1953
- flex-shrink: 0;
1954
- color: var(--aparte-terminal-icon, #64748b);
1955
- display: flex;
1956
- align-items: center;
1957
- }
1958
-
1959
- .terminal-command {
1960
- flex: 1;
1961
- word-break: break-all;
1962
- background: transparent;
1963
- color: inherit;
1964
- font-family: inherit;
1965
- }
1966
-
1967
- .terminal-actions {
1968
- display: flex;
1969
- align-items: center;
1970
- gap: var(--aparte-space-3, 6px);
1971
- flex-shrink: 0;
1972
- }
1973
-
1974
- .terminal-run-btn {
1975
- padding: var(--aparte-space-2, 4px) var(--aparte-space-6, 12px);
1976
- background: var(--aparte-primary, #6366f1);
1977
- color: var(--aparte-on-primary, white);
1978
- border: none;
1979
- border-radius: var(--aparte-radius-sm);
1980
- font-size: var(--aparte-font-size-sm, 12px);
1981
- font-weight: var(--aparte-font-weight-medium, 500);
1982
- cursor: pointer;
1983
- transition: background 0.15s;
1984
- }
1985
-
1986
- .terminal-run-btn:hover {
1987
- background: var(--aparte-primary-hover, #4f46e5);
1988
- }
1989
-
1990
- .terminal-copy-btn {
1991
- width: var(--aparte-terminal-copy-btn-size, 26px);
1992
- height: var(--aparte-terminal-copy-btn-size, 26px);
1993
- padding: 0;
1994
- background: transparent;
1995
- border: none;
1996
- color: var(--aparte-terminal-icon, #64748b);
1997
- cursor: pointer;
1998
- border-radius: var(--aparte-radius-sm);
1999
- display: flex;
2000
- align-items: center;
2001
- justify-content: center;
2002
- }
2003
-
2004
- .terminal-copy-btn:hover {
2005
- background: var(--aparte-terminal-hover, #334155);
2006
- color: var(--aparte-terminal-text, #e2e8f0);
2007
- }
2008
-
2009
- .terminal-running {
2010
- display: flex;
2011
- align-items: center;
2012
- gap: var(--aparte-space-3, 6px);
2013
- color: var(--aparte-terminal-running, #22c55e);
2014
- font-size: var(--aparte-font-size-sm, 12px);
2015
- }
2016
-
2017
- .terminal-running .spinner {
2018
- width: var(--aparte-space-6, 12px);
2019
- height: var(--aparte-space-6, 12px);
2020
- border: 2px solid currentColor;
2021
- border-top-color: transparent;
2022
- border-radius: 50%;
2023
- animation: aparte-spin 0.8s linear infinite;
2024
- }
2025
-
2026
- @keyframes aparte-spin {
2027
- to {
2028
- transform: rotate(360deg);
2029
- }
2030
- }
2031
-
2032
- .terminal-output {
2033
- margin-top: var(--aparte-space-4, 8px);
2034
- padding: var(--aparte-space-5, 10px) var(--aparte-space-7, 14px);
2035
- background: var(--aparte-terminal-output-bg, #0f172a);
2036
- border-radius: var(--aparte-radius-md);
2037
- color: var(--aparte-terminal-output-text, #94a3b8);
2038
- white-space: pre-wrap;
2039
- line-height: var(--aparte-line-height-normal, 1.5);
2040
- max-height: var(--aparte-terminal-output-max-height, 200px);
2041
- overflow-y: auto;
2042
- }
2043
-
2044
- .terminal-error {
2045
- margin-top: var(--aparte-space-3, 6px);
2046
- padding: var(--aparte-space-3, 6px) var(--aparte-space-5, 10px);
2047
- background: var(--aparte-error-bg, #fef2f2);
2048
- border-radius: var(--aparte-radius-sm);
2049
- color: var(--aparte-error-text, #dc2626);
2050
- font-size: var(--aparte-font-size-sm, 12px);
2051
- }
2052
-
2053
1934
  /* Errored bubble state — the whole message carries `data-error` while it holds
2054
1935
  an error segment (set by the bubble in _reflectError). Kept subtle by default
2055
1936
  since the error segment itself is already styled; this is a theming hook —
@@ -2141,50 +2022,6 @@ details[open] .thinking-toggle {
2141
2022
  transition: width 0.3s ease;
2142
2023
  }
2143
2024
 
2144
- /* File Tree */
2145
- .segment-file-tree {
2146
- background: var(--aparte-file-tree-bg, #f8fafc);
2147
- border: var(--aparte-border-width, 1px) solid var(--aparte-file-tree-border, #e2e8f0);
2148
- border-radius: var(--aparte-radius-file-tree);
2149
- margin: var(--aparte-space-6, 12px) 0;
2150
- overflow: hidden;
2151
- font-family: var(--aparte-font-family, system-ui, -apple-system, sans-serif);
2152
- font-size: var(--aparte-font-size-md, 13px);
2153
- }
2154
-
2155
- .file-tree-title {
2156
- padding: var(--aparte-space-5, 10px) var(--aparte-space-7, 14px);
2157
- background: var(--aparte-file-tree-header-bg, #f1f5f9);
2158
- border-bottom: var(--aparte-border-width, 1px) solid var(--aparte-file-tree-border, #e2e8f0);
2159
- font-weight: var(--aparte-font-weight-medium, 500);
2160
- color: var(--aparte-file-tree-title, #475569);
2161
- }
2162
-
2163
- .file-tree-content {
2164
- padding: var(--aparte-space-4, 8px) 0;
2165
- }
2166
-
2167
- .file-node {
2168
- display: flex;
2169
- align-items: center;
2170
- gap: var(--aparte-space-4, 8px);
2171
- padding: var(--aparte-space-2, 4px) var(--aparte-space-7, 14px);
2172
- cursor: default;
2173
- }
2174
-
2175
- .file-node:hover {
2176
- background: var(--aparte-file-tree-hover, #f1f5f9);
2177
- }
2178
-
2179
- .file-node.file-status-added .file-name { color: var(--aparte-file-status-added, #16a34a); }
2180
- .file-node.file-status-modified .file-name { color: var(--aparte-file-status-modified, #0284c7); }
2181
- .file-node.file-status-deleted .file-name { color: var(--aparte-file-status-deleted, #dc2626); text-decoration: line-through; opacity: 0.7; }
2182
-
2183
- .file-icon {
2184
- font-size: var(--aparte-font-size-lg, 14px);
2185
- flex-shrink: 0;
2186
- opacity: 0.7;
2187
- }
2188
2025
 
2189
2026
  /* ─────────────────────────────────────────────────────────────────────────────
2190
2027
  Composer Primitives
package/dist/index.d.ts CHANGED
@@ -19,7 +19,7 @@
19
19
  import './types/event-map.js';
20
20
  import './types/element-map.js';
21
21
  export { AparteSelect, AparteOption, AparteOptgroup, type AparteSelectChangeDetail, type AparteOptgroupToggleEventDetail, AparteProgressSpinner } from './primitives/index.js';
22
- export type { AparteBubbleRole, AparteMessage, AparteContentParser, AparteSendEventDetail, AparteViewportConfig, AparteInputConfig, AparteThemeVariables, AparteStatus, AparteAttachment, AparteMessageBranch, AparteBubbleActionsConfig, AparteBubbleActionName, AparteSegment, AparteSegmentType, AparteTextSegment, AparteThinkingSegment, AparteCodeSegment, AparteTerminalSegment, AparteSegmentRenderer, AparteCustomSegment, AparteToolCallSegment, AparteArtifactSegment, AparteSegmentUpdateEventDetail, AparteAIProvider, AparteAIModel, AparteAIProviderConfigField, AparteAIProviderConfigSchema, AparteModelConfig, ModelStatus, ModelLoadProgress, AparteModelChangeEventDetail, AparteMessageDoneEventDetail, AparteMessageStartEventDetail, AparteMessageErrorEventDetail, AparteMessageAbortedEventDetail, AparteAbortEventDetail, AparteCompactEventDetail, AparteCompactDoneEventDetail, AparteCompactErrorEventDetail, AparteAttachmentPreviewEventDetail, AparteTerminalRunEventDetail, AparteFileGenReadyEventDetail, AparteFileGenErrorEventDetail, AparteMessageInfoEventDetail, AparteSiblingInfo, AparteBranchNavigateEventDetail, ApartePathChangedEventDetail, AparteRetryEventDetail, AparteEditEventDetail, AparteFeedbackEventDetail, AparteActionEventDetail, AparteArtifactStartEventDetail, AparteArtifactDeltaEventDetail, AparteArtifactReadyEventDetail, AparteArtifactRedownloadEventDetail, AparteChatRequest, AparteChatResponse, AparteChatMessage, AparteContentPart, AparteTextPart, AparteImagePart, AparteFilePart, AparteStreamEvent, AparteStreamEventMap, AparteUsage, AparteTool, AparteToolCall, AparteToolResult, AparteToolHandler, AparteToolContext, AparteToolRenderer, AparteToolDecisionDetail, AparteToolApprovalRequestDetail, AparteChatImperativeApi } from './types/index.js';
22
+ export type { AparteBubbleRole, AparteMessage, AparteContentParser, AparteSendEventDetail, AparteViewportConfig, AparteInputConfig, AparteThemeVariables, AparteStatus, AparteAttachment, AparteMessageBranch, AparteBubbleActionsConfig, AparteBubbleActionName, AparteSegment, AparteSegmentType, AparteTextSegment, AparteThinkingSegment, AparteCodeSegment, AparteSegmentRenderer, AparteCustomSegment, AparteToolCallSegment, AparteArtifactSegment, AparteSegmentUpdateEventDetail, AparteAIProvider, AparteAIModel, AparteAIProviderConfigField, AparteAIProviderConfigSchema, AparteModelConfig, ModelStatus, ModelLoadProgress, AparteModelChangeEventDetail, AparteMessageDoneEventDetail, AparteMessageStartEventDetail, AparteMessageErrorEventDetail, AparteMessageAbortedEventDetail, AparteAbortEventDetail, AparteCompactEventDetail, AparteCompactDoneEventDetail, AparteCompactErrorEventDetail, AparteAttachmentPreviewEventDetail, AparteFileGenReadyEventDetail, AparteFileGenErrorEventDetail, AparteMessageInfoEventDetail, AparteSiblingInfo, AparteBranchNavigateEventDetail, ApartePathChangedEventDetail, AparteRetryEventDetail, AparteEditEventDetail, AparteFeedbackEventDetail, AparteActionEventDetail, AparteArtifactStartEventDetail, AparteArtifactDeltaEventDetail, AparteArtifactReadyEventDetail, AparteArtifactRedownloadEventDetail, AparteChatRequest, AparteChatResponse, AparteChatMessage, AparteContentPart, AparteTextPart, AparteImagePart, AparteFilePart, AparteStreamEvent, AparteStreamEventMap, AparteUsage, AparteTool, AparteToolCall, AparteToolResult, AparteToolHandler, AparteToolContext, AparteToolRenderer, AparteToolDecisionDetail, AparteToolApprovalRequestDetail, AparteChatImperativeApi } from './types/index.js';
23
23
  export { AparteErrorCode, AparteError, contentToText } from './types/index.js';
24
24
  export { registerSegmentRenderer, unregisterSegmentRenderer, getSegmentRenderer, collectRendererStyles, registerDefaultRenderers, installDefaultRenderersOnce, declineDefaultRenderers, getAllRenderers } from './renderers/index.js';
25
25
  export { AparteChat } from './components/index.js';
@@ -42,6 +42,7 @@ export { parseAparteEventStream } from './parsers/index.js';
42
42
  export { aparteGlobalConfig, AparteConfig, APARTE_DEFAULT_BUBBLE_ACTIONS, APARTE_DEFAULT_HOST_HANDLERS } from './config/index.js';
43
43
  export type { AparteConfigChangeEventDetail } from './config/index.js';
44
44
  export { resolveConfig, attachConfig, detachConfig, runWithConfig, contextConfig, APARTE_HOST_ATTR } from './config/index.js';
45
+ export { subscribeConfigChange, APARTE_CONFIG_CHANGE } from './config/index.js';
45
46
  export type { AparteConfigAware } from './config/index.js';
46
47
  export type { AparteMarkdownProvider, AparteStreamingMarkdownProvider, AparteStreamingMarkdownRenderer, AparteHighlightProvider, AparteSystemPromptVarsProvider, AparteSkeletonProvider, AparteSkeletonType, AparteLocale, AparteAction, AparteActionZone, AparteIconProvider, AparteIconName, AparteAvatarProvider, AparteStatusRenderer, AparteErrorRenderer, AparteAttachmentRenderer, AparteElicitationFieldRenderer, AparteElicitationFieldContext, AparteElicitationFieldControl, AparteSiblingNavRenderer, AparteBubbleShellRenderer, AparteModelPreference, AparteModelPreferenceProvider, AparteArtifactPreviewBuilder, AparteSanitizer } from './config/index.js';
47
48
  export { APARTE_DEFAULT_ICON_FALLBACKS, APARTE_DEFAULT_SKELETON_FALLBACKS, APARTE_DEFAULT_LOCALE, defaultSanitizer, isSafeUrl } from './config/index.js';
@@ -52,6 +53,7 @@ export { isAwaitingReply } from './utils/is-awaiting-reply.js';
52
53
  export { escapeHtml, escapeAttr } from './utils/escape.js';
53
54
  export { cssEscape } from './utils/css-escape.js';
54
55
  export { uuid } from './utils/uuid.js';
56
+ export { isSegmentSettled, segmentDuration, segmentTiming } from './utils/segments.js';
55
57
  export type { AparteHostHandlersConfig } from './types/models.js';
56
58
  export type { AparteKeyProvider } from './config/aparte-config.js';
57
59
  export type { AparteClientOptions, AparteToolApprovalResolver, AparteCompactionSelector } from './client/aparte-client.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}