@helpai/elements 0.51.4 → 0.51.6

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-oSJ2nv2G.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-C_jlXJAe.js';
2
2
  import 'zod';
3
3
 
4
4
  /**
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.51.4" : "0.0.0-dev";
32
+ var ELEMENTS_VERSION = true ? "0.51.6" : "0.0.0-dev";
33
33
  var ELEMENTS_VERSION_PARAM = "_ev";
34
34
 
35
35
  // src/i18n/strings.ts
@@ -2840,6 +2840,9 @@ function wireHasNoVisibleAnswer(w) {
2840
2840
  function isResumeOwnedWireTurn(w) {
2841
2841
  return w.role === "assistant" && w.status != null && !TERMINAL_WIRE_STATUS.has(w.status) && wireHasNoVisibleAnswer(w);
2842
2842
  }
2843
+ function hydrateWireMessages(messages) {
2844
+ return messages.filter((w) => !isResumeOwnedWireTurn(w)).map(fromWireMessage);
2845
+ }
2843
2846
  function fromReactive(m) {
2844
2847
  return {
2845
2848
  id: m.id,
@@ -7776,7 +7779,7 @@ function App({ options, hostElement, bus }) {
7776
7779
  try {
7777
7780
  const [chat, markers] = await Promise.all([transport.loadConversation(conversationId), fetchFormMarkers()]);
7778
7781
  if (isStale()) return;
7779
- const loaded = (chat.messages ?? []).filter((w) => !isResumeOwnedWireTurn(w)).map(fromWireMessage);
7782
+ const loaded = hydrateWireMessages(chat.messages ?? []);
7780
7783
  setFormMarkers(markers);
7781
7784
  const tail = resumeBubbleRef.current ? [resumeBubbleRef.current] : [];
7782
7785
  if (loaded.length || tail.length) {
@@ -8256,16 +8259,20 @@ function App({ options, hostElement, bus }) {
8256
8259
  onComplete: (form, trigger, values, skipped) => {
8257
8260
  log17.info("formSubmit", { formId: form.id, trigger, skipped });
8258
8261
  bus.emit("formSubmit", { formId: form.id, values, skipped });
8259
- setFormMarkers((prev) => [
8260
- ...prev.filter((m) => !(m.formId === form.id && m.outcome === "skipped")),
8261
- {
8262
- key: `local:${form.id}:${Date.now()}`,
8263
- formId: form.id,
8264
- outcome: skipped ? "skipped" : "submitted",
8265
- createdAt: Date.now(),
8266
- ...skipped ? {} : { values }
8267
- }
8268
- ]);
8262
+ setFormMarkers((prev) => {
8263
+ const priorSkip = prev.find((m) => m.formId === form.id && m.outcome === "skipped");
8264
+ const createdAt = priorSkip?.createdAt ?? Date.now();
8265
+ return [
8266
+ ...prev.filter((m) => !(m.formId === form.id && m.outcome === "skipped")),
8267
+ {
8268
+ key: `local:${form.id}:${createdAt}`,
8269
+ formId: form.id,
8270
+ outcome: skipped ? "skipped" : "submitted",
8271
+ createdAt,
8272
+ ...skipped ? {} : { values }
8273
+ }
8274
+ ];
8275
+ });
8269
8276
  const activeConversationId = conversationIdSig.value ?? uuid7();
8270
8277
  if (!conversationIdSig.value) {
8271
8278
  conversationIdSig.value = activeConversationId;
@@ -8486,7 +8493,7 @@ function App({ options, hostElement, bus }) {
8486
8493
  transport.loadConversation(targetConversationId),
8487
8494
  fetchFormMarkers(targetConversationId)
8488
8495
  ]);
8489
- const hydrated = res.messages.filter((w) => !isResumeOwnedWireTurn(w)).map(fromWireMessage);
8496
+ const hydrated = hydrateWireMessages(res.messages);
8490
8497
  batch(() => {
8491
8498
  messagesSig.value = withWelcomeRows(hydrated, markers);
8492
8499
  conversationIdSig.value = res.conversationId;
package/package.json CHANGED
@@ -80,5 +80,5 @@
80
80
  ],
81
81
  "type": "module",
82
82
  "types": "./index.d.ts",
83
- "version": "0.51.4"
83
+ "version": "0.51.6"
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-oSJ2nv2G.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-C_jlXJAe.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>>;
@@ -240,9 +240,9 @@ type LauncherOptions = z.infer<typeof launcherOptionsSchema>;
240
240
 
241
241
  declare const initialSizeSchema: z.ZodEnum<{
242
242
  fullscreen: "fullscreen";
243
- normal: "normal";
244
243
  expanded: "expanded";
245
244
  auto: "auto";
245
+ normal: "normal";
246
246
  }>;
247
247
  declare const resizeOptionsSchema: z.ZodObject<{
248
248
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -269,9 +269,9 @@ declare const sizeOptionsSchema: z.ZodObject<{
269
269
  inset: z.ZodOptional<z.ZodString>;
270
270
  initialSize: z.ZodDefault<z.ZodEnum<{
271
271
  fullscreen: "fullscreen";
272
- normal: "normal";
273
272
  expanded: "expanded";
274
273
  auto: "auto";
274
+ normal: "normal";
275
275
  }>>;
276
276
  autoSizeBreakpoint: z.ZodDefault<z.ZodNumber>;
277
277
  }, z.core.$loose>;
@@ -323,40 +323,40 @@ type FeatureFlags = z.infer<typeof featureFlagsSchema>;
323
323
  */
