@sonordev/site-kit 1.3.2 → 1.3.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.
Files changed (97) hide show
  1. package/dist/AnalyticsProvider-SC4YOBFI.js +25 -0
  2. package/dist/{AnalyticsProvider-PIUZBIOK.js.map → AnalyticsProvider-SC4YOBFI.js.map} +1 -1
  3. package/dist/AnalyticsProvider-ZVZ2SNZR.mjs +4 -0
  4. package/dist/{AnalyticsProvider-FX5TLRQC.mjs.map → AnalyticsProvider-ZVZ2SNZR.mjs.map} +1 -1
  5. package/dist/EngageWidget-RWBCI4RM.mjs +4 -0
  6. package/dist/{EngageWidget-R7YFQBS5.mjs.map → EngageWidget-RWBCI4RM.mjs.map} +1 -1
  7. package/dist/EngageWidget-T2S5WUMJ.js +13 -0
  8. package/dist/{EngageWidget-I4AZTKFY.js.map → EngageWidget-T2S5WUMJ.js.map} +1 -1
  9. package/dist/SitemapSync-6I5JTLER.js +13 -0
  10. package/dist/{SitemapSync-4FRADGXF.js.map → SitemapSync-6I5JTLER.js.map} +1 -1
  11. package/dist/SitemapSync-6L45DHRH.mjs +4 -0
  12. package/dist/{SitemapSync-IJRJ32Y3.mjs.map → SitemapSync-6L45DHRH.mjs.map} +1 -1
  13. package/dist/analytics/index.d.mts +6 -1
  14. package/dist/analytics/index.d.ts +6 -1
  15. package/dist/analytics/index.js +19 -69
  16. package/dist/analytics/index.js.map +1 -1
  17. package/dist/analytics/index.mjs +2 -67
  18. package/dist/analytics/index.mjs.map +1 -1
  19. package/dist/{chunk-NZHVGBAF.js → chunk-5DAALKHB.js} +5 -5
  20. package/dist/{chunk-NZHVGBAF.js.map → chunk-5DAALKHB.js.map} +1 -1
  21. package/dist/chunk-AU4GIQQU.mjs +69 -0
  22. package/dist/chunk-AU4GIQQU.mjs.map +1 -0
  23. package/dist/{chunk-3QQDXQJE.js → chunk-DK2WNYQA.js} +7 -7
  24. package/dist/chunk-DK2WNYQA.js.map +1 -0
  25. package/dist/{chunk-TK76624B.mjs → chunk-FP66BKW6.mjs} +6 -3
  26. package/dist/chunk-FP66BKW6.mjs.map +1 -0
  27. package/dist/chunk-FRN4JQXL.js +72 -0
  28. package/dist/chunk-FRN4JQXL.js.map +1 -0
  29. package/dist/{chunk-JAXKHEOM.js → chunk-GTLIGQDM.js} +6 -2
  30. package/dist/chunk-GTLIGQDM.js.map +1 -0
  31. package/dist/{chunk-EGZEZR2I.mjs → chunk-HNCSTGVK.mjs} +3 -4
  32. package/dist/chunk-HNCSTGVK.mjs.map +1 -0
  33. package/dist/{chunk-TLHRV3LZ.js → chunk-MSBWUOIU.js} +176 -2
  34. package/dist/chunk-MSBWUOIU.js.map +1 -0
  35. package/dist/{chunk-5TTTX6NN.mjs → chunk-RNOXXICL.mjs} +5 -5
  36. package/dist/{chunk-5TTTX6NN.mjs.map → chunk-RNOXXICL.mjs.map} +1 -1
  37. package/dist/{chunk-6YXRLC6W.mjs → chunk-SQXUPIMK.mjs} +176 -3
  38. package/dist/chunk-SQXUPIMK.mjs.map +1 -0
  39. package/dist/{chunk-JB6I5PYV.js → chunk-V2WSPLCN.js} +2 -4
  40. package/dist/chunk-V2WSPLCN.js.map +1 -0
  41. package/dist/{chunk-GADRLCYH.mjs → chunk-VZMRZQ2D.mjs} +7 -7
  42. package/dist/chunk-VZMRZQ2D.mjs.map +1 -0
  43. package/dist/{chunk-W2TZYAUL.mjs → chunk-WW2DKGBM.mjs} +3 -4
  44. package/dist/chunk-WW2DKGBM.mjs.map +1 -0
  45. package/dist/{chunk-UOBK3SSF.js → chunk-YBQT623Y.js} +2 -4
  46. package/dist/chunk-YBQT623Y.js.map +1 -0
  47. package/dist/commerce/index.d.mts +11 -4
  48. package/dist/commerce/index.d.ts +11 -4
  49. package/dist/commerce/index.js +48 -42
  50. package/dist/commerce/index.mjs +3 -1
  51. package/dist/commerce/server.d.mts +1 -1
  52. package/dist/commerce/server.d.ts +1 -1
  53. package/dist/engage/index.d.mts +35 -2
  54. package/dist/engage/index.d.ts +35 -2
  55. package/dist/engage/index.js +32 -5
  56. package/dist/engage/index.js.map +1 -1
  57. package/dist/engage/index.mjs +30 -1
  58. package/dist/engage/index.mjs.map +1 -1
  59. package/dist/forms/index.js +20 -1
  60. package/dist/forms/index.js.map +1 -1
  61. package/dist/forms/index.mjs +20 -1
  62. package/dist/forms/index.mjs.map +1 -1
  63. package/dist/index.d.mts +2 -2
  64. package/dist/index.d.ts +2 -2
  65. package/dist/index.js +45 -44
  66. package/dist/index.js.map +1 -1
  67. package/dist/index.mjs +6 -5
  68. package/dist/index.mjs.map +1 -1
  69. package/dist/layout/client.js +2 -2
  70. package/dist/layout/client.mjs +1 -1
  71. package/dist/layout/index.js +2 -2
  72. package/dist/layout/index.mjs +1 -1
  73. package/dist/seo/index.js +2 -2
  74. package/dist/seo/index.mjs +1 -1
  75. package/dist/sync/index.js +13 -19
  76. package/dist/sync/index.mjs +1 -1
  77. package/dist/{types-CGlnp43R.d.mts → types-CnIJF-kB.d.mts} +12 -1
  78. package/dist/{types-CGlnp43R.d.ts → types-CnIJF-kB.d.ts} +12 -1
  79. package/dist/{useEventModal-BVTx69XE.d.mts → useEventModal-BFhhrNfN.d.mts} +1 -1
  80. package/dist/{useEventModal-Dx1dItTJ.d.ts → useEventModal-Cp5mbphv.d.ts} +1 -1
  81. package/package.json +1 -1
  82. package/dist/AnalyticsProvider-FX5TLRQC.mjs +0 -4
  83. package/dist/AnalyticsProvider-PIUZBIOK.js +0 -21
  84. package/dist/EngageWidget-I4AZTKFY.js +0 -13
  85. package/dist/EngageWidget-R7YFQBS5.mjs +0 -4
  86. package/dist/SitemapSync-4FRADGXF.js +0 -19
  87. package/dist/SitemapSync-IJRJ32Y3.mjs +0 -4
  88. package/dist/chunk-3QQDXQJE.js.map +0 -1
  89. package/dist/chunk-6YXRLC6W.mjs.map +0 -1
  90. package/dist/chunk-EGZEZR2I.mjs.map +0 -1
  91. package/dist/chunk-GADRLCYH.mjs.map +0 -1
  92. package/dist/chunk-JAXKHEOM.js.map +0 -1
  93. package/dist/chunk-JB6I5PYV.js.map +0 -1
  94. package/dist/chunk-TK76624B.mjs.map +0 -1
  95. package/dist/chunk-TLHRV3LZ.js.map +0 -1
  96. package/dist/chunk-UOBK3SSF.js.map +0 -1
  97. package/dist/chunk-W2TZYAUL.mjs.map +0 -1
