@botonic/webchat-react 2.37.0 → 2.38.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 (110) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/embedded-config-CmlPSd0n.js +17 -0
  3. package/embedded.d.ts +2 -0
  4. package/embedded.js +28 -0
  5. package/index.d.ts +10 -1
  6. package/index.js +103 -64
  7. package/lib/components/debug-event/debug-event-wrapper.d.ts +40 -0
  8. package/lib/components/debug-event/index.d.ts +4 -0
  9. package/lib/components/{preview-events/preview-event-message → debug-event}/preview-event-message.d.ts +2 -2
  10. package/lib/components/debug-event/use-preview-event-message.d.ts +31 -0
  11. package/lib/components/dialog/dialog-types.d.ts +4 -1
  12. package/lib/components/image-previewer/image-previewer-portal.d.ts +8 -0
  13. package/lib/components/image-previewer/image-previewer.d.ts +6 -0
  14. package/lib/components/image-previewer/index.d.ts +3 -0
  15. package/lib/components/message/image-message/use-image-preview.d.ts +17 -0
  16. package/lib/components/message/index.d.ts +1 -0
  17. package/lib/components/message/message/message-info/message-info.d.ts +2 -0
  18. package/lib/components/message/message/message.d.ts +1 -0
  19. package/lib/components/message/message/use-message.d.ts +1 -0
  20. package/lib/components/message/whatsapp-request-contact-info/index.d.ts +1 -0
  21. package/lib/components/message/whatsapp-request-contact-info/whatsapp-request-contact-info-message.d.ts +10 -0
  22. package/lib/components/message-machine-renderer/use-message-machine-renderer.d.ts +1 -0
  23. package/lib/components/preview-events/events/index.d.ts +0 -14
  24. package/lib/components/preview-events/events/types.d.ts +9 -12
  25. package/lib/components/webchat-app/webchat-app.d.ts +3 -1
  26. package/lib/components/webchat-header/webchat-menu/dropdown-menu-item-download-transcript.d.ts +6 -2
  27. package/lib/components/webchat-header/webchat-menu/dropdown-menu-item-reset-conversation.d.ts +2 -1
  28. package/lib/components/webchat-header/webchat-menu/dropdown-menu-item-reset-session.d.ts +5 -2
  29. package/lib/components/webchat-header/webchat-menu/dropdown-menu-item-sounds.d.ts +3 -2
  30. package/lib/components/webchat-header/webchat-menu/use-dropdown-menu-item-download-transcript.d.ts +25 -0
  31. package/lib/components/webchat-header/webchat-menu/use-dropdown-menu-item-reset-conversation.d.ts +10 -0
  32. package/lib/components/webchat-header/webchat-menu/use-dropdown-menu-item-reset-session.d.ts +9 -2
  33. package/lib/components/webchat-header/webchat-menu/use-dropdown-menu-item-sounds.d.ts +6 -0
  34. package/lib/components/webchat-input/emoji-picker/index.d.ts +3 -0
  35. package/lib/components/webchat-input/emoji-picker/use-webchat-emoji-picker.d.ts +16 -0
  36. package/lib/components/webchat-input/emoji-picker/webchat-emoji-picker-panel.d.ts +6 -0
  37. package/lib/components/webchat-input/emoji-picker/webchat-emoji-picker-trigger-button.d.ts +8 -0
  38. package/lib/components/webchat-input/use-webchat-input.d.ts +8 -1
  39. package/lib/components/webchat-provider/webchat-context.d.ts +8 -1
  40. package/lib/components/webchat-trigger/read-css-duration-ms.d.ts +4 -0
  41. package/lib/components/webchat-trigger/use-trigger-hover-expand.d.ts +19 -0
  42. package/lib/components/webchat-trigger/use-trigger-preview-channels.d.ts +18 -0
  43. package/lib/components/webchat-trigger/use-trigger-proactive-popup.d.ts +13 -0
  44. package/lib/components/webchat-trigger/use-webchat-trigger.d.ts +15 -1
  45. package/lib/components/webchat-trigger/webchat-trigger-channels-panel.d.ts +10 -0
  46. package/lib/domain/supported-trigger-channels.d.ts +16 -0
  47. package/lib/embedded/embedded-config.d.ts +17 -0
  48. package/lib/embedded/embedded-container.d.ts +7 -0
  49. package/lib/embedded/mount-embedded-webchat.d.ts +5 -0
  50. package/lib/hooks/use-embed-trigger-state.d.ts +6 -0
  51. package/lib/hooks/use-webchat-download-transcript.d.ts +5 -0
  52. package/lib/hooks/use-webchat-reset-conversation.d.ts +6 -0
  53. package/lib/hooks/use-webchat-reset-session.d.ts +3 -0
  54. package/lib/hooks/use-webchat-tracking.d.ts +7 -0
  55. package/lib/types/webchat-props.d.ts +61 -3
  56. package/package.json +10 -4
  57. package/styles.css +123 -87
  58. package/supported-trigger-channels-JiTUD-jK.js +9 -0
  59. package/trigger.d.ts +4 -1
  60. package/trigger.js +592 -215
  61. package/webchat-app-md1b0_ze.js +5072 -0
  62. package/lib/components/preview-events/events/ai-agent/ai-agent.d.ts +0 -3
  63. package/lib/components/preview-events/events/ai-agent/executed-tools.d.ts +0 -7
  64. package/lib/components/preview-events/events/ai-agent/index.d.ts +0 -1
  65. package/lib/components/preview-events/events/ai-agent/parse-tools.d.ts +0 -9
  66. package/lib/components/preview-events/events/ai-agent-router/ai-agent-router.d.ts +0 -3
  67. package/lib/components/preview-events/events/ai-agent-router/index.d.ts +0 -1
  68. package/lib/components/preview-events/events/bot-action.d.ts +0 -3
  69. package/lib/components/preview-events/events/components/guardrail-item.d.ts +0 -14
  70. package/lib/components/preview-events/events/components/index.d.ts +0 -2
  71. package/lib/components/preview-events/events/components/sources-section.d.ts +0 -11
  72. package/lib/components/preview-events/events/conditional-channel.d.ts +0 -3
  73. package/lib/components/preview-events/events/conditional-country.d.ts +0 -3
  74. package/lib/components/preview-events/events/conditional-custom.d.ts +0 -3
  75. package/lib/components/preview-events/events/conditional-queue-status.d.ts +0 -3
  76. package/lib/components/preview-events/events/constants.d.ts +0 -35
  77. package/lib/components/preview-events/events/fallback.d.ts +0 -3
  78. package/lib/components/preview-events/events/handoff-success.d.ts +0 -3
  79. package/lib/components/preview-events/events/keyword.d.ts +0 -3
  80. package/lib/components/preview-events/events/knowledge-base.d.ts +0 -3
  81. package/lib/components/preview-events/events/redirect-flow.d.ts +0 -3
  82. package/lib/components/preview-events/events/smart-intent.d.ts +0 -3
  83. package/lib/components/preview-events/events/webview-action-triggered.d.ts +0 -3
  84. package/lib/components/preview-events/hooks/use-knowledge-base-info.d.ts +0 -19
  85. package/lib/components/preview-events/hooks/use-last-label-position.d.ts +0 -9
  86. package/lib/components/preview-events/icons/ai-router-icon.d.ts +0 -1
  87. package/lib/components/preview-events/icons/ai-specialist-icon.d.ts +0 -1
  88. package/lib/components/preview-events/icons/arrow-progress-icon.d.ts +0 -1
  89. package/lib/components/preview-events/icons/brain-icon.d.ts +0 -1
  90. package/lib/components/preview-events/icons/caret-down-icon.d.ts +0 -1
  91. package/lib/components/preview-events/icons/caret-up-icon.d.ts +0 -1
  92. package/lib/components/preview-events/icons/circle-check-icon.d.ts +0 -1
  93. package/lib/components/preview-events/icons/code-icon.d.ts +0 -1
  94. package/lib/components/preview-events/icons/file-pdf-icon.d.ts +0 -1
  95. package/lib/components/preview-events/icons/file-word-icon.d.ts +0 -1
  96. package/lib/components/preview-events/icons/hand-icon.d.ts +0 -1
  97. package/lib/components/preview-events/icons/head-set-icon.d.ts +0 -1
  98. package/lib/components/preview-events/icons/index.d.ts +0 -19
  99. package/lib/components/preview-events/icons/life-ring-icon.d.ts +0 -1
  100. package/lib/components/preview-events/icons/link-icon.d.ts +0 -1
  101. package/lib/components/preview-events/icons/quote-right-icon.d.ts +0 -1
  102. package/lib/components/preview-events/icons/screwdriver-wrench-icon.d.ts +0 -1
  103. package/lib/components/preview-events/icons/split-icon.d.ts +0 -1
  104. package/lib/components/preview-events/icons/wand-icon.d.ts +0 -1
  105. package/lib/components/preview-events/icons/window-restore-icon.d.ts +0 -1
  106. package/lib/components/preview-events/index.d.ts +0 -3
  107. package/lib/components/preview-events/preview-event-message/index.d.ts +0 -1
  108. package/lib/components/preview-events/preview-event-message/use-preview-event-message.d.ts +0 -17
  109. package/lib/components/preview-events/preview-events-types.d.ts +0 -12
  110. package/webchat-app-BrBET32o.js +0 -5447
