@aparte/core 0.2.0-alpha.0

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