@aparte/core 0.3.0-alpha.0 → 0.5.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.
Files changed (50) hide show
  1. package/README.md +26 -2
  2. package/dist/client/aparte-client.d.ts +7 -1
  3. package/dist/client/aparte-client.d.ts.map +1 -1
  4. package/dist/components/bubble/aparte-chat-bubble.d.ts +26 -2
  5. package/dist/components/bubble/aparte-chat-bubble.d.ts.map +1 -1
  6. package/dist/components/chat/aparte-chat.d.ts +13 -0
  7. package/dist/components/chat/aparte-chat.d.ts.map +1 -1
  8. package/dist/components/composer/aparte-composer-attachments.d.ts +3 -2
  9. package/dist/components/composer/aparte-composer-attachments.d.ts.map +1 -1
  10. package/dist/components/viewport/aparte-chat-viewport.d.ts +17 -4
  11. package/dist/components/viewport/aparte-chat-viewport.d.ts.map +1 -1
  12. package/dist/config/aparte-config.d.ts +64 -7
  13. package/dist/config/aparte-config.d.ts.map +1 -1
  14. package/dist/config/icon-provider.d.ts +21 -21
  15. package/dist/config/icon-provider.d.ts.map +1 -1
  16. package/dist/config/index.d.ts +1 -1
  17. package/dist/config/index.d.ts.map +1 -1
  18. package/dist/conversations/conversation-controller.d.ts.map +1 -1
  19. package/dist/custom-elements.json +3435 -3000
  20. package/dist/host/aparte-chat-host.d.ts +58 -1
  21. package/dist/host/aparte-chat-host.d.ts.map +1 -1
  22. package/dist/{index-CW2BCAqn.js → index-Dn7TH14G.js} +282 -81
  23. package/dist/index-Dn7TH14G.js.map +1 -0
  24. package/dist/index.css +75 -8
  25. package/dist/index.d.ts +11 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +216 -62
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.node.d.ts +3 -1
  30. package/dist/index.node.d.ts.map +1 -1
  31. package/dist/index.node.js +34 -30
  32. package/dist/index.node.js.map +1 -1
  33. package/dist/primitives/select/aparte-optgroup.d.ts +2 -0
  34. package/dist/primitives/select/aparte-optgroup.d.ts.map +1 -1
  35. package/dist/primitives/select/aparte-select.d.ts +2 -0
  36. package/dist/primitives/select/aparte-select.d.ts.map +1 -1
  37. package/dist/renderers/index.d.ts +1 -1
  38. package/dist/renderers/index.d.ts.map +1 -1
  39. package/dist/renderers/segment-renderers.d.ts +23 -0
  40. package/dist/renderers/segment-renderers.d.ts.map +1 -1
  41. package/dist/types/imperative-api.d.ts +13 -0
  42. package/dist/types/imperative-api.d.ts.map +1 -1
  43. package/dist/types/models.d.ts +56 -9
  44. package/dist/types/models.d.ts.map +1 -1
  45. package/dist/utils/files-to-attachments.d.ts +27 -0
  46. package/dist/utils/files-to-attachments.d.ts.map +1 -0
  47. package/dist/utils/is-awaiting-reply.d.ts +22 -0
  48. package/dist/utils/is-awaiting-reply.d.ts.map +1 -0
  49. package/package.json +8 -1
  50. package/dist/index-CW2BCAqn.js.map +0 -1
package/dist/index.css CHANGED
@@ -216,6 +216,10 @@
216
216
  --aparte-status-bg: transparent;
217
217
  --aparte-status-dot-size: 6px;
218
218
 
219
+ /* Waiting Indicator (the bubble's own dots, before the first token) */
220
+ --aparte-waiting-height: 1.5em;
221
+ --aparte-waiting-dot-gap: 4px;
222
+
219
223
  /* Thinking Segment */
220
224
  --aparte-thinking-border: var(--aparte-border);
221
225
  --aparte-thinking-bg: var(--aparte-surface-2);
@@ -712,8 +716,8 @@ aparte-chat-bubble {
712
716
  min-width: 0;
713
717
  }
714
718
 
715
- /* The message bubble — the surface fills ONLY the content (attachments +
716
- segments + text). The sender name (above) and the action bar (below) are
719
+ /* The message bubble — the surface fills ONLY the content (segments + text).
720
+ The sender name and attachment strip (above) and the action bar (below) are
717
721
  siblings in .aparte-body, so they stay OUTSIDE the coloured surface. */