324
324
 
325
325
  declare const actionNameSchema: z.ZodEnum<{
326
+ close: "close";
326
327
  expand: "expand";
327
328
  fullscreen: "fullscreen";
328
- close: "close";
329
- language: "language";
329
+ clear: "clear";
330
330
  theme: "theme";
331
+ language: "language";
331
332
  textSize: "textSize";
332
333
  history: "history";
333
- clear: "clear";
334
334
  sound: "sound";
335
335
  }>;
336
336
  type ActionName = z.infer<typeof actionNameSchema>;
337
337
  declare const headerActionsSchema: z.ZodArray<z.ZodEnum<{
338
+ close: "close";
338
339
  expand: "expand";
339
340
  fullscreen: "fullscreen";
340
- close: "close";
341
- language: "language";
341
+ clear: "clear";
342
342
  theme: "theme";
343
+ language: "language";
343
344
  textSize: "textSize";
344
345
  history: "history";
345
- clear: "clear";
346
346
  sound: "sound";
347
347
  }>>;
348
348
  type HeaderActions = z.infer<typeof headerActionsSchema>;
349
349
  /** Section wrapper — `actions` list wrapped under `header` in the dashboard form. */
350
350
  declare const headerSchema: z.ZodObject<{
351
351
  actions: z.ZodOptional<z.ZodArray<z.ZodEnum<{
352
+ close: "close";
352
353
  expand: "expand";
353
354
  fullscreen: "fullscreen";
354
- close: "close";
355
- language: "language";
355
+ clear: "clear";
356
356
  theme: "theme";
357
+ language: "language";
357
358
  textSize: "textSize";
358
359
  history: "history";
359
- clear: "clear";
360
360
  sound: "sound";
361
361
  }>>>;
362
362
  }, z.core.$loose>;
@@ -372,33 +372,33 @@ type HeaderOptions = z.infer<typeof headerSchema>;
372
372
  */
373
373
 
374
374
  declare const feedbackEventSchema: z.ZodEnum<{
375
+ voiceStart: "voiceStart";
376
+ voiceStop: "voiceStop";
375
377
  error: "error";
376
378
  messageReceived: "messageReceived";
377
379
  messageSent: "messageSent";
378
- voiceStart: "voiceStart";
379
- voiceStop: "voiceStop";
380
380
  }>;
381
381
  type FeedbackEvent = z.infer<typeof feedbackEventSchema>;
