@helpai/elements 0.59.2 → 0.59.4

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, H as HandshakeResponse, L as Link, S as ServerConfig, b as SiteConfig, W as WidgetConfig, c as WidgetConfigPartial, d as WidgetSettings, e as WidgetSettingsPartial } from './deployment-BAOjO2dQ.js';
1
+ export { A as Asset, B as BlocksConfig, C as ConnectionConfig, a as ConnectionConfigPartial, H as HandshakeResponse, L as Link, S as ServerConfig, b as SiteConfig, W as WidgetConfig, c as WidgetConfigPartial, d as WidgetSettings, e as WidgetSettingsPartial } from './deployment-Bqqyxer1.js';
2
2
  import 'zod';
3
3
 
4
4
  /**
@@ -304,8 +304,6 @@ type ActionList = ActionName[];
304
304
  type VoiceMode = "local" | "server" | "disabled";
305
305
  /** Capability flags. Any field left `undefined` uses its default. */
306
306
  interface FeatureFlags {
307
- /** Show the paperclip button + accept drag/drop/paste. Default: `true`. */
308
- files?: boolean;
309
307
  /** Voice input behaviour (see {@link VoiceMode}). Default: `'local'`. */
310
308
  voice?: VoiceMode;
311
309
  /**
@@ -315,11 +313,26 @@ interface FeatureFlags {
315
313
  */
316
314
  tools?: Array<string | ToolRef>;
317
315
  /**
318
- * Render human-in-the-loop tool UI — the inline ask-questions form and the
319
- * approve/reject controls for gated tools. Default `true`. Set `false` to
320
- * suppress them (the wire still carries the signals; they just won't show).
316
+ * Turn OFF the human-in-the-loop tool UI — the inline ask-questions form and the
317
+ * approve/reject controls for gated tools. Unset/`false` = shown (default); `true`
318
+ * suppresses the UI (the wire still carries the signals; they just won't show).
321
319
  */
322
- humanInLoop?: boolean;
320
+ disableHumanInLoop?: boolean;
321
+ /**
322
+ * Turn OFF file uploads — hide the paperclip button + reject drag/drop/paste.
323
+ * Unset/`false` = enabled (default); `true` disables them.
324
+ */
325
+ disableFileUpload?: boolean;
326
+ }
327
+ /**
328
+ * Features after resolution. The UI reads a POSITIVE `humanInLoop` — `resolveOptions`
329
+ * inverts the wire-input `disableHumanInLoop` once here, so no render site does `!disable…`.
330
+ */
331
+ interface ResolvedFeatures {
332
+ fileUpload: boolean;
333
+ voice: VoiceMode;
334
+ humanInLoop: boolean;
335
+ tools?: Array<string | ToolRef>;
323
336
  }
324
337
  /**
325
338
  * Client-side attachment limits. Server enforcement is still required —
@@ -697,11 +710,11 @@ interface ModuleStatus {
697
710
  */
698
711
  interface HomeConfig {
699
712
  brandName?: string;
700
- showGreeting?: boolean;
713
+ hideGreeting?: boolean;
701
714
  greetingText?: string;
702
715
  userAvatars?: ModuleAvatar[];
703
- showSearchBar?: boolean;
704
- showRecentConversations?: boolean;
716
+ hideSearchBar?: boolean;
717
+ hideRecentConversations?: boolean;
705
718
  status?: ModuleStatus;
706
719
  contentBlockTitle?: string;
707
720
  }
@@ -715,8 +728,12 @@ interface ModuleOptions extends HomeConfig {
715
728
  }
716
729
  /** The `modules` block is an ordered list of tabs (max 4). */
717
730
  type ModulesOptions = ModuleOptions[];
