@uptrademedia/site-kit 1.2.0 → 1.2.1

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 (93) hide show
  1. package/dist/analytics/index.d.mts +2 -2
  2. package/dist/analytics/index.d.ts +2 -2
  3. package/dist/analytics/index.js +6 -6
  4. package/dist/analytics/index.mjs +2 -2
  5. package/dist/{api-l44k92vp.d.mts → api-CWtoFJCO.d.mts} +1 -1
  6. package/dist/{api-l44k92vp.d.ts → api-CWtoFJCO.d.ts} +1 -1
  7. package/dist/blog/index.d.mts +2 -2
  8. package/dist/blog/index.d.ts +2 -2
  9. package/dist/blog/server.d.mts +1 -1
  10. package/dist/blog/server.d.ts +1 -1
  11. package/dist/{chunk-HEUULOSC.js → chunk-2MNLOYDD.js} +3 -3
  12. package/dist/{chunk-HEUULOSC.js.map → chunk-2MNLOYDD.js.map} +1 -1
  13. package/dist/{chunk-3LOFIO77.mjs → chunk-44OMJFCG.mjs} +187 -193
  14. package/dist/chunk-44OMJFCG.mjs.map +1 -0
  15. package/dist/{chunk-C5TQLU5U.js → chunk-47ZS7MKZ.js} +101 -78
  16. package/dist/chunk-47ZS7MKZ.js.map +1 -0
  17. package/dist/{chunk-VFJ3NNCY.js → chunk-DERI27QC.js} +187 -193
  18. package/dist/chunk-DERI27QC.js.map +1 -0
  19. package/dist/{chunk-RLO3QJ65.mjs → chunk-FHTQUJ4M.mjs} +100 -78
  20. package/dist/chunk-FHTQUJ4M.mjs.map +1 -0
  21. package/dist/{chunk-HGTTGJVZ.js → chunk-LBHEVL6U.js} +3 -3
  22. package/dist/{chunk-HGTTGJVZ.js.map → chunk-LBHEVL6U.js.map} +1 -1
  23. package/dist/{chunk-YT5SBY5W.mjs → chunk-MLJXNFUO.mjs} +3 -3
  24. package/dist/{chunk-YT5SBY5W.mjs.map → chunk-MLJXNFUO.mjs.map} +1 -1
  25. package/dist/{chunk-OW2C3ATV.mjs → chunk-R6V7DQ24.mjs} +3 -3
  26. package/dist/{chunk-OW2C3ATV.mjs.map → chunk-R6V7DQ24.mjs.map} +1 -1
  27. package/dist/cli/index.js +706 -706
  28. package/dist/cli/index.js.map +1 -1
  29. package/dist/cli/index.mjs +700 -700
  30. package/dist/cli/index.mjs.map +1 -1
  31. package/dist/commerce/index.d.mts +3 -3
  32. package/dist/commerce/index.d.ts +3 -3
  33. package/dist/commerce/server.d.mts +1 -1
  34. package/dist/commerce/server.d.ts +1 -1
  35. package/dist/engage/index.d.mts +2 -2
  36. package/dist/engage/index.d.ts +2 -2
  37. package/dist/engage/index.js +4 -4
  38. package/dist/engage/index.mjs +1 -1
  39. package/dist/images/index.d.mts +1 -1
  40. package/dist/images/index.d.ts +1 -1
  41. package/dist/index.d.mts +7 -7
  42. package/dist/index.d.ts +7 -7
  43. package/dist/index.js +4 -4
  44. package/dist/index.mjs +2 -2
  45. package/dist/llms/index.d.mts +2 -2
  46. package/dist/llms/index.d.ts +2 -2
  47. package/dist/{routing-D311WhuV.d.ts → routing-BI69sU8F.d.ts} +1 -1
  48. package/dist/{routing-bTjqOM8S.d.mts → routing-Bg1nr9N0.d.mts} +1 -1
  49. package/dist/{scanner-VNEXRTZF.mjs → scanner-7ZMUM2P5.mjs} +3 -3
  50. package/dist/{scanner-VNEXRTZF.mjs.map → scanner-7ZMUM2P5.mjs.map} +1 -1
  51. package/dist/{scanner-CVKYTPUO.js → scanner-OY7UF3WA.js} +14 -14
  52. package/dist/{scanner-CVKYTPUO.js.map → scanner-OY7UF3WA.js.map} +1 -1
  53. package/dist/seo/index.d.mts +3 -3
  54. package/dist/seo/index.d.ts +3 -3
  55. package/dist/seo/server.d.mts +2 -2
  56. package/dist/seo/server.d.ts +2 -2
  57. package/dist/setup/index.js +2 -2
  58. package/dist/setup/index.mjs +1 -1
  59. package/dist/setup/server.js +2 -2
  60. package/dist/setup/server.mjs +1 -1
  61. package/dist/sitemap/index.d.mts +1 -1
  62. package/dist/sitemap/index.d.ts +1 -1
  63. package/dist/{socket-loader-3FWQWPDQ.js → socket-loader-J26QHHOB.js} +2 -2
  64. package/dist/socket-loader-J26QHHOB.js.map +1 -0
  65. package/dist/{socket-loader-N5ETWMXW.mjs → socket-loader-R7S2YJ2J.mjs} +2 -2
  66. package/dist/socket-loader-R7S2YJ2J.mjs.map +1 -0
  67. package/dist/{types-C_pfGZhI.d.mts → types-Bsf5kX1n.d.mts} +1 -1
  68. package/dist/{types-C_pfGZhI.d.ts → types-Bsf5kX1n.d.ts} +1 -1
  69. package/dist/{types-DxhEH2tX.d.mts → types-CNZcDIoX.d.mts} +1 -1
  70. package/dist/{types-DxhEH2tX.d.ts → types-CNZcDIoX.d.ts} +1 -1
  71. package/dist/{types-Cl2SOKHd.d.mts → types-D8i7Alvv.d.mts} +1 -1
  72. package/dist/{types-Cl2SOKHd.d.ts → types-D8i7Alvv.d.ts} +1 -1
  73. package/dist/{types-DiZVgJKD.d.mts → types-DA_Kocle.d.mts} +1 -1
  74. package/dist/{types-DiZVgJKD.d.ts → types-DA_Kocle.d.ts} +1 -1
  75. package/dist/{types-CMNYdZwT.d.mts → types-DI0jnhjJ.d.mts} +1 -1
  76. package/dist/{types-CMNYdZwT.d.ts → types-DI0jnhjJ.d.ts} +1 -1
  77. package/dist/{types-BF2v5qX3.d.mts → types-wCtRFR0Y.d.mts} +1 -1
  78. package/dist/{types-BF2v5qX3.d.ts → types-wCtRFR0Y.d.ts} +1 -1
  79. package/dist/{useEventModal-x_RZRewW.d.mts → useEventModal-Bs0W9Iy_.d.mts} +2 -2
  80. package/dist/{useEventModal-5fIKdIaY.d.ts → useEventModal-Btu3uIjE.d.ts} +2 -2
  81. package/dist/{web-vitals-PW6MQOKS.js → web-vitals-444RLW3B.js} +3 -3
  82. package/dist/web-vitals-444RLW3B.js.map +1 -0
  83. package/dist/{web-vitals-YSIFBTH7.mjs → web-vitals-KPICZIEF.mjs} +3 -3
  84. package/dist/web-vitals-KPICZIEF.mjs.map +1 -0
  85. package/package.json +2 -1
  86. package/dist/chunk-3LOFIO77.mjs.map +0 -1
  87. package/dist/chunk-C5TQLU5U.js.map +0 -1
  88. package/dist/chunk-RLO3QJ65.mjs.map +0 -1
  89. package/dist/chunk-VFJ3NNCY.js.map +0 -1
  90. package/dist/socket-loader-3FWQWPDQ.js.map +0 -1
  91. package/dist/socket-loader-N5ETWMXW.mjs.map +0 -1
  92. package/dist/web-vitals-PW6MQOKS.js.map +0 -1
  93. package/dist/web-vitals-YSIFBTH7.mjs.map +0 -1
