@aparte/core 0.7.0 → 0.8.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 (171) hide show
  1. package/README.md +20 -6
  2. package/dist/client/aparte-client.d.ts +113 -47
  3. package/dist/client/aparte-client.d.ts.map +1 -1
  4. package/dist/client/lifecycle-events.d.ts +55 -0
  5. package/dist/client/lifecycle-events.d.ts.map +1 -0
  6. package/dist/client/stream-adapter.d.ts +11 -5
  7. package/dist/client/stream-adapter.d.ts.map +1 -1
  8. package/dist/client/xml-artifact-feed.d.ts +76 -0
  9. package/dist/client/xml-artifact-feed.d.ts.map +1 -0
  10. package/dist/components/bubble/aparte-chat-bubble.d.ts +35 -8
  11. package/dist/components/bubble/aparte-chat-bubble.d.ts.map +1 -1
  12. package/dist/components/chat/aparte-chat.d.ts +0 -6
  13. package/dist/components/chat/aparte-chat.d.ts.map +1 -1
  14. package/dist/components/composer/aparte-composer-action.d.ts +18 -3
  15. package/dist/components/composer/aparte-composer-action.d.ts.map +1 -1
  16. package/dist/components/composer/aparte-composer-add-attachment.d.ts.map +1 -1
  17. package/dist/components/composer/aparte-composer-attachments.d.ts +1 -1
  18. package/dist/components/composer/aparte-composer-attachments.d.ts.map +1 -1
  19. package/dist/components/composer/aparte-composer-cancel.d.ts.map +1 -1
  20. package/dist/components/composer/aparte-composer-input.d.ts +0 -2
  21. package/dist/components/composer/aparte-composer-input.d.ts.map +1 -1
  22. package/dist/components/composer/aparte-composer-send.d.ts +5 -0
  23. package/dist/components/composer/aparte-composer-send.d.ts.map +1 -1
  24. package/dist/components/composer/aparte-composer-toolbar.d.ts +4 -0
  25. package/dist/components/composer/aparte-composer-toolbar.d.ts.map +1 -1
  26. package/dist/components/composer/aparte-composer.d.ts +64 -6
  27. package/dist/components/composer/aparte-composer.d.ts.map +1 -1
  28. package/dist/components/composer/index.d.ts +1 -1
  29. package/dist/components/composer/index.d.ts.map +1 -1
  30. package/dist/components/conversation-list/aparte-conversation-list.d.ts +2 -5
  31. package/dist/components/conversation-list/aparte-conversation-list.d.ts.map +1 -1
  32. package/dist/components/conversation-list/index.d.ts +1 -1
  33. package/dist/components/conversation-list/index.d.ts.map +1 -1
  34. package/dist/components/elicitation/aparte-elicitation.d.ts +63 -3
  35. package/dist/components/elicitation/aparte-elicitation.d.ts.map +1 -1
  36. package/dist/components/index.d.ts +2 -2
  37. package/dist/components/index.d.ts.map +1 -1
  38. package/dist/components/status/aparte-chat-status.d.ts +8 -6
  39. package/dist/components/status/aparte-chat-status.d.ts.map +1 -1
  40. package/dist/components/viewport/aparte-chat-viewport.d.ts +35 -9
  41. package/dist/components/viewport/aparte-chat-viewport.d.ts.map +1 -1
  42. package/dist/config/action-provider.d.ts +4 -4
  43. package/dist/config/aparte-config.d.ts +124 -41
  44. package/dist/config/aparte-config.d.ts.map +1 -1
  45. package/dist/config/attachment-renderer.d.ts +1 -1
  46. package/dist/config/avatar-provider.d.ts +1 -1
  47. package/dist/config/config-context.d.ts +66 -11
  48. package/dist/config/config-context.d.ts.map +1 -1
  49. package/dist/config/elicitation-field-renderer.d.ts +73 -0
  50. package/dist/config/elicitation-field-renderer.d.ts.map +1 -0
  51. package/dist/config/error-renderer.d.ts +1 -1
  52. package/dist/config/icon-provider.d.ts +2 -2
  53. package/dist/config/icon-provider.d.ts.map +1 -1
  54. package/dist/config/index.d.ts +7 -5
  55. package/dist/config/index.d.ts.map +1 -1
  56. package/dist/config/locale.d.ts +43 -2
  57. package/dist/config/locale.d.ts.map +1 -1
  58. package/dist/config/sanitize.d.ts +1 -7
  59. package/dist/config/sanitize.d.ts.map +1 -1
  60. package/dist/config/sibling-nav-renderer.d.ts +1 -1
  61. package/dist/config/skeleton-provider.d.ts +2 -2
  62. package/dist/config/skeleton-provider.d.ts.map +1 -1
  63. package/dist/config/status-renderer.d.ts +1 -1
  64. package/dist/conversations/conversation-controller.d.ts +19 -5
  65. package/dist/conversations/conversation-controller.d.ts.map +1 -1
  66. package/dist/conversations/conversation-manager.d.ts +2 -2
  67. package/dist/conversations/conversation-manager.d.ts.map +1 -1
  68. package/dist/conversations/index.d.ts +1 -1
  69. package/dist/conversations/index.d.ts.map +1 -1
  70. package/dist/conversations/types.d.ts +1 -1
  71. package/dist/custom-elements.json +7962 -6175
  72. package/dist/elicitation/index.d.ts +1 -1
  73. package/dist/elicitation/panel.d.ts +32 -0
  74. package/dist/elicitation/panel.d.ts.map +1 -1
  75. package/dist/elicitation/types.d.ts +29 -2
  76. package/dist/elicitation/types.d.ts.map +1 -1
  77. package/dist/host/aparte-chat-host.d.ts +3 -3
  78. package/dist/host/aparte-chat-host.d.ts.map +1 -1
  79. package/dist/{index-Dn7TH14G.js → index-BieFbKeW.js} +1795 -1238
  80. package/dist/index-BieFbKeW.js.map +1 -0
  81. package/dist/index.css +311 -21
  82. package/dist/index.d.ts +21 -13
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +447 -200
  85. package/dist/index.js.map +1 -1
  86. package/dist/index.node.d.ts +22 -13
  87. package/dist/index.node.d.ts.map +1 -1
  88. package/dist/index.node.js +54 -46
  89. package/dist/index.node.js.map +1 -1
  90. package/dist/interop/element-props.d.ts +1 -1
  91. package/dist/interop/element-props.d.ts.map +1 -1
  92. package/dist/parsers/aparte-stream-parser.d.ts.map +1 -1
  93. package/dist/primitives/index.d.ts +1 -1
  94. package/dist/primitives/index.d.ts.map +1 -1
  95. package/dist/primitives/select/aparte-optgroup.d.ts +15 -4
  96. package/dist/primitives/select/aparte-optgroup.d.ts.map +1 -1
  97. package/dist/primitives/select/aparte-option.d.ts +0 -5
  98. package/dist/primitives/select/aparte-option.d.ts.map +1 -1
  99. package/dist/primitives/select/aparte-select.d.ts +17 -5
  100. package/dist/primitives/select/aparte-select.d.ts.map +1 -1
  101. package/dist/primitives/select/index.d.ts +1 -1
  102. package/dist/primitives/select/index.d.ts.map +1 -1
  103. package/dist/renderers/markdown-stream.d.ts +42 -0
  104. package/dist/renderers/markdown-stream.d.ts.map +1 -0
  105. package/dist/renderers/segment-renderers.d.ts +20 -14
  106. package/dist/renderers/segment-renderers.d.ts.map +1 -1
  107. package/dist/renderers/segments/artifact/binary-file.d.ts +45 -0
  108. package/dist/renderers/segments/artifact/binary-file.d.ts.map +1 -0
  109. package/dist/renderers/segments/artifact/card.d.ts +3 -0
  110. package/dist/renderers/segments/artifact/card.d.ts.map +1 -0
  111. package/dist/renderers/segments/artifact/preview-document.d.ts +27 -0
  112. package/dist/renderers/segments/artifact/preview-document.d.ts.map +1 -0
  113. package/dist/renderers/segments/artifact/shared.d.ts +12 -0
  114. package/dist/renderers/segments/artifact/shared.d.ts.map +1 -0
  115. package/dist/renderers/segments/code.d.ts +3 -0
  116. package/dist/renderers/segments/code.d.ts.map +1 -0
  117. package/dist/renderers/segments/error.d.ts +3 -0
  118. package/dist/renderers/segments/error.d.ts.map +1 -0
  119. package/dist/renderers/segments/file-tree.d.ts +3 -0
  120. package/dist/renderers/segments/file-tree.d.ts.map +1 -0
  121. package/dist/renderers/segments/pipeline-waiting.d.ts +3 -0
  122. package/dist/renderers/segments/pipeline-waiting.d.ts.map +1 -0
  123. package/dist/renderers/segments/progress.d.ts +3 -0
  124. package/dist/renderers/segments/progress.d.ts.map +1 -0
  125. package/dist/renderers/segments/terminal.d.ts +3 -0
  126. package/dist/renderers/segments/terminal.d.ts.map +1 -0
  127. package/dist/renderers/segments/text.d.ts +10 -0
  128. package/dist/renderers/segments/text.d.ts.map +1 -0
  129. package/dist/renderers/segments/thinking.d.ts +3 -0
  130. package/dist/renderers/segments/thinking.d.ts.map +1 -0
  131. package/dist/renderers/segments/tool-call.d.ts +3 -0
  132. package/dist/renderers/segments/tool-call.d.ts.map +1 -0
  133. package/dist/runtime/message-repository.d.ts +3 -3
  134. package/dist/runtime/message-repository.d.ts.map +1 -1
  135. package/dist/transport/backend-handler.d.ts +19 -7
  136. package/dist/transport/backend-handler.d.ts.map +1 -1
  137. package/dist/transport/backend-transport.d.ts +1 -1
  138. package/dist/transport/backend-transport.d.ts.map +1 -1
  139. package/dist/transport/direct-transport.d.ts +4 -4
  140. package/dist/transport/direct-transport.d.ts.map +1 -1
  141. package/dist/transport/index.d.ts +2 -2
  142. package/dist/transport/index.d.ts.map +1 -1
  143. package/dist/transport/types.d.ts +3 -3
  144. package/dist/types/element-map.d.ts +69 -0
  145. package/dist/types/element-map.d.ts.map +1 -0
  146. package/dist/types/event-map.d.ts +84 -23
  147. package/dist/types/event-map.d.ts.map +1 -1
  148. package/dist/types/events.d.ts +206 -64
  149. package/dist/types/events.d.ts.map +1 -1
  150. package/dist/types/index.d.ts +4 -5
  151. package/dist/types/index.d.ts.map +1 -1
  152. package/dist/types/model-provider.d.ts +100 -54
  153. package/dist/types/model-provider.d.ts.map +1 -1
  154. package/dist/types/models.d.ts +29 -7
  155. package/dist/types/models.d.ts.map +1 -1
  156. package/dist/types/segments.d.ts +1 -8
  157. package/dist/types/segments.d.ts.map +1 -1
  158. package/dist/types/theming.d.ts +25 -37
  159. package/dist/types/theming.d.ts.map +1 -1
  160. package/dist/types/tools.d.ts +60 -15
  161. package/dist/types/tools.d.ts.map +1 -1
  162. package/dist/utils/escape.d.ts +46 -0
  163. package/dist/utils/escape.d.ts.map +1 -0
  164. package/dist/utils/files-to-attachments.d.ts +18 -1
  165. package/dist/utils/files-to-attachments.d.ts.map +1 -1
  166. package/dist/utils/uuid.d.ts +26 -0
  167. package/dist/utils/uuid.d.ts.map +1 -0
  168. package/package.json +3 -5
  169. package/dist/index-Dn7TH14G.js.map +0 -1
  170. package/dist/types/providers.d.ts +0 -93
  171. package/dist/types/providers.d.ts.map +0 -1