@@ -27,7 +27,40 @@ interface ChatWidgetProps {
27
27
  apiUrl?: string;
28
28
  /** Signal API base URL for direct AI chat (no Portal passthrough) */
29
29
  signalUrl?: string;
30
+ /** Clickable question chips shown in the welcome screen before the first message */
31
+ suggested_questions?: string[];
32
+ /** Name shown in the chat header for the AI assistant (overrides API config) */
33
+ assistant_name?: string;
34
+ /** Welcome message shown when chat first opens (overrides API config) */
35
+ welcome_message?: string;
36
+ /** Avatar URL for the assistant shown in the header */
37
+ assistant_avatar?: string;
30
38
  }
31
- declare function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, signalUrl: propSignalUrl }: ChatWidgetProps): react_jsx_runtime.JSX.Element;
39
+ declare function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, signalUrl: propSignalUrl, suggested_questions: propSuggestedQuestions, assistant_name: propAssistantName, welcome_message: propWelcomeMessage, assistant_avatar: propAssistantAvatar }: ChatWidgetProps): react_jsx_runtime.JSX.Element;
32
40
 
33
- export { ChatConfig, ChatWidget, EngageWidget };
41
+ /**
42
+ * @sonordev/site-kit/engage - Echo Public Configuration
43
+ *
44
+ * Helpers for configuring the ChatWidget with Echo-specific defaults
45
+ * for the Sonor public site (sonor.io).
46
+ */
47
+ interface EchoPublicConfig {
48
+ signalUrl?: string;
49
+ welcomeMessage?: string;
50
+ suggestedQuestions?: string[];
51
+ brandColor?: string;
52
+ assistantName?: string;
53
+ assistantAvatar?: string;
54
+ }
55
+ declare const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig;
56
+ declare function getEchoWidgetProps(config?: EchoPublicConfig): {
57
+ signal_enabled: boolean;
58
+ signal_url: string | undefined;
59
+ welcome_message: string | undefined;
60
+ suggested_questions: string[] | undefined;
61
+ brand_color: string | undefined;
62
+ assistant_name: string | undefined;
63
+ assistant_avatar: string | undefined;
64
+ };
65
+
66
+ export { ChatConfig, ChatWidget, type EchoPublicConfig, EngageWidget, SONOR_PUBLIC_ECHO_DEFAULTS, getEchoWidgetProps };
@@ -1,22 +1,49 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunk3QQDXQJE_js = require('../chunk-3QQDXQJE.js');
4
+ var chunkDK2WNYQA_js = require('../chunk-DK2WNYQA.js');
5
5
  require('../chunk-ZSMWDLMK.js');
