@helpai/elements 0.14.2 → 0.16.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.
package/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { A as Asset, B as BlocksConfig, C as ConnectionConfig, a as ConnectionConfigPartial, L as Link, S as ServerConfig, b as SiteConfig, c as StartConversationResponse, W as WidgetConfig, d as WidgetConfigPartial, e as WidgetSettings, f as WidgetSettingsPartial } from './deployment-CWyouRob.js';
1
+ export { A as Asset, B as BlocksConfig, C as ConnectionConfig, a as ConnectionConfigPartial, L as Link, S as ServerConfig, b as SiteConfig, c as StartConversationResponse, W as WidgetConfig, d as WidgetConfigPartial, e as WidgetSettings, f as WidgetSettingsPartial } from './deployment-DvzmRV7E.js';
2
2
  import 'zod';
3
3
 
4
4
  /**
@@ -40,7 +40,7 @@ interface ClientStorage {
40
40
  * populated {@link Strings} map. UI components then read `strings.send` as a
41
41
  * normal property access — no per-render lookup, no per-render allocation.
42
42
  */
43
- type StringKey = "launcherOpen" | "panelTitle" | "composerPlaceholder" | "send" | "stop" | "attach" | "micStart" | "micStop" | "micUnsupported" | "expand" | "collapse" | "fullscreen" | "exitFullscreen" | "resizeHandle" | "scrollToBottom" | "popOut" | "close" | "moreActions" | "soundOn" | "soundOff" | "language" | "theme" | "themeAuto" | "themeLight" | "themeDark" | "history" | "historyTitle" | "historyEmpty" | "historyLoading" | "historyNewChat" | "historyBack" | "messagesLoading" | "chatClosed" | "startNewConversation" | "dateToday" | "dateYesterday" | "dateLastWeek" | "dateOlder" | "newConversation" | "dropZone" | "attachmentTooLarge" | "attachmentTooMany" | "attachmentMimeRejected" | "errorRetry" | "errorGeneric" | "errorRateLimited" | "loading" | "thinking" | "thoughts" | "usedTool" | "collapseSidebar" | "expandSidebar" | "formSubmit" | "formSkip" | "formRequired" | "formInvalidEmail" | "formInvalidTel" | "formInvalidUrl" | "formInvalidNumber" | "formTooShort" | "formTooLong" | "formNumberTooSmall" | "formNumberTooLarge" | "formPatternMismatch" | "formChooseAtLeast" | "formChooseAtMost" | "formOther" | "formOtherPlaceholder" | "inputRequired" | "inputSubmit" | "inputSkip" | "inputSubmitted" | "approvalRequired" | "approve" | "reject" | "approved" | "rejected" | "approvalReason" | "stepNoLongerActive" | "tabHome" | "tabMessages" | "tabHelp" | "tabNews" | "modulesEmpty" | "moduleBack" | "contentLoading" | "homeGreeting" | "homeGreetingNamed" | "homeGreetingLead" | "homeSearchPlaceholder" | "homeContentTitle" | "helpTitle" | "helpSearchPlaceholder" | "helpEmpty" | "helpLoading" | "helpSearchEmpty" | "newsTitle" | "newsEmpty" | "newsLoading" | "newsBack" | "newsPublishedAt";
43
+ type StringKey = "launcherOpen" | "panelTitle" | "composerPlaceholder" | "send" | "stop" | "attach" | "micStart" | "micStop" | "micUnsupported" | "expand" | "collapse" | "fullscreen" | "exitFullscreen" | "resizeHandle" | "scrollToBottom" | "popOut" | "close" | "moreActions" | "soundOn" | "soundOff" | "language" | "theme" | "themeAuto" | "themeLight" | "themeDark" | "textSize" | "textSizeSmall" | "textSizeNormal" | "textSizeLarge" | "history" | "historyTitle" | "historyEmpty" | "historyLoading" | "historyBack" | "conversationLoading" | "conversationClosed" | "startNewConversation" | "dateToday" | "dateYesterday" | "dateLastWeek" | "dateOlder" | "newConversation" | "dropZone" | "attachmentTooLarge" | "attachmentTooMany" | "attachmentMimeRejected" | "errorRetry" | "errorGeneric" | "errorRateLimited" | "loading" | "thinking" | "thoughts" | "usedTool" | "collapseSidebar" | "expandSidebar" | "formSubmit" | "formSkip" | "formSubmitted" | "formSkipped" | "formRequired" | "formInvalidEmail" | "formInvalidTel" | "formInvalidUrl" | "formInvalidNumber" | "formTooShort" | "formTooLong" | "formNumberTooSmall" | "formNumberTooLarge" | "formPatternMismatch" | "formChooseAtLeast" | "formChooseAtMost" | "formOther" | "formOtherPlaceholder" | "inputRequired" | "inputSubmit" | "inputSkip" | "inputSubmitted" | "approvalRequired" | "approve" | "reject" | "approved" | "rejected" | "approvalReason" | "stepNoLongerActive" | "tabHome" | "tabConversations" | "tabHelp" | "tabNews" | "modulesEmpty" | "moduleBack" | "contentLoading" | "homeGreeting" | "homeGreetingNamed" | "homeGreetingLead" | "homeSearchPlaceholder" | "homeContentTitle" | "helpTitle" | "helpSearchPlaceholder" | "helpEmpty" | "helpLoading" | "helpSearchEmpty" | "newsTitle" | "newsEmpty" | "newsLoading" | "newsBack" | "newsPublishedAt";
44
44
  /** A partial map for one locale — what overrides look like on the wire. */