382
382
  declare const soundOptionsSchema: z.ZodObject<{
383
383
  enabled: z.ZodDefault<z.ZodBoolean>;
384
384
  volume: z.ZodDefault<z.ZodNumber>;
385
385
  events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
386
+ voiceStart: "voiceStart";
387
+ voiceStop: "voiceStop";
386
388
  error: "error";
387
389
  messageReceived: "messageReceived";
388
390
  messageSent: "messageSent";
389
- voiceStart: "voiceStart";
390
- voiceStop: "voiceStop";
391
391
  }> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
392
392
  }, z.core.$loose>;
393
393
  type SoundOptions = z.infer<typeof soundOptionsSchema>;
394
394
  declare const hapticsOptionsSchema: z.ZodObject<{
395
395
  enabled: z.ZodDefault<z.ZodBoolean>;
396
396
  events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
397
+ voiceStart: "voiceStart";
398
+ voiceStop: "voiceStop";
397
399
  error: "error";
398
400
  messageReceived: "messageReceived";
399
401
  messageSent: "messageSent";
400
- voiceStart: "voiceStart";
401
- voiceStop: "voiceStop";
402
402
  }> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodArray<z.ZodNumber>]>>>;
403
403
  }, z.core.$loose>;
404
404
  type HapticsOptions = z.infer<typeof hapticsOptionsSchema>;
@@ -407,21 +407,21 @@ declare const feedbackSchema: z.ZodObject<{
407
407
  enabled: z.ZodDefault<z.ZodBoolean>;
408
408
  volume: z.ZodDefault<z.ZodNumber>;
409
409
  events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
410
+ voiceStart: "voiceStart";
411
+ voiceStop: "voiceStop";
410
412
  error: "error";
411
413
  messageReceived: "messageReceived";
412
414
  messageSent: "messageSent";
413
- voiceStart: "voiceStart";
414
- voiceStop: "voiceStop";
415
415
  }> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
416
416
  }, z.core.$loose>>;
417
417
  haptics: z.ZodOptional<z.ZodObject<{
418
418
  enabled: z.ZodDefault<z.ZodBoolean>;
419
419
  events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
420
+ voiceStart: "voiceStart";
421
+ voiceStop: "voiceStop";
420
422
  error: "error";
421
423
  messageReceived: "messageReceived";
422
424
  messageSent: "messageSent";
423
- voiceStart: "voiceStart";
424
- voiceStop: "voiceStop";
425
425
  }> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodArray<z.ZodNumber>]>>>;
426
426
  }, z.core.$loose>>;
427
427
  }, z.core.$loose>;
@@ -856,18 +856,18 @@ type I18nOptions = z.infer<typeof i18nSchema>;
856
856
  */
857
857
 
858
858
  declare const moduleLayoutSchema: z.ZodEnum<{
859
+ home: "home";
859
860
  chat: "chat";
860
861
  help: "help";
861
- home: "home";
862
862
  news: "news";
863
863
  }>;
864
864
  type ModuleLayout = z.infer<typeof moduleLayoutSchema>;