@@ -1,12 +1,14 @@
1
1
  'use strict';
2
2
 
3
3
  var React2 = require('react');
4
+ var ReactMarkdown = require('react-markdown');
4
5
  var jsxRuntime = require('react/jsx-runtime');
5
6
  var navigation = require('next/navigation');
6
7
 
7
8
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
9
 
9
10
  var React2__default = /*#__PURE__*/_interopDefault(React2);
11
+ var ReactMarkdown__default = /*#__PURE__*/_interopDefault(ReactMarkdown);
10
12
 
11
13
  // src/engage/ChatWidget.tsx
12
14
  function getApiConfig() {
@@ -280,7 +282,7 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
280
282
  socketRef.current.disconnect();
281
283
  socketRef.current = null;
282
284
  }
283
- const { createSocket } = await import('./socket-loader-3FWQWPDQ.js');
285
+ const { createSocket } = await import('./socket-loader-J26QHHOB.js');
284
286
  const namespaceUrl = `${baseUrl.replace(/\/$/, "")}/engage/chat`;
285
287
  const socket = await createSocket(namespaceUrl, {
286
288
  query: { projectId, visitorId, sessionId: currentSessionId },
@@ -1001,82 +1003,101 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
1001
1003
  {
1002
1004
  style: { flex: 1, overflowY: "auto", padding: 16, display: "flex", flexDirection: "column", gap: 12, backgroundColor: "#f9fafb" },
1003
1005
  children: [
1004
- messages.map((message) => /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", justifyContent: message.role === "user" ? "flex-end" : "flex-start" }, children: /* @__PURE__ */ jsxRuntime.jsxs(
1005
- "div",
1006
- {
1007
- style: {
1008
- maxWidth: "80%",
1009
- padding: message.role === "system" ? "8px 12px" : "10px 14px",
1010
- borderRadius: message.role === "user" ? "16px 16px 4px 16px" : message.role === "system" ? "8px" : "16px 16px 16px 4px",
1011
- backgroundColor: message.role === "user" ? primaryColor : message.role === "system" ? "#e5e7eb" : "#ffffff",
1012
- color: message.role === "user" ? isLightColor(primaryColor) ? "#1a1a1a" : "white" : message.role === "system" ? "#6b7280" : "#111827",
1013
- boxShadow: message.role === "system" ? "none" : "0 1px 2px rgba(0,0,0,0.08)",
1014
- fontSize: message.role === "system" ? 13 : 14,
1015
- fontStyle: message.role === "system" ? "italic" : "normal",
1016
- lineHeight: 1.5,
1017
- whiteSpace: "pre-wrap",
1018
- wordBreak: "break-word"
1019
- },
1020
- children: [
1021
- message.agentName && message.role === "agent" && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { fontSize: 12, opacity: 0.6, marginBottom: 4 }, children: message.agentName }),
1022
- message.content,
1023
- message.attachments?.length ? /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginTop: 8, display: "flex", flexDirection: "column", gap: 6 }, children: message.attachments.map(
1024
- (att, i) => att.mimeType?.startsWith("image/") ? /* @__PURE__ */ jsxRuntime.jsx("a", { href: att.url, target: "_blank", rel: "noopener noreferrer", style: { display: "block" }, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: att.url, alt: att.name, style: { maxWidth: "100%", maxHeight: 200, borderRadius: 8, objectFit: "contain" } }) }, i) : /* @__PURE__ */ jsxRuntime.jsxs("a", { href: att.url, target: "_blank", rel: "noopener noreferrer", style: { fontSize: 13, wordBreak: "break-all" }, children: [
1025
- "\u{1F4CE} ",
1026
- att.name
1027
- ] }, i)
1028
- ) }) : null,
1029
- message.suggestions?.length ? /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", flexWrap: "wrap", gap: 6, marginTop: 8 }, children: message.suggestions.map((s, i) => /* @__PURE__ */ jsxRuntime.jsx(
1030
- "button",
1031
- {
1032
- type: "button",
1033
- onClick: () => {
1034
- setInputValue(s);
1035
- inputRef.current?.focus();
1036
- },
1037
- style: {
1038
- padding: "6px 12px",
1039
- borderRadius: 16,
1040
- border: `1px solid ${primaryColor}`,
1041
- backgroundColor: `${primaryColor}10`,
1042
- color: primaryColor,
1043
- fontSize: 13,
1044
- cursor: "pointer"
1045
- },
1046
- children: s
1047
- },
1048
- i
1049
- )) }) : null,
1050
- message.sendFailed && lastFailedSend && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginTop: 8 }, children: /* @__PURE__ */ jsxRuntime.jsx(
1051
- "button",
1052
- {
1053
- type: "button",
1054
- onClick: retryFailedSend,
1055
- style: { padding: "6px 12px", borderRadius: 6, border: "1px solid #ef4444", backgroundColor: "#fef2f2", color: "#dc2626", fontSize: 13, cursor: "pointer" },
1056
- children: "Retry send"
1057
- }
1058
- ) }),
1059
- widgetConfig?.signal_enabled && message.role === "assistant" && !message.suggestions?.length && widgetConfig?.handoff_enabled !== false && messages.filter((m) => m.role === "user").length >= 2 && message.id === messages.filter((m) => m.role === "assistant").slice(-1)[0]?.id && /* @__PURE__ */ jsxRuntime.jsx(
1060
- "button",
1061
- {
1062
- onClick: requestHandoff,
1063
- style: {
1064
- display: "inline-block",
1065
- marginTop: 8,
1066
- padding: "6px 12px",
1067
- borderRadius: 6,
1068
- border: `1px solid ${primaryColor}`,
1069
- backgroundColor: "transparent",
1070
- color: primaryColor,
1071
- fontSize: 13,
1072
- cursor: "pointer"
1006
+ messages.map((message) => {
1007
+ const isAssistant = message.role === "assistant" || message.role === "agent";
1008
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", justifyContent: message.role === "user" ? "flex-end" : "flex-start" }, children: /* @__PURE__ */ jsxRuntime.jsxs(
1009
+ "div",
1010
+ {
1011
+ style: {
1012
+ maxWidth: "80%",
1013
+ padding: message.role === "system" ? "8px 12px" : isAssistant ? "12px 16px" : "10px 14px",
1014
+ borderRadius: message.role === "user" ? "16px 16px 4px 16px" : message.role === "system" ? "8px" : "16px 16px 16px 4px",
1015
+ backgroundColor: message.role === "user" ? primaryColor : message.role === "system" ? "#e5e7eb" : "#ffffff",
1016
+ color: message.role === "user" ? isLightColor(primaryColor) ? "#1a1a1a" : "white" : message.role === "system" ? "#6b7280" : "#111827",
1017
+ boxShadow: message.role === "system" ? "none" : "0 1px 2px rgba(0,0,0,0.08)",
1018
+ fontSize: message.role === "system" ? 13 : 14,
1019
+ fontStyle: message.role === "system" ? "italic" : "normal",
1020
+ lineHeight: isAssistant ? 1.6 : 1.5,
1021
+ whiteSpace: isAssistant ? "normal" : "pre-wrap",
1022
+ wordBreak: "break-word",
1023
+ textAlign: isAssistant ? "left" : void 0,
1024
+ borderLeft: isAssistant ? `3px solid ${primaryColor}33` : void 0
1025
+ },
1026
+ children: [
1027
+ message.agentName && message.role === "agent" && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { fontSize: 12, opacity: 0.6, marginBottom: 4 }, children: message.agentName }),
1028
+ isAssistant ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "chatMessageContent", children: /* @__PURE__ */ jsxRuntime.jsx(
1029
+ ReactMarkdown__default.default,
1030
+ {
1031
+ components: {
1032
+ p: ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("p", { style: { margin: "0 0 8px", lineHeight: 1.6 }, children }),
1033
+ strong: ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("strong", { style: { fontWeight: 600 }, children }),
1034
+ ul: ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("ul", { style: { margin: "4px 0 8px", paddingLeft: 20 }, children }),
1035
+ ol: ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("ol", { style: { margin: "4px 0 8px", paddingLeft: 20 }, children }),
1036
+ li: ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("li", { style: { marginBottom: 4 }, children }),
1037
+ h3: ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("h3", { style: { margin: "12px 0 6px", fontSize: 15, fontWeight: 600 }, children }),
1038
+ h4: ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("h4", { style: { margin: "8px 0 4px", fontSize: 14, fontWeight: 600 }, children })
1039
+ },
1040
+ children: message.content
1041
+ }
1042
+ ) }) : message.content,
1043
+ message.attachments?.length ? /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginTop: 8, display: "flex", flexDirection: "column", gap: 6 }, children: message.attachments.map(
1044
+ (att, i) => att.mimeType?.startsWith("image/") ? /* @__PURE__ */ jsxRuntime.jsx("a", { href: att.url, target: "_blank", rel: "noopener noreferrer", style: { display: "block" }, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: att.url, alt: att.name, style: { maxWidth: "100%", maxHeight: 200, borderRadius: 8, objectFit: "contain" } }) }, i) : /* @__PURE__ */ jsxRuntime.jsxs("a", { href: att.url, target: "_blank", rel: "noopener noreferrer", style: { fontSize: 13, wordBreak: "break-all", display: "flex", alignItems: "center", gap: 6 }, children: [
1045
+ /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48" }) }),
1046
+ att.name
1047
+ ] }, i)
1048
+ ) }) : null,
1049
+ message.suggestions?.length ? /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", flexWrap: "wrap", gap: 6, marginTop: 8 }, children: message.suggestions.map((s, i) => /* @__PURE__ */ jsxRuntime.jsx(
1050
+ "button",
1051
+ {
1052
+ type: "button",
1053
+ onClick: () => {
1054
+ setInputValue(s);
1055
+ inputRef.current?.focus();
1056
+ },
1057
+ style: {
1058
+ padding: "6px 12px",
1059
+ borderRadius: 16,
1060
+ border: `1px solid ${primaryColor}`,
1061
+ backgroundColor: `${primaryColor}10`,
1062
+ color: primaryColor,
1063
+ fontSize: 13,
1064
+ cursor: "pointer"
1065
+ },
1066
+ children: s
1073
1067
  },