package/dist/index.css CHANGED
@@ -231,6 +231,39 @@
231
231
  --aparte-thinking-toggle-size: 9px;
232
232
  --aparte-thinking-rail-width: 2px;
233
233
 
234
+ /* Elicitation — the panel a tool's question is asked in.
235
+ These exist because the panel's CSS used to be a \3c style> injected from JS with
236
+ every value hardcoded, so it was the one surface in the library that could not
237
+ be themed and did not appear in the generated CSS reference. */
238
+ --aparte-elic-gap: 6px;
239
+ --aparte-elic-padding: 6px 4px;
240
+ --aparte-elic-max-height: 50vh;
241
+ --aparte-elic-field-gap: 8px;
242
+ --aparte-elic-message-size: 0.82rem;
243
+ --aparte-elic-title-size: 0.8rem;
244
+ --aparte-elic-desc-size: 0.76rem;
245
+ --aparte-elic-option-padding: 7px 10px;
246
+ --aparte-elic-option-radius: 8px;
247
+ --aparte-elic-option-title-size: 0.875rem;
248
+ --aparte-elic-option-desc-size: 0.78rem;
249
+ --aparte-elic-control-size: 15px;
250
+ --aparte-elic-input-radius: 6px;
251
+ --aparte-elic-textarea-min-height: 64px;
252
+ --aparte-elic-skip-size: 0.8rem;
253
+ --aparte-elic-step-size: 0.78rem;
254
+ --aparte-elic-step-padding: 4px 2px;
255
+ --aparte-elic-step-gap: 14px;
256
+ /* Tabs, not pills.
257
+ Two passes to get here, both wrong for the same reason — decorating a control
258
+ instead of choosing what it IS. First a fully-round pill filled with the primary
259
+ colour: the only 9999px thing in a panel built from 4/6/8px corners, and it read
260
+ as a second send button. Then a small bordered rectangle: still a button.
261
+ A step indicator is a TAB — text on a rail, and the current one carries a thick
262
+ underline. No box, no fill, no border. */
263
+ --aparte-elic-step-underline: 2px;
264
+ /* Space kept clear at the end of the tab rail for the corner escape. */
265
+ --aparte-elic-dismiss-room: 72px;
266
+
234
267
  /* Code Blocks */