718
722
  .aparte-message-content {
719
723
  border-radius: var(--aparte-message-content-radius, 0);
@@ -782,8 +786,11 @@ aparte-chat-bubble {
782
786
  .aparte-attachments {
783
787
  display: flex;
784
788
  flex-wrap: wrap;
785
- /* Bubble attachments only ever render for user messages anchor right. */
786
- justify-content: flex-end;
789
+ /* The strip sits directly above the message bubble and belongs to it, so it
790
+ must share the bubble's edge. The user bubble hugs its text on the LEADING
791
+ edge (AI-chat convention, see .aparte-message-content below), so anchoring
792
+ the strip to the trailing edge would split one message across both sides. */
793
+ justify-content: flex-start;
787
794
  gap: var(--aparte-space-3, 6px);
788
795
  margin-bottom: var(--aparte-space-4, 8px);
789
796
  /* Really small tiles inside the conversation. */
@@ -815,10 +822,16 @@ aparte-chat-bubble {
815
822
  border: var(--aparte-border-width, 1px) solid var(--aparte-attachment-chip-border, var(--aparte-border));
816
823
  }
817
824
 
818
- .aparte-thumb--image {
825
+ /* Only an image tile the app declared it can preview is a button — see
826
+ AparteConfig.setHostHandlers(). Undeclared, it is a picture, not a control. */
827
+ .aparte-thumb--image[role='button'] {
819
828
  cursor: pointer;
820
829
  }
821
830
 
831
+ .aparte-thumb--image[role='button']:focus-visible {
832
+ box-shadow: var(--aparte-focus-ring, 0 0 0 3px rgba(99, 102, 241, 0.15));
833
+ }
834
+
822
835
  .aparte-thumb__img {
823
836
  width: 100%;
824
837
  height: 100%;
@@ -960,7 +973,14 @@ aparte-chat-bubble:last-of-type .aparte-message[data-role="assistant"]:not(.apar
960
973
  gap: var(--aparte-branch-picker-gap, 4px);
961
974
  }
962
975
 
963
- /* [hidden] is overridden by display:flex — force it back */
976
+ /* [hidden] is overridden by display:flex — force it back. The bar and the footer
977
+ hide themselves when they hold nothing (see _syncFooterVisibility): an empty
978
+ toolbar is announced to screen readers and reserves height for nothing. */
979
+ .aparte-action-bar[hidden],
980
+ .aparte-footer[hidden] {
981
+ display: none;
982
+ }
983
+
964
984
  .aparte-branch-picker[hidden] {
965
985
  display: none;
966
986
  }
@@ -1320,6 +1340,47 @@ aparte-chat-status:not([visible]) {
1320
1340
  align-items: center;
1321
1341
  }
1322
1342
 
1343
+ /* Screen-reader-only text. Used by the bubble's waiting indicator, whose dots are
1344
+ decorative: the state is conveyed by aria-busy + this localized label. */
1345
+ .aparte-sr-only {
1346
+ position: absolute;
1347
+ width: 1px;
1348
+ height: 1px;
1349
+ padding: 0;
1350
+ margin: -1px;
1351
+ overflow: hidden;
1352
+ clip: rect(0, 0, 0, 0);
1353
+ white-space: nowrap;
1354
+ border: 0;
1355
+ }
1356
+
1357
+ /* The waiting indicator: between "user sends" and the first token. Built into the
1358
+ bubble, so it needs no wiring and behaves the same in core and every wrapper.
1359
+ Sits in the content region and disappears as soon as there is anything to show. */
1360
+ .aparte-waiting {
1361
+ display: flex;
1362
+ align-items: center;
1363
+ min-height: var(--aparte-waiting-height, 1.5em);
1364
+ }
1365
+
1366
+ .aparte-waiting[hidden] {
1367
+ display: none;
1368
+ }
1369
+
1370
+ .aparte-waiting .aparte-dots {
1371
+ gap: var(--aparte-waiting-dot-gap, 4px);
1372
+ }
1373
+
1374
+ /* Staggered so it reads as "working", not as three synchronized blobs. Scoped to
1375
+ the waiting region — the status element keeps its single-dot pulse. */
1376
+ .aparte-waiting .aparte-dot:nth-child(2) {
1377
+ animation-delay: 0.15s;
1378
+ }
1379
+
1380
+ .aparte-waiting .aparte-dot:nth-child(3) {
1381
+ animation-delay: 0.3s;
1382
+ }
1383
+
1323
1384
  .aparte-dot {
1324
1385
  width: var(--aparte-status-dot-size, 6px);
1325
1386
  height: var(--aparte-status-dot-size, 6px);
@@ -2409,9 +2470,15 @@ aparte-option[data-active] {
2409
2470
  box-shadow: inset 0 0 0 2px var(--aparte-primary, #3b82f6);
2410
2471
  }
2411
2472
 
2473
+ /* Selected option: an accent TINT plus an accent bar, keeping the theme's own
2474
+ text colour. A solid `--aparte-primary` fill with white text failed WCAG AA in
2475
+ both themes (the brass accent is mid-luminance, so white sits around 3.4:1),
2476
+ and an unreadable selected row is the one row that must be readable. Both
2477
+ tokens stay overridable for a design that wants the solid fill back. */
2412
2478
  aparte-option[selected] {
2413
- background: var(--aparte-select-option-selected, var(--aparte-primary, #3b82f6));
2414
- color: var(--aparte-select-option-selected-text, #fff);
2479
+ background: var(--aparte-select-option-selected, color-mix(in srgb, var(--aparte-primary, #3b82f6) 18%, transparent));
2480
+ color: var(--aparte-select-option-selected-text, var(--aparte-select-text, var(--aparte-text, #1e293b)));
2481
+ box-shadow: inset 2px 0 0 var(--aparte-primary, #3b82f6);
2415
2482
  }
2416
2483
 
2417
2484
  aparte-option[disabled] {
package/dist/index.d.ts CHANGED
@@ -3,6 +3,14 @@
3
3
  * High-performance AI conversation engine in Vanilla TypeScript
4
4
  * Zero-dependency Web Components for LLM streaming
5
5
  *
6
+ * ⚠️ This is the **browser** entry: it defines the custom elements and imports CSS
7
+ * at module scope, so it needs a DOM. **Node resolves `index.node.ts` instead**
8
+ * (via the `node` condition in package.json) — a DOM-free entry with the client,
9
+ * host, transports, the chat handler and every type. This file sits first in the
10
+ * exports map only because of the repo-local `@aparte-workspace/source` condition,
11
+ * which is why reading it can look like "this package can't run in Node".
12
+ * See the "Node / SSR" section of the README.
13
+ *
6
14
  * @packageDocumentation
7
15
  */
8
16
 
@@ -30,12 +38,14 @@ export { AparteChatHost, type AparteChatHostBinding, type AparteChatHostOptions,
30
38
  export { AparteStreamParser, parseMarkdownToSegments, deriveArtifactKind } from './parsers/index.js';
31
39
  export type { AparteStreamParserOptions, AparteThinkingDelimiterPair, AparteParserState, AparteParserResult } from './parsers/index.js';
32
40
  export { parseAparteEventStream } from './parsers/index.js';
33
- export { AparteConfig, AparteConfigClass } from './config/index.js';
41
+ export { AparteConfig, AparteConfigClass, DEFAULT_BUBBLE_ACTIONS, DEFAULT_HOST_HANDLERS } from './config/index.js';
34
42
  export { resolveConfig, attachConfig, detachConfig, runWithConfig, contextConfig, APARTE_HOST_ATTR } from './config/index.js';
35
43
  export type { AparteMarkdownProvider, AparteStreamingMarkdownProvider, AparteStreamingMarkdownRenderer, AparteHighlightProvider, AparteSystemPromptVarsProvider, AparteSkeletonProvider, AparteSkeletonType, AparteLocale, AparteAction, AparteActionZone, AparteIconProvider, AparteIconName, AparteAvatarProvider, AparteStatusRenderer, AparteErrorRenderer, AparteAttachmentRenderer, AparteSiblingNavRenderer, AparteBubbleShellRenderer, AparteModelPreference, AparteModelPreferenceProvider, AparteArtifactPreviewBuilder, AparteSanitizer } from './config/index.js';
36
44
  export { DEFAULT_ICON_FALLBACKS, DEFAULT_SKELETON_FALLBACKS, DEFAULT_LOCALE, defaultSanitizer, isSafeUrl } from './config/index.js';
37
45
  export { AparteClient } from './client/aparte-client.js';
38
46
  export { applyElementProps, DEFAULT_UI_EVENTS } from './interop/element-props.js';
47
+ export { filesToAttachments } from './utils/files-to-attachments.js';
48
+ export { isAwaitingReply } from './utils/is-awaiting-reply.js';
39
49
  export type { AparteClientOptions, AparteToolApprovalResolver, AparteCompactionSelector } from './client/aparte-client.js';
40
50
  export { createStreamAdapter, readableToAsyncIterable } from './client/stream-adapter.js';
41
51
  export type { AparteStreamRunEvent, AparteStreamRunEmitter, StreamAdapterTarget, CreateStreamAdapterOptions, AparteStreamRunner, AparteStreamRunOptions } from './client/stream-adapter.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}