6
6
 
7
-
7
+ // src/engage/echo-config.ts
8
+ var SONOR_PUBLIC_ECHO_DEFAULTS = {
9
+ signalUrl: "https://signal.sonor.io",
10
+ welcomeMessage: "Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?",
11
+ suggestedQuestions: [
12
+ "What does Sonor do?",
13
+ "How does Signal AI work?",
14
+ "What are the pricing plans?",
15
+ "Can I migrate from HubSpot?",
16
+ "How does the SEO module work?"
17
+ ],
18
+ brandColor: "#14b8a6",
19
+ // teal-500
20
+ assistantName: "Echo"
21
+ };
22
+ function getEchoWidgetProps(config = SONOR_PUBLIC_ECHO_DEFAULTS) {
23
+ return {
24
+ signal_enabled: true,
25
+ signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,
26
+ welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,
27
+ suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,
28
+ brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,
29
+ assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,
30
+ assistant_avatar: config.assistantAvatar
31
+ };
32
+ }
8
33
 
9
34
  Object.defineProperty(exports, "ChatWidget", {
10
35
  enumerable: true,
11
- get: function () { return chunk3QQDXQJE_js.ChatWidget; }
36
+ get: function () { return chunkDK2WNYQA_js.ChatWidget; }
12
37
  });
13
38
  Object.defineProperty(exports, "DesignRenderer", {
14
39
  enumerable: true,
15
- get: function () { return chunk3QQDXQJE_js.DesignRenderer; }
40
+ get: function () { return chunkDK2WNYQA_js.DesignRenderer; }
16
41
  });
17
42
  Object.defineProperty(exports, "EngageWidget", {
18
43
  enumerable: true,
19
- get: function () { return chunk3QQDXQJE_js.EngageWidget; }
44
+ get: function () { return chunkDK2WNYQA_js.EngageWidget; }
20
45
  });
