@getwidgets/live-chat-widget 1.0.5 → 1.0.7
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/dist/live-chat-widget.umd.js +46 -18
- package/package.json +1 -1
|
@@ -20210,11 +20210,37 @@
|
|
|
20210
20210
|
const luminance = (0.299 * r2 + 0.587 * g + 0.114 * b) / 255;
|
|
20211
20211
|
return luminance > 0.5 ? "#000000" : "#FFFFFF";
|
|
20212
20212
|
};
|
|
20213
|
+
const getMessageTime = (message) => {
|
|
20214
|
+
if (!message) return "";
|
|
20215
|
+
const raw = message.timestamp ?? message.created_at;
|
|
20216
|
+
if (!raw) return "";
|
|
20217
|
+
if (typeof raw === "string") {
|
|
20218
|
+
const looksLikeTimeOnly = /:\d{2}/.test(raw) && !/\d{4}-\d{2}-\d{2}|T|Z/i.test(raw);
|
|
20219
|
+
if (looksLikeTimeOnly) return raw;
|
|
20220
|
+
const parsed2 = new Date(raw);
|
|
20221
|
+
if (!Number.isNaN(parsed2.getTime())) {
|
|
20222
|
+
return parsed2.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
|
|
20223
|
+
}
|
|
20224
|
+
return "";
|
|
20225
|
+
}
|
|
20226
|
+
const parsed = new Date(raw);
|
|
20227
|
+
if (Number.isNaN(parsed.getTime())) return "";
|
|
20228
|
+
return parsed.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
|
|
20229
|
+
};
|
|
20230
|
+
const timeTextColor = getContrastColor(appearanceConfig.background_color || "#F9FAFB");
|
|
20213
20231
|
const isMobile = windowWidth < 768;
|
|
20214
20232
|
return /* @__PURE__ */ React.createElement("div", { style: getPositionStyles() }, !isOpen && showNotificationPreview && /* @__PURE__ */ React.createElement(
|
|
20215
|
-
"
|
|
20233
|
+
"div",
|
|
20216
20234
|
{
|
|
20235
|
+
role: "button",
|
|
20236
|
+
tabIndex: 0,
|
|
20217
20237
|
onClick: toggleWidget,
|
|
20238
|
+
onKeyDown: (e) => {
|
|
20239
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
20240
|
+
e.preventDefault();
|
|
20241
|
+
toggleWidget();
|
|
20242
|
+
}
|
|
20243
|
+
},
|
|
20218
20244
|
className: "rounded-2xl shadow-lg hover:shadow-xl transition-all duration-300 flex flex-col gap-2 p-4 max-w-xs responsive-notification relative",
|
|
20219
20245
|
style: {
|
|
20220
20246
|
backgroundColor: headerConfig.background_color || "#111827",
|
|
@@ -20420,23 +20446,25 @@
|
|
|
20420
20446
|
}
|
|
20421
20447
|
},
|
|
20422
20448
|
inputAreaConfig.first_ai_message || "Hello! How can I assist you today?"
|
|
20423
|
-
)) : combinedMessages.map((message) =>
|
|
20424
|
-
|
|
20425
|
-
{
|
|
20426
|
-
|
|
20427
|
-
|
|
20428
|
-
|
|
20429
|
-
|
|
20430
|
-
|
|
20431
|
-
|
|
20432
|
-
|
|
20433
|
-
|
|
20434
|
-
|
|
20435
|
-
|
|
20436
|
-
|
|
20437
|
-
|
|
20438
|
-
|
|
20439
|
-
|
|
20449
|
+
)) : combinedMessages.map((message) => {
|
|
20450
|
+
const timeText = getMessageTime(message);
|
|
20451
|
+
return /* @__PURE__ */ React.createElement("div", { key: message.id, className: `flex flex-col ${message.role === "user" ? "items-end" : "items-start"}` }, /* @__PURE__ */ React.createElement(
|
|
20452
|
+
"div",
|
|
20453
|
+
{
|
|
20454
|
+
className: `p-3 inline-block rounded-lg`,
|
|
20455
|
+
style: {
|
|
20456
|
+
backgroundColor: message.role === "user" ? chatAreaConfig.user_response_color || "#4ADE80" : message.isError ? "#FEE2E2" : chatAreaConfig.ai_response_color || "#E2E8F0",
|
|
20457
|
+
borderRadius: chatAreaConfig.chat_bubble_radius || "16px",
|
|
20458
|
+
fontSize: isMobile ? "13px" : "14px",
|
|
20459
|
+
color: message.role === "user" ? chatAreaConfig.user_font_color || "#111827" : message.isError ? "#991B1B" : chatAreaConfig.ai_font_color || "#111827",
|
|
20460
|
+
marginBottom: isMobile ? "4px" : "2px",
|
|
20461
|
+
maxWidth: isMobile ? "85%" : "80%",
|
|
20462
|
+
wordBreak: "break-word"
|
|
20463
|
+
}
|
|
20464
|
+
},
|
|
20465
|
+
message.role !== "system" ? /* @__PURE__ */ React.createElement(Markdown, { remarkPlugins: [remarkGfm] }, message.content) : /* @__PURE__ */ React.createElement("em", { className: "text-xs opacity-70" }, message.content)
|
|
20466
|
+
), message.role !== "system" && timeText && /* @__PURE__ */ React.createElement("div", { className: "text-xs opacity-70", style: { color: timeTextColor, marginBottom: isMobile ? "6px" : "4px" } }, timeText));
|
|
20467
|
+
}), localLoading && /* @__PURE__ */ React.createElement("div", { className: "flex justify-start" }, /* @__PURE__ */ React.createElement(
|
|
20440
20468
|
"div",
|
|
20441
20469
|
{
|
|
20442
20470
|
className: "text-left p-3 inline-block max-w-[85%]",
|