45
45
  type LocaleStrings = Partial<Record<StringKey, string>>;
46
46
  /**
@@ -109,6 +109,8 @@ interface UserPrefs {
109
109
  soundMuted?: boolean;
110
110
  /** Theme picked from the theme switcher. */
111
111
  themeMode?: "auto" | "light" | "dark";
112
+ /** Text size picked from the text-size switcher. */
113
+ textSize?: "small" | "normal" | "large";
112
114
  }
113
115
 
114
116
  /**
@@ -176,6 +178,21 @@ type WirePart = {
176
178
  errorText?: string;
177
179
  approval?: ToolApproval;
178
180
  };
181
+ /**
182
+ * One recorded form submission, returned on `/ai/agent/start-conversation`
183
+ * (alongside `messages`) so the widget can re-place the collapsed
184
+ * "form submitted" marker at its chronological spot in the timeline.
185
+ * Values are NOT echoed back — the marker is pure indication.
186
+ */
187
+ interface FormSubmissionRecord {
188
+ formId: string;
189
+ /** The trigger kind that surfaced the form. */
190
+ trigger: string;
191
+ /** True when the visitor skipped instead of answering. */
192
+ skipped?: boolean;
193
+ /** Epoch ms — same clock + name as {@link WireMessage.createdAt}. */
194
+ createdAt?: number;
195
+ }
179
196
  /** One-shot bot persona shown in the panel header. */