46
+ exports.SONOR_PUBLIC_ECHO_DEFAULTS = SONOR_PUBLIC_ECHO_DEFAULTS;
47
+ exports.getEchoWidgetProps = getEchoWidgetProps;
21
48
  //# sourceMappingURL=index.js.map
22
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
1
+ {"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":";;;;;;AAgBO,IAAM,0BAAA,GAA+C;AAAA,EAC1D,SAAA,EAAW,yBAAA;AAAA,EACX,cAAA,EACE,0KAAA;AAAA,EACF,kBAAA,EAAoB;AAAA,IAClB,qBAAA;AAAA,IACA,0BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,UAAA,EAAY,SAAA;AAAA;AAAA,EACZ,aAAA,EAAe;AACjB;AAEO,SAAS,kBAAA,CAAmB,SAA2B,0BAAA,EAA4B;AACxF,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,IAAA;AAAA,IAChB,UAAA,EAAY,MAAA,CAAO,SAAA,IAAa,0BAAA,CAA2B,SAAA;AAAA,IAC3D,eAAA,EAAiB,MAAA,CAAO,cAAA,IAAkB,0BAAA,CAA2B,cAAA;AAAA,IACrE,mBAAA,EAAqB,MAAA,CAAO,kBAAA,IAAsB,0BAAA,CAA2B,kBAAA;AAAA,IAC7E,WAAA,EAAa,MAAA,CAAO,UAAA,IAAc,0BAAA,CAA2B,UAAA;AAAA,IAC7D,cAAA,EAAgB,MAAA,CAAO,aAAA,IAAiB,0BAAA,CAA2B,aAAA;AAAA,IACnE,kBAAkB,MAAA,CAAO;AAAA,GAC3B;AACF","file":"index.js","sourcesContent":["/**\n * @sonordev/site-kit/engage - Echo Public Configuration\n *\n * Helpers for configuring the ChatWidget with Echo-specific defaults\n * for the Sonor public site (sonor.io).\n */\n\nexport interface EchoPublicConfig {\n signalUrl?: string\n welcomeMessage?: string\n suggestedQuestions?: string[]\n brandColor?: string\n assistantName?: string\n assistantAvatar?: string\n}\n\nexport const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig = {\n signalUrl: 'https://signal.sonor.io',\n welcomeMessage:\n \"Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?\",\n suggestedQuestions: [\n 'What does Sonor do?',\n 'How does Signal AI work?',\n 'What are the pricing plans?',\n 'Can I migrate from HubSpot?',\n 'How does the SEO module work?',\n ],\n brandColor: '#14b8a6', // teal-500\n assistantName: 'Echo',\n}\n\nexport function getEchoWidgetProps(config: EchoPublicConfig = SONOR_PUBLIC_ECHO_DEFAULTS) {\n return {\n signal_enabled: true,\n signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,\n welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,\n suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,\n brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,\n assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,\n assistant_avatar: config.assistantAvatar,\n }\n}\n"]}
@@ -1,5 +1,34 @@
1
1
  'use client';
2
- export { ChatWidget, DesignRenderer, EngageWidget } from '../chunk-GADRLCYH.mjs';
2
+ export { ChatWidget, DesignRenderer, EngageWidget } from '../chunk-VZMRZQ2D.mjs';
3
3
  import '../chunk-4XPGGLVP.mjs';
4
+
5
+ // src/engage/echo-config.ts
6
+ var SONOR_PUBLIC_ECHO_DEFAULTS = {
7
+ signalUrl: "https://signal.sonor.io",
8
+ welcomeMessage: "Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?",
9
+ suggestedQuestions: [
10
+ "What does Sonor do?",
11
+ "How does Signal AI work?",
12
+ "What are the pricing plans?",
13
+ "Can I migrate from HubSpot?",
14
+ "How does the SEO module work?"
15
+ ],
16
+ brandColor: "#14b8a6",
17
+ // teal-500
18
+ assistantName: "Echo"
19
+ };
20
+ function getEchoWidgetProps(config = SONOR_PUBLIC_ECHO_DEFAULTS) {
21
+ return {
22
+ signal_enabled: true,
23
+ signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,
24
+ welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,
25
+ suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,
26
+ brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,
27
+ assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,
28
+ assistant_avatar: config.assistantAvatar
29
+ };
30
+ }
31
+
32
+ export { SONOR_PUBLIC_ECHO_DEFAULTS, getEchoWidgetProps };
4
33
  //# sourceMappingURL=index.mjs.map
