@aparte/core 0.2.0-alpha.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/LICENSE +21 -0
- package/README.md +53 -0
- package/dist/client/aparte-client.d.ts +326 -0
- package/dist/client/aparte-client.d.ts.map +1 -0
- package/dist/client/stream-adapter.d.ts +197 -0
- package/dist/client/stream-adapter.d.ts.map +1 -0
- package/dist/components/bubble/aparte-chat-bubble.d.ts +153 -0
- package/dist/components/bubble/aparte-chat-bubble.d.ts.map +1 -0
- package/dist/components/bubble/bubble-sync.d.ts +44 -0
- package/dist/components/bubble/bubble-sync.d.ts.map +1 -0
- package/dist/components/bubble/index.d.ts +4 -0
- package/dist/components/bubble/index.d.ts.map +1 -0
- package/dist/components/chat/aparte-chat.d.ts +49 -0
- package/dist/components/chat/aparte-chat.d.ts.map +1 -0
- package/dist/components/chat/index.d.ts +2 -0
- package/dist/components/chat/index.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer-action.d.ts +37 -0
- package/dist/components/composer/aparte-composer-action.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer-add-attachment.d.ts +27 -0
- package/dist/components/composer/aparte-composer-add-attachment.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer-attachments.d.ts +26 -0
- package/dist/components/composer/aparte-composer-attachments.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer-cancel.d.ts +21 -0
- package/dist/components/composer/aparte-composer-cancel.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer-input.d.ts +63 -0
- package/dist/components/composer/aparte-composer-input.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer-send.d.ts +25 -0
- package/dist/components/composer/aparte-composer-send.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer.d.ts +150 -0
- package/dist/components/composer/aparte-composer.d.ts.map +1 -0
- package/dist/components/composer/index.d.ts +9 -0
- package/dist/components/composer/index.d.ts.map +1 -0
- package/dist/components/conversation-list/aparte-conversation-list.d.ts +50 -0
- package/dist/components/conversation-list/aparte-conversation-list.d.ts.map +1 -0
- package/dist/components/conversation-list/index.d.ts +2 -0
- package/dist/components/conversation-list/index.d.ts.map +1 -0
- package/dist/components/elicitation/aparte-elicitation.d.ts +29 -0
- package/dist/components/elicitation/aparte-elicitation.d.ts.map +1 -0
- package/dist/components/index.d.ts +10 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/status/aparte-chat-status.d.ts +34 -0
- package/dist/components/status/aparte-chat-status.d.ts.map +1 -0
- package/dist/components/status/index.d.ts +2 -0
- package/dist/components/status/index.d.ts.map +1 -0
- package/dist/components/viewport/aparte-chat-viewport.d.ts +358 -0
- package/dist/components/viewport/aparte-chat-viewport.d.ts.map +1 -0
- package/dist/components/viewport/index.d.ts +2 -0
- package/dist/components/viewport/index.d.ts.map +1 -0
- package/dist/config/action-provider.d.ts +59 -0
- package/dist/config/action-provider.d.ts.map +1 -0
- package/dist/config/aparte-config.d.ts +490 -0
- package/dist/config/aparte-config.d.ts.map +1 -0
- package/dist/config/attachment-renderer.d.ts +28 -0
- package/dist/config/attachment-renderer.d.ts.map +1 -0
- package/dist/config/avatar-provider.d.ts +35 -0
- package/dist/config/avatar-provider.d.ts.map +1 -0
- package/dist/config/bubble-shell-renderer.d.ts +41 -0
- package/dist/config/bubble-shell-renderer.d.ts.map +1 -0
- package/dist/config/config-context.d.ts +47 -0
- package/dist/config/config-context.d.ts.map +1 -0
- package/dist/config/error-renderer.d.ts +26 -0
- package/dist/config/error-renderer.d.ts.map +1 -0
- package/dist/config/icon-provider.d.ts +63 -0
- package/dist/config/icon-provider.d.ts.map +1 -0
- package/dist/config/index.d.ts +19 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/locale.d.ts +60 -0
- package/dist/config/locale.d.ts.map +1 -0
- package/dist/config/sanitize.d.ts +31 -0
- package/dist/config/sanitize.d.ts.map +1 -0
- package/dist/config/sibling-nav-renderer.d.ts +27 -0
- package/dist/config/sibling-nav-renderer.d.ts.map +1 -0
- package/dist/config/skeleton-provider.d.ts +26 -0
- package/dist/config/skeleton-provider.d.ts.map +1 -0
- package/dist/config/status-renderer.d.ts +23 -0
- package/dist/config/status-renderer.d.ts.map +1 -0
- package/dist/conversations/conversation-controller.d.ts +126 -0
- package/dist/conversations/conversation-controller.d.ts.map +1 -0
- package/dist/conversations/conversation-manager.d.ts +98 -0
- package/dist/conversations/conversation-manager.d.ts.map +1 -0
- package/dist/conversations/index.d.ts +5 -0
- package/dist/conversations/index.d.ts.map +1 -0
- package/dist/conversations/types.d.ts +172 -0
- package/dist/conversations/types.d.ts.map +1 -0
- package/dist/custom-elements.json +15833 -0
- package/dist/elicitation/index.d.ts +20 -0
- package/dist/elicitation/index.d.ts.map +1 -0
- package/dist/elicitation/panel.d.ts +18 -0
- package/dist/elicitation/panel.d.ts.map +1 -0
- package/dist/elicitation/types.d.ts +98 -0
- package/dist/elicitation/types.d.ts.map +1 -0
- package/dist/host/aparte-chat-host.d.ts +176 -0
- package/dist/host/aparte-chat-host.d.ts.map +1 -0
- package/dist/host/index.d.ts +2 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/index-D89k-n2Q.js +6294 -0
- package/dist/index-D89k-n2Q.js.map +1 -0
- package/dist/index.css +2554 -0
- package/dist/index.d.ts +62 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3763 -0
- package/dist/index.js.map +1 -0
- package/dist/index.node.d.ts +53 -0
- package/dist/index.node.d.ts.map +1 -0
- package/dist/index.node.js +49 -0
- package/dist/index.node.js.map +1 -0
- package/dist/interop/element-props.d.ts +23 -0
- package/dist/interop/element-props.d.ts.map +1 -0
- package/dist/parsers/aparte-event-stream.d.ts +13 -0
- package/dist/parsers/aparte-event-stream.d.ts.map +1 -0
- package/dist/parsers/aparte-stream-parser.d.ts +137 -0
- package/dist/parsers/aparte-stream-parser.d.ts.map +1 -0
- package/dist/parsers/index.d.ts +4 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/primitives/index.d.ts +8 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/progress-spinner/aparte-progress-spinner.d.ts +25 -0
- package/dist/primitives/progress-spinner/aparte-progress-spinner.d.ts.map +1 -0
- package/dist/primitives/progress-spinner/index.d.ts +2 -0
- package/dist/primitives/progress-spinner/index.d.ts.map +1 -0
- package/dist/primitives/select/aparte-optgroup.d.ts +32 -0
- package/dist/primitives/select/aparte-optgroup.d.ts.map +1 -0
- package/dist/primitives/select/aparte-option.d.ts +30 -0
- package/dist/primitives/select/aparte-option.d.ts.map +1 -0
- package/dist/primitives/select/aparte-select.d.ts +74 -0
- package/dist/primitives/select/aparte-select.d.ts.map +1 -0
- package/dist/primitives/select/index.d.ts +9 -0
- package/dist/primitives/select/index.d.ts.map +1 -0
- package/dist/renderers/index.d.ts +5 -0
- package/dist/renderers/index.d.ts.map +1 -0
- package/dist/renderers/segment-renderers.d.ts +31 -0
- package/dist/renderers/segment-renderers.d.ts.map +1 -0
- package/dist/runtime/message-repository.d.ts +111 -0
- package/dist/runtime/message-repository.d.ts.map +1 -0
- package/dist/transport/backend-handler.d.ts +50 -0
- package/dist/transport/backend-handler.d.ts.map +1 -0
- package/dist/transport/backend-transport.d.ts +39 -0
- package/dist/transport/backend-transport.d.ts.map +1 -0
- package/dist/transport/direct-transport.d.ts +36 -0
- package/dist/transport/direct-transport.d.ts.map +1 -0
- package/dist/transport/index.d.ts +6 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/types.d.ts +73 -0
- package/dist/transport/types.d.ts.map +1 -0
- package/dist/types/chat.d.ts +223 -0
- package/dist/types/chat.d.ts.map +1 -0
- package/dist/types/errors.d.ts +25 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/event-map.d.ts +41 -0
- package/dist/types/event-map.d.ts.map +1 -0
- package/dist/types/events.d.ts +290 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/imperative-api.d.ts +38 -0
- package/dist/types/imperative-api.d.ts.map +1 -0
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/model-provider.d.ts +229 -0
- package/dist/types/model-provider.d.ts.map +1 -0
- package/dist/types/models.d.ts +173 -0
- package/dist/types/models.d.ts.map +1 -0
- package/dist/types/parsers.d.ts +42 -0
- package/dist/types/parsers.d.ts.map +1 -0
- package/dist/types/providers.d.ts +93 -0
- package/dist/types/providers.d.ts.map +1 -0
- package/dist/types/segments.d.ts +221 -0
- package/dist/types/segments.d.ts.map +1 -0
- package/dist/types/theming.d.ts +44 -0
- package/dist/types/theming.d.ts.map +1 -0
- package/dist/types/tools.d.ts +98 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/utils/assert-never.d.ts +9 -0
- package/dist/utils/assert-never.d.ts.map +1 -0
- package/dist/utils/css-escape.d.ts +15 -0
- package/dist/utils/css-escape.d.ts.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
export interface AparteComposerEventMap {
|
|
2
|
+
'value-change': {
|
|
3
|
+
value: string;
|
|
4
|
+
};
|
|
5
|
+
'streaming-change': {
|
|
6
|
+
streaming: boolean;
|
|
7
|
+
};
|
|
8
|
+
'disabled-change': {
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
};
|
|
11
|
+
'attachments-change': {
|
|
12
|
+
attachments: File[];
|
|
13
|
+
};
|
|
14
|
+
'submit': {
|
|
15
|
+
value: string;
|
|
16
|
+
attachments: File[];
|
|
17
|
+
};
|
|
18
|
+
'cancel': Record<string, never>;
|
|
19
|
+
'panel-change': {
|
|
20
|
+
active: boolean;
|
|
21
|
+
submitEnabled: boolean;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export type AparteComposerEventType = keyof AparteComposerEventMap;
|
|
25
|
+
/**
|
|
26
|
+
* Public snapshot of the composer's observable state. Delivered on every
|
|
27
|
+
* `aparte-composer-change` DOM event and available synchronously via
|
|
28
|
+
* {@link AparteComposer.getState}. Lets an element OUTSIDE the composer package
|
|
29
|
+
* (a custom send button, a footer control) mirror the composer's live state
|
|
30
|
+
* without the internal `_on`/`_emit` bus.
|
|
31
|
+
*/
|
|
32
|
+
export interface AparteComposerState {
|
|
33
|
+
value: string;
|
|
34
|
+
streaming: boolean;
|
|
35
|
+
disabled: boolean;
|
|
36
|
+
attachments: File[];
|
|
37
|
+
/** A panel (e.g. an elicitation form) is showing in place of the input. */
|
|
38
|
+
panelActive: boolean;
|
|
39
|
+
/** Whether the send button should act as "submit" while a panel is active. */
|
|
40
|
+
submitEnabled: boolean;
|
|
41
|
+
}
|
|
42
|
+
/** Detail of the public `aparte-composer-change` DOM event. */
|
|
43
|
+
export interface AparteComposerChangeEventDetail {
|
|
44
|
+
state: AparteComposerState;
|
|
45
|
+
composer: AparteComposer;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @element aparte-composer
|
|
49
|
+
*
|
|
50
|
+
* Root context for all `aparte-composer-*` primitives.
|
|
51
|
+
* Does NOT impose any visual layout — the consumer controls structure.
|
|
52
|
+
*
|
|
53
|
+
* @attr placeholder - Forwarded to aparte-composer-input via event
|
|
54
|
+
* @attr disabled - Disables the whole composer
|
|
55
|
+
* @attr target - ID of the <aparte-chat> target element
|
|
56
|
+
*
|
|
57
|
+
* @fires aparte-send - Fired when a message is submitted
|
|
58
|
+
*/
|
|
59
|
+
export declare class AparteComposer extends HTMLElement {
|
|
60
|
+
private _value;
|
|
61
|
+
private _streaming;
|
|
62
|
+
private _attachments;
|
|
63
|
+
private _listeners;
|
|
64
|
+
private _panelActive;
|
|
65
|
+
private _panelSubmitEnabled;
|
|
66
|
+
private _panelOnSubmit;
|
|
67
|
+
private static readonly _STATE_EVENTS;
|
|
68
|
+
private _onMessageStart;
|
|
69
|
+
private _onMessageDone;
|
|
70
|
+
/** Config governing THIS composer (nearest instance boundary, else global). */
|
|
71
|
+
private _cfg;
|
|
72
|
+
private _configUnsub;
|
|
73
|
+
/** True while `requireModelSelection` is on AND no model is selected — blocks send. */
|
|
74
|
+
private _modelGated;
|
|
75
|
+
private _onConfigChange;
|
|
76
|
+
static get observedAttributes(): string[];
|
|
77
|
+
connectedCallback(): void;
|
|
78
|
+
disconnectedCallback(): void;
|
|
79
|
+
attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
|
|
80
|
+
get value(): string;
|
|
81
|
+
get streaming(): boolean;
|
|
82
|
+
get disabled(): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* When false, Shift+Enter submits and a bare Enter inserts a newline —
|
|
85
|
+
* the inverse of the default. Driven by the `submit-on-enter` attribute.
|
|
86
|
+
*/
|
|
87
|
+
get submitOnEnter(): boolean;
|
|
88
|
+
get attachments(): File[];
|
|
89
|
+
get placeholder(): string;
|
|
90
|
+
get targetId(): string | null;
|
|
91
|
+
/**
|
|
92
|
+
* Snapshot of the composer's observable state. Pair with the
|
|
93
|
+
* `aparte-composer-change` DOM event to drive a custom send button or footer
|
|
94
|
+
* control that lives outside the composer package:
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* // A custom send button. Keep it CLICKABLE while streaming — submit()
|
|
98
|
+
* // routes to cancel() when a response is in flight, so one button is
|
|
99
|
+
* // Send/Stop. Disabling it on `streaming` would make "stop" unreachable.
|
|
100
|
+
* composer.addEventListener('aparte-composer-change', (e) => {
|
|
101
|
+
* const { streaming, disabled, value, attachments } = e.detail.state;
|
|
102
|
+
* myButton.textContent = streaming ? 'Stop' : 'Send';
|
|
103
|
+
* myButton.disabled = disabled || (!streaming && !value.trim() && attachments.length === 0);
|
|
104
|
+
* });
|
|
105
|
+
* myButton.addEventListener('click', () => composer.submit()); // send or stop
|
|
106
|
+
*/
|
|
107
|
+
getState(): AparteComposerState;
|
|
108
|
+
setValue(value: string): void;
|
|
109
|
+
addAttachments(files: FileList | File[]): void;
|
|
110
|
+
removeAttachment(file: File): void;
|
|
111
|
+
clearAttachments(): void;
|
|
112
|
+
/** Inject a panel into the composer, hiding the text input. The send button calls onSubmit when clicked. */
|
|
113
|
+
showPanel(panel: HTMLElement, options?: {
|
|
114
|
+
submitEnabled?: boolean;
|
|
115
|
+
onSubmit?: () => void;
|
|
116
|
+
}): void;
|
|
117
|
+
/** Remove the panel and restore the text input. */
|
|
118
|
+
hidePanel(): void;
|
|
119
|
+
/** Update the send button enabled state while a panel is active. */
|
|
120
|
+
setPanelSubmitEnabled(enabled: boolean): void;
|
|
121
|
+
get panelActive(): boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Recompute the model gate from the resolved config. When
|
|
124
|
+
* `requireModelSelection` is on and no model is selected, block sending and
|
|
125
|
+
* reflect `data-model-gated` so the shipped CSS greys the composer. Re-runs on
|
|
126
|
+
* every config change (e.g. the model selector's auto-select firing).
|
|
127
|
+
*/
|
|
128
|
+
private _evaluateModelGate;
|
|
129
|
+
/** Submit the current value. Called by aparte-composer-send or programmatically. */
|
|
130
|
+
submit(): void;
|
|
131
|
+
/** Cancel the current streaming response. */
|
|
132
|
+
cancel(): void;
|
|
133
|
+
/**
|
|
134
|
+
* Reset the composer to its initial state.
|
|
135
|
+
* Clears value, attachments, and hides any active panel.
|
|
136
|
+
* Call this when switching conversations.
|
|
137
|
+
*/
|
|
138
|
+
reset(): void;
|
|
139
|
+
/** Focus the input primitive inside this composer. */
|
|
140
|
+
focus(): void;
|
|
141
|
+
_emit<K extends AparteComposerEventType>(event: K, payload: AparteComposerEventMap[K]): void;
|
|
142
|
+
_on<K extends AparteComposerEventType>(event: K, cb: (payload: AparteComposerEventMap[K]) => void): () => void;
|
|
143
|
+
/** A window lifecycle event is for THIS composer when neither side is scoped
|
|
144
|
+
* (single-instance broadcast) or the target ids match (multi-chat page).
|
|
145
|
+
* Without this filter, streaming in one chat flips every composer's state. */
|
|
146
|
+
private _isForThisComposer;
|
|
147
|
+
private _handleMessageStart;
|
|
148
|
+
private _handleMessageDone;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=aparte-composer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aparte-composer.d.ts","sourceRoot":"","sources":["../../../src/components/composer/aparte-composer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { AparteComposer } from './aparte-composer.js';
|
|
2
|
+
export type { AparteComposerEventMap, AparteComposerEventType, AparteComposerState, AparteComposerChangeEventDetail, } from './aparte-composer.js';
|
|
3
|
+
export { AparteComposerInput } from './aparte-composer-input.js';
|
|
4
|
+
export { AparteComposerSend } from './aparte-composer-send.js';
|
|
5
|
+
export { AparteComposerCancel } from './aparte-composer-cancel.js';
|
|
6
|
+
export { AparteComposerAttachments } from './aparte-composer-attachments.js';
|
|
7
|
+
export { AparteComposerAddAttachment } from './aparte-composer-add-attachment.js';
|
|
8
|
+
export { AparteComposerAction } from './aparte-composer-action.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/composer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EACR,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,+BAA+B,GAClC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AparteConversationList — conversation history sidebar primitive
|
|
3
|
+
*
|
|
4
|
+
* Framework-agnostic web component. The host sets the `conversations`
|
|
5
|
+
* JS property and the `active-id` attribute; the component renders the
|
|
6
|
+
* list and fires events for user interactions.
|
|
7
|
+
*
|
|
8
|
+
* @fires {CustomEvent<AparteConversationSelectDetail>} aparte-select-conversation
|
|
9
|
+
* @fires {CustomEvent<AparteConversationDeleteDetail>} aparte-delete-conversation
|
|
10
|
+
* @fires {CustomEvent<AparteConversationArchiveDetail>} aparte-archive-conversation
|
|
11
|
+
* @fires {CustomEvent<AparteConversationUnarchiveDetail>} aparte-unarchive-conversation
|
|
12
|
+
*/
|
|
13
|
+
export interface AparteConversationListItem {
|
|
14
|
+
id: string;
|
|
15
|
+
title: string;
|
|
16
|
+
updatedAt?: number;
|
|
17
|
+
/** When set, the item renders the unarchive action instead of archive. */
|
|
18
|
+
archivedAt?: number;
|
|
19
|
+
}
|
|
20
|
+
export interface AparteConversationSelectDetail {
|
|
21
|
+
id: string;
|
|
22
|
+
}
|
|
23
|
+
export interface AparteConversationDeleteDetail {
|
|
24
|
+
id: string;
|
|
25
|
+
}
|
|
26
|
+
export interface AparteConversationArchiveDetail {
|
|
27
|
+
id: string;
|
|
28
|
+
}
|
|
29
|
+
export interface AparteConversationUnarchiveDetail {
|
|
30
|
+
id: string;
|
|
31
|
+
}
|
|
32
|
+
export declare class AparteConversationList extends HTMLElement {
|
|
33
|
+
private _conversations;
|
|
34
|
+
private _activeId;
|
|
35
|
+
static get observedAttributes(): string[];
|
|
36
|
+
connectedCallback(): void;
|
|
37
|
+
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
38
|
+
/** Set the list of conversations to display. Triggers a re-render. */
|
|
39
|
+
set conversations(items: AparteConversationListItem[]);
|
|
40
|
+
get conversations(): AparteConversationListItem[];
|
|
41
|
+
private _render;
|
|
42
|
+
private _renderItem;
|
|
43
|
+
private _bindEvents;
|
|
44
|
+
private _onClick;
|
|
45
|
+
private _onKeydown;
|
|
46
|
+
/** Update active class without full re-render (perf optimisation). */
|
|
47
|
+
private _updateActiveState;
|
|
48
|
+
private _esc;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=aparte-conversation-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aparte-conversation-list.d.ts","sourceRoot":"","sources":["../../../src/components/conversation-list/aparte-conversation-list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,0BAA0B;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,8BAA8B;IAC3C,EAAE,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,8BAA8B;IAC3C,EAAE,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,+BAA+B;IAC5C,EAAE,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iCAAiC;IAC9C,EAAE,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACnD,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,SAAS,CAAuB;IAExC,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAID,iBAAiB,IAAI,IAAI;IAUzB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAU9F,sEAAsE;IACtE,IAAI,aAAa,CAAC,KAAK,EAAE,0BAA0B,EAAE,EAGpD;IAED,IAAI,aAAa,IAAI,0BAA0B,EAAE,CAEhD;IAID,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,WAAW;IAiDnB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,QAAQ,CAkCd;IAEF,OAAO,CAAC,UAAU,CAOhB;IAEF,sEAAsE;IACtE,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,IAAI;CAQf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/conversation-list/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,GACtC,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* <aparte-elicitation> — the default elicitation presenter.
|
|
3
|
+
*
|
|
4
|
+
* Registers itself as the presenter for the config governing its subtree
|
|
5
|
+
* (`resolveConfig(this)`), so `requestUserInput()` from a tool handler is routed
|
|
6
|
+
* here WITHOUT any window events — the typed presenter contract replaces the
|
|
7
|
+
* stringly-typed `aparte-ask-question-*` events that drifted in Phase 1.
|
|
8
|
+
*
|
|
9
|
+
* On a request it builds the schema-appropriate panel (enum / boolean / string /
|
|
10
|
+
* object) and mounts it inside the nearest `<aparte-composer>` via its
|
|
11
|
+
* `showPanel` API, resolving:
|
|
12
|
+
* - accept — the send button (panel submit), when all fields are complete
|
|
13
|
+
* - decline — the inline "Skip" affordance
|
|
14
|
+
* - cancel — the assistant turn was stopped/errored while pending
|
|
15
|
+
*
|
|
16
|
+
* Place anywhere inside the chat (it renders nothing itself):
|
|
17
|
+
* <aparte-elicitation></aparte-elicitation>
|
|
18
|
+
*/
|
|
19
|
+
export declare class AparteElicitation extends HTMLElement {
|
|
20
|
+
private _pending;
|
|
21
|
+
private _onTurnEnd;
|
|
22
|
+
connectedCallback(): void;
|
|
23
|
+
disconnectedCallback(): void;
|
|
24
|
+
private _present;
|
|
25
|
+
private _cancelPending;
|
|
26
|
+
private _getComposer;
|
|
27
|
+
private _injectStyles;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=aparte-elicitation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aparte-elicitation.d.ts","sourceRoot":"","sources":["../../../src/components/elicitation/aparte-elicitation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAiBH,qBAAa,iBAAkB,SAAQ,WAAW;IAC9C,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,UAAU,CAAqC;IAEvD,iBAAiB,IAAI,IAAI;IAYzB,oBAAoB,IAAI,IAAI;IAQ5B,OAAO,CAAC,QAAQ,CA+Cd;IAEF,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,aAAa;CA4BxB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { AparteChat } from './chat/index.js';
|
|
2
|
+
export { AparteChatBubble, populateBubbleFromMessage } from './bubble/index.js';
|
|
3
|
+
export type { SyncableBubble } from './bubble/index.js';
|
|
4
|
+
export { AparteChatStatus } from './status/index.js';
|
|
5
|
+
export { AparteChatViewport } from './viewport/index.js';
|
|
6
|
+
export { AparteComposer, AparteComposerInput, AparteComposerSend, AparteComposerCancel, AparteComposerAttachments, AparteComposerAddAttachment, AparteComposerAction } from './composer/index.js';
|
|
7
|
+
export type { AparteComposerEventMap, AparteComposerEventType, AparteComposerState, AparteComposerChangeEventDetail } from './composer/index.js';
|
|
8
|
+
export { AparteConversationList } from './conversation-list/index.js';
|
|
9
|
+
export type { AparteConversationListItem, AparteConversationSelectDetail, AparteConversationDeleteDetail } from './conversation-list/index.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAChF,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAClM,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AAGjJ,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,YAAY,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare class AparteChatStatus extends HTMLElement {
|
|
2
|
+
static get observedAttributes(): string[];
|
|
3
|
+
private _cfg;
|
|
4
|
+
constructor();
|
|
5
|
+
connectedCallback(): void;
|
|
6
|
+
disconnectedCallback(): void;
|
|
7
|
+
private _onConfigChange;
|
|
8
|
+
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
9
|
+
/**
|
|
10
|
+
* Show the typing indicator
|
|
11
|
+
*/
|
|
12
|
+
show(): void;
|
|
13
|
+
/**
|
|
14
|
+
* Hide the typing indicator
|
|
15
|
+
*/
|
|
16
|
+
hide(): void;
|
|
17
|
+
/**
|
|
18
|
+
* Toggle visibility
|
|
19
|
+
*/
|
|
20
|
+
toggle(): void;
|
|
21
|
+
/**
|
|
22
|
+
* Check if visible
|
|
23
|
+
*/
|
|
24
|
+
isVisible(): boolean;
|
|
25
|
+
private _render;
|
|
26
|
+
private _updateVisibility;
|
|
27
|
+
private _updateText;
|
|
28
|
+
}
|
|
29
|
+
declare global {
|
|
30
|
+
interface HTMLElementTagNameMap {
|
|
31
|
+
'aparte-chat-status': AparteChatStatus;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=aparte-chat-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aparte-chat-status.d.ts","sourceRoot":"","sources":["../../../src/components/status/aparte-chat-status.ts"],"names":[],"mappings":"AAaA,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,OAAO,CAAC,IAAI,CAAqB;;IAMjC,iBAAiB,IAAI,IAAI;IAYzB,oBAAoB,IAAI,IAAI;IAI5B,OAAO,CAAC,eAAe,CASrB;IAEF,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAa9F;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,MAAM,IAAI,IAAI;IAQd;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB,OAAO,CAAC,OAAO;IAoDf,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,WAAW;CASpB;AAOD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,gBAAgB,CAAC;KACxC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/status/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
|