package/CHANGELOG.md CHANGED
@@ -1,3 +1,30 @@
1
+ ## 2.38.0 (2026-11-04)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **botonic:** remove deprecated react preview events implementation #BLT-2745 ([#1323](https://github.com/metis-ai/hubtype-product/pull/1323))
6
+ - **botonic:** migrate webchat-react debug events to webchat-lit wrapper #BLT-2744 ([#1322](https://github.com/metis-ai/hubtype-product/pull/1322))
7
+ - **botonic:** cover ai agent router knowledge sources in webchat-lit debug-event #BLT-2743 ([#1321](https://github.com/metis-ai/hubtype-product/pull/1321))
8
+ - **dashboard:** enable RequestContactInfo feature flag #BLT-2622 ([#1307](https://github.com/metis-ai/hubtype-product/pull/1307))
9
+ - **webchat:** add Contact Reasons Conditional preview event renderer #BLT-2700 ([#1299](https://github.com/metis-ai/hubtype-product/pull/1299))
10
+ - **webchat:** add types and rehydration logic for truncated AI agent events #BLT-2535 ([#1292](https://github.com/metis-ai/hubtype-product/pull/1292))
11
+ - **botonic:** add webview params support #BLT-2466 ([#1290](https://github.com/metis-ai/hubtype-product/pull/1290))
12
+ - support channels list before opening webchat ([#1329](https://github.com/metis-ai/hubtype-product/pull/1329))
13
+ - **lilara:** add typography tokens and migrate font-weight-bold to semibold #BLT-2673 ([#1274](https://github.com/metis-ai/hubtype-product/pull/1274))
14
+ - **webchat:** migrate raw palette to semantic tokens #BLT-2673 ([#1272](https://github.com/metis-ai/hubtype-product/pull/1272))
15
+ - **lilara:** add new token definitions and dark-theme.css #BLT-2673 ([#1268](https://github.com/metis-ai/hubtype-product/pull/1268))
16
+ - Add doNothing functionality to AI agents, and ai agent event #BLT-2662 ([#1190](https://github.com/metis-ai/hubtype-product/pull/1190))
17
+
18
+ ### 🩹 Fixes
19
+
20
+ - **test:** fix 31 hidden test failures undetected by CI skip bug ([#1375](https://github.com/metis-ai/hubtype-product/pull/1375))
21
+
22
+ ### ❤️ Thank You
23
+
24
+ - David Hidalgo @Davidhidalgo
25
+ - Marc Rabat @vanbasten17
26
+ - Oriol Raventós @Iru89
27
+
1
28
  ## 2.37.0 (2026-09-03)
2
29
 
3
30
  This was a version bump only for @botonic/webchat-react to align it with other projects, there were no code changes.
@@ -0,0 +1,17 @@
1
+ function r(c) {
2
+ const { user: t, lifecycleHooks: e, ...o } = c;
3
+ return o;
4
+ }
5
+ async function n(c, t) {
6
+ if (!t)
7
+ return;
8
+ const e = t.locale?.trim(), o = t.country?.trim();
9
+ !e && !o || await c.updateUser({
10
+ ...o ? { country: o } : {},
11
+ ...e ? { locale: e, system_locale: e } : {}
12
+ });
13
+ }
14
+ export {
15
+ n as a,
16
+ r as t
17
+ };
package/embedded.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { type EmbeddedWebchatConfig, type EmbeddedWebchatLifecycleHooks, type EmbeddedWebchatUserConfig, toCoreWebchatConfig, } from './lib/embedded/embedded-config';
2
+ export { type EmbeddedWebchatHandle, mountEmbeddedWebchat, } from './lib/embedded/mount-embedded-webchat';
package/embedded.js ADDED
@@ -0,0 +1,28 @@
1
+ import { t as a } from "./embedded-config-CmlPSd0n.js";
2
+ import { createRoot as m } from "react-dom/client";
3
+ const n = /* @__PURE__ */ new WeakMap();
4
+ function u(e, o) {
5
+ const t = Symbol("embedded-webchat-render"), d = n.get(e)?.root ?? o();
6
+ return n.set(e, { root: d, owner: t }), { root: d, owner: t };
7
+ }
8
+ function b(e, o) {
9
+ const t = n.get(e);
10
+ !t || t.owner !== o || (t.root.unmount(), n.delete(e));
11
+ }
12
+ function i(e, o) {
13
+ if (!e)
14
+ return;
15
+ const { root: t, owner: r } = u(
16
+ e,
17
+ () => m(e)
18
+ );
19
+ return o(t), {
20
+ unmount: () => {
21
+ b(e, r);
22
+ }
23
+ };
24
+ }
25
+ export {
26
+ i as mountEmbeddedWebchat,
27
+ a as toCoreWebchatConfig
28
+ };
package/index.d.ts CHANGED
@@ -50,17 +50,26 @@ export { WebchatInput } from './lib/components/webchat-input/webchat-input';
50
50
  export { WebchatMessages } from './lib/components/webchat-messages/webchat-messages';
51
51
  export { useWebchatContainer } from './lib/components/webchat-container/use-webchat-container';
52
52
  export { useWebchatHeader } from './lib/components/webchat-header/use-webchat-header';
53
+ export { type DropdownMenuItemDownloadTranscriptDialogLabels, useDropdownMenuItemDownloadTranscript, } from './lib/components/webchat-header/webchat-menu/use-dropdown-menu-item-download-transcript';
54
+ export { useDropdownMenuItemResetConversation } from './lib/components/webchat-header/webchat-menu/use-dropdown-menu-item-reset-conversation';
55
+ export { type DropdownMenuItemResetSessionDialogLabels, useDropdownMenuItemResetSession, } from './lib/components/webchat-header/webchat-menu/use-dropdown-menu-item-reset-session';
56
+ export { useDropdownMenuItemSounds } from './lib/components/webchat-header/webchat-menu/use-dropdown-menu-item-sounds';
53
57
  export { useWebchatInput } from './lib/components/webchat-input/use-webchat-input';
54
58
  export { useWebchatMessages } from './lib/components/webchat-messages/use-webchat-messages';
55
59
  export { useUpdateCustomMessageProps } from './lib/hooks/use-update-custom-message-props';
60
+ export { type DownloadChatTranscriptResult, useWebchatDownloadTranscript, } from './lib/hooks/use-webchat-download-transcript';
61
+ export { useWebchatResetConversation } from './lib/hooks/use-webchat-reset-conversation';
62
+ export { useWebchatResetSession } from './lib/hooks/use-webchat-reset-session';
56
63
  export { useWebchatState, type WebchatCustomMessageComponents, type WebchatStateProps, } from './lib/hooks/use-webchat-state';
64
+ export { useWebchatTracking } from './lib/hooks/use-webchat-tracking';
65
+ export { BOTONIC_PORTAL_CLASS_LIST_NAME, IMAGE_PREVIEW_DIALOG_LABEL, ImagePreviewer, ImagePreviewerPortal, type ImagePreviewerProps, } from './lib/components/image-previewer';
57
66
  export { DEFAULT_WEBCHAT_HERO_HEADER_LAYOUT_CONFIG, getMessageActorCount, mergeWebchatHeroHeaderLayoutConfig, useWebchatHeroHeaderLayout, type UseWebchatHeroHeaderLayoutParams, type WebchatHeroHeaderLayoutConfig, type WebchatHeroHeaderLayoutResult, } from './lib/hero-header-layout';
58
67
  export { Message, type MessageProps } from './lib/components/message/message';
59
68
  export { MessageBubble, type MessageBubbleProps, } from './lib/components/message/message/message-bubble';
60
69
  export { RatingMessage, type RatingMessageProps, } from './lib/components/message/rating-message';
61
70
  export { TypingIndicator } from './lib/components/message/typing-message';
62
71
  export { MessageMachineRenderer } from './lib/components/message-machine-renderer/message-machine-renderer';
63
- export { type DebugEvent, type DebugEventConfig, PreviewEventMessage, type PreviewEventMessageProps, SYSTEM_MESSAGE_ROLE, } from './lib/components/preview-events';
72
+ export { type DebugEvent, type DebugEventToolExecution, DebugEventWrapper, type DebugEventWrapperProps, PreviewEventMessage, type PreviewEventMessageProps, SYSTEM_MESSAGE_ROLE, } from './lib/components/debug-event';
64
73
  export { Backdrop, Dialog, type DialogAction, DialogContext, type DialogControls, type DialogOpenProps, DialogProvider, type DialogState, type DialogVariant, useDialog, } from './lib/components/dialog';
65
74
  export { type CoverComponentRegistry, Overlay, OverlayContent, type OverlayContentProps, OverlayContext, type OverlayContextValue, OverlayCoverFrame, type OverlayCoverFrameProps, OverlayHeader, type OverlayHeaderProps, type OverlayProps, OverlayWebviewFrame, type OverlayWebviewFrameProps, useOverlay, useOverlayContext, useOverlayHeader, } from './lib/components/webchat-overlay';
66
75
  export { MarkdownText, type MarkdownTextProps, QuickReply, type QuickReplyProps, } from './lib/components/shared';
package/index.js CHANGED
@@ -1,66 +1,105 @@
1
- import { B as s, C as t, D as o, a as r, b as n, c as i, d as u, e as c, f as l, g as d, M as g, h as M, i as b, j as h, k as p, l as W, O as v, m as C, n as y, o as S, p as O, q as T, P as D, Q as H, R as m, S as x, T as E, W as w, r as I, s as A, t as B, u as R, v as P, w as _, x as k, y as L, z as F, A as f, E as G, F as U, G as N, H as Q, I as Y, J as j, K as q, L as z, N as J } from "./webchat-app-BrBET32o.js";
2
- import { Badge as V, Banner as X, Button as Z, Checkbox as $, Multiselect as ee, MultiselectWithSections as ae, Select as se, SelectWithSections as te, Slider as oe, Spinner as re, Switch as ne, Tag as ie, TextArea as ue, TextInput as ce, Tooltip as le } from "@lilara/ui-web-react";
1
+ import { u } from "./webchat-app-md1b0_ze.js";
2
+ import { B as v, a as M, C as b, D as h, b as C, c as W, d as m, e as S, f as w, g as E, h as I, i as T, I as D, j as y, k as O, M as A, l as R, m as _, n as k, o as x, p as H, O as L, q as P, r as B, s as f, t as F, v as G, P as N, Q as U, R as Y, S as Q, T as V, W as j, w as q, x as z, y as J, z as K, A as X, E as Z, F as $, G as ee, H as ae, J as se, K as te, L as oe, N as re, U as ne, V as ce, X as ue, Y as ie, Z as le, _ as pe, $ as de, a0 as ge, a1 as ve, a2 as Me, a3 as be, a4 as he } from "./webchat-app-md1b0_ze.js";
3
+ import { useCallback as o } from "react";
4
+ import { Badge as We, Banner as me, Button as Se, Checkbox as we, Multiselect as Ee, MultiselectWithSections as Ie, Select as Te, SelectWithSections as De, Slider as ye, Spinner as Oe, Switch as Ae, Tag as Re, TextArea as _e, TextInput as ke, Tooltip as xe } from "@lilara/ui-web-react";
5
+ import { S as Le, a as Pe } from "./supported-trigger-channels-JiTUD-jK.js";
6
+ function p() {
7
+ const { controller: r } = u(), t = o(
8
+ async (e, a, s) => {
9
+ await r.invokeTrackEvent(e, a, s);
10
+ },
11
+ [r]
12
+ ), n = o(
13
+ async (e) => {
14
+ const { action: a, ...s } = e;
15
+ await t(a, s);
16
+ },
17
+ [t]
18
+ ), c = o(
19
+ async (e) => {
20
+ const { action: a, ...s } = e;
21
+ await t(a, s);
22
+ },
23
+ [t]
24
+ );
25
+ return { trackCustomEvent: n, trackFeedbackEvent: c };
26
+ }
3
27
  export {
4
- s as Backdrop,
5
- V as Badge,
6
- X as Banner,
7
- Z as Button,
8
- $ as Checkbox,
9
- t as CloseButton,
10
- o as DEFAULT_WEBCHAT_HERO_HEADER_LAYOUT_CONFIG,
11
- r as Dialog,
12
- n as DialogContext,
13
- i as DialogProvider,
14
- u as DropdownMenuItemDownloadTranscript,
15
- c as DropdownMenuItemResetConversation,
16
- l as DropdownMenuItemResetSession,
17
- d as DropdownMenuItemSounds,
18
- g as MarkdownText,
19
- M as MediaPlaybackProvider,
20
- b as MenuTriggerButton,
21
- h as Message,
22
- p as MessageBubble,
23
- W as MessageMachineRenderer,
24
- ee as Multiselect,
25
- ae as MultiselectWithSections,
26
- v as Overlay,
27
- C as OverlayContent,
28
- y as OverlayContext,
29
- S as OverlayCoverFrame,
30
- O as OverlayHeader,
31
- T as OverlayWebviewFrame,
32
- D as PreviewEventMessage,
33
- H as QuickReply,
34
- m as RatingMessage,
35
- x as SYSTEM_MESSAGE_ROLE,
36
- se as Select,
37
- te as SelectWithSections,
38
- oe as Slider,
39
- re as Spinner,
40
- ne as Switch,
41
- ie as Tag,
42
- ue as TextArea,
43
- ce as TextInput,
44
- le as Tooltip,
45
- E as TypingIndicator,
46
- w as WebchatApp,
47
- I as WebchatContainer,
48
- A as WebchatHeader,
49
- B as WebchatInput,
50
- R as WebchatMessages,
51
- P as WebchatProvider,
52
- _ as getMessageActorCount,
53
- k as mergeWebchatHeroHeaderLayoutConfig,
54
- L as useDialog,
55
- F as useOverlay,
56
- f as useOverlayContext,
57
- G as useOverlayHeader,
58
- U as useUpdateCustomMessageProps,
59
- N as useWebchatContainer,
60
- Q as useWebchatContext,
61
- Y as useWebchatHeader,
62
- j as useWebchatHeroHeaderLayout,
63
- q as useWebchatInput,
64
- z as useWebchatMessages,
65
- J as useWebchatState
28
+ v as BOTONIC_PORTAL_CLASS_LIST_NAME,
29
+ M as Backdrop,
30
+ We as Badge,
31
+ me as Banner,
32
+ Se as Button,
33
+ we as Checkbox,
34
+ b as CloseButton,
35
+ h as DEFAULT_WEBCHAT_HERO_HEADER_LAYOUT_CONFIG,
36
+ C as DebugEventWrapper,
37
+ W as Dialog,
38
+ m as DialogContext,
39
+ S as DialogProvider,
40
+ w as DropdownMenuItemDownloadTranscript,
41
+ E as DropdownMenuItemResetConversation,
42
+ I as DropdownMenuItemResetSession,
43
+ T as DropdownMenuItemSounds,
44
+ D as IMAGE_PREVIEW_DIALOG_LABEL,
45
+ y as ImagePreviewer,
46
+ O as ImagePreviewerPortal,
47
+ A as MarkdownText,
48
+ R as MediaPlaybackProvider,
49
+ _ as MenuTriggerButton,
50
+ k as Message,
51
+ x as MessageBubble,
52
+ H as MessageMachineRenderer,
53
+ Ee as Multiselect,
54
+ Ie as MultiselectWithSections,
55
+ L as Overlay,
56
+ P as OverlayContent,
57
+ B as OverlayContext,
58
+ f as OverlayCoverFrame,
59
+ F as OverlayHeader,
60
+ G as OverlayWebviewFrame,
61
+ N as PreviewEventMessage,
62
+ U as QuickReply,
63
+ Y as RatingMessage,
64
+ Q as SYSTEM_MESSAGE_ROLE,
65
+ Te as Select,
66
+ De as SelectWithSections,
67
+ ye as Slider,
68
+ Oe as Spinner,
69
+ Le as SupportedChannels,
70
+ Pe as SupportedTriggerChannels,
71
+ Ae as Switch,
72
+ Re as Tag,
73
+ _e as TextArea,
74
+ ke as TextInput,
75
+ xe as Tooltip,
76
+ V as TypingIndicator,
77
+ j as WebchatApp,
78
+ q as WebchatContainer,
79
+ z as WebchatHeader,
80
+ J as WebchatInput,
81
+ K as WebchatMessages,
82
+ X as WebchatProvider,
83
+ Z as getMessageActorCount,
84
+ $ as mergeWebchatHeroHeaderLayoutConfig,
85
+ ee as useDialog,
86
+ ae as useDropdownMenuItemDownloadTranscript,
87
+ se as useDropdownMenuItemResetConversation,
88
+ te as useDropdownMenuItemResetSession,
89
+ oe as useDropdownMenuItemSounds,
90
+ re as useOverlay,
91
+ ne as useOverlayContext,
92
+ ce as useOverlayHeader,
93
+ ue as useUpdateCustomMessageProps,
94
+ ie as useWebchatContainer,
95
+ u as useWebchatContext,
96
+ le as useWebchatDownloadTranscript,
97
+ pe as useWebchatHeader,
98
+ de as useWebchatHeroHeaderLayout,
99
+ ge as useWebchatInput,
100
+ ve as useWebchatMessages,
101
+ Me as useWebchatResetConversation,
102
+ be as useWebchatResetSession,
103
+ he as useWebchatState,
104
+ p as useWebchatTracking
66
105
  };
@@ -0,0 +1,40 @@
1
+ import { ChunkIdsGroupedBySourceData, PreviewToolExecution } from '@botonic/shared';
2
+ import { DebugEvent } from '@botonic/webchat-lit';
3
+ /**
4
+ * Tool execution detail dispatched by the Lit component — the shared
5
+ * `PreviewToolExecution` shape plus the raw `toolResults` payload.
6
+ */
7
+ export interface DebugEventToolExecution extends PreviewToolExecution {
8
+ toolResults?: string;
9
+ }
10
+ export interface DebugEventWrapperProps {
11
+ action: DebugEvent['action'];
12
+ data: DebugEvent;
13
+ noteContent?: string;
14
+ /**
15
+ * DOM `role`-adjacent layout attribute: keeps the webchat message grid
16
+ * contract (`[data-webchat-message-bubble]` children get the bubble grid
17
+ * area and max-width rules).
18
+ */
19
+ 'data-webchat-message-bubble'?: boolean;
20
+ /** The event needs its handoff note content (`load-note`). */
21
+ onLoadNote?: (noteId: string) => void;
22
+ /** The event was expanded for the first time. */
23
+ onEventOpened?: (action: string) => void;
24
+ /** The user asked to see the knowledge-base chunks (`open-chunks`). */
25
+ onSeeChunks?: (chunksWithSources: ChunkIdsGroupedBySourceData[] | undefined) => void;
26
+ /** The user asked to see a tool execution's details (`open-tool-results`). */
27
+ onSeeToolDetails?: (toolExecution: DebugEventToolExecution) => void;
28
+ /** The event needs its chunk data fetched (`load-chunks`). */
29
+ onLoadChunks?: (chunkIds: string[]) => void;
30
+ /** The event is truncated and needs its full data (`rehydrate-event`). */
31
+ onRehydrateEvent?: (hubtypeMessageId: string) => void;
32
+ }
33
+ /**
34
+ * React wrapper for the `botonic-debug-event` Lit web component.
35
+ *
36
+ * Exposes the component's custom events as plain React callbacks (matching
37
+ * the `RenderCtx` surface of the Lit renderers) so consumers don't need to
38
+ * handle `CustomEvent` details.
39
+ */
40
+ export declare const DebugEventWrapper: ({ action, data, noteContent, "data-webchat-message-bubble": dataWebchatMessageBubble, onLoadNote, onEventOpened, onSeeChunks, onSeeToolDetails, onLoadChunks, onRehydrateEvent, }: DebugEventWrapperProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export { type DebugEventToolExecution, DebugEventWrapper, type DebugEventWrapperProps, } from './debug-event-wrapper';
2
+ export { PreviewEventMessage, type PreviewEventMessageProps, SYSTEM_MESSAGE_ROLE, } from './preview-event-message';
3
+ export { usePreviewEventMessage } from './use-preview-event-message';
4
+ export type { DebugEvent } from '@botonic/webchat-lit';
@@ -1,5 +1,5 @@
1
1
  import { PreviewUtils } from '@botonic/shared';
2
- import { DebugEvent } from '../events';
2
+ import { DebugEvent } from '@botonic/webchat-lit';
3
3
  /**
4
4
  * DOM `role` stamped on every preview debug-event message.
5
5
  *
@@ -17,4 +17,4 @@ export interface PreviewEventMessageProps {
17
17
  messageId?: string;
18
18
  previewUtils?: PreviewUtils;
19
19
  }
20
- export declare const PreviewEventMessage: ({ debugEvent, messageId, previewUtils, }: PreviewEventMessageProps) => import("react/jsx-runtime").JSX.Element | null;
20
+ export declare const PreviewEventMessage: ({ debugEvent, previewUtils, }: PreviewEventMessageProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,31 @@
1
+ import { ChunkIdsGroupedBySourceData, PreviewUtils } from '@botonic/shared';
2
+ import { DebugEvent } from '@botonic/webchat-lit';
3
+ import { DebugEventToolExecution } from './debug-event-wrapper';
4
+ export interface UsePreviewEventMessageProps {
5
+ debugEvent: DebugEvent;
6
+ previewUtils?: PreviewUtils;
7
+ }
8
+ /**
9
+ * Maps the `botonic-debug-event` custom events to the `previewUtils`
10
+ * plumbing and holds the asynchronously fetched event data.
11
+ *
12
+ * The fetched extras (note content, chunks, rehydrated event data) are kept
13
+ * in local state and merged into the `data` passed back to the web
14
+ * component — the component's own dispatch guards (keyed by note id, chunk
15
+ * ids and hubtype message id) keep the requests from looping when the
16
+ * parent rebuilds the `debugEvent` object reference.
17
+ */
18
+ export declare function usePreviewEventMessage({ debugEvent, previewUtils, }: UsePreviewEventMessageProps): {
19
+ debugEventProps: {
20
+ action: any;
21
+ data: DebugEvent;
22
+ noteContent: string | undefined;
23
+ 'data-webchat-message-bubble': boolean;
24
+ onSeeChunks: (chunksWithSources: ChunkIdsGroupedBySourceData[] | undefined) => void;
25
+ onSeeToolDetails: (toolExecution: DebugEventToolExecution) => void;
26
+ onLoadNote: (noteId: string) => Promise<void>;
27
+ onEventOpened: (action: string) => void;
28
+ onLoadChunks: (chunkIds: string[]) => Promise<void>;
29
+ onRehydrateEvent: (hubtypeMessageId: string) => Promise<void>;
30
+ };
31
+ };
@@ -16,9 +16,12 @@ export interface DialogState {
16
16
  subtitle?: string;
17
17
  actions?: DialogAction[];
18
18
  }
19
+ export type DialogId = number;
19
20
  export interface DialogControls {
20
- open: (props: DialogOpenProps) => void;
21
+ open: (props: DialogOpenProps) => DialogId;
21
22
  update: (props: Partial<DialogOpenProps>) => void;
23
+ updateIfCurrent: (id: DialogId, props: Partial<DialogOpenProps>) => boolean;
22
24
  close: () => void;
25
+ closeIfCurrent: (id: DialogId) => boolean;
23
26
  dialogState: DialogState;
24
27
  }
@@ -0,0 +1,8 @@
1
+ export declare const BOTONIC_PORTAL_CLASS_LIST_NAME = "botonic-portal-container";
2
+ interface ImagePreviewerPortalProps {
3
+ children: React.ReactNode;
4
+ parent?: HTMLElement;
5
+ className?: string;
6
+ }
7
+ export declare function ImagePreviewerPortal({ children, parent, className, }: ImagePreviewerPortalProps): import('react').ReactPortal;
8
+ export {};
@@ -0,0 +1,6 @@
1
+ export interface ImagePreviewerProps {
2
+ src: string;
3
+ isPreviewerOpened: boolean;
4
+ closePreviewer: () => void;
5
+ }
6
+ export declare function ImagePreviewer({ src, isPreviewerOpened, closePreviewer, }: ImagePreviewerProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,3 @@
1
+ export { ImagePreviewer, type ImagePreviewerProps } from './image-previewer';
2
+ export { BOTONIC_PORTAL_CLASS_LIST_NAME, ImagePreviewerPortal, } from './image-previewer-portal';
3
+ export { IMAGE_PREVIEW_DIALOG_LABEL } from './use-image-previewer';
@@ -0,0 +1,17 @@
1
+ import { ComponentType } from 'react';
2
+ import { ImagePreviewerProps } from '../../image-previewer';
3
+ type ImagePreviewerComponent = ComponentType<ImagePreviewerProps>;
4
+ export declare function useImagePreview(src: string): {
5
+ handleClick: () => void;
6
+ closePreviewer: () => void;
7
+ isPreviewOpen: boolean;
8
+ PreviewComponent: ImagePreviewerComponent;
9
+ previewProps: {
10
+ src: string;
11
+ isPreviewerOpened: true;
12
+ closePreviewer: () => void;
13
+ } | undefined;
14
+ previewElement: import("react/jsx-runtime").JSX.Element | null;
15
+ isPreviewEnabled: boolean;
16
+ };
17
+ export {};
@@ -33,3 +33,4 @@ export { RatingMessage, type RatingMessageProps } from './rating-message';
33
33
  export { TextMessage, type TextMessageProps } from './text-message';
34
34
  export { TypingIndicator, type TypingIndicatorProps } from './typing-message';
35
35
  export { VideoMessage, type VideoMessageProps } from './video-message';
36
+ export { WhatsappRequestContactInfoMessage, type WhatsappRequestContactInfoMessageProps, } from './whatsapp-request-contact-info';
@@ -21,6 +21,8 @@ export interface MessageInfoProps {
21
21
  className?: string;
22
22
  /** Additional content to render in the info area. */
23
23
  children?: React.ReactNode;
24
+ /** Optional delivery-template timestamp formatter. */
25
+ formatMessageTimestamp?: (date: Date) => string;
24
26
  }
25
27
  /** Message info component that displays timestamp, status, and other metadata. */
26
28
  export declare const MessageInfo: React.ForwardRefExoticComponent<MessageInfoProps & React.RefAttributes<HTMLDivElement>>;
@@ -29,6 +29,7 @@ export interface MessageProps {
29
29
  isFullWidth?: boolean;
30
30
  /** Bot interaction ID, rendered as a data attribute for grouping. */
31
31
  botInteractionId?: string;
32
+ formatMessageTimestamp?: (date: Date) => string;
32
33
  }
33
34
  /** Message component with common functionality for all message types. */
34
35
  export declare const Message: React.ForwardRefExoticComponent<MessageProps & React.RefAttributes<HTMLDivElement>>;
@@ -11,6 +11,7 @@ export interface UseMessageProps {
11
11
  showTimestamp?: boolean;
12
12
  /** The timestamp to display. */
13
13
  timestamp?: string | Date;
14
+ formatMessageTimestamp?: (date: Date) => string;
14
15
  /** Whether to show message status. */
15
16
  showStatus?: boolean;
16
17
  /** Pre-computed avatar configuration from useAvatar hook. */
@@ -0,0 +1 @@
1
+ export { default, WhatsappRequestContactInfoMessage, type WhatsappRequestContactInfoMessageProps, } from './whatsapp-request-contact-info-message';
@@ -0,0 +1,10 @@
1
+ import { MessageProps } from '../message';
2
+ export interface WhatsappRequestContactInfoMessageProps extends Omit<MessageProps, 'children'> {
3
+ /** The body text prompting the user to share their contact info. */
4
+ text: string;
5
+ /** Additional CSS class names to apply to the message. */
6
+ className?: string;
7
+ }
8
+ /** WhatsApp request contact info message component for the webchat preview. */
9
+ export declare const WhatsappRequestContactInfoMessage: import('react').ForwardRefExoticComponent<WhatsappRequestContactInfoMessageProps & import('react').RefAttributes<HTMLDivElement>>;
10
+ export default WhatsappRequestContactInfoMessage;
@@ -23,6 +23,7 @@ export interface UseMessageMachineRendererOptions {
23
23
  botAvatarConfig?: AvatarConfigResult | null;
24
24
  agentAvatarConfig?: AvatarConfigResult | null;
25
25
  onUserInteraction?: () => void;
26
+ formatMessageTimestamp?: (date: Date) => string;
26
27
  };
27
28
  }
28
29
  /**
@@ -1,15 +1 @@
1
- export { getAiAgentEventConfig } from './ai-agent/ai-agent';
2
- export { getAiAgentRouterEventConfig } from './ai-agent-router/ai-agent-router';
3
- export { getBotActionEventConfig } from './bot-action';
4
- export { getConditionalChannelEventConfig } from './conditional-channel';
5
- export { getConditionalCountryEventConfig } from './conditional-country';
6
- export { getConditionalCustomEventConfig } from './conditional-custom';
7
- export { getConditionalQueueStatusEventConfig } from './conditional-queue-status';
8
- export { getFallbackEventConfig } from './fallback';
9
- export { getHandoffSuccessEventConfig } from './handoff-success';
10
- export { getKeywordEventConfig } from './keyword';
11
- export { getKnowledgeBaseEventConfig } from './knowledge-base';
12
- export { getRedirectFlowEventConfig } from './redirect-flow';
13
- export { getSmartIntentEventConfig } from './smart-intent';
14
1
  export type { DebugEvent } from './types';
15
- export { getWebviewActionTriggeredEventConfig } from './webview-action-triggered';
@@ -38,6 +38,7 @@ export interface WebviewActionTriggeredDebugEvent {
38
38
  action: EventAction.WebviewActionTriggered;
39
39
  webview_target_id: string;
40
40
  webview_name: string;
41
+ webview_params?: Record<string, string>;
41
42
  }
42
43
  export interface ConditionalChannelDebugEvent {
43
44
  action: EventAction.ConditionalChannel;
@@ -60,17 +61,10 @@ export interface ConditionalQueueStatusDebugEvent {
60
61
  is_queue_open: boolean;
61
62
  is_available_agent: boolean;
62
63
  }
63
- export interface KnowledgeBaseDebugEvent {
64
- action: EventAction.Knowledgebase;
65
- flow_id: string;
66
- flow_node_id: string;
67
- knowledgebase_inference_id: string;
68
- knowledgebase_fail_reason: string;
69
- knowledgebase_sources_ids: string[];
70
- knowledgebase_chunks_ids: string[];
71
- user_input: string;
72
- knowledge_base_chunks_with_sources?: ChunkIdsGroupedBySourceData[];
73
- messageId?: string;
64
+ export interface ConditionalContactReasonsDebugEvent {
65
+ action: EventAction.ConditionalContactReasons;
66
+ contactReasons: string[];
67
+ result: string;
74
68
  }
75
69
  export interface ToolExecuted {
76
70
  tool_name: string;
@@ -88,8 +82,11 @@ export interface AiAgentDebugEvent {
88
82
  output_guardrails_triggered: string[];
89
83
  exit: boolean;
90
84
  error: boolean;
85
+ do_nothing: boolean;
91
86
  knowledge_base_chunks_with_sources?: ChunkIdsGroupedBySourceData[];
92
87
  messageId?: string;
88
+ truncated?: boolean;
89
+ hubtype_message_id?: string;
93
90
  }
94
91
  export interface SpecialistDebugEvent {
95
92
  name: string;
@@ -110,4 +107,4 @@ export interface AiAgentRouterDebugEvent {
110
107
  knowledge_base_chunks_with_sources?: ChunkIdsGroupedBySourceData[];
111
108
  messageId?: string;
112
109
  }
113
- export type DebugEvent = KeywordDebugEvent | SmartIntentDebugEvent | FallbackDebugEvent | BotActionDebugEvent | HandoffSuccessDebugEvent | RedirectFlowDebugEvent | WebviewActionTriggeredDebugEvent | ConditionalChannelDebugEvent | ConditionalCountryDebugEvent | ConditionalCustomDebugEvent | ConditionalQueueStatusDebugEvent | KnowledgeBaseDebugEvent | AiAgentDebugEvent | AiAgentRouterDebugEvent;
110
+ export type DebugEvent = KeywordDebugEvent | SmartIntentDebugEvent | FallbackDebugEvent | BotActionDebugEvent | HandoffSuccessDebugEvent | RedirectFlowDebugEvent | WebviewActionTriggeredDebugEvent | ConditionalChannelDebugEvent | ConditionalCountryDebugEvent | ConditionalCustomDebugEvent | ConditionalQueueStatusDebugEvent | ConditionalContactReasonsDebugEvent | AiAgentDebugEvent | AiAgentRouterDebugEvent;
@@ -10,6 +10,8 @@ export interface WebchatAppProps extends WebchatStateProps {
10
10
  onClose?: () => void;
11
11
  /** Callback when controller is ready - passes the controller instance */
12
12
  onControllerReady?: (controller: WebchatController) => void;
13
+ /** Called each time the webchat panel opens (see `registerOnOpen` in webchat-core). */
14
+ onOpen?: (controller: WebchatController) => void;
13
15
  /** Whether to show the trigger button (false when used with external trigger) */
14
16
  showTrigger?: boolean;
15
17
  /** Title for the header */
@@ -50,4 +52,4 @@ export interface WebchatAppProps extends WebchatStateProps {
50
52
  * />
51
53
  * ```
52
54
  */
53
- export declare function WebchatApp({ appId, isOpen, onClose, onControllerReady, title, placeholder, showBranding, customMessages, avatarConfig, coverRegistry, icons, heroHeaderLayout, ...restConfig }: WebchatAppProps): import("react/jsx-runtime").JSX.Element;
55
+ export declare function WebchatApp({ appId, isOpen, onClose, onControllerReady, onOpen, title, placeholder, showBranding, customMessages, avatarConfig, coverRegistry, icons, heroHeaderLayout, ...restConfig }: WebchatAppProps): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,9 @@
1
- export interface DropdownMenuItemDownloadTranscriptProps {
1
+ import { DropdownMenuItemProps } from '@lilara/ui-web-react';
2
+ import { DropdownMenuItemDownloadTranscriptDialogLabels } from './use-dropdown-menu-item-download-transcript';
3
+ export interface DropdownMenuItemDownloadTranscriptProps extends Omit<DropdownMenuItemProps, 'onPress' | 'icon' | 'children'> {
2
4
  onClose?: () => void;
5
+ dialogLabels?: DropdownMenuItemDownloadTranscriptDialogLabels;
6
+ onLeaveChat?: () => void;
3
7
  children?: React.ReactNode;
4
8
  }
5
- export declare function DropdownMenuItemDownloadTranscript({ onClose, children, }: DropdownMenuItemDownloadTranscriptProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function DropdownMenuItemDownloadTranscript({ onClose, dialogLabels, onLeaveChat, children, ...itemProps }: DropdownMenuItemDownloadTranscriptProps): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,6 @@
1
1
  export interface DropdownMenuItemResetConversationProps {
2
2
  onClose?: () => void;
3
+ onAfterReset?: () => void;
3
4
  children?: React.ReactNode;
4
5
  }
5
- export declare function DropdownMenuItemResetConversation({ onClose, children, }: DropdownMenuItemResetConversationProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function DropdownMenuItemResetConversation({ onClose, onAfterReset, children, }: DropdownMenuItemResetConversationProps): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,8 @@
1
- export interface DropdownMenuItemResetSessionProps {
1
+ import { DropdownMenuItemProps } from '@lilara/ui-web-react';
2
+ import { DropdownMenuItemResetSessionDialogLabels } from './use-dropdown-menu-item-reset-session';
3
+ export interface DropdownMenuItemResetSessionProps extends Omit<DropdownMenuItemProps, 'onPress' | 'icon' | 'children'> {
2
4
  onClose?: () => void;
5
+ dialogLabels?: DropdownMenuItemResetSessionDialogLabels;
3
6
  children?: React.ReactNode;
4
7
  }
5
- export declare function DropdownMenuItemResetSession({ onClose, children, }: DropdownMenuItemResetSessionProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function DropdownMenuItemResetSession({ onClose, dialogLabels, children, ...itemProps }: DropdownMenuItemResetSessionProps): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,6 @@
1
- export interface DropdownMenuItemSoundsProps {
1
+ import { DropdownMenuItemCheckboxProps } from '@lilara/ui-web-react';
2
+ export interface DropdownMenuItemSoundsProps extends Omit<DropdownMenuItemCheckboxProps, 'isSelected' | 'onChange' | 'icon' | 'children'> {
2
3
  onClose?: () => void;
3
4
  children?: React.ReactNode;
4
5
  }
5
- export declare function DropdownMenuItemSounds({ onClose: _onClose, children, }: DropdownMenuItemSoundsProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function DropdownMenuItemSounds({ onClose: _onClose, children, ...itemProps }: DropdownMenuItemSoundsProps): import("react/jsx-runtime").JSX.Element;