@aparte/core 0.6.1 → 0.7.1
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/components/bubble/aparte-chat-bubble.d.ts +13 -0
- package/dist/components/bubble/aparte-chat-bubble.d.ts.map +1 -1
- package/dist/components/chat/aparte-chat.d.ts +17 -0
- package/dist/components/chat/aparte-chat.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-add-attachment.d.ts +11 -0
- package/dist/components/composer/aparte-composer-add-attachment.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-attachments.d.ts +14 -0
- package/dist/components/composer/aparte-composer-attachments.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-cancel.d.ts +11 -0
- package/dist/components/composer/aparte-composer-cancel.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-input.d.ts +10 -0
- package/dist/components/composer/aparte-composer-input.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-send.d.ts +10 -0
- package/dist/components/composer/aparte-composer-send.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-toolbar.d.ts +53 -0
- package/dist/components/composer/aparte-composer-toolbar.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer.d.ts +13 -0
- package/dist/components/composer/aparte-composer.d.ts.map +1 -1
- package/dist/components/composer/index.d.ts +1 -0
- package/dist/components/composer/index.d.ts.map +1 -1
- package/dist/components/conversation-list/aparte-conversation-list.d.ts +15 -1
- package/dist/components/conversation-list/aparte-conversation-list.d.ts.map +1 -1
- package/dist/components/elicitation/aparte-elicitation.d.ts +15 -0
- package/dist/components/elicitation/aparte-elicitation.d.ts.map +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/status/aparte-chat-status.d.ts +6 -0
- package/dist/components/status/aparte-chat-status.d.ts.map +1 -1
- package/dist/components/viewport/aparte-chat-viewport.d.ts +8 -0
- package/dist/components/viewport/aparte-chat-viewport.d.ts.map +1 -1
- package/dist/custom-elements.json +4909 -4733
- package/dist/index.css +23 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -1
- package/dist/primitives/progress-spinner/aparte-progress-spinner.d.ts +5 -0
- package/dist/primitives/progress-spinner/aparte-progress-spinner.d.ts.map +1 -1
- package/dist/primitives/select/aparte-optgroup.d.ts +11 -0
- package/dist/primitives/select/aparte-optgroup.d.ts.map +1 -1
- package/dist/primitives/select/aparte-option.d.ts +6 -0
- package/dist/primitives/select/aparte-option.d.ts.map +1 -1
- package/dist/primitives/select/aparte-select.d.ts +13 -0
- package/dist/primitives/select/aparte-select.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -4,6 +4,19 @@ import type { AparteSegment, AparteAttachment, AparteUsage, AparteMessage } from
|
|
|
4
4
|
*
|
|
5
5
|
* Message component supporting both simple content and rich segments.
|
|
6
6
|
* Uses Light DOM for global CSS styling.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* <!-- Rendered for you by the viewport. Written by hand only when you drive the DOM
|
|
10
|
+
* yourself: `message-id` is what streaming and the action bar address it by. -->
|
|
11
|
+
* <aparte-chat-bubble
|
|
12
|
+
* message-id="a1"
|
|
13
|
+
* data-role="assistant"
|
|
14
|
+
* name="Assistant"
|
|
15
|
+
* content="Hello."
|
|
16
|
+
* ></aparte-chat-bubble>
|
|
17
|
+
*
|
|
18
|
+
* <!-- While a reply is in flight: `streaming` hides the action bar and shows the caret. -->
|
|
19
|
+
* <aparte-chat-bubble message-id="a2" data-role="assistant" streaming></aparte-chat-bubble>
|
|
7
20
|
*/
|
|
8
21
|
export declare class AparteChatBubble extends HTMLElement {
|
|
9
22
|
private _contentEl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aparte-chat-bubble.d.ts","sourceRoot":"","sources":["../../../src/components/bubble/aparte-chat-bubble.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,gBAAgB,EAOhB,WAAW,EACX,aAAa,EACd,MAAM,sBAAsB,CAAC;AAoD9B
|
|
1
|
+
{"version":3,"file":"aparte-chat-bubble.d.ts","sourceRoot":"","sources":["../../../src/components/bubble/aparte-chat-bubble.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,23 @@ import type { AparteComposer } from '../composer/aparte-composer.js';
|
|
|
23
23
|
* @attr disabled - Disables the composer
|
|
24
24
|
* @attr center-empty - Center the composer as a welcome state until the first message, then slide to the normal layout
|
|
25
25
|
* @attr attachments - Add the file picker + chips strip to the default composition (opt-in: the host must consume the files — an `AparteClient` does, a hand-rolled loop must read `event.detail.files`)
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* <!-- Left empty it fills in a viewport, an input and a send button. -->
|
|
29
|
+
* <aparte-chat center-empty placeholder="Say something…" style="height: 600px"></aparte-chat>
|
|
30
|
+
*
|
|
31
|
+
* <!-- Or compose it yourself; the container still lays it out and runs center-empty. -->
|
|
32
|
+
* <aparte-chat center-empty attachments style="height: 600px">
|
|
33
|
+
* <aparte-chat-viewport></aparte-chat-viewport>
|
|
34
|
+
* <aparte-composer>
|
|
35
|
+
* <div class="aparte-composer-shell">
|
|
36
|
+
* <div class="aparte-composer-row">
|
|
37
|
+
* <aparte-composer-input style="flex: 1"></aparte-composer-input>
|
|
38
|
+
* <aparte-composer-send></aparte-composer-send>
|
|
39
|
+
* </div>
|
|
40
|
+
* </div>
|
|
41
|
+
* </aparte-composer>
|
|
42
|
+
* </aparte-chat>
|
|
26
43
|
*/
|
|
27
44
|
export declare class AparteChat extends HTMLElement {
|
|
28
45
|
static get observedAttributes(): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aparte-chat.d.ts","sourceRoot":"","sources":["../../../src/components/chat/aparte-chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE
|
|
1
|
+
{"version":3,"file":"aparte-chat.d.ts","sourceRoot":"","sources":["../../../src/components/chat/aparte-chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,qBAAa,UAAW,SAAQ,WAAW;IACzC,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,OAAO,CAAC,SAAS,CAAiC;IAElD;;;;OAIG;IACH,OAAO,CAAC,UAAU,CAAS;IAE3B,iBAAiB,IAAI,IAAI;IAOzB,oBAAoB,IAAI,IAAI;IAK5B,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAmB9F,6EAA6E;IAC7E,IAAI,QAAQ,IAAI,kBAAkB,GAAG,IAAI,CAExC;IAED,qEAAqE;IACrE,IAAI,QAAQ,IAAI,cAAc,GAAG,IAAI,CAEpC;IAED,OAAO,CAAC,OAAO;IA0Cf;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAuBxB,6EAA6E;IAC7E,OAAO,CAAC,YAAY;IAKpB,yEAAyE;IACzE,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;CAGpB;AAOD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
|
|
@@ -7,6 +7,17 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @attr accept - MIME types / extensions passed to the file input (e.g. "image/*,.pdf")
|
|
9
9
|
* @attr multiple - Allow multiple file selection (default: true)
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <!-- Opt-in: nothing consumes the files unless your host does (an AparteClient, or
|
|
13
|
+
* your own listener reading `event.detail.files` off `aparte-send`). -->
|
|
14
|
+
* <aparte-composer>
|
|
15
|
+
* <div class="aparte-composer-row">
|
|
16
|
+
* <aparte-composer-add-attachment accept="image/*,.pdf"></aparte-composer-add-attachment>
|
|
17
|
+
* <aparte-composer-input style="flex: 1"></aparte-composer-input>
|
|
18
|
+
* <aparte-composer-send></aparte-composer-send>
|
|
19
|
+
* </div>
|
|
20
|
+
* </aparte-composer>
|
|
10
21
|
*/
|
|
11
22
|
export declare class AparteComposerAddAttachment extends HTMLElement {
|
|
12
23
|
private _button;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aparte-composer-add-attachment.d.ts","sourceRoot":"","sources":["../../../src/components/composer/aparte-composer-add-attachment.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"aparte-composer-add-attachment.d.ts","sourceRoot":"","sources":["../../../src/components/composer/aparte-composer-add-attachment.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,2BAA4B,SAAQ,WAAW;IACxD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,aAAa,CAAsB;IAG3C,OAAO,CAAC,QAAQ,CAAgC;IAEhD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAO5B,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAQvF,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,cAAc;IA8BtB,OAAO,CAAC,YAAY;CAGvB"}
|
|
@@ -8,6 +8,20 @@
|
|
|
8
8
|
* declared `attachmentPreview` via `AparteConfig.setHostHandlers()`.
|
|
9
9
|
* Automatically hidden when there are no attachments.
|
|
10
10
|
* Must be a descendant of <aparte-composer>.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* <!-- The strip hides itself while nothing is attached. Pair it with the picker, and
|
|
14
|
+
* only if your loop actually reads the files from the send event. -->
|
|
15
|
+
* <aparte-composer>
|
|
16
|
+
* <div class="aparte-composer-shell">
|
|
17
|
+
* <aparte-composer-attachments></aparte-composer-attachments>
|
|
18
|
+
* <div class="aparte-composer-row">
|
|
19
|
+
* <aparte-composer-add-attachment></aparte-composer-add-attachment>
|
|
20
|
+
* <aparte-composer-input style="flex: 1"></aparte-composer-input>
|
|
21
|
+
* <aparte-composer-send></aparte-composer-send>
|
|
22
|
+
* </div>
|
|
23
|
+
* </div>
|
|
24
|
+
* </aparte-composer>
|
|
11
25
|
*/
|
|
12
26
|
export declare class AparteComposerAttachments extends HTMLElement {
|
|
13
27
|
private _unsubscribes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aparte-composer-attachments.d.ts","sourceRoot":"","sources":["../../../src/components/composer/aparte-composer-attachments.ts"],"names":[],"mappings":"AASA
|
|
1
|
+
{"version":3,"file":"aparte-composer-attachments.d.ts","sourceRoot":"","sources":["../../../src/components/composer/aparte-composer-attachments.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,yBAA0B,SAAQ,WAAW;IACtD,OAAO,CAAC,aAAa,CAAsB;IAC3C,+EAA+E;IAC/E,OAAO,CAAC,WAAW,CAAgB;IAEnC,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAQ5B,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,cAAc;IAYtB,kEAAkE;IAClE,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,OAAO;IA0Df,0EAA0E;IAC1E,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,OAAO;CAGlB"}
|
|
@@ -5,6 +5,17 @@
|
|
|
5
5
|
* Must be a descendant of <aparte-composer>.
|
|
6
6
|
*
|
|
7
7
|
* Hidden when not streaming. Visible only during active streaming.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* <!-- Only needed when you want a SEPARATE stop button: <aparte-composer-send> already
|
|
11
|
+
* turns into one while streaming. This stays hidden until then. -->
|
|
12
|
+
* <aparte-composer>
|
|
13
|
+
* <div class="aparte-composer-row">
|
|
14
|
+
* <aparte-composer-input style="flex: 1"></aparte-composer-input>
|
|
15
|
+
* <aparte-composer-cancel></aparte-composer-cancel>
|
|
16
|
+
* <aparte-composer-send></aparte-composer-send>
|
|
17
|
+
* </div>
|
|
18
|
+
* </aparte-composer>
|
|
8
19
|
*/
|
|
9
20
|
export declare class AparteComposerCancel extends HTMLElement {
|
|
10
21
|
private _button;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aparte-composer-cancel.d.ts","sourceRoot":"","sources":["../../../src/components/composer/aparte-composer-cancel.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"aparte-composer-cancel.d.ts","sourceRoot":"","sources":["../../../src/components/composer/aparte-composer-cancel.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;IACjD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,aAAa,CAAsB;IAG3C,OAAO,CAAC,QAAQ,CAAgC;IAEhD,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAQ5B,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,YAAY;CAGvB"}
|
|
@@ -13,6 +13,16 @@
|
|
|
13
13
|
* min-height governs (44px in aparte.css) — so themes can
|
|
14
14
|
* resize the editor in pure CSS without being fought by
|
|
15
15
|
* an inline height.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* <aparte-composer>
|
|
19
|
+
* <div class="aparte-composer-shell">
|
|
20
|
+
* <div class="aparte-composer-row">
|
|
21
|
+
* <aparte-composer-input placeholder="Ask anything…" max-height="320" style="flex: 1"></aparte-composer-input>
|
|
22
|
+
* <aparte-composer-send></aparte-composer-send>
|
|
23
|
+
* </div>
|
|
24
|
+
* </div>
|
|
25
|
+
* </aparte-composer>
|
|
16
26
|
*/
|
|
17
27
|
export declare class AparteComposerInput extends HTMLElement {
|
|
18
28
|
private _editor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aparte-composer-input.d.ts","sourceRoot":"","sources":["../../../src/components/composer/aparte-composer-input.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"aparte-composer-input.d.ts","sourceRoot":"","sources":["../../../src/components/composer/aparte-composer-input.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;IAChD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,aAAa,CAAsB;IAG3C,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAAgC;IAEhD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAU5B,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IASvF,QAAQ,IAAI,MAAM;IAkBlB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ7B,KAAK,IAAI,IAAI;IAQJ,KAAK,IAAI,IAAI;IACb,IAAI,IAAI,IAAI;IAErB,2EAA2E;IAC3E,QAAQ,IAAI,IAAI;IAchB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,OAAO;IA8Bf,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,cAAc;IAoCtB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,aAAa;IAmBrB;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,4BAA4B;IAIpC,OAAO,CAAC,eAAe;IAMvB,wEAAwE;IACxE,OAAO,CAAC,WAAW;CAGtB"}
|
|
@@ -6,6 +6,16 @@
|
|
|
6
6
|
*
|
|
7
7
|
* - Disabled when composer value is empty, composer is disabled, or streaming
|
|
8
8
|
* - While streaming: shows stop icon and acts as cancel button
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* <!-- One button for both halves of the turn: it submits, and while a reply streams it
|
|
12
|
+
* becomes the stop button. Do not disable it on `streaming` or stop is unreachable. -->
|
|
13
|
+
* <aparte-composer>
|
|
14
|
+
* <div class="aparte-composer-row">
|
|
15
|
+
* <aparte-composer-input style="flex: 1"></aparte-composer-input>
|
|
16
|
+
* <aparte-composer-send></aparte-composer-send>
|
|
17
|
+
* </div>
|
|
18
|
+
* </aparte-composer>
|
|
9
19
|
*/
|
|
10
20
|
export declare class AparteComposerSend extends HTMLElement {
|
|
11
21
|
private _button;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aparte-composer-send.d.ts","sourceRoot":"","sources":["../../../src/components/composer/aparte-composer-send.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"aparte-composer-send.d.ts","sourceRoot":"","sources":["../../../src/components/composer/aparte-composer-send.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IAC/C,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,aAAa,CAAsB;IAG3C,OAAO,CAAC,QAAQ,CAAgC;IAEhD,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAQ5B,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,cAAc;IA6CtB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;CAGvB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @element aparte-composer-toolbar
|
|
3
|
+
*
|
|
4
|
+
* The composer's bottom row — the strip a mode picker, a model selector or a token
|
|
5
|
+
* counter belongs in, rather than a bar of your own floating below the chat. Purely
|
|
6
|
+
* structural: it lays its children out in a row and gets out of the way.
|
|
7
|
+
*
|
|
8
|
+
* **Position is the DOM order.** `margin-inline-start: auto` on a child pushes it (and
|
|
9
|
+
* everything after it) to the end of the row. That is the whole placement API on
|
|
10
|
+
* purpose: there is no `left`/`right` to be wrong about, so the row reads correctly in a
|
|
11
|
+
* right-to-left locale without the author thinking about it.
|
|
12
|
+
*
|
|
13
|
+
* The row is not part of the default `<aparte-chat>` shell — nothing is drawn until you
|
|
14
|
+
* put something in it.
|
|
15
|
+
*
|
|
16
|
+
* @attr data-empty - Reflected BY the element while it holds no element child; the
|
|
17
|
+
* stylesheet hides it then. Read-only, do not set it yourself.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* <aparte-composer>
|
|
21
|
+
* <div class="aparte-composer-shell">
|
|
22
|
+
* <div class="aparte-composer-row">
|
|
23
|
+
* <aparte-composer-input></aparte-composer-input>
|
|
24
|
+
* <aparte-composer-send></aparte-composer-send>
|
|
25
|
+
* </div>
|
|
26
|
+
*
|
|
27
|
+
* <aparte-composer-toolbar>
|
|
28
|
+
* <my-mode-picker></my-mode-picker>
|
|
29
|
+
* <aparte-model-selector style="margin-inline-start:auto"></aparte-model-selector>
|
|
30
|
+
* </aparte-composer-toolbar>
|
|
31
|
+
* </div>
|
|
32
|
+
* </aparte-composer>
|
|
33
|
+
*/
|
|
34
|
+
export declare class AparteComposerToolbar extends HTMLElement {
|
|
35
|
+
private _observer;
|
|
36
|
+
connectedCallback(): void;
|
|
37
|
+
disconnectedCallback(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Reflect `data-empty` from the presence of an ELEMENT child.
|
|
40
|
+
*
|
|
41
|
+
* Not `:empty` in CSS: that selector does not match an element holding a whitespace
|
|
42
|
+
* text node, so a template that indents its content keeps the row — separator,
|
|
43
|
+
* padding and all — while it looks empty to the user. Every framework template
|
|
44
|
+
* indents. An empty row must not draw its own separator (the same rule as an empty
|
|
45
|
+
* bubble action bar).
|
|
46
|
+
*
|
|
47
|
+
* Non-whitespace TEXT counts as content, not just an element child: a hand-written
|
|
48
|
+
* row holding a bare token count (`<aparte-composer-toolbar>1 240 tokens</…>`) is
|
|
49
|
+
* not empty, and hiding it would be a twenty-minute mystery for whoever wrote it.
|
|
50
|
+
*/
|
|
51
|
+
private _syncEmpty;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=aparte-composer-toolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aparte-composer-toolbar.d.ts","sourceRoot":"","sources":["../../../src/components/composer/aparte-composer-toolbar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,qBAAsB,SAAQ,WAAW;IAClD,OAAO,CAAC,SAAS,CAAiC;IAElD,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAK5B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,UAAU;CAKrB"}
|
|
@@ -73,6 +73,19 @@ export declare class AparteComposer extends HTMLElement {
|
|
|
73
73
|
/** True while `requireModelSelection` is on AND no model is selected — blocks send. */
|
|
74
74
|
private _modelGated;
|
|
75
75
|
private _onConfigChange;
|
|
76
|
+
/**
|
|
77
|
+
* Mirror `locale.direction` onto ourselves, so everything inside — input, buttons,
|
|
78
|
+
* the toolbar row and whatever the consumer put in it — inherits it.
|
|
79
|
+
*
|
|
80
|
+
* The direction used to stop at the transcript: only the viewport applied `dir`, so
|
|
81
|
+
* an RTL locale flipped the conversation and left the composer left-to-right. It is
|
|
82
|
+
* also what makes the toolbar's placement idiom real: `margin-inline-start: auto` in
|
|
83
|
+
* a subtree that inherits no direction is just `margin-left`.
|
|
84
|
+
*
|
|
85
|
+
* One attribute on the host rather than a stamp per child: inheritance is the
|
|
86
|
+
* mechanism, so nothing needs to know about the consumer's markup.
|
|
87
|
+
*/
|
|
88
|
+
private _applyDirection;
|
|
76
89
|
static get observedAttributes(): string[];
|
|
77
90
|
connectedCallback(): void;
|
|
78
91
|
disconnectedCallback(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aparte-composer.d.ts","sourceRoot":"","sources":["../../../src/components/composer/aparte-composer.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,sBAAsB;IACnC,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,kBAAkB,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3C,iBAAiB,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IACzC,oBAAoB,EAAE;QAAE,WAAW,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC;IAC9C,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC;IACjD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,cAAc,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC;CAC/D;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,sBAAsB,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,IAAI,EAAE,CAAC;IACpB,2EAA2E;IAC3E,WAAW,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,aAAa,EAAE,OAAO,CAAC;CAC1B;AAED,+DAA+D;AAC/D,MAAM,WAAW,+BAA+B;IAC5C,KAAK,EAAE,mBAAmB,CAAC;IAC3B,QAAQ,EAAE,cAAc,CAAC;CAC5B;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAC3C,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,UAAU,CAAsD;IACxE,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,cAAc,CAA6B;IAKnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAElC;IAGH,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,cAAc,CAAsC;IAE5D,+EAA+E;IAC/E,OAAO,CAAC,IAAI,CAAmC;IAC/C,OAAO,CAAC,YAAY,CAA6B;IACjD,uFAAuF;IACvF,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"aparte-composer.d.ts","sourceRoot":"","sources":["../../../src/components/composer/aparte-composer.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,sBAAsB;IACnC,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,kBAAkB,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3C,iBAAiB,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IACzC,oBAAoB,EAAE;QAAE,WAAW,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC;IAC9C,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC;IACjD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,cAAc,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC;CAC/D;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,sBAAsB,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,IAAI,EAAE,CAAC;IACpB,2EAA2E;IAC3E,WAAW,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,aAAa,EAAE,OAAO,CAAC;CAC1B;AAED,+DAA+D;AAC/D,MAAM,WAAW,+BAA+B;IAC5C,KAAK,EAAE,mBAAmB,CAAC;IAC3B,QAAQ,EAAE,cAAc,CAAC;CAC5B;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAC3C,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,UAAU,CAAsD;IACxE,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,cAAc,CAA6B;IAKnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAElC;IAGH,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,cAAc,CAAsC;IAE5D,+EAA+E;IAC/E,OAAO,CAAC,IAAI,CAAmC;IAC/C,OAAO,CAAC,YAAY,CAA6B;IACjD,uFAAuF;IACvF,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAsE;IAE7F;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,eAAe;IAMvB,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,iBAAiB,IAAI,IAAI;IAYzB,oBAAoB,IAAI,IAAI;IAU5B,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAWvF,IAAI,KAAK,IAAI,MAAM,CAAwB;IAC3C,IAAI,SAAS,IAAI,OAAO,CAA4B;IACpD,IAAI,QAAQ,IAAI,OAAO,CAA0C;IACjE;;;OAGG;IACH,IAAI,aAAa,IAAI,OAAO,CAA6D;IACzF,IAAI,WAAW,IAAI,IAAI,EAAE,CAA8B;IACvD,IAAI,WAAW,IAAI,MAAM,CAAmD;IAC5E,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAwC;IAErE;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,IAAI,mBAAmB;IAW/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,IAAI;IAK9C,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAKlC,gBAAgB,IAAI,IAAI;IAKxB,4GAA4G;IAC5G,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI;IAgBjG,mDAAmD;IACnD,SAAS,IAAI,IAAI;IAYjB,oEAAoE;IACpE,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAM7C,IAAI,WAAW,IAAI,OAAO,CAA8B;IAExD;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAO1B,oFAAoF;IACpF,MAAM,IAAI,IAAI;IAkCd,6CAA6C;IAC7C,MAAM,IAAI,IAAI;IAcd;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAMb,sDAAsD;IAC7C,KAAK,IAAI,IAAI;IAOtB,KAAK,CAAC,CAAC,SAAS,uBAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,IAAI;IAa5F,GAAG,CAAC,CAAC,SAAS,uBAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAQ9G;;mFAE+E;IAC/E,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,kBAAkB;CAO7B"}
|
|
@@ -6,4 +6,5 @@ export { AparteComposerCancel } from './aparte-composer-cancel.js';
|
|
|
6
6
|
export { AparteComposerAttachments } from './aparte-composer-attachments.js';
|
|
7
7
|
export { AparteComposerAddAttachment } from './aparte-composer-add-attachment.js';
|
|
8
8
|
export { AparteComposerAction } from './aparte-composer-action.js';
|
|
9
|
+
export { AparteComposerToolbar } from './aparte-composer-toolbar.js';
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +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"}
|
|
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;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -14,7 +14,8 @@ export interface AparteConversationListItem {
|
|
|
14
14
|
id: string;
|
|
15
15
|
title: string;
|
|
16
16
|
updatedAt?: number;
|
|
17
|
-
/** When set, the item renders the unarchive action instead of archive.
|
|
17
|
+
/** When set, the item renders the unarchive action instead of archive. *
|
|
18
|
+
*/
|
|
18
19
|
archivedAt?: number;
|
|
19
20
|
}
|
|
20
21
|
export interface AparteConversationSelectDetail {
|
|
@@ -29,6 +30,19 @@ export interface AparteConversationArchiveDetail {
|
|
|
29
30
|
export interface AparteConversationUnarchiveDetail {
|
|
30
31
|
id: string;
|
|
31
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* @example
|
|
35
|
+
* // The host owns the data: set the `conversations` property, listen for the intent.
|
|
36
|
+
* const list = document.querySelector('aparte-conversation-list');
|
|
37
|
+
* list.conversations = [
|
|
38
|
+
* { id: 'c1', title: 'Deploy checklist', updatedAt: Date.now() },
|
|
39
|
+
* { id: 'c2', title: 'Old thread', updatedAt: 0, archivedAt: Date.now() },
|
|
40
|
+
* ];
|
|
41
|
+
* list.setAttribute('active-id', 'c1');
|
|
42
|
+
*
|
|
43
|
+
* list.addEventListener('aparte-select-conversation', (e) => load(e.detail.id));
|
|
44
|
+
* list.addEventListener('aparte-delete-conversation', (e) => remove(e.detail.id));
|
|
45
|
+
*/
|
|
32
46
|
export declare class AparteConversationList extends HTMLElement {
|
|
33
47
|
private _conversations;
|
|
34
48
|
private _activeId;
|
|
@@ -1 +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
|
|
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;GACD;IACC,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;;;;;;;;;;;;GAYG;AACH,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;IAWzB,oBAAoB,IAAI,IAAI;IAI5B,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAQ9F;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAIrB;IAIF,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"}
|
|
@@ -16,6 +16,21 @@
|
|
|
16
16
|
* Place anywhere inside the chat (it renders nothing itself):
|
|
17
17
|
* <aparte-elicitation></aparte-elicitation>
|
|
18
18
|
*/
|
|
19
|
+
/**
|
|
20
|
+
* @example
|
|
21
|
+
* <!-- Renders nothing by itself: it registers as the presenter for its subtree, so a
|
|
22
|
+
* tool handler calling requestUserInput() gets its panel mounted in the composer. -->
|
|
23
|
+
* <aparte-chat>
|
|
24
|
+
* <aparte-chat-viewport></aparte-chat-viewport>
|
|
25
|
+
* <aparte-elicitation></aparte-elicitation>
|
|
26
|
+
* <aparte-composer>
|
|
27
|
+
* <div class="aparte-composer-row">
|
|
28
|
+
* <aparte-composer-input style="flex: 1"></aparte-composer-input>
|
|
29
|
+
* <aparte-composer-send></aparte-composer-send>
|
|
30
|
+
* </div>
|
|
31
|
+
* </aparte-composer>
|
|
32
|
+
* </aparte-chat>
|
|
33
|
+
*/
|
|
19
34
|
export declare class AparteElicitation extends HTMLElement {
|
|
20
35
|
private _pending;
|
|
21
36
|
private _onTurnEnd;
|
|
@@ -1 +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"}
|
|
1
|
+
{"version":3,"file":"aparte-elicitation.d.ts","sourceRoot":"","sources":["../../../src/components/elicitation/aparte-elicitation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAiBH;;;;;;;;;;;;;;GAcG;AACH,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"}
|
|
@@ -3,7 +3,7 @@ export { AparteChatBubble, populateBubbleFromMessage } from './bubble/index.js';
|
|
|
3
3
|
export type { SyncableBubble } from './bubble/index.js';
|
|
4
4
|
export { AparteChatStatus } from './status/index.js';
|
|
5
5
|
export { AparteChatViewport } from './viewport/index.js';
|
|
6
|
-
export { AparteComposer, AparteComposerInput, AparteComposerSend, AparteComposerCancel, AparteComposerAttachments, AparteComposerAddAttachment, AparteComposerAction } from './composer/index.js';
|
|
6
|
+
export { AparteComposer, AparteComposerInput, AparteComposerSend, AparteComposerCancel, AparteComposerAttachments, AparteComposerAddAttachment, AparteComposerAction, AparteComposerToolbar } from './composer/index.js';
|
|
7
7
|
export type { AparteComposerEventMap, AparteComposerEventType, AparteComposerState, AparteComposerChangeEventDetail } from './composer/index.js';
|
|
8
8
|
export { AparteConversationList } from './conversation-list/index.js';
|
|
9
9
|
export type { AparteConversationListItem, AparteConversationSelectDetail, AparteConversationDeleteDetail } from './conversation-list/index.js';
|
|
@@ -1 +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;
|
|
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,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACzN,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"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @example
|
|
3
|
+
* <!-- The app owns this indicator: core never turns it on by itself, so there is
|
|
4
|
+
* never a second one competing with the bubble's built-in waiting state. -->
|
|
5
|
+
* <aparte-chat-status visible text="Searching the docs…"></aparte-chat-status>
|
|
6
|
+
*/
|
|
1
7
|
export declare class AparteChatStatus extends HTMLElement {
|
|
2
8
|
static get observedAttributes(): string[];
|
|
3
9
|
private _cfg;
|
|
@@ -1 +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"}
|
|
1
|
+
{"version":3,"file":"aparte-chat-status.d.ts","sourceRoot":"","sources":["../../../src/components/status/aparte-chat-status.ts"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH,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"}
|
|
@@ -13,6 +13,14 @@ import type { ExportedMessageRepository } from '../../runtime/message-repository
|
|
|
13
13
|
* - appendToken(): For simple content streaming
|
|
14
14
|
* - appendToSegment(): For segment-aware streaming (thinking, code, etc.)
|
|
15
15
|
* - Internal message registry for memory management
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // Three calls are a whole streamed turn.
|
|
19
|
+
* const viewport = document.querySelector('aparte-chat-viewport');
|
|
20
|
+
*
|
|
21
|
+
* viewport.appendMessage({ id: 'a1', role: 'assistant', content: '', timestamp: Date.now() });
|
|
22
|
+
* for await (const chunk of tokens) viewport.appendToken('a1', chunk);
|
|
23
|
+
* viewport.completeMessage('a1'); // stops the streaming caret
|
|
16
24
|
*/
|
|
17
25
|
export declare class AparteChatViewport extends HTMLElement {
|
|
18
26
|
private _container;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aparte-chat-viewport.d.ts","sourceRoot":"","sources":["../../../src/components/viewport/aparte-chat-viewport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EACb,oBAAoB,EACpB,aAAa,EAIb,WAAW,EACd,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAKrF
|
|
1
|
+
{"version":3,"file":"aparte-chat-viewport.d.ts","sourceRoot":"","sources":["../../../src/components/viewport/aparte-chat-viewport.ts"],"names":[],"mappings":"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"}
|