5
34
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
1
+ {"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":";;;;AAgBO,IAAM,0BAAA,GAA+C;AAAA,EAC1D,SAAA,EAAW,yBAAA;AAAA,EACX,cAAA,EACE,0KAAA;AAAA,EACF,kBAAA,EAAoB;AAAA,IAClB,qBAAA;AAAA,IACA,0BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,UAAA,EAAY,SAAA;AAAA;AAAA,EACZ,aAAA,EAAe;AACjB;AAEO,SAAS,kBAAA,CAAmB,SAA2B,0BAAA,EAA4B;AACxF,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,IAAA;AAAA,IAChB,UAAA,EAAY,MAAA,CAAO,SAAA,IAAa,0BAAA,CAA2B,SAAA;AAAA,IAC3D,eAAA,EAAiB,MAAA,CAAO,cAAA,IAAkB,0BAAA,CAA2B,cAAA;AAAA,IACrE,mBAAA,EAAqB,MAAA,CAAO,kBAAA,IAAsB,0BAAA,CAA2B,kBAAA;AAAA,IAC7E,WAAA,EAAa,MAAA,CAAO,UAAA,IAAc,0BAAA,CAA2B,UAAA;AAAA,IAC7D,cAAA,EAAgB,MAAA,CAAO,aAAA,IAAiB,0BAAA,CAA2B,aAAA;AAAA,IACnE,kBAAkB,MAAA,CAAO;AAAA,GAC3B;AACF","file":"index.mjs","sourcesContent":["/**\n * @sonordev/site-kit/engage - Echo Public Configuration\n *\n * Helpers for configuring the ChatWidget with Echo-specific defaults\n * for the Sonor public site (sonor.io).\n */\n\nexport interface EchoPublicConfig {\n signalUrl?: string\n welcomeMessage?: string\n suggestedQuestions?: string[]\n brandColor?: string\n assistantName?: string\n assistantAvatar?: string\n}\n\nexport const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig = {\n signalUrl: 'https://signal.sonor.io',\n welcomeMessage:\n \"Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?\",\n suggestedQuestions: [\n 'What does Sonor do?',\n 'How does Signal AI work?',\n 'What are the pricing plans?',\n 'Can I migrate from HubSpot?',\n 'How does the SEO module work?',\n ],\n brandColor: '#14b8a6', // teal-500\n assistantName: 'Echo',\n}\n\nexport function getEchoWidgetProps(config: EchoPublicConfig = SONOR_PUBLIC_ECHO_DEFAULTS) {\n return {\n signal_enabled: true,\n signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,\n welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,\n suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,\n brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,\n assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,\n assistant_avatar: config.assistantAvatar,\n }\n}\n"]}
@@ -154,7 +154,26 @@ function useFormTracking({
154
154
  if (!response.ok) {
155
155
  throw new Error(`HTTP ${response.status}: ${response.statusText}`);
156
156
  }
157
- if (debug) console.log("[Forms] Form completed (conversion auto-logged via trigger)");
157
+ if (debug) console.log("[Forms] Form completed, recording conversion");
158
+ try {
159
+ await fetch(`${apiUrl}/api/public/analytics/conversion`, {
160
+ method: "POST",
161
+ headers: {
162
+ "Content-Type": "application/json",
163
+ "x-api-key": apiKey
164
+ },
165
+ body: JSON.stringify({
166
+ sessionId: sessionIdRef.current,
167
+ conversionType: "form_submission",
168
+ metadata: { formId, analyticsId: analyticsIdRef.current },
169
+ pagePath: typeof window !== "undefined" ? window.location.pathname : "/",
170
+ referrer: typeof document !== "undefined" ? document.referrer || null : null,
171
+ deviceType: getDeviceType()
172
+ })
173
+ });
174
+ } catch (convErr) {
175
+ if (debug) console.error("[Forms] Error recording conversion:", convErr);
176
+ }
158
177
  } catch (error) {
159
178
  if (debug) console.error("[Forms] Error completing tracking:", error);
160
179
  }