235
268
  --aparte-code-bg: var(--aparte-surface-1);
236
269
  --aparte-code-header-bg: var(--aparte-surface-2);
@@ -299,6 +332,12 @@
299
332
 
300
333
  /* Viewport */
301
334
  --aparte-viewport-padding: 16px;
335
+ /* Breathing room UNDER the composer, so it does not sit flush against the bottom
336
+ edge of a full-height chat. Same 16px the viewport already puts between the last
337
+ bubble and the composer — this restores the symmetry rather than inventing a
338
+ value. Set it to 0 for a flush composer (a full-bleed mobile shell with a docked
339
+ keyboard is the legitimate case). */
340
+ --aparte-chat-bottom-gap: var(--aparte-space-8, 16px);
302
341
 
303
342
  /* Content */
304
343
  --aparte-content-line-height: var(--aparte-line-height-loose, 1.7);
@@ -435,6 +474,12 @@ aparte-chat,
435
474
  height: 100%;
436
475
  width: 100%;
437
476
  overflow: hidden;
477
+ /* The composer used to touch the bottom edge as soon as a conversation started: the
478
+ viewport gives 16px above the composer and there was nothing below it. An app
479
+ cannot fix this from outside without padding the container, which also shrinks the
480
+ scroll area — so the transcript would stop before the edge instead of scrolling to
481
+ it. That makes the gap ours. */
482
+ padding-block-end: var(--aparte-chat-bottom-gap, var(--aparte-space-8, 16px));
438
483
  }
439
484
 
440
485
  /* The viewport takes the space left by the composer; the standalone height:100%
@@ -447,7 +492,7 @@ aparte-chat > aparte-chat-viewport,
447
492
  min-height: 0;
448
493
  }
449
494
 
450
- /* Model-selection gate (opt-in via AparteConfig.setRequireModelSelection): grey the
495
+ /* Model-selection gate (opt-in via aparteGlobalConfig.setRequireModelSelection): grey the
451
496
  composer and block its send button until a model is selected — e.g. while the
452
497
  model selector is still fetching. Ungates automatically on selection.
453
498
  Unscoped so it greys the composer in EVERY host (vanilla shell + all wrappers),
@@ -459,6 +504,240 @@ aparte-composer[data-model-gated] aparte-composer-send {
459
504
  pointer-events: none;
460
505
  }
461
506
 
507
+ /* Panel mode: the composer is answering a question, not composing a message.
508
+ The text input goes, and so does the attachment picker — an affordance nothing
509
+ can honour is not rendered (ratified decision #8), and it stayed clickable
510
+ through a whole elicitation. The attachments strip stays: pending attachments
511
+ are the user's STATE, not an action to offer. So does the toolbar —
512
+ switching model still does something. */
513
+ aparte-composer[data-panel-active] aparte-composer-input,
514
+ aparte-composer[data-panel-active] aparte-composer-add-attachment {
515
+ display: none;
516
+ }
517
+
518
+ /* ─────────────────────────────────────────────────────────────────────────────
519
+ The elicitation panel — a tool asking the user something, inside the composer.
520
+
521
+ This lived in a template string injected as a \3c style> from
522
+ `aparte-elicitation.ts`, with every size and radius hardcoded. Three costs, all
523
+ paid: it was the one surface in the library that could not be themed, its
524
+ variables were absent from the generated CSS reference, and the injection was a
525
+ document singleton that was never re-created if anything removed it — the exact
526
+ latent defect `injectRendererStyles` had until this release.
527
+ ───────────────────────────────────────────────────────────────────────────── */
528
+ .aparte-elic-panel {
529
+ display: flex;
530
+ flex-direction: column;
531
+ gap: var(--aparte-elic-gap, 6px);
532
+ padding: var(--aparte-elic-padding, 6px 4px);
533
+ width: 100%;
534
+ box-sizing: border-box;
535
+ max-height: var(--aparte-elic-max-height, 50vh);
536
+ /* The panel itself does not scroll: its BODY does, so the tabs stay at the top and
537
+ the corner escape stays put instead of sliding under the fold. */
538
+ overflow: hidden;
539
+ /* The dismiss corner positions against this. */
540
+ position: relative;
541
+ }
542
+
543
+ .aparte-elic-body {
544
+ flex: 1 1 auto;
545
+ /* Without this a flex child refuses to shrink below its content and the scroll
546
+ never engages — the classic flexbox min-height trap. */
547
+ min-height: 0;
548
+ overflow-y: auto;
549
+ /* A thin, themed scrollbar: the native one is a grey slab across a soft card. */
550
+ scrollbar-width: thin;
551
+ scrollbar-color: var(--aparte-border, rgba(128, 128, 128, 0.3)) transparent;
552
+ }
553
+
554
+ .aparte-elic-message {
555
+ margin: 0 6px 6px;
556
+ font-size: var(--aparte-elic-message-size, 0.82rem);
557
+ font-weight: var(--aparte-font-weight-semibold, 600);
558
+ color: var(--aparte-text);
559
+ line-height: 1.4;
560
+ }
561
+
562
+ /* One question per field, separated so a form of several reads as several. */
563
+ .aparte-elic-field + .aparte-elic-field {
564
+ margin-top: var(--aparte-elic-field-gap, 8px);
565
+ padding-top: var(--aparte-elic-field-gap, 8px);
566
+ border-top: var(--aparte-border-width, 1px) solid var(--aparte-border, rgba(128, 128, 128, 0.12));
567
+ }
568
+
569
+ .aparte-elic-title {
570
+ margin: 0 6px 4px;
571
+ font-size: var(--aparte-elic-title-size, 0.8rem);
572
+ font-weight: var(--aparte-font-weight-semibold, 600);
573
+ color: var(--aparte-text);
574
+ }
575
+
576
+ .aparte-elic-desc {
577
+ margin: 0 6px 6px;
578
+ font-size: var(--aparte-elic-desc-size, 0.76rem);
579
+ color: var(--aparte-text-muted, rgba(128, 128, 128, 0.75));
580
+ }
581
+
582
+ .aparte-elic-options {
583
+ display: flex;
584
+ flex-direction: column;
585
+ gap: 1px;
586
+ }
587
+
588
+ .aparte-elic-option {
589
+ display: flex;
590
+ align-items: flex-start;
591
+ gap: 10px;
592
+ padding: var(--aparte-elic-option-padding, 7px 10px);
593
+ border-radius: var(--aparte-elic-option-radius, 8px);
594
+ cursor: pointer;
595
+ border: var(--aparte-border-width, 1px) solid transparent;
596
+ transition: background 0.12s, border-color 0.12s;
597
+ }
598
+
599
+ .aparte-elic-option:hover {
600
+ background: var(--aparte-surface-2, rgba(128, 128, 128, 0.08));
601
+ border-color: var(--aparte-border, rgba(128, 128, 128, 0.15));
602
+ }
603
+
604
+ .aparte-elic-control {
605
+ margin-top: 3px;
606
+ flex-shrink: 0;
607
+ accent-color: var(--aparte-primary, #6366f1);
608
+ width: var(--aparte-elic-control-size, 15px);
609
+ height: var(--aparte-elic-control-size, 15px);
610
+ cursor: pointer;
611
+ }
612
+
613
+ .aparte-elic-option-body {
614
+ display: flex;
615
+ flex-direction: column;
616
+ gap: 2px;
617
+ flex: 1;
618
+ }
619
+
620
+ .aparte-elic-option-title {
621
+ font-size: var(--aparte-elic-option-title-size, 0.875rem);
622
+ font-weight: var(--aparte-font-weight-medium, 500);
623
+ color: var(--aparte-text, inherit);
624
+ line-height: 1.4;
625
+ }
626
+
627
+ .aparte-elic-option-desc {
628
+ font-size: var(--aparte-elic-option-desc-size, 0.78rem);
629
+ color: var(--aparte-text-muted, rgba(128, 128, 128, 0.75));
630
+ line-height: 1.4;
631
+ }
632
+
633
+ .aparte-elic-other-input,
634
+ .aparte-elic-text {
635
+ margin-top: 4px;
636
+ width: 100%;
637
+ padding: 6px 8px;
638
+ border: var(--aparte-border-width, 1px) solid var(--aparte-border, rgba(128, 128, 128, 0.2));
639
+ border-radius: var(--aparte-elic-input-radius, 6px);
640
+ font-size: var(--aparte-elic-option-title-size, 0.875rem);
641
+ background: var(--aparte-surface-2, rgba(128, 128, 128, 0.06));
642
+ color: var(--aparte-text, inherit);
643
+ outline: none;
644
+ box-sizing: border-box;
645
+ font-family: inherit;
646
+ }
647
+
648
+ textarea.aparte-elic-text {
649
+ min-height: var(--aparte-elic-textarea-min-height, 64px);
650
+ resize: vertical;
651
+ }
652
+
653
+ .aparte-elic-other-input:focus,
654
+ .aparte-elic-text:focus {
655
+ border-color: var(--aparte-primary, #6366f1);
656
+ }
657
+
658
+ .aparte-elic-option--recommended {
659
+ border-color: var(--aparte-primary, #6366f1);
660
+ background: color-mix(in srgb, var(--aparte-primary, #6366f1) 6%, transparent);
661
+ }
662
+
663
+ /* The whole-request escape, in the corner and out of the way of anything that
664
+ answers a question. It used to be a row at the bottom beside the button that
665
+ advances through the form, and that adjacency promised "skip this question" while
666
+ it declines the lot. */
667
+ .aparte-elic-dismiss {
668
+ position: absolute;
669
+ top: 0;
670
+ inset-inline-end: 0;
671
+ z-index: 1;
672
+ }
673
+
674
+ .aparte-elic-skip {
675
+ border: none;
676
+ background: transparent;
677
+ color: var(--aparte-text-muted, rgba(128, 128, 128, 0.75));
678
+ font-size: var(--aparte-elic-skip-size, 0.8rem);
679
+ cursor: pointer;
680
+ padding: 4px 8px;
681
+ border-radius: var(--aparte-elic-input-radius, 6px);
682
+ font-family: inherit;
683
+ }
684
+
685
+ .aparte-elic-skip:hover {
686
+ background: var(--aparte-surface-2, rgba(128, 128, 128, 0.08));
687
+ color: var(--aparte-text);
688
+ }
689
+
690
+ /* One question at a time: a chip per question, and the chip is also how you go
691
+ back. In this layout the fields are siblings with only one shown, so the
692
+ separator between them would draw a border above whichever one is visible. */
693
+ .aparte-elic-panel--stepped .aparte-elic-field + .aparte-elic-field {
694
+ margin-top: 0;
695
+ padding-top: 0;
696
+ border-top: none;
697
+ }
698
+
699
+ /* The tab rail: a hairline the tabs sit on, so the active underline reads as a tab
700
+ rather than as a dash floating under a word. */
701
+ .aparte-elic-steps {
702
+ display: flex;
703
+ flex-wrap: wrap;
704
+ gap: var(--aparte-elic-step-gap, 14px);
705
+ /* Room on the end for the corner escape, so the tabs never run under it. */
706
+ margin: 0 var(--aparte-elic-dismiss-room, 72px) 8px 6px;
707
+ border-bottom: var(--aparte-border-width, 1px) solid var(--aparte-border, rgba(128, 128, 128, 0.15));
708
+ }
709
+
710
+ .aparte-elic-step {
711
+ border: none;
712
+ background: transparent;
713
+ color: var(--aparte-text-muted, rgba(128, 128, 128, 0.75));
714
+ font-size: var(--aparte-elic-step-size, 0.78rem);
715
+ font-family: inherit;
716
+ padding: var(--aparte-elic-step-padding, 4px 2px);
717
+ cursor: pointer;
718
+ /* Reserved on every tab, so switching does not shift the text by two pixels. */
719
+ border-bottom: var(--aparte-elic-step-underline, 2px) solid transparent;
720
+ /* The underline sits ON the rail, not above it. */
721
+ margin-bottom: calc(-1 * var(--aparte-border-width, 1px));
722
+ }
723
+
724
+ /* Answered: readable, but it is not where you are. */
725
+ .aparte-elic-step[data-answered] {
726
+ color: var(--aparte-text);
727
+ }
728
+
729
+ .aparte-elic-step[aria-selected='true'] {
730
+ color: var(--aparte-text);
731
+ font-weight: var(--aparte-font-weight-semibold, 600);
732
+ border-bottom-color: var(--aparte-primary, #6366f1);
733
+ }
734
+
735
+ .aparte-elic-step:hover:not([aria-selected='true']) {
736
+ color: var(--aparte-text);
737
+ border-bottom-color: var(--aparte-border, rgba(128, 128, 128, 0.35));
738
+ }
739
+
740
+
462
741
  aparte-composer {
463
742
  flex: 0 0 auto;
464
743
  }
@@ -823,7 +1102,7 @@ aparte-chat-bubble {
823
1102
  }
824
1103
 
825
1104
  /* Only an image tile the app declared it can preview is a button — see
826
- AparteConfig.setHostHandlers(). Undeclared, it is a picture, not a control. */
1105
+ aparteGlobalConfig.setHostHandlers(). Undeclared, it is a picture, not a control. */
827
1106
  .aparte-thumb--image[role='button'] {
828
1107
  cursor: pointer;
829
1108
  }
@@ -1439,48 +1718,55 @@ aparte-chat-status:not([visible]) {
1439
1718
  }
1440
1719
 
1441
1720
  .aparte-content p,
1442
- .segment-content p {
1721
+ .segment-content p,
1722
+ .thinking-content p {
1443
1723
  margin: var(--aparte-prose-p-margin, 0.4em 0);
1444
1724
  }
1445
1725
 
1446
1726
  .aparte-content p:first-child,
1447
- .segment-content p:first-child {
1727
+ .segment-content p:first-child,
1728
+ .thinking-content p:first-child {
1448
1729
  margin-top: 0;
1449
1730
  }
1450
1731
 
1451
1732
  .aparte-content p:last-child,
1452
- .segment-content p:last-child {
1733
+ .segment-content p:last-child,
1734
+ .thinking-content p:last-child {
1453
1735
  margin-bottom: 0;
1454
1736
  }
1455
1737
 
1456
- .aparte-content h1, .segment-content h1 { font-size: var(--aparte-prose-h1-size, 1.4em); font-weight: var(--aparte-font-weight-semibold, 600); margin: 0.6em 0 0.2em; }
1457
- .aparte-content h2, .segment-content h2 { font-size: var(--aparte-prose-h2-size, 1.25em); font-weight: var(--aparte-font-weight-semibold, 600); margin: 0.5em 0 0.2em; }
1458
- .aparte-content h3, .segment-content h3 { font-size: var(--aparte-prose-h3-size, 1.1em); font-weight: var(--aparte-font-weight-semibold, 600); margin: 0.4em 0 0.15em; }
1459
- .aparte-content h4, .segment-content h4,
1460
- .aparte-content h5, .segment-content h5,
1461
- .aparte-content h6, .segment-content h6 { font-size: 1em; font-weight: var(--aparte-font-weight-semibold, 600); margin: 0.3em 0 0.1em; }
1738
+ .aparte-content h1, .segment-content h1, .thinking-content h1 { font-size: var(--aparte-prose-h1-size, 1.4em); font-weight: var(--aparte-font-weight-semibold, 600); margin: 0.6em 0 0.2em; }
1739
+ .aparte-content h2, .segment-content h2, .thinking-content h2 { font-size: var(--aparte-prose-h2-size, 1.25em); font-weight: var(--aparte-font-weight-semibold, 600); margin: 0.5em 0 0.2em; }
1740
+ .aparte-content h3, .segment-content h3, .thinking-content h3 { font-size: var(--aparte-prose-h3-size, 1.1em); font-weight: var(--aparte-font-weight-semibold, 600); margin: 0.4em 0 0.15em; }
1741
+ .aparte-content h4, .segment-content h4, .thinking-content h4,
1742
+ .aparte-content h5, .segment-content h5, .thinking-content h5,
1743
+ .aparte-content h6, .segment-content h6, .thinking-content h6 { font-size: 1em; font-weight: var(--aparte-font-weight-semibold, 600); margin: 0.3em 0 0.1em; }
1462
1744
 
1463
1745
  .aparte-content ul,
1464
- .segment-content ul {
1746
+ .segment-content ul,
1747
+ .thinking-content ul {
1465
1748
  list-style: disc;
1466
1749
  padding-left: var(--aparte-prose-list-indent, 1.5em);
1467
1750
  margin: var(--aparte-prose-list-margin, 0.4em 0);
1468
1751
  }
1469
1752
 
1470
1753
  .aparte-content ol,
1471
- .segment-content ol {
1754
+ .segment-content ol,
1755
+ .thinking-content ol {
1472
1756
  list-style: decimal;
1473
1757
  padding-left: var(--aparte-prose-list-indent, 1.5em);
1474
1758
  margin: var(--aparte-prose-list-margin, 0.4em 0);
1475
1759
  }
1476
1760
 
1477
1761
  .aparte-content li,
1478
- .segment-content li {
1762
+ .segment-content li,
1763
+ .thinking-content li {
1479
1764
  margin: var(--aparte-prose-li-margin, 0.15em 0);
1480
1765
  }
1481
1766
 
1482
1767
  .aparte-content blockquote,
1483
- .segment-content blockquote {
1768
+ .segment-content blockquote,
1769
+ .thinking-content blockquote {
1484
1770
  border-left: var(--aparte-prose-blockquote-border-width, 3px) solid var(--aparte-prose-blockquote-border, var(--aparte-border, #e5e7eb));
1485
1771
  padding-left: 1em;
1486
1772
  margin: 0.4em 0;
@@ -1489,17 +1775,20 @@ aparte-chat-status:not([visible]) {
1489
1775
  }
1490
1776
 
1491
1777
  .aparte-content strong,
1492
- .segment-content strong {
1778
+ .segment-content strong,
1779
+ .thinking-content strong {
1493
1780
  font-weight: var(--aparte-font-weight-semibold, 600);
1494
1781
  }
1495
1782
 
1496
1783
  .aparte-content em,
1497
- .segment-content em {
1784
+ .segment-content em,
1785
+ .thinking-content em {
1498
1786
  font-style: italic;
1499
1787
  }
1500
1788
 
1501
1789
  .aparte-content code,
1502
- .segment-content code {
1790
+ .segment-content code,
1791
+ .thinking-content code {
1503
1792
  font-family: var(--aparte-code-font-family, ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, monospace);
1504
1793
  font-size: var(--aparte-code-inline-font-size, 0.875em);
1505
1794
  background: var(--aparte-prose-code-bg, var(--aparte-code-bg, #f3f4f6));
@@ -1508,13 +1797,15 @@ aparte-chat-status:not([visible]) {
1508
1797
  }
1509
1798
 
1510
1799
  .aparte-content a,
1511
- .segment-content a {
1800
+ .segment-content a,
1801
+ .thinking-content a {
1512
1802
  color: var(--aparte-primary, #6366f1);
1513
1803
  text-decoration: underline;
1514
1804
  }
1515
1805
 
1516
1806
  .aparte-content hr,
1517
- .segment-content hr {
1807
+ .segment-content hr,
1808
+ .thinking-content hr {
1518
1809
  border: none;
1519
1810
  border-top: var(--aparte-border-width, 1px) solid var(--aparte-border, #e5e7eb);
1520
1811
  margin: 0.75em 0;
@@ -1564,7 +1855,6 @@ details[open] .thinking-toggle {
1564
1855
  padding: var(--aparte-space-2, 4px) 0 var(--aparte-space-1, 2px) var(--aparte-space-5, 10px);
1565
1856
  font-size: var(--aparte-font-size-md, 13px);
1566
1857
  line-height: var(--aparte-thinking-content-line-height, 1.55);
1567
- white-space: pre-wrap;
1568
1858
  color: var(--aparte-thinking-content, #4b5563);
1569
1859
  background: transparent;
1570
1860
  max-height: var(--aparte-thinking-content-max-height, 300px);
package/dist/index.d.ts CHANGED
@@ -17,41 +17,49 @@
17
17
 
18
18
 
19
19
  import './types/event-map.js';
20
- export { AparteSelect, AparteOption, AparteOptgroup, type AparteSelectChangeDetail, AparteProgressSpinner } from './primitives/index.js';
21
- export type { AparteBubbleRole, AparteMessage, AparteContentParser, AparteSendEventDetail, AparteTokenEventDetail, AparteViewportConfig, AparteInputConfig, AparteThemeVariables, AparteStatus, AparteAttachment, AparteMessageBranch, AparteBubbleActionsConfig, AparteBubbleActionName, AparteSegment, AparteSegmentType, AparteTextSegment, AparteThinkingSegment, AparteCodeSegment, AparteTerminalSegment, AparteSegmentRenderer, AparteCustomSegment, AparteToolCallSegment, AparteArtifactSegment, AparteAIProvider, AparteAIModel, AparteAIProviderConfigField, AparteAIProviderConfigSchema, AparteModelConfig, ModelStatus, ModelLoadProgress, AparteModelChangeEventDetail, AparteMessageDoneEventDetail, AparteMessageInfoEventDetail, AparteSiblingInfo, AparteBranchNavigateEventDetail, ApartePathChangedEventDetail, AparteRetryEventDetail, AparteEditEventDetail, AparteFeedbackEventDetail, AparteActionEventDetail, AparteArtifactStartEventDetail, AparteArtifactDeltaEventDetail, AparteArtifactReadyEventDetail, AparteArtifactOpenEventDetail, AparteChatRequest, AparteChatResponse, AparteChatMessage, AparteContentPart, AparteTextPart, AparteImagePart, AparteFilePart, AparteStreamEvent, AparteStreamEventMap, AparteUsage, AparteTool, AparteToolCall, AparteToolResult, AparteToolHandler, AparteToolRenderer, AparteToolDecisionDetail, AparteToolApprovalRequestDetail, AparteToolActionDetail, AparteChatImperativeApi } from './types/index.js';
20
+ import './types/element-map.js';
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
23
  export { AparteErrorCode, AparteError, contentToText } from './types/index.js';
23
- export { registerSegmentRenderer, unregisterSegmentRenderer, getSegmentRenderer, collectRendererStyles, registerDefaultRenderers } from './renderers/index.js';
24
+ export { registerSegmentRenderer, unregisterSegmentRenderer, getSegmentRenderer, collectRendererStyles, registerDefaultRenderers, installDefaultRenderersOnce, declineDefaultRenderers, getAllRenderers } from './renderers/index.js';
24
25
  export { AparteChat } from './components/index.js';
25
26
  export { AparteChatBubble, populateBubbleFromMessage } from './components/index.js';
26
27
  export type { SyncableBubble } from './components/index.js';
27
28
  export { AparteChatStatus } from './components/index.js';
28
29
  export { AparteChatViewport } from './components/index.js';
29
30
  export { AparteComposer, AparteComposerInput, AparteComposerSend, AparteComposerCancel, AparteComposerAttachments, AparteComposerAddAttachment, AparteComposerAction, AparteComposerToolbar } from './components/index.js';
30
- export type { AparteComposerEventMap, AparteComposerEventType, AparteComposerState, AparteComposerChangeEventDetail } from './components/index.js';
31
+ export type { AparteComposerEventMap, AparteComposerEventType, AparteComposerState, AparteComposerChangeEventDetail, AparteActionClickEventDetail } from './components/index.js';
31
32
  export { AparteConversationList } from './components/index.js';
32
- export type { AparteConversationListItem, AparteConversationSelectDetail, AparteConversationDeleteDetail } from './components/index.js';
33
+ export type { AparteConversationListItem, AparteConversationSelectDetail, AparteConversationDeleteDetail, AparteConversationArchiveDetail } from './components/index.js';
33
34
  export type { AparteConversation, AparteConversationMeta, AparteStorageAdapter, AparteMemoryFact, AparteArtifactRow, AparteAttachmentRow, } from './conversations/index.js';
34
35
  export { APARTE_CONVERSATION_SCHEMA_VERSION } from './conversations/index.js';
35
- export { ConversationManager, type ConversationManagerOptions } from './conversations/index.js';
36
+ export { AparteConversationManager, type ConversationManagerOptions } from './conversations/index.js';
36
37
  export { AparteConversationController, type AparteChatBinding, type AparteConversationControllerOptions, } from './conversations/index.js';
37
38
  export { AparteChatHost, type AparteChatHostBinding, type AparteChatHostOptions, } from './host/index.js';
38
39
  export { AparteStreamParser, parseMarkdownToSegments, deriveArtifactKind } from './parsers/index.js';
39
40
  export type { AparteStreamParserOptions, AparteThinkingDelimiterPair, AparteParserState, AparteParserResult } from './parsers/index.js';
40
41
  export { parseAparteEventStream } from './parsers/index.js';
41
- export { AparteConfig, AparteConfigClass, DEFAULT_BUBBLE_ACTIONS, DEFAULT_HOST_HANDLERS } from './config/index.js';
42
+ export { aparteGlobalConfig, AparteConfig, APARTE_DEFAULT_BUBBLE_ACTIONS, APARTE_DEFAULT_HOST_HANDLERS } from './config/index.js';
43
+ export type { AparteConfigChangeEventDetail } from './config/index.js';
42
44
  export { resolveConfig, attachConfig, detachConfig, runWithConfig, contextConfig, APARTE_HOST_ATTR } from './config/index.js';
43
- export type { AparteMarkdownProvider, AparteStreamingMarkdownProvider, AparteStreamingMarkdownRenderer, AparteHighlightProvider, AparteSystemPromptVarsProvider, AparteSkeletonProvider, AparteSkeletonType, AparteLocale, AparteAction, AparteActionZone, AparteIconProvider, AparteIconName, AparteAvatarProvider, AparteStatusRenderer, AparteErrorRenderer, AparteAttachmentRenderer, AparteSiblingNavRenderer, AparteBubbleShellRenderer, AparteModelPreference, AparteModelPreferenceProvider, AparteArtifactPreviewBuilder, AparteSanitizer } from './config/index.js';
44
- export { DEFAULT_ICON_FALLBACKS, DEFAULT_SKELETON_FALLBACKS, DEFAULT_LOCALE, defaultSanitizer, isSafeUrl } from './config/index.js';
45
+ export type { AparteConfigAware } from './config/index.js';
46
+ 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
+ export { APARTE_DEFAULT_ICON_FALLBACKS, APARTE_DEFAULT_SKELETON_FALLBACKS, APARTE_DEFAULT_LOCALE, defaultSanitizer, isSafeUrl } from './config/index.js';
45
48
  export { AparteClient } from './client/aparte-client.js';
46
- export { applyElementProps, DEFAULT_UI_EVENTS } from './interop/element-props.js';
47
- export { filesToAttachments } from './utils/files-to-attachments.js';
49
+ export { applyElementProps, APARTE_DEFAULT_UI_EVENTS } from './interop/element-props.js';
50
+ export { filesToAttachments, revokeAttachmentUrls } from './utils/files-to-attachments.js';
48
51
  export { isAwaitingReply } from './utils/is-awaiting-reply.js';
52
+ export { escapeHtml, escapeAttr } from './utils/escape.js';
53
+ export { cssEscape } from './utils/css-escape.js';
54
+ export { uuid } from './utils/uuid.js';
55
+ export type { AparteHostHandlersConfig } from './types/models.js';
56
+ export type { AparteKeyProvider } from './config/aparte-config.js';
49
57
  export type { AparteClientOptions, AparteToolApprovalResolver, AparteCompactionSelector } from './client/aparte-client.js';
50
58
  export { createStreamAdapter, readableToAsyncIterable } from './client/stream-adapter.js';
51
59
  export type { AparteStreamRunEvent, AparteStreamRunEmitter, StreamAdapterTarget, CreateStreamAdapterOptions, AparteStreamRunner, AparteStreamRunOptions } from './client/stream-adapter.js';
52
- export { DirectTransport, BackendTransport, createAparteChatHandler, isFormatAdapter } from './transport/index.js';
60
+ export { AparteDirectTransport, AparteBackendTransport, createAparteChatHandler, isFormatAdapter } from './transport/index.js';
53
61
  export type { AparteTransport, AparteTransportContext, AparteFormatAdapter, AparteVendorRequest, BackendTransportOptions, DirectTransportOptions, AparteChatHandlerOptions } from './transport/index.js';
54
- export { MessageRepository } from './runtime/message-repository.js';
62
+ export { AparteMessageRepository } from './runtime/message-repository.js';
55
63
  export type { ExportedMessageRepository } from './runtime/message-repository.js';
56
64
  export { requestUserInput, buildElicitationPanel } from './elicitation/index.js';
57
65
  export type { AparteElicitationSchema, AparteElicitationField, AparteElicitationEnumField, AparteElicitationBooleanField, AparteElicitationStringField, AparteElicitationObjectSchema, AparteElicitationRequest, AparteElicitationResult, AparteElicitationPresenter, BuiltElicitationPanel, } from './elicitation/index.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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"}