718
- /** A resolved tab (stable `id` filled, defaults applied). */
719
- interface ResolvedModule extends HomeConfig {
731
+ /**
732
+ * A resolved tab (stable `id` filled, defaults applied). The `home` boolean flags are POSITIVE
733
+ * (`showGreeting`/`showSearchBar`/`showRecentConversations`) — `resolveModules` inverts the wire-input
734
+ * `hide*` once, so no render site does `!hide…`. Present only for `home` tabs.
735
+ */
736
+ interface ResolvedModule extends Omit<HomeConfig, "hideGreeting" | "hideSearchBar" | "hideRecentConversations"> {
720
737
  /** Stable id for nav + last-tab persistence (`id` ?? first `contentTags` ?? `layout`, deduped). */
721
738
  id: string;
722
739
  /** i18n key or literal — resolved at render via the i18n strings. */
@@ -724,6 +741,9 @@ interface ResolvedModule extends HomeConfig {
724
741
  layout: ModuleLayout;
725
742
  /** Content tag scope — the `tags` filter (omitted for `chat`). */
726
743
  contentTags?: string[];
744
+ showGreeting?: boolean;
745
+ showSearchBar?: boolean;
746
+ showRecentConversations?: boolean;
727
747
  }
728
748
  /** Fully-resolved modules block exposed on {@link ResolvedOptions}. */
729
749
  interface ResolvedModules {
@@ -847,10 +867,8 @@ interface BehaviorOptions {
847
867
  showToolCalls?: boolean;
848
868
  /** Show citation sources (web links + document references) in the transcript. Default `false`. */
849
869
  showSources?: boolean;
850
- /** Fade the message list at its scroll edges (gradient mask). Default `true`. */
851
- scrollFade?: boolean;
852
- /** Show 👍/👎 feedback controls on assistant replies. Default `true`. */
853
- enableMessageFeedback?: boolean;
870
+ /** Turn OFF the 👍/👎 feedback controls on assistant replies. Unset/`false` = shown (default). */
871
+ disableMessageFeedback?: boolean;
854
872
  }
855
873
  /**
856
874
  * Section: panel header actions — the enabled set (`history`/`close` buttons +
@@ -1165,13 +1183,9 @@ interface ResolvedOptions {
1165
1183
  showToolCalls: boolean;
1166
1184
  /** Show citation sources (web links + document references) in the transcript. Default `false`. */
1167
1185
  showSources: boolean;
1168
- /** Fade the message list at its scroll edges (gradient mask). Default `true`. */
1169
- scrollFade: boolean;
1170
1186
  /** Show 👍/👎 feedback controls on assistant replies. Default `true`. */
1171
1187
  enableMessageFeedback: boolean;
1172
- features: Required<Omit<FeatureFlags, "tools">> & {
1173
- tools?: Array<string | ToolRef>;
1174
- };
1188
+ features: ResolvedFeatures;
1175
1189
  /** Resolved event-driven forms — ordered list + trigger index. */
1176
1190
  forms: ResolvedForms;
1177
1191
  endpoints: Required<Endpoints>;
package/index.mjs CHANGED
@@ -29,7 +29,7 @@ var BRAND = {
29
29
  };
30
30
 
31
31
  // src/core/version.ts
32
- var ELEMENTS_VERSION = true ? "0.59.2" : "0.0.0-dev";
32
+ var ELEMENTS_VERSION = true ? "0.59.4" : "0.0.0-dev";
33
33
  var ELEMENTS_VERSION_PARAM = "_ev";
34
34
 
35
35
  // src/i18n/strings.ts
@@ -1029,9 +1029,7 @@ var DEFAULT_ATTACHMENTS = {
1029
1029
  accept: "*/*"
1030
1030
  };
1031
1031
  var DEFAULT_FEATURES = {
1032
- files: true,
1033
- voice: "local",
1034
- humanInLoop: true
1032
+ voice: "local"
1035
1033
  };
1036
1034
  var DEFAULT_FORMS = { list: [], byTrigger: {} };
1037
1035
  var DEFAULT_TRACKING = {
@@ -1068,7 +1066,6 @@ var DEFAULT_HAPTICS = {
1068
1066
  events: void 0
1069
1067
  };
1070
1068
  var DEFAULT_MODULES = [{ label: "tabConversations", layout: "chat" }];
1071
- var DEFAULT_HOME_MODULE = { showSearchBar: true };
1072
1069
 
1073
1070
  // src/core/config/resolve.ts
1074
1071
  function resolveOptions(rawOpts) {
@@ -1107,12 +1104,11 @@ function resolveOptions(rawOpts) {
1107
1104
  showReasoning: behavior.showReasoning ?? false,
1108
1105
  showToolCalls: behavior.showToolCalls ?? false,
1109
1106
  showSources: behavior.showSources ?? false,
1110
- scrollFade: behavior.scrollFade ?? true,
1111
- enableMessageFeedback: behavior.enableMessageFeedback ?? true,
1107
+ enableMessageFeedback: !(behavior.disableMessageFeedback ?? false),
1112
1108
  features: {
1113
- files: opts.features?.files ?? DEFAULT_FEATURES.files,
1114
1109
  voice: opts.features?.voice ?? DEFAULT_FEATURES.voice,
1115
- humanInLoop: opts.features?.humanInLoop ?? DEFAULT_FEATURES.humanInLoop,
1110
+ fileUpload: !(opts.features?.disableFileUpload ?? false),
1111
+ humanInLoop: !(opts.features?.disableHumanInLoop ?? false),
1116
1112
  tools: opts.features?.tools
1117
1113
  },
1118
1114
  forms: resolveForms(opts.forms, locale),
@@ -1226,9 +1222,9 @@ function resolveModules(overrides) {
1226
1222
  if (m.layout === "home") {
1227
1223
  resolved.brandName = m.brandName;
1228
1224
  resolved.greetingText = m.greetingText;
1229
- resolved.showGreeting = m.showGreeting ?? true;
1230
- resolved.showSearchBar = m.showSearchBar ?? DEFAULT_HOME_MODULE.showSearchBar;
1231
- resolved.showRecentConversations = m.showRecentConversations ?? true;
1225
+ resolved.showGreeting = !(m.hideGreeting ?? false);
1226
+ resolved.showSearchBar = !(m.hideSearchBar ?? false);
1227
+ resolved.showRecentConversations = !(m.hideRecentConversations ?? false);
1232
1228
  if (m.userAvatars && m.userAvatars.length > 0) resolved.userAvatars = m.userAvatars;
1233
1229
  if (m.status) resolved.status = m.status;
1234
1230
  resolved.contentBlockTitle = m.contentBlockTitle;
@@ -1437,8 +1433,7 @@ var BEHAVIOR_ATTRS = [
1437
1433
  ["show-reasoning", "showReasoning", boolAttr],
1438
1434
  ["show-tool-calls", "showToolCalls", boolAttr],
1439
1435
  ["show-sources", "showSources", boolAttr],
1440
- ["scroll-fade", "scrollFade", boolAttr],
1441
- ["enable-message-feedback", "enableMessageFeedback", boolAttr]
1436
+ ["disable-message-feedback", "disableMessageFeedback", boolAttr]
1442
1437
  ];
1443
1438
  var I18N_ATTRS = [["locale", "locale"]];
1444
1439
  var ACTION_NAMES = new Set(ACTION_NAME_LITERALS);
@@ -1449,7 +1444,7 @@ var LAUNCHER_ATTRS = [
1449
1444
  ["launcher-hidden", "hidden", boolAttr]
1450
1445
  ];
1451
1446
  var FEATURE_ATTRS = [
1452
- ["features-files", "files", boolAttr],
1447
+ ["features-disable-file-upload", "disableFileUpload", boolAttr],
1453
1448
  ["features-voice", "voice", (v) => v],
1454
1449
  ["features-tools", "tools", csv]
1455
1450
  ];
@@ -4501,7 +4496,7 @@ function Composer({ options, transport, feedback, bus, isStreaming, onSend, onSt
4501
4496
  const [voiceOn, setVoiceOn] = useState2(false);
4502
4497
  const taRef = useRef2(null);
4503
4498
  const fileRef = useRef2(null);
4504
- const filesEnabled = options.features.files;
4499
+ const fileUploadEnabled = options.features.fileUpload;
4505
4500
  const voiceMode = options.features.voice;
4506
4501
  const [voice, setVoice] = useState2(
4507
4502
  () => createVoice(voiceMode, options.locale, (blob, type) => transport.transcribe(blob, type))
@@ -4558,7 +4553,7 @@ function Composer({ options, transport, feedback, bus, isStreaming, onSend, onSt
4558
4553
  "input, textarea, [contenteditable]:not([contenteditable='false'])"
4559
4554
  );
4560
4555
  if (editable && editable !== ta) return;
4561
- if (filesEnabled) {
4556
+ if (fileUploadEnabled) {
4562
4557
  const result = ingest(data.items, attsRef.current, options.attachments);
4563
4558
  if (result.accepted.length > 0) {
4564
4559
  e.preventDefault();
@@ -4577,7 +4572,7 @@ function Composer({ options, transport, feedback, bus, isStreaming, onSend, onSt
4577
4572
  };
4578
4573
  panel.addEventListener("paste", onPaste);
4579
4574
  return () => panel.removeEventListener("paste", onPaste);
4580
- }, [filesEnabled, options.attachments, p7]);
4575
+ }, [fileUploadEnabled, options.attachments, p7]);
4581
4576
  const send = () => {
4582
4577
  const trimmed = text.trim();
4583
4578
  if (!trimmed && atts.length === 0) return;
@@ -4647,7 +4642,7 @@ function Composer({ options, transport, feedback, bus, isStreaming, onSend, onSt
4647
4642
  atts.length > 0 ? /* @__PURE__ */ jsx6("div", { class: `${p7}-attachments`, children: atts.map((a) => /* @__PURE__ */ jsx6(AttachmentChip, { attachment: a, onRemove: () => removeAtt(a.id) }, a.id)) }) : null,
4648
4643
  /* @__PURE__ */ jsxs5("div", { class: `${p7}-composer-row`, children: [
4649
4644
  /* @__PURE__ */ jsxs5("div", { class: `${p7}-composer-actions`, children: [
4650
- filesEnabled ? /* @__PURE__ */ jsx6(
4645
+ fileUploadEnabled ? /* @__PURE__ */ jsx6(
4651
4646
  "button",
4652
4647
  {
4653
4648
  type: "button",
@@ -6404,7 +6399,6 @@ function MessageList({
6404
6399
  showReasoning,
6405
6400
  showToolCalls,
6406
6401
  showSources,
6407
- scrollFade,
6408
6402
  enableMessageFeedback,
6409
6403
  onFeedback,
6410
6404
  loading,
@@ -6425,7 +6419,6 @@ function MessageList({
6425
6419
  const inInteractionGrace = () => interactingRef.current || performance.now() - interactionEndedAtRef.current < INTERACTION_GRACE_MS;
6426
6420
  const autoPinAtRef = useRef5(0);
6427
6421
  const syncFade = (el) => {
6428
- if (!scrollFade) return;
6429
6422
  const overflowing = el.scrollHeight - el.clientHeight > 1;
6430
6423
  el.dataset.fadeTop = overflowing && el.scrollTop > 1 ? "true" : "false";
6431
6424
  el.dataset.fadeBottom = overflowing && el.scrollHeight - el.scrollTop - el.clientHeight > 1 ? "true" : "false";
@@ -6671,21 +6664,11 @@ function MessageList({
6671
6664
  rows.push(markerRow(marker));
6672
6665
  }
6673
6666
  return /* @__PURE__ */ jsxs16("div", { class: `${p18}-list-wrap`, children: [
6674
- /* @__PURE__ */ jsxs16(
6675
- "div",
6676
- {
6677
- ref,
6678
- class: `${p18}-list${scrollFade ? ` ${p18}-list--fade` : ""}`,
6679
- role: "log",
6680
- "aria-live": "polite",
6681
- "aria-relevant": "additions text",
6682
- children: [
6683
- loading && messages.value.length === 0 ? /* @__PURE__ */ jsx20("div", { class: `${p18}-list-loading`, role: "status", children: strings.conversationLoading }) : null,
6684
- rows,
6685
- form && !inlineForm ? /* @__PURE__ */ jsx20(FormGate, { form: form.form, strings, onSubmit: form.onSubmit, onSkip: form.onSkip }) : null
6686
- ]
6687
- }
6688
- ),
6667
+ /* @__PURE__ */ jsxs16("div", { ref, class: `${p18}-list ${p18}-list--fade`, role: "log", "aria-live": "polite", "aria-relevant": "additions text", children: [
6668
+ loading && messages.value.length === 0 ? /* @__PURE__ */ jsx20("div", { class: `${p18}-list-loading`, role: "status", children: strings.conversationLoading }) : null,
6669
+ rows,
6670
+ form && !inlineForm ? /* @__PURE__ */ jsx20(FormGate, { form: form.form, strings, onSubmit: form.onSubmit, onSkip: form.onSkip }) : null
6671
+ ] }),
6689
6672
  showJump ? /* @__PURE__ */ jsx20(
6690
6673
  "button",
6691
6674
  {
@@ -7054,7 +7037,6 @@ function PanelContent(props2) {
7054
7037
  showReasoning: options.showReasoning,
7055
7038
  showToolCalls: options.showToolCalls,
7056
7039
  showSources: options.showSources,
7057
- scrollFade: options.scrollFade,
7058
7040
  enableMessageFeedback: options.enableMessageFeedback,
7059
7041
  onFeedback: onMessageFeedback,
7060
7042
  loading: loadingMessages,
@@ -7601,7 +7583,7 @@ function HomeRoot(props2) {
7601
7583
  const [content, setContent] = useState12([]);
7602
7584
  const tagsKey = config.contentTags?.join(",");
7603
7585
  useEffect11(() => {
7604
- if (!config.showRecentConversations) return;
7586
+ if (config.showRecentConversations === false) return;
7605
7587
  let cancelled = false;
7606
7588
  transport.listConversations({ limit: 1 }).then((res) => !cancelled && setRecent(res.conversations?.[0] ?? null)).catch((err) => !cancelled && log14.warn("listConversations (home) failed", { err }));
7607
7589
  return () => {
package/package.json CHANGED
@@ -80,5 +80,5 @@
80
80
  ],
81
81
  "type": "module",
82
82
  "types": "./index.d.ts",
83
- "version": "0.59.2"
83
+ "version": "0.59.4"
84
84
  }
package/schema.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { A as Asset, B as BlocksConfig, C as ConnectionConfig, a as ConnectionConfigPartial, E as Endpoints, H as HandshakeResponse, L as Link, P as PAGE_AREA_SUGGESTIONS, f as PageContext, S as ServerConfig, b as SiteConfig, U as UserContext, W as WidgetConfig, c as WidgetConfigPartial, d as WidgetSettings, e as WidgetSettingsPartial, g as assetSchema, h as blocksConfigSchema, i as connectionConfigPartialSchema, j as connectionConfigSchema, k as cssColorSchema, l as cssLengthSchema, m as endpointsSchema, n as handshakeResponseSchema, o as linkSchema, p as localeSchema, q as pageContextSchema, s as serverConfigSchema, r as siteConfigSchema, u as userContextSchema, t as uuid7Schema, w as widgetConfigPartialSchema, v as widgetConfigSchema, x as widgetSettingsPartialSchema, y as widgetSettingsSchema } from './deployment-BAOjO2dQ.js';
1
+ export { A as Asset, B as BlocksConfig, C as ConnectionConfig, a as ConnectionConfigPartial, E as Endpoints, H as HandshakeResponse, L as Link, P as PAGE_AREA_SUGGESTIONS, f as PageContext, S as ServerConfig, b as SiteConfig, U as UserContext, W as WidgetConfig, c as WidgetConfigPartial, d as WidgetSettings, e as WidgetSettingsPartial, g as assetSchema, h as blocksConfigSchema, i as connectionConfigPartialSchema, j as connectionConfigSchema, k as cssColorSchema, l as cssLengthSchema, m as endpointsSchema, n as handshakeResponseSchema, o as linkSchema, p as localeSchema, q as pageContextSchema, s as serverConfigSchema, r as siteConfigSchema, u as userContextSchema, t as uuid7Schema, w as widgetConfigPartialSchema, v as widgetConfigSchema, x as widgetSettingsPartialSchema, y as widgetSettingsSchema } from './deployment-Bqqyxer1.js';
2
2
  import { z } from 'zod';
3
3
 
4
4
  /**
@@ -56,9 +56,9 @@ declare const presentationSchema: z.ZodObject<{
56
56
  inset: z.ZodOptional<z.ZodString>;
57
57
  initialSize: z.ZodDefault<z.ZodEnum<{
58
58
  fullscreen: "fullscreen";
59
- normal: "normal";
60
59
  expanded: "expanded";
61
60
  auto: "auto";
61
+ normal: "normal";
62
62
  }>>;
63
63
  autoSizeBreakpoint: z.ZodDefault<z.ZodNumber>;
64
64
  }, z.core.$loose>>;
@@ -84,8 +84,7 @@ declare const behaviorSchema: z.ZodObject<{
84
84
  showReasoning: z.ZodDefault<z.ZodBoolean>;
85
85
  showToolCalls: z.ZodDefault<z.ZodBoolean>;
86
86
  showSources: z.ZodDefault<z.ZodBoolean>;
87
- scrollFade: z.ZodDefault<z.ZodBoolean>;
88
- enableMessageFeedback: z.ZodDefault<z.ZodBoolean>;
87
+ disableMessageFeedback: z.ZodDefault<z.ZodBoolean>;
89
88
  }, z.core.$loose>;
90
89
  type Behavior = z.infer<typeof behaviorSchema>;
91
90
 
@@ -242,9 +241,9 @@ type LauncherOptions = z.infer<typeof launcherOptionsSchema>;
242
241
 
243
242
  declare const initialSizeSchema: z.ZodEnum<{
244
243
  fullscreen: "fullscreen";
245
- normal: "normal";
246
244
  expanded: "expanded";
247
245
  auto: "auto";
246
+ normal: "normal";
248
247
  }>;
249
248
  declare const resizeOptionsSchema: z.ZodObject<{
250
249
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -271,9 +270,9 @@ declare const sizeOptionsSchema: z.ZodObject<{
271
270
  inset: z.ZodOptional<z.ZodString>;
272
271
  initialSize: z.ZodDefault<z.ZodEnum<{
273
272
  fullscreen: "fullscreen";
274
- normal: "normal";
275
273
  expanded: "expanded";
276
274
  auto: "auto";
275
+ normal: "normal";
277
276
  }>>;
278
277
  autoSizeBreakpoint: z.ZodDefault<z.ZodNumber>;
279
278
  }, z.core.$loose>;
@@ -298,7 +297,7 @@ declare const toolRefSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
298
297
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
299
298
  }, z.core.$loose>]>;
300
299
  declare const featureFlagsSchema: z.ZodObject<{
301
- files: z.ZodDefault<z.ZodBoolean>;
300
+ disableFileUpload: z.ZodDefault<z.ZodBoolean>;
302
301
  voice: z.ZodDefault<z.ZodEnum<{
303
302
  server: "server";
304
303
  local: "local";
@@ -308,7 +307,7 @@ declare const featureFlagsSchema: z.ZodObject<{
308
307
  code: z.ZodString;
309
308
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
310
309
  }, z.core.$loose>]>>>;
311
- humanInLoop: z.ZodDefault<z.ZodBoolean>;
310
+ disableHumanInLoop: z.ZodDefault<z.ZodBoolean>;
312
311
  }, z.core.$loose>;
313
312
  type FeatureFlags = z.infer<typeof featureFlagsSchema>;
314
313
 
@@ -325,40 +324,40 @@ type FeatureFlags = z.infer<typeof featureFlagsSchema>;
325
324
  */
326
325
 
327
326
  declare const actionNameSchema: z.ZodEnum<{
327
+ close: "close";
328
328
  expand: "expand";
329
329
  fullscreen: "fullscreen";
330
- close: "close";
331
- language: "language";
330
+ clear: "clear";
332
331
  theme: "theme";
332
+ language: "language";
333
333
  textSize: "textSize";
334
334
  history: "history";
335
- clear: "clear";
336
335
  sound: "sound";
337
336
  }>;
338
337
  type ActionName = z.infer<typeof actionNameSchema>;
339
338
  declare const headerActionsSchema: z.ZodArray<z.ZodEnum<{
339
+ close: "close";
340
340
  expand: "expand";
341
341
  fullscreen: "fullscreen";
342
- close: "close";
343
- language: "language";
342
+ clear: "clear";
344
343
  theme: "theme";
344
+ language: "language";
345
345
  textSize: "textSize";
346
346
  history: "history";
347
- clear: "clear";
348
347
  sound: "sound";
349
348
  }>>;
350
349
  type HeaderActions = z.infer<typeof headerActionsSchema>;
351
350
  /** Section wrapper — `actions` list wrapped under `header` in the dashboard form. */
352
351
  declare const headerSchema: z.ZodObject<{
353
352
  actions: z.ZodOptional<z.ZodArray<z.ZodEnum<{
353
+ close: "close";
354
354
  expand: "expand";
355
355
  fullscreen: "fullscreen";
356
- close: "close";
357
- language: "language";
356
+ clear: "clear";
358
357
  theme: "theme";
358
+ language: "language";
359
359
  textSize: "textSize";
360
360
  history: "history";
361
- clear: "clear";
362
361
  sound: "sound";
363
362
  }>>>;
364
363
  }, z.core.$loose>;
@@ -374,33 +373,33 @@ type HeaderOptions = z.infer<typeof headerSchema>;
374
373
  */
375
374
 
376
375
  declare const feedbackEventSchema: z.ZodEnum<{
376
+ voiceStart: "voiceStart";
377
+ voiceStop: "voiceStop";
377
378
  error: "error";
378
379
  messageReceived: "messageReceived";
379
380
  messageSent: "messageSent";
380
- voiceStart: "voiceStart";
381
- voiceStop: "voiceStop";
382
381
  }>;
383
382
  type FeedbackEvent = z.infer<typeof feedbackEventSchema>;
384
383
  declare const soundOptionsSchema: z.ZodObject<{
385
384
  enabled: z.ZodDefault<z.ZodBoolean>;
386
385
  volume: z.ZodDefault<z.ZodNumber>;
387
386
  events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
387
+ voiceStart: "voiceStart";
388
+ voiceStop: "voiceStop";
388
389
  error: "error";
389
390
  messageReceived: "messageReceived";
390
391
  messageSent: "messageSent";
391
- voiceStart: "voiceStart";
392
- voiceStop: "voiceStop";
393
392
  }> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
394
393
  }, z.core.$loose>;
395
394
  type SoundOptions = z.infer<typeof soundOptionsSchema>;
396
395
  declare const hapticsOptionsSchema: z.ZodObject<{
397
396
  enabled: z.ZodDefault<z.ZodBoolean>;
398
397
  events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
398
+ voiceStart: "voiceStart";
399
+ voiceStop: "voiceStop";
399
400
  error: "error";
400
401
  messageReceived: "messageReceived";
401
402
  messageSent: "messageSent";
402
- voiceStart: "voiceStart";
403
- voiceStop: "voiceStop";
404
403
  }> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodArray<z.ZodNumber>]>>>;
405
404
  }, z.core.$loose>;
406
405
  type HapticsOptions = z.infer<typeof hapticsOptionsSchema>;
@@ -409,21 +408,21 @@ declare const feedbackSchema: z.ZodObject<{
409
408
  enabled: z.ZodDefault<z.ZodBoolean>;
410
409
  volume: z.ZodDefault<z.ZodNumber>;
411
410
  events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
411
+ voiceStart: "voiceStart";
412
+ voiceStop: "voiceStop";
412
413
  error: "error";
413
414
  messageReceived: "messageReceived";
414
415
  messageSent: "messageSent";
415
- voiceStart: "voiceStart";
416
- voiceStop: "voiceStop";
417
416
  }> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
418
417
  }, z.core.$loose>>;
419
418
  haptics: z.ZodOptional<z.ZodObject<{
420
419
  enabled: z.ZodDefault<z.ZodBoolean>;
421
420
  events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
421
+ voiceStart: "voiceStart";
422
+ voiceStop: "voiceStop";
422
423
  error: "error";
423
424
  messageReceived: "messageReceived";
424
425
  messageSent: "messageSent";
425
- voiceStart: "voiceStart";
426
- voiceStop: "voiceStop";
427
426
  }> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodArray<z.ZodNumber>]>>>;
428
427
  }, z.core.$loose>>;
429
428
  }, z.core.$loose>;
@@ -858,32 +857,32 @@ type I18nOptions = z.infer<typeof i18nSchema>;
858
857
  */
859
858
 
860
859
  declare const moduleLayoutSchema: z.ZodEnum<{
860
+ home: "home";
861
861
  chat: "chat";
862
862
  help: "help";
863
- home: "home";
864
863
  news: "news";
865
864
  }>;
866
865
  type ModuleLayout = z.infer<typeof moduleLayoutSchema>;
867
866
  declare const moduleSchema: z.ZodObject<{
868
867
  label: z.ZodString;
869
868
  layout: z.ZodEnum<{
869
+ home: "home";
870
870
  chat: "chat";
871
871
  help: "help";
872
- home: "home";
873
872
  news: "news";
874
873
  }>;
875
874
  contentTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
876
875
  id: z.ZodOptional<z.ZodString>;
877
876
  brandName: z.ZodOptional<z.ZodString>;
878
- showGreeting: z.ZodOptional<z.ZodBoolean>;
877
+ hideGreeting: z.ZodOptional<z.ZodBoolean>;
879
878
  greetingText: z.ZodOptional<z.ZodString>;
880
879
  userAvatars: z.ZodOptional<z.ZodArray<z.ZodObject<{
881
880
  name: z.ZodString;
882
881
  avatar: z.ZodOptional<z.ZodString>;
883
882
  role: z.ZodOptional<z.ZodString>;
884
883
  }, z.core.$loose>>>;
885
- showSearchBar: z.ZodOptional<z.ZodBoolean>;
886
- showRecentConversations: z.ZodOptional<z.ZodBoolean>;
884
+ hideSearchBar: z.ZodOptional<z.ZodBoolean>;
885
+ hideRecentConversations: z.ZodOptional<z.ZodBoolean>;
887
886
  status: z.ZodOptional<z.ZodObject<{
888
887
  text: z.ZodOptional<z.ZodString>;
889
888
  level: z.ZodOptional<z.ZodString>;
@@ -895,23 +894,23 @@ type ModuleOptions = z.infer<typeof moduleSchema>;
895
894
  declare const modulesSchema: z.ZodArray<z.ZodObject<{
896
895
  label: z.ZodString;
897
896
  layout: z.ZodEnum<{
897
+ home: "home";
898
898
  chat: "chat";
899
899
  help: "help";
900
- home: "home";
901
900
  news: "news";
902
901
  }>;
903
902
  contentTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
904
903
  id: z.ZodOptional<z.ZodString>;
905
904
  brandName: z.ZodOptional<z.ZodString>;
906
- showGreeting: z.ZodOptional<z.ZodBoolean>;
905
+ hideGreeting: z.ZodOptional<z.ZodBoolean>;
907
906
  greetingText: z.ZodOptional<z.ZodString>;
908
907
  userAvatars: z.ZodOptional<z.ZodArray<z.ZodObject<{
909
908
  name: z.ZodString;
910
909
  avatar: z.ZodOptional<z.ZodString>;
911
910
  role: z.ZodOptional<z.ZodString>;
912
911
  }, z.core.$loose>>>;
913
- showSearchBar: z.ZodOptional<z.ZodBoolean>;
914
- showRecentConversations: z.ZodOptional<z.ZodBoolean>;
912
+ hideSearchBar: z.ZodOptional<z.ZodBoolean>;
913
+ hideRecentConversations: z.ZodOptional<z.ZodBoolean>;
915
914
  status: z.ZodOptional<z.ZodObject<{
916
915
  text: z.ZodOptional<z.ZodString>;
917
916
  level: z.ZodOptional<z.ZodString>;