865
865
  declare const moduleSchema: z.ZodObject<{
866
866
  label: z.ZodString;
867
867
  layout: z.ZodEnum<{
868
+ home: "home";
868
869
  chat: "chat";
869
870
  help: "help";
870
- home: "home";
871
871
  news: "news";
872
872
  }>;
873
873
  contentTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -893,9 +893,9 @@ type ModuleOptions = z.infer<typeof moduleSchema>;
893
893
  declare const modulesSchema: z.ZodArray<z.ZodObject<{
894
894
  label: z.ZodString;
895
895
  layout: z.ZodEnum<{
896
+ home: "home";
896
897
  chat: "chat";
897
898
  help: "help";
898
- home: "home";
899
899
  news: "news";
900
900
  }>;
901
901
  contentTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
package/web-component.mjs CHANGED
@@ -1794,7 +1794,7 @@ function createAuth(opts) {
1794
1794
  }
1795
1795
 
1796
1796
  // src/core/version.ts
1797
- var ELEMENTS_VERSION = true ? "0.51.4" : "0.0.0-dev";
1797
+ var ELEMENTS_VERSION = true ? "0.51.6" : "0.0.0-dev";
1798
1798
  var ELEMENTS_VERSION_PARAM = "_ev";
1799
1799
 
1800
1800
  // src/stream/types.ts
@@ -2799,6 +2799,9 @@ function wireHasNoVisibleAnswer(w) {
2799
2799
  function isResumeOwnedWireTurn(w) {
2800
2800
  return w.role === "assistant" && w.status != null && !TERMINAL_WIRE_STATUS.has(w.status) && wireHasNoVisibleAnswer(w);
2801
2801
  }
2802
+ function hydrateWireMessages(messages) {
2803
+ return messages.filter((w) => !isResumeOwnedWireTurn(w)).map(fromWireMessage);
2804
+ }
2802
2805
  function fromReactive(m) {
2803
2806
  return {
2804
2807
  id: m.id,
@@ -7735,7 +7738,7 @@ function App({ options, hostElement, bus }) {
7735
7738
  try {
7736
7739
  const [chat, markers] = await Promise.all([transport.loadConversation(conversationId), fetchFormMarkers()]);
7737
7740
  if (isStale()) return;
7738
- const loaded = (chat.messages ?? []).filter((w) => !isResumeOwnedWireTurn(w)).map(fromWireMessage);
7741
+ const loaded = hydrateWireMessages(chat.messages ?? []);
7739
7742
  setFormMarkers(markers);
7740
7743
  const tail = resumeBubbleRef.current ? [resumeBubbleRef.current] : [];
7741
7744
  if (loaded.length || tail.length) {
@@ -8215,16 +8218,20 @@ function App({ options, hostElement, bus }) {
8215
8218
  onComplete: (form, trigger, values, skipped) => {
8216
8219
  log16.info("formSubmit", { formId: form.id, trigger, skipped });
8217
8220
  bus.emit("formSubmit", { formId: form.id, values, skipped });
8218
- setFormMarkers((prev) => [
8219
- ...prev.filter((m) => !(m.formId === form.id && m.outcome === "skipped")),
8220
- {
8221
- key: `local:${form.id}:${Date.now()}`,
8222
- formId: form.id,
8223
- outcome: skipped ? "skipped" : "submitted",
8224
- createdAt: Date.now(),
8225
- ...skipped ? {} : { values }
8226
- }
8227
- ]);
8221
+ setFormMarkers((prev) => {
8222
+ const priorSkip = prev.find((m) => m.formId === form.id && m.outcome === "skipped");
8223
+ const createdAt = priorSkip?.createdAt ?? Date.now();
8224
+ return [
8225
+ ...prev.filter((m) => !(m.formId === form.id && m.outcome === "skipped")),
8226
+ {
8227
+ key: `local:${form.id}:${createdAt}`,
8228
+ formId: form.id,
8229
+ outcome: skipped ? "skipped" : "submitted",
8230
+ createdAt,
8231
+ ...skipped ? {} : { values }
8232
+ }
8233
+ ];
8234
+ });
8228
8235
  const activeConversationId = conversationIdSig.value ?? uuid7();
8229
8236
  if (!conversationIdSig.value) {
8230
8237
  conversationIdSig.value = activeConversationId;
@@ -8445,7 +8452,7 @@ function App({ options, hostElement, bus }) {
8445
8452
  transport.loadConversation(targetConversationId),
8446
8453
  fetchFormMarkers(targetConversationId)
8447
8454
  ]);
8448
- const hydrated = res.messages.filter((w) => !isResumeOwnedWireTurn(w)).map(fromWireMessage);
8455
+ const hydrated = hydrateWireMessages(res.messages);
8449
8456
  batch(() => {
8450
8457
  messagesSig.value = withWelcomeRows(hydrated, markers);
8451
8458
  conversationIdSig.value = res.conversationId;