1074
- children: "Talk to a person"
1075
- }
1076
- )
1077
- ]
1078
- }
1079
- ) }, message.id)),
1068
+ i
1069
+ )) }) : null,
1070
+ message.sendFailed && lastFailedSend && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginTop: 8 }, children: /* @__PURE__ */ jsxRuntime.jsx(
1071
+ "button",
1072
+ {
1073
+ type: "button",
1074
+ onClick: retryFailedSend,
1075
+ style: { padding: "6px 12px", borderRadius: 6, border: "1px solid #ef4444", backgroundColor: "#fef2f2", color: "#dc2626", fontSize: 13, cursor: "pointer" },
1076
+ children: "Retry send"
1077
+ }
1078
+ ) }),
1079
+ widgetConfig?.signal_enabled && message.role === "assistant" && !message.suggestions?.length && widgetConfig?.handoff_enabled !== false && messages.filter((m) => m.role === "user").length >= 2 && message.id === messages.filter((m) => m.role === "assistant").slice(-1)[0]?.id && /* @__PURE__ */ jsxRuntime.jsx(
1080
+ "button",
1081
+ {
1082
+ onClick: requestHandoff,
1083
+ style: {
1084
+ display: "inline-block",
1085
+ marginTop: 8,
1086
+ padding: "6px 12px",
1087
+ borderRadius: 6,
1088
+ border: `1px solid ${primaryColor}`,
1089
+ backgroundColor: "transparent",
1090
+ color: primaryColor,
1091
+ fontSize: 13,
1092
+ cursor: "pointer"
1093
+ },
1094
+ children: "Talk to a person"
1095
+ }
1096
+ )
1097
+ ]
1098
+ }
1099
+ ) }, message.id);
1100
+ }),
1080
1101
  (isLoading || agentTyping) && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", justifyContent: "flex-start" }, children: /* @__PURE__ */ jsxRuntime.jsxs(
1081
1102
  "div",
1082
1103
  {
@@ -1206,6 +1227,8 @@ function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, sign
1206
1227
  from { transform: scaleX(0); }
1207
1228
  to { transform: scaleX(1); }
1208
1229
  }
1230
+ .chatMessageContent p:first-child { margin-top: 0; }
1231
+ .chatMessageContent p:last-child { margin-bottom: 0; }
1209
1232
  ` })
1210
1233
  ]
1211
1234
  }
@@ -1839,5 +1862,5 @@ function getDeviceType() {
1839
1862
  exports.ChatWidget = ChatWidget;
1840
1863
  exports.DesignRenderer = DesignRenderer;
1841
1864
  exports.EngageWidget = EngageWidget;
1842
- //# sourceMappingURL=chunk-C5TQLU5U.js.map
1843
- //# sourceMappingURL=chunk-C5TQLU5U.js.map
1865
+ //# sourceMappingURL=chunk-47ZS7MKZ.js.map
1866
+ //# sourceMappingURL=chunk-47ZS7MKZ.js.map