@aparte/svelte 0.16.8 → 0.16.9

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/README.md CHANGED
@@ -35,12 +35,13 @@ npm install @aparte/svelte @aparte/core svelte
35
35
  <AparteChat
36
36
  bind:this={comp}
37
37
  messages={$messages}
38
- on:messagesChange={(e) => chat.onMessagesChange(e.detail)}
38
+ onmessagesChange={(m) => chat.onMessagesChange(m)}
39
39
  />
40
40
  ```
41
41
 
42
- The user's message is appended automatically on send — don't add it yourself. `on:messageSent` is
43
- optional and only for side-effects (scroll, analytics).
42
+ The user's message is appended automatically on send — don't add it yourself. `onmessageSent` is
43
+ optional and only for side-effects (scroll, analytics). Every callback prop also exists as a component
44
+ event (`on:messagesChange`, payload under `event.detail`) — the Svelte 4 spelling, still fine on Svelte 5.
44
45
 
45
46
  `@aparte/core` and `svelte` are **peer dependencies**.
46
47
 
@@ -17,6 +17,12 @@ export { className as class };
17
17
  export let style = void 0;
18
18
  export let conversationId = null;
19
19
  export let config = void 0;
20
+ export let onmessageSent = void 0;
21
+ export let onaction = void 0;
22
+ export let onmessagesChange = void 0;
23
+ export let onmessageAppended = void 0;
24
+ export let ontypingChange = void 0;
25
+ export let onconversationCreated = void 0;
20
26
  const dispatch = createEventDispatcher();
21
27
  let hostId = "";
22
28
  let rootRef;
@@ -57,10 +63,14 @@ $: if (composerRef) {
57
63
  }
58
64
  function handleSend(event) {
59
65
  viewportRef?.requestSmoothScroll?.();
60
- dispatch("messageSent", event.detail);
66
+ const detail = event.detail;
67
+ onmessageSent?.(detail);
68
+ dispatch("messageSent", detail);
61
69
  }
62
70
  function handleAction(event) {
63
- dispatch("action", event.detail);
71
+ const detail = event.detail;
72
+ onaction?.(detail);
73
+ dispatch("action", detail);
64
74
  }
65
75
  onMount(() => {
66
76
  hostId = id ?? `aparte-chat-${uuid()}`;
@@ -73,10 +83,17 @@ onMount(() => {
73
83
  setMessages: (m) => {
74
84
  internalMessages = m;
75
85
  },
76
- onMessagesChange: (m) => dispatch("messagesChange", m),
77
- onMessageAppended: (m) => dispatch("messageAppended", m),
86
+ onMessagesChange: (m) => {
87
+ onmessagesChange?.(m);
88
+ dispatch("messagesChange", m);
89
+ },
90
+ onMessageAppended: (m) => {
91
+ onmessageAppended?.(m);
92
+ dispatch("messageAppended", m);
93
+ },
78
94
  onTypingChange: (t) => {
79
95
  typingActive = t;
96
+ ontypingChange?.(t);
80
97
  dispatch("typingChange", t);
81
98
  },
82
99
  onStreamingChange: () => {
@@ -89,7 +106,10 @@ onMount(() => {
89
106
  host = new AparteChatHost(binding, {
90
107
  layoutTransitionMs,
91
108
  conversationId: conversationId ?? null,
92
- onConversationCreated: (id2) => dispatch("conversationCreated", id2),
109
+ onConversationCreated: (id2) => {
110
+ onconversationCreated?.(id2);
111
+ dispatch("conversationCreated", id2);
112
+ },
93
113
  config
94
114
  });
95
115
  teardown = host.bind();
@@ -3,6 +3,7 @@ import { applyElementProps, APARTE_DEFAULT_UI_EVENTS } from "@aparte/core";
3
3
  export let name;
4
4
  export let props = {};
5
5
  export let events = void 0;
6
+ export let onelementEvent = void 0;
6
7
  const dispatch = createEventDispatcher();
7
8
  let host;
8
9
  let el = null;
@@ -15,7 +16,10 @@ function create() {
15
16
  el = document.createElement(name);
16
17
  applyProps();
17
18
  for (const ev of events ?? APARTE_DEFAULT_UI_EVENTS) {
18
- const listener = (e) => dispatch("elementEvent", e);
19
+ const listener = (e) => {
20
+ onelementEvent?.(e);
21
+ dispatch("elementEvent", e);
22
+ };
19
23
  el.addEventListener(ev, listener);
20
24
  cleanups.push(() => el?.removeEventListener(ev, listener));
21
25
  }
package/dist/types.d.ts CHANGED
@@ -16,6 +16,11 @@ export interface AparteUiProps {
16
16
  * interactive aparté surface (`APARTE_DEFAULT_UI_EVENTS` from `@aparte/core`).
17
17
  */
18
18
  events?: string[];
19
+ /**
20
+ * Called with the element's own CustomEvent for every forwarded event, alongside
21
+ * the `elementEvent` component event — the callback-prop route Svelte 5 recommends.
22
+ */
23
+ onelementEvent?: (event: CustomEvent) => void;
19
24
  }
20
25
  /**
21
26
  * The imperative surface `<AparteUi>` exposes (`bind:this`) — the same
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/lib/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,EACR,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,GAC1B,MAAM,cAAc,CAAC;AAEtB,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC1B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,KAAK,CAAC,GAAG,IAAI,CAAC;IAC5D,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;CAClF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/lib/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,EACR,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,GAC1B,MAAM,cAAc,CAAC;AAEtB,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC1B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,KAAK,CAAC,GAAG,IAAI,CAAC;IAC5D,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;CAClF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aparte/svelte",
3
- "version": "0.16.8",
3
+ "version": "0.16.9",
4
4
  "homepage": "https://apartejs.dev/frameworks/svelte/",
5
5
  "description": "Svelte wrapper for aparté — an ergonomic <AparteChat> component plus stores over the framework-agnostic web components. Works on Svelte 4 and 5.",
6
6
  "type": "module",
@@ -39,7 +39,7 @@
39
39
  "@sveltejs/package itself. Until then the props are documented, not compiler-enforced, for consumers."
40
40
  ],
41
41
  "peerDependencies": {
42
- "@aparte/core": ">=0.16.8 <1.0.0",
42
+ "@aparte/core": ">=0.16.9 <1.0.0",
43
43
  "svelte": "^4.0.0 || ^5.0.0"
44
44
  },
45
45
  "devDependencies": {
@@ -52,7 +52,7 @@
52
52
  "svelte2tsx": "^0.7.61",
53
53
  "typescript": "^5.4.0",
54
54
  "vite": "^6.0.0",
55
- "@aparte/core": "0.16.8"
55
+ "@aparte/core": "0.16.9"
56
56
  },
57
57
  "keywords": [
58
58
  "svelte",