180
197
  interface ConversationAgent {
181
198
  name: string;
@@ -237,6 +254,13 @@ interface StartConversationResponse {
237
254
  /** Page-mode sidebar blocks (navigation, link cards). Backend ships it whenever the deployment renders the page-shell sidebar. */
238
255
  blocks?: Record<string, unknown>;
239
256
  messages?: WireMessage[];
257
+ /**
258
+ * Form submissions recorded for this conversation (via
259
+ * `/ai/agent/submit-form`), returned like `messages` so the widget can
260
+ * reconstruct the timeline on resume — each renders as a collapsed
261
+ * "form submitted" marker at its chronological position.
262
+ */
263
+ formSubmissions?: FormSubmissionRecord[];
240
264
  /**
241
265
  * Server's authoritative copy of the visitor's preferences. When present,
242
266
  * client adopts it (overrides local cache) and re-applies it to the UI
@@ -291,6 +315,8 @@ type Position = "bottom-right" | "bottom-left" | "top-right" | "top-left";
291
315
  * Page mode reads `site` and `blocks` from the start-conversation response.
292
316
  */
293
317
  type Mode = "floating" | "inline" | "standalone" | "page" | "modal" | "drawer";
318
+ /** End-user text-size preference — scales the whole type ramp. */
319
+ type TextSize = "small" | "normal" | "large";
294
320
  /** Theme preference. `auto` follows `prefers-color-scheme`. */
295
321
  type ThemePreference = "auto" | "light" | "dark";
296
322
  /**
@@ -331,9 +357,10 @@ interface WelcomeOptions {
331
357
  * - `sound` — Toggle notification sounds + haptics on/off (switch-style).
332
358
  * - `language` — Switch the UI locale at runtime.
333
359
  * - `theme` — Cycle `auto` / `light` / `dark`.
360
+ * - `textSize` — Cycle `normal` / `large` / `small`.
334
361
  * - `close` — Close the floating panel.
335
362
  */
336
- type ActionName = "clear" | "expand" | "fullscreen" | "popOut" | "sound" | "history" | "language" | "theme" | "close";
363
+ type ActionName = "clear" | "expand" | "fullscreen" | "popOut" | "sound" | "history" | "language" | "theme" | "textSize" | "close";
337
364
  /**
338
365
  * The header's enabled actions. Unlisted actions are hidden; order is
339
366
  * irrelevant. Per-mode defaults (`DEFAULT_ACTIONS_BY_MODE`) pick a sensible
@@ -683,7 +710,7 @@ interface ModuleStatus {
683
710
  }
684
711
  /**
685
712
  * `home` layout config — flat feature flags (no block authoring). The Home tab
686
- * is assembled from these in a fixed order: greeting → search → recent message
713
+ * is assembled from these in a fixed order: greeting → search → recent conversation
687
714
  * → status → a content list (from the tab's `contentTags`, titled `contentBlockTitle`).
688
715
  */
689
716
  interface HomeConfig {
@@ -692,7 +719,7 @@ interface HomeConfig {
692
719
  greetingText?: string;
693
720
  userAvatars?: ModuleAvatar[];
694
721
  showSearchBar?: boolean;
695
- showRecentMessages?: boolean;
722
+ showRecentConversations?: boolean;
696
723
  status?: ModuleStatus;
697
724
  contentBlockTitle?: string;
698
725
  }
@@ -837,7 +864,7 @@ interface BehaviorOptions {
837
864
  showToolCalls?: boolean;
838
865
  /**
839
866
  * Override the URL the `popOut` action opens (carries
840
- * `?chat=<id>&widgetId=<id>`). Falls back to the brand's
867
+ * `?conversation=<id>&widgetId=<id>`). Falls back to the brand's
841
868
  * `BRAND.standaloneUrl` baked at build time. Server-pushable.
842
869
  */
843
870
  popOutUrl?: string;
@@ -1062,6 +1089,8 @@ interface ResolvedOptions {
1062
1089
  pageContext?: PageContext;
1063
1090
  position: Position;
1064
1091
  themeMode: ThemePreference;
1092
+ /** Active text size. Default `normal`; the end-user's pick overrides at runtime. */
1093
+ textSize: TextSize;
1065
1094
  themeOverrides: ThemeOverrides;
1066
1095
  mode: Mode;
1067
1096
  iframe: boolean;
@@ -1248,7 +1277,7 @@ interface EventMap {
1248
1277
  /** Clear / new-conversation requested. */
1249
1278
  clear: void;
1250
1279
  /** User picked a chat from the history pane / sidebar. */
1251
- selectChat: {
1280
+ selectConversation: {
1252
1281
  conversationId: string;
1253
1282
  };
1254
1283
  /** User clicked a suggested-message chip. */
@@ -1295,6 +1324,8 @@ interface EventMap {
1295
1324
  localeChange: string;
1296
1325
  /** End-user picked a different theme mode (`auto` / `light` / `dark`). */
1297
1326
  themeChange: ThemePreference;
1327
+ /** End-user picked a different text size (`small` / `normal` / `large`). */
1328
+ textSizeChange: TextSize;
1298
1329
  /** End-user toggled the global sound mute. */
1299
1330
  soundToggle: {
1300
1331
  muted: boolean;