@aparte/core 0.7.1 → 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.
- package/README.md +20 -6
- package/dist/client/aparte-client.d.ts +113 -47
- package/dist/client/aparte-client.d.ts.map +1 -1
- package/dist/client/lifecycle-events.d.ts +55 -0
- package/dist/client/lifecycle-events.d.ts.map +1 -0
- package/dist/client/stream-adapter.d.ts +11 -5
- package/dist/client/stream-adapter.d.ts.map +1 -1
- package/dist/client/xml-artifact-feed.d.ts +76 -0
- package/dist/client/xml-artifact-feed.d.ts.map +1 -0
- package/dist/components/bubble/aparte-chat-bubble.d.ts +35 -8
- package/dist/components/bubble/aparte-chat-bubble.d.ts.map +1 -1
- package/dist/components/chat/aparte-chat.d.ts +0 -6
- package/dist/components/chat/aparte-chat.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-action.d.ts +18 -3
- package/dist/components/composer/aparte-composer-action.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-add-attachment.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-attachments.d.ts +1 -1
- package/dist/components/composer/aparte-composer-attachments.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-cancel.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-input.d.ts +0 -2
- package/dist/components/composer/aparte-composer-input.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-send.d.ts +5 -0
- package/dist/components/composer/aparte-composer-send.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-toolbar.d.ts +4 -0
- package/dist/components/composer/aparte-composer-toolbar.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer.d.ts +64 -6
- package/dist/components/composer/aparte-composer.d.ts.map +1 -1
- package/dist/components/composer/index.d.ts +1 -1
- package/dist/components/composer/index.d.ts.map +1 -1
- package/dist/components/conversation-list/aparte-conversation-list.d.ts +2 -5
- package/dist/components/conversation-list/aparte-conversation-list.d.ts.map +1 -1
- package/dist/components/conversation-list/index.d.ts +1 -1
- package/dist/components/conversation-list/index.d.ts.map +1 -1
- package/dist/components/elicitation/aparte-elicitation.d.ts +63 -3
- package/dist/components/elicitation/aparte-elicitation.d.ts.map +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/status/aparte-chat-status.d.ts +8 -6
- package/dist/components/status/aparte-chat-status.d.ts.map +1 -1
- package/dist/components/viewport/aparte-chat-viewport.d.ts +35 -9
- package/dist/components/viewport/aparte-chat-viewport.d.ts.map +1 -1
- package/dist/config/action-provider.d.ts +4 -4
- package/dist/config/aparte-config.d.ts +124 -41
- package/dist/config/aparte-config.d.ts.map +1 -1
- package/dist/config/attachment-renderer.d.ts +1 -1
- package/dist/config/avatar-provider.d.ts +1 -1
- package/dist/config/config-context.d.ts +66 -11
- package/dist/config/config-context.d.ts.map +1 -1
- package/dist/config/elicitation-field-renderer.d.ts +73 -0
- package/dist/config/elicitation-field-renderer.d.ts.map +1 -0
- package/dist/config/error-renderer.d.ts +1 -1
- package/dist/config/icon-provider.d.ts +2 -2
- package/dist/config/icon-provider.d.ts.map +1 -1
- package/dist/config/index.d.ts +7 -5
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/locale.d.ts +43 -2
- package/dist/config/locale.d.ts.map +1 -1
- package/dist/config/sanitize.d.ts +1 -7
- package/dist/config/sanitize.d.ts.map +1 -1
- package/dist/config/sibling-nav-renderer.d.ts +1 -1
- package/dist/config/skeleton-provider.d.ts +2 -2
- package/dist/config/skeleton-provider.d.ts.map +1 -1
- package/dist/config/status-renderer.d.ts +1 -1
- package/dist/conversations/conversation-controller.d.ts +19 -5
- package/dist/conversations/conversation-controller.d.ts.map +1 -1
- package/dist/conversations/conversation-manager.d.ts +2 -2
- package/dist/conversations/conversation-manager.d.ts.map +1 -1
- package/dist/conversations/index.d.ts +1 -1
- package/dist/conversations/index.d.ts.map +1 -1
- package/dist/conversations/types.d.ts +1 -1
- package/dist/custom-elements.json +6664 -4877
- package/dist/elicitation/index.d.ts +1 -1
- package/dist/elicitation/panel.d.ts +32 -0
- package/dist/elicitation/panel.d.ts.map +1 -1
- package/dist/elicitation/types.d.ts +29 -2
- package/dist/elicitation/types.d.ts.map +1 -1
- package/dist/host/aparte-chat-host.d.ts +3 -3
- package/dist/host/aparte-chat-host.d.ts.map +1 -1
- package/dist/{index-Dn7TH14G.js → index-BieFbKeW.js} +1795 -1238
- package/dist/index-BieFbKeW.js.map +1 -0
- package/dist/index.css +299 -21
- package/dist/index.d.ts +21 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +447 -200
- package/dist/index.js.map +1 -1
- package/dist/index.node.d.ts +22 -13
- package/dist/index.node.d.ts.map +1 -1
- package/dist/index.node.js +54 -46
- package/dist/index.node.js.map +1 -1
- package/dist/interop/element-props.d.ts +1 -1
- package/dist/interop/element-props.d.ts.map +1 -1
- package/dist/parsers/aparte-stream-parser.d.ts.map +1 -1
- package/dist/primitives/index.d.ts +1 -1
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/select/aparte-optgroup.d.ts +15 -4
- package/dist/primitives/select/aparte-optgroup.d.ts.map +1 -1
- package/dist/primitives/select/aparte-option.d.ts +0 -5
- package/dist/primitives/select/aparte-option.d.ts.map +1 -1
- package/dist/primitives/select/aparte-select.d.ts +17 -5
- package/dist/primitives/select/aparte-select.d.ts.map +1 -1
- package/dist/primitives/select/index.d.ts +1 -1
- package/dist/primitives/select/index.d.ts.map +1 -1
- package/dist/renderers/markdown-stream.d.ts +42 -0
- package/dist/renderers/markdown-stream.d.ts.map +1 -0
- package/dist/renderers/segment-renderers.d.ts +20 -14
- package/dist/renderers/segment-renderers.d.ts.map +1 -1
- package/dist/renderers/segments/artifact/binary-file.d.ts +45 -0
- package/dist/renderers/segments/artifact/binary-file.d.ts.map +1 -0
- package/dist/renderers/segments/artifact/card.d.ts +3 -0
- package/dist/renderers/segments/artifact/card.d.ts.map +1 -0
- package/dist/renderers/segments/artifact/preview-document.d.ts +27 -0
- package/dist/renderers/segments/artifact/preview-document.d.ts.map +1 -0
- package/dist/renderers/segments/artifact/shared.d.ts +12 -0
- package/dist/renderers/segments/artifact/shared.d.ts.map +1 -0
- package/dist/renderers/segments/code.d.ts +3 -0
- package/dist/renderers/segments/code.d.ts.map +1 -0
- package/dist/renderers/segments/error.d.ts +3 -0
- package/dist/renderers/segments/error.d.ts.map +1 -0
- package/dist/renderers/segments/file-tree.d.ts +3 -0
- package/dist/renderers/segments/file-tree.d.ts.map +1 -0
- package/dist/renderers/segments/pipeline-waiting.d.ts +3 -0
- package/dist/renderers/segments/pipeline-waiting.d.ts.map +1 -0
- package/dist/renderers/segments/progress.d.ts +3 -0
- package/dist/renderers/segments/progress.d.ts.map +1 -0
- package/dist/renderers/segments/terminal.d.ts +3 -0
- package/dist/renderers/segments/terminal.d.ts.map +1 -0
- package/dist/renderers/segments/text.d.ts +10 -0
- package/dist/renderers/segments/text.d.ts.map +1 -0
- package/dist/renderers/segments/thinking.d.ts +3 -0
- package/dist/renderers/segments/thinking.d.ts.map +1 -0
- package/dist/renderers/segments/tool-call.d.ts +3 -0
- package/dist/renderers/segments/tool-call.d.ts.map +1 -0
- package/dist/runtime/message-repository.d.ts +3 -3
- package/dist/runtime/message-repository.d.ts.map +1 -1
- package/dist/transport/backend-handler.d.ts +19 -7
- package/dist/transport/backend-handler.d.ts.map +1 -1
- package/dist/transport/backend-transport.d.ts +1 -1
- package/dist/transport/backend-transport.d.ts.map +1 -1
- package/dist/transport/direct-transport.d.ts +4 -4
- package/dist/transport/direct-transport.d.ts.map +1 -1
- package/dist/transport/index.d.ts +2 -2
- package/dist/transport/index.d.ts.map +1 -1
- package/dist/transport/types.d.ts +3 -3
- package/dist/types/element-map.d.ts +69 -0
- package/dist/types/element-map.d.ts.map +1 -0
- package/dist/types/event-map.d.ts +84 -23
- package/dist/types/event-map.d.ts.map +1 -1
- package/dist/types/events.d.ts +206 -64
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -5
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/model-provider.d.ts +100 -54
- package/dist/types/model-provider.d.ts.map +1 -1
- package/dist/types/models.d.ts +29 -7
- package/dist/types/models.d.ts.map +1 -1
- package/dist/types/segments.d.ts +1 -8
- package/dist/types/segments.d.ts.map +1 -1
- package/dist/types/theming.d.ts +25 -37
- package/dist/types/theming.d.ts.map +1 -1
- package/dist/types/tools.d.ts +60 -15
- package/dist/types/tools.d.ts.map +1 -1
- package/dist/utils/escape.d.ts +46 -0
- package/dist/utils/escape.d.ts.map +1 -0
- package/dist/utils/files-to-attachments.d.ts +18 -1
- package/dist/utils/files-to-attachments.d.ts.map +1 -1
- package/dist/utils/uuid.d.ts +26 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/package.json +3 -5
- package/dist/index-Dn7TH14G.js.map +0 -1
- package/dist/types/providers.d.ts +0 -93
- 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);
|
|
@@ -459,7 +492,7 @@ aparte-chat > aparte-chat-viewport,
|
|
|
459
492
|
min-height: 0;
|
|
460
493
|
}
|
|
461
494
|
|
|
462
|
-
/* Model-selection gate (opt-in via
|
|
495
|
+
/* Model-selection gate (opt-in via aparteGlobalConfig.setRequireModelSelection): grey the
|
|
463
496
|
composer and block its send button until a model is selected — e.g. while the
|
|
464
497
|
model selector is still fetching. Ungates automatically on selection.
|
|
465
498
|
Unscoped so it greys the composer in EVERY host (vanilla shell + all wrappers),
|
|
@@ -471,6 +504,240 @@ aparte-composer[data-model-gated] aparte-composer-send {
|
|
|
471
504
|
pointer-events: none;
|
|
472
505
|
}
|
|
473
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
|
+
|
|
474
741
|
aparte-composer {
|
|
475
742
|
flex: 0 0 auto;
|
|
476
743
|
}
|
|
@@ -835,7 +1102,7 @@ aparte-chat-bubble {
|
|
|
835
1102
|
}
|
|
836
1103
|
|
|
837
1104
|
/* Only an image tile the app declared it can preview is a button — see
|
|
838
|
-
|
|
1105
|
+
aparteGlobalConfig.setHostHandlers(). Undeclared, it is a picture, not a control. */
|
|
839
1106
|
.aparte-thumb--image[role='button'] {
|
|
840
1107
|
cursor: pointer;
|
|
841
1108
|
}
|
|
@@ -1451,48 +1718,55 @@ aparte-chat-status:not([visible]) {
|
|
|
1451
1718
|
}
|
|
1452
1719
|
|
|
1453
1720
|
.aparte-content p,
|
|
1454
|
-
.segment-content p
|
|
1721
|
+
.segment-content p,
|
|
1722
|
+
.thinking-content p {
|
|
1455
1723
|
margin: var(--aparte-prose-p-margin, 0.4em 0);
|
|
1456
1724
|
}
|
|
1457
1725
|
|
|
1458
1726
|
.aparte-content p:first-child,
|
|
1459
|
-
.segment-content p:first-child
|
|
1727
|
+
.segment-content p:first-child,
|
|
1728
|
+
.thinking-content p:first-child {
|
|
1460
1729
|
margin-top: 0;
|
|
1461
1730
|
}
|
|
1462
1731
|
|
|
1463
1732
|
.aparte-content p:last-child,
|
|
1464
|
-
.segment-content p:last-child
|
|
1733
|
+
.segment-content p:last-child,
|
|
1734
|
+
.thinking-content p:last-child {
|
|
1465
1735
|
margin-bottom: 0;
|
|
1466
1736
|
}
|
|
1467
1737
|
|
|
1468
|
-
.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; }
|
|
1469
|
-
.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; }
|
|
1470
|
-
.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; }
|
|
1471
|
-
.aparte-content h4, .segment-content h4,
|
|
1472
|
-
.aparte-content h5, .segment-content h5,
|
|
1473
|
-
.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; }
|
|
1474
1744
|
|
|
1475
1745
|
.aparte-content ul,
|
|
1476
|
-
.segment-content ul
|
|
1746
|
+
.segment-content ul,
|
|
1747
|
+
.thinking-content ul {
|
|
1477
1748
|
list-style: disc;
|
|
1478
1749
|
padding-left: var(--aparte-prose-list-indent, 1.5em);
|
|
1479
1750
|
margin: var(--aparte-prose-list-margin, 0.4em 0);
|
|
1480
1751
|
}
|
|
1481
1752
|
|
|
1482
1753
|
.aparte-content ol,
|
|
1483
|
-
.segment-content ol
|
|
1754
|
+
.segment-content ol,
|
|
1755
|
+
.thinking-content ol {
|
|
1484
1756
|
list-style: decimal;
|
|
1485
1757
|
padding-left: var(--aparte-prose-list-indent, 1.5em);
|
|
1486
1758
|
margin: var(--aparte-prose-list-margin, 0.4em 0);
|
|
1487
1759
|
}
|
|
1488
1760
|
|
|
1489
1761
|
.aparte-content li,
|
|
1490
|
-
.segment-content li
|
|
1762
|
+
.segment-content li,
|
|
1763
|
+
.thinking-content li {
|
|
1491
1764
|
margin: var(--aparte-prose-li-margin, 0.15em 0);
|
|
1492
1765
|
}
|
|
1493
1766
|
|
|
1494
1767
|
.aparte-content blockquote,
|
|
1495
|
-
.segment-content blockquote
|
|
1768
|
+
.segment-content blockquote,
|
|
1769
|
+
.thinking-content blockquote {
|
|
1496
1770
|
border-left: var(--aparte-prose-blockquote-border-width, 3px) solid var(--aparte-prose-blockquote-border, var(--aparte-border, #e5e7eb));
|
|
1497
1771
|
padding-left: 1em;
|
|
1498
1772
|
margin: 0.4em 0;
|
|
@@ -1501,17 +1775,20 @@ aparte-chat-status:not([visible]) {
|
|
|
1501
1775
|
}
|
|
1502
1776
|
|
|
1503
1777
|
.aparte-content strong,
|
|
1504
|
-
.segment-content strong
|
|
1778
|
+
.segment-content strong,
|
|
1779
|
+
.thinking-content strong {
|
|
1505
1780
|
font-weight: var(--aparte-font-weight-semibold, 600);
|
|
1506
1781
|
}
|
|
1507
1782
|
|
|
1508
1783
|
.aparte-content em,
|
|
1509
|
-
.segment-content em
|
|
1784
|
+
.segment-content em,
|
|
1785
|
+
.thinking-content em {
|
|
1510
1786
|
font-style: italic;
|
|
1511
1787
|
}
|
|
1512
1788
|
|
|
1513
1789
|
.aparte-content code,
|
|
1514
|
-
.segment-content code
|
|
1790
|
+
.segment-content code,
|
|
1791
|
+
.thinking-content code {
|
|
1515
1792
|
font-family: var(--aparte-code-font-family, ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, monospace);
|
|
1516
1793
|
font-size: var(--aparte-code-inline-font-size, 0.875em);
|
|
1517
1794
|
background: var(--aparte-prose-code-bg, var(--aparte-code-bg, #f3f4f6));
|
|
@@ -1520,13 +1797,15 @@ aparte-chat-status:not([visible]) {
|
|
|
1520
1797
|
}
|
|
1521
1798
|
|
|
1522
1799
|
.aparte-content a,
|
|
1523
|
-
.segment-content a
|
|
1800
|
+
.segment-content a,
|
|
1801
|
+
.thinking-content a {
|
|
1524
1802
|
color: var(--aparte-primary, #6366f1);
|
|
1525
1803
|
text-decoration: underline;
|
|
1526
1804
|
}
|
|
1527
1805
|
|
|
1528
1806
|
.aparte-content hr,
|
|
1529
|
-
.segment-content hr
|
|
1807
|
+
.segment-content hr,
|
|
1808
|
+
.thinking-content hr {
|
|
1530
1809
|
border: none;
|
|
1531
1810
|
border-top: var(--aparte-border-width, 1px) solid var(--aparte-border, #e5e7eb);
|
|
1532
1811
|
margin: 0.75em 0;
|
|
@@ -1576,7 +1855,6 @@ details[open] .thinking-toggle {
|
|
|
1576
1855
|
padding: var(--aparte-space-2, 4px) 0 var(--aparte-space-1, 2px) var(--aparte-space-5, 10px);
|
|
1577
1856
|
font-size: var(--aparte-font-size-md, 13px);
|
|
1578
1857
|
line-height: var(--aparte-thinking-content-line-height, 1.55);
|
|
1579
|
-
white-space: pre-wrap;
|
|
1580
1858
|
color: var(--aparte-thinking-content, #4b5563);
|
|
1581
1859
|
background: transparent;
|
|
1582
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
|
-
|
|
21
|
-
export
|
|
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 {
|
|
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 {
|
|
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 {
|
|
44
|
-
export {
|
|
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,
|
|
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 {
|
|
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 {
|
|
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,qBAAqB,CAAC;AAC7B,OAAO,gCAAgC,CAAC;AACxC,OAAO,oDAAoD,CAAC;AAG5D,OAAO,sBAAsB,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|