@aparte/angular 0.15.1 → 0.16.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/dist/fesm2022/aparte-angular.mjs +257 -33
- package/dist/fesm2022/aparte-angular.mjs.map +1 -1
- package/dist/generated/element.directives.d.ts +97 -16
- package/dist/index.d.ts +1 -1
- package/dist/lib/aparte-chat.component.d.ts +11 -1
- package/dist/lib/conversation-manager.service.d.ts +6 -0
- package/package.json +3 -3
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* a plain host listener when you need `stopPropagation`.
|
|
12
12
|
*/
|
|
13
13
|
import { ElementRef, EventEmitter } from '@angular/core';
|
|
14
|
-
import type { AparteActionClickEventDetail, AparteActionEventDetail, AparteAttachmentPreviewEventDetail, AparteBranchNavigateEventDetail, AparteComposerChangeEventDetail, AparteContextThresholdEventDetail, AparteConversationArchiveDetail, AparteConversationDeleteDetail, AparteConversationSelectDetail, AparteEditEventDetail, AparteFeedbackEventDetail, AparteMessageInfoEventDetail, AparteOptgroupToggleEventDetail, ApartePathChangedEventDetail, AparteRetryEventDetail, AparteSegmentUpdateEventDetail, AparteSelectChangeDetail, AparteSendEventDetail, AparteSuggestionEventDetail } from '@aparte/core';
|
|
14
|
+
import type { AparteActionClickEventDetail, AparteActionEventDetail, AparteAttachmentPreviewEventDetail, AparteBranchNavigateEventDetail, AparteCompactEventDetail, AparteComposerChangeEventDetail, AparteContextThresholdEventDetail, AparteConversationArchiveDetail, AparteConversationDeleteDetail, AparteConversationPinDetail, AparteConversationRenameDetail, AparteConversationSelectDetail, AparteEditEventDetail, AparteFeedbackEventDetail, AparteLinkClickEventDetail, AparteMessageInfoEventDetail, AparteOptgroupToggleEventDetail, ApartePathChangedEventDetail, AparteRetryEventDetail, AparteScrollRailJumpDetail, AparteSegmentUpdateEventDetail, AparteSelectChangeDetail, AparteSendEventDetail, AparteSidebarToggleDetail, AparteSplitResizeDetail, AparteSuggestionEventDetail } from '@aparte/core';
|
|
15
15
|
import * as i0 from "@angular/core";
|
|
16
16
|
/**
|
|
17
17
|
* Writes one declared attribute onto the host element.
|
|
@@ -55,6 +55,8 @@ export declare class AparteChatBubbleDirective extends AparteElementBase {
|
|
|
55
55
|
readonly edit: EventEmitter<AparteEditEventDetail>;
|
|
56
56
|
/** The `‹1/2›` picker moved between sibling versions. */
|
|
57
57
|
readonly branchNavigate: EventEmitter<AparteBranchNavigateEventDetail>;
|
|
58
|
+
/** A link in the message body is about to be followed. Cancelable: `preventDefault()` keeps the browser from navigating, so a host can route the link itself. */
|
|
59
|
+
readonly linkClick: EventEmitter<AparteLinkClickEventDetail>;
|
|
58
60
|
protected onAttachmentPreview(e: CustomEvent<AparteAttachmentPreviewEventDetail>): void;
|
|
59
61
|
protected onAction(e: CustomEvent<AparteActionEventDetail>): void;
|
|
60
62
|
protected onRetry(e: CustomEvent<AparteRetryEventDetail>): void;
|
|
@@ -62,8 +64,9 @@ export declare class AparteChatBubbleDirective extends AparteElementBase {
|
|
|
62
64
|
protected onMessageInfo(e: CustomEvent<AparteMessageInfoEventDetail>): void;
|
|
63
65
|
protected onEdit(e: CustomEvent<AparteEditEventDetail>): void;
|
|
64
66
|
protected onBranchNavigate(e: CustomEvent<AparteBranchNavigateEventDetail>): void;
|
|
67
|
+
protected onLinkClick(e: CustomEvent<AparteLinkClickEventDetail>): void;
|
|
65
68
|
static ɵfac: i0.ɵɵFactoryDeclaration<AparteChatBubbleDirective, never>;
|
|
66
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<AparteChatBubbleDirective, "aparte-chat-bubble", never, { "messageRole": { "alias": "messageRole"; "required": false; }; "content": { "alias": "content"; "required": false; }; "timestamp": { "alias": "timestamp"; "required": false; }; "messageId": { "alias": "messageId"; "required": false; }; "streaming": { "alias": "streaming"; "required": false; }; "name": { "alias": "name"; "required": false; }; }, { "attachmentPreview": "attachmentPreview"; "action": "action"; "retry": "retry"; "feedback": "feedback"; "messageInfo": "messageInfo"; "edit": "edit"; "branchNavigate": "branchNavigate"; }, never, never, true, never>;
|
|
69
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AparteChatBubbleDirective, "aparte-chat-bubble", never, { "messageRole": { "alias": "messageRole"; "required": false; }; "content": { "alias": "content"; "required": false; }; "timestamp": { "alias": "timestamp"; "required": false; }; "messageId": { "alias": "messageId"; "required": false; }; "streaming": { "alias": "streaming"; "required": false; }; "name": { "alias": "name"; "required": false; }; }, { "attachmentPreview": "attachmentPreview"; "action": "action"; "retry": "retry"; "feedback": "feedback"; "messageInfo": "messageInfo"; "edit": "edit"; "branchNavigate": "branchNavigate"; "linkClick": "linkClick"; }, never, never, true, never>;
|
|
67
70
|
static ngAcceptInputType_streaming: unknown;
|
|
68
71
|
}
|
|
69
72
|
/** `<aparte-chat-status>` — A standalone status line — a light-DOM indicator the APP owns. Nothing in core turns it on: the framework host only ever flips it back OFF (on the first streamed token), and the four wrappers render one inside the viewport driven by their own `isTyping` prop. */
|
|
@@ -223,6 +226,8 @@ export declare class AparteContextDirective extends AparteElementBase {
|
|
|
223
226
|
set danger(v: number);
|
|
224
227
|
/** The id of the `<aparte-chat>` to watch, when the element is not under it. */
|
|
225
228
|
set target(v: string | undefined);
|
|
229
|
+
/** `bar` (default) or `ring`: a progress bar with the reading beside it, or a ring with the percentage. */
|
|
230
|
+
set variant(v: string | undefined);
|
|
226
231
|
/** Dispatch `aparte-compact` on reaching `danger` (once per crossing). */
|
|
227
232
|
set autoCompact(v: boolean);
|
|
228
233
|
/** Reflected BY the element: `ok`, `warn` or `danger`. Read-only. */
|
|
@@ -231,33 +236,48 @@ export declare class AparteContextDirective extends AparteElementBase {
|
|
|
231
236
|
set dataEmpty(v: boolean);
|
|
232
237
|
/** The level changed. Bubbles. */
|
|
233
238
|
readonly contextThreshold: EventEmitter<AparteContextThresholdEventDetail>;
|
|
239
|
+
/** Dispatched on `window` when `auto-compact` is set and the gauge first reaches `danger`: compact this target's transcript. Once per crossing, and only while the attribute is present. `@aparte/plugin-compaction` answers it; with no listener nothing happens. */
|
|
240
|
+
readonly compact: EventEmitter<AparteCompactEventDetail>;
|
|
234
241
|
protected onContextThreshold(e: CustomEvent<AparteContextThresholdEventDetail>): void;
|
|
242
|
+
protected onCompact(e: CustomEvent<AparteCompactEventDetail>): void;
|
|
235
243
|
static ɵfac: i0.ɵɵFactoryDeclaration<AparteContextDirective, never>;
|
|
236
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<AparteContextDirective, "aparte-context", never, { "window": { "alias": "window"; "required": false; }; "warn": { "alias": "warn"; "required": false; }; "danger": { "alias": "danger"; "required": false; }; "target": { "alias": "target"; "required": false; }; "autoCompact": { "alias": "autoCompact"; "required": false; }; "dataLevel": { "alias": "dataLevel"; "required": false; }; "dataEmpty": { "alias": "dataEmpty"; "required": false; }; }, { "contextThreshold": "contextThreshold"; }, never, never, true, never>;
|
|
244
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AparteContextDirective, "aparte-context", never, { "window": { "alias": "window"; "required": false; }; "warn": { "alias": "warn"; "required": false; }; "danger": { "alias": "danger"; "required": false; }; "target": { "alias": "target"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "autoCompact": { "alias": "autoCompact"; "required": false; }; "dataLevel": { "alias": "dataLevel"; "required": false; }; "dataEmpty": { "alias": "dataEmpty"; "required": false; }; }, { "contextThreshold": "contextThreshold"; "compact": "compact"; }, never, never, true, never>;
|
|
237
245
|
static ngAcceptInputType_window: unknown;
|
|
238
246
|
static ngAcceptInputType_warn: unknown;
|
|
239
247
|
static ngAcceptInputType_danger: unknown;
|
|
240
248
|
static ngAcceptInputType_autoCompact: unknown;
|
|
241
249
|
static ngAcceptInputType_dataEmpty: unknown;
|
|
242
250
|
}
|
|
243
|
-
/** `<aparte-conversation-list>` — Conversation-history sidebar — a framework-agnostic web component. The host sets the `conversations` JS property and the `active-id` attribute; this renders the
|
|
251
|
+
/** `<aparte-conversation-list>` — Conversation-history sidebar — a framework-agnostic web component. The host sets the `conversations` JS property and the `active-id` attribute; this renders the rows and fires the user's intent, never acting on it itself. */
|
|
244
252
|
export declare class AparteConversationListDirective extends AparteElementBase {
|
|
245
253
|
/** The id of the conversation to render as selected. */
|
|
246
254
|
set activeId(v: string | undefined);
|
|
247
|
-
/**
|
|
248
|
-
|
|
249
|
-
/** The
|
|
250
|
-
readonly
|
|
251
|
-
/** The
|
|
252
|
-
readonly
|
|
253
|
-
/** The same
|
|
255
|
+
/** Render the rows flat, in host order, with no date headings. */
|
|
256
|
+
set noGroups(v: boolean);
|
|
257
|
+
/** The same item on a pinned row; same detail shape, opposite intent. */
|
|
258
|
+
readonly unpinConversation: EventEmitter<AparteConversationPinDetail>;
|
|
259
|
+
/** The pin item was chosen on an unpinned row. */
|
|
260
|
+
readonly pinConversation: EventEmitter<AparteConversationPinDetail>;
|
|
261
|
+
/** The same item on an already-archived one; same detail shape, opposite intent. */
|
|
254
262
|
readonly unarchiveConversation: EventEmitter<AparteConversationArchiveDetail>;
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
263
|
+
/** The archive item was chosen on a live conversation. */
|
|
264
|
+
readonly archiveConversation: EventEmitter<AparteConversationArchiveDetail>;
|
|
265
|
+
/** The delete was confirmed. Nothing is removed here. */
|
|
266
|
+
readonly deleteConversation: EventEmitter<AparteConversationDeleteDetail>;
|
|
267
|
+
/** A rename was committed with a new, non-empty title. Nothing is renamed here. */
|
|
268
|
+
readonly renameConversation: EventEmitter<AparteConversationRenameDetail>;
|
|
269
|
+
/** A row's title was activated; the host loads that conversation. */
|
|
270
|
+
readonly selectConversation: EventEmitter<AparteConversationSelectDetail>;
|
|
271
|
+
protected onUnpinConversation(e: CustomEvent<AparteConversationPinDetail>): void;
|
|
272
|
+
protected onPinConversation(e: CustomEvent<AparteConversationPinDetail>): void;
|
|
258
273
|
protected onUnarchiveConversation(e: CustomEvent<AparteConversationArchiveDetail>): void;
|
|
274
|
+
protected onArchiveConversation(e: CustomEvent<AparteConversationArchiveDetail>): void;
|
|
275
|
+
protected onDeleteConversation(e: CustomEvent<AparteConversationDeleteDetail>): void;
|
|
276
|
+
protected onRenameConversation(e: CustomEvent<AparteConversationRenameDetail>): void;
|
|
277
|
+
protected onSelectConversation(e: CustomEvent<AparteConversationSelectDetail>): void;
|
|
259
278
|
static ɵfac: i0.ɵɵFactoryDeclaration<AparteConversationListDirective, never>;
|
|
260
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<AparteConversationListDirective, "aparte-conversation-list", never, { "activeId": { "alias": "activeId"; "required": false; }; }, { "
|
|
279
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AparteConversationListDirective, "aparte-conversation-list", never, { "activeId": { "alias": "activeId"; "required": false; }; "noGroups": { "alias": "noGroups"; "required": false; }; }, { "unpinConversation": "unpinConversation"; "pinConversation": "pinConversation"; "unarchiveConversation": "unarchiveConversation"; "archiveConversation": "archiveConversation"; "deleteConversation": "deleteConversation"; "renameConversation": "renameConversation"; "selectConversation": "selectConversation"; }, never, never, true, never>;
|
|
280
|
+
static ngAcceptInputType_noGroups: unknown;
|
|
261
281
|
}
|
|
262
282
|
/** `<aparte-elicitation>` — The default presenter for a request to the human. It renders nothing itself: it registers as the presenter for the config governing its subtree, and mounts a panel inside the nearest `<aparte-composer>` when something asks — a tool handler calling `requestUserInput`, or core's own approval gate. */
|
|
263
283
|
/**
|
|
@@ -319,6 +339,21 @@ export declare class AparteProgressSpinnerDirective extends AparteElementBase {
|
|
|
319
339
|
static ɵdir: i0.ɵɵDirectiveDeclaration<AparteProgressSpinnerDirective, "aparte-progress-spinner", never, { "value": { "alias": "value"; "required": false; }; }, {}, never, never, true, never>;
|
|
320
340
|
static ngAcceptInputType_value: unknown;
|
|
321
341
|
}
|
|
342
|
+
/** `<aparte-scroll-rail>` — A rail of ticks beside the transcript — one per turn — that shows where you are in a long conversation and jumps back to any message on a click. */
|
|
343
|
+
export declare class AparteScrollRailDirective extends AparteElementBase {
|
|
344
|
+
/** The id of the `<aparte-chat>` to follow, when the element is not inside it. */
|
|
345
|
+
set target(v: string | undefined);
|
|
346
|
+
/** `user` (default): one tick per user turn. `message`: one per message. */
|
|
347
|
+
set every(v: string | undefined);
|
|
348
|
+
/** Reflected BY the element while it has fewer than two ticks. Read-only. */
|
|
349
|
+
set dataEmpty(v: boolean);
|
|
350
|
+
/** A tick was activated. Bubbles, cancelable: `preventDefault()` leaves the transcript where it is. */
|
|
351
|
+
readonly scrollRailJump: EventEmitter<AparteScrollRailJumpDetail>;
|
|
352
|
+
protected onScrollRailJump(e: CustomEvent<AparteScrollRailJumpDetail>): void;
|
|
353
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AparteScrollRailDirective, never>;
|
|
354
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AparteScrollRailDirective, "aparte-scroll-rail", never, { "target": { "alias": "target"; "required": false; }; "every": { "alias": "every"; "required": false; }; "dataEmpty": { "alias": "dataEmpty"; "required": false; }; }, { "scrollRailJump": "scrollRailJump"; }, never, never, true, never>;
|
|
355
|
+
static ngAcceptInputType_dataEmpty: unknown;
|
|
356
|
+
}
|
|
322
357
|
/** `<aparte-select>` — Dropdown select for aparté — a vanilla web component with optional grouping, a search filter and a keyboard-driven listbox. */
|
|
323
358
|
export declare class AparteSelectDirective extends AparteElementBase {
|
|
324
359
|
/** The selected option's value. */
|
|
@@ -349,6 +384,52 @@ export declare class AparteSelectDirective extends AparteElementBase {
|
|
|
349
384
|
static ngAcceptInputType_searchable: unknown;
|
|
350
385
|
static ngAcceptInputType_open: unknown;
|
|
351
386
|
}
|
|
387
|
+
/** `<aparte-sidebar>` — The column beside the chat — conversations, a new-chat button, a search field, an account row — as an element, because it has behaviour: it collapses, it becomes a drawer on a narrow window, and its search field filters the conversation list. */
|
|
388
|
+
export declare class AparteSidebarDirective extends AparteElementBase {
|
|
389
|
+
/** Hidden (in the flow) or closed (as a drawer). Reflected; set it to start closed. */
|
|
390
|
+
set collapsed(v: boolean);
|
|
391
|
+
/** The window width under which the sidebar becomes a drawer: a length (default `48rem`), or `none` for a column that never does. */
|
|
392
|
+
set breakpoint(v: string | undefined);
|
|
393
|
+
/** Reflected BY the element while the window is under 48rem. Read-only. */
|
|
394
|
+
set dataDrawer(v: boolean);
|
|
395
|
+
/** The sidebar opened or closed, by a toggle, by Escape, by a click on the scrim or by `collapsed` being set. Bubbles. */
|
|
396
|
+
readonly sidebarToggle: EventEmitter<AparteSidebarToggleDetail>;
|
|
397
|
+
protected onSidebarToggle(e: CustomEvent<AparteSidebarToggleDetail>): void;
|
|
398
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AparteSidebarDirective, never>;
|
|
399
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AparteSidebarDirective, "aparte-sidebar", never, { "collapsed": { "alias": "collapsed"; "required": false; }; "breakpoint": { "alias": "breakpoint"; "required": false; }; "dataDrawer": { "alias": "dataDrawer"; "required": false; }; }, { "sidebarToggle": "sidebarToggle"; }, never, never, true, never>;
|
|
400
|
+
static ngAcceptInputType_collapsed: unknown;
|
|
401
|
+
static ngAcceptInputType_dataDrawer: unknown;
|
|
402
|
+
}
|
|
403
|
+
/** `<aparte-split>` — Two panes and a draggable seam — a chat beside a preview, an editor, an artifact card. */
|
|
404
|
+
export declare class AparteSplitDirective extends AparteElementBase {
|
|
405
|
+
/** The primary pane's size, as a percentage of the container. Reflected on commit, never per drag frame. */
|
|
406
|
+
set position(v: number);
|
|
407
|
+
/** `horizontal` (panes side by side, the default) or `vertical` (stacked). Names the CONTAINER's axis. */
|
|
408
|
+
set orientation(v: string | undefined);
|
|
409
|
+
/** `start` (default) or `end`: which pane `position` sizes. */
|
|
410
|
+
set primary(v: string | undefined);
|
|
411
|
+
/** The primary pane folded to its minimum. Enter on the seam toggles it; a second Enter restores the size it had. */
|
|
412
|
+
set collapsed(v: boolean);
|
|
413
|
+
/** Below this width the split shows one pane at a time. A length (default `48rem`), or `none` to never stack. */
|
|
414
|
+
set breakpoint(v: string | undefined);
|
|
415
|
+
/** `start` (default) or `end`: which pane is shown while stacked. */
|
|
416
|
+
set pane(v: string | undefined);
|
|
417
|
+
/** No drag, no keys, no tab stop; the seam stays drawn. */
|
|
418
|
+
set disabled(v: boolean);
|
|
419
|
+
/** The seam's accessible name. Defaults to the locale's `splitHandleLabel`. */
|
|
420
|
+
set label(v: string | undefined);
|
|
421
|
+
/** Written BY the element while one pane is shown. Read-only; style against it. */
|
|
422
|
+
set dataStacked(v: boolean);
|
|
423
|
+
/** The position settled: after a drag, a key, a double-click or a property set. Never during a drag — persist from here. */
|
|
424
|
+
readonly splitResize: EventEmitter<AparteSplitResizeDetail>;
|
|
425
|
+
protected onSplitResize(e: CustomEvent<AparteSplitResizeDetail>): void;
|
|
426
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AparteSplitDirective, never>;
|
|
427
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AparteSplitDirective, "aparte-split", never, { "position": { "alias": "position"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "primary": { "alias": "primary"; "required": false; }; "collapsed": { "alias": "collapsed"; "required": false; }; "breakpoint": { "alias": "breakpoint"; "required": false; }; "pane": { "alias": "pane"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "label": { "alias": "label"; "required": false; }; "dataStacked": { "alias": "dataStacked"; "required": false; }; }, { "splitResize": "splitResize"; }, never, never, true, never>;
|
|
428
|
+
static ngAcceptInputType_position: unknown;
|
|
429
|
+
static ngAcceptInputType_collapsed: unknown;
|
|
430
|
+
static ngAcceptInputType_disabled: unknown;
|
|
431
|
+
static ngAcceptInputType_dataStacked: unknown;
|
|
432
|
+
}
|
|
352
433
|
/** `<aparte-suggestions>` — Prompt starters — a row of suggested prompts a reader clicks instead of typing. */
|
|
353
434
|
export declare class AparteSuggestionsDirective extends AparteElementBase {
|
|
354
435
|
/** The starters, as a JSON array: strings, or `{ "label", "prompt" }` objects when the visible label and the sent text differ. The `suggestions` PROPERTY takes the same shape without the JSON. */
|
|
@@ -376,5 +457,5 @@ export declare class AparteSuggestionsDirective extends AparteElementBase {
|
|
|
376
457
|
* @Component({ imports: [...APARTE_ELEMENT_DIRECTIVES], template: `…` })
|
|
377
458
|
* ```
|
|
378
459
|
*/
|
|
379
|
-
export declare const APARTE_ELEMENT_DIRECTIVES: readonly [typeof AparteChatBubbleDirective, typeof AparteChatStatusDirective, typeof AparteChatViewportDirective, typeof AparteComposerDirective, typeof AparteComposerActionDirective, typeof AparteComposerAddAttachmentDirective, typeof AparteComposerAttachmentsDirective, typeof AparteComposerCancelDirective, typeof AparteComposerInputDirective, typeof AparteComposerSendDirective, typeof AparteComposerToolbarDirective, typeof AparteContextDirective, typeof AparteConversationListDirective, typeof AparteElicitationDirective, typeof AparteIconDirective, typeof AparteOptgroupDirective, typeof AparteOptionDirective, typeof AparteProgressSpinnerDirective, typeof AparteSelectDirective, typeof AparteSuggestionsDirective];
|
|
460
|
+
export declare const APARTE_ELEMENT_DIRECTIVES: readonly [typeof AparteChatBubbleDirective, typeof AparteChatStatusDirective, typeof AparteChatViewportDirective, typeof AparteComposerDirective, typeof AparteComposerActionDirective, typeof AparteComposerAddAttachmentDirective, typeof AparteComposerAttachmentsDirective, typeof AparteComposerCancelDirective, typeof AparteComposerInputDirective, typeof AparteComposerSendDirective, typeof AparteComposerToolbarDirective, typeof AparteContextDirective, typeof AparteConversationListDirective, typeof AparteElicitationDirective, typeof AparteIconDirective, typeof AparteOptgroupDirective, typeof AparteOptionDirective, typeof AparteProgressSpinnerDirective, typeof AparteScrollRailDirective, typeof AparteSelectDirective, typeof AparteSidebarDirective, typeof AparteSplitDirective, typeof AparteSuggestionsDirective];
|
|
380
461
|
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type { ProvideAparteOptions, ApartePluginLoader } from './lib/provide-apa
|
|
|
7
7
|
export { AparteChatComponent } from './lib/aparte-chat.component';
|
|
8
8
|
export { AparteUiComponent } from './lib/aparte-ui.component';
|
|
9
9
|
export type { AparteUiHandle } from './lib/aparte-ui.component';
|
|
10
|
-
export
|
|
10
|
+
export * from './generated/element.directives';
|
|
11
11
|
export { AparteAiService, APARTE_CLIENT_OPTIONS } from './lib/aparte-ai.service';
|
|
12
12
|
export { ConversationManagerService } from './lib/conversation-manager.service';
|
|
13
13
|
export type { AparteMessage, AparteSendEventDetail, AparteActionEventDetail, AparteSegment, AparteTextSegment, AparteCodeSegment, AparteThinkingSegment, AparteChatImperativeApi, } from '@aparte/core';
|
|
@@ -54,6 +54,15 @@ export declare class AparteChatComponent implements AfterViewInit, OnDestroy, Ap
|
|
|
54
54
|
*/
|
|
55
55
|
set attachmentsInput(val: boolean);
|
|
56
56
|
readonly attachments: import("@angular/core").WritableSignal<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* Render the `<aparte-elicitation>` presenter inside the host — on by default, as
|
|
59
|
+
* it is in `<aparte-chat>`: the built-in approval gate and `requestUserInput()`
|
|
60
|
+
* ask through it, and it renders nothing until something asks. Set it to `false`
|
|
61
|
+
* when you mount a presenter of your own (`setElicitationPresenter`) or place the
|
|
62
|
+
* element yourself.
|
|
63
|
+
*/
|
|
64
|
+
set elicitationInput(val: boolean);
|
|
65
|
+
readonly elicitation: import("@angular/core").WritableSignal<boolean>;
|
|
57
66
|
/** Whether the assistant is currently typing/streaming */
|
|
58
67
|
set isTypingInput(val: boolean);
|
|
59
68
|
readonly isTyping: import("@angular/core").WritableSignal<boolean>;
|
|
@@ -190,11 +199,12 @@ export declare class AparteChatComponent implements AfterViewInit, OnDestroy, Ap
|
|
|
190
199
|
/** Handle aparte-send event from the composer Web Component. */
|
|
191
200
|
onAparteSend(event: Event): void;
|
|
192
201
|
static ɵfac: i0.ɵɵFactoryDeclaration<AparteChatComponent, never>;
|
|
193
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AparteChatComponent, "aparte-chat", never, { "messagesInput": { "alias": "messages"; "required": false; }; "placeholderInput": { "alias": "placeholder"; "required": false; }; "disabledInput": { "alias": "disabled"; "required": false; }; "submitOnEnterInput": { "alias": "submitOnEnter"; "required": false; }; "centerWhenEmptyInput": { "alias": "centerWhenEmpty"; "required": false; }; "attachmentsInput": { "alias": "attachments"; "required": false; }; "isTypingInput": { "alias": "isTyping"; "required": false; }; "typingTextInput": { "alias": "typingText"; "required": false; }; "layoutTransitionMs": { "alias": "layoutTransitionMs"; "required": false; }; "conversationIdInput": { "alias": "conversationId"; "required": false; }; "config": { "alias": "config"; "required": false; }; "bubbleTemplate": { "alias": "bubbleTemplate"; "required": false; }; }, { "messageSent": "messageSent"; "action": "action"; "messagesChange": "messagesChange"; "messageAppended": "messageAppended"; "typingChange": "typingChange"; "conversationCreated": "conversationCreated"; }, never, ["[slot='empty-state']", "[slot='above-composer']", "[slot='toolbar']", "[slot='composer']"], true, never>;
|
|
202
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AparteChatComponent, "aparte-chat", never, { "messagesInput": { "alias": "messages"; "required": false; }; "placeholderInput": { "alias": "placeholder"; "required": false; }; "disabledInput": { "alias": "disabled"; "required": false; }; "submitOnEnterInput": { "alias": "submitOnEnter"; "required": false; }; "centerWhenEmptyInput": { "alias": "centerWhenEmpty"; "required": false; }; "attachmentsInput": { "alias": "attachments"; "required": false; }; "elicitationInput": { "alias": "elicitation"; "required": false; }; "isTypingInput": { "alias": "isTyping"; "required": false; }; "typingTextInput": { "alias": "typingText"; "required": false; }; "layoutTransitionMs": { "alias": "layoutTransitionMs"; "required": false; }; "conversationIdInput": { "alias": "conversationId"; "required": false; }; "config": { "alias": "config"; "required": false; }; "bubbleTemplate": { "alias": "bubbleTemplate"; "required": false; }; }, { "messageSent": "messageSent"; "action": "action"; "messagesChange": "messagesChange"; "messageAppended": "messageAppended"; "typingChange": "typingChange"; "conversationCreated": "conversationCreated"; }, never, ["[slot='empty-state']", "[slot='above-composer']", "[slot='toolbar']", "[slot='composer']"], true, never>;
|
|
194
203
|
static ngAcceptInputType_disabledInput: unknown;
|
|
195
204
|
static ngAcceptInputType_submitOnEnterInput: unknown;
|
|
196
205
|
static ngAcceptInputType_centerWhenEmptyInput: unknown;
|
|
197
206
|
static ngAcceptInputType_attachmentsInput: unknown;
|
|
207
|
+
static ngAcceptInputType_elicitationInput: unknown;
|
|
198
208
|
static ngAcceptInputType_isTypingInput: unknown;
|
|
199
209
|
static ngAcceptInputType_layoutTransitionMs: unknown;
|
|
200
210
|
}
|
|
@@ -54,6 +54,12 @@ export declare class ConversationManagerService implements OnDestroy {
|
|
|
54
54
|
archive(id: string): Promise<void>;
|
|
55
55
|
/** Restore an archived conversation. */
|
|
56
56
|
unarchive(id: string): Promise<void>;
|
|
57
|
+
/** Pin a conversation to the top of the list. */
|
|
58
|
+
pin(id: string): Promise<void>;
|
|
59
|
+
/** Unpin a conversation. */
|
|
60
|
+
unpin(id: string): Promise<void>;
|
|
61
|
+
/** Rename a conversation. */
|
|
62
|
+
updateTitle(id: string, title: string): Promise<void>;
|
|
57
63
|
private _assertInit;
|
|
58
64
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConversationManagerService, never>;
|
|
59
65
|
static ɵprov: i0.ɵɵInjectableDeclaration<ConversationManagerService>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aparte/angular",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "Angular 19 wrapper for aparté — an ergonomic <aparte-chat> component plus services over the framework-agnostic web components.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"peerDependencies": {
|
|
30
30
|
"@angular/common": "^19.2.0",
|
|
31
31
|
"@angular/core": "^19.2.0",
|
|
32
|
-
"@aparte/core": ">=0.
|
|
32
|
+
"@aparte/core": ">=0.16.0 <1.0.0",
|
|
33
33
|
"rxjs": "^7.8.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"typescript": "^5.4.0",
|
|
46
46
|
"vite": "^6.0.0",
|
|
47
47
|
"zone.js": "~0.15.0",
|
|
48
|
-
"@aparte/core": "0.
|
|
48
|
+
"@aparte/core": "0.16.0"
|
|
49
49
|
},
|
|
50
50
|
"keywords": [
|
|
51
51
|
"angular",
|