@aparte/core 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +18 -7
  2. package/dist/components/bubble/aparte-chat-bubble.d.ts +18 -0
  3. package/dist/components/bubble/aparte-chat-bubble.d.ts.map +1 -1
  4. package/dist/components/chat/aparte-chat.d.ts +17 -0
  5. package/dist/components/chat/aparte-chat.d.ts.map +1 -1
  6. package/dist/components/composer/aparte-composer-add-attachment.d.ts +11 -0
  7. package/dist/components/composer/aparte-composer-add-attachment.d.ts.map +1 -1
  8. package/dist/components/composer/aparte-composer-attachments.d.ts +14 -0
  9. package/dist/components/composer/aparte-composer-attachments.d.ts.map +1 -1
  10. package/dist/components/composer/aparte-composer-cancel.d.ts +11 -0
  11. package/dist/components/composer/aparte-composer-cancel.d.ts.map +1 -1
  12. package/dist/components/composer/aparte-composer-input.d.ts +10 -0
  13. package/dist/components/composer/aparte-composer-input.d.ts.map +1 -1
  14. package/dist/components/composer/aparte-composer-send.d.ts +10 -0
  15. package/dist/components/composer/aparte-composer-send.d.ts.map +1 -1
  16. package/dist/components/composer/aparte-composer-toolbar.d.ts +53 -0
  17. package/dist/components/composer/aparte-composer-toolbar.d.ts.map +1 -0
  18. package/dist/components/composer/aparte-composer.d.ts +13 -0
  19. package/dist/components/composer/aparte-composer.d.ts.map +1 -1
  20. package/dist/components/composer/index.d.ts +1 -0
  21. package/dist/components/composer/index.d.ts.map +1 -1
  22. package/dist/components/conversation-list/aparte-conversation-list.d.ts +22 -1
  23. package/dist/components/conversation-list/aparte-conversation-list.d.ts.map +1 -1
  24. package/dist/components/elicitation/aparte-elicitation.d.ts +15 -0
  25. package/dist/components/elicitation/aparte-elicitation.d.ts.map +1 -1
  26. package/dist/components/index.d.ts +1 -1
  27. package/dist/components/index.d.ts.map +1 -1
  28. package/dist/components/status/aparte-chat-status.d.ts +6 -0
  29. package/dist/components/status/aparte-chat-status.d.ts.map +1 -1
  30. package/dist/components/viewport/aparte-chat-viewport.d.ts +16 -0
  31. package/dist/components/viewport/aparte-chat-viewport.d.ts.map +1 -1
  32. package/dist/custom-elements.json +3769 -3552
  33. package/dist/index.css +11 -1
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +121 -2
  37. package/dist/index.js.map +1 -1
  38. package/dist/primitives/progress-spinner/aparte-progress-spinner.d.ts +5 -0
  39. package/dist/primitives/progress-spinner/aparte-progress-spinner.d.ts.map +1 -1
  40. package/dist/primitives/select/aparte-optgroup.d.ts +11 -0
  41. package/dist/primitives/select/aparte-optgroup.d.ts.map +1 -1
  42. package/dist/primitives/select/aparte-option.d.ts +6 -0
  43. package/dist/primitives/select/aparte-option.d.ts.map +1 -1
  44. package/dist/primitives/select/aparte-select.d.ts +23 -0
  45. package/dist/primitives/select/aparte-select.d.ts.map +1 -1
  46. package/package.json +1 -1
package/README.md CHANGED
@@ -3,8 +3,10 @@
3
3
  Framework-agnostic AI-chat UI as **vanilla Web Components** — zero runtime dependencies,
4
4
  ESM-only, usable in any framework or none.
5
5
 
6
- > 🚧 **Pre-alpha** not yet published to npm. Part of the
7
- > [aparté](https://github.com/apartejs/aparte) monorepo.
6
+ > **Alpha.** On npm, released in lockstep with every other `@aparte/*` package — the
7
+ > version number is a plain `0.x` and the API can still change before the first stable
8
+ > cut. Part of the [aparté](https://github.com/apartejs/aparte) monorepo; what changed
9
+ > when is at [apartejs.dev/changelog](https://apartejs.dev/changelog/).
8
10
 
9
11
  ## Install
10
12
 
@@ -17,17 +19,24 @@ npm install @aparte/core
17
19
  ```ts
18
20
  import '@aparte/core'; // registers the <aparte-*> custom elements
19
21
  import '@aparte/core/styles.css'; // theme variables + component styles
20
- import { registerDefaultRenderers, AparteClient } from '@aparte/core';
22
+ import { AparteConfig, AparteClient } from '@aparte/core';
21
23
 
22
- registerDefaultRenderers();
23
24
  // Drop the shell in your HTML: <aparte-chat placeholder="Ask anything…"></aparte-chat>
24
25
 
25
26
  // Give it a provider + transport (see the docs), then construct the client and call
26
27
  // .start() — it listens for the composer's events and streams the reply into the
27
28
  // conversation. (Without .start(), no listeners are attached and nothing streams.)
28
29
  new AparteClient().start();
30
+
31
+ // The retry / edit buttons only do something with a host like the client above, so
32
+ // core ships them off. One line turns them on:
33
+ AparteConfig.setBubbleActions({ retry: true, edit: true });
29
34
  ```
30
35
 
36
+ The built-in segment renderers install themselves the first time a segment needs one, so
37
+ there is nothing to call for text, code or thinking blocks to appear. Calling
38
+ `registerDefaultRenderers()` yourself still works and makes the moment explicit.
39
+
31
40
  ## Node / SSR
32
41
 
33
42
  `@aparte/core` imports cleanly on the server. A `node` export condition resolves to a
@@ -68,9 +77,11 @@ ESM-only (CJS consumers use `await import()`).
68
77
 
69
78
  ## Docs
70
79
 
71
- Guides + a generated API reference live in the monorepo under
72
- [`apps/docs`](https://github.com/apartejs/aparte/tree/main/apps/docs): Getting started, Theming,
73
- Customization, Conversations &amp; branching, and The agent engine.
80
+ Full guides and a generated API reference are at
81
+ **[apartejs.dev](https://apartejs.dev/)** Getting started, Theming, Customization,
82
+ Attachments, Conversations & branching, Tools, Backend transport, Bring your own loop,
83
+ The agent engine, and Troubleshooting. Source under
84
+ [`apps/docs`](https://github.com/apartejs/aparte/tree/main/apps/docs).
74
85
 
75
86
  ## License
76
87
 
@@ -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;
@@ -31,6 +44,11 @@ export declare class AparteChatBubble extends HTMLElement {
31
44
  static get observedAttributes(): string[];
32
45
  constructor();
33
46
  private _onConfigChange;
47
+ /**
48
+ * Re-apply the locale strings written straight into the markup by `_render()` —
49
+ * the accessible names a screen reader reads, which nothing else refreshes.
50
+ */
51
+ private _updateLocalizedLabels;
34
52
  /**
35
53
  * Config governing this bubble: the instance config of the nearest
36
54
  * `[data-aparte-host]` boundary, else the global singleton. Resolved live
@@ -1 +1 @@
1
- {"version":3,"file":"aparte-chat-bubble.d.ts","sourceRoot":"","sources":["../../../src/components/bubble/aparte-chat-bubble.ts"],"names":[],"mappings":"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"}
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;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,MAAM,CAA4B;IAC1C,gFAAgF;IAChF,OAAO,CAAC,cAAc,CAA6B;IACnD,4EAA4E;IAC5E,OAAO,CAAC,aAAa,CAAK;IAC1B,4EAA4E;IAC5E,OAAO,CAAC,aAAa,CAAK;IAC1B,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAS;IACzB,wGAAwG;IACxG,OAAO,CAAC,UAAU,CAAoC;IAEtD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAOxC;;IASD,OAAO,CAAC,eAAe,CAerB;IAEF;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;;;;;OAMG;IACH,OAAO,KAAK,IAAI,GAEf;IAED,iBAAiB,IAAI,IAAI;IAYzB,oBAAoB,IAAI,IAAI;IAQ5B,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAmC9F,2CAA2C;IAC3C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhC,2BAA2B;IAC3B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMjC,0BAA0B;IAC1B,UAAU,IAAI,MAAM;IAIpB,oCAAoC;IACpC,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IAM5C,oBAAoB;IACpB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMxC,gCAAgC;IAChC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IASvE,kCAAkC;IAClC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAQzD,uBAAuB;IACvB,WAAW,IAAI,aAAa,EAAE;IAI9B,6EAA6E;IAC7E,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAUtC,0EAA0E;IAC1E,cAAc,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAKrD;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAKrD;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAM/C;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IA8BpD,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,mBAAmB;IA8B3B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,OAAO;IAoFf;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;IActB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,cAAc;IAqBtB;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,eAAe;IA+BvB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,kBAAkB;IA6D1B,0EAA0E;IAC1E,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,2BAA2B;IAoBnC,OAAO,CAAC,mBAAmB;IAiC3B,OAAO,CAAC,gBAAgB;IAuDxB;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAQ7B,0EAA0E;IAC1E,OAAO,CAAC,oBAAoB;IAoB5B,iGAAiG;IACjG,OAAO,CAAC,iBAAiB;IAsCzB,wEAAwE;IACxE,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,kBAAkB;IAgG1B;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;IA8BtB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,gBAAgB;CAsBzB;AAOD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,gBAAgB,CAAC;KACxC;CACF"}
@@ -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;;;;;;;;;;;;;;;;;;;;;;;GAuBG;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"}
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;;;;;;;;;GASG;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"}
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;;;;;;;;;;GAUG;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"}
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;;;;;;;GAOG;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"}
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;;;;;;;;;;;;;;;GAeG;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"}
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;;;;;;;;GAQG;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"}
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":"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"}
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,12 +30,32 @@ 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;
35
49
  static get observedAttributes(): string[];
36
50
  connectedCallback(): void;
51
+ disconnectedCallback(): void;
37
52
  attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
53
+ /**
54
+ * Re-render on a locale switch: every row's title fallback and both button
55
+ * labels come from the locale, so without this the list stayed in the previous
56
+ * language until something else happened to re-render it. Only OUR config.
57
+ */
58
+ private _onConfigChange;
38
59
  /** Set the list of conversations to display. Triggers a re-render. */
39
60
  set conversations(items: AparteConversationListItem[]);
40
61
  get conversations(): AparteConversationListItem[];
@@ -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,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"}
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;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"}
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;
@@ -54,6 +62,14 @@ export declare class AparteChatViewport extends HTMLElement {
54
62
  static get observedAttributes(): string[];
55
63
  constructor();
56
64
  connectedCallback(): void;
65
+ /**
66
+ * A locale switch changes the reading direction, and `dir` was applied once at
67
+ * render — so a chat already on screen never flipped to RTL until a reload.
68
+ * Only OUR config: an instance-scoped change elsewhere must not touch us.
69
+ */
70
+ private _onConfigChange;
71
+ /** Mirror `locale.direction` onto the scroll container. */
72
+ private _applyDirection;
57
73
  disconnectedCallback(): void;
58
74
  attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
59
75
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"aparte-chat-viewport.d.ts","sourceRoot":"","sources":["../../../src/components/viewport/aparte-chat-viewport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aparte-chat-viewport.d.ts","sourceRoot":"","sources":["../../../src/components/viewport/aparte-chat-viewport.ts"],"names":[],